]> git.lizzy.rs Git - plan9front.git/commitdiff
ape: move compatibility libc.h to lib9 directory and incooperate needed functions...
authorcinap_lenrek <cinap_lenrek@felloff.net>
Sun, 10 Apr 2016 01:01:37 +0000 (03:01 +0200)
committercinap_lenrek <cinap_lenrek@felloff.net>
Sun, 10 Apr 2016 01:01:37 +0000 (03:01 +0200)
sys/src/ape/lib/9/argv0.c [new file with mode: 0644]
sys/src/ape/lib/9/libc.h [new file with mode: 0644]
sys/src/ape/lib/9/mkfile
sys/src/ape/lib/9/setmalloctag.c
sys/src/ape/lib/9/setrealloctag.c [new file with mode: 0644]
sys/src/ape/lib/draw/colors.c [deleted file]
sys/src/ape/lib/draw/libc.h [deleted file]
sys/src/ape/lib/draw/mkfile

diff --git a/sys/src/ape/lib/9/argv0.c b/sys/src/ape/lib/9/argv0.c
new file mode 100644 (file)
index 0000000..c2b466b
--- /dev/null
@@ -0,0 +1,3 @@
+#include <lib9.h>
+
+char *argv0;
diff --git a/sys/src/ape/lib/9/libc.h b/sys/src/ape/lib/9/libc.h
new file mode 100644 (file)
index 0000000..6ec1580
--- /dev/null
@@ -0,0 +1,153 @@
+#define _LOCK_EXTENSION
+#define _QLOCK_EXTENSION
+#define _BSD_EXTENSION
+#include <stdint.h>
+#include <sys/types.h>
+#include <lock.h>
+#include <qlock.h>
+#include <lib9.h>
+#include <stdlib.h>
+#include <string.h>
+#include <bsd.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <assert.h>
+#include <utf.h>
+#include <fmt.h>
+#include <signal.h>
+
+#define        nelem(x)        (sizeof(x)/sizeof((x)[0]))
+
+typedef
+struct Qid
+{
+       uvlong  path;
+       ulong   vers;
+       uchar   type;
+} Qid;
+
+typedef
+struct Dir {
+       /* system-modified data */
+       ushort  type;   /* server type */
+       uint    dev;    /* server subtype */
+       /* file data */
+       Qid     qid;    /* unique id from server */
+       ulong   mode;   /* permissions */
+       ulong   atime;  /* last read time */
+       ulong   mtime;  /* last write time */
+       vlong   length; /* file length: see <u.h> */
+       char    *name;  /* last element of path */
+       char    *uid;   /* owner name */
+       char    *gid;   /* group name */
+       char    *muid;  /* last modifier name */
+} Dir;
+
+uint   _convM2D(uchar*, uint, Dir*, char*);
+uint   _convD2M(Dir*, uchar*, uint);
+Dir    *_dirstat(char*);
+int    _dirwstat(char*, Dir*);
+Dir    *_dirfstat(int);
+int    _dirfwstat(int, Dir*);
+long   _dirread(int, Dir**);
+long _dirreadall(int, Dir**);
+void _nulldir(Dir*);
+uint _sizeD2M(Dir*);
+
+typedef
+struct Waitmsg
+{
+       int pid;        /* of loved one */
+       unsigned long time[3];  /* of loved one & descendants */
+       char    *msg;
+} Waitmsg;
+
+
+extern int     _AWAIT(char*, int);
+extern int     _ALARM(unsigned long);
+extern int     _BIND(const char*, const char*, int);
+extern int     _CHDIR(const char*);
+extern int     _CLOSE(int);
+extern int     _CREATE(char*, int, unsigned long);
+extern int     _DUP(int, int);
+extern int     _ERRSTR(char*, unsigned int);
+extern int     _EXEC(char*, char*[]);
+extern void    _EXITS(char *);
+extern int     _FD2PATH(int, char*, int);
+extern int     _FAUTH(int, char*);
+extern int     _FSESSION(int, char*, int);
+extern int     _FSTAT(int, unsigned char*, int);
+extern int     _FWSTAT(int, unsigned char*, int);
+extern int     _MOUNT(int, int, const char*, int, const char*);
+extern int     _NOTED(int);
+extern int     _NOTIFY(int(*)(void*, char*));
+extern int     _OPEN(const char*, int);
+extern int     _PIPE(int*);
+extern long    _PREAD(int, void*, long, long long);
+extern long    _PWRITE(int, void*, long, long long);
+extern long    _READ(int, void*, long);
+extern int     _REMOVE(const char*);
+extern void*   _RENDEZVOUS(void*, void*);
+extern int     _RFORK(int);
+extern void*   _SEGATTACH(int, char*, void*, unsigned long);
+extern void*   _SEGBRK(void*, void*);
+extern int     _SEGDETACH(void*);
+extern int     _SEGFLUSH(void*, unsigned long);
+extern int     _SEGFREE(void*, unsigned long);
+extern long long       _SEEK(int, long long, int);
+extern int     _SLEEP(long);
+extern int     _STAT(const char*, unsigned char*, int);
+extern Waitmsg*        _WAIT(void);
+extern long    _WRITE(int, const void*, long);
+extern int     _WSTAT(const char*, unsigned char*, int);
+extern         void*   _MALLOCZ(int, int);
+extern int     _WERRSTR(char*, ...);
+extern long    _READN(int, void*, long);
+extern int     _IOUNIT(int);
+extern vlong   _NSEC(void);
+
+#define dirstat _dirstat
+#define dirfstat _dirfstat
+
+#define OREAD 0
+#define OWRITE 1
+#define ORDWR 2
+#define OCEXEC 32
+
+#define AREAD 4
+#define AWRITE 2
+#define AEXEC 1
+#define AEXIST 0
+
+#define _exits(s) _exit(s && *(char*)s ? 1 : 0)
+#define exits(s) exit(s && *(char*)s ? 1 : 0)
+
+#define create(file, omode, perm) open(file, (omode) |O_CREAT | O_TRUNC, perm)
+#define seek(fd, off, dir) lseek(fd, off, dir)
+
+#define readn _READN
+#define pread _PREAD
+#define pwrite _PWRITE
+#define mallocz _MALLOCZ
+#define nsec   _NSEC
+#define iounit _IOUNIT
+
+#define postnote(who,pid,note) kill(pid,SIGTERM)
+#define atnotify(func,in)
+
+#define ERRMAX 128
+
+extern void            setmalloctag(void*, uintptr_t);
+extern void            setrealloctag(void*, uintptr_t);
+extern uintptr_t       getcallerpc(void*);
+
+extern int  dec16(uchar *, int, char *, int);
+extern int  enc16(char *, int, uchar *, int);
+extern int  dec32(uchar *, int, char *, int);
+extern int  enc32(char *, int, uchar *, int);
+extern int  dec64(uchar *, int, char *, int);
+extern int  enc64(char *, int, uchar *, int);
+
+extern int tokenize(char*, char**, int);
+extern void sysfatal(char*, ...);
+extern ulong truerand(void); /* uses /dev/random */
index c040695df8625138060c6e374582c707a2ad5826..cc3e5b9b87d1df8613f0e86a089edcd5fe68d6ce 100644 (file)
@@ -2,7 +2,8 @@ APE=/sys/src/ape
 <$APE/config
 
 LIB=/$objtype/lib/ape/lib9.a
