OSDN Git Service

(none)
authorryuz <ryuz>
Wed, 6 May 2009 11:57:48 +0000 (11:57 +0000)
committerryuz <ryuz>
Wed, 6 May 2009 11:57:48 +0000 (11:57 +0000)
aplfw/build/win/win32/vc2008/hosaplfw.vcproj
aplfw/driver/volume/fat/fatvol_iocontrol.c
aplfw/driver/volume/fat/fatvol_open.c
aplfw/library/container/assoc/assoc.c
aplfw/library/container/assoc/assoc.h
aplfw/system/command/command.c
aplfw/system/file/file_open.c
cfgrtr/source/crecyc.cpp
kernel/source/object/cyc/cre_cyc.c
kernel/source/object/cyc/sta_cyc.c

index 7e18d01..c4cfacd 100755 (executable)
                                        >
                                </File>
                        </Filter>
+                       <Filter
+                               Name="command"
+                               >
+                               <File
+                                       RelativePath="..\..\..\..\system\command\command.c"
+                                       >
+                               </File>
+                               <File
+                                       RelativePath="..\..\..\..\system\command\command.h"
+                                       >
+                               </File>
+                       </Filter>
                </Filter>
                <Filter
                        Name="application"
index 2167bcf..396fa45 100755 (executable)
@@ -46,9 +46,8 @@ FILE_ERR FatVol_IoControl(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, int iFunc, voi
                                {
                                        return FILE_ERR_NG;
                                }                               
-                       } while ( ubBuf[0] == 0xe5 || ubBuf[0] == 0x2e );
-                       
-                       
+                       } while ( ubBuf[0] == 0xe5 || ubBuf[0] == 0x2e || ubBuf[11] == 0x0f );
+                                               
                        /* ファイル名 */
                        p = pFileInf->szFileName;
                        for ( i = 0; i < 8; i++ )
index d71decf..760439b 100755 (executable)
 HANDLE FatVol_Open(C_DRVOBJ *pDrvObj, const char *pszPath, int iMode)
 {
        C_FATVOL                        *self;
-
        HANDLE                          hFile;
-
-
        FATVOL_UINT                     uiDirStartCluster;      
        FATVOL_UINT                     uiDirCluster;   
        FATVOL_UINT                     uiDirEntryPos;
-
        char                            szName[8+3];
        int                             iNameLen;
-
        FATVOL_UINT                     uiFileCluster;
        unsigned char           ubFileAttr;
        FILE_POS                        FileSize;
@@ -302,6 +297,16 @@ HANDLE FatVol_Open(C_DRVOBJ *pDrvObj, const char *pszPath, int iMode)
                /* ディレクトリを閉じる */
                FatVol_RelClusterBuf(self, pClusterBuf, 1);
        }
