summaryrefslogtreecommitdiff
path: root/magic_buddy/magic_buddy.h
diff options
context:
space:
mode:
Diffstat (limited to 'magic_buddy/magic_buddy.h')
-rw-r--r--magic_buddy/magic_buddy.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/magic_buddy/magic_buddy.h b/magic_buddy/magic_buddy.h
index 167397b..3b5e8d0 100644
--- a/magic_buddy/magic_buddy.h
+++ b/magic_buddy/magic_buddy.h
@@ -42,10 +42,18 @@ void *reallocate(void *old, size_t new_size, size_t old_size,
struct buddy *state);
// Attempts to reserve a range [@start,@start+@size).
+//
// Returns 1 if success, 0 otherwise.
+//
// Whenever possible, we avoid writing anything into the reserved region.
+//
+// If the reservation succeeds, and @out_start (@out_size) is negative, it puts
+// the start (size) of the actually reserved region into *@out_start
+// (*@out_size). These can be passed into liberate(...) later to unreserve.
+//
// O(1)
-int reserve(void *start, size_t size, struct buddy *state);
+int reserve(void *start, size_t size, void **out_start, size_t *out_size,
+ struct buddy *state);
// Update @state to assume the memory pool has been copied to
// [@new_base,@new_base+@new_size)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback