Mach Syscall Coverage

This is the functionality provided by the Mach part of XNU. Documentation source. Not all functionality makes sense or is fully implementable on Linux.

Contents

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?