diff --git a/src/fs/Kconfig b/src/fs/Kconfig index 1524e4c9e530e3f89e5afb71716d08ea76a08220..fc6ef9e0f0f81d58c1d48b1a98320315baf3871e 100644 --- a/src/fs/Kconfig +++ b/src/fs/Kconfig @@ -5,13 +5,13 @@ source "$NXOS_SRC_DIR/fs/fat/Kconfig" config NX_ENABLE_EXECUTE_USER bool "Enable execute first user process" select NX_ENABLE_MOUNT_TABLE - default n + default y if NX_ENABLE_EXECUTE_USER config NX_FIRST_USER_PATH string "first user process file path" - default "/uinit" + default "/System/Service/UserLand.xapp" endif @@ -35,7 +35,7 @@ config NX_ENABLE_MOUNT_TABLE if NX_FS_DEVFS config NX_DEVFS_PATH_DEFAULT string "default devfs mount path" - default "/dev" + default "/System/Device" config NX_DEVFS_FSNAME_DEFAULT string "default devfs fsname" diff --git a/src/fs/cpio/Kconfig b/src/fs/cpio/Kconfig index 9f1d6b0181f2b1ee5ba3f205ba83c5c226ad2208..46ba91dc6a0d50df624e91e9a77d3555fb66b03b 100644 --- a/src/fs/cpio/Kconfig +++ b/src/fs/cpio/Kconfig @@ -1,4 +1,3 @@ config NX_FS_CPIO bool "Enable cpio file system" - select NX_DRIVER_ROMDISK default n diff --git a/src/init/init.c b/src/init/init.c index 75ee5d4e74406a2e368c5d9378edb7eec935f49a..a7647c40df8a914d52396ca84a9d78fbf07ba4de 100644 --- a/src/init/init.c +++ b/src/init/init.c @@ -78,7 +78,11 @@ NX_PRIVATE void CallsEntry(void *arg) #ifdef CONFIG_NX_ENABLE_EXECUTE_USER { NX_Error err = NX_ProcessLaunch(CONFIG_NX_FIRST_USER_PATH, NX_PROC_FLAG_NOWAIT, NX_NULL, NX_NULL, NX_NULL); - NX_LOG_I("execute first user on path:%s with state %d", CONFIG_NX_FIRST_USER_PATH, err); + NX_LOG_I("execute first user on path:%s with state %s", CONFIG_NX_FIRST_USER_PATH, NX_ErrorToString(err)); + if (err != NX_EOK) + { + NX_PANIC("start user process failed!"); + } } #endif /* CONFIG_NX_ENABLE_EXECUTE_USER */ diff --git a/src/kernel/debug.c b/src/kernel/debug.c index 04a3ddfacd142ef0efd14c7c8126f78970fdd4c3..dfe3b08934563421ec1c83a45afc5c31898ca259 100644 --- a/src/kernel/debug.c +++ b/src/kernel/debug.c @@ -25,7 +25,7 @@ void NX_DebugAssertionFailure(char *exp, char *file, char *baseFile, int line) void NX_DebugSpin(const char *str) { - NX_LOG_I(str, NX_Endln "FILE:%s\nFUNCTION:%s\nLINE:%d", __FILE__, __FUNCTION__, __LINE__); + NX_LOG_E(str, NX_Endln "FILE:%s\nFUNCTION:%s\nLINE:%d", __FILE__, __FUNCTION__, __LINE__); while (1); } diff --git a/src/platform/d1 b/src/platform/d1 index debbfef0dde94f29e15e4eb7fb57f8cc8d62e862..0149e64e29ec48b0f986848a91ec8e5cdf92240b 160000 --- a/src/platform/d1 +++ b/src/platform/d1 @@ -1 +1 @@ -Subproject commit debbfef0dde94f29e15e4eb7fb57f8cc8d62e862 +Subproject commit 0149e64e29ec48b0f986848a91ec8e5cdf92240b diff --git a/src/platform/hifive_unmached b/src/platform/hifive_unmached index 8217e275f5825c0b36e631c4f6aaa0b33fcbcbfb..1132ace3f9d223c038d8fc7d417698ae48cd9dea 160000 --- a/src/platform/hifive_unmached +++ b/src/platform/hifive_unmached @@ -1 +1 @@ -Subproject commit 8217e275f5825c0b36e631c4f6aaa0b33fcbcbfb +Subproject commit 1132ace3f9d223c038d8fc7d417698ae48cd9dea diff --git a/src/platform/i386 b/src/platform/i386 index 15b33f830b67fae26c43a9e4b3af2ad410840a0d..f3cd8bb3b9d3f10571fad771ad39181f9daed899 160000 --- a/src/platform/i386 +++ b/src/platform/i386 @@ -1 +1 @@ -Subproject commit 15b33f830b67fae26c43a9e4b3af2ad410840a0d +Subproject commit f3cd8bb3b9d3f10571fad771ad39181f9daed899 diff --git a/src/platform/k210 b/src/platform/k210 index a02b1237e93ff7de32c38e9f5ef78fb64b29359d..8256c65a189c4c4742f5e3de8d9f2600c9956328 160000 --- a/src/platform/k210 +++ b/src/platform/k210 @@ -1 +1 @@ -Subproject commit a02b1237e93ff7de32c38e9f5ef78fb64b29359d +Subproject commit 8256c65a189c4c4742f5e3de8d9f2600c9956328 diff --git a/src/platform/qemu_riscv64 b/src/platform/qemu_riscv64 index 5c63c2f212a425caeeeac7e73f645376cdb83cf4..60dd151d5066b5930f3cadc61cbcd542e6180272 160000 --- a/src/platform/qemu_riscv64 +++ b/src/platform/qemu_riscv64 @@ -1 +1 @@ -Subproject commit 5c63c2f212a425caeeeac7e73f645376cdb83cf4 +Subproject commit 60dd151d5066b5930f3cadc61cbcd542e6180272 diff --git a/src/process/syscall.c b/src/process/syscall.c index 4deab1b5342bc7b08a670882a5815aed009f4f12..7cb91d67539f7752315b8956c79b911e7e7abd0f 100644 --- a/src/process/syscall.c +++ b/src/process/syscall.c @@ -84,7 +84,7 @@ NX_PRIVATE NX_Error SysFileSystemSync(void) return NX_FileSystemSync(); } -NX_PRIVATE NX_Error SoltToFile(NX_Solt solt, int * fd) +NX_PRIVATE NX_Error SoltToFile(NX_Solt solt, NX_SSize * fd) { NX_Process * process; NX_ExposedObject * exobj; @@ -105,7 +105,7 @@ NX_PRIVATE NX_Error SoltToFile(NX_Solt solt, int * fd) return NX_ENORES; } - *fd = (int)exobj->object; + *fd = (NX_SSize)exobj->object; NX_ASSERT(*fd); return NX_EOK; @@ -113,14 +113,14 @@ NX_PRIVATE NX_Error SoltToFile(NX_Solt solt, int * fd) NX_PRIVATE NX_Error FileCloseSolt(void * object, NX_ExposedObjectType type) { - int fd; + NX_SSize fd; if (type != NX_EXOBJ_FILE) { return NX_ENORES; } - fd = (int) object; + fd = (NX_SSize)object; NX_ASSERT(fd); return NX_FileClose(fd); @@ -128,7 +128,7 @@ NX_PRIVATE NX_Error FileCloseSolt(void * object, NX_ExposedObjectType type) NX_PRIVATE NX_Error SysFileOpen(const char * path, NX_U32 flags, NX_U32 mode, NX_Solt * outSolt) { - int fd; + NX_SSize fd; NX_Error err = NX_EOK; NX_Solt solt = NX_SOLT_INVALID_VALUE; NX_Process * process; @@ -144,7 +144,7 @@ NX_PRIVATE NX_Error SysFileOpen(const char * path, NX_U32 flags, NX_U32 mode, NX } process = NX_ProcessCurrent(); - if ((err = NX_ProcessInstallSolt(process, (void *)fd, NX_EXOBJ_FILE, FileCloseSolt, &solt)) != NX_EOK) + if ((err = NX_ProcessInstallSolt(process, (NX_SSize *)fd, NX_EXOBJ_FILE, FileCloseSolt, &solt)) != NX_EOK) { NX_FileClose(fd); return err; @@ -159,7 +159,7 @@ NX_PRIVATE NX_Error SysFileRead(NX_Solt solt, void * buf, NX_Size len, NX_Size * { NX_Error err; NX_Size size; - int fd = -1; + NX_SSize fd = -1; err = SoltToFile(solt, &fd); if (err != NX_EOK) @@ -182,7 +182,7 @@ NX_PRIVATE NX_Error SysFileWrite(NX_Solt solt, void * buf, NX_Size len, NX_Size { NX_Error err; NX_Size size; - int fd = -1; + NX_SSize fd = -1; err = SoltToFile(solt, &fd); if (err != NX_EOK) @@ -204,7 +204,7 @@ NX_PRIVATE NX_Error SysFileWrite(NX_Solt solt, void * buf, NX_Size len, NX_Size NX_Error SysFileIoctl(NX_Solt solt, NX_U32 cmd, void *arg) { NX_Error err; - int fd = -1; + NX_SSize fd = -1; err = SoltToFile(solt, &fd); if (err != NX_EOK) @@ -218,7 +218,7 @@ NX_Error SysFileIoctl(NX_Solt solt, NX_U32 cmd, void *arg) NX_PRIVATE NX_Offset SysFileSetPointer(NX_Solt solt, NX_Offset off, int whence, NX_Error *outErr) { NX_Error err; - int fd = -1; + NX_SSize fd = -1; err = SoltToFile(solt, &fd); if (err != NX_EOK) @@ -232,7 +232,7 @@ NX_PRIVATE NX_Offset SysFileSetPointer(NX_Solt solt, NX_Offset off, int whence, NX_PRIVATE NX_Error SysFileSync(NX_Solt solt) { NX_Error err; - int fd = -1; + NX_SSize fd = -1; err = SoltToFile(solt, &fd); if (err != NX_EOK) @@ -246,7 +246,7 @@ NX_PRIVATE NX_Error SysFileSync(NX_Solt solt) NX_PRIVATE NX_Error SysFileSetMode(NX_Solt solt, NX_U32 mode) { NX_Error err; - int fd = -1; + NX_SSize fd = -1; err = SoltToFile(solt, &fd); if (err != NX_EOK) @@ -260,7 +260,7 @@ NX_PRIVATE NX_Error SysFileSetMode(NX_Solt solt, NX_U32 mode) NX_PRIVATE NX_Error SysFileGetStat(NX_Solt solt, NX_FileStatInfo * st) { NX_Error err; - int fd = -1; + NX_SSize fd = -1; err = SoltToFile(solt, &fd); if (err != NX_EOK) @@ -271,7 +271,7 @@ NX_PRIVATE NX_Error SysFileGetStat(NX_Solt solt, NX_FileStatInfo * st) return NX_FileGetStat(fd, st); } -NX_PRIVATE NX_Error SoltToDir(NX_Solt solt, int * fd) +NX_PRIVATE NX_Error SoltToDir(NX_Solt solt, NX_SSize * fd) { NX_Process * process; NX_ExposedObject * exobj; @@ -292,7 +292,7 @@ NX_PRIVATE NX_Error SoltToDir(NX_Solt solt, int * fd) return NX_ENORES; } - *fd = (int)exobj->object; + *fd = (NX_SSize)exobj->object; NX_ASSERT(*fd); return NX_EOK; @@ -300,14 +300,14 @@ NX_PRIVATE NX_Error SoltToDir(NX_Solt solt, int * fd) NX_PRIVATE NX_Error DirCloseSolt(void * object, NX_ExposedObjectType type) { - int fd; + NX_SSize fd; if (type != NX_EXOBJ_DIR) { return NX_ENORES; } - fd = (int) object; + fd = (NX_SSize) object; NX_ASSERT(fd); return NX_DirClose(fd); @@ -315,7 +315,7 @@ NX_PRIVATE NX_Error DirCloseSolt(void * object, NX_ExposedObjectType type) NX_PRIVATE NX_Error SysDirOpen(const char * path, NX_Solt * outSolt) { - int fd; + NX_SSize fd; NX_Error err = NX_EOK; NX_Solt solt = NX_SOLT_INVALID_VALUE; NX_Process * process; @@ -345,7 +345,7 @@ NX_PRIVATE NX_Error SysDirOpen(const char * path, NX_Solt * outSolt) NX_PRIVATE NX_Error SysDirRead(NX_Solt solt, NX_Dirent * dir) { NX_Error err; - int fd = -1; + NX_SSize fd = -1; err = SoltToDir(solt, &fd); if (err != NX_EOK) @@ -359,7 +359,7 @@ NX_PRIVATE NX_Error SysDirRead(NX_Solt solt, NX_Dirent * dir) NX_PRIVATE NX_Error SysDirResetPointer(NX_Solt solt) { NX_Error err; - int fd = -1; + NX_SSize fd = -1; err = SoltToDir(solt, &fd); if (err != NX_EOK)