//
// IOPM Definitions
//
+#define IOPM_COUNT 1
+#define IOPM_SIZE 8192
+#define IOPM_FULL_SIZE 8196
#define IO_ACCESS_MAP_NONE 0
+#define IOPM_DIRECTION_MAP_SIZE 32
#define IOPM_OFFSET FIELD_OFFSET(KTSS, IoMaps[0].IoMap)
#define KiComputeIopmOffset(MapNumber) \
(MapNumber == IO_ACCESS_MAP_NONE) ? \
//
typedef struct _KiIoAccessMap
{
- UCHAR DirectionMap[32];
- UCHAR IoMap[8196];
+ UCHAR DirectionMap[IOPM_DIRECTION_MAP_SIZE];
+ UCHAR IoMap[IOPM_FULL_SIZE];
} KIIO_ACCESS_MAP;
typedef struct _KTSS
USHORT Reserved8;
USHORT Flags;
USHORT IoMapBase;
- KIIO_ACCESS_MAP IoMaps[1];
- UCHAR IntDirectionMap[32];
+ KIIO_ACCESS_MAP IoMaps[IOPM_COUNT];
+ UCHAR IntDirectionMap[IOPM_DIRECTION_MAP_SIZE];
} KTSS, *PKTSS;
//