optimising includes
authoruser <moby@cilux.org>
Fri, 13 Mar 2009 11:25:18 +0000 (11:25 +0000)
committeruser <moby@cilux.org>
Fri, 13 Mar 2009 11:25:18 +0000 (11:25 +0000)
12 files changed:
makefile
src/drivers/mid/mid.c
src/drivers/np/np.c
src/drivers/np/uri2chan.c
src/include/kernelapi.h
src/platform/kernelapi.c
src/platform/linux/cilux.c
src/platform/linux/kernelplat.c [new file with mode: 0644]
src/platform/linux/kernelplat.h [new file with mode: 0644]
src/platform/linux/osapi.c [deleted file]
src/platform/linux/osapi.h [deleted file]
src/platform/linux/platform.h

index 819de9b..15c0fff 100644 (file)
--- a/makefile
+++ b/makefile
@@ -15,7 +15,7 @@ linux: CCOPTIONS=-g -O -Wall -Wimplicit
 linux: COMPILEOPTIONS=-march=i386 -mtune=i586 -fPIC
 linux: LINKOPTIONS=-Wl,-export-dynamic -Wl,-rpath,.
 linux: LINKOPTIONS=-Wl,-export-dynamic
-linux: INCLUDES=-I/usr/local/include -I../include -I../../include -I.. -I../platform/linux -I../../platform/linux
+linux: INCLUDES=-I/usr/local/include -I../include -I../../include -I.. -I../platform/linux -I../../platform/linux -I../platform
 linux: LIBRARIES=-L/usr/local/lib -lnsl -ldl -lm -lX11 -lEGL -lGLESv2
 linux: linux-all
 
@@ -33,7 +33,7 @@ version-lin:
        @echo "\";"                                    >> src/platform/linux/version.h
        @echo "static char* cilux_ciux=\"np\";"        >> src/platform/linux/version.h
 
-cilux: version-lin src/platform/linux/cilux.c src/platform/linux/osapi.c src/platform/kernelapi.c src/include/kernelapi.h src/platform/linux/platform.h
+cilux: version-lin src/platform/linux/cilux.c src/platform/linux/kernelplat.h src/platform/linux/kernelplat.c src/platform/kernelapi.c src/include/kernelapi.h src/platform/linux/platform.h
        (cd src/platform/linux; $(CC) $(CCOPTIONS) -c cilux.c -o cilux.o $(COMPILEOPTIONS) $(INCLUDES))
        (cd src/platform;       $(CC) $(CCOPTIONS) -c kernelapi.c -o kernelapi.o $(COMPILEOPTIONS) $(INCLUDES))
        (cd src/platform/linux; $(CC) $(CCOPTIONS) -o ../../../cilux cilux.o ../kernelapi.o $(LINKOPTIONS) $(LIBRARIES))
index c4458bc..e18f352 100644 (file)
@@ -7,11 +7,6 @@
 
 /* -------------------------------------------------------------------------- */
 
-#include <math.h>
-
-#include <EGL/egl.h>
-#include <GLES2/gl2.h>
-
 #define WINDOW_WIDTH  640
 #define WINDOW_HEIGHT 480
 
@@ -80,6 +75,12 @@ EXPORT int mid_module_event(void* data)
     return 1;
 }
 
+EXPORT int mid_module_tick(void)
+{
+    if(!drawStuff(WINDOW_WIDTH, WINDOW_HEIGHT)) destroyEGL();
+    return 1;
+}
+
 /* -------------------------------------------------------------------------- */
 
 int handles_resource(char* name)
@@ -466,7 +467,7 @@ int drawStuff(int width, int height)
 
     eglSwapBuffers(eglDisplay, eglSurface);
 
-    angle += .001f;
+    angle += .007f;
 
     return !isEGLError("drawStuff");
 }
