AcpiExecSMPFunction: Difference between revisions
Appearance
mNo edit summary |
m →Links |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
ACPI_STATUS AcpiExecSMPFunction (ACPIRUNATALLCPU SubProgram, UINT32 CPUMask, UINT32 Flags, void *Context) | ACPI_STATUS AcpiExecSMPFunction (ACPIRUNATALLCPU SubProgram, UINT32 CPUMask, UINT32 Flags, void *Context) | ||
==Parameters== | |||
; SubProgram : Address subprogram, which called in each CPU according with CPUMask, must declare as ACPI_STATUS APIENTRY SubProgram(void *Context) | ; SubProgram : Address subprogram, which called in each CPU according with CPUMask, must declare as ACPI_STATUS APIENTRY SubProgram(void *Context) | ||
; CPUMask : CPUs for execute, low word is bit field, where bit number is number of CPU for execute, 0xffffffff mean "all CPU" | ; CPUMask : CPUs for execute, low word is bit field, where bit number is number of CPU for execute, 0xffffffff mean "all CPU" | ||
; Flags: Flag, can be: | ; Flags: Flag, can be: | ||
:;SMPEXEC_IPITIME : run from IPI (interrupt time) , stack is NOT OS/2 stack | :;SMPEXEC_IPITIME : run from IPI (interrupt time) , stack is NOT OS/2 stack | ||
Line 12: | Line 11: | ||
:;SMPEXEC_WBINDVD : Flush cache at all CPU, parameter SubProgram ignore with this. | :;SMPEXEC_WBINDVD : Flush cache at all CPU, parameter SubProgram ignore with this. | ||
:;SMPEXEC_SYNC : synchronize CPU before run (now tested with SMPEXEC_TASKTIME ) | :;SMPEXEC_SYNC : synchronize CPU before run (now tested with SMPEXEC_TASKTIME ) | ||
; Context : Context which passed as parameter to SubProgram | ; Context : Context which passed as parameter to SubProgram | ||
; Note: In Uni kernel call imeditialy w/o any checking CPU number. Running in kernel time. | |||
[[Category:ACPI32]] |
Latest revision as of 09:13, 29 May 2025
Execute a subprogram on all CPUs simultaneously.
ACPI_STATUS AcpiExecSMPFunction (ACPIRUNATALLCPU SubProgram, UINT32 CPUMask, UINT32 Flags, void *Context)
Parameters
- SubProgram
- Address subprogram, which called in each CPU according with CPUMask, must declare as ACPI_STATUS APIENTRY SubProgram(void *Context)
- CPUMask
- CPUs for execute, low word is bit field, where bit number is number of CPU for execute, 0xffffffff mean "all CPU"
- Flags
- Flag, can be:
- SMPEXEC_IPITIME
- run from IPI (interrupt time) , stack is NOT OS/2 stack
- SMPEXEC_TASKTIME
- run from PSD_SET_PROC_STATE, PSD stack, kernel time
- SMPEXEC_WBINDVD
- Flush cache at all CPU, parameter SubProgram ignore with this.
- SMPEXEC_SYNC
- synchronize CPU before run (now tested with SMPEXEC_TASKTIME )
- Context
- Context which passed as parameter to SubProgram
- Note
- In Uni kernel call imeditialy w/o any checking CPU number. Running in kernel time.