OSDN Git Service

(none)
authorryuz <ryuz>
Thu, 3 May 2007 07:58:02 +0000 (07:58 +0000)
committerryuz <ryuz>
Thu, 3 May 2007 07:58:02 +0000 (07:58 +0000)
12 files changed:
aplfw/apl/util/keytest/keytest_main.c
aplfw/build/common/gmake/aplfwsrc.inc
aplfw/sample/arm/ez_arm7/sample.c
aplfw/system/process/process.h
aplfw/system/sysapi/sysapi.h
aplfw/system/sysapi/sysapi_initialize.c [moved from aplfw/system/sysapi/system_initialize.c with 71% similarity]
aplfw/system/sysapi/sysapi_local.h
aplfw/system/sysapi/sysloc_lock.c [moved from aplfw/system/sysapi/system_lock.c with 84% similarity]
aplfw/system/sysapi/sysloc_unlock.c [moved from aplfw/system/sysapi/system_unlock.c with 84% similarity]
aplfw/system/system/system.h [new file with mode: 0755]
aplfw/system/system/system_boot.c [new file with mode: 0755]
aplfw/system/system/system_initialize.c [new file with mode: 0755]

index 0c2128b..ef76d7b 100755 (executable)
@@ -19,7 +19,7 @@ int KeyTest_Main(int argc, char *argv[])
        HANDLE hTty;
 
        StdIo_PutString("\n[KeyTest] start\n");