@@ -481,7 +482,7 @@ void deleteStuff(){
  
 /* ------------------------------------------------------------- */
 
-#include "X11/Xutil.h"
+#include <X11/Xutil.h>
 
 Window        x11Window   = 0;
 Display*      x11Display  = 0;
index e72616b..b33dc10 100644 (file)
@@ -148,7 +148,7 @@ int connection_writable(k_channel* chan, int bufpos, int len)
        int eof=(len== -1);
 
        if(sof){
-               send_ping(chan, "PING ni/0.5" CRLF, 0);
+               send_ping(chan, "PING ni/0.5", 0);
                return 0;
        }
 
@@ -224,7 +224,7 @@ void recv_request(k_channel* chan, char* header)
        }
        if(ping){
                char* from=use_ping_info(ent_head, chan);
-               if(from) send_ping(chan, "ni/0.5 270 PING" CRLF, from);
+               if(from) send_ping(chan, "ni/0.5 270 PING", from);
                ni_event_delete(evq);
                return;
        }
index b4de726..26b05f2 100644 (file)
@@ -114,7 +114,7 @@ void send_ping(k_channel* chan, char* firstline, char* to)
        int ln=0;
        int bufsize=TMPBUFSIZE;
 
-       ln+=snprintf(tmpbuf+ln, bufsize-ln, firstline);
+       ln+=snprintf(tmpbuf+ln, bufsize-ln, "%s" CRLF, firstline);
        if(ln>=bufsize) return;
        ln+=snprintf(tmpbuf+ln, bufsize-ln, "From: %s" CRLF, from);
        if(ln>=bufsize) return;
@@ -237,7 +237,7 @@ void ping_this(void* arg, char* key, void* val)
                                                connection_writable);
 
        int pingtodeath=0;
-       if(chan && pingtodeath) send_ping(chan, "PING ni/0.5" CRLF, 0);
+       if(chan && pingtodeath) send_ping(chan, "PING ni/0.5", 0);
 }
 
 char* generate_new_hostname(k_hashtable* ent_head, k_channel* chan)
index c659303..0425d02 100644 (file)
@@ -10,7 +10,6 @@
 
 /* -------------------------------------------------------------------------- */
 
-PUBLIC CONSOLE k_console;
 PUBLIC char*   k_version;
 PUBLIC char*   k_ciux;
 PUBLIC void  (*k_terminate)(void);
@@ -212,7 +211,4 @@ PUBLIC void k_fatal(  char* format, ...);
 
 /* -------------------------------------------------------------------------- */
 
-
 #endif
-
-
index 86c406b..eb2ab0f 100644 (file)
@@ -3,8 +3,8 @@
 
 #define PUBLIC EXPORT
 #include <kernelapi.h>
-#include <osapi.h>
-#include "container.h"
+#include <kernelplat.h>
+#include <container.h>
 
 /* -------------------------------------------------------------------------- */
 
@@ -149,7 +149,7 @@ static void               init_hashtables(void);
 
 /* -------------------------------------------------------------------------- */
 
-#include <osapi.c>
+#include <kernelplat.c>
 
 /* -------------------------------------------------------------------------- */
 
index 009d621..2c9e301 100644 (file)
@@ -1,12 +1,7 @@
 
-#include <sys/types.h>
-#include <unistd.h>
-#include <pwd.h>
-#include <grp.h>
-
-#include <platform.h>
+#include <kernelplat.h>
 #include <container.h>
-#include "version.h"
+#include <version.h>
 
 /* -------------------------------------------------------------------------- */
 
