home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power Programming
/
powerprogramming1994.iso
/
progtool
/
pgmutl
/
val_link.arc
/
GLOBALS.H
< prev
next >
Wrap
Text File
|
1989-02-18
|
25KB
|
392 lines
/* GLOBALS.H */
/* Global variables used by the linker in approximate alphabetical order. */
bit_32 address_base;
bit_32 align_mask[6]=
{0L, 0L, 1L, 15L, 255L, 3L};
boolean_switch_type align_exe_header = {True};
char *align_text[6]=
{"Absolute",
"Byte",
"Word",
"Paragraph",
"Page",
"Dword"};
segment_entry_ptr active_segment;
#define Active_segment (*active_segment)
string_ptr ampersand_string;
string_ptr and_string;
string_ptr at_string;
string_ptr backslash_dot_string;
string_ptr backslash_dot_dot_string;
string_ptr backslash_string;
string_ptr bar_string;
lname_entry_ptr BSS_lname;
bit_16_switch_type buffer_size =
{0x8000, 512, 0xFE00, 0x8000, False};
lname_entry_ptr c_common_lname;
boolean_switch_type case_ignore = {True};
string_ptr class_string;
string_ptr close_paren_string;
string_ptr close_angle_string;
lname_entry_ptr codeview_class_DEBSYM;
lname_entry_ptr codeview_class_DEBTYP;
bit_16 codeview_information_present = False;
lname_entry_ptr codeview_segment_SYMBOLS;
lname_entry_ptr codeview_segment_TYPES;
string_ptr colon_string;
string_ptr com_extension_string;
char *combine_text[10]=
{"Private",
"Undefined",
"Public",
"Undefined",
"Public",
"Stack",
"Common",
"Public"
"Undefined",
"Blank Common"};
boolean_switch_type comfile = {False};
string_ptr comma_string;
bit_16_switch_type CPARMAXALLOC =
{0xFFFF, 0x0, 0xFFFF, 0xFFFF, False};
string_ptr current_filename;
string_ptr current_path;
obj_record_header_ptr current_record_header;
#define Current_record_header (*current_record_header)
bit_32 current_record_offset;
string_ptr default_directory_string;
string_ptr default_drive_string;
string_ptr default_extension;
string_ptr default_filename;
char_ptr default_prompt;
bit_16_switch_type detail_level =
{0, 0, 5, 0, False};
string_ptr device_AUX;
string_ptr device_CON;
string_ptr device_PRN;
lname_entry_ptr DGROUP_lname;
boolean_switch_type DOSSEG = {False};
string_ptr dot_string;
DTA_ptr DTA;
pool_descriptor_type dynamic_pool;
segment_entry_ptr edata_segment = Null;
obj_ptr_type end_of_record;
obj_ptr_type end_of_last_LIDATA_record;
segment_entry_ptr end_segment = Null;
string_ptr env_extension_string;
string_ptr exclamation_string;
string_ptr exe_extension_string;
file_info_list exe_file_list = {Null, Null};
EXE_header_ptr exe_header;
#define Exe_header (*exe_header)
bit_32 exe_header_size;
bit_32 exec_image_start_time;
boolean_switch_type exechecksum = {False};
bit_16 exefile;
public_entry_list external_list = {Null, Null};
public_entry_ptr_array externals;
string_ptr false_string;
lname_entry_ptr FAR_BSS_lname;
public_entry_ptr far_communals = Null;
fixup_type fixup;
bit_16 FIXUPP_contains_only_threads;
bit_16 fixup_index;
bit_32 fixup_start_time;
bit_16 frame_absolute;
thread_type frame_thread[4];
pool_descriptor_type free_pool;
lname_entry_ptr generated_lname;
group_entry_ptr_array gnames;
group_entry_ptr_array group_hash_table;
group_entry_list group_list = {Null, Null};
bit_16_switch_type group_table_hash_size =
{25, 1, 1023, 25, False};
string_ptr group_string;
boolean_switch_type help;
string_ptr help_extension_string;
string_ptr help_filename;
bit_32 highest_uninitialized_byte;
lname_entry_ptr HUGE_BSS_lname;
public_entry_ptr huge_communals = Null;
file_type infile;
byte_ptr infile_buffer;
bit_16 initial_IP = 0;
bit_16 initial_CS = 0;
union REGS inregs;
segment_entry_ptr largest_stack_seg;
#define Largest_stack_seg (*largest_stack_seg)
bit_32 largest_stack_seg_length;
lseg_ptr last_LxDATA_lseg;
#define last_LxDATA_Lseg (*last_LxDATA_lseg)
bit_16 last_LxDATA_offset;
bit_8 last_LxDATA_record_type;
obj_record_header_ptr last_LIDATA_record_header;
#define Last_LIDATA_record_header (*last_LIDATA_record_header)
bit_8 last_LIDATA_record[MAX_ELEMENT_SIZE];
string_ptr lib_extension_string;
file_info_list lib_file_list = {Null, Null};
bit_32 library_directory_start_time;
bit_32 library_processing_start_time;
bit_16 library_request_count = 0;
bit_16 LIDATA_index;
bit_16 LIDATA_offset;
bit_16 link_step = 0;
bit_32 linker_end_time;
bit_32 linker_start_time;
lname_entry_ptr_array lname_hash_table;
bit_16_switch_type lname_table_hash_size =
{25, 1, 1023, 25, False};
lname_entry_ptr_array lnames;
byte_ptr lseg_data_ptr;
string_ptr lst_extension_string;
file_info_list lst_file_list = {Null, Null};
bit_16_switch_type map =
{2048, 1, 16384, 2048, False};
bit_32 map_start_time;
bit_16_switch_type max_externals =
{512, 1, 1024, 512, False};
bit_16_switch_type max_groups =
{32, 1, 1024, 32, False};
bit_16_switch_type max_lnames =
{512, 1, 1024, 512, False};
bit_16_switch_type max_segments =
{128, 1, 1024, 128, False};
string_ptr minus_string;
char *mode_text[2]=
{"Self-relative",
"Segment-relative"};
bit_16 more_tokens;
bit_16 n_externals;
bit_16 n_groups;
bit_16 n_lnames;
bit_16 n_publics = 0;
bit_16 n_publics_to_sort;
bit_16 n_relocation_items = 0;
bit_16 n_segments;
public_entry_ptr near_communals = Null;
bit_32 next_available_address;
string_ptr next_token;
lname_entry_ptr none_lname;
string_ptr not_string;
string_ptr null_string;
string_ptr obj_extension_string;
file_info_list obj_file_list = {Null, Null};
obj_ptr_type obj_ptr;
boolean_switch_type objchecksum = {False};
byte object_file_element[MAX_ELEMENT_SIZE];
bit_32 object_module_start_time;
DTA_ptr old_DTA;
string_ptr open_angle_string;
string_ptr open_paren_string;
string_ptr or_string;
byte_ptr order_expression_char_ptr;
bit_32 order_start_time;
text_switch_type ordering = {Null};
file_type outfile;
byte_ptr outfile_buffer;
union REGS outregs;
bit_16_switch_type pack_code =
{0xFFFA, 1, 0xFFFF, 0xFFFA, False};
string_ptr parm_string;
boolean_switch_type pause = {False};
string_ptr plus_string;
string_ptr program_directory_string;
bit_16 prompting_for;
bit_16 prompt_next_stdin = False;
public_entry_ptr_array public_hash_table;
bit_16_switch_type public_table_hash_size =
{525, 1, 1023, 525, False};
public_entry_ptr_array public_sort_array;
bit_32 secondary_init_start_time;
segment_entry_ptr_array segment_hash_table;
segment_entry_list segment_list = {Null, Null};
string_ptr segment_string;
bit_16_switch_type segment_table_hash_size =
{25, 1, 1023, 25, False};
segment_entry_list segments_ordered_list;
segment_entry_list segments_unordered_list;
struct SREGS segregs;
string_ptr semicolon_string;
lseg_ptr_array snames;
string_ptr space_string;
bit_16_switch_type stack =
{0, 0, 0xFFFF, 0, False};
lname_entry_ptr STACK_lname;
bit_16 stack_segment_found = False;
string_ptr star_string;
fixup_type start_address;
bit_16 start_address_found = False;
pool_descriptor_type static_pool;
boolean_switch_type statistics = {False};
bit_32 statistics_start_time;
bit_32 step_time;
string_ptr sys_extension_string;
boolean_switch_type sysfile = {False};
thread_type target_thread[4];
file_info_ptr temp_file;
text_switch_type temp_filename = {Null};
byte temp_near_string[TEMP_STRING_SIZE];
string_ptr temp_string;
temp_file_header_type temp_file_header;
string_ptr tilde_string;
char time_array[16];
lname_entry_ptr tmodule_name;
bit_16 tmodule_number = 0;
string_ptr token;
byte token_break_char;
bit_16 token_is_number;
bit_16 token_is_hex_number;
bit_16 token_numeric_value;
token_stack_list token_stack = {Null, Null};
token_stack_list token_stack_free_list = {Null, Null};
token_stack_ptr token_stack_member;
token_class_type token_type;
bit_32 total_time;
string_ptr true_string;
char *type_text[5]=
{"Low Byte",
"Offset",
"Base",
"Pointer",
"High Byte"};
bit_32 user_input_start_time;
char *DOS_error_text[] =
{
"End of file", /* 00 */
"Invalid function", /* 01 */
"File not found", /* 02 */
"Path not found", /* 03 */
"No handles available", /* 04 */
"Access denied", /* 05 */
"Invalid handle", /* 06 */
"Memory control blocks destroyed", /* 07 */
"Insufficient memory", /* 08 */
"Invalid memory block address", /* 09 */
"Invalid environment", /* 0A */
"Invalid format", /* 0B */
"Invalid access code", /* 0C */
"Invalid data", /* 0D */
"Reserved", /* 0E */
"Invalid drive", /* 0F */
"Attempt to remove current directory", /* 10 */
"Not the same device", /* 11 */
"No more file", /* 12 */
"Disk write-protected", /* 13 */
"Unknown unit", /* 14 */
"Drive not ready", /* 15 */
"Unknown command", /* 16 */
"CRC error", /* 17 */
"Bad request structure length", /* 18 */
"Seek error", /* 19 */
"Unknown media type", /* 1A */
"Sector not found", /* 1B */
"Out of paper", /* 1C */
"Write fault", /* 1D */
"Read fault", /* 1E */
"General failure", /* 1F */
"Sharing violation", /* 20 */
"Lock violation", /* 21 */
"Invalid disk change" /* 22 */
"FCB unavailable", /* 23 */
"Sharing buffer overflow", /* 24 */
"Reserved", /* 25 */
"Reserved", /* 26 */
"Reserved", /* 27 */
"Reserved", /* 28 */
"Reserved", /* 29 */
"Reserved", /* 2A */
"Reserved", /* 2B */
"Reserved", /* 2C */
"Reserved", /* 2D */
"Reserved", /* 2E */
"Reserved", /* 2F */
"Reserved", /* 30 */
"Reserved", /* 31 */
"Network request not supported", /* 32 */
"Remote computer not listening", /* 33 */
"Duplicate name on network", /* 34 */
"Network name not found", /* 35 */
"Network busy", /* 36 */
"Network device no longer exists", /* 37 */
"Net BIOS command limit exceeded", /* 38 */
"Network adapter error", /* 39 */
"Incorrect network response", /* 3A */
"Unexpected network error", /* 3B */
"Incompatible remote adapter", /* 3C */
"Print queue full", /* 3D */
"Not enough space for print file", /* 3E */
"Print file deleted", /* 3F */
"Network name deleted", /* 40 */
"Access denied", /* 41 */
"Network device type incorrect", /* 42 */
"Network name not found", /* 43 */
"Network name limit exceeded", /* 44 */
"Net BIOS session limit exceeded", /* 45 */
"Temporarily paused", /* 46 */
"Network request not accepted", /* 47 */
"Print or disk redirection is paused", /* 48 */
"Reserved", /* 49 */
"Reserved", /* 4A */
"Reserved", /* 4B */
"Reserved", /* 4C */
"Reserved", /* 4D */
"Reserved", /* 4E */
"Reserved", /* 4F */
"File already exists", /* 50 */
"Reserved", /* 51 */
"Cannot make directory", /* 52 */
"Fail on Int 24", /* 53 */
"Too many redirections", /* 54 */
"Duplicate redirection", /* 55 */
"Invalid password", /* 56 */
"Invalid parameter", /* 57 */
"Network data fault", /* 58 */
"Invalid error code returned from DOS" /* 59 */
};
switch_table_type switch_table[] =
{
{2, "ah", "alignexeheader", &align_exe_header, scan_set_switch},
{2, "bsz", "buffersize", &buffer_size, scan_bit_16_switch},
{2, "ci", "caseignore", &case_ignore, scan_set_switch},
{2, "co", "comfile", &comfile, scan_set_switch},
{2, "cp", "cparmaxalloc", &CPARMAXALLOC, scan_bit_16_switch},
{2, "det", "detaillevel", &detail_level, scan_bit_16_switch},
{2, "do", "dosseg", &DOSSEG, scan_set_switch},
{2, "ex", "exechecksum", &exechecksum, scan_set_switch},
{2, "ghs", "grouphashsize", &group_table_hash_size, scan_bit_16_switch},
{2, "hlp", "help", &help, scan_help_switch},
{2, "lhs", "lnamehashsize", &lname_table_hash_size, scan_bit_16_switch},
{3, "mp", "map", &map, scan_opt_bit_16},
{4, "mex", "maxexternals", &max_externals, scan_bit_16_switch},
{4, "mgp", "maxgroups", &max_groups, scan_bit_16_switch},
{4, "mln", "maxlnames", &max_lnames, scan_bit_16_switch},
{4, "msg", "maxsegments", &max_segments, scan_bit_16_switch},
{4, "nah", "noalignexeheader",&align_exe_header, scan_reset_switch},
{4, "nci", "nocaseignore", &case_ignore, scan_reset_switch},
{4, "nco", "nocomfile", &comfile, scan_reset_switch},
{4, "ndo", "nodosseg", &DOSSEG, scan_reset_switch},
{4, "nex", "noexechecksum", &exechecksum, scan_reset_switch},
{4, "nmp", "nomap", &map, scan_reset_bit_16},
{4, "nob", "noobjchecksum", &objchecksum, scan_reset_switch},
{5, "npc", "nopackcode", &pack_code, scan_reset_bit_16},
{5, "npa", "nopause", &pause, scan_reset_switch},
{4, "nsy", "nosysfile", &sysfile, scan_reset_switch},
{4, "nst", "nostatistics", &statistics, scan_reset_switch},
{2, "ob", "objchecksum", &objchecksum, scan_set_switch},
{2, "ord", "order", &ordering, scan_text_switch},
{3, "pac", "packcode", &pack_code, scan_opt_bit_16},
{3, "pa", "pause", &pause, scan_set_switch},
{2, "phs", "publichashsize", &public_table_hash_size, scan_bit_16_switch},
{2, "shs", "segmenthashsize", &segment_table_hash_size, scan_bit_16_switch},
{4, "stk", "stack", &stack, scan_bit_16_switch},
{2, "sts", "statistics", &statistics, scan_set_switch},
{2, "sy", "sysfile", &sysfile, scan_set_switch},
{2, "tmp", "tempfile", &temp_filename, scan_text_switch},
{0, Null, Null, Null, Null}
};