From e5c478ca25513d575328972be19d916cfe1bbe9c Mon Sep 17 00:00:00 2001 From: ryuz Date: Sun, 20 May 2007 17:06:59 +0000 Subject: [PATCH] (none) --- aplfw/system/file/file_initialize.c | 2 - aplfw/system/file/file_open.c | 1 - aplfw/system/file/volume.h | 36 --------- aplfw/system/file/volume_openfile.c | 20 ----- aplfw/volume/dev/devvol.h | 55 ------------- aplfw/volume/dev/devvol_adddevice.c | 22 ----- aplfw/volume/dev/devvol_create.c | 32 -------- aplfw/volume/dev/devvol_delete.c | 6 -- aplfw/volume/dev/devvol_local.h | 20 ----- aplfw/volume/dev/devvol_openfile.c | 38 --------- aplfw/volume/fat/fatfile.h | 52 ------------ aplfw/volume/fat/fatfile_create.c | 43 ---------- aplfw/volume/fat/fatfile_local.h | 37 --------- aplfw/volume/fat/fatfile_read.c | 79 ------------------ aplfw/volume/fat/fatvol.h | 71 ---------------- aplfw/volume/fat/fatvol_clusterread.c | 53 ------------ aplfw/volume/fat/fatvol_clusterwrite.c | 54 ------------- aplfw/volume/fat/fatvol_create.c | 114 -------------------------- aplfw/volume/fat/fatvol_createfile.c | 28 ------- aplfw/volume/fat/fatvol_flushfat.c | 36 --------- aplfw/volume/fat/fatvol_getclusterbuf.c | 67 ---------------- aplfw/volume/fat/fatvol_getnextcluster.c | 64 --------------- aplfw/volume/fat/fatvol_local.h | 43 ---------- aplfw/volume/fat/fatvol_open.c | 134 ------------------------------- aplfw/volume/fat/fatvol_relclusterbuf.c | 23 ------ aplfw/volume/fat/fatvol_setnextcluster.c | 50 ------------ 26 files changed, 1180 deletions(-) delete mode 100755 aplfw/system/file/volume.h delete mode 100755 aplfw/system/file/volume_openfile.c delete mode 100755 aplfw/volume/dev/devvol.h delete mode 100755 aplfw/volume/dev/devvol_adddevice.c delete mode 100755 aplfw/volume/dev/devvol_create.c delete mode 100755 aplfw/volume/dev/devvol_delete.c delete mode 100755 aplfw/volume/dev/devvol_local.h delete mode 100755 aplfw/volume/dev/devvol_openfile.c delete mode 100755 aplfw/volume/fat/fatfile.h delete mode 100755 aplfw/volume/fat/fatfile_create.c delete mode 100755 aplfw/volume/fat/fatfile_local.h delete mode 100755 aplfw/volume/fat/fatfile_read.c delete mode 100755 aplfw/volume/fat/fatvol.h delete mode 100755 aplfw/volume/fat/fatvol_clusterread.c delete mode 100755 aplfw/volume/fat/fatvol_clusterwrite.c delete mode 100755 aplfw/volume/fat/fatvol_create.c delete mode 100755 aplfw/volume/fat/fatvol_createfile.c delete mode 100755 aplfw/volume/fat/fatvol_flushfat.c delete mode 100755 aplfw/volume/fat/fatvol_getclusterbuf.c delete mode 100755 aplfw/volume/fat/fatvol_getnextcluster.c delete mode 100755 aplfw/volume/fat/fatvol_local.h delete mode 100755 aplfw/volume/fat/fatvol_open.c delete mode 100755 aplfw/volume/fat/fatvol_relclusterbuf.c delete mode 100755 aplfw/volume/fat/fatvol_setnextcluster.c diff --git a/aplfw/system/file/file_initialize.c b/aplfw/system/file/file_initialize.c index 1f251b6..6f1616d 100755 --- a/aplfw/system/file/file_initialize.c +++ b/aplfw/system/file/file_initialize.c @@ -10,11 +10,9 @@ #include "file_local.h" -#include "volume/dev/devvol.h" C_FILE g_File; -C_DEVVOL g_DevVol; void File_Initialize(void) diff --git a/aplfw/system/file/file_open.c b/aplfw/system/file/file_open.c index aa512c9..e865f2c 100755 --- a/aplfw/system/file/file_open.c +++ b/aplfw/system/file/file_open.c @@ -11,7 +11,6 @@ #include #include #include "file_local.h" -#include "volume.h" /* ファイルのオープン */ diff --git a/aplfw/system/file/volume.h b/aplfw/system/file/volume.h deleted file mode 100755 index 3164127..0000000 --- a/aplfw/system/file/volume.h +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Hyper Operating System Application Framework - * - * @file volume.h - * @brief %jp{ボリュームオブジェクト} - * - * %jp{ディスクドライブなどの単位をボリュームとして扱う} - * - * Copyright (C) 2006 by Project HOS - * http://sourceforge.jp/projects/hos/ - */ - - -#ifndef __HOS__volume_h__ -#define __HOS__volume_h__ - -#include "file.h" - -#ifdef __cplusplus -extern "C" { -#endif - -HANDLE Volume_OpenFile(HANDLE hVolume, const char *pszPath, int iMode); /* ファイルを開く */ -FILE_ERR Volume_MakeDir(HANDLE hVolume, const char *pszPath); /* サブディレクトリを作成 */ -FILE_ERR Volume_Remove(HANDLE hVolume, const char *pszPath); /* ファイルを削除 */ - -#ifdef __cplusplus -} -#endif - - - -#endif /* __HOS__volume_h__ */ - - -/* end of file */ diff --git a/aplfw/system/file/volume_openfile.c b/aplfw/system/file/volume_openfile.c deleted file mode 100755 index 2c2b3bf..0000000 --- a/aplfw/system/file/volume_openfile.c +++ /dev/null @@ -1,20 +0,0 @@ - -#include -#include "volume.h" -#include "volumeobj.h" - - -HANDLE Volume_OpenFile(HANDLE hVolume, const char *pszPath, int iMode) -{ - C_VOLUMEOBJ *self; - - self = (C_VOLUMEOBJ *)hVolume; - - if ( self->pMethods->pfncOpenFile == NULL ) - { - return HANDLE_NULL; - } - - return self->pMethods->pfncOpenFile(hVolume, pszPath, iMode); -} - diff --git a/aplfw/volume/dev/devvol.h b/aplfw/volume/dev/devvol.h deleted file mode 100755 index a5e2e5d..0000000 --- a/aplfw/volume/dev/devvol.h +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Hyper Operating System Application Framework - * - * @file devvol.h - * @brief %jp{デバイスドライバをファイルとして管理するボリューム} - * - * Copyright (C) 2006-2007 by Project HOS - * http://sourceforge.jp/projects/hos/ - */ - - -#ifndef __HOS__devvol_h__ -#define __HOS__devvol_h__ - - -#include "system/file/file.h" -#include "system/file/volumeobj.h" - - -#define DEVVOL_MAX_DEVICE 16 - -/* デバイス情報 */ -struct c_drvobj; -typedef struct t_devvol_devinf -{ - char szName[FILE_MAX_NAME]; /* デバイス名 */ - struct c_drvobj *pDrvObj; /* デバイスドライバへの参照 */ -} T_DEVVOL_DEVINF; - - -/* */ -typedef struct c_devvol -{ - C_VOLUMEOBJ VolumeObj; /* ボリュームオブジェクトを継承 */ - - T_DEVVOL_DEVINF DevTable[DEVVOL_MAX_DEVICE]; -} C_DEVVOL; - - -#ifdef __cplusplus -extern "C" { -#endif - -void DevVol_Create(C_DEVVOL *self); -FILE_ERR DevVol_AddDevice(C_DEVVOL *self, const char *pszName, struct c_drvobj *pDrvObj); - -#ifdef __cplusplus -} -#endif - -#endif /* __HOS__devdir_h__ */ - - - -/* end of file */ diff --git a/aplfw/volume/dev/devvol_adddevice.c b/aplfw/volume/dev/devvol_adddevice.c deleted file mode 100755 index 5baf248..0000000 --- a/aplfw/volume/dev/devvol_adddevice.c +++ /dev/null @@ -1,22 +0,0 @@ - -#include -#include "devvol_local.h" - - -FILE_ERR DevVol_AddDevice(C_DEVVOL *self, const char *pszName, struct c_drvobj *pDrvObj) -{ - int i; - - /* テーブルの空きを検索 */ - for ( i = 0; i < DEVVOL_MAX_DEVICE; i++ ) - { - if ( self->DevTable[i].pDrvObj == NULL ) - { - strcpy(self->DevTable[i].szName, pszName); - self->DevTable[i].pDrvObj = pDrvObj; - return FILE_ERR_OK; - } - } - - return FILE_ERR_NG; -} diff --git a/aplfw/volume/dev/devvol_create.c b/aplfw/volume/dev/devvol_create.c deleted file mode 100755 index 1347c20..0000000 --- a/aplfw/volume/dev/devvol_create.c +++ /dev/null @@ -1,32 +0,0 @@ - -#include -#include "devvol_local.h" - - -const T_VOLUMEOBJ_METHODS DevVol_VolumeObjMethods = -{ - { - DevVol_Delete, - DevVol_OpenFile, - - }, - NULL, - NULL, -}; - - -void DevVol_Create(C_DEVVOL *self) -{ - int i; - - /* 親クラスコンストラクタ呼び出し */ - VolumeObj_Create(&self->VolumeObj, &DevVol_VolumeObjMethods); - - /* 初期化 */ - for ( i = 0; i < DEVVOL_MAX_DEVICE; i++ ) - { - self->DevTable[i].pDrvObj = NULL; - } -} - - diff --git a/aplfw/volume/dev/devvol_delete.c b/aplfw/volume/dev/devvol_delete.c deleted file mode 100755 index cf2553d..0000000 --- a/aplfw/volume/dev/devvol_delete.c +++ /dev/null @@ -1,6 +0,0 @@ -#include "devvol_local.h" - -void DevVol_Delete(HANDLE hVolume) -{ -} - diff --git a/aplfw/volume/dev/devvol_local.h b/aplfw/volume/dev/devvol_local.h deleted file mode 100755 index 8844d66..0000000 --- a/aplfw/volume/dev/devvol_local.h +++ /dev/null @@ -1,20 +0,0 @@ - -#ifndef __HOS__devvol_local_h__ -#define __HOS__devvol_local_h__ - - -#include "devvol.h" - -#ifdef __cplusplus -extern "C" { -#endif - -void DevVol_Delete(HANDLE hVolume); -HANDLE DevVol_OpenFile(HANDLE hVolume, const char *pszPath, int iMode); /* ファイルを開く */ - -#ifdef __cplusplus -} -#endif - - -#endif diff --git a/aplfw/volume/dev/devvol_openfile.c b/aplfw/volume/dev/devvol_openfile.c deleted file mode 100755 index ae59401..0000000 --- a/aplfw/volume/dev/devvol_openfile.c +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include -#include "devvol_local.h" -#include "system/sysapi/sysapi.h" -#include "system/file/drvobj.h" - - -/* ファイルを開く */ -HANDLE DevVol_OpenFile(HANDLE hVolume, const char *pszPath, int iMode) -{ - C_DEVVOL *self; - int i; - - self = (C_DEVVOL *)hVolume; - - - /* 先頭の'/'を読み飛ばし */ - pszPath++; - - /* デバイスを検索 */ - for ( i = 0; i < DEVVOL_MAX_DEVICE; i++ ) - { - if ( strcmp(pszPath, self->DevTable[i].szName) == 0 ) - { - break; - } - } - if ( i >= DEVVOL_MAX_DEVICE ) - { - return HANDLE_NULL; - } - - return DrvObj_vOpen(self->DevTable[i].pDrvObj, pszPath, iMode); -} - - -/* end of file */ - diff --git a/aplfw/volume/fat/fatfile.h b/aplfw/volume/fat/fatfile.h deleted file mode 100755 index 646b414..0000000 --- a/aplfw/volume/fat/fatfile.h +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Hyper Operating System Application Framework - * - * @file fatfile.h - * @brief %jp{FATファイルシステム ファイルI/Fクラス} - * - * Copyright (C) 2006 by Project HOS - * http://sourceforge.jp/projects/hos/ - */ - - -#ifndef __HOS__fatfile_h__ -#define __HOS__fatfile_h__ - - -#include "system/file/fileobj.h" -#include "fatvol.h" - - -typedef struct c_fatfile -{ - C_FILEOBJ FileObj; /* ファイルオブジェクトを継承 */ - - int iMode; /* ファイルのモード */ - C_FATVOL *pFatVol; /* FatVolクラスの参照 */ - FATVOL_UINT uiStartCluster; /* ファイルの先頭クラスタ */ - HANDLE hDir; /* 所属するディレクトリのハンドル */ - int iDirEntry; /* ディレクトリ内のエントリ位置 */ - - FILE_POS FilePos; /* ファイルポインタ */ - FILE_POS FileSize; /* ファイルサイズ */ - - FATVOL_UINT uiCurrentCluster; /* 現在のクラスタ */ - FATVOL_UINT uiClusterSize; /* クラスタサイズ */ -} C_FATFILE; - - -#ifdef __cplusplus -extern "C" { -#endif - -FILE_ERR FatFile_Create(C_FATFILE *self, C_FATVOL *pFatVol, FATVOL_UINT uiCluster, HANDLE hDir, int iDirEntry, int iMode); /**< コンストラクタ */ - -#ifdef __cplusplus -} -#endif - - -#endif /* __HOS__pc16550file_h__ */ - - -/* end of file */ diff --git a/aplfw/volume/fat/fatfile_create.c b/aplfw/volume/fat/fatfile_create.c deleted file mode 100755 index 46dbd85..0000000 --- a/aplfw/volume/fat/fatfile_create.c +++ /dev/null @@ -1,43 +0,0 @@ - -#include -#include "fatfile_local.h" - - -const T_FILEOBJ_METHODS FatFile_FileObjMethods = -{ -/* { FatFile_Delete }, */ /* デストラクタ */ - FatFile_IoControl, /* IoControl */ - FatFile_Seek, /* Seek */ - FatFile_Read, /* Read */ - FatFile_Write, /* Write */ -}; - - -FILE_ERR FatFile_Create(C_FATFILE *self, C_FATVOL *pFatVol, FATVOL_UINT uiCluster, HANDLE hDir, int iDirEntry, int iMode) -{ - /* 親クラスコンストラクタ呼び出し */ - FileObj_Create(&self->FileObj, &FatFile_FileObjMethods); - - /* 初期化 */ - self->iMode = iMode; - self->pFatVol = pFatVol; - self->uiStartCluster = uiCluster; - self->hDir = hDir; - self->iDirEntry = iDirEntry; - - /* サイズ取得 */ - if ( hDir == NULL ) - { - - } - - /* ファイルポインタ初期化 */ - self->FilePos = 0; - self->uiCurrentCluster = self->uiStartCluster; - - - return FILE_ERR_OK; -} - - -/* end of file */ diff --git a/aplfw/volume/fat/fatfile_local.h b/aplfw/volume/fat/fatfile_local.h deleted file mode 100755 index 4aab36f..0000000 --- a/aplfw/volume/fat/fatfile_local.h +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Hyper Operating System Application Framework - * - * @file fatfile.h - * @brief %jp{FATファイルシステム ファイルI/Fクラス} - * - * Copyright (C) 2006 by Project HOS - * http://sourceforge.jp/projects/hos/ - */ - - -#ifndef __HOS__fatfile_local_h__ -#define __HOS__fatfile_local_h__ - - -#include "fatfile.h" -#include "fatvol_local.h" - -#ifdef __cplusplus -extern "C" { -#endif - -void FatFile_Delete(HANDLE hFile); -FILE_ERR FatFile_IoControl(HANDLE hFile, int iFunc, const void *pInBuf, FILE_SIZE InSize, void *pOutBuf, FILE_SIZE OutSize); -FILE_POS FatFile_Seek(HANDLE hFile, FILE_POS Offset, int iOrign); -FILE_SIZE FatFile_Read(HANDLE hFile, void *pBuf, FILE_SIZE Size); -FILE_SIZE FatFile_Write(HANDLE hFile, const void *pData, FILE_SIZE Size); - -#ifdef __cplusplus -} -#endif - - -#endif /* __HOS__fatfile_local_h__ */ - - -/* end of file */ diff --git a/aplfw/volume/fat/fatfile_read.c b/aplfw/volume/fat/fatfile_read.c deleted file mode 100755 index c566786..0000000 --- a/aplfw/volume/fat/fatfile_read.c +++ /dev/null @@ -1,79 +0,0 @@ - - -#include -#include "fatfile_local.h" - - -/* 読み出し */ -FILE_SIZE FatFile_Read( - HANDLE hFile, - void *pBuf, - FILE_SIZE Size) -{ - C_FATFILE *self; - void *pClusterBuf; - FATVOL_UINT ulBlock; - FILE_SIZE ReadSize; - - /* ハンドル取得 */ - self = (C_FATFILE *)hFile; - - /* サイズオーバーするなら */ - if ( self->FilePos + Size > self->FileSize ) - { - /* サイズ更新されていないかディレクトリテーブルを参照 */ - if ( self->hDir != NULL ) - { - } - } - - /* サイズクリップ */ - if ( Size > self->FileSize - self->FilePos ) - { - Size = self->FileSize - self->FilePos; - } - - /* 要求読み出し量保存 */ - ReadSize = Size; - - /* 読み出し */ - while ( Size > 0 && self->FilePos < self->FileSize ) - { - FILE_POS ReadStart; - FILE_SIZE ReadSize; - unsigned char *pubClusterBuf; - - /* 転送位置計算 */ - ReadStart = self->FilePos % self->uiClusterSize; - ReadSize = self->uiClusterSize - ReadStart; - if ( ReadSize > Size ) - { - ReadSize = Size; - } - - /* バッファ取得 */ - if ( FatVol_GetClusterBuf(self->pFatVol, self->uiCurrentCluster, &pClusterBuf, 1) != FATVOL_ERR_OK ) - { - break; - } - - /* 転送 */ - memcpy(pBuf, (char *)pClusterBuf + ReadStart, ReadSize); - - /* バッファ開放 */ - FatVol_RelClusterBuf(self->pFatVol, pClusterBuf, 0); - - /* サイズ更新 */ - self->FilePos += ReadSize; - pBuf = (char *)pBuf + ReadSize; - Size -= ReadSize; - - /* 次のクラスタに進む */ - self->uiCurrentCluster = FatVol_GetNextCluster(self->pFatVol, self->uiCurrentCluster); - } - - return ReadSize - Size; -} - - -/* end of file */ diff --git a/aplfw/volume/fat/fatvol.h b/aplfw/volume/fat/fatvol.h deleted file mode 100755 index 85f7c74..0000000 --- a/aplfw/volume/fat/fatvol.h +++ /dev/null @@ -1,71 +0,0 @@ - - -#ifndef __HOS__fatvol_h__ -#define __HOS__fatvol_h__ - - -#include "system/sysapi/sysapi.h" -#include "system/file/file.h" - - -#define FATVOL_ERR_OK 0 -#define FATVOL_ERR_NG (-1) - - -/* 型定義 */ -typedef unsigned long FATVOL_UINT; - - -/* クラスタバッファ */ -typedef struct t_fatvol_clusterbuf -{ - FATVOL_UINT uiClusterNum; - int iDirty; - unsigned char *pubBuf; -} T_FATVOL_CLUSTERBUF; - - -/* クラスタバッファ */ -typedef struct c_fatvol -{ - HANDLE hBlockFile; /**< ブロックデバイスドライバのハンドル */ - - int iFatType; /**< FATのタイプ */ - FATVOL_UINT uiOffset; /**< ディスクのオフセット */ - FATVOL_UINT uiDriveSize; /**< ドライブの総サイズ */ - FATVOL_UINT uiBytesPerSector; /**< セクタサイズ */ - FATVOL_UINT uiSectorsPerCluster; /**< クラスタサイズ */ - FATVOL_UINT uiFatStartSector; /**< FATの開始セクタ番号 */ - FATVOL_UINT uiSectorPerFat; /**< FATあたりのセクタ数 */ - FATVOL_UINT uiFatNum; /**< FATの個数 */ - FATVOL_UINT uiRootDirEntryNum; /**< ルートディレクトリのエントリ数 */ - FATVOL_UINT uiRootDirSector; /**< ルートディレクトリのセクタ */ - FATVOL_UINT uiCluster0Sector; /**< クラスタ0のセクタ番号 */ - FATVOL_UINT uiMaxClusterNum; - FATVOL_UINT uiRootDirCluster; - - unsigned char *pubFatBuf; /**< FATのバッファリングメモリ */ - unsigned char *pubFatDirty; /**< FATの更新フラグ */ - - T_FATVOL_CLUSTERBUF *pClusterBuf; - int iClusterBufNum; - int iClusterBufIndex; -} C_FATVOL; - - -#ifdef __cplusplus -extern "C" { -#endif - -int FatVol_Create(C_FATVOL *self, HANDLE hBlockFile); -void FatVol_Delete(C_FATVOL *self); -HANDLE FatVol_CreateFile(C_FATVOL *self, FATVOL_UINT uiCluster, HANDLE hDir, int iDirEntry, int iMode); - -#ifdef __cplusplus -} -#endif - - -#endif /* __HOS__fatdrive_h__ */ - - diff --git a/aplfw/volume/fat/fatvol_clusterread.c b/aplfw/volume/fat/fatvol_clusterread.c deleted file mode 100755 index 7bc5b15..0000000 --- a/aplfw/volume/fat/fatvol_clusterread.c +++ /dev/null @@ -1,53 +0,0 @@ -#include "fatvol_local.h" - - -/** クラスタ読み込み */ -int FatVol_ClusterRead( - C_FATVOL *self, - FATVOL_UINT uiCluster, - void *pBuf) -{ - FATVOL_UINT uiPos; - FATVOL_UINT uiSize; - - if ( uiCluster >= 0xffff0000 && (self->iFatType == FATVOL_TYPE_FAT12 || self->iFatType == FATVOL_TYPE_FAT16) ) - { - /* FAT12/16 のルートディレクトリを 0xf0000000 にマップ */ - uiCluster -= 0xf0000000; - - /* 読み出し位置移動 */ - uiPos = (self->uiRootDirSector + (uiCluster * self->uiSectorsPerCluster)) * self->uiBytesPerSector; - if ( File_Seek(self->hBlockFile, uiPos, FILE_SEEK_SET) != uiPos ) - { - return FATVOL_ERR_NG; - } - - /* 読み出し */ - uiSize = self->uiBytesPerSector * self->uiSectorsPerCluster; - if ( File_Read(self->hBlockFile, pBuf, uiSize) != uiSize ) - { - return FATVOL_ERR_NG; - } - } - else - { - /* 読み出し位置移動 */ - uiPos = (self->uiCluster0Sector + (uiCluster * self->uiSectorsPerCluster)) * self->uiBytesPerSector; - if ( File_Seek(self->hBlockFile, uiPos, FILE_SEEK_SET) != uiPos ) - { - return FATVOL_ERR_NG; - } - - /* 読み出し */ - uiSize = self->uiBytesPerSector * self->uiSectorsPerCluster; - if ( File_Read(self->hBlockFile, pBuf, uiSize) != uiSize ) - { - return FATVOL_ERR_NG; - } - } - - return FATVOL_ERR_OK; -} - - -/* end of file */ diff --git a/aplfw/volume/fat/fatvol_clusterwrite.c b/aplfw/volume/fat/fatvol_clusterwrite.c deleted file mode 100755 index ff43adb..0000000 --- a/aplfw/volume/fat/fatvol_clusterwrite.c +++ /dev/null @@ -1,54 +0,0 @@ - -#include "fatvol_local.h" - - -/** クラスタ書き込み */ -int FatVol_ClusterWrite( - C_FATVOL *self, - FATVOL_UINT uiCluster, - const void *pBuf) -{ - FATVOL_UINT uiPos; - FATVOL_UINT uiSize; - - if ( uiCluster >= 0xffff0000 && (self->iFatType == FATVOL_TYPE_FAT12 || self->iFatType == FATVOL_TYPE_FAT16) ) - { - /* FAT12/16 のルートディレクトリを 0xffff0000 にマップ */ - uiCluster -= 0xf0000000; - - /* 書き出し位置移動 */ - uiPos = (self->uiRootDirSector + (uiCluster * self->uiSectorsPerCluster)) * self->uiBytesPerSector; - if ( File_Seek(self->hBlockFile, uiPos, FILE_SEEK_SET) != uiPos ) - { - return FATVOL_ERR_NG; - } - - /* 書き出し */ - uiSize = self->uiBytesPerSector * self->uiSectorsPerCluster; - if ( File_Write(self->hBlockFile, pBuf, uiSize) != uiSize ) - { - return FATVOL_ERR_NG; - } - } - else - { - /* 書き出し位置移動 */ - uiPos = (self->uiCluster0Sector + (uiCluster * self->uiSectorsPerCluster)) * self->uiBytesPerSector; - if ( File_Seek(self->hBlockFile, uiPos, FILE_SEEK_SET) != uiPos ) - { - return FATVOL_ERR_NG; - } - - /* 書き出し */ - uiSize = self->uiBytesPerSector * self->uiSectorsPerCluster; - if ( File_Write(self->hBlockFile, pBuf, uiSize) != uiSize ) - { - return FATVOL_ERR_NG; - } - } - - return FATVOL_ERR_OK; -} - - -/* end of file */ diff --git a/aplfw/volume/fat/fatvol_create.c b/aplfw/volume/fat/fatvol_create.c deleted file mode 100755 index be0d17d..0000000 --- a/aplfw/volume/fat/fatvol_create.c +++ /dev/null @@ -1,114 +0,0 @@ - -#include -#include "fatvol_local.h" - - -int FatVol_Create(C_FATVOL *self, HANDLE hBlockFile) -{ - unsigned char ubBuf[512]; - int i; - - /* ドライブの設定 */ - self->hBlockFile = hBlockFile; - self->uiOffset = 0x33*512; - - /* サイズ取得 */ - self->uiDriveSize = File_Seek(self->hBlockFile, FILE_SEEK_END, 0); - self->iFatType = FATVOL_TYPE_UNKNOWN; - - /* BIOS Parameter Block */ - File_Seek(self->hBlockFile, self->uiOffset, FILE_SEEK_SET); - File_Read(self->hBlockFile, ubBuf, 512); - - /* FAT12/16/32判定 */ - if ( ubBuf[0x36] == 'F' && ubBuf[0x37] == 'A' && ubBuf[0x38] == 'T' && ubBuf[0x39] == '1' ) - { - if ( ubBuf[0x3a] == '2' ) - { - self->iFatType = FATVOL_TYPE_FAT12; - } - else if ( ubBuf[0x3a] == '6' ) - { - self->iFatType = FATVOL_TYPE_FAT16; - } - } - else if ( ubBuf[0x52] == 'F' && ubBuf[0x53] == 'A' && ubBuf[0x54] == 'T' && ubBuf[0x55] == '3' && ubBuf[0x56] == '2') - { - self->iFatType = FATVOL_TYPE_FAT32; - } - - /* フォーマット別情報解析 */ - switch ( self->iFatType ) - { - case FATVOL_TYPE_FAT12: - case FATVOL_TYPE_FAT16: - self->uiBytesPerSector = ubBuf[0x0b] + ubBuf[0x0c] * 256; /**< セクタサイズ */ - self->uiSectorsPerCluster = ubBuf[0x0d]; /**< 1クラスタのセクタ数 */ - self->uiRootDirEntryNum = ubBuf[0x11] + ubBuf[0x12] * 256; /**< ルートディレクトリ最大エントリ数 */ - self->uiFatStartSector = ubBuf[0x0e] + ubBuf[0x0f] * 256; /**< FATの開始セクタ番号 */ - self->uiSectorPerFat = ubBuf[0x16] + ubBuf[0x17] * 256; /**< FATあたりのセクタ数 */ - self->uiFatNum = ubBuf[0x10]; /**< FAT個数 */ - self->uiRootDirSector = self->uiFatStartSector + (self->uiSectorPerFat * self->uiFatNum); - /**< ルートディレクトリ開始位置 */ - self->uiCluster0Sector = self->uiRootDirSector - + (((self->uiRootDirEntryNum * 32) + self->uiBytesPerSector - 1) / self->uiBytesPerSector) - - (2 * self->uiSectorsPerCluster); /**< クラスタ0の開始セクタ */ - - /* FATバッファ準備 */ - self->pubFatBuf = (unsigned char *)SysMem_Alloc(self->uiSectorPerFat * self->uiBytesPerSector); - self->pubFatDirty = (unsigned char *)SysMem_Alloc(self->uiSectorPerFat); - - /* FATバッファ準備 */ - File_Seek(self->hBlockFile, self->uiFatStartSector * self->uiBytesPerSector, FILE_SEEK_SET); - File_Read(self->hBlockFile, self->pubFatBuf, self->uiSectorPerFat * self->uiBytesPerSector); - memset(self->pubFatDirty, 0, self->uiSectorPerFat); - - break; - - case FATVOL_TYPE_FAT32: - break; - - default: - return FATVOL_ERR_NG; - } - - /* 最大クラスタ番号算出 */ - switch ( self->iFatType ) - { - case FATVOL_TYPE_FAT12: - self->uiMaxClusterNum = (self->uiSectorPerFat * self->uiBytesPerSector) / 3 * 2; - if ( self->uiMaxClusterNum >= 0x0ff7 ) - { - self->uiMaxClusterNum = 0x0ff6; - } - break; - - case FATVOL_TYPE_FAT16: - self->uiMaxClusterNum = (self->uiSectorPerFat * self->uiBytesPerSector) / 2; - if ( self->uiMaxClusterNum >= 0xfff7 ) - { - self->uiMaxClusterNum = 0xfff6; - } - break; - - case FATVOL_TYPE_FAT32: - self->uiMaxClusterNum = (self->uiSectorPerFat * self->uiBytesPerSector) / 4; - break; - } - - /* クラスタバッファ取得 */ - self->iClusterBufIndex = 0; - self->iClusterBufNum = 32; - self->pClusterBuf = (T_FATVOL_CLUSTERBUF *)SysMem_Alloc(sizeof(T_FATVOL_CLUSTERBUF) * self->iClusterBufNum); - for ( i = 0; i < self->iClusterBufNum; i++ ) - { - self->pClusterBuf[i].uiClusterNum = FATVOL_CLUSTER_ENDMARKER; - self->pClusterBuf[i].iDirty = 0; - self->pClusterBuf[i].pubBuf = SysMem_Alloc(self->uiSectorsPerCluster * self->uiBytesPerSector); - } - - return FATVOL_ERR_OK; -} - - - diff --git a/aplfw/volume/fat/fatvol_createfile.c b/aplfw/volume/fat/fatvol_createfile.c deleted file mode 100755 index c657e9e..0000000 --- a/aplfw/volume/fat/fatvol_createfile.c +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include "system/sysapi/sysapi.h" -#include "fatfile.h" -#include "fatvol_local.h" - - -HANDLE FatVol_CreateFile( - C_FATVOL *self, - FATVOL_UINT uiCluster, - HANDLE hDir, - int iDirEntry, - int iMode) -{ - C_FATFILE *pFatFile; - - /* オブジェクトを生成 */ - pFatFile = (C_FATFILE *)SysMem_Alloc(sizeof(C_FATFILE)); - if ( pFatFile == NULL ) - { - return HANDLE_NULL; - } - FatFile_Create(pFatFile, self, uiCluster, hDir, iDirEntry, iMode); - - return (HANDLE)pFatFile; -} - - -/* end of file */ diff --git a/aplfw/volume/fat/fatvol_flushfat.c b/aplfw/volume/fat/fatvol_flushfat.c deleted file mode 100755 index 11483f5..0000000 --- a/aplfw/volume/fat/fatvol_flushfat.c +++ /dev/null @@ -1,36 +0,0 @@ - -#include -#include "fatvol_local.h" - - -/** FATのフラッシュ */ -void FatVol_FlushFat(C_FATVOL *self) -{ - unsigned long i; - - /* FAT先頭へ移動 */ - File_Seek(self->hBlockFile, self->uiFatStartSector * self->uiBytesPerSector, FILE_SEEK_SET); - - for ( i = 0; i < self->uiFatNum; i++ ) - { - int j; - - for ( j = 0; j < self->uiSectorPerFat; j++ ) - { - if ( self->pubFatDirty[j] ) - { - File_Write(self->hBlockFile, &self->pubFatBuf[j * self->uiBytesPerSector], self->uiBytesPerSector); - } - else - { - File_Seek(self->hBlockFile, self->uiBytesPerSector, FILE_SEEK_CUR); - } - } - } - - /* 更新フラグクリア */ - memset(self->pubFatDirty, 0, self->uiSectorPerFat); -} - - -/* end of file */ diff --git a/aplfw/volume/fat/fatvol_getclusterbuf.c b/aplfw/volume/fat/fatvol_getclusterbuf.c deleted file mode 100755 index 1374559..0000000 --- a/aplfw/volume/fat/fatvol_getclusterbuf.c +++ /dev/null @@ -1,67 +0,0 @@ - -#include "fatvol_local.h" - - -/**< クラスタ読み込み */ -int FatVol_GetClusterBuf( - C_FATVOL *self, - FATVOL_UINT uiCluster, - void **ppBuf, - int iRead) -{ - int i; - - /* 既にバッファに居ないか探索 */ - for ( i = 0; i < self->iClusterBufNum; i++ ) - { - /* 見つかれば既存バッファを返す */ - if ( self->pClusterBuf[i].uiClusterNum == uiCluster ) - { - *ppBuf = self->pClusterBuf[i].pubBuf; - return FATVOL_ERR_OK; - } - } - - /* 空のバッファを探す */ - for ( i = 0; i < self->iClusterBufNum; i++ ) - { - if ( self->pClusterBuf[i].uiClusterNum == FATVOL_CLUSTER_ENDMARKER ) - { - break; - } - } - - /* 空きが無ければ空ける */ - if ( i >= self->iClusterBufNum ) - { - /* FIFO順でフラッシュ */ - i = self->iClusterBufIndex++; - - /* dirtyなら吐き出す */ - if ( self->pClusterBuf[i].iDirty ) - { - if ( FatVol_ClusterWrite(self, self->pClusterBuf[i].uiClusterNum, self->pClusterBuf[i].pubBuf) != FATVOL_ERR_OK ) - { - return FATVOL_ERR_NG; - } - self->pClusterBuf[i].iDirty = 0; - } - self->pClusterBuf[i].uiClusterNum = FATVOL_CLUSTER_ENDMARKER; - } - - /* バッファに読み込み */ - if ( iRead ) - { - if ( FatVol_ClusterRead(self, self->pClusterBuf[i].uiClusterNum, self->pClusterBuf[i].pubBuf) != FATVOL_ERR_OK ) - { - return FATVOL_ERR_NG; - } - } - self->pClusterBuf[i].iDirty = 0; - self->pClusterBuf[i].uiClusterNum = uiCluster; - - return FATVOL_ERR_OK; -} - - -/* end of file */ diff --git a/aplfw/volume/fat/fatvol_getnextcluster.c b/aplfw/volume/fat/fatvol_getnextcluster.c deleted file mode 100755 index ddacdd9..0000000 --- a/aplfw/volume/fat/fatvol_getnextcluster.c +++ /dev/null @@ -1,64 +0,0 @@ - -#include -#include "fatvol_local.h" - - -FATVOL_UINT FatVol_GetNextCluster(C_FATVOL *self, FATVOL_UINT uiCluster) -{ - FATVOL_UINT uiNextCluster = FATVOL_CLUSTER_ENDMARKER; - - switch ( self->iFatType ) - { - case FATVOL_TYPE_FAT12: - /* 0xffff0000 からルートディレクトリをマップ */ - if ( uiCluster >= 0xffff0000 ) - { - return uiCluster + 1; - } - - /* FAT検索 */ - if ( uiCluster % 2 == 0 ) - { - uiNextCluster = self->pubFatBuf[(uiCluster / 2) * 3 + 0] - + ((self->pubFatBuf[(uiCluster / 2) * 3 + 1] & 0x0f) << 8); - } - else - { - uiNextCluster = ((self->pubFatBuf[(uiCluster / 2) * 3 + 1] >> 4) & 0xf) - + (self->pubFatBuf[(uiCluster / 2) * 3 + 2] << 4); - } - - if ( uiNextCluster >= 0x0ff7 ) - { - uiNextCluster = FATVOL_CLUSTER_ENDMARKER; - } - break; - - case FATVOL_TYPE_FAT16: - /* 0xffff0000 からルートディレクトリをマップ */ - if ( uiCluster >= 0xffff0000 ) - { - return uiCluster + 1; - } - - /* FAT検索 */ - uiNextCluster = self->pubFatBuf[uiCluster * 2] + self->pubFatBuf[uiCluster * 2 + 1] * 256; - if ( uiNextCluster >= 0xfff7 ) - { - uiNextCluster = FATVOL_CLUSTER_ENDMARKER; - } - break; - - case FATVOL_TYPE_FAT32: - uiNextCluster = self->pubFatBuf[uiCluster * 4] - + self->pubFatBuf[uiCluster * 4 + 1] * 256 - + self->pubFatBuf[uiCluster * 4 + 2] * 256 * 256 - + self->pubFatBuf[uiCluster * 4 + 3] * 256 * 256 * 256; - break; - } - - return uiNextCluster; -} - - -/* end of file */ diff --git a/aplfw/volume/fat/fatvol_local.h b/aplfw/volume/fat/fatvol_local.h deleted file mode 100755 index ea5e9c9..0000000 --- a/aplfw/volume/fat/fatvol_local.h +++ /dev/null @@ -1,43 +0,0 @@ - - -#ifndef __HOS__fatvol_local_h__ -#define __HOS__fatvol_local_h__ - - -#include "fatvol.h" - - -/* 最終クラスタマーカー */ -#define FATVOL_CLUSTER_FREE 0x00000000 -#define FATVOL_CLUSTER_ENDMARKER 0xffffffff - - -/* ファイルシステムのタイプ */ -#define FATVOL_TYPE_UNKNOWN 0 -#define FATVOL_TYPE_FAT12 1 -#define FATVOL_TYPE_FAT16 2 -#define FATVOL_TYPE_FAT32 3 - - -#ifdef __cplusplus -extern "C" { -#endif - -int FatVol_ClusterWrite(C_FATVOL *self, FATVOL_UINT uiCluster, const void *pBuf); /**< クラスタ書き込み */ -int FatVol_ClusterRead(C_FATVOL *self, FATVOL_UINT uiCluster, void *pBuf); /**< クラスタ読み込み */ -int FatVol_GetClusterBuf(C_FATVOL *self, FATVOL_UINT uiCluster, void **ppBuf, int iRead); -int FatVol_RelClusterBuf(C_FATVOL *self, void *ppBuf, int iDirty); - -FATVOL_UINT FatVol_GetNextCluster(C_FATVOL *self, FATVOL_UINT uiCluster); -void FatVol_SetNextCluster(C_FATVOL *self, FATVOL_UINT uiCluster, FATVOL_UINT uiNextCluster); - - -#ifdef __cplusplus -} -#endif - - -#endif /* __HOS__fatvol_local_h__ */ - - -/* end of file */ diff --git a/aplfw/volume/fat/fatvol_open.c b/aplfw/volume/fat/fatvol_open.c deleted file mode 100755 index 3530047..0000000 --- a/aplfw/volume/fat/fatvol_open.c +++ /dev/null @@ -1,134 +0,0 @@ - -#include -#include "fatvol_local.h" - - -HANDLE FatVol_Open(C_FATVOL *self, const char *pszPath, int iMode) -{ - unsigned char ubBuf[32]; - FATVOL_UINT uiCluster; - HANDLE hDir; - HANDLE hFile; - char szEntryName[8+3+1]; - int iEntryNameLen; - char szName[8+3+1]; - int iNameLen; - int iDirEntry; - int i, j; - - /* ルートを基点にする */ - if ( *pszPath == '/' ) - { - pszPath++; - } - - /* ルートディレクトリを開く */ - hDir = FatVol_CreateFile(self, self->uiRootDirCluster, 0, 0, FILE_MODE_READ | FILE_MODE_WRITE); - - for ( ; ; ) - { - /* 名前の部分を検索 */ - for ( iNameLen = 0; pszPath[iNameLen] != '\0'; iNameLen++ ) - { - if ( pszPath[iNameLen] == '/' ) - { - szName[iNameLen] = '\0'; - break; - } - - /* 大文字に変換 */ - if ( pszPath[iNameLen] >= 'a' && pszPath[iNameLen] <= 'z' ) - { - szName[iNameLen] = pszPath[iNameLen] - ('a' - 'A'); - } - else - { - szName[iNameLen] = pszPath[iNameLen]; - } - } - - /* ディレクトリエントリを検索 */ - iDirEntry = -1; - for ( i = 0; File_Read(hDir, ubBuf, 32, 0) == 32; i++ ) - { - /* 0なら打ち切り */ - if ( ubBuf[0] == 0x00 ) - { - break; - } - - /* 名前部分取り出し */ - iEntryNameLen = 0; - for ( j = 0; j < 8; j++ ) - { - if ( ubBuf[0+j] == ' ' || ubBuf[0+j] == '\0' ) - { - break; - } - szEntryName[iEntryNameLen++] = (char)ubBuf[0+j]; - } - szEntryName[iEntryNameLen++] = '.'; - for ( j = 0; j < 3; j++ ) - { - if ( ubBuf[8+j] == ' ' || ubBuf[8+j] == '\0' ) - { - break; - } - szEntryName[iEntryNameLen++] = (char)ubBuf[8+j]; - } - szEntryName[iEntryNameLen++] = '\0'; - if ( iEntryNameLen > 2 && szEntryName[iEntryNameLen-1] == '.' ) - { - szEntryName[--iEntryNameLen] = '\0'; - } - - if ( strcmp(szEntryName, szName) == 0 ) - { - iDirEntry = i; - break; - } - } - - /* 開始クラスタ取得 */ - uiCluster = ubBuf[0x1a] + ubBuf[0x1b]*256; - if ( self->iFatType == FATVOL_TYPE_FAT32 ) - { - uiCluster += ubBuf[0x14]*256*256 + ubBuf[0x15]*256*256*256; - } - - /* パス部分の解析が終わっていればここで抜ける */ - if ( pszPath[iNameLen] == '\0' ) - { - break; - } - - File_Close(hDir); - - /* サブディレクトリがなければエラー */ - if ( iDirEntry < 0 || !(ubBuf[0x0b] & 0x10) ) - { - return HANDLE_NULL; - } - - /* サブディレクトリを開く */ - hDir = FatVol_CreateFile(self, uiCluster, 0, 0, FILE_MODE_READ | FILE_MODE_WRITE); - - pszPath += iNameLen; - } - - /* 既存ファイルがあれば */ - if ( iDirEntry >= 0 ) - { - hFile = FatVol_CreateFile(self, uiCluster, hDir, iDirEntry, iMode); - if ( hFile == HANDLE_NULL ) - { - File_Close(hDir); - } - return hFile; - } - - File_Close(hDir); - return HANDLE_NULL; -} - - diff --git a/aplfw/volume/fat/fatvol_relclusterbuf.c b/aplfw/volume/fat/fatvol_relclusterbuf.c deleted file mode 100755 index a62e276..0000000 --- a/aplfw/volume/fat/fatvol_relclusterbuf.c +++ /dev/null @@ -1,23 +0,0 @@ - -#include -#include "fatvol_local.h" - - -/**< クラスタ読み込み */ -int FatVol_RelClusterBuf( - C_FATVOL *self, - void *pBuf, - int iDirty) -{ - T_FATVOL_CLUSTERBUF *pClusterBuf; - - /* バッファ情報取得 */ - pClusterBuf = (T_FATVOL_CLUSTERBUF *)((char *)pBuf - offsetof(T_FATVOL_CLUSTERBUF, pubBuf)); - - pClusterBuf->iDirty = iDirty; - - return FATVOL_ERR_OK; -} - - -/* end of file */ diff --git a/aplfw/volume/fat/fatvol_setnextcluster.c b/aplfw/volume/fat/fatvol_setnextcluster.c deleted file mode 100755 index 4434168..0000000 --- a/aplfw/volume/fat/fatvol_setnextcluster.c +++ /dev/null @@ -1,50 +0,0 @@ - - -#include "fatvol_local.h" - - -void FatVol_SetNextCluster(C_FATVOL *self, FATVOL_UINT uiCluster, FATVOL_UINT uiNextCluster) -{ - switch ( self->iFatType ) - { - case FATVOL_TYPE_FAT12: - /* FAT更新 */ - if ( uiCluster % 2 == 0 ) - { - self->pubFatBuf[(uiCluster / 2) * 3 + 0] = uiNextCluster & 0xff; - self->pubFatBuf[(uiCluster / 2) * 3 + 1] = ((uiNextCluster >> 8) & 0x0f) | (self->pubFatBuf[(uiCluster / 2) * 3 + 1] & 0xf0); - } - else - { - self->pubFatBuf[(uiCluster / 2) * 3 + 1] = ((uiNextCluster << 4) & 0xf0) | (self->pubFatBuf[(uiCluster / 2) * 3 + 1] & 0x0f); - self->pubFatBuf[(uiCluster / 2) * 3 + 2] = ((uiNextCluster >> 4) & 0xff); - } - - /* 更新フラグ設定 */ - self->pubFatDirty[((uiCluster / 2) * 3 + 0) / self->uiBytesPerSector] = 1; - self->pubFatDirty[((uiCluster / 2) * 3 + 2) / self->uiBytesPerSector] = 1; - break; - - case FATVOL_TYPE_FAT16: - /* FAT更新 */ - self->pubFatBuf[uiCluster * 2 + 0] = uiNextCluster % 256; - self->pubFatBuf[uiCluster * 2 + 1] = uiNextCluster / 256; - - /* 更新フラグ設定 */ - self->pubFatDirty[(uiCluster * 2) / self->uiBytesPerSector] = 1; - break; - - case FATVOL_TYPE_FAT32: - /* FAT更新 */ - self->pubFatBuf[uiCluster * 2 + 0] = uiNextCluster % 256; - self->pubFatBuf[uiCluster * 2 + 1] = (uiNextCluster / 256) % 256; - self->pubFatBuf[uiCluster * 2 + 2] = (uiNextCluster / 256 / 256) % 256; - self->pubFatBuf[uiCluster * 2 + 3] = (uiNextCluster / 256 / 256 / 256) % 256; - - /* 更新フラグ設定 */ - self->pubFatDirty[(uiCluster * 4) / self->uiBytesPerSector] = 1; - } -} - - -/* end of file */ -- 2.11.0