]> andersk Git - moira.git/blame - server/meinitlst.c
fix FDSET initialization
[moira.git] / server / meinitlst.c
CommitLineData
de56407f 1/*
2 * $Source$
3 * $Author$
4 * $Header$
5 *
6 * Copyright (C) 1987 by the Massachusetts Institute of Technology
c801de4c 7 * For copying and distribution information, please see the file
8 * <mit-copyright.h>.
de56407f 9 *
10 * This code is a reverse-engineered version of
11 * ~rtingres/lib/compatlib(meinitlst.o) with a better malloc and
12 * free.
de56407f 13 */
14
15#ifndef lint
16static char *rcsid_meinitlst_c = "$Header$";
17#endif lint
18
c801de4c 19#include <mit-copyright.h>
de56407f 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
34struct cons {
35 char *car;
36 char *cdr;
37};
38extern int Status;
39extern char MEsetup;
40extern struct cons MElist, MEfreelist;
41extern short ME_pid;
42extern char *MElistHead, *MEfreeHead;
43
44MEinitLists()
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
56free(addr)
57{
58 return MEfree(addr);
59}
60
61caddr_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
69caddr_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
77caddr_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
92valloc(size)
93 int size;
94{
95 static int pagesize;
96 if (pagesize == 0) pagesize = getpagesize();
97 return memalign(pagesize, size);
98}
99
100memalign(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.086785 seconds and 5 git commands to generate.