mirror of
https://github.com/ipxe/ipxe
synced 2025-12-26 01:22:37 +03:00
[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 <mcb30@ipxe.org>
This commit is contained in:
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user