*参照元 [#if3b7956]
#backlinks

*説明 [#a3f6fdd2]
-パス: 複数あり
--CONFIG_DEBUG_DEVRES 有効: [[linux-4.4.1/include/linux/device.h]]
--CONFIG_DEBUG_DEVRES 無効: [[linux-4.4.1/drivers/base/devres.c]]
--[[linux-4.4.1/CONFIG_DEBUG_DEVRES]]

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


**引数 [#g8979d45]
-dr_release_t release
--
--[[linux-4.4.1/dr_release_t]]
-size_t size
--
-gfp_t gfp
--
--[[linux-4.4.1/gfp_t]]
-int nid
--


**返り値 [#g15e5a9b]
-void *
--


**参考 [#q5e76f00]


*実装 [#yfa6cba8]

**CONFIG_DEBUG_DEVRES 有効: include/linux/device.h [#e391c0aa]
 #define devres_alloc_node(release, size, gfp, nid) \
         __devres_alloc_node(release, size, gfp, nid, #release)
-
--[[linux-4.4.1/__devres_alloc_node()]]


**CONFIG_DEBUG_DEVRES 無効: drivers/base/devres.c [#se1a3bb8]
 /**
  * devres_alloc - Allocate device resource data
  * @release: Release function devres will be associated with
  * @size: Allocation size
  * @gfp: Allocation flags
  * @nid: NUMA node
  *
  * Allocate devres of @size bytes.  The allocated area is zeroed, then
  * associated with @release.  The returned pointer can be passed to
  * other devres_*() functions.
  *
  * RETURNS:
  * Pointer to allocated devres on success, NULL on failure.
  */
 void * devres_alloc_node(dr_release_t release, size_t size, gfp_t gfp, int nid)
 {
         struct devres *dr;
 
-
--[[linux-4.4.1/devres]]

         dr = alloc_dr(release, size, gfp | __GFP_ZERO, nid);
         if (unlikely(!dr))
                 return NULL;
-
--[[linux-4.4.1/alloc_dr()]]
--[[linux-4.4.1/unlikely()]]

         return dr->data;

-struct devres は先頭に struct devres_node があり、その後に size で指定したサイズの領域(data が指すアドレス)が確保されている。

 }
 EXPORT_SYMBOL_GPL(devres_alloc_node);
-
--[[linux-4.4.1/EXPORT_SYMBOL_GPL()]]


*コメント [#j72e6783]

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