aboutsummaryrefslogtreecommitdiff
path: root/emu/FreeRTOS
diff options
context:
space:
mode:
authorbhgv <bhgv.empire@gmail.com>2020-05-28 12:49:41 +0300
committerbhgv <bhgv.empire@gmail.com>2020-05-28 12:49:41 +0300
commit2b3bc21f3f7edb429302e81f54d2e3c0e89e5acb (patch)
treea6ddafb5f0ebcdf9bca3fd8e4f56874e6faf15bd /emu/FreeRTOS
parent8d7c6b15fa5733a3070003520a1d869c0635ef82 (diff)
sup. FreeRTOS riscV-64 (k210 cpu). 4th step
Diffstat (limited to 'emu/FreeRTOS')
-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
4 files changed, 21 insertions, 2 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