#include #define FILE_DEVICE_SEGA 0x9c40 // amSramInit #define IOCTL_MXSRAM_PING CTL_CODE(FILE_DEVICE_SEGA, 0x800, METHOD_BUFFERED, FILE_READ_ACCESS) // amSramInit #define IOCTL_MXSRAM_GET_SECTOR_SIZE \ CTL_CODE(FILE_DEVICE_SEGA, 0x801, METHOD_BUFFERED, FILE_READ_ACCESS) #define IOCTL_MXSRAM_GET_VERSION \ CTL_CODE(FILE_DEVICE_SEGA, 0x802, METHOD_BUFFERED, FILE_READ_ACCESS) // EEPROM uses MXSMBUS_GUID device class // DIPSW uses MXSMBUS_GUID device class // Platform uses PLATFORM_GUID device class // amDipswRequestReadByteInternal // amDipswReadByteInternal // amDipswWriteByteInternal // /\ all either use SUPERIO or SMBUS. Which is unknown atm. All use 0x801 // // amDipswGetDriverVersion // /\ uses either SUPERIO or SMBUS. Which is unknown atm. Uses 0x802 // Same as IOCTL_MXSRAM_PING // amHmProbeSuperIoDevice #define IOCTL_MXSUPERIO_PING CTL_CODE(FILE_DEVICE_SEGA, 0x800, METHOD_BUFFERED, FILE_READ_ACCESS) // amHmGetLPCChipId #define IOCTL_MXSUPERIO_READ CTL_CODE(FILE_DEVICE_SEGA, 0x801, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_MXSUPERIO_WRITE CTL_CODE(FILE_DEVICE_SEGA, 0x802, METHOD_BUFFERED, FILE_WRITE_ACCESS) // amHmLpcReadByte #define IOCTL_MXSUPERIO_HWMONITOR_LPC_READ \ CTL_CODE(FILE_DEVICE_SEGA, 0x803, METHOD_BUFFERED, FILE_ANY_ACCESS) // amHmLpcWriteByte #define IOCTL_MXSUPERIO_HWMONITOR_LPC_WRITE \ CTL_CODE(FILE_DEVICE_SEGA, 0x804, METHOD_BUFFERED, FILE_WRITE_ACCESS) #define IOCTL_MXJVS_EXCHANGE CTL_CODE(FILE_DEVICE_SEGA, 0x800, METHOD_BUFFERED, FILE_ANY_ACCESS) // Same as IOCTL_MXSUPERIO_READ // amHmI2CReadByte,amHmI2CWriteByte,amEepromWait #define IOCTL_MXSMBUS_REQUEST CTL_CODE(FILE_DEVICE_SEGA, 0x801, METHOD_BUFFERED, FILE_ANY_ACCESS) // amEepromGetDriverVerision #define IOCTL_MXSMBUS_GET_VERSION \ CTL_CODE(FILE_DEVICE_SEGA, 0x802, METHOD_BUFFERED, FILE_READ_ACCESS) // amEepromI2CReadBlock,amEepromI2CWriteBlock,amHmGetLPCChipId #define IOCTL_MXSMBUS_I2C CTL_CODE(FILE_DEVICE_SEGA, 0x803, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_MXSMBUS_IDK CTL_CODE(FILE_DEVICE_SEGA, 0x807, METHOD_BUFFERED, FILE_READ_ACCESS) #define IOCTL_COLUMBA_READ CTL_CODE(FILE_DEVICE_SEGA, 0x841, METHOD_BUFFERED, FILE_READ_ACCESS) #define IOCTL_MXHWRESET_RESET CTL_CODE(FILE_DEVICE_SEGA, 0x800, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_MXPARALLEL_WRITE_DATA \ CTL_CODE(FILE_DEVICE_SEGA, 0x800, METHOD_BUFFERED, FILE_WRITE_ACCESS) #define IOCTL_MXPARALLEL_READ_DATA \ CTL_CODE(FILE_DEVICE_SEGA, 0x801, METHOD_BUFFERED, FILE_READ_ACCESS) #define IOCTL_MXPARALLEL_WRITE_STATUS \ CTL_CODE(FILE_DEVICE_SEGA, 0x802, METHOD_BUFFERED, FILE_WRITE_ACCESS) #define IOCTL_MXPARALLEL_READ_STATUS \ CTL_CODE(FILE_DEVICE_SEGA, 0x803, METHOD_BUFFERED, FILE_READ_ACCESS) #define IOCTL_MXPARALLEL_WRITE_CTRL_PORT \ CTL_CODE(FILE_DEVICE_SEGA, 0x804, METHOD_BUFFERED, FILE_WRITE_ACCESS) #define IOCTL_MXPARALLEL_READ_CTRL_PORT \ CTL_CODE(FILE_DEVICE_SEGA, 0x805, METHOD_BUFFERED, FILE_READ_ACCESS) #define IOCTL_MXPARALLEL_WRITE_FLAGS \ CTL_CODE(FILE_DEVICE_SEGA, 0x806, METHOD_BUFFERED, FILE_WRITE_ACCESS) #define IOCTL_MXPARALLEL_READ_FLAGS \ CTL_CODE(FILE_DEVICE_SEGA, 0x807, METHOD_BUFFERED, FILE_READ_ACCESS)