Mercurial > games > semicongine
comparison fuhtark_test/include/ddk/smbus.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 1 /* | |
| 2 * smbus.h | |
| 3 * | |
| 4 * System Management Bus driver interface | |
| 5 * | |
| 6 * This file is part of the w32api package. | |
| 7 * | |
| 8 * Contributors: | |
| 9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> | |
| 10 * | |
| 11 * THIS SOFTWARE IS NOT COPYRIGHTED | |
| 12 * | |
| 13 * This source code is offered for use in the public domain. You may | |
| 14 * use, modify or distribute it freely. | |
| 15 * | |
| 16 * This code is distributed in the hope that it will be useful but | |
| 17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | |
| 18 * DISCLAIMED. This includes but is not limited to warranties of | |
| 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
| 20 * | |
| 21 */ | |
| 22 | |
| 23 #ifndef __SMBUS_H | |
| 24 #define __SMBUS_H | |
| 25 | |
| 26 #ifdef __cplusplus | |
| 27 extern "C" { | |
| 28 #endif | |
| 29 | |
| 30 #if !defined(SMBCLASS) | |
| 31 #define SMBCLASSAPI DECLSPEC_IMPORT | |
| 32 #else | |
| 33 #define SMBCLASSAPI | |
| 34 #endif | |
| 35 | |
| 36 #define SMB_BUS_REQUEST \ | |
| 37 CTL_CODE(FILE_DEVICE_UNKNOWN, 0, METHOD_NEITHER, FILE_ANY_ACCESS) | |
| 38 | |
| 39 #define SMB_DEREGISTER_ALARM_NOTIFY \ | |
| 40 CTL_CODE(FILE_DEVICE_UNKNOWN, 2, METHOD_NEITHER, FILE_ANY_ACCESS) | |
| 41 | |
| 42 #define SMB_REGISTER_ALARM_NOTIFY \ | |
| 43 CTL_CODE(FILE_DEVICE_UNKNOWN, 1, METHOD_NEITHER, FILE_ANY_ACCESS) | |
| 44 | |
| 45 | |
| 46 struct _SMB_CLASS; | |
| 47 | |
| 48 #define SMB_MAX_DATA_SIZE 32 | |
| 49 | |
| 50 /* SMB_REQUEST.Status constants */ | |
| 51 #define SMB_STATUS_OK 0x00 | |
| 52 #define SMB_UNKNOWN_FAILURE 0x07 | |
| 53 #define SMB_ADDRESS_NOT_ACKNOWLEDGED 0x10 | |
| 54 #define SMB_DEVICE_ERROR 0x11 | |
| 55 #define SMB_COMMAND_ACCESS_DENIED 0x12 | |
| 56 #define SMB_UNKNOWN_ERROR 0x13 | |
| 57 #define SMB_DEVICE_ACCESS_DENIED 0x17 | |
| 58 #define SMB_TIMEOUT 0x18 | |
| 59 #define SMB_UNSUPPORTED_PROTOCOL 0x19 | |
| 60 #define SMB_BUS_BUSY 0x1A | |
| 61 | |
| 62 /* SMB_REQUEST.Protocol constants */ | |
| 63 #define SMB_WRITE_QUICK 0x00 | |
| 64 #define SMB_READ_QUICK 0x01 | |
| 65 #define SMB_SEND_BYTE 0x02 | |
| 66 #define SMB_RECEIVE_BYTE 0x03 | |
| 67 #define SMB_WRITE_BYTE 0x04 | |
| 68 #define SMB_READ_BYTE 0x05 | |
| 69 #define SMB_WRITE_WORD 0x06 | |
| 70 #define SMB_READ_WORD 0x07 | |
| 71 #define SMB_WRITE_BLOCK 0x08 | |
| 72 #define SMB_READ_BLOCK 0x09 | |
| 73 #define SMB_PROCESS_CALL 0x0A | |
| 74 #define SMB_MAXIMUM_PROTOCOL 0x0A | |
| 75 | |
| 76 typedef struct _SMB_REQUEST { | |
| 77 UCHAR Status; | |
| 78 UCHAR Protocol; | |
| 79 UCHAR Address; | |
| 80 UCHAR Command; | |
| 81 UCHAR BlockLength; | |
| 82 UCHAR Data[SMB_MAX_DATA_SIZE]; | |
| 83 } SMB_REQUEST, *PSMB_REQUEST; | |
| 84 | |
| 85 typedef VOID | |
| 86 (NTAPI *SMB_ALARM_NOTIFY)( | |
| 87 PVOID Context, | |
| 88 UCHAR Address, | |
| 89 USHORT Data); | |
| 90 | |
| 91 typedef struct _SMB_REGISTER_ALARM { | |
| 92 UCHAR MinAddress; | |
| 93 UCHAR MaxAddress; | |
| 94 SMB_ALARM_NOTIFY NotifyFunction; | |
| 95 PVOID NotifyContext; | |
| 96 } SMB_REGISTER_ALARM, *PSMB_REGISTER_ALARM; | |
| 97 | |
| 98 /* SMB_CLASS.XxxVersion constants */ | |
| 99 #define SMB_CLASS_MAJOR_VERSION 0x0001 | |
| 100 #define SMB_CLASS_MINOR_VERSION 0x0000 | |
| 101 | |
| 102 typedef NTSTATUS | |
| 103 (DDKAPI *SMB_RESET_DEVICE)( | |
| 104 IN struct _SMB_CLASS *SmbClass, | |
| 105 IN PVOID SmbMiniport); | |
| 106 | |
| 107 typedef VOID | |
| 108 (DDKAPI *SMB_START_IO)( | |
| 109 IN struct _SMB_CLASS *SmbClass, | |
| 110 IN PVOID SmbMiniport); | |
| 111 | |
| 112 typedef NTSTATUS | |
| 113 (DDKAPI *SMB_STOP_DEVICE)( | |
| 114 IN struct _SMB_CLASS *SmbClass, | |
| 115 IN PVOID SmbMiniport); | |
| 116 | |
| 117 typedef struct _SMB_CLASS { | |
| 118 USHORT MajorVersion; | |
| 119 USHORT MinorVersion; | |
| 120 PVOID Miniport; | |
| 121 PDEVICE_OBJECT DeviceObject; | |
| 122 PDEVICE_OBJECT PDO; | |
| 123 PDEVICE_OBJECT LowerDeviceObject; | |
| 124 PIRP CurrentIrp; | |
| 125 PSMB_REQUEST CurrentSmb; | |
| 126 SMB_RESET_DEVICE ResetDevice; | |
| 127 SMB_START_IO StartIo; | |
| 128 SMB_STOP_DEVICE StopDevice; | |
| 129 } SMB_CLASS, *PSMB_CLASS; | |
| 130 | |
| 131 SMBCLASSAPI | |
| 132 VOID | |
| 133 DDKAPI | |
| 134 SmbClassAlarm( | |
| 135 IN PSMB_CLASS SmbClass, | |
| 136 IN UCHAR Address, | |
| 137 IN USHORT Data); | |
| 138 | |
| 139 SMBCLASSAPI | |
| 140 VOID | |
| 141 DDKAPI | |
| 142 SmbClassCompleteRequest( | |
| 143 IN PSMB_CLASS SmbClass); | |
| 144 | |
| 145 typedef NTSTATUS | |
| 146 (DDKAPI *PSMB_INITIALIZE_MINIPORT)( | |
| 147 IN PSMB_CLASS SmbClass, | |
| 148 IN PVOID MiniportExtension, | |
| 149 IN PVOID MiniportContext); | |
| 150 | |
| 151 SMBCLASSAPI | |
| 152 NTSTATUS | |
| 153 DDKAPI | |
| 154 SmbClassCreateFdo( | |
| 155 IN PDRIVER_OBJECT DriverObject, | |
| 156 IN PDEVICE_OBJECT PDO, | |
| 157 IN ULONG MiniportExtensionSize, | |
| 158 IN PSMB_INITIALIZE_MINIPORT MiniportInitialize, | |
| 159 IN PVOID MiniportContext, | |
| 160 OUT PDEVICE_OBJECT *FDO); | |
| 161 | |
| 162 SMBCLASSAPI | |
| 163 NTSTATUS | |
| 164 DDKAPI | |
| 165 SmbClassInitializeDevice( | |
| 166 IN ULONG MajorVersion, | |
| 167 IN ULONG MinorVersion, | |
| 168 IN PDRIVER_OBJECT DriverObject); | |
| 169 | |
| 170 SMBCLASSAPI | |
| 171 VOID | |
| 172 DDKAPI | |
| 173 SmbClassLockDevice( | |
| 174 IN PSMB_CLASS SmbClass); | |
| 175 | |
| 176 SMBCLASSAPI | |
| 177 VOID | |
| 178 DDKAPI | |
| 179 SmbClassUnlockDevice( | |
| 180 IN PSMB_CLASS SmbClass); | |
| 181 | |
| 182 #ifdef __cplusplus | |
| 183 } | |
| 184 #endif | |
| 185 | |
| 186 #endif /* __SMBUS_H */ |
