Jump to content

AcpiExecSMPFunction: Difference between revisions

From EDM2
No edit summary
Ak120 (talk | contribs)
mNo edit summary
Line 1: Line 1:
{{Legacy
|RepFunc=[[ACPI32]]
|Remarks=This function was used on a older release of the ACPI Toolkit, it is recommended to use an alternative. This function is here only for documentation.
}}
Execute a subprogram on all CPUs simultaneously.
Execute a subprogram on all CPUs simultaneously.


Line 9: Line 5:
==Parameters==
==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 17: 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.
; Note: In Uni kernel call imeditialy w/o any checking CPU number. Running in kernel time.


==Links==
==Links==
* [http://www2.ecomstation.ru/doku.php/en:acpi ACPI Toolkit Web Site]
* [http://www2.ecomstation.ru/doku.php/en:acpi ACPI Toolkit Web Site]
[[Category:ACPI]]

Revision as of 15:20, 14 June 2019

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.

Links