From 17b6a3c506d94b8dc8bdae89828bac20ef56b1ef Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 10 Jan 2011 23:58:11 +0000 Subject: [dhcp] Allow use of custom reallocation functions for DHCP option blocks Allow functions other than realloc() to be used to reallocate DHCP option block data, and specify the reallocation function at the time of calling dhcpopt_init(). Signed-off-by: Michael Brown --- src/include/ipxe/dhcpopts.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/include') diff --git a/src/include/ipxe/dhcpopts.h b/src/include/ipxe/dhcpopts.h index d88036e3a..fe07d903d 100644 --- a/src/include/ipxe/dhcpopts.h +++ b/src/include/ipxe/dhcpopts.h @@ -19,16 +19,23 @@ struct dhcp_options { size_t used_len; /** Option block allocated length */ size_t alloc_len; + /** Reallocate option block raw data + * + * @v options DHCP option block + * @v len New length + * @ret rc Return status code + */ + int ( * realloc ) ( struct dhcp_options *options, size_t len ); }; extern int dhcpopt_store ( struct dhcp_options *options, unsigned int tag, const void *data, size_t len ); -extern int dhcpopt_extensible_store ( struct dhcp_options *options, - unsigned int tag, - const void *data, size_t len ); extern int dhcpopt_fetch ( struct dhcp_options *options, unsigned int tag, void *data, size_t len ); extern void dhcpopt_init ( struct dhcp_options *options, - void *data, size_t alloc_len ); + void *data, size_t alloc_len, + int ( * realloc ) ( struct dhcp_options *options, + size_t len ) ); +extern int dhcpopt_no_realloc ( struct dhcp_options *options, size_t len ); #endif /* _IPXE_DHCPOPTS_H */ -- cgit v1.2.3-55-g7522