+       else
+       {
+               /* 存在した場合 */
+               if ( iMode & FILE_OPEN_CREATE )
+               {
+                       FatVol_FreeCluster(self, uiFileCluster);
+                       FatVol_SetNextCluster(self, uiFileCluster, FATVOL_CLUSTER_ENDMARKER);
+                       FileSize = 0;
+               }
+       }
        
        /* モードチェック */
        if ( ((ubFileAttr & 0x10) && !(iMode & FILE_OPEN_DIR))
index 4c3beb9..06b5dfd 100755 (executable)
 #include "assoc.h"
 
 
+C_ASSOC *Assoc_Create(void)
+{
+       return NULL;
+}
+
+
+C_ASSOC *Assoc_CreateEx(C_MEMHEAP *pMemHeap)
+{
+       return NULL;
+}
+
 
 /* 連想バッファのコンストラクタ */
-/*void Assoc_Constructor(C_ASSOC *self, C_MEMHEAP *pMemHeap) */
-void Assoc_CreateEx(C_ASSOC *self, C_MEMHEAP *pMemHeap)
+void Assoc_Constructor(C_ASSOC *self, C_MEMHEAP *pMemHeap)
 {
        self->pMemHeap = pMemHeap;
        self->pRoot    = NULL;
index a8b59b8..9dcc629 100755 (executable)
@@ -46,17 +46,11 @@ extern "C" {
 #endif
 
 /* 生成/削除 */
-#if 0
 C_ASSOC           *Assoc_Create(void);                                                                                                                         /* 連想バッファの生成 */
+C_ASSOC           *Assoc_CreateEx(C_MEMHEAP *pMemHeap);                                                                                        /* 連想バッファの生成 */
 void        Assoc_Delete(C_ASSOC *self);                                                                                                       /* 連想バッファの削除 */
-
 void        Assoc_Constructor(C_ASSOC *self, C_MEMHEAP *pMemHeap);                                                     /* 連想バッファのコンストラクタ */
 void        Assoc_Destructor(C_ASSOC *self);                                                                                           /* 連想バッファのデストラクタ */
-#endif
-void        Assoc_Create(C_ASSOC *self);                                                                                                       /* 連想バッファの生成 */
-void        Assoc_CreateEx(C_ASSOC *self, C_MEMHEAP *pMemHeap);                                                                /* 連想バッファの生成 */
-void        Assoc_Delete(C_ASSOC *self);                                                                                                       /* 連想バッファの削除 */
-
 
 /* 操作 */
 ASSOC_ERR   Assoc_Add(C_ASSOC *self, const char *pszKey, const void *pData, long lSize);       /* データの登録 */
index 877d5c2..fe703df 100755 (executable)
@@ -11,7 +11,7 @@ C_ASSOC Command_Assoc;
 void Command_Initialize(void)
 {
        /* システムメモリを使う連想配列を生成 */
-       Assoc_CreateEx(&Command_Assoc, SysMem_GetMemHeap());
+       Assoc_Constructor(&Command_Assoc, SysMem_GetMemHeap());
 }
 
 /* コマンドを登録する */
index 1733d09..f4c8973 100755 (executable)
@@ -24,72 +24,6 @@ HANDLE File_Open(const char *pszPath, int iMode)
        int                     i, j, k;
        
        self = &g_File;
-
-#if 0
-       /* パス生成 */
-       if ( *pszPath == '/' )
-       {
-               /* 絶対パス */
-               strncpy(szBuf, pszPath+1, FILE_MAX_PATH);               
-       }
-       else
-       {
-               /* 相対パス */
-               strcpy(szBuf, Process_GetCurrentDir(HANDLE_NULL));
-               iLen = strlen(szBuf);
-               if ( szBuf[0] != '\0' )
-               {
-                       strncat(szBuf, "/", FILE_MAX_PATH - iLen);
-                       iLen++;
-               }
-               strncat(szBuf, pszPath, FILE_MAX_PATH - iLen);
-       }
-       szBuf[FILE_MAX_PATH-1] = '\0';
-       
-       /* 相対パス解決 */
-       for ( i = 0; szBuf[i] == '\0'; i++ )
-       {
-               j = i;
-               if ( szBuf[i] == '/' )
-               {
-                       if ( szBuf[i+1] == '/' )
-                       {
-                               j = i + 1;
-                       }
-                       else if ( szBuf[i+1] == '.' && (szBuf[i+2] == '/' || szBuf[i+2] == '\0') )
-                       {
-                               j = i + 2;
-                       }
-                       else if ( szBuf[i+1] == '.' && szBuf[i+2] == '.' && (szBuf[i+3] == '/' || szBuf[i+3] == '\0') )
-                       {
-                               j = i + 3;
-                               while ( i > 0 )
-                               {
-                                       if ( szBuf[--i] == '/' )
-                                       {
-                                               break;
-                                       }
-                               }
-                       }
-                       if ( i != j )
-                       {
-                               for ( k = 0; szBuf[j+k] != '\0'; k++ )
-                               {
-                                       szBuf[i + k] = szBuf[j + k];
-                               }
-                               szBuf[i + k] = '\0';
-                       }
-               }
-       }
-       
-       /* 末尾の '/' の削除 */
-       iLen = strlen(szBuf);
-       while ( iLen > 0 && szBuf[iLen-1] == '/' )
-       {
-               szBuf[iLen-1] = '\0';
-               iLen--;
-       }
-#endif
        
        /* 絶対パスに変換 */
        ErrCode = File_RelPathToAbsPath(szBuf, pszPath, sizeof(szBuf));
index 035f14a..0d2581a 100755 (executable)
@@ -1,9 +1,9 @@
 // ---------------------------------------------------------------------------
-//  Hyper Operating System V4  コンフィギュレーター                           
-//    CRE_CYC API の処理                                                      
-//                                                                            
-//                                    Copyright (C) 1998-2003 by Project HOS  
-//                                    http://sourceforge.jp/projects/hos/     
+//  Hyper Operating System V4 Advance コンフィギュレーター
+//    CRE_CYC API の処理
+//
+//                                    Copyright (C) 1998-2009 by Project HOS
+//                                    http://sourceforge.jp/projects/hos/
 // ---------------------------------------------------------------------------
 
 
index 3086457..b68e2d6 100755 (executable)
@@ -27,7 +27,7 @@
 ID cre_cyc(ID cycid, const T_CCYC *pk_ccyc)
 {
        ER_ID erid;
-
+       
        /* %jp{IDチェック}%en{check ID} */
 #if _KERNEL_SPT_CRE_CYC_E_ID
        if ( !_KERNEL_CYC_CHECK_CYCID(cycid) )
@@ -35,7 +35,7 @@ ID cre_cyc(ID cycid, const T_CCYC *pk_ccyc)
                return E_ID;    /* %jp{不正ID番号}%en{Invalid ID number} */
        }       
 #endif
-
+       
        _KERNEL_ENTER_SVC();            /* %jp{サービスコールに入る}%en{enter service-call} */
        
        /* %jp{存在チェック}%en{check object} */
index 534b897..890df38 100755 (executable)
@@ -21,8 +21,8 @@ ER sta_cyc(ID cycid)
        _KERNEL_T_CYCCB    *cyccb;
        _KERNEL_T_CYCCB_RO *cyccb_ro;
        _KERNEL_T_TIMOBJ   *pk_timobj;
-
-
+       
+       
        /* %jp{ID のチェック} */
 #if _KERNEL_SPT_STA_CYC_E_ID
        if ( !_KERNEL_CYC_CHECK_CYCID(cycid) )