From 17d28f48776b909d031bcb0435c852ade1bd8988 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 11 Jan 2011 00:53:50 +0000 Subject: [nvo] Allow resizing of non-volatile stored option blocks Signed-off-by: Michael Brown --- src/include/ipxe/dhcpopts.h | 1 + src/include/ipxe/nvo.h | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'src/include') diff --git a/src/include/ipxe/dhcpopts.h b/src/include/ipxe/dhcpopts.h index fe07d903d..8fb3d2d79 100644 --- a/src/include/ipxe/dhcpopts.h +++ b/src/include/ipxe/dhcpopts.h @@ -36,6 +36,7 @@ extern void dhcpopt_init ( struct dhcp_options *options, void *data, size_t alloc_len, int ( * realloc ) ( struct dhcp_options *options, size_t len ) ); +extern void dhcpopt_update_used_len ( struct dhcp_options *options ); extern int dhcpopt_no_realloc ( struct dhcp_options *options, size_t len ); #endif /* _IPXE_DHCPOPTS_H */ diff --git a/src/include/ipxe/nvo.h b/src/include/ipxe/nvo.h index 1fdc12ccb..995afd749 100644 --- a/src/include/ipxe/nvo.h +++ b/src/include/ipxe/nvo.h @@ -30,12 +30,22 @@ struct nvo_block { size_t len; /** Option-containing data */ void *data; + /** + * Resize non-volatile stored option block + * + * @v nvo Non-volatile options block + * @v len New size + * @ret rc Return status code + */ + int ( * resize ) ( struct nvo_block *nvo, size_t len ); /** DHCP options block */ struct dhcp_options dhcpopts; }; extern void nvo_init ( struct nvo_block *nvo, struct nvs_device *nvs, - size_t address, size_t len, struct refcnt *refcnt ); + size_t address, size_t len, + int ( * resize ) ( struct nvo_block *nvo, size_t len ), + struct refcnt *refcnt ); extern int register_nvo ( struct nvo_block *nvo, struct settings *parent ); extern void unregister_nvo ( struct nvo_block *nvo ); -- cgit v1.2.3-55-g7522