137 |
|
|
138 |
#define TO_NUMBER(ptr,type) (*((type *)(void *)(ptr))) |
#define TO_NUMBER(ptr,type) (*((type *)(void *)(ptr))) |
139 |
|
|
|
#define SEEK_TO_END_OFILE(fp) do { struct filehdr fileheader; int i; \ |
|
|
fseek(fp,0,0) ; \ |
|
|
fread(&fileheader, sizeof(fileheader), 1, fp); \ |
|
|
fseek(fp, fileheader.f_symptr+fileheader.f_nsyms*SYMESZ, 0); \ |
|
|
fread(&i, sizeof(i), 1, fp); \ |
|
|
fseek(fp, i - sizeof(i), 1); \ |
|
|
while ((i = fgetc(fp)) == 0) \ |
|
|
; \ |
|
|
ungetc(i, fp); \ |
|
|
} while (0) |
|
|
|
|
140 |
#define FCLOSE_SETBUF_OK |
#define FCLOSE_SETBUF_OK |
141 |
#define IEEEFLOAT |
#define IEEEFLOAT |
142 |
#define I386 |
#define I386 |
152 |
/* include some low level routines for maxima */ |
/* include some low level routines for maxima */ |
153 |
#define CMAC |
#define CMAC |
154 |
|
|
|
#define RELOC_FILE "rel_pecoff.c" |
|
|
|
|
155 |
/* FIONREAD not supported */ |
/* FIONREAD not supported */ |
156 |
#undef LISTEN_FOR_INPUT |
#undef LISTEN_FOR_INPUT |
157 |
|
|
159 |
#define ADJUST_RELOC_START(j) \ |
#define ADJUST_RELOC_START(j) \ |
160 |
the_start = memory->cfd.cfd_start + \ |
the_start = memory->cfd.cfd_start + \ |
161 |
(j == DATA_NSCN ? textsize : 0); |
(j == DATA_NSCN ? textsize : 0); |
162 |
|
|
163 |
|
#define SEEK_TO_END_OFILE(fp) do { IMAGE_FILE_HEADER fileheader; int i; \ |
164 |
|
fseek ( fp, 0, 0 ) ; \ |
165 |
|
fread ( &fileheader, sizeof ( IMAGE_FILE_HEADER ), 1, fp ); \ |
166 |
|
fseek ( fp, fileheader.PointerToSymbolTable + fileheader.NumberOfSymbols * sizeof ( IMAGE_SYMBOL ) , 0); \ |
167 |
|
fread ( &i, sizeof ( i ), 1, fp ); \ |
168 |
|
fseek ( fp, i - sizeof ( i ), 1 ); \ |
169 |
|
while ( ( i = fgetc(fp) ) == 0 ) \ |
170 |
|
; \ |
171 |
|
ungetc ( i, fp ); \ |
172 |
|
} while (0) |
173 |
|
|
174 |
#define IF_ALLOCATE_ERR \ |
#define IF_ALLOCATE_ERR \ |
175 |
if (core_end != sbrk(0))\ |
if (core_end != sbrk(0))\ |
200 |
(a_)=GCLExeName();\ |
(a_)=GCLExeName();\ |
201 |
} while(0) |
} while(0) |
202 |
|
|
|
/* Needed if optimiser moves object initialisation code around. */ |
|
|
#define FIND_INIT \ |
|
|
{ if (*ptr==0 && (NTYPE(sym) == TEXT_NSCN) && sym->n_value ) \ |
|
|
{ char tem [9]; \ |
|
|
char *str=SYM_NAME(sym); \ |
|
|
if (str[1]=='i' && str[2]=='n' && str[3]=='i' && str[4]== 't' \ |
|
|
&& str[5]=='_' && str[0]== '_' ) \ |
|
|
*ptr= sym->n_value ; \ |
|
|
else {/* printf("The first data symbol was not the init");*/} \ |
|
|
}} |
|
|
|
|
203 |
#define INSTALL_SEGMENTATION_CATCHER \ |
#define INSTALL_SEGMENTATION_CATCHER \ |
204 |
(void) signal(SIGSEGV,segmentation_catcher) |
(void) signal(SIGSEGV,segmentation_catcher) |
205 |
|
|