~ubuntu-branches/ubuntu/quantal/gclcvs/quantal

« back to all changes in this revision

Viewing changes to h/att.h

  • Committer: Bazaar Package Importer
  • Author(s): Camm Maguire
  • Date: 2004-06-24 15:13:46 UTC
  • Revision ID: james.westby@ubuntu.com-20040624151346-xh0xaaktyyp7aorc
Tags: 2.7.0-26
C_GC_OFFSET is 2 on m68k-linux

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#define ATT
 
2
#define AV
 
3
#define UNIX
 
4
#define SFASL  
 
5
 
 
6
 
 
7
#define         MEM_SAVE_LOCALS \
 
8
  struct filehdr fileheader;\
 
9
  struct exec header;\
 
10
  struct scnhdr sectionheader;\
 
11
  int diff
 
12
 
 
13
 
 
14
#define COPY_TO_SAVE \
 
15
 do{for (;;) { \
 
16
                n = getc(original); \
 
17
                if (feof(original)) \
 
18
                        break; \
 
19
                putc(n, save); \
 
20
        }}while (0)
 
21
 
 
22
#define READ_HEADER \
 
23
 do{    fread(&fileheader, sizeof(fileheader), 1, original); \
 
24
        fread(&header, sizeof(header), 1, original); \
 
25
        data_begin = (char *)header.data_start; \
 
26
        data_end = core_end; \
 
27
        original_data = header.a_data; \
 
28
        header.a_data = data_end - data_begin; \
 
29
        diff = header.a_data - original_data; \
 
30
        header.a_bss = sbrk(0) - core_end; \
 
31
        fileheader.f_symptr += diff; \
 
32
        fwrite(&fileheader, sizeof(fileheader), 1, save);\
 
33
        fwrite(&header, sizeof(header), 1, save); \
 
34
        fread(&sectionheader, sizeof(sectionheader), 1, original); \
 
35
        if (sectionheader.s_lnnoptr) \
 
36
                sectionheader.s_lnnoptr += diff; \
 
37
        fwrite(&sectionheader, sizeof(sectionheader), 1, save); \
 
38
        fread(&sectionheader, sizeof(sectionheader), 1, original); \
 
39
        sectionheader.s_size += diff; \
 
40
        if (sectionheader.s_lnnoptr) \
 
41
                sectionheader.s_lnnoptr += diff; \
 
42
        fwrite(&sectionheader, sizeof(sectionheader), 1, save); \
 
43
        fread(&sectionheader, sizeof(sectionheader), 1, original); \
 
44
        sectionheader.s_paddr += diff; \
 
45
        sectionheader.s_vaddr += diff; \
 
46
        sectionheader.s_size = header.a_bss; \
 
47
        if (sectionheader.s_lnnoptr) \
 
48
                sectionheader.s_lnnoptr += diff; \
 
49
        fwrite(&sectionheader, sizeof(sectionheader), 1, save); \
 
50
        for (n = 4;  n <= fileheader.f_nscns;  n++) { \
 
51
                fread(&sectionheader, sizeof(sectionheader), 1, original); \
 
52
                if (sectionheader.s_scnptr) \
 
53
                        sectionheader.s_scnptr += diff; \
 
54
                if (sectionheader.s_lnnoptr) \
 
55
                        sectionheader.s_lnnoptr += diff; \
 
56
                fwrite(&sectionheader, sizeof(sectionheader), 1, save); \
 
57
        }}while(0)
 
58
 
 
59
#define FILECPY_HEADER  filecpy(save, original, header.a_text)
 
60
 
 
61
 
 
62
#define exec            aouthdr
 
63
#define a_text          tsize
 
64
#define a_data          dsize
 
65
#define a_bss           bsize
 
66
 
 
67
/* Include <fcntl.h> rather than <sys/file.h> */
 
68
 
 
69
#define HAVE_FCNTL
 
70
 
 
71
#define NUMBER_OPEN_FILES _NFILE 
 
72
 
 
73
#define SET_REAL_MAXPAGE real_maxpage = MAXPAGE
 
74
 
 
75
#define INIT_ALLOC \
 
76
        heap_end = sbrk(0); \
 
77
        if (i = ((int)heap_end & (PAGESIZE - 1))) \
 
78
                sbrk(PAGESIZE - i); \
 
79
        heap_end = core_end = sbrk(0);
 
80
 
 
81
        
 
82
 
 
83
#define cs_check(x) 
 
84
 
 
85
/* need to define getwd and friends in unixfsys.c
 
86
 Basically as would need to in ATT*/
 
87
 
 
88
#define NEED_GETWD
 
89
 
 
90
  /* if there is no input there return false */
 
91
#define LISTEN_FOR_INPUT(fp) \
 
92
  if((fp)->_cnt <=0 && (c=0,ioctl((fp)->_file, FIONREAD, &c),c<=0)) \
 
93
     return 0
 
94
 
 
95
 /* have sys/ioctl.h */
 
96
#define HAVE_IOCTL
 
97