The structure of the module map begins with a header that specifies
the number of class entries and the length of each:
Table 1. Module map headerField Name |
Field Type |
Offset |
Length |
Description |
---|
BMMP_HEADER |
Char |
0 |
24 |
|
BMMP_EYE_CATCHER |
Char |
0 |
8 |
Constant 'IEWBMMP' |
BMMP_LENGTH |
Binary |
8 |
4 |
Length including header |
BMMP_VERSION |
Binary |
12 |
1 |
Structure version=1 or 2 |
* |
|
13 |
3 |
*Reserved* |
BMMP_HEADER_LENGTH |
Binary |
15 |
2 |
Length to BMMP_ENTRIES_ |
BMMP_ENTRY_LENGTH |
Binary |
18 |
2 |
Length of one entry |
BMMP_ENTRY_COUNT |
Binary |
20 |
4 |
Number of entries |
BMMP_ENTRIES |
|
24 |
|
Start of entries |
Each of the map entries has the following format:
Table 2. Map entry formatField Name |
Field Type |
Offset |
Length |
Description |
---|
BMMP_ENTRY |
|
|
24 |
|
BMMP_TYPE |
Char |
0 |
1 |
Type of map entry (G=segment, C=class, S=section,
E=entry point, P=part) |
BMMP_FLAGS |
Binary |
1 |
1 |
|
BMMP_XPLINK |
Bit |
1.0 |
1 |
1=XPLINK (types E/P only) |
BMMP_DATA |
Bit |
1.1 |
1 |
1=DATA (types E/P only) |
BMMP_TIME |
Bit |
1.2 |
1 |
1=Timestamp present in compile unit information |
BMMP_AMODE |
Binary |
2 |
1 |
Amode (types E/P only) |
BMMP_RMODE |
Binary |
2 |
1 |
Rmode (types G/C only) |
* |
|
3 |
1 |
*Reserved* |
BMMP_SEGNUM |
Binary |
4 |
2 |
Segment Number |
BMMP_NAME_LEN |
Binary |
6 |
2 |
Length of name |
BMMP_NAME_OFF |
Binary |
8 |
4 |
Offset of name from start of map |
BMMP_OFF |
Binary |
12 |
4 |
Offset of the class/element from start of segment |
BMMP_CU_INFO_OFF |
Binary |
16 |
4 |
Offset to compile unit info from start of map.
Zero if none. |
BMMP_NEXT |
Binary |
20 |
4 |
Offset from start of map to next entry of same
type |
Each entry for compile unit information has the following format:
Table 3. Compile unit informationField Name |
Field Type |
Offset |
Length |
Description |
---|
BMMP_CU_INFO |
|
0 |
20 |
|
BMMP_ORIG_NAME_LEN |
Binary |
0 |
2 |
Length of data set or path name |
BMMP_ORIG_MEM_LEN |
Binary |
2 |
2 |
Length of member name |
BMMP_ORIG_NAME_OFF |
Binary |
4 |
4 |
Offset to data set or path name from start
of the map |
BMMP_ORIG_MEM_OFF |
Binary |
8 |
4 |
Offset to member name from start of the map |
BMMP_TS_DATE |
Char |
12 |
7 |
Compile date yyyyddd |
BMMP_TS_TIME |
Char |
19 |
9 |
Compile time hhmmssttt if BMMP_VERSION=2 and
BMMP_TIME=1 |
* |
|
19 |
1 |
*Reserved* if BMMP_VERSION
= 1 |