|
ReactOS 0.4.17-dev-806-gffa4164
|

Go to the source code of this file.
Classes | |
| struct | _ARBITER_SEED_WINDOW |
| Seeds a range list with the resources the bus actually decodes: every descriptor of the arbiter's resource type becomes one unowned range. More... | |
Macros | |
| #define | NDEBUG |
Typedefs | |
| typedef struct _ARBITER_SEED_WINDOW | ARBITER_SEED_WINDOW |
| Seeds a range list with the resources the bus actually decodes: every descriptor of the arbiter's resource type becomes one unowned range. | |
| typedef struct _ARBITER_SEED_WINDOW * | PARBITER_SEED_WINDOW |
Functions | |
| static VOID | ArbpAcquireLock (_In_ PARBITER_INSTANCE Arbiter) |
| Acquires the arbiter's per-instance lock: one arbitration at a time. | |
| static VOID | ArbpReleaseLock (_In_ PARBITER_INSTANCE Arbiter) |
| Releases the arbiter's per-instance lock. | |
| NTSTATUS NTAPI | ArbiterLibQueryArbitrate (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_QUERY_ARBITRATE_PARAMETERS Parameters) |
| The QueryArbitrate action default: reports that this arbiter is willing to arbitrate the given list. | |
| NTSTATUS NTAPI | ArbiterLibAddReserved (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ADD_RESERVED_PARAMETERS Parameters) |
| The AddReserved action default: nothing to reserve. | |
| NTSTATUS NTAPI | ArbiterLibHandler (_In_ PVOID Context, _In_ ARBITER_ACTION Action, _Inout_ PARBITER_PARAMETERS Parameters) |
| The single ARBITER_ACTION dispatcher every exported ARBITER_INTERFACE points its ArbiterHandler at; Context is the ARBITER_INSTANCE. | |
| static NTSTATUS | ArbpSeedRangeList (_In_ PARBITER_INSTANCE Arbiter, _In_ ULONG ResourceCount, _In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Resources, _Inout_ PRTL_RANGE_LIST RangeList) |
| NTSTATUS NTAPI | ArbiterLibInitializeRangeList (_In_ PARBITER_INSTANCE Arbiter, _In_ ULONG ResourceCount, _In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Resources, _Inout_ PRTL_RANGE_LIST RangeList) |
| The InitializeRangeList callback default. | |
| NTSTATUS NTAPI | ArbiterLibStartArbiter (_In_ PARBITER_INSTANCE Arbiter, _In_ PCM_RESOURCE_LIST StartResources) |
| The StartArbiter action default: seeds the committed allocation with the windows the bus decodes, so arbitration starts from the hardware's real extent. | |
| VOID NTAPI | ArbiterLibReserveRange (_In_ PARBITER_INSTANCE Arbiter, _In_ ULONGLONG Start, _In_ ULONGLONG End, _In_opt_ PVOID Owner, _In_ BOOLEAN Shared) |
| Commits a single [Start, End] range into the arbiter as an ordinary allocation owned by Owner. | |
| VOID NTAPI | ArbiterLibReleaseResources (_In_ PARBITER_INSTANCE Arbiter, _In_ PVOID Owner) |
| Releases every committed range owned by Owner. | |
Seeds a range list with the resources the bus actually decodes: every descriptor of the arbiter's resource type becomes one unowned range.
| [in] | Arbiter | The arbiter instance whose UnpackResource decodes the descriptors and whose resource type filters them. |
| [in] | ResourceCount | The number of descriptors in Resources. |
| [in] | Resources | The CM partial resource descriptors describing the decoded windows. |
| [in,out] | RangeList | The range list to rebuild from the descriptors. What lands in it is everything outside those windows, because a range list records what is unavailable. |
One window a bus decodes, while the windows are being sorted.
| typedef struct _ARBITER_SEED_WINDOW * PARBITER_SEED_WINDOW |
| NTSTATUS NTAPI ArbiterLibAddReserved | ( | _In_ PARBITER_INSTANCE | Arbiter, |
| _Inout_ PARBITER_ADD_RESERVED_PARAMETERS | Parameters | ||
| ) |
The AddReserved action default: nothing to reserve.
| [in] | Arbiter | The arbiter instance the reservation was aimed at. |
| [in,out] | Parameters | The action parameters (pre-Vista builds receive the requirement and resource descriptors directly). |
Definition at line 112 of file handler.c.
Referenced by ArbiterLibInitializeInstance().
| NTSTATUS NTAPI ArbiterLibHandler | ( | _In_ PVOID | Context, |
| _In_ ARBITER_ACTION | Action, | ||
| _Inout_ PARBITER_PARAMETERS | Parameters | ||
| ) |
The single ARBITER_ACTION dispatcher every exported ARBITER_INTERFACE points its ArbiterHandler at; Context is the ARBITER_INSTANCE.
| [in] | Context | The ARBITER_INSTANCE the interface was created for. |
| [in] | Action | The ARBITER_ACTION to perform. |
| [in,out] | Parameters | The parameters union matching the action. |
Definition at line 164 of file handler.c.
Referenced by PciArbiterConstructor().
| NTSTATUS NTAPI ArbiterLibInitializeRangeList | ( | _In_ PARBITER_INSTANCE | Arbiter, |
| _In_ ULONG | ResourceCount, | ||
| _In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR | Resources, | ||
| _Inout_ PRTL_RANGE_LIST | RangeList | ||
| ) |
The InitializeRangeList callback default.
| [in] | Arbiter | The arbiter instance the range list belongs to. |
| [in] | ResourceCount | The number of descriptors in Resources. |
| [in] | Resources | The CM partial resource descriptors describing the decoded windows. |
| [in,out] | RangeList | The range list to rebuild from the descriptors. |
Definition at line 440 of file handler.c.
Referenced by ArbiterLibInitializeInstance().
| NTSTATUS NTAPI ArbiterLibQueryArbitrate | ( | _In_ PARBITER_INSTANCE | Arbiter, |
| _Inout_ PARBITER_QUERY_ARBITRATE_PARAMETERS | Parameters | ||
| ) |
The QueryArbitrate action default: reports that this arbiter is willing to arbitrate the given list.
| [in] | Arbiter | The arbiter instance being queried. |
| [in,out] | Parameters | The action parameters carrying the arbitration list (pre-Vista builds receive the list directly). |
Definition at line 73 of file handler.c.
Referenced by ArbiterLibInitializeInstance().
Releases every committed range owned by Owner.
| [in] | Arbiter | The arbiter instance to release the ranges from. |
| [in] | Owner | The owning device object (a removed device's PDO). |
Definition at line 561 of file handler.c.
| VOID NTAPI ArbiterLibReserveRange | ( | _In_ PARBITER_INSTANCE | Arbiter, |
| _In_ ULONGLONG | Start, | ||
| _In_ ULONGLONG | End, | ||
| _In_opt_ PVOID | Owner, | ||
| _In_ BOOLEAN | Shared | ||
| ) |
Commits a single [Start, End] range into the arbiter as an ordinary allocation owned by Owner.
| [in] | Arbiter | The arbiter instance to reserve the range in. |
| [in] | Start | The first address (or unit) of the range. |
| [in] | End | The last address (or unit) of the range, inclusive. |
| [in] | Owner | The owning device object, or NULL for a system reservation. |
| [in] | Shared | TRUE if the range may be shared with other shareable owners. |
Definition at line 528 of file handler.c.
| NTSTATUS NTAPI ArbiterLibStartArbiter | ( | _In_ PARBITER_INSTANCE | Arbiter, |
| _In_ PCM_RESOURCE_LIST | StartResources | ||
| ) |
The StartArbiter action default: seeds the committed allocation with the windows the bus decodes, so arbitration starts from the hardware's real extent.
| [in] | Arbiter | The arbiter instance being started. |
| [in] | StartResources | The bus's decoded resources; NULL or empty means nothing to seed. |
Definition at line 470 of file handler.c.
Referenced by ArbiterLibInitializeInstance().
|
static |
Acquires the arbiter's per-instance lock: one arbitration at a time.
| [in] | Arbiter | The arbiter instance to lock. |
Definition at line 30 of file handler.c.
Referenced by ArbiterLibHandler(), ArbiterLibReleaseResources(), and ArbiterLibReserveRange().
|
static |
Releases the arbiter's per-instance lock.
| [in] | Arbiter | The arbiter instance to unlock. |
Definition at line 47 of file handler.c.
Referenced by ArbiterLibHandler(), ArbiterLibReleaseResources(), and ArbiterLibReserveRange().
|
static |
Definition at line 319 of file handler.c.
Referenced by ArbiterLibInitializeRangeList(), and ArbiterLibStartArbiter().