APの素案

  • (by K, 2020.12.16)

(1)

  • APは、aclにおける標準的なポインタ(にするかもしれないもの)
  • 32bitの場合:
    上位4bit
    0xxxALL_OK相当
    10xxオフセット24bit(16MB), rebirth-count:2bit, セレクタ:4bit
    110xオフセット16bit(64KB), rebirth-count:2bit, セレクタ:11bit
    1110オフセット8bit(256B), rebirth-count:2bit, セレクタ:18bit
    1111オフセット2bit(4B), rebirth-count:2bit, セレクタ:24bit
  • 64bitの場合:
    上位4bit
    0xxxALL_OK相当
    10xxオフセット48bit(256TB), rebirth-count:4bit, セレクタ:10bit
    110xオフセット32bit(4GB), rebirth-count:4bit, セレクタ:25bit
    1110オフセット16bit(256B), rebirth-count:4bit, セレクタ:40bit
    1111オフセット8bit(4B), rebirth-count:4bit, セレクタ:48bit

(2)

  • AP_0(a, sizTyp):
    • aのデフォルト設定を読み込む
  • AP_1(a, sizTyp):
    • AP_0()と基本的には同じだけど、設定が見つからないときにはエラーにする。
    • 設定よってあえてALL_OK相当にしている場合は、エラーにならない。
  • AP_CStr("hello")
    • 文字列定数(過剰に作らないように、AP_0を内部で併用する、しかも設定は別建てである)
  • AP_set0(p, base, limit, flgRWX)
    • なければ作る、あれば更新する
  • AP_set1(p, base, limit, flgRWX)
    • なければ作るが、あればエラーにする
  • 同じアドレスでも、違う粒度がありうる。だからアドレスからだけでは適切なセレクタが得られないのでは?
    • いっしょに型を渡すのはどうか?その型で連続アクセス可能なサイズとする。
    • 1個だけにしてほしい時は、どうしたらいいだろうか?
    • AP_0sとかAP_1sとかにしたらいい?

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-12-17 (木) 16:59:41 (79d)