2015-11-06 4 views
5

<linux/module.h> से:"__this_module" चर की स्मृति आवंटन कहां है?

#ifdef MODULE 
#define MODULE_GENERIC_TABLE(gtype,name)   \ 
extern const struct gtype##_id __mod_##gtype##_table  \ 
    __attribute__ ((unused, alias(__stringify(name)))) 

extern struct module __this_module; 
#define THIS_MODULE (&__this_module) 
#else /* !MODULE */ 
#define MODULE_GENERIC_TABLE(gtype,name) 
#define THIS_MODULE ((struct module *)0) 
#endif 

मैं देख सकता हूँ "extern struct module __this_module;" बस __this_module की घोषणा, लेकिन नहीं __this_module की परिभाषा है। तो __this_module की मेमोरी आवंटन कहां है? मुझे इसे kernel कोड में नहीं मिला है।

उत्तर

4
an obscure and dark spot in the LKML के अनुसार

...

इसका मतलब यह है कि मॉड्यूल संरचना (struct मॉड्यूल) है और यह विभिन्न ubstructures में insmod से भर रहे हैं क्या है?

सादर, नरेन

सूर्य पर, 5 नवंबर 2000, Tigran ऐवाज़ियान लिखा है:

सूर्य पर, 5 नवंबर 2000, नरेन Devaiah लिखा है: > >

मैंने 2.4.0-प्री 10 स्रोत पेड़ में देखा है और इसे बाहरी संरचना मॉड्यूल __this_module के रूप में परिभाषित किया गया है; मॉड्यूल.h में (अन्य फ़ाइलों के बीच), लेकिन वास्तव में यह कहां परिभाषित किया गया है?

यह नहीं है - यह जादू है, बिल्कुल :)। जिस तरह से यह काम करता है इन चीजों को इस तरह से व्यवस्थित करता है कि & __this_module मॉड्यूल के पता स्थान की शुरुआत में पर इंगित करने का संकल्प करता है, जिसमें शुरुआत में 'संरचना मॉड्यूल' शामिल होता है।

सादर, Tigran

Follow-up ...

सूर्य पर, 5 नवंबर 2000, नरेन Devaiah लिखा है:

इसका मतलब यह है कि मॉड्यूल संरचना (संरचना मॉड्यूल) और यह विभिन्न संरचनाओं को इंसोड द्वारा भर दिया जाता है?

सादर, नरेन

हाँ, आंशिक रूप से, यानी sys_create_module पर एक नजर है() और sys_init_module() सिस्टम कॉल, वे कर्नेल में हैं/module.c

sys_create_module() बस अंतरिक्ष आवंटित करता है और मॉड्यूल को सूची में जोड़ता है लेकिन sys_init_module() को उपयोगकर्ता स्पेस से 'स्ट्रक्चर मॉड्यूल' पास किया जाता है, जिसकी सामग्री कठोर रूप से मान्य होती है (किसी पर भरोसा नहीं करें!) और फिर में एक वास्तविक कर्नेल 'स्ट्रक्चर मॉड्यूल' और मॉड्यूल के init_module में स्थापित किया गया है() दिनचर्याहैने आह्वान किया।

सादर, Tigran

संबंधित मुद्दे