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