diff options
Diffstat (limited to 'emu')
| -rw-r--r-- | emu/FreeRTOS/devfs-posix.c | 10 | ||||
| -rw-r--r-- | emu/FreeRTOS/emu | 4 | ||||
| -rw-r--r-- | emu/FreeRTOS/kproc-xthreads.c | 7 | ||||
| -rw-r--r-- | emu/FreeRTOS/mkfile | 2 | ||||
| -rw-r--r-- | emu/port/fns.h | 2 |
5 files changed, 22 insertions, 3 deletions
diff --git a/emu/FreeRTOS/devfs-posix.c b/emu/FreeRTOS/devfs-posix.c index 800078f..d563de9 100644 --- a/emu/FreeRTOS/devfs-posix.c +++ b/emu/FreeRTOS/devfs-posix.c @@ -65,6 +65,7 @@ struct User char rootdir[MAXROOT] = ROOT; +#if 0 //{} static User* uidmap[NID]; static User* gidmap[NID]; static QLock idl; @@ -74,6 +75,9 @@ static User* newuid(int); static User* newgid(int); static User* newuname(char*); static User* newgname(char*); +#else //{} +static QLock idl; +#endif //{} static Qid fsqid(struct stat *); static void fspath(Cname*, char*, char*); @@ -462,12 +466,15 @@ fsread(Chan *c, void *va, long n, vlong offset) qunlock(&FS(c)->oq); }else{ //{} if(!FS(c)->issocket){ +#if 0 //{} r = pread(FS(c)->fd, va, n, offset); if(r >= 0) return r; if(errno != ESPIPE && errno != EPIPE) oserror(); +#endif //{} //{} } + vfs.lseek(FS(c)->fd, offset, SEEK_SET); r = vfs.read(FS(c)->fd, va, n); if(r < 0) oserror(); @@ -481,12 +488,15 @@ fswrite(Chan *c, void *va, long n, vlong offset) long r; //{} if(!FS(c)->issocket){ +#if 0 //{} r = pwrite(FS(c)->fd, va, n, offset); if(r >= 0) return r; if(errno != ESPIPE && errno != EPIPE) oserror(); +#endif //{} //{} } + vfs.lseek(FS(c)->fd, offset, SEEK_SET); r = vfs.write(FS(c)->fd, va, n); if(r < 0) oserror(); diff --git a/emu/FreeRTOS/emu b/emu/FreeRTOS/emu index 0141c36..513acbf 100644 --- a/emu/FreeRTOS/emu +++ b/emu/FreeRTOS/emu @@ -41,6 +41,8 @@ lib 9 + iot + # lodepng link @@ -59,7 +61,7 @@ mod # freetype port - alloc + alloc-andr cache chan dev diff --git a/emu/FreeRTOS/kproc-xthreads.c b/emu/FreeRTOS/kproc-xthreads.c index ade5e35..2a6cc25 100644 --- a/emu/FreeRTOS/kproc-xthreads.c +++ b/emu/FreeRTOS/kproc-xthreads.c @@ -17,6 +17,10 @@ #include <semphr.h> +void* pvGetLuaState(); +void uxSetLuaState(void*); + + typedef SemaphoreHandle_t sem_t; typedef struct Osdep Osdep; @@ -220,10 +224,13 @@ osready(Proc *p) void kprocinit(Proc *p) { + uxSetLuaState(p); +#if 0 //{} if(pthread_key_create(&prdakey, NULL)) panic("key_create failed"); if(pthread_setspecific(prdakey, p)) panic("set specific thread data failed"); +#endif } #ifdef ANDROID diff --git a/emu/FreeRTOS/mkfile b/emu/FreeRTOS/mkfile index 62ff5bc..f6b9ff0 100644 --- a/emu/FreeRTOS/mkfile +++ b/emu/FreeRTOS/mkfile @@ -48,7 +48,7 @@ CFLAGS='-DROOT="'$ROOT'"' -DEMU \ -I$ROOT/libiot/include \ $CTHREADFLAGS $CFLAGS $EMUOPTIONS #SYSLIBS= $X11LIBS -lm -lpthread -SYSLIBS= -lm +#SYSLIBS= -lm default:V: $O.$CONF diff --git a/emu/port/fns.h b/emu/port/fns.h index ae6c8f6..9ff80f2 100644 --- a/emu/port/fns.h +++ b/emu/port/fns.h @@ -1,5 +1,5 @@ -#ifdef ANDROID +#if defined(ANDROID) || defined(FREERTOS) #define malloc malloc_ #define free free_ #define realloc realloc_ |
