PCIe services: Difference between revisions
No edit summary |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || [[#RegisterClassDriver]] | | 0 || [[#RegisterClassDriver|RegisterClassDriver]] | ||
|- | |- | ||
| 1 || [[# | | 1 || [[#QueryFunctions|QueryFunctions]] | ||
|} | |} | ||
Line 14: | Line 14: | ||
Takes an input Process handle and an input [[#ClassDriverConfig]]. Returns an output Event handle and an [[#ISession]]. | Takes an input Process handle and an input [[#ClassDriverConfig]]. Returns an output Event handle and an [[#ISession]]. | ||
== | == QueryFunctions == | ||
Takes a type-0x6 output buffer containing an array of [[#FunctionState]]. Returns an output s32 ''' | Takes a type-0x6 output buffer containing an array of [[#FunctionState]]. Returns an output s32 '''FunctionStateCount'''. | ||
== ISession == | == ISession == | ||
Line 24: | Line 24: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || [[#QueryFunctions]] | | 0 || [[#QueryFunctions_2|QueryFunctions]] | ||
|- | |- | ||
| 1 || [[#AcquireFunction]] | | 1 || [[#AcquireFunction|AcquireFunction]] | ||
|- | |- | ||
| 2 || [[#ReleaseFunction]] | | 2 || [[#ReleaseFunction|ReleaseFunction]] | ||
|- | |- | ||
| 3 || [[#GetFunctionState]] | | 3 || [[#GetFunctionState|GetFunctionState]] | ||
|- | |- | ||
| 4 || [[#GetBarProfile]] | | 4 || [[#GetBarProfile|GetBarProfile]] | ||
|- | |- | ||
| 5 || [[#ReadConfig]] | | 5 || [[#ReadConfig|ReadConfig]] | ||
|- | |- | ||
| 6 || [[#WriteConfig]] | | 6 || [[#WriteConfig|WriteConfig]] | ||
|- | |- | ||
| 7 || [[#ReadBarRegion]] | | 7 || [[#ReadBarRegion|ReadBarRegion]] | ||
|- | |- | ||
| 8 || [[#WriteBarRegion]] | | 8 || [[#WriteBarRegion|WriteBarRegion]] | ||
|- | |- | ||
| 9 || [[#FindCapability]] | | 9 || [[#FindCapability|FindCapability]] | ||
|- | |- | ||
| 10 || [[#FindExtendedCapability]] | | 10 || [[#FindExtendedCapability|FindExtendedCapability]] | ||
|- | |- | ||
| 11 || [[#MapDma]] | | 11 || [[#MapDma|MapDma]] | ||
|- | |- | ||
| 12 || [[# | | 12 || [[#UnmapDmaByProcVa|UnmapDmaByProcVa]] | ||
|- | |- | ||
| 13 || [[# | | 13 || [[#UnmapDmaByBusAddress|UnmapDmaByBusAddress]] | ||
|- | |- | ||
| 14 || [[#GetDmaBusAddress]] | | 14 || [[#GetDmaBusAddress|GetDmaBusAddress]] | ||
|- | |- | ||
| 15 || [[#GetDmaBusAddressRange]] | | 15 || [[#GetDmaBusAddressRange|GetDmaBusAddressRange]] | ||
|- | |- | ||
| 16 || [[#SetDmaEnable]] | | 16 || [[#SetDmaEnable|SetDmaEnable]] | ||
|- | |- | ||
| 17 || [[#AcquireIrq]] | | 17 || [[#AcquireIrq|AcquireIrq]] | ||
|- | |- | ||
| 18 || [[#ReleaseIrq]] | | 18 || [[#ReleaseIrq|ReleaseIrq]] | ||
|- | |- | ||
| 19 || [[#SetIrqEnable]] | | 19 || [[#SetIrqEnable|SetIrqEnable]] | ||
|- | |- | ||
| 20 || [[# | | 20 || [7.0.0+] [[#GetIrqEvent|GetIrqEvent]] ([1.0.0-6.2.0] SetAspmEnable) | ||
|- | |- | ||
| 21 || [ | | 21 || [7.0.0+] [[#SetAspmEnable|SetAspmEnable]] ([3.0.0-6.2.0] SetResetUponResumeEnable) | ||
|- | |- | ||
| 22 || [ | | 22 || [7.0.0+] [[#SetResetUponResumeEnable]] ([4.0.0-6.2.0] ResetFunction) | ||
|- | |- | ||
| 23 || [7.0.0+] | | 23 || [7.0.0+] [[#ResetFunction]] | ||
|} | |} | ||
=== QueryFunctions === | === QueryFunctions === | ||
Takes a type-0x6 output buffer containing an array of [[#FunctionState]]. Returns an output s32 ''' | Takes a type-0x6 output buffer containing an array of [[#FunctionState]]. Returns an output s32 '''FunctionStateCount'''. | ||
=== AcquireFunction === | === AcquireFunction === | ||
Line 113: | Line 113: | ||
Takes an input u32 '''FunctionHandle''', an input [[#DmaDirection]], an input u64 '''VirtualAddress''' and an input u32 '''Size'''. Returns an output u64 '''PhysicalAddress'''. | Takes an input u32 '''FunctionHandle''', an input [[#DmaDirection]], an input u64 '''VirtualAddress''' and an input u32 '''Size'''. Returns an output u64 '''PhysicalAddress'''. | ||
=== | === UnmapDmaByProcVa === | ||
Takes an input u32 '''FunctionHandle''' and an input u64 '''PhysicalAddress'''. No output. | Takes an input u32 '''FunctionHandle''' and an input u64 '''PhysicalAddress'''. No output. | ||
=== | === UnmapDmaByBusAddress === | ||
Takes an input u32 '''FunctionHandle''' and an input u64 '''BusAddress'''. No output. | Takes an input u32 '''FunctionHandle''' and an input u64 '''BusAddress'''. No output. | ||
Line 129: | Line 129: | ||
=== AcquireIrq === | === AcquireIrq === | ||
Takes an input u32s '''FunctionHandle''' | Takes an input u32s '''FunctionHandle''', an input [[#IrqType]] and an input s32 '''IrqCount'''. No output. | ||
=== ReleaseIrq === | === ReleaseIrq === | ||
Line 138: | Line 136: | ||
=== SetIrqEnable === | === SetIrqEnable === | ||
Takes an input u32s '''FunctionHandle''', an unknown input u32 and an input bool '''Enable'''. No output. | Takes an input u32s '''FunctionHandle''', an unknown input u32 and an input bool '''Enable'''. No output. | ||
=== GetIrqEvent === | |||
Takes an input u32s '''FunctionHandle''' and an input [[#IrqType]]. Returns an output Event handle. | |||
=== SetAspmEnable === | === SetAspmEnable === | ||
Takes an input u32 '''FunctionHandle''' and an input bool '''Enable'''. No output. | Takes an input u32 '''FunctionHandle''' and an input bool '''Enable'''. No output. | ||
=== SetResetUponResumeEnable === | === SetResetUponResumeEnable === | ||
Line 159: | Line 158: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || | | 0 || GetLoggedState | ||
|- | |- | ||
| 1 || | | 1 || GetLoggedStateEvent | ||
|} | |} | ||
Line 291: | Line 290: | ||
| 0x10 | | 0x10 | ||
| 0x04 | | 0x04 | ||
| ClassCode | | [[#ClassCode|ClassCode]] | ||
|- | |- | ||
| 0x14 | | 0x14 |