-       hTty = Process_GetTty();
+       hTty = Process_GetTerminal();
 
        for ( ; ; )
        {
index 6f26bab..f9ee742 100755 (executable)
@@ -16,10 +16,19 @@ INC_DIRS += $(APLFW_DIR)
 #  Systems
 # --------------------------------------------------
 
+SYSTEM_DIR     = $(APLFW_DIR)/system/system
+SRC_DIRS      += $(SYSTEM_DIR)
+CSRCS         += $(SYSTEM_DIR)/system_initialize.c                                     \
+                 $(SYSTEM_DIR)/system_boot.c
+
+
 # System API
 SYSAPI_DIR     = $(APLFW_DIR)/system/sysapi
 SRC_DIRS      += $(SYSAPI_DIR)
-CSRCS         += $(SYSAPI_DIR)/sysevt_clear.c                                          \
+CSRCS         += $(SYSAPI_DIR)/sysapi_initialize.c                                     \
+                 $(SYSAPI_DIR)/sysloc_lock.c                                           \
+                 $(SYSAPI_DIR)/sysloc_unlock.c                                         \
+                 $(SYSAPI_DIR)/sysevt_clear.c                                          \
                  $(SYSAPI_DIR)/sysevt_create.c                                         \
                  $(SYSAPI_DIR)/sysevt_delete.c                                         \
                  $(SYSAPI_DIR)/sysevt_set.c                                                    \
@@ -43,9 +52,6 @@ CSRCS         += $(SYSAPI_DIR)/sysevt_clear.c                                         \
                  $(SYSAPI_DIR)/sysprc_exit.c                                           \
                  $(SYSAPI_DIR)/sysprc_getcurrenthandle.c                       \
                  $(SYSAPI_DIR)/sysprc_start.c                                          \
-                 $(SYSAPI_DIR)/system_initialize.c                                     \
-                 $(SYSAPI_DIR)/system_lock.c                                           \
-                 $(SYSAPI_DIR)/system_unlock.c                                         \
                  $(SYSAPI_DIR)/systim_wait.c
 
 
index b4ca4ad..207caba 100755 (executable)
@@ -14,6 +14,7 @@
 #include <string.h>
 #include "kernel.h"
 #include "kernel_id.h"
+#include "system/system/system.h"
 #include "system/sysapi/sysapi.h"
 #include "system/file/console.h"
 #include "system/process/process.h"
@@ -33,14 +34,13 @@ C_PC16550DRV g_Pc16550Drv[1];
 C_VT100DRV   g_Vt100Drv[1];
 
 
-int System_Boot(VPARAM Param);
 
 
 #define PINSEL0                ((volatile UW *)0xe002c000)
 
+
 void Sample_Task(VP_INT exinf)
 {
-       T_PROCESS_INF   ProcInfo;
        HANDLE                  hTty;
        HANDLE                  hCon;
        
@@ -56,8 +56,7 @@ void Sample_Task(VP_INT exinf)
        
        /* システム初期化 */
        System_Initialize(g_SystemHeap, sizeof(g_SystemHeap));
-       File_Initialize();
-       Command_Initialize();
+
 
 
        /*************************/
@@ -68,11 +67,17 @@ void Sample_Task(VP_INT exinf)
        Pc16550Drv_Create(&g_Pc16550Drv[0], (void *)0xe000c000, 2, 6, (14700000/4), 64);
        File_AddDevice("com0", (C_DRVOBJ *)&g_Pc16550Drv[0]);
 
-       /* シリアル上にコンソールを生成( /dev/com0 に登録) */
+       /* シリアルを開く */
        hTty = File_Open("/dev/com0", FILE_OPEN_READ | FILE_OPEN_WRITE);
+       
+       /* シリアル上にコンソールを生成( /dev/com0 に登録) */
        Vt100Drv_Create(&g_Vt100Drv[0], hTty);
        File_AddDevice("con0", (C_DRVOBJ *)&g_Vt100Drv[0]);
        
+       /* コンソールを開く */
+       hCon = File_Open("/dev/con0", FILE_OPEN_READ | FILE_OPEN_WRITE);
+       
+       
        
        /*************************/
        /*     コマンド登録      */
@@ -88,24 +93,7 @@ void Sample_Task(VP_INT exinf)
        /*************************/
        /*  システムプロセス起動 */
        /*************************/
-       
-       hCon = File_Open("/dev/con0", FILE_OPEN_READ | FILE_OPEN_WRITE);
-       ProcInfo.hTty     = hTty;
-       ProcInfo.hConsole = hCon;
-       ProcInfo.hStdIn   = hCon;
-       ProcInfo.hStdOut  = hCon;
-       ProcInfo.hStdErr  = hCon;
-       Process_CreateEx(System_Boot, 0, 4096, PROCESS_PRIORITY_NORMAL, &ProcInfo);
-       
-       return;
-}
-
-
-/* システムプロセス */
-int System_Boot(VPARAM Param)
-{
-       /* シェル起動 */
-       return Command_Execute("hsh", NULL);
+       System_Boot(hTty, hCon, "hsh", 4096);
 }
 
 
index 686a564..1fb7560 100755 (executable)
@@ -19,7 +19,7 @@
 /* プロセス固有情報 */
 typedef struct t_process_inf
 {
-       HANDLE      hTty;                                                       /* ターミナル */
+       HANDLE      hTerminal;                                          /* ターミナル */
        HANDLE      hConsole;                                           /* コンソール */
        HANDLE      hStdIn;                                                     /* 標準入力 */
        HANDLE      hStdOut;                                            /* 標準出力 */
@@ -39,7 +39,7 @@ HANDLE Process_GetCurrentHandle(void);
 int    Process_GetExitCode(HANDLE hProcess);
 const T_PROCESS_INF *Process_GetInfo(HANDLE hProcess);
 
-#define Process_GetTty()               (Process_GetInfo(Process_GetCurrentHandle())->hTty)
+#define Process_GetTerminal()  (Process_GetInfo(Process_GetCurrentHandle())->hTerminal)
 #define Process_GetConsole()   (Process_GetInfo(Process_GetCurrentHandle())->hConsole)
 #define Process_GetStdIn()             (Process_GetInfo(Process_GetCurrentHandle())->hStdIn)
 #define Process_GetStdOut()            (Process_GetInfo(Process_GetCurrentHandle())->hStdOut)
index 2b97968..e6d5a2c 100755 (executable)
@@ -44,11 +44,11 @@ extern "C" {
 #endif
 
 /* 初期化 */
-void           System_Initialize(void *pMem, MEMSIZE lSize);   /* システムの初期化処理 */
+void           SysApi_Initialize(void *pMem, MEMSIZE lSize);   /* システムの初期化処理 */
 
 /* システムロック */
-void           System_Lock(void);                                                              /* システム全体のロック */
-void           System_Unlock(void);                                                            /* システム全体のロック解除 */
+void           SysLoc_Lock(void);                                                              /* システム全体のロック */
+void           SysLok_Unlock(void);                                                            /* システム全体のロック解除 */
 
 /* システム用メモリ制御API */
 void          *SysMem_Alloc(MEMSIZE Size);                                             /* システムメモリの割り当て */
similarity index 71%
rename from aplfw/system/sysapi/system_initialize.c
rename to aplfw/system/sysapi/sysapi_initialize.c
index 53c84d5..6404fb5 100755 (executable)
@@ -4,7 +4,7 @@
  * @file  system.h
  * @brief %jp{システム用API定義}
  *
- * Copyright (C) 2006 by Project HOS
+ * Copyright (C) 2006-2007 by Project HOS
  * http://sourceforge.jp/projects/hos/
  */
 
 #include "kernel.h"
 
 
-SYSMTX_HANDLE System_hMtx;
 SYSMTX_HANDLE SysMem_hMtx;
 C_MEMPOL      SysMem_MemPol;
 
 
 /* システムの初期化 */
-void System_Initialize(void *pMem, MEMSIZE Size)
+void SysApi_Initialize(void *pMem, MEMSIZE Size)
 {
-       /* システムロックの作成 */
-       System_hMtx = SysMtx_Create();                                  /* システムロック用ミューテックス生成 */
-
        /* メモリ管理の初期化 */
        SysMem_hMtx = SysMtx_Create();                                  /* メモリ管理用排他制御用ミューテックス生成 */
        MemPol_Create(&SysMem_MemPol, pMem, Size);              /* メモリプール生成 */
index 4938c0d..f46b05e 100755 (executable)
@@ -18,7 +18,6 @@
 #include "library/container/mempol/mempol.h"
 
 
-extern SYSMTX_HANDLE System_hMtx;
 extern SYSMTX_HANDLE SysMem_hMtx;
 extern C_MEMPOL      SysMem_MemPol;
 
similarity index 84%
rename from aplfw/system/sysapi/system_lock.c
rename to aplfw/system/sysapi/sysloc_lock.c
index 0ba26b5..9c37abb 100755 (executable)
 
 
 #include "sysapi_local.h"
+#include "kernel.h"
 
 
 /* システム全体のロック */
-void System_Lock(void)
+void SysLoc_Lock(void)
 {
-       SysMtx_Lock(System_hMtx);
+       loc_cpu();
 }
 
 
similarity index 84%
rename from aplfw/system/sysapi/system_unlock.c
rename to aplfw/system/sysapi/sysloc_unlock.c
index 7ef656c..c143cb4 100755 (executable)
@@ -13,9 +13,9 @@
 
 
 /* システム全体のロック解除 */
-void System_Unlock(void)
+void SysLoc_Unlock(void)
 {
-       SysMtx_Unlock(System_hMtx);
+       unl_cpu();
 }
 
 
diff --git a/aplfw/system/system/system.h b/aplfw/system/system/system.h
new file mode 100755 (executable)
index 0000000..dc63cfe
--- /dev/null
@@ -0,0 +1,35 @@
+/** 
+ *  Hyper Operating System  Application Framework
+ *
+ * @file  system.h
+ * @brief %jp{システム用API定義}
+ *
+ * Copyright (C) 2006-2007 by Project HOS
+ * http://sourceforge.jp/projects/hos/
+ */
+
+
+
+#ifndef __HOS__system_h__
+#define __HOS__system_h__
+
+
+#include "system/type/type.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void System_Initialize(void *pMem, MEMSIZE Size);
+void System_Boot(HANDLE hTerminal, HANDLE hConsole, const char *pszCommand, int iStackSize);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* __HOS__system_h__ */
+
+
+/* end of file */
diff --git a/aplfw/system/system/system_boot.c b/aplfw/system/system/system_boot.c
new file mode 100755 (executable)
index 0000000..bce6589
--- /dev/null
@@ -0,0 +1,62 @@
+/** 
+ *  Hyper Operating System  Application Framework
+ *
+ * @file  system.h
+ * @brief %jp{システム用API定義}
+ *
+ * Copyright (C) 2006-2007 by Project HOS
+ * http://sourceforge.jp/projects/hos/
+ */
+
+
+#include "hosaplfw.h"
+#include "system/system/system.h"
+#include "system/sysapi/sysapi.h"
+#include "system/process/process.h"
+#include "system/file/stdfile.h"
+
+
+static int System_ProcessEntry(VPARAM Param);
+
+
+/* システムのブート */
+void System_Boot(HANDLE hTerminal, HANDLE hConsole, const char *pszCommand, int iStackSize)
+{
+       T_PROCESS_INF   ProcInf;
+
+       ProcInf.hTerminal = hTerminal;
+       ProcInf.hConsole  = hConsole;
+       ProcInf.hStdIn    = hConsole;
+       ProcInf.hStdOut   = hConsole;
+       ProcInf.hStdErr   = hConsole;
+       Process_CreateEx(System_ProcessEntry, (VPARAM)pszCommand, iStackSize, PROCESS_PRIORITY_NORMAL, &ProcInf);       
+}
+
+
+/* システムプロセス */
+int System_ProcessEntry(VPARAM Param)
+{
+       const char      *pszCommand;
+       int                     iExitCode;
+       
+       pszCommand = (const char *)Param;
+       
+       /* 起動メッセージ */
+       StdIo_PutString(
+                       "\n\n"
+                       "================================================================\n"
+                       " Hyper Operating System  Application Flamework  --Alpha version\n"
+                       "\n"
+                       "                          Copyright (C) 1998-2006 by Project HOS\n"
+                       "                          http://sourceforge.jp/projects/hos/\n"
+                       "================================================================\n"
+                       "\n");
+       
+       /* 起動 */
+       Command_Execute(pszCommand, &iExitCode);
+       
+       return iExitCode;
+}
+
+
+/* end of file */
diff --git a/aplfw/system/system/system_initialize.c b/aplfw/system/system/system_initialize.c
new file mode 100755 (executable)
index 0000000..8108815
--- /dev/null
@@ -0,0 +1,32 @@
+/** 
+ *  Hyper Operating System  Application Framework
+ *
+ * @file  system.h
+ * @brief %jp{システム用API定義}
+ *
+ * Copyright (C) 2006-2007 by Project HOS
+ * http://sourceforge.jp/projects/hos/
+ */
+
+
+#include "system/system/system.h"
+#include "system/sysapi/sysapi.h"
+#include "system/file/file.h"
+#include "system/command/command.h"
+
+
+/* システムの初期化 */
+void System_Initialize(void *pMem, MEMSIZE Size)
+{
+       /* システムAPIの初期化 */
+       SysApi_Initialize(pMem, Size);
+       
+       /* ファイルシステム初期化 */
+       File_Initialize();
+       
+       /* コマンドシステム初期化 */
+       Command_Initialize();   
+}
+
+
+/* end of file */