-OFILES=errstr.$O\
+OFILES=argv0.$O\
+       errstr.$O\
        bind.$O\
        getcallerpc.$O\
        getfcr.$O\
@@ -14,6 +15,13 @@ OFILES=errstr.$O\
        segflush.$O\
        segfree.$O\
        setmalloctag.$O\
+       setrealloctag.$O\
+       sysfatal.$O\
+       tokenize.$O\
+       truerand.$O\
+       u16.$O\
+       u32.$O\
+       u64.$O\
        unmount.$O\
 
 </sys/src/cmd/mksyslib
@@ -28,3 +36,21 @@ CFLAGS=-c $CFLAGS -D_POSIX_SOURCE -D_PLAN9_SOURCE
 
 %.$O:  $objtype/%.c
        $CC $CFLAGS $prereq
+
+sysfatal.$O: ../../../libc/9sys/sysfatal.c
+       $CC $CFLAGS -I. ../../../libc/9sys/sysfatal.c
+
+tokenize.$O: ../../../libc/port/tokenize.c
+       $CC $CFLAGS -I. ../../../libc/port/tokenize.c
+
+truerand.$O: ../../../libc/9sys/truerand.c
+       $CC $CFLAGS -I. ../../../libc/9sys/truerand.c
+
+u16.$O: ../../../libc/port/u16.c
+       $CC $CFLAGS -I. ../../../libc/port/u16.c
+
+u32.$O: ../../../libc/port/u32.c
+       $CC $CFLAGS -I. ../../../libc/port/u32.c
+
+u64.$O: ../../../libc/port/u64.c
+       $CC $CFLAGS -I. ../../../libc/port/u64.c
index b5d159475aadbc70022e3b4891197d09d054bb92..b837870369c0492376c0a3e28b2c1ba62d8c2b45 100644 (file)
@@ -1,4 +1,6 @@
+#include <stdint.h>
+
 void
