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