1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
/////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1992 NCR Corporation
//
// NCRSDMS.H
//
// This is the include file for the Windows NT NCR MiniPort driver for
// all NCR CAMcores.
//
// Revisions:
//
//
// Note: Search for the word "future" for things that may need to
// be upgraded for SDMS 3.0 or to support other enhanced
// features.
//
/////////////////////////////////////////////////////////////////////////////
#define SDMS_V16 2
#define SDMS_V30 3
#define MAX_NT_HBAS 2
#define MAX_32BIT_SIZE 12288
#define FIRST_ROM_ADDRESS 0x0C0000
#define LAST_ROM_ADDRESS 0x100000
#define ROM_CHECK_STEP 0x800
#define ROM_SIZE 0x8000
#define ROM_ADDRESS_SPACE_SIZE 0x40000
#define MAGIC_STR_1 { 0x42, 0x41, 0x4C, 0x4C, 0x41, 0x52, 0x44, 0x5F, \
0x53, 0x59, 0x4E, 0x45, 0x52, 0x47, 0x59, 0x5F, \
0x52, 0x4F, 0x4D, 0x5F, 0x53, 0x00 }
typedef struct
{
ULONG currentRomAddr;
ULONG scsiBusId;
PVOID romAddrSpace;
PVOID currentVirtAddr;
ULONG hbaCount;
} HWInfo, *PHWInfo;
typedef struct
{
ushort sig; // 00
ushort sizeRem; // 02
ushort sizeQuo; // 04
ushort numReloc; // 06
ushort headSize; // 08
ushort minData; // 0A
ushort maxData; // 0C
ushort initialESP[2]; // 0E
ushort checksum; // 12
ushort initialEIP[2]; // 14
ushort relocOffset; // 18
ushort overlay; // 1A
ushort ooo1; // 1C
} REXHeader;
#define MARK_55 0x00
#define MARK_AA 0x01
#define ROM_TYPE_1 0x0C
#define ROM_TYPE_2 0x0D
#define CORE_VERSION 0x71
#define CHIP_PHYS 0x73
#define CHIP_OFFSET 0x77
#define RAM_OFFSET 0x7b
#define ROM_SIM_STR 0x55
#define REX_OFFSET 0x89
#define gByte(base,offset) (*(unsigned char *)((base)+(offset)))
#define gWord(base,offset) (*(unsigned short *)((base)+(offset)))
#define gLong(base,offset) (*(unsigned long *)((base)+(offset)))
#define AccessRangeROMIndex 0
#define AccessRangeChipIndex 1
#define AccessRangeLocalRAMIndex 2 // If local memory on HBA
typedef struct
{
ulong future[8]; // 00
ulong initOffset; // 20
ulong startOffset; // 24
ulong interruptOffset; // 26
ulong chsOffset; // 28
} CAM32Header;
////////////////////////////////////////////////////////////////////////////
// Scatter/Gather List definitions
////////////////////////////////////////////////////////////////////////////
#define MAX_SG_BRKS 16
typedef struct _SGL {
SGListEntry SgEntry[MAX_SG_BRKS];
} SGL, *PSGL;
|