diff --git a/src/platform/linux/kernelplat.c b/src/platform/linux/kernelplat.c
new file mode 100644 (file)
index 0000000..a018dfd
--- /dev/null
@@ -0,0 +1,273 @@
+
+/* -------------------------------------------------------------------------- */
+
+#include <errno.h>
+#include <dlfcn.h>
+#include <stdarg.h>
+#include <signal.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
+#include <netdb.h>
+#include <dirent.h>
+
+/* -------------------------------------------------------------------------- */
+
+static fd_set rd_fd_set;
+static fd_set wr_fd_set;
+static fd_set ex_fd_set;
+
+/* -------------------------------------------------------------------------- */
+
+static void signal_terminate(int);
+static void signal_alarm(int);
+static void signal_other(int);
+static void set_timeval_ms(struct timeval* t, int ms);
+
+/* -------------------------------------------------------------------------- */
+
+void init_thread(void)
+{
+       signal(SIGTERM, signal_terminate);
+       signal(SIGINT,  signal_terminate);
+       signal(SIGQUIT, signal_terminate);
+       signal(SIGALRM, signal_alarm);
+       signal(SIGPIPE, signal_other);
+       signal(SIGCHLD, SIG_IGN);
+       signal(SIGHUP,  SIG_IGN);
+       signal(SIGUSR1, SIG_IGN);
+       signal(SIGUSR2, SIG_IGN);
+}
+
+void init_gl(void)
+{
+}
+
+void init_net(void)
+{
+       FD_ZERO(&rd_fd_set);
+       FD_ZERO(&wr_fd_set);
+       FD_ZERO(&ex_fd_set);
+}
+
+/* -------------------------------------------------------------------------- */
+
+OTHER_THREAD void signal_terminate(int signum)
+{
+       c_running(0);
+}
+
+OTHER_THREAD void signal_alarm(int signum)
+{
+       c_signal(signum);
+}
+
+OTHER_THREAD void signal_other(int signum)
+{
+       c_signal(signum);
+}
+
+/* -------------------------------------------------------------------------- */
+
+void set_callback(k_channel* chan, int rdwr)
+{
+       if(rdwr & SETCB_RD) FD_SET(chan->priv->SOCK, &rd_fd_set);
+       if(rdwr & SETCB_WR) FD_SET(chan->priv->SOCK, &wr_fd_set);
+}
+
+void un_set_callback(k_channel* chan, int rdwr)
+{
+       if(rdwr & SETCB_RD) FD_CLR(chan->priv->SOCK, &rd_fd_set);
+       if(rdwr & SETCB_WR) FD_CLR(chan->priv->SOCK, &wr_fd_set);
+}
+
+void poller(int no_block)
+{
+       fd_set rd=rd_fd_set;
+       fd_set wr=wr_fd_set;
+       fd_set ex=ex_fd_set;
+
+       k_channel* chan;
+
+       int highest=0;
+       for(chan=k_channels; chan; chan=chan->next){
+               if(chan->priv->state==CHAN_CLOSE) continue;
+               if(highest < chan->priv->SOCK) highest=chan->priv->SOCK;
+       }
+
+       struct timeval  t;
+       struct timeval* tp=&t;
+       set_timeval_ms(tp, no_block? 0: LOOP_TICK);
+
+       if(highest==0){
+               select(0, 0, 0, 0, tp);
+               next_keys();
+               if(!no_block) do_regular_things();
+               return;
+       }
+
+       int len=select(highest+1, &rd, &wr, &ex, tp);
+       GETERRNO(len);
+
+       next_keys();
+
+       if(len==0){
+               do_regular_things();
+               return;
+       }
+       if(len== -1){
+               if(ERRNO==INTERRUPTED) return;
+               log_net_err("select", ERRNO);
+               sleep(1);
+               do_regular_things();
+               return;
+       }
+
+       for(chan=k_channels; chan; chan=chan->next){
+               if(FD_ISSET(chan->priv->SOCK, &ex)){
+                       exception_socket(chan);
+                       continue;
+               }
+               if(FD_ISSET(chan->priv->SOCK, &wr)){
+                       int err; socklen_t len=sizeof(int);
+                       if(getsockopt(chan->priv->SOCK,
+                                     SOL_SOCKET,
+                                     SO_ERROR, &err, &len) || err){
+                               exception_socket(chan);
+                               continue;
+                       }
+                       else{
+                               writeable_socket(chan);
+                       }
+               }
+               if(FD_ISSET(chan->priv->SOCK, &rd)){
+                       readable_socket(chan);
+               }
+       }
+}
+
+void set_timeval_ms(struct timeval* t, int ms)
+{
+       t->tv_sec=ms/1000;
+       t->tv_usec=(ms-(t->tv_sec)*1000)*1000;
+}
+
+char* str_error(int e)
+{
+       return strerror(e);
+}
+
+/* -------------------------------------------------------------------------- */
+
+void stat_only(char* fullname, k_stat* kstat)
+{
+       kstat->type=0;
+       struct stat s;
+       if(stat(fullname, &s)) return;
+       kstat->type=s.st_mode & 0170000;
+       kstat->size=s.st_size;
+       kstat->time=s.st_mtime;
+       kstat->perm=s.st_mode & 0007777;
+}
+
+FILE_T stat_open(char* fullname, k_stat* kstat)
+{
+       stat_only(fullname, kstat);
+       if(!kstat->type) return 0;
+       FILE_T filehandle=open(fullname, O_RDONLY);
+       if(filehandle<0) return 0;
+       return filehandle;
+}
+
+FILE_T open_only(char* fullname, int wr)
+{
+       int rw=wr? O_RDWR|O_CREAT|O_TRUNC: O_RDONLY;
+       FILE_T filehandle=open(fullname, rw, 0644);
+       if(filehandle<0) return 0;
+       return filehandle;
+}
+
+void* mmap_malloc(void* s, size_t size, int prot, int f, char* fullname, int o)
+{
+       FILE_T fh=open(fullname, O_RDONLY, 0644);
+       if(fh<0) return MAP_FAILED;
+
+       char* data=k_malloc(size);
+       int charsread=0;
+       int len;
+       do{
+               len=read(fh, data+charsread, size-charsread);
+               if(len< 0 && FERRNO(len)==EINTR) continue;
+               if(len<=0) break;
+               charsread+=len;
+       } while(charsread<size);
+
+       close(fh);
+       if(len<0 || charsread!=size){ k_free(data); return MAP_FAILED; }
+       return data;
+}
+
+void* mmap_name(void* s, size_t size, int prot, int f, char* fullname, int o)
+{
+       if(!size) return MAP_FAILED;
+       int w=(prot & PROT_WRITE);
+       FILE_T fh=open(fullname, (w? O_RDWR|O_CREAT: O_RDONLY), 0644);
+       if(fh<0) return MAP_FAILED;
+       return mmap(s, size, prot, f, fh, o);
+}
+
+/* -------------------------------------------------------------------------- */
+
+EXPORT void k_random_bytes(char* buf, size_t size)
+{
+       *(short*)buf=getpid();
+       if(size!=2) k_log_err("Linux randomness not implemented yet!");
+}
+
+/* -------------------------------------------------------------------------- */
+
+EXPORT void* k_malloc(size_t size)
+{
+       void* p=malloc(size);
+       if(!p){
+               k_fatal(OOM_STRING);
+       }
+       return p;
+}
+
+EXPORT void* k_realloc(void* o, size_t size)
+{
+       void* p=realloc(o, size);
+       if(!p){
+               k_fatal(OOM_STRING);
+       }
+       return p;
+}
+
+EXPORT void k_free(void* o)
+{
+       if(o) free(o);
+}
+
+EXPORT char* k_strdup(char* s)
+{
+       if(!s) return 0;
+       char* p=strdup(s);
+       if(!p){
+               k_fatal(OOM_STRING);
+       }
+       return p;
+}
+
+EXPORT void* k_memdup(void* s, size_t size)
+{
+       void* p=malloc(size);
+       if(!p){
+               k_fatal(OOM_STRING);
+       }
+       memcpy(p, s, size);
+       return p;
+}
+
+/* -------------------------------------------------------------------------- */
+
diff --git a/src/platform/linux/kernelplat.h b/src/platform/linux/kernelplat.h
new file mode 100644 (file)
index 0000000..2b96446
--- /dev/null
@@ -0,0 +1,77 @@
+
+/* -------------------------------------------------------------------------- */
+
+#include <ctype.h>
+#include <unistd.h>
+#include <pwd.h>
+#include <grp.h>
+#include <netinet/tcp.h>
+#include <arpa/inet.h>
+
+#include <platform.h>
+
+/* -------------------------------------------------------------------------- */
+
+#define LOAD_MODULES_EARLY    1
+#define LOAD_GL               0
+#define MODULE                void*
+#define MODPRE                "mod-"
+#define MODPOST               ".so"
+#define DLOPEN(n)             dlopen(n, RTLD_GLOBAL|RTLD_NOW)
+#define DLSYM                 dlsym
+#define DLERROR               dlerror()
+#define LOOP_TICK             10
+#define LINGER_LOOPS          500
+
+#define EMPTY_IN_ADDR         { 0 }
+#define SOCK                  fd
+#define SOCK_T                int
+#define SOCKET(a,t,p,s)       s=socket(a,t,p)
+#define ACCEPT(as,a,l,s)      s=accept(as,a,l)
+#define BIND                  bind
+#define LISTEN                listen
+#define CONNECT               connect
+#define SOCKET_READ( s,b,l)   recv(s,b,l,MSG_NOSIGNAL)
+#define SOCKET_WRITE(s,b,l)   send(s,b,l,MSG_NOSIGNAL)
+#define SOCKET_CLOSE          close
+#define SET_NON_BLOCKING(s)   int f=fcntl(s, F_GETFL); if(f!=-1) fcntl(s, F_SETFL, f|O_NONBLOCK)
+#define SET_NO_DELAY(s)       int arg=1; r=setsockopt(s, SOL_TCP,    TCP_NODELAY,  (char*)&arg, sizeof(arg))
+#define SET_REUSEADDR(s)      int arg=1; r=setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char*)&arg, sizeof(arg))
+#define GETERRNO(n)
+#define ERRNO                 errno
+#define INTERRUPTED           EINTR
+#define NOTACTIVE             EWOULDBLOCK
+#define ISCONNECTING(e)       (e==EINPROGRESS || e==EALREADY)
+#define ISNOTACTIVE(e)        (e==EAGAIN || e==EWOULDBLOCK)
+
+#define FILEP                 FILE*
+#define FILE_T                int
+#define FOPEN                 fopen
+#define READFILE              read
+#define WRITEFILE             write
+#define MKDIR(n)              mkdir(n, 0777)
+#define FPRINTF               fprintf
+#define FFLUSH(f)             fflush(f)
+#define FCLOSE(f)             close(f)
+#define PRINTFOUT(f)          printf(f)
+#define PRINTFERR(f)          fprintf(stderr,f)
+#define VPRINTFOUT(f,ap)      vprintf(f,ap)
+#define VPRINTFERR(f,ap)      vfprintf(stderr,f,ap)
+#define FERRNO(n)             errno
+#define EXIT(n)               exit(n)
+#define LOG_TO_STD            0
+
+#define TIMEZONE(tm)          tm->tm_gmtoff
+#define SLEEP_MS(x)           do{struct timeval t;t.tv_sec=0;t.tv_usec=(x)*1000;select(0,0,0,0,&t);}while(0)
+#define MKTIME                mktime
+
+/* -------------------------------------------------------------------------- */
+
+#define CONSOLE    void*
+#define C_RUN_RV   int
+#define C_RUN_ARG  void*
+
+PUBLIC CONSOLE k_console;
+
+/* -------------------------------------------------------------------------- */
+
diff --git a/src/platform/linux/osapi.c b/src/platform/linux/osapi.c
deleted file mode 100644 (file)
index 96d64b7..0000000
+++ /dev/null
@@ -1,275 +0,0 @@
-
-/* -------------------------------------------------------------------------- */
-
-#include <errno.h>
-#include <dlfcn.h>
-#include <stdarg.h>
-#include <signal.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/mman.h>
-#include <netdb.h>
-#include <sys/types.h>
-#include <dirent.h>
-#include <unistd.h>
-
-/* -------------------------------------------------------------------------- */
-
-static fd_set rd_fd_set;
-static fd_set wr_fd_set;
-static fd_set ex_fd_set;
-
-/* -------------------------------------------------------------------------- */
-
-static void signal_terminate(int);
-static void signal_alarm(int);
-static void signal_other(int);
-static void set_timeval_ms(struct timeval* t, int ms);
-
-/* -------------------------------------------------------------------------- */
-
-void init_thread(void)
-{
-       signal(SIGTERM, signal_terminate);
-       signal(SIGINT,  signal_terminate);
-       signal(SIGQUIT, signal_terminate);
-       signal(SIGALRM, signal_alarm);
-       signal(SIGPIPE, signal_other);
-       signal(SIGCHLD, SIG_IGN);
-       signal(SIGHUP,  SIG_IGN);
-       signal(SIGUSR1, SIG_IGN);
-       signal(SIGUSR2, SIG_IGN);
-}
-
-void init_gl(void)
-{
-}
-
-void init_net(void)
-{
-       FD_ZERO(&rd_fd_set);
-       FD_ZERO(&wr_fd_set);
-       FD_ZERO(&ex_fd_set);
-}
-
-/* -------------------------------------------------------------------------- */
-
-OTHER_THREAD void signal_terminate(int signum)
-{
-       c_running(0);
-}
-
-OTHER_THREAD void signal_alarm(int signum)
-{
-       c_signal(signum);
-}
-
-OTHER_THREAD void signal_other(int signum)
-{
-       c_signal(signum);
-}
-
-/* -------------------------------------------------------------------------- */
-
-void set_callback(k_channel* chan, int rdwr)
-{
-       if(rdwr & SETCB_RD) FD_SET(chan->priv->SOCK, &rd_fd_set);
-       if(rdwr & SETCB_WR) FD_SET(chan->priv->SOCK, &wr_fd_set);
-}
-
-void un_set_callback(k_channel* chan, int rdwr)
-{
-       if(rdwr & SETCB_RD) FD_CLR(chan->priv->SOCK, &rd_fd_set);
-       if(rdwr & SETCB_WR) FD_CLR(chan->priv->SOCK, &wr_fd_set);
-}
-
-void poller(int no_block)
-{
-       fd_set rd=rd_fd_set;
-       fd_set wr=wr_fd_set;
-       fd_set ex=ex_fd_set;
-
-       k_channel* chan;
-
-       int highest=0;
-       for(chan=k_channels; chan; chan=chan->next){
-               if(chan->priv->state==CHAN_CLOSE) continue;
-               if(highest < chan->priv->SOCK) highest=chan->priv->SOCK;
-       }
-
-       struct timeval  t;
-       struct timeval* tp=&t;
-       set_timeval_ms(tp, no_block? 0: LOOP_TICK);
-
-       if(highest==0){
-               select(0, 0, 0, 0, tp);
-               next_keys();
-               if(!no_block) do_regular_things();
-               return;
-       }
-
-       int len=select(highest+1, &rd, &wr, &ex, tp);
-       GETERRNO(len);
-
-       next_keys();
-
-       if(len==0){
-               do_regular_things();
-               return;
-       }
-       if(len== -1){
-               if(ERRNO==INTERRUPTED) return;
-               log_net_err("select", ERRNO);
-               sleep(1);
-               do_regular_things();
-               return;
-       }
-
-       for(chan=k_channels; chan; chan=chan->next){
-               if(FD_ISSET(chan->priv->SOCK, &ex)){
-                       exception_socket(chan);
-                       continue;
-               }
-               if(FD_ISSET(chan->priv->SOCK, &wr)){
-                       int err; socklen_t len=sizeof(int);
-                       if(getsockopt(chan->priv->SOCK,
-                                     SOL_SOCKET,
-                                     SO_ERROR, &err, &len) || err){
-                               exception_socket(chan);
-                               continue;
-                       }
-                       else{
-                               writeable_socket(chan);
-                       }
-               }
-               if(FD_ISSET(chan->priv->SOCK, &rd)){
-                       readable_socket(chan);
-               }
-       }
-}
-
-void set_timeval_ms(struct timeval* t, int ms)
-{
-       t->tv_sec=ms/1000;
-       t->tv_usec=(ms-(t->tv_sec)*1000)*1000;
-}
-
-char* str_error(int e)
-{
-       return strerror(e);
-}
-
-/* -------------------------------------------------------------------------- */
-
-void stat_only(char* fullname, k_stat* kstat)
-{
-       kstat->type=0;
-       struct stat s;
-       if(stat(fullname, &s)) return;
-       kstat->type=s.st_mode & 0170000;
-       kstat->size=s.st_size;
-       kstat->time=s.st_mtime;
-       kstat->perm=s.st_mode & 0007777;
-}
-
-FILE_T stat_open(char* fullname, k_stat* kstat)
-{
-       stat_only(fullname, kstat);
-       if(!kstat->type) return 0;
-       FILE_T filehandle=open(fullname, O_RDONLY);
-       if(filehandle<0) return 0;
-       return filehandle;
-}
-
-FILE_T open_only(char* fullname, int wr)
-{
-       int rw=wr? O_RDWR|O_CREAT|O_TRUNC: O_RDONLY;
-       FILE_T filehandle=open(fullname, rw, 0644);
-       if(filehandle<0) return 0;
-       return filehandle;
-}
-
-void* mmap_malloc(void* s, size_t size, int prot, int f, char* fullname, int o)
-{
-       FILE_T fh=open(fullname, O_RDONLY, 0644);
-       if(fh<0) return MAP_FAILED;
-
-       char* data=k_malloc(size);
-       int charsread=0;
-       int len;
-       do{
-               len=read(fh, data+charsread, size-charsread);
-               if(len< 0 && FERRNO(len)==EINTR) continue;
-               if(len<=0) break;
-               charsread+=len;
-       } while(charsread<size);
-
-       close(fh);
-       if(len<0 || charsread!=size){ k_free(data); return MAP_FAILED; }
-       return data;
-}
-
-void* mmap_name(void* s, size_t size, int prot, int f, char* fullname, int o)
-{
-       if(!size) return MAP_FAILED;
-       int w=(prot & PROT_WRITE);
-       FILE_T fh=open(fullname, (w? O_RDWR|O_CREAT: O_RDONLY), 0644);
-       if(fh<0) return MAP_FAILED;
-       return mmap(s, size, prot, f, fh, o);
-}
-
-/* -------------------------------------------------------------------------- */
-
-EXPORT void k_random_bytes(char* buf, size_t size)
-{
-       *(short*)buf=getpid();
-       if(size!=2) k_log_err("Linux randomness not implemented yet!");
-}
-
-/* -------------------------------------------------------------------------- */
-
-EXPORT void* k_malloc(size_t size)
-{
-       void* p=malloc(size);
-       if(!p){
-               k_fatal(OOM_STRING);
-       }
-       return p;
-}
-
-EXPORT void* k_realloc(void* o, size_t size)
-{
-       void* p=realloc(o, size);
-       if(!p){
-               k_fatal(OOM_STRING);
-       }
-       return p;
-}
-
-EXPORT void k_free(void* o)
-{
-       if(o) free(o);
-}
-
-EXPORT char* k_strdup(char* s)
-{
-       if(!s) return 0;
-       char* p=strdup(s);
-       if(!p){
-               k_fatal(OOM_STRING);
-       }
-       return p;
-}
-
-EXPORT void* k_memdup(void* s, size_t size)
-{
-       void* p=malloc(size);
-       if(!p){
-               k_fatal(OOM_STRING);
-       }
-       memcpy(p, s, size);
-       return p;
-}
-
-/* -------------------------------------------------------------------------- */
-
diff --git a/src/platform/linux/osapi.h b/src/platform/linux/osapi.h
deleted file mode 100644 (file)
index d84d0c0..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-
-/* -------------------------------------------------------------------------- */
-
-#define LOAD_MODULES_EARLY    1
-#define LOAD_GL               0
-#define MODULE                void*
-#define MODPRE                "mod-"
-#define MODPOST               ".so"
-#define DLOPEN(n)             dlopen(n, RTLD_GLOBAL|RTLD_NOW)
-#define DLSYM                 dlsym
-#define DLERROR               dlerror()
-#define LOOP_TICK             10
-#define LINGER_LOOPS          500
-
-#define EMPTY_IN_ADDR         { 0 }
-#define SOCK                  fd
-#define SOCK_T                int
-#define SOCKET(a,t,p,s)       s=socket(a,t,p)
-#define ACCEPT(as,a,l,s)      s=accept(as,a,l)
-#define BIND                  bind
-#define LISTEN                listen
-#define CONNECT               connect
-#define SOCKET_READ( s,b,l)   recv(s,b,l,MSG_NOSIGNAL)
-#define SOCKET_WRITE(s,b,l)   send(s,b,l,MSG_NOSIGNAL)
-#define SOCKET_CLOSE          close
-#define SET_NON_BLOCKING(s)   int f=fcntl(s, F_GETFL); if(f!=-1) fcntl(s, F_SETFL, f|O_NONBLOCK)
-#define SET_NO_DELAY(s)       int arg=1; r=setsockopt(s, SOL_TCP,    TCP_NODELAY,  (char*)&arg, sizeof(arg))
-#define SET_REUSEADDR(s)      int arg=1; r=setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char*)&arg, sizeof(arg))
-#define GETERRNO(n)
-#define ERRNO                 errno
-#define INTERRUPTED           EINTR
-#define NOTACTIVE             EWOULDBLOCK
-#define ISCONNECTING(e)       (e==EINPROGRESS || e==EALREADY)
-#define ISNOTACTIVE(e)        (e==EAGAIN || e==EWOULDBLOCK)
-
-#define FILEP                 FILE*
-#define FILE_T                int
-#define FOPEN                 fopen
-#define READFILE              read
-#define WRITEFILE             write
-#define MKDIR(n)              mkdir(n, 0777)
-#define FPRINTF               fprintf
-#define FFLUSH(f)             fflush(f)
-#define FCLOSE(f)             close(f)
-#define PRINTFOUT(f)          printf(f)
-#define PRINTFERR(f)          fprintf(stderr,f)
-#define VPRINTFOUT(f,ap)      vprintf(f,ap)
-#define VPRINTFERR(f,ap)      vfprintf(stderr,f,ap)
-#define FERRNO(n)             errno
-#define EXIT(n)               exit(n)
-#define LOG_TO_STD            0
-
-#define TIMEZONE(tm)          tm->tm_gmtoff
-#define SLEEP_MS(x)           do{struct timeval t;t.tv_sec=0;t.tv_usec=(x)*1000;select(0,0,0,0,&t);}while(0)
-#define MKTIME                mktime
-
-/* -------------------------------------------------------------------------- */
-
index 85c1e52..b657cb4 100644 (file)
@@ -1,27 +1,18 @@
 #ifndef LINUX_PLATFORM_H
 #define LINUX_PLATFORM_H
 
+#include <stdlib.h>
 #include <string.h>
-#include <malloc.h>
 #include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
 #include <time.h>
-#include <sys/socket.h>
+#include <math.h>
 #include <netinet/in.h>
-#include <netinet/tcp.h>
-#include <arpa/inet.h>
-
-#define MMAPSIZE (128*1024)
+#include <EGL/egl.h>
+#include <GLES2/gl2.h>
 
 #ifndef PUBLIC
 #define PUBLIC extern
 #endif
 #define EXPORT
 
-#define CONSOLE    void*
-#define C_RUN_RV   int
-#define C_RUN_ARG  void*
-
 #endif
-