The SMP library assumes that the base environment is usable. It starts up the Application Processors on the kernel support library's ``base'' data structures. It is possible (in fact required in many cases) to reload per-processor copies.
The following are symbols from the kernel support library required by the SMP library:
- base_gdt 10.7.1
- base_idt 10.7.4
- base_tss_load 10.7.8
- boot_info 10.14.7
- phys_mem_va 10.6.2
The LMM library is used to allocate pages of memory below 1MB. This requires the symbols:
- lmm_alloc_page 15.6.8
- malloc_lmm 9.5.1
These minimal C library symbols are pulled in by the SMP support code:
- panic 9.7.3
- printf 9.6
This library provides SMP-safe implementations for:
- base_critical_enter 10.2.5
- base_critical_leave 10.2.5