This is the functionality provided by the Mach part of XNU. Documentation source. Not all functionality makes sense or is fully implementable on Linux.
Mach IPC Interface
Mach IPC (ports & bootstrap) will require a Linux kernel module.
Mach Semaphore Interface
- semaphore_create - OK
- semaphore_destroy - OK
- semaphore_signal - OK
- semaphore_signal_all - stub (not supported by semaphore.h?)
- semaphore_wait - OK
Mach Message Queue Interface
TODO
Mach Lock-Set Interface
TODO
Mach Port Management Interface
TODO
Mach Virtual Memory Interface
Mach Virtual Memory Address Space Manipulation Interface
No VM functions currently provide access to another task's memory. This could by partially implemented via process_vm_readv and process_vm_writev (Linux 3.2+).
- host_page_size - OK
- vm_allocate - OK
- vm_behavior_set - stub
- vm_copy - OK
- vm_deallocate - OK
- vm_inherit - stub
- vm_machine_attribute - stub
- vm_map - stub
- vm_msync - OK
- vm_protect - OK
- vm_read - OK
- vm_region - stub
- vm_remap - stub
- vm_wire - stub
- vm_write - OK
Default Memory Management Interface
TODO
Process Management Interface
Task Interface
TODO
Thread Interface
TODO
Scheduling Interface
TODO
System Management Interface
Host Interface
TODO
Host Control Interface
TODO
Host Security Interface
TODO
Processor Management Interface
TODO
Processor Set Interface
TODO
Clock Interface
TODO
Multi-Computer Support Interface
TODO
Machine Specific Interface
Implement this at all?