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
- 13.7.1
- base_idt
- 13.7.4
- base_tss_load
- 13.7.8
- boot_info
- 13.14.7
- phys_mem_va
- 13.6.2
The LMM library is used to allocate pages of memory below 1MB. This requires the symbols:
- lmm_alloc_page
- 22.6.8
- malloc_lmm
- 12.5.1
These minimal C library symbols are pulled in by the SMP support code:
- panic
- 12.8.3
- printf
- 12.6
This library provides SMP-safe implementations for:
- base_critical_enter
- 13.2.5
- base_critical_leave
- 13.2.5