#author("2025-10-27T11:15:39+09:00","default:guest","guest")
#author("2025-10-27T11:19:17+09:00","default:guest","guest")
*参照元 [#q4eaa9d6]
#backlinks

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

-FIXME: これは何?
--説明


**引数 [#hf01426a]
-struct zone *zone
--
--[[linux-5.15/zone]]
-struct zoneref *z
--
--[[linux-5.15/zoneref]]
-enum zone_type highidx
--
--[[linux-5.15/zone_type]]
-nodemask_t *nodemask
--
--[[linux-5.15/nodemask_t]]


**返り値 [#oe9609e7]
-なし


**参考 [#t8964feb]


*実装 [#nfeaee2e]

 #define for_next_zone_zonelist_nodemask(zone, z, highidx, nodemask) \
 	for (zone = z->zone;	\
 		zone;							\
 		z = next_zones_zonelist(++z, highidx, nodemask),	\
 			zone = zonelist_zone(z))

-z(struct zoneref)のzoneメンバーが指しているzoneが最初。
-zoneがNULLになるまで次のゾーンを取得する。
-zoneがNULLになるまで次のゾーンを取得する。zonerefは配列になっているので、++zで次のzonerefが参照できる。
--[[linux-5.15/next_zones_zonelist()]]
-zonelist_zone(z)はz->zoneと同じ。なぜ2種類の方法で指定しているのだろう?
--[[linux-5.15/zonelist_zone()]]


*コメント [#oafb488d]

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