Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[refcnt] Add ref_no_free handler
Since more reference-counted structures than embedded images might
want to mark themselves unfreeable, expose a dummy ref_no_free().

Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
rwcr authored and mcb30 committed Jun 22, 2010
1 parent b707f15 commit 719ba31
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 11 deletions.
12 changes: 12 additions & 0 deletions src/core/refcnt.c
Expand Up @@ -76,3 +76,15 @@ void ref_put ( struct refcnt *refcnt ) {
free ( refcnt );
}
}

/**
* Do not free reference-counted object
*
* @v refcnt Reference counter
*
* This is meant for initializing a reference counter structure in a
* statically allocated object.
*/
void ref_no_free ( struct refcnt *refcnt __unused ) {
/* Do nothing */
}
12 changes: 1 addition & 11 deletions src/image/embedded.c
Expand Up @@ -13,16 +13,6 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <ipxe/uaccess.h>
#include <ipxe/init.h>

/**
* Free embedded image
*
* @v refcnt Reference counter
*/
static void __attribute__ (( unused ))
embedded_image_free ( struct refcnt *refcnt __unused ) {
/* Do nothing */
}

/* Raw image data for all embedded images */
#undef EMBED
#define EMBED( _index, _path, _name ) \
Expand All @@ -41,7 +31,7 @@ EMBED_ALL
/* Image structures for all embedded images */
#undef EMBED
#define EMBED( _index, _path, _name ) { \
.refcnt = REF_INIT ( embedded_image_free ), \
.refcnt = REF_INIT ( ref_no_free ), \
.name = _name, \
.data = ( userptr_t ) ( embedded_image_ ## _index ## _data ), \
.len = ( size_t ) embedded_image_ ## _index ## _len, \
Expand Down
1 change: 1 addition & 0 deletions src/include/ipxe/refcnt.h
Expand Up @@ -77,5 +77,6 @@ ref_init ( struct refcnt *refcnt,

extern struct refcnt * ref_get ( struct refcnt *refcnt );
extern void ref_put ( struct refcnt *refcnt );
extern void ref_no_free ( struct refcnt *refcnt );

#endif /* _IPXE_REFCNT_H */

0 comments on commit 719ba31

Please sign in to comment.