aboutsummaryrefslogtreecommitdiffstats
path: root/src/include/ipxe
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2011-01-11 00:53:50 +0000
committerMichael Brown <mcb30@ipxe.org>2011-01-19 13:52:48 +0000
commit17d28f48776b909d031bcb0435c852ade1bd8988 (patch)
tree476b71c1eff4ec7ec5999504c112ae321d3acbb6 /src/include/ipxe
parent1651d4f6d7f764ff5bfafc12bd058a88e49b0ff5 (diff)
downloadipxe-17d28f48776b909d031bcb0435c852ade1bd8988.tar.gz
[nvo] Allow resizing of non-volatile stored option blocks
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include/ipxe')
-rw-r--r--src/include/ipxe/dhcpopts.h1
-rw-r--r--src/include/ipxe/nvo.h12
2 files changed, 12 insertions, 1 deletions
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 );