ReactOS 0.4.17-dev-116-ga4b6fe9
pciide.c File Reference
#include "pciide.h"
#include <debug.h>
Include dependency graph for pciide.c:

Go to the source code of this file.

Macros

#define NDEBUG
 

Functions

IDE_CHANNEL_STATE NTAPI PciIdeChannelEnabled (IN PVOID DeviceExtension, IN ULONG Channel)
 
BOOLEAN NTAPI PciIdeSyncAccessRequired (IN PVOID DeviceExtension)
 
ULONG NTAPI PciIdeUseDma (IN PVOID DeviceExtension, IN PUCHAR CdbCommand, IN PUCHAR Slave)
 
NTSTATUS NTAPI PciIdeGetControllerProperties (IN PVOID DeviceExtension, OUT PIDE_CONTROLLER_PROPERTIES ControllerProperties)
 
NTSTATUS NTAPI DriverEntry (IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
 

Macro Definition Documentation

◆ NDEBUG

#define NDEBUG

Definition at line 11 of file pciide.c.

Function Documentation

◆ DriverEntry()

NTSTATUS NTAPI DriverEntry ( IN PDRIVER_OBJECT  DriverObject,
IN PUNICODE_STRING  RegistryPath 
)

Definition at line 89 of file pciide.c.

92{
94
99 0);
100
101 return Status;
102}
LONG NTSTATUS
Definition: precomp.h:26
Status
Definition: gdiplustypes.h:25
NTSTATUS NTAPI PciIdeGetControllerProperties(IN PVOID DeviceExtension, OUT PIDE_CONTROLLER_PROPERTIES ControllerProperties)
Definition: pciide.c:46
NTSTATUS NTAPI PciIdeXInitialize(_In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath, _In_ PCONTROLLER_PROPERTIES HwGetControllerProperties, _In_ ULONG ExtensionSize)
Definition: pciidex.c:514
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
Definition: wdfdriver.h:215
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213

◆ PciIdeChannelEnabled()

IDE_CHANNEL_STATE NTAPI PciIdeChannelEnabled ( IN PVOID  DeviceExtension,
IN ULONG  Channel 
)

Definition at line 15 of file pciide.c.

18{
19 DPRINT("PciIdeChannelEnabled(%p, %lu)\n", DeviceExtension, Channel);
20
22}
@ ChannelStateUnknown
Definition: ide.h:199
_In_ ULONG Channel
Definition: pciidex.h:74
#define DPRINT
Definition: sndvol32.h:73

Referenced by PciIdeGetControllerProperties().

◆ PciIdeGetControllerProperties()

NTSTATUS NTAPI PciIdeGetControllerProperties ( IN PVOID  DeviceExtension,
OUT PIDE_CONTROLLER_PROPERTIES  ControllerProperties 
)

Definition at line 46 of file pciide.c.

49{
50 ULONG SupportedMode;
51 USHORT PciCommand;
52
53 if (ControllerProperties->Size != sizeof(IDE_CONTROLLER_PROPERTIES))
55
56 ControllerProperties->PciIdeChannelEnabled = PciIdeChannelEnabled;
57 ControllerProperties->PciIdeSyncAccessRequired = PciIdeSyncAccessRequired;
58 ControllerProperties->IgnoreActiveBitForAtaDevice = FALSE;
59 ControllerProperties->AlwaysClearBusMasterInterrupt = TRUE;
60 ControllerProperties->PciIdeUseDma = PciIdeUseDma;
61 ControllerProperties->AlignmentRequirement = 1;
62
63 PciIdeXGetBusData(DeviceExtension,
64 &PciCommand,
66 sizeof(PciCommand));
67 if (!(PciCommand & PCI_ENABLE_BUS_MASTER))
68 {
69 SupportedMode = PIO_MODE0 | PIO_MODE1 | PIO_MODE2 | PIO_MODE3 | PIO_MODE4;
70 }
71 else
72 {
73 SupportedMode = PIO_MODE0 | PIO_MODE1 | PIO_MODE2 | PIO_MODE3 | PIO_MODE4 |
78 }
79
80 ControllerProperties->SupportedTransferMode[0][0] =
81 ControllerProperties->SupportedTransferMode[0][1] =
82 ControllerProperties->SupportedTransferMode[1][0] =
83 ControllerProperties->SupportedTransferMode[1][1] = SupportedMode;
84
85 return STATUS_SUCCESS;
86}
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define SWDMA_MODE2
Definition: ide.h:285
#define UDMA_MODE6
Definition: ide.h:297
#define UDMA_MODE0
Definition: ide.h:291
#define UDMA_MODE2
Definition: ide.h:293
#define PIO_MODE4
Definition: ide.h:281
#define MWDMA_MODE0
Definition: ide.h:287
#define PIO_MODE0
Definition: ide.h:277
#define UDMA_MODE4
Definition: ide.h:295
#define PIO_MODE2
Definition: ide.h:279
#define UDMA_MODE1
Definition: ide.h:292
#define PIO_MODE3
Definition: ide.h:280
#define UDMA_MODE5
Definition: ide.h:296
#define SWDMA_MODE1
Definition: ide.h:284
#define PIO_MODE1
Definition: ide.h:278
#define SWDMA_MODE0
Definition: ide.h:283
#define MWDMA_MODE1
Definition: ide.h:288
#define MWDMA_MODE2
Definition: ide.h:289
#define UDMA_MODE3
Definition: ide.h:294
#define STATUS_REVISION_MISMATCH
Definition: ntstatus.h:419
BOOLEAN NTAPI PciIdeSyncAccessRequired(IN PVOID DeviceExtension)
Definition: pciide.c:25
IDE_CHANNEL_STATE NTAPI PciIdeChannelEnabled(IN PVOID DeviceExtension, IN ULONG Channel)
Definition: pciide.c:15
ULONG NTAPI PciIdeUseDma(IN PVOID DeviceExtension, IN PUCHAR CdbCommand, IN PUCHAR Slave)
Definition: pciide.c:34
unsigned short USHORT
Definition: pedump.c:61
#define STATUS_SUCCESS
Definition: shellext.h:65
NTSTATUS NTAPI PciIdeXGetBusData(_In_ PVOID DeviceExtension, _Out_writes_bytes_all_(BufferLength) PVOID Buffer, _In_ ULONG ConfigDataOffset, _In_ ULONG BufferLength)
Definition: miniport.c:59
Definition: shell.h:41
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
uint32_t ULONG
Definition: typedefs.h:59
#define PCI_ENABLE_BUS_MASTER
Definition: iotypes.h:3620

Referenced by DriverEntry(), and PciIdeXFdoStartDevice().

◆ PciIdeSyncAccessRequired()

BOOLEAN NTAPI PciIdeSyncAccessRequired ( IN PVOID  DeviceExtension)

Definition at line 25 of file pciide.c.

27{
28 DPRINT("PciIdeSyncAccessRequired %p\n", DeviceExtension);
29
30 return FALSE;
31}

Referenced by PciIdeGetControllerProperties().

◆ PciIdeUseDma()

ULONG NTAPI PciIdeUseDma ( IN PVOID  DeviceExtension,
IN PUCHAR  CdbCommand,
IN PUCHAR  Slave 
)

Definition at line 34 of file pciide.c.

38{
39 DPRINT("PciIdeUseDma(%p %p %p)\n", DeviceExtension, CdbCommand, Slave);
40
41 /* Nothing should prevent us to use DMA */
42 return 1;
43}

Referenced by PciIdeGetControllerProperties().