Cente FileSystem
・ショートエントリ検索で誤検出する場合がある不具合を修正(Cente障害情報:101-0089)
UNICODE APIにおいて12文字以内のUNICODEのASCII変換に誤りがあり、指定名以外のエントリを検出してしまう場合がある不具合を修正。
・rename_uniにおける名前比較で誤ったエラーコードを返す不具合を修正(Cente障害情報:101-0090)
UNICODEファイル名が同一か否かを比較する際に、文字列の終端を誤検出していた為、誤った比較結果を返していた不具合を修正。
・UNICODE文字の2バイト目のコードの扱いに誤りがある不具合を修正(Cente障害情報:101-0091)
UNICODE文字列比較関数fs_unicodecmp(), fs_unicodencmp()において異なるUNICODE文字を同一と判定してしまう場合がある不具合を修正。
・全角の大文字・小文字の表記が可能なコードの扱いに誤りがある不具合を修正(Cente障害情報:101-0092)
アルファベットのファイル・ディレクトリ名に対する大文字・小文字を同一視すべき判定処理に誤りがあった不具合を修正。
以下のコード領域が不具合対象となります。【全角英字、ギリシャ文字、ロシア文字、アラビア数字】
・高速なファイル・ディレクトリ検索機能追加
ハッシュアルゴリズムを応用することでファイル・ディレクトリの検索が高速になる機能が追加されました。
・FAT領域のビットマップ化機能変更
(1)メディアの最適なビットマップサイズを取得できるAPI get_bitmapsize()を追加しました。
(2)大容量メディア向けに空き時間を使用してビットマップを構築するサンプルタスクを提供しました。
(3)ini_bitmapfat()の第1引数を変更しました。
第1引数をST_DISK *d[ディスク構造体]からct_int8_t drv[ドライブ名(’A’,’B’,…)]に変更しました。
・メタデータ保護機能用のマクロ名を変更
S-JIS API用とUNICODE API用を個別に設定できるようにしました。
・チェックディスクAPI追加
UNICODE用チェックディスクAPI【chk_dsk_uni()】を追加しました。
・UNICODE API追加
UNICODE用ファイル分割API【ct_divide_uni()】、クラスタ挿入API【ct_ins_clust_uni()】を追加しました。
・ファイル結合API追加
S-JIS用ファイル結合API【ct_combine()】、UNICODE用ファイル結合API【ct_combine_uni()】を追加しました。
・ドライブ削除API追加
ドライブ削除API【del_disk()】を追加しました。
・機能制限の撤廃
rename(), rename_uni(), move(), move_uni() において大文字から小文字もしくは小文字から大文字に変更できない機能制限がありましたが、この制限が無くなりました。
・ファイル名・ディレクトリ名の文字数の変更
Ver6.11までの最大長は、フルパスでS-JIS APIは258byte、UNICODE APIは516byteだった為、全角文字(2バイトコード)を含めると255文字の名前を作成・検索・削除ができませんでしたが、この制限が無くなり、フルパスで258文字までになりました。
・FSINFOが異常値だった場合の対策を追加
(1)fs_drv.c内get_dev2()にてFSINFOセクタのsignatureチェックでエラーを戻すよう変更しました。
(2)renew_fsinfo(), renew_fsinfo_uni()にてNextFreeClusterの更新機能を追加しました。
・DISK_MOUNTビット処理をAPIへ移動
ST_DISK構造体のメンバdsk_flgのDISK_MOUNTビットの処理をmount_disk()でセット、unmount_disk()でリセットするよう変更しました。従って、デバイスドライバ内での処理は必要なくなりました。
・空きFAT検索開始位置の仕様改善
remove(), remove_uni(), rmdir(), rmdir_uni()で削除されたクラスタを空きFAT検索時、早期に再利用できるよう変更しました。