UDF適合性試験ツールで使用するコマンドudf_patchのパラメタとして指定するパッチ用イメージファイルを規定する。
パッチイメージファイルは, コマンドmkpatchによって次のとおりに作成する。
$ mkpatch -i パッチ定義ファイル -o 出力ファイル名
コマンドmkpatchの出力ファイルを, udf_patchの入力に使用する。
パッチイメージ定義ファイルの構造を次に示す。
Block1: Directive1 value1 value2 .. Directive2 value2 value2 .. ENDB Block2: Directive1 value1 value2 .. Directive2 value1 value2 .. ENDB .... END
ブロック定義セクションの開始を示すラベルと, その終了を示すENDBとの間に, フィールド設定用のディレクティブとディレクティブ毎の設定値とを記述する。
パッチイメージの定義は, ENDで終了する。
先頭のブロック定義セクションから, 定義されている順にパッチ用のブロックが作成される。
パッチイメージ定義ファイルで使用するアドレス(タグ位置, 割付け記述子中のアドレス等)は, パッチイメージファイルの先頭からのオフセット値を定義する。イメージファイルudfvolume.imgにパッチするときに, udf_patchツールが適切なアドレスに変換する。
パッチする際に, ファイルエントリ及び割付けエクステント記述子のCRC及びチェックサムは, udf_patchツールが計算して適切な値を設定する。
(1) FILE_ENTRY: ファイルエントリブロックの定義セクションの 開始を指定する。 (2) TAG_Version 機能:タグ版数を指定する。 記述:"TAG_Version version" version: 版数(2を指定) (3) TAG_Serial 機能:タグシリアル番号を指定する。 記述:"TAG_Serial serial" serial: シリアル番号 (4) TAG_Location 機能:タグの位置を指定する。 記述:"TAG_Location loc" loc: タグの位置 (5) ICB_PreRecord 機能:記録済み直接エントリの個数を指定する。 記述:"ICB_PreRecord num" num: 記録済み直接エントリの個数 (6) ICB_Strategy 機能:方策種別を指定する。 記述:"ICB_Strategy strategy" strategy: ストラテジ(=4) (7) ICB_MaxEntries 機能:最大エントリ番号を指定する。 記述:"ICB_MaxEntries max" max: 最大エントリ番号(=1) (8) ICB_FileType 機能:ファイルタイプを指定する。 記述:"ICB_FileType ftype" ftype: ファイルタイプ(4:directory, 5:ファイル) (9) ICB_ParentLBN 機能:親ICB位置を指定する。 記述:"ICB_ParentLBN lbn" lbn: 親ICBのアドレス(=0) このアドレスは, パッチする際に変換されない。 (9) ICB_ParentPart 機能:親ICBの区画を指定する。 記述:"ICB_ParentPart pno" pno: 親ICBの区画番号(=0) (10) ICB_Flag 機能:ICBフラグを指定する。(割付け記述子のタイプを指定) 記述:"ICB_Flag flag" flag: icbフラグの値を10進で設定。 (11) Uid 機能:利用者IDを指定する。 記述:"Uid idno" idno: 利用者ID番号を10進で設定。 (12) Gid 機能:グループIDを指定する。 記述:"Gid idno" idno: グループID番号を10進で設定。 (13) Permission 機能:許可条件を指定する。 記述:"Permission mode" mode: 許可条件を10進で設定。 (14) LinkCount 機能:リンクカウントを指定する。 記述:"LinkCount count" count: リンクカウント (15) InfoLen 機能:情報長を指定する。 記述:"InfoLen len" len: 情報長を16進で指定。 (16) BlockNum 機能:記録済み論理ブロック数を指定する。 記述:"BlockNum num" num: ブロック数 (17) CheckPoint 機能:記録済み論理ブロック数を指定する。 記述:"CheckPoint num" num: ブロック数 (18) AccessTime 機能:アクセス日時を指定する。 記述:"AccessTime datetimestring" datetimestring: 日時を次のとおりに指定。 19980807060504030201: 1998年8月7日6時5分4.030201秒 (19) ModificationTime 機能:変更日時を指定する。 記述:"ModificationTime datetimestring" datetimestring: 日時を指定(指定方法は, AccessTimeと同様。) (20) AttributeTime 機能:属性日時を指定する。 記述: "AttributeTime datetimestring" datetimestring: 日時を指定( 指定方法はAccessTimeと同様。) (21) AllocDescLen 機能:割付け記述子欄のサイズを指定する。 記述:"AllocDescLen len" len: 割付け記述子欄のサイズ このディレクティブに続いて, 割付け記述子欄に記録するデータを 直接指定する。1バイトを2桁の16進数で表わし, 各バイトの定義毎 に','を記録する。(最後のバイトの定義の後も','を省かない。) (22) ENDB 定義セクションの終了を指定する。
(1) ALLOC_EXT_DESC 割付けエクステント記述子ブロックの定義セクションの 開始を指定する。 (2) TAG_Version 機能:タグ版数を指定する。 記述:"TAG_Version version" version: 版数(2を指定) (3) TAG_Serial 機能:タグシリアル番号を指定する。 記述:"TAG_Serial serial" serial: シリアル番号 (4) TAG_Location 機能:タグの位置を指定する。 記述:"TAG_Location loc" loc: タグの位置 (5) AllocDescLen 機能:割付け記述子欄のサイズを指定する。 記述:"AllocDescLen len" len: 割付け記述子欄のサイズ このディレクティブに続いて, 割付け記述子欄に記録するデータを 直接指定する。1バイトを2桁の16進数で表わし, 各バイトの定義毎 に','を記録する。(最後のバイトの定義の後も','を省かない。) (6) ENDB 定義セクションの終了を指定する。
(1) EXTENT エクステントブロックの定義セクションの開始を指定する。 (2) Len 機能: 続いて定義するデータのサイズを指定する。 記述:"Len daatalen" datalen: 続いて定義するデータのサイズ このディレクティブに続いて, エクステントに記録するデータを 直接指定する。1バイトを2桁の16進数で表わし, 各バイトの定義毎 に','を記録する。(最後のバイトの定義の後も','を省かない。) (3) ENDB