Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//==========================================================================;
//
// Gpio.H
// Gpio Class declaration
// Based on code from ATI Technologies Inc. Copyright (c) 1996 - 1998
//
//
//==========================================================================;
#ifndef _GPIO_H_
#define _GPIO_H_
#include "i2cgpio.h"
#define GPIO_TIMELIMIT_OPENPROVIDER 50000000 // 5 seconds in 100 nsec.
#define GPIO_TUNER_MODE_SELECT_PIN 0x8
#define GPIO_VSB_RESET_PIN 0x1
#define GPIO_TUNER_PINS (GPIO_TUNER_MODE_SELECT_PIN | GPIO_VSB_RESET_PIN)
#define GPIO_TUNER_MODE_ATSC GPIO_TUNER_MODE_SELECT_PIN
#define GPIO_TUNER_MODE_NTSC 0
#define GPIO_VSB_ON GPIO_VSB_RESET_PIN
#define GPIO_VSB_OFF 0
#define GPIO_VSB_RESET 0x0
#define GPIO_VSB_SET 0x1
// GPIO class object .
// Provides functionality to obtain a GPIO interface, Lock GPIO for
// exclusive use, querying the GPIO provider, write/read GPIO and
// general access to GPIO
class CGpio { public: // constructor
CGpio ( PDEVICE_OBJECT pDeviceObject, NTSTATUS * pStatus); // PVOID operator new ( UINT size_t, PVOID pAllocation);
// Attributes
private:
// GPIO Provider related
GPIOINTERFACE m_gpioProviderInterface; PDEVICE_OBJECT m_pdoDriver; DWORD m_dwGPIOAccessKey;
// Implementation
public:
BOOL InitializeAttachGPIOProvider( GPIOINTERFACE * pGPIOInterface, PDEVICE_OBJECT pDeviceObject); BOOL LocateAttachGPIOProvider ( GPIOINTERFACE * pGPIOInterface, PDEVICE_OBJECT pDeviceObject, int nIrpMajorFunction);
BOOL QueryGPIOProvider ( PGPIOControl pgpioAccessBlock); BOOL LockGPIOProviderEx ( PGPIOControl pgpioAccessBlock); BOOL ReleaseGPIOProvider ( PGPIOControl pgpioAccessBlock); BOOL AccessGPIOProvider ( PGPIOControl pgpioAccessBlock); BOOL WriteGPIO ( PGPIOControl pgpioAccessBlock); BOOL ReadGPIO ( PGPIOControl pgpioAccessBlock); //BOOL AccessGPIOProvider ( PDEVICE_OBJECT pdoClient, PGPIOControl pgpioAccessBlock);
//BOOL WriteGPIO ( PDEVICE_OBJECT pdoClient, PGPIOControl pgpioAccessBlock);
//BOOL ReadGPIO ( PDEVICE_OBJECT pdoClient, PGPIOControl pgpioAccessBlock);
BOOL WriteGPIO ( UCHAR *p_uchPin, UCHAR *p_uchValue); BOOL ReadGPIO ( UCHAR *p_uchPin, UCHAR *p_uchValue);
};
#endif // _GPIO_H_
|