From 7eb5106413ae49af8e65d9464cad5d938d877d78 Mon Sep 17 00:00:00 2001 From: Norayr Chilingarian Date: Wed, 19 Mar 2014 06:23:47 +0800 Subject: [PATCH] Darwin port ... yet not ready Former-commit-id: 279e037b5ffac4f90f29c001bf0b664f1e811f27 --- src/lib/system/darwin/clang/x86_64/SYSTEM.h | 7 +-- src/lib/system/darwin/clang/x86_64/Unix.Mod | 45 +++++++++++--------- src/tools/vocparam/vocparam.c | 28 ++++++------ vocparam | Bin 9724 -> 9732 bytes 4 files changed, 44 insertions(+), 36 deletions(-) diff --git a/src/lib/system/darwin/clang/x86_64/SYSTEM.h b/src/lib/system/darwin/clang/x86_64/SYSTEM.h index 9fadaf48..5a503503 100644 --- a/src/lib/system/darwin/clang/x86_64/SYSTEM.h +++ b/src/lib/system/darwin/clang/x86_64/SYSTEM.h @@ -12,10 +12,11 @@ uses double # as concatenation operator */ #include -#include +//#include -extern void *memcpy(void *dest, const void *src, long n); -extern void *malloc(long size); +extern void *memcpy(void *dest, const void *src, unsigned long n); +//extern char *memcpy(); +extern void *malloc(unsigned long size); extern void exit(int status); #define export diff --git a/src/lib/system/darwin/clang/x86_64/Unix.Mod b/src/lib/system/darwin/clang/x86_64/Unix.Mod index 7dfde70d..05ed8f9b 100644 --- a/src/lib/system/darwin/clang/x86_64/Unix.Mod +++ b/src/lib/system/darwin/clang/x86_64/Unix.Mod @@ -166,6 +166,10 @@ TYPE END; JmpBuf* = RECORD + (* macosx darwin 64bit, cpp /usr/include/setjmp.h + typedef int jmp_buf[((9 * 2) + 3 + 16)]; + *) + (*bx*, si*, di*, bp*, sp*, pc*: LONGINT;*) (* bits/setjmp.h sets up longer array in GNU libc *) (* @@ -175,7 +179,10 @@ TYPE typedef int __jmp_buf[6]; # endif *) - bx*, si*, di*, bp*, sp*, pc*, ki*, ku*: LONGINT; + (*bx*, si*, di*, bp*, sp*, pc*, ki*, ku*: LONGINT;*) + f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, + f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, + f30, f31, f32, f33, f34, f35, f36: INTEGER; (* setjmp.h /* Calling environment, plus possibly a saved signal mask. */ struct __jmp_buf_tag @@ -191,7 +198,7 @@ struct __jmp_buf_tag *) (*maskWasSaved*, savedMask*: LONGINT;*) - maskWasSaved*: INTEGER; + (*maskWasSaved*: INTEGER; *) (* # define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int))) typedef struct @@ -200,27 +207,27 @@ typedef struct } __sigset_t; *) - savedMask*: sigsett; + (*savedMask*: sigsett;*) END ; Status* = RECORD (* struct stat *) - dev* : LONGINT; (* dev_t 8 *) - ino* : LONGINT; (* ino 8 *) - nlink* : LONGINT; - mode* : INTEGER; - uid*, gid*: INTEGER; - pad0* : INTEGER; - rdev* : LONGINT; - size* : LONGINT; - blksize* : LONGINT; + dev* : INTEGER; (* dev_t 4 *) + mode*: SHORTINT; mode1*: SHORTINT; (* mode_t 2 *) + nlink* : SHORTINT; nlink1*: SHORTINT; (* nlink_t 2 *) + ino* : LONGINT (* __darwin_ino64_t 8 *) + uid*, gid*: INTEGER; (* uid_t, gid_t 4 *) + rdev*: INTEGER; (* dev_t 4 *) + atime* : LONGINT; atimences* : LONGINT; (* struct timespec 16 *) + mtime* : LONGINT; mtimences* : LONGINT; (* struct timespec 16 *) + ctime* : LONGINT; ctimences* : LONGINT; (* struct timespec 16 *) + birthtime* : LONGINT; birthtimences* : LONGINT; (* struct timespec 16 *) + size*: LONGINT; (* off_t 8 *) blocks* : LONGINT; - atime* : LONGINT; - atimences* : LONGINT; - mtime* : LONGINT; - mtimensec* : LONGINT; - ctime* : LONGINT; - ctimensec* : LONGINT; - unused0*, unused1*, unused2*: LONGINT; + blksize* : INTEGER; + flags* : INTEGER; + gen* : INTEGER; + lspare* : INTEGER; + qspare*, qspare1*: LONGINT; END ; (* from /usr/include/bits/time.h diff --git a/src/tools/vocparam/vocparam.c b/src/tools/vocparam/vocparam.c index 22179db2..6b2232ed 100644 --- a/src/tools/vocparam/vocparam.c +++ b/src/tools/vocparam/vocparam.c @@ -23,23 +23,23 @@ struct {CHAR ch;} rec0; struct {CHAR ch; LONGREAL x;} rec1; struct {char x[65];} rec2; -void main() +int main() { long x, y; /* get size and alignment of standard types */ - printf("CHAR %d %d\n", sizeof(CHAR), (char*)&c.x - (char*)&c); - printf("BOOLEAN %d %d\n", sizeof(BOOLEAN), (char*)&b.x - (char*)&b); - printf("SHORTINT %d %d\n", sizeof(SHORTINT), (char*)&si.x - (char*)&si); - printf("INTEGER %d %d\n", sizeof(INTEGER), (char*)&i.x - (char*)&i); - printf("LONGINT %d %d\n", sizeof(LONGINT), (char*)&li.x - (char*)&li); - printf("SET %d %d\n", sizeof(SET), (char*)&s.x - (char*)&s); - printf("REAL %d %d\n", sizeof(REAL), (char*)&r.x - (char*)&r); - printf("LONGREAL %d %d\n", sizeof(LONGREAL), (char*)&lr.x - (char*)&lr); - printf("PTR %d %d\n", sizeof p.x, (char*)&p.x - (char*)&p); - printf("PROC %d %d\n", sizeof f.x, (char*)&f.x - (char*)&f); - printf("RECORD %d %d\n", (sizeof rec2 == 65) == (sizeof rec0 == 1), sizeof rec2 - 64); + printf("CHAR %lu %lu\n", sizeof(CHAR), (char*)&c.x - (char*)&c); + printf("BOOLEAN %lu %lu\n", sizeof(BOOLEAN), (char*)&b.x - (char*)&b); + printf("SHORTINT %lu %lu\n", sizeof(SHORTINT), (char*)&si.x - (char*)&si); + printf("INTEGER %lu %lu\n", sizeof(INTEGER), (char*)&i.x - (char*)&i); + printf("LONGINT %lu %lu\n", sizeof(LONGINT), (char*)&li.x - (char*)&li); + printf("SET %lu %lu\n", sizeof(SET), (char*)&s.x - (char*)&s); + printf("REAL %lu %lu\n", sizeof(REAL), (char*)&r.x - (char*)&r); + printf("LONGREAL %lu %lu\n", sizeof(LONGREAL), (char*)&lr.x - (char*)&lr); + printf("PTR %lu %lu\n", sizeof p.x, (char*)&p.x - (char*)&p); + printf("PROC %lu %lu\n", sizeof f.x, (char*)&f.x - (char*)&f); + printf("RECORD %d %lu\n", (sizeof rec2 == 65) == (sizeof rec0 == 1), sizeof rec2 - 64); x = 1; - printf("ENDIAN %d %d\n", *(char*)&x, 0); + printf("ENDIAN %hhd %d\n", *(char*)&x, 0); if (sizeof(CHAR)!=1) printf("error: CHAR should have size 1\n"); if (sizeof(BOOLEAN)!=1) printf("error: BOOLEAN should have size 1\n"); @@ -47,7 +47,7 @@ void main() if (sizeof(long)!=sizeof p.x) printf("error: LONGINT should have the same size as pointers\n"); if (sizeof(long)!=sizeof f.x) printf("error: LONGINT should have the same size as function pointers\n"); if (((sizeof rec2 == 65) == (sizeof rec0 == 1)) && ((sizeof rec2 - 64) != sizeof rec0)) - printf("error: unsupported record layout sizeof rec0 = %d sizeof rec2 = %d\n", sizeof rec0, sizeof rec2); + printf("error: unsupported record layout sizeof rec0 = %lu sizeof rec2 = %lu\n", sizeof rec0, sizeof rec2); /* test the __ASHR macro */ if (__ASHR(-1, 1) != -1) printf("error: ASH(-1, -1) # -1\n"); diff --git a/vocparam b/vocparam index 441298eb681a34de18175ea48cb9a4cb340d43e3..33ba444a0d8e4d93e85d51980d8e9a0146577752 100755 GIT binary patch delta 1800 zcmZXUe`u3O7{~8TlcJ%?n`mJoTbp#rG$__~!_sQjW%bremnP+H|4_#mqPPl~R7V*@ zx;H8Q=u6C&?Hpu(jCHbs4hO}mNR?`}Rw@3WbZa|0q+<*s6Nd!pd+(AaZ;#xY z=lgv>&vW5m#}*v{!S#!37puQ9ISyMS9c9xg#@(U>-+ zRIgabj{-kq(#zNA<;`qZXe4RdmoLvu;)C)x06)+1wK~2^hjn~M9%rVGtJi?<;rui9 zH(bD9TFGAlJk0S49WR)TJ&)&Sa}n@Lj$bfVzYY{pHMThU=?nnB080gH`K6KXXM8b! z9&olhfPZMj>sR7u0sn&I3gB$B>B%zNhVQ^X!um=C&_g7Kv+G!37Yk2zW0q<t#Lb6ugV0Fx5osB6}UT z<0Y-NPd?7RumtWS@zEGW@7~JvBKnE##5xzCS#K3wVa~~yBnSfSS??42qP;?mcDuaM zZYz2-5((izmwa|1`F-ovjPo>@9G~9brd7dzhx* zx+`lCd`qk`D$FhgTF(+^+&6HGXFYM()%*;~1wGfMA#mjc{LdKlL;7)5rTT}#ePqy& z4SL?7pBePO1}(w-UEt-KxmeS`tDNd8@a)jL#B;5ISe6`m3WSIq&oXR63@oO7LiY;2 zS?E5YtA$PrT`P3I(A$I_;95lu%z&QTjyD8wLnJf_eP8Iegq{{UB=oG%iqHtYCkW9l zp^4D%2)#?!YY}=64F1y}8XcxSPo;E<)_cCTyjojZQ%7e!fwKL3k9>6SQ1!m(-b3$G Im-pBI0XXM=w*UYD delta 1795 zcmZXUZD>J;XD;SsBoud!@&yQJ-twu`4NE$$}i zs+a~!6MqP9NEIoVFiD7etu5}XbU&AFcIcq>vBf&0@GZ7omOg&jcGy+D`U0cno4~`BxCRLv8|LC<@9_75|J7=w z_Zz%T?i28B<@9K>dPsi{@GAmW47}KSMV3!=WhbfMEab8 zSFEN8eX;oRYJLK|THxo+*}pC0#%lQac~xv0jtS0DGqYd6%i>0_L+T#|{;3(S53{ncpIZ=vf~0)r z(Tn!d0@JtkNA(je# za3TDO^OO_6CQYzvtaF_FkXpz4R8Rfnf8tuEjV-}g(CIp94LR@xu=t>cp$_mVwfXe! zst-K!o6<1kb$#WsW*74BJSkgtVL{;^diQ(x%`Qt~92^W;1x@KAb{Mn|HNWVsU0sl~ zAr*tBQe#xNLu9xhqq_NPZ}TS)KzX2+${2J!B>~TIlYV5KDc*jf#0xRY+Mpi8_`AC(#p3&(q;UM6*))D2Si zOO3~d{GiYpS%U`D(haPWz)cyjUg|NaH%k3P>af(4QsciECm`?-f-Y&5nn|6MdWWIw p2-yyX_yG-NpGhC#)xKKJe5aJ=wW-u<{<|+|+k2pM4`1$o`ae|mZ@>Tm