aboutsummaryrefslogtreecommitdiff
path: root/emu
diff options
context:
space:
mode:
Diffstat (limited to 'emu')
-rw-r--r--emu/FreeRTOS/devfs-posix.c10
-rw-r--r--emu/FreeRTOS/emu4
-rw-r--r--emu/FreeRTOS/kproc-xthreads.c7
-rw-r--r--emu/FreeRTOS/mkfile2
-rw-r--r--emu/port/fns.h2
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_