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_createandmemory_object_data_initialize. The remote procedure call generator produces a procedurememory_object_default_serverto handle those functions specific to the default memory manager.The
seqnos_memory_object_serverandseqnos_memory_object_default_serverdiffer frommemory_object_serverandmemory_object_default_serverin 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_serverfunction 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
TRUEto indicate that the message in question was applicable to this interface, and that the appropriate routine was called to interpret the message. It returnsFALSEto indicate that the message did not apply to this interface, and that no other action was taken.