Patch, 8.

8. パッチ用イメージファイル

UDF適合性試験ツールで使用するコマンドudf_patchのパラメタとして指定するパッチ用イメージファイルを規定する。

8.1 基本事項

8.1.1 パッチイメージファイルの作成

パッチイメージファイルは, コマンドmkpatchによって次のとおりに作成する。

$ mkpatch -i パッチ定義ファイル -o 出力ファイル名

コマンドmkpatchの出力ファイルを, udf_patchの入力に使用する。

8.1.2 パッチイメージ定義ファイルの構造

パッチイメージ定義ファイルの構造を次に示す。

          Block1:
          Directive1  value1  value2 ..
          Directive2  value2  value2 ..
          ENDB 

          Block2:
          Directive1  value1  value2 ..       
          Directive2  value1  value2 ..
          ENDB

          ....

          END

ブロック定義セクションの開始を示すラベルと, その終了を示すENDBとの間に, フィールド設定用のディレクティブとディレクティブ毎の設定値とを記述する。

パッチイメージの定義は, ENDで終了する。

8.1.3 ブロックの記録順序

先頭のブロック定義セクションから, 定義されている順にパッチ用のブロックが作成される。

8.1.4 パッチイメージ定義ファイルで扱うアドレス

パッチイメージ定義ファイルで使用するアドレス(タグ位置, 割付け記述子中のアドレス等)は, パッチイメージファイルの先頭からのオフセット値を定義する。イメージファイルudfvolume.imgにパッチするときに, udf_patchツールが適切なアドレスに変換する。

パッチする際に, ファイルエントリ及び割付けエクステント記述子のCRC及びチェックサムは, udf_patchツールが計算して適切な値を設定する。

8.2 ファイルエントリブロックの定義

   (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
	定義セクションの終了を指定する。

8.3 割付けエクステント記述子ブロックの定義

   (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
	定義セクションの終了を指定する。

8.4 エクステントブロックの定義

   (1) EXTENT
	エクステントブロックの定義セクションの開始を指定する。

   (2) Len 
	機能: 続いて定義するデータのサイズを指定する。
	記述:"Len  daatalen"
		datalen: 続いて定義するデータのサイズ 

	このディレクティブに続いて, エクステントに記録するデータを
	直接指定する。1バイトを2桁の16進数で表わし, 各バイトの定義毎
	に','を記録する。(最後のバイトの定義の後も','を省かない。) 

   (3) ENDB