注釋僅代表個人理解,難免有錯誤之處,僅供參考!1/*
2* linux/drivers/base/map.c3*
45* released under gpl v2.6*
7* note: data structure needs to be changed. it works, but for large dev_t
8* it will be too slow. it is isolated, though, so these changes will be
9* local to that file.
10*/
1112 #include
13 #include
14 #include
15 #include
16 #include
17 #include
1819
struct kobj_map *probes[255];
29struct mutex *lock;
30 };
3132
int kobj_map(struct kobj_map *domain, dev_t dev, unsigned long range,
33struct module *module, kobj_probe_t *probe,
34int (*lock)(dev_t, void *), void *data)
35 64
/*[cgw]: 進入臨界區
*/65 mutex_lock(domain->lock);
66/*
[cgw]: 這裡p -= n是因為,在以上for迴圈中,p++了n次
*/67
for (i = 0, p -= n; i < n; i++, p++, index++)
89/*
[cgw]: 退出臨界區
*/90 mutex_unlock(domain->lock);
91return
0;92 }
9394
void kobj_unmap(struct kobj_map *domain, dev_t dev, unsigned long range)
95 125 }
126 }
127/*
[cgw]: 退出臨界區
*/128 mutex_unlock(domain->lock);
129/*
[cgw]: 釋放這個節點對應的記憶體空間
*/130 kfree(found);
131 }
132133
struct kobject *kobj_lookup(struct kobj_map *domain, dev_t dev, int *index)
134
177/*
[cgw]: 退出臨界區
*/178 mutex_unlock(domain->lock);
179/*
[cgw]: 呼叫probe的實現函式,並返回對應的kobj
*/180 kobj = probe(dev, index, data);
181/*
currently ->owner protects _only_ ->probe() itself.
*/182
/*[cgw]: 放棄模組使用權????
*/183 module_put(owner);
184/*
[cgw]: 獲得kobj,退出
*/185
if (kobj)
186return kobj;
187goto retry;
188 }
189/*
[cgw]: 退出臨界區
*/190 mutex_unlock(domain->lock);
191return null;
192 }
193194
struct kobj_map *kobj_map_init(kobj_probe_t *base_probe, struct mutex *lock)
195
209/*
[cgw]: 設定預設裝置號為1,連續range個次裝置,設定probe的實現
210* 函式(**)
211*/
212base->dev = 1;
213base->range = ~0;
214base->get = base_probe;
215/*
[cgw]: 設定probes陣列的初始值
*/216
for (i = 0; i < 255; i++)
217 p->probes[i] = base;
218 p->lock = lock;
219return
p;220 }
Android Studio 新增注釋模板
定義一下 及注釋的格式規範。及注釋的格式是顯示乙個專案是否合格的乙個參考標準,也是決定專案能否進行到底的乙個重要因素。1 每乙個類,每乙個方法都要有注釋。類的注釋要在開始簡單介紹一下類的功能,作用,目的等。函式的注釋在開始要簡單介紹一下函式的功能和目的等。已用todo標出。函式還要加上每乙個引數的說...
IDEA新增注釋模板
file setting editor file and code templates 修改file header 內容為如下內容 end author alan date version 1.0 editor live templates 新建乙個 live template 注意修改觸發的範圍 ...
oracle 新增欄位和新增注釋
1 增加乙個字段 增加欄位時,只能排在已有欄位的後面,不能插到已有字段之間 alter table t si addr add chg addr flag number 1,0 alter table 表名 add 欄位名稱 字段型別 2 增加兩個字段 alter table t si addr a...