Herunterladen Inhalt Inhalt Diese Seite drucken

Phoenix Contact IBS PCI DDK UM Anwenderhandbuch Seite 139

Device driver development kit zu anschaltbaugruppen für pc-systeme mit pci-bus
Inhaltsverzeichnis

Werbung

os_adapt.h
6189A
Die hier definierten Pointer, Strukturen und Macros sind betriebssystemab-
hängig. So sind z.B. die Byte-Lesezugriffe auf die IO-Ports in WindowsNT
durch die Funktion „READ_PORT_UCHAR(addr)" und in VxWorks durch
„sysInByte(addr)" realisiert. Hier ist die Funktion, die „IhrOS" zur Verfü-
gung stellt einzusetzen.
Windows NT:
#ifdef IBS_WIN_NT_VERSION
typedef int T_BIN_SEMAPHORE;
typedef int T_MUTEX_SEMAPHORE;
typedef USIGN8 *IOPORT8;
typedef DEVICE_OBJECT *P_DEVICE_OBJECT;
typedef DRIVER_OBJECT *P_DRIVER_OBJECT;
typedef UNICODE_STRING P_DEVICE_NAME;
...
...
/*
// General macros for reading and writing the IO ports of the Interbus board.
*/
#define IbsReadIOPort(addr) (READ_PORT_UCHAR((addr)))
#define IbsReadIOPort16(addr) (READ_PORT_USHORT((addr)))
#define IbsWriteIOPort(addr, dataByte) (WRITE_PORT_UCHAR((addr),
(UCHAR)dataByte))
#define IbsWriteIOPort16(addr, dataByte) (WRITE_PORT_USHORT((addr), (US-
HORT)dataByte))
...
...
VxWorks:
#ifdef IBS_VXWORKS_VERSION
typedef SEM_ID T_BIN_SEMAPHORE;
typedef SEM_ID T_MUTEX_SEMAPHORE;
typedef short int IOPORT8;
/* device object pointer */
typedef struct {void *DeviceExtension; } BUF_P_DEVICE_OBJECT,
*P_DEVICE_OBJECT;
typedef int *P_DRIVER_OBJECT;
typedef char *P_DEVICE_NAME;
...
...
/*
// General macros for reading and writing the IO ports of the Interbus board.
*/
#define IbsReadIOPort(addr) (sysInByte((addr)))
#define IbsReadIOPort16(addr) (sysInWord((addr)))
ToDo (Anpassung an Betriebssysteme)
/*selects the WindowsNT-funtionality */
/* io-port access */
/* device object pointer */
/* driver object pointer */
/* selects the VxWorks-funtionality */
/* io-port access */
/* driver object pointer */
/* device name */
/* device name */
6-9

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis