Next: Memory Object Creation, Up: External Memory Management
A memory manager is a server task that responds to specific messages from the kernel in order to handle memory management functions for the kernel.
In order to isolate the memory manager from the specifics of message formatting, the remote procedure call generator produces a procedure,
memory_object_server
, to handle a received message. This function does all necessary argument handling, and actually calls one of the following functions:memory_object_init
,memory_object_data_write
,memory_object_data_return
,memory_object_data_request
,memory_object_data_unlock
,memory_object_lock_completed
,memory_object_copy
,memory_object_terminate
. The default memory manager may get two additional requests from the kernel:memory_object_create
andmemory_object_data_initialize
. The remote procedure call generator produces a procedurememory_object_default_server
to handle those functions specific to the default memory manager.The
seqnos_memory_object_server
andseqnos_memory_object_default_server
differ frommemory_object_server
andmemory_object_default_server
in that they supply message sequence numbers to the server interfaces. They call theseqnos_memory_object_*
functions, which complement thememory_object_*
set of functions.The return value from the
memory_object_server
function indicates that the message was appropriate to the memory management interface (returningTRUE
), or that it could not handle this message (returningFALSE
).The in_msg argument is the message that has been received from the kernel. The out_msg is a reply message, but this is not used for this server.
The function returns
TRUE
to indicate that the message in question was applicable to this interface, and that the appropriate routine was called to interpret the message. It returnsFALSE
to indicate that the message did not apply to this interface, and that no other action was taken.