#author("2025-10-27T13:08:19+09:00","default:guest","guest")
#author("2025-10-27T13:36:33+09:00","default:guest","guest")
*参照元 [#s1ec6cfa]
#backlinks

*説明 [#d6044a49]
-パス: [[linux-5.15/include/linux/mmzone.h]]

-zonerefの配列
--説明
--pglistのnode_zonelistsメンバーの型。
--[[linux-5.15/pglist_data]]
-zonerefの配列。zoneのインデックスを逆順(例えばMOVABLE, NORMAL, DMA32, DMA)に辿って作る(build_zonerefs_node)
--ただしmanaged_zoneしか登録されない(MOVABLE, DMA32が空のゾーンだとすると、zonelistにはNORMAL, DMAだけ残る)
--[[linux-5.15/zone_type]]

-pglistのnode_zonelistsメンバーの型である。
---[[linux-5.15/pglist_data]]


**参考 [#w96d513d]


*実装 [#f61a5567]

 /*
  * One allocation request operates on a zonelist. A zonelist
  * is a list of zones, the first one is the 'goal' of the
  * allocation, the other zones are fallback zones, in decreasing
  * priority.
  *
  * To speed the reading of the zonelist, the zonerefs contain the zone index
  * of the entry being read. Helper functions to access information given
  * a struct zoneref are
  *
  * zonelist_zone()	- Return the struct zone * for an entry in _zonerefs
  * zonelist_zone_idx()	- Return the index of the zone for an entry
  * zonelist_node_idx()	- Return the index of the node for an entry
  */
 struct zonelist {
 	struct zoneref _zonerefs[MAX_ZONES_PER_ZONELIST + 1];
 };

-
--[[linux-5.15/zoneref]]
--[[linux-5.15/MAX_ZONES_PER_ZONELIST]]


*コメント [#a3e525ab]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS