Changed mechanism for defining size_type
authorceriel <none@none>
Fri, 12 Jul 1991 10:16:11 +0000 (10:16 +0000)
committerceriel <none@none>
Fri, 12 Jul 1991 10:16:11 +0000 (10:16 +0000)
modules/src/malloc/.distr
modules/src/malloc/Makefile
modules/src/malloc/getsize.c
modules/src/malloc/size_type.h [new file with mode: 0644]

index c0b922e..048c21b 100644 (file)
@@ -12,3 +12,4 @@ mal.c
 param.h
 phys.c
 phys.h
+size_type.h
index 5884e37..0a4ca6b 100644 (file)
@@ -5,7 +5,7 @@ CFLAGS = -O -I$(EMHOME)/modules/h $(COPT)
 SUF = o
 RCC = cc       #$ must produce a runnable object
 
-MALLOCSRC =    READ_ME size_type.h param.h impl.h check.h log.h phys.h \
+MALLOCSRC =    READ_ME size_type.h gensize_type.h param.h impl.h check.h log.h phys.h \
                mal.c log.c phys.c check.c
 
 .SUFFIXES: .$(SUF)
@@ -35,10 +35,10 @@ opr:
                make pr | opr
 
 clean:
-               rm -f *.$(SUF) clashes malloc1.c size_type.h getsize malloc.c
+               rm -f *.$(SUF) clashes malloc1.c gensize_type.h getsize malloc.c
 
-size_type.h:   getsize
-               getsize > size_type.h
+gensize_type.h:        getsize
+               getsize > gensize_type.h
 
 getsize:       getsize.c
                $(RCC) -o getsize getsize.c
index de2b133..feb6ef5 100644 (file)
 
 main()
 {
+       puts("#ifndef size_type");
        if (sizeof(unsigned int) == sizeof(char *)) {
-               puts("typedef unsigned int size_type;");
-               exit(0);
+               puts("#define size_type unsigned int");
        }
-       if (sizeof(long) == sizeof(char *)) {
-               puts("typedef long size_type;");
-               exit(0);
+       else if (sizeof(long) == sizeof(char *)) {
+               puts("#define size_type long");
        }
-       fputs("funny pointer size\n", stderr);
-       exit(1);
+       else {
+               fputs("funny pointer size\n", stderr);
+               exit(1);
+       }
+       puts("#endif");
+       exit(0);
 }
diff --git a/modules/src/malloc/size_type.h b/modules/src/malloc/size_type.h
new file mode 100644 (file)
index 0000000..996b6fc
--- /dev/null
@@ -0,0 +1,15 @@
+/* $Header$ */
+/*
+ * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
+ * See the copyright notice in the ACK home directory, in the file "Copyright".
+ */
+/*     This file defines size_type if _EM_WSIZE and _EM_PSIZE are defined.
+*/
+
+#if defined(_EM_WSIZE) && defined(_EM_PSIZE)
+#if _EM_WSIZE == _EM_PSIZE
+#define size_type      unsigned int
+#else
+#define size_type      long
+#endif
+#endif