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.

110 lines
3.1 KiB

  1. //******************************************************************************/
  2. //* *
  3. //* services.h - *
  4. //* *
  5. //* Copyright (c) C-Cube Microsystems 1996 *
  6. //* All Rights Reserved. *
  7. //* *
  8. //* Use of C-Cube Microsystems code is governed by terms and conditions *
  9. //* stated in the accompanying licensing statement. *
  10. //* *
  11. //******************************************************************************/
  12. //
  13. // VxDJmp
  14. //
  15. #ifdef VXD
  16. #include <vtoolsc.h>
  17. #endif
  18. #ifndef _SERVICES_H_
  19. #define _SERVICES_H_
  20. #define LPBYTE BYTE FAR *
  21. #define ZVDVXD_Major 1
  22. #define ZVDVXD_Minor 0
  23. #define ZVDVXD_DeviceID 0x3180
  24. #define ZVDVXD_Init_Order 0x7f000000
  25. #define EXCA_BASE 0x800
  26. #define EXCA_WS_EN 0x11
  27. #define EXCA_WS_PLUS 0x13
  28. #define WS_ON 0x80
  29. #define WS_OFF 0xC0
  30. #define WS_PLUS_0 0x00
  31. #define WS_PLUS_1 0x40
  32. #define WS_PLUS_2 0x80
  33. #define WS_PLUS_3 0xC0
  34. // Return Defines
  35. #define ZVDVXD_OK 0x00000000
  36. #define ZVDVXD_NOTREADY 0x00000001
  37. #define ZVDVXD_FAIL 0x00000002
  38. // Structures
  39. #pragma pack( 1 )
  40. typedef struct tagRESINFO
  41. {
  42. WORD wNumMemWindows; // Num memory windows
  43. DWORD dwMemBase[16]; // memory window base
  44. DWORD dwMemLength[16]; // memory window length
  45. WORD wNumIOPorts; // num IO ports
  46. WORD wIOPortBase[16]; // IO port base
  47. WORD wIOPortLength[16]; // IO port length
  48. WORD wNumIRQChannels; // num IRQ info
  49. BYTE bIRQChannel[16]; // IRQ list
  50. WORD wNumDMAChannels; // num DMA channels
  51. BYTE bDMAChannel[16]; // DMA list
  52. WORD wSocket; // Socket
  53. }
  54. RESINFO, *PRESINFO, FAR *LPRESINFO;
  55. #pragma
  56. typedef struct _tagPCICINFO
  57. {
  58. CHAR lpzRoot[64]; // Device root location
  59. CHAR lpzVendorID[256]; // Vendor ID string
  60. }
  61. PCICINFO, *PPCICINFO, FAR *LPPCICINFO;
  62. // Prototypes
  63. DWORD _cdecl ZVDVXD_GetResInfo( DWORD dwDevice, LPRESINFO lpResInfo );
  64. DWORD _cdecl ZVDVXD_EnablePCIC( DWORD dwDevice );
  65. DWORD _cdecl ZVDVXD_DisablePCIC( DWORD dwDevice );
  66. DWORD _cdecl ZVDVXD_GetPCICInfo( DWORD dwDevice, LPPCICINFO lpPCICInfo );
  67. DWORD _cdecl ZVDVXD_GetExCAReg( DWORD dwDevice, WORD wReg, LPBYTE lpbValue );
  68. DWORD _cdecl ZVDVXD_SetExCAReg( DWORD dwDevice, WORD wReg, BYTE bValue );
  69. DWORD _cdecl ZVDVXD_GetPCIReg( DWORD dwDevice, WORD wReg, LPBYTE lpbValue );
  70. DWORD _cdecl ZVDVXD_SetPCIReg( DWORD dwDevice, WORD wReg, BYTE bValue );
  71. // Service Table
  72. #ifdef VXD
  73. Begin_VxD_Service_Table(ZVDVXD)
  74. VxD_Service(ZVDVXD_GetResInfo)
  75. VxD_Service(ZVDVXD_EnablePCIC)
  76. VxD_Service(ZVDVXD_DisablePCIC)
  77. VxD_Service(ZVDVXD_GetPCICInfo)
  78. VxD_Service(ZVDVXD_GetExCAReg)
  79. VxD_Service(ZVDVXD_SetExCAReg)
  80. VxD_Service(ZVDVXD_GetPCIReg)
  81. VxD_Service(ZVDVXD_SetPCIReg)
  82. End_VxD_Service_Table
  83. #endif
  84. #endif _SERVICES_H_