-setmalloctag(void*, unsigned long)
+setmalloctag(void*, uintptr_t)
 {
 }
diff --git a/sys/src/ape/lib/9/setrealloctag.c b/sys/src/ape/lib/9/setrealloctag.c
new file mode 100644 (file)
index 0000000..4574b73
--- /dev/null
@@ -0,0 +1,6 @@
+#include <stdint.h>
+
+void
+setrealloctag(void*, uintptr_t)
+{
+}
diff --git a/sys/src/ape/lib/draw/colors.c b/sys/src/ape/lib/draw/colors.c
deleted file mode 100644 (file)
index 2f668cd..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-#include <u.h>
-#include <libc.h>
-#include <draw.h>
-#include <event.h>
-
-char *argv0;
-
-static void
-_sysfatalimpl(char *fmt, va_list arg)
-{
-       char buf[1024];
-
-       vseprint(buf, buf+sizeof(buf), fmt, arg);
-       if(argv0)
-               fprint(2, "%s: %s\n", argv0, buf);
-       else
-               fprint(2, "%s\n", buf);
-       exits(buf);
-}
-
-void (*_sysfatal)(char *fmt, va_list arg) = _sysfatalimpl;
-
-void
-sysfatal(char *fmt, ...)
-{
-       va_list arg;
-
-       va_start(arg, fmt);
-       (*_sysfatal)(fmt, arg);
-       va_end(arg);
-}
-
-int nbit, npix;
-Image *pixel;
-Rectangle crect[256];
-
-Image *color[256];
-
-void
-eresized(int new)
-{
-       int x, y, i, n, nx, ny;
-       Rectangle r, b;
-
-       if(new && getwindow(display, Refnone) < 0){
-               fprint(2, "colors: can't reattach to window: %r\n");
-               exits("resized");
-       }
-       if(screen->depth > 8){
-               n = 256;
-               nx = 16;
-       }else{
-               n = 1<<screen->depth;
-               nx = 1<<(screen->depth/2);
-       }
-
-       ny = n/nx;
-       draw(screen, screen->r, display->white, nil, ZP);
-       r = insetrect(screen->r, 5);
-       r.min.y+=20;
-       b.max.y=r.min.y;
-       for(i=n-1, y=0; y!=ny; y++){
-               b.min.y=b.max.y;
-               b.max.y=r.min.y+(r.max.y-r.min.y)*(y+1)/ny;
-               b.max.x=r.min.x;
-               for(x=0; x!=nx; x++, --i){
-                       b.min.x=b.max.x;
-                       b.max.x=r.min.x+(r.max.x-r.min.x)*(x+1)/nx;
-                       crect[i]=insetrect(b, 1);
-                       draw(screen, crect[i], color[i], nil, ZP);
-               }
-       }
-       flushimage(display, 1);
-}
-
-char *buttons[] =
-{
-       "exit",
-       0
-};
-
-ulong
-grey(int i)
-{
-       if(i < 0)
-               return grey(0);
-       if(i > 255)
-               return grey(255);
-       return (i<<16)+(i<<8)+i;
-}
-
-Menu menu =
-{
-       buttons
-};
-
-int
-dither[16] =  {
-       0, 8, 2, 10,
-       12, 4, 14, 6,
-       3, 11, 1, 9,
-       15, 7, 13, 5
-};
-
-void
-main(int argc, char *argv[])
-{
-       Point p;
-       Mouse m;
-       int i, j, k, l, n, ramp, prev;
-       char buf[100];
-       char *fmt;
-       Image *dark;
-       ulong rgb;
-
-       ramp = 0;
-
-       fmt = "index %3d r %3lud g %3lud b %3lud 0x%.8luX        ";
-/*
-       ARGBEGIN{
-       default:
-               goto Usage;
-       case 'x':
-               fmt = "index %2luX r %3luX g %3luX b %3luX 0x%.8luX       ";
-               break;
-       case 'r':
-               ramp = 1;
-               break;
-       }ARGEND
-*/
-       argv0 = argv[0];
-       if(argc != 1){
-       Usage:
-               fprint(2, "Usage: %s [-rx]\n", argv0);
-               exits("usage");
-       }
-
-       if(initdraw(nil, nil, "colors") < 0)
-               sysfatal("initdraw failed: %r");
-       einit(Emouse);
-
-       for(i=0; i<256; i++){
-               if(ramp){
-                       if(screen->chan == CMAP8){
-                               /* dither the fine grey */
-                               j = i-(i%17);
-                               dark = allocimage(display, Rect(0,0,1,1), screen->chan, 1, (grey(j)<<8)+0xFF);
-                               color[i] = allocimage(display, Rect(0,0,4,4), screen->chan, 1, (grey(j+17)<<8)+0xFF);
-                               for(j=0; j<16; j++){
-                                       k = j%4;
-                                       l = j/4;
-                                       if(dither[j] > (i%17))
-                                               draw(color[i], Rect(k, l, k+1, l+1), dark, nil, ZP);
-                               }
-                               freeimage(dark);
-                       }else
-                               color[i] = allocimage(display, Rect(0,0,1,1), screen->chan, 1, (grey(i)<<8)+0xFF);
-               }else
-                       color[i] = allocimage(display, Rect(0,0,1,1), screen->chan, 1, (cmap2rgb(i)<<8)+0xFF);
-               if(color[i] == nil)
-                       sysfatal("can't allocate image: %r");
-       }
-       eresized(0);
-       prev = -1;
-       for(;;){
-               m = emouse();
-               switch(m.buttons){
-               case 1:
-                       while(m.buttons){
-                               if(screen->depth > 8)
-                                       n = 256;
-                               else
-                                       n = 1<<screen->depth;
-                               for(i=0; i!=n; i++)
-                                       if(i!=prev && ptinrect(m.xy, crect[i])){
-                                               if(ramp)
-                                                       rgb = grey(i);
-                                               else
-                                                       rgb = cmap2rgb(i);
-                                               sprint(buf, fmt,
-                                                       i,
-                                                       (rgb>>16)&0xFF,
-                                                       (rgb>>8)&0xFF,
-                                                       rgb&0xFF,
-                                                       (rgb<<8) | 0xFF);
-                                               p = addpt(screen->r.min, Pt(2,2));
-                                               draw(screen, Rpt(p, addpt(p, stringsize(font, buf))), display->white, nil, p);
-                                               string(screen, p, display->black, ZP, font, buf);
-                                               prev=i;
-                                               break;
-                                       }
-                               m = emouse();
-                       }
-                       break;
-
-               case 4:
-                       switch(emenuhit(3, &m, &menu)){
-                       case 0:
-                               exits(0);
-                       }
-               }
-       }
-}
diff --git a/sys/src/ape/lib/draw/libc.h b/sys/src/ape/lib/draw/libc.h
deleted file mode 100644 (file)
index f6c5e97..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-#define _LOCK_EXTENSION
-#define _QLOCK_EXTENSION
-#define _BSD_EXTENSION
-#include <sys/types.h>
-#include <lock.h>
-#include <qlock.h>
-#include <lib9.h>
-#include <stdlib.h>
-#include <string.h>
-#include <bsd.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <assert.h>
-#include <utf.h>
-#include <fmt.h>
-#include <signal.h>
-
-typedef
-struct Qid
-{
-       uvlong  path;
-       ulong   vers;
-       uchar   type;
-} Qid;
-
-typedef
-struct Dir {
-       /* system-modified data */
-       ushort  type;   /* server type */
-       uint    dev;    /* server subtype */
-       /* file data */
-       Qid     qid;    /* unique id from server */
-       ulong   mode;   /* permissions */
-       ulong   atime;  /* last read time */
-       ulong   mtime;  /* last write time */
-       vlong   length; /* file length: see <u.h> */
-       char    *name;  /* last element of path */
-       char    *uid;   /* owner name */
-       char    *gid;   /* group name */
-       char    *muid;  /* last modifier name */
-} Dir;
-
-uint   _convM2D(uchar*, uint, Dir*, char*);
-uint   _convD2M(Dir*, uchar*, uint);
-Dir    *_dirstat(char*);
-int    _dirwstat(char*, Dir*);
-Dir    *_dirfstat(int);
-int    _dirfwstat(int, Dir*);
-long   _dirread(int, Dir**);
-long _dirreadall(int, Dir**);
-void _nulldir(Dir*);
-uint _sizeD2M(Dir*);
-
-typedef
-struct Waitmsg
-{
-       int pid;        /* of loved one */
-       unsigned long time[3];  /* of loved one & descendants */
-       char    *msg;
-} Waitmsg;
-
-
-extern int     _AWAIT(char*, int);
-extern int     _ALARM(unsigned long);
-extern int     _BIND(const char*, const char*, int);
-extern int     _CHDIR(const char*);
-extern int     _CLOSE(int);
-extern int     _CREATE(char*, int, unsigned long);
-extern int     _DUP(int, int);
-extern int     _ERRSTR(char*, unsigned int);
-extern int     _EXEC(char*, char*[]);
-extern void    _EXITS(char *);
-extern int     _FD2PATH(int, char*, int);
-extern int     _FAUTH(int, char*);
-extern int     _FSESSION(int, char*, int);
-extern int     _FSTAT(int, unsigned char*, int);
-extern int     _FWSTAT(int, unsigned char*, int);
-extern int     _MOUNT(int, int, const char*, int, const char*);
-extern int     _NOTED(int);
-extern int     _NOTIFY(int(*)(void*, char*));
-extern int     _OPEN(const char*, int);
-extern int     _PIPE(int*);
-extern long    _PREAD(int, void*, long, long long);
-extern long    _PWRITE(int, void*, long, long long);
-extern long    _READ(int, void*, long);
-extern int     _REMOVE(const char*);
-extern void*   _RENDEZVOUS(void*, void*);
-extern int     _RFORK(int);
-extern void*   _SEGATTACH(int, char*, void*, unsigned long);
-extern void*   _SEGBRK(void*, void*);
-extern int     _SEGDETACH(void*);
-extern int     _SEGFLUSH(void*, unsigned long);
-extern int     _SEGFREE(void*, unsigned long);
-extern long long       _SEEK(int, long long, int);
-extern int     _SLEEP(long);
-extern int     _STAT(const char*, unsigned char*, int);
-extern Waitmsg*        _WAIT(void);
-extern long    _WRITE(int, const void*, long);
-extern int     _WSTAT(const char*, unsigned char*, int);
-extern         void *_MALLOCZ(int, int);
-extern int     _WERRSTR(char*, ...);
-extern long    _READN(int, void*, long);
-extern int     _IOUNIT(int);
-
-#define dirstat _dirstat
-#define dirfstat _dirfstat
-
-#define OREAD 0
-#define OWRITE 1
-#define ORDWR 2
-#define OCEXEC 32
-
-#define AREAD 4
-#define AWRITE 2
-#define AEXEC 1
-#define AEXIST 0
-
-#define open _OPEN
-#define close _CLOSE
-#define read _READ
-#define write _WRITE
-#define _exits(s) _exit(s && *(char*)s ? 1 : 0)
-#define exits(s) exit(s && *(char*)s ? 1 : 0)
-#define create _CREATE
-#define pread _PREAD
-#define readn _READN
-#define mallocz _MALLOCZ
-#define iounit _IOUNIT
-
-/* assume being called as in event.c */
-#define postnote(x, pid, msg) kill(pid, SIGTERM)
-#define atnotify(x, y) signal(SIGTERM, ekill)
-
-#define ERRMAX 128
-
-extern void    setmalloctag(void*, ulong);
-extern ulong   getcallerpc(void*);
index 08b27d61fa0a33128addff894312ae7bc787f4f8..9a635d6141326e93a2e26449356f9d346dff92b1 100644 (file)
@@ -70,10 +70,13 @@ UPDATE=\
 
 </sys/src/cmd/mksyslib
 
-CFLAGS=-c $CFLAGS -D_POSIX_SOURCE -D_PLAN9_SOURCE -I.
+CFLAGS=-c $CFLAGS -D_POSIX_SOURCE -D_PLAN9_SOURCE -I../9
 
 %.$O: /sys/src/libdraw/%.c
        $CC $CFLAGS /sys/src/libdraw/$stem.c
 
+colors.$O: /sys/src/cmd/colors.c
+       $CC $CFLAGS /sys/src/cmd/colors.c
+
 $O.colors: colors.$O
        $LD -o $target colors.$O