diff options
| author | Michael Brown | 2010-04-19 21:16:01 +0200 |
|---|---|---|
| committer | Michael Brown | 2010-04-20 00:43:39 +0200 |
| commit | 8406115834d38bb743e01f35bfd36e835532415e (patch) | |
| tree | ee1e3106e2cdc645d911ba5643f8414b21fc4c3e /src/include/ipxe/refcnt.h | |
| parent | [eepro100] Remove link-state checking (diff) | |
| download | ipxe-8406115834d38bb743e01f35bfd36e835532415e.tar.gz ipxe-8406115834d38bb743e01f35bfd36e835532415e.tar.xz ipxe-8406115834d38bb743e01f35bfd36e835532415e.zip | |
[build] Rename gPXE to iPXE
Access to the gpxe.org and etherboot.org domains and associated
resources has been revoked by the registrant of the domain. Work
around this problem by renaming project from gPXE to iPXE, and
updating URLs to match.
Also update README, LOG and COPYRIGHTS to remove obsolete information.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include/ipxe/refcnt.h')
| -rw-r--r-- | src/include/ipxe/refcnt.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/include/ipxe/refcnt.h b/src/include/ipxe/refcnt.h new file mode 100644 index 000000000..4b023225e --- /dev/null +++ b/src/include/ipxe/refcnt.h @@ -0,0 +1,46 @@ +#ifndef _IPXE_REFCNT_H +#define _IPXE_REFCNT_H + +/** @file + * + * Reference counting + * + */ + +FILE_LICENCE ( GPL2_OR_LATER ); + +/** + * A reference counter + * + * This data structure is designed to be embedded within a + * reference-counted object. + * + * Reference-counted objects are freed when their reference count + * drops below zero. This means that a freshly allocated-and-zeroed + * reference-counted object will be freed on the first call to + * ref_put(). + */ +struct refcnt { + /** Current reference count + * + * When this count is decremented below zero, the free() + * method will be called. + */ + int refcnt; + /** Free containing object + * + * This method is called when the reference count is + * decremented below zero. + * + * If this method is left NULL, the standard library free() + * function will be called. The upshot of this is that you + * may omit the free() method if the @c refcnt object is the + * first element of your reference-counted struct. + */ + void ( * free ) ( struct refcnt *refcnt ); +}; + +extern struct refcnt * ref_get ( struct refcnt *refcnt ); +extern void ref_put ( struct refcnt *refcnt ); + +#endif /* _IPXE_REFCNT_H */ |
