2012-03-13 13 views
5

typedef __u16 __bitwise __le16; का अर्थ लिनक्स कर्नेल में क्या है?"typedef __u16 __bitwise __le16;" क्या करता है लिनक्स कर्नेल में मतलब है?

वास्तव में, "ले" का अर्थ क्या है? मैं अस्पष्ट रूप से देख सकता हूं कि यह एक हस्ताक्षरित 16 बिट int है?

आपकी मदद के लिए धन्यवाद।

+2

ले का मतलब है 'थोड़ा एंडियन' सुनना जो स्मृति में डेटा के बाइट ऑर्डर कहता है। –

उत्तर

7

मैंने पाया कि (source) और that

प्रकार पहचानकर्ता

निम्नलिखित प्रकार पहचानकर्ता, यू 16, u32, और u64 प्रकार के अनुरूप सिवाय इसके कि वे बिटवाइज़ विशेषता है, जो करने के लिए प्रयोग किया जाता है के साथ परिभाषित कर रहे हैं पूर्णांक के रूप में उनके उपयोग को प्रतिबंधित करें। Bitwise विशेषता का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि वेरिएबल पर अन्य (असुरक्षित) संचालन किए जाने से पहले वैरिएबल को स्थानीय प्रोसेसर प्रकार में परिवर्तित कर दिया जाता है।

लिनक्स/kernel.h हेडर फ़ाइल सहित निम्नलिखित प्रकारों का उपयोग एंडियन निर्भर चर के लिए किया जा सकता है।

__le16 
__le32 
__le64 


__be16 
__be32 
__be64 
+0

नोट: स्रोत पुराना है, प्रकारों को परिभाषित किया गया है (लिनक्स 3.16 के बाद से) [linux/types.h] में (http://lxr.free-electrons.com/source/tools/include/linux/types.h) – pevik

2

लघु जवाब: यह के लिए खड़ा है little endian

लांग जवाब: @ में लिंक देखें Pben के answer

0

Documentation/sparse.txt के अनुसार:

और जीसीसी के साथ, सभी __bitwise/__force सामान दूर चला जाता है, और यह सभी जीसीसी के पूर्णांक की तरह दिखता है।

तो मेरी समझ है:

एक। यह केवल प्रकार की जांच के लिए प्रयोग किया जाता है।

बी। यदि आपके पास

typedef __u16 __bitwise __my_type1; 
typedef __u16 __bitwise __my_type2; 

स्पैस चेतावनी देगा यदि आप __my_type1 को __my_type2 असाइन करते हैं।

सी। __bitwise बस ऑर्डर संवेदनशील का मतलब है, यह बड़े-एंडियन या छोटे-एंडियन निर्दिष्ट नहीं करता है।

क्या मैं सही हूँ?

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