]> andersk Git - moira.git/blob - server/meinitlst.c
grammer fix
[moira.git] / server / meinitlst.c
1 /*
2  *      $Source$
3  *      $Author$
4  *      $Header$
5  *
6  *      Copyright (C) 1987 by the Massachusetts Institute of Technology
7  *      For copying and distribution information, please see the file
8  *      <mit-copyright.h>.
9  *
10  *      This code is a reverse-engineered version of
11  *      ~rtingres/lib/compatlib(meinitlst.o) with a better malloc and
12  *      free.
13  */
14
15 #ifndef lint
16 static char *rcsid_meinitlst_c = "$Header$";
17 #endif lint
18
19 #include <mit-copyright.h>
20 #include <sys/errno.h>
21 #include <sys/types.h>
22
23 /*
24  * entry points:
25  *      MEinitLists()
26  *      calloc()
27  *      free()
28  *      malloc()
29  *      memalign()
30  *      realloc()
31  *      valloc()
32  */
33
34 struct cons {
35         char *car;
36         char *cdr;
37 };
38 extern int Status;
39 extern char MEsetup;
40 extern struct cons MElist, MEfreelist;
41 extern short ME_pid;
42 extern char *MElistHead, *MEfreeHead;
43
44 MEinitLists()
45 {
46         Status = 0;
47         MEsetup = 1;
48         MElist.car = 0;
49         MElist.cdr = MElistHead;
50         MEfreelist.car = 0;
51         MEfreelist.cdr = MEfreeHead;
52         ME_pid = getpid() & 0x7fff;
53         return 0;
54 }
55 #ifdef notdef
56 free(addr)
57 {
58         return MEfree(addr);
59 }
60
61 caddr_t malloc(size)
62         u_int size;
63 {
64         char *temp;
65         if(MEalloc(1, size, &temp)) return 0;
66         else return temp;
67 }
68
69 caddr_t calloc(a1, a2)
70         int a1, a2;
71 {
72         char *temp;
73         if (MEcalloc(a1, a2, &temp)) return 0;
74         else return temp;
75 }
76
77 caddr_t realloc(adr, nsize)
78         char *adr;
79         u_int nsize;
80 {
81         char *new_addr;
82         u_int cur_size;
83         if (MEsize(adr, &cur_size)) return 0;
84         if (cur_size >= nsize) return adr;
85         if ( (new_addr = malloc(nsize)) == 0) return 0;
86         (void) MEcopy(adr, cur_size, new_addr);
87         (void) free(adr);
88         return new_addr;
89 }
90 #endif notdef
91 #ifdef notdef
92 valloc(size)
93         int size;
94 {
95         static int pagesize;
96         if (pagesize == 0) pagesize = getpagesize();
97         return memalign(pagesize, size);
98 }
99
100 memalign(alignment, size)
101 {
102         int temp1;
103         int temp2;
104         int temp3;
105         int temp4;
106         if (!size || alignment & 1) {
107                 errno = EINVAL;
108                 return 0;
109         }
110         if (alignment < 4) alignment = 4;
111
112 /*
113 _memalign:      fc0
114 _memalign+2:    subl2   $10,sp
115 _memalign+5:    tstl    8(ap)
116 _memalign+8:    beql    _memalign+e
117 _memalign+a:    blbc    4(ap),_memalign+18
118 >_memalign+e:    movl    $16,_errno
119 >_memalign+15:   clrf    r0
120 _memalign+17:   ret
121 >_memalign+18:   cmpl    4(ap),$4
122 _memalign+1c:   bgequ   _memalign+22
123 _memalign+1e:   movl    $4,4(ap)
124 >_memalign+22:   pushl   $4
125 _memalign+24:   addl3   $3,8(ap),-(sp)
126 _memalign+29:   calls   $2,udiv
127 _memalign+30:   ashl    $2,r0,8(ap)
128 _memalign+35:   addl3   4(ap),8(ap),r0
129 _memalign+3b:   addl3   $20,r0,-4(fp)
130 _memalign+40:   pushl   -4(fp)
131 _memalign+43:   calls   $1,_malloc
132 _memalign+4a:   movl    r0,r11
133 _memalign+4d:   beql    _memalign+15
134 _memalign+4f:   subl3   $10,r11,r10
135 _memalign+53:   ashl    $0,4(r10),r8
136 _memalign+58:   pushl   4(ap)
137 _memalign+5b:   subl3   $1,4(ap),r0
138 _memalign+60:   addl3   r11,r0,-(sp)
139 _memalign+64:   calls   $2,udiv
140 _memalign+6b:   mull3   4(ap),r0,-c(fp)
141 _memalign+71:   movl    -c(fp),r7
142 _memalign+75:   subl3   $10,r7,r6
143 _memalign+79:   subl3   r10,r6,-8(fp)
144 _memalign+7e:   subl2   -8(fp),r8
145 _memalign+82:   cmpl    -8(fp),$10
146 _memalign+86:   bgequ   _memalign+a7
147 _memalign+88:   pushl   8(ap)
148 _memalign+8b:   pushl   4(ap)
149 _memalign+8e:   calls   $2,_memalign
150 _memalign+95:   movl    r0,-10(fp)
151 _memalign+99:   pushl   r11
152 _memalign+9b:   calls   $1,_free
153 _memalign+a2:   movl    -10(fp),r0
154 _memalign+a6:   ret
155 >_memalign+a7:   movl    -8(fp),r0
156 _memalign+ab:   extzv   $0,$20,r0,4(r10)
157 _memalign+b1:   extzv   $0,$20,r8,4(r6)
158 _memalign+b7:   movl    (r10),(r6)
159 _memalign+ba:   movw    8(r10),8(r6)
160 _memalign+bf:   movl    r6,_MElist
161 _memalign+c6:   cmpl    _MElist+4,r10
162 _memalign+cd:   bneq    _memalign+d6
163 _memalign+cf:   movl    r6,_MElist+4
164 >_memalign+d6:   pushl   r10
165 _memalign+d8:   calls   $1,_MEf_add
166 _memalign+df:   addl3   $10,r6,r0
167 _memalign+e3:   ret
168 */
169 #endif notdef
This page took 0.057492 seconds and 5 git commands to generate.