Linux核心全域性變數總結

2021-06-20 00:55:17 字數 1107 閱讀 4012

1.current指標

各個平台、各個核心版本中current的實現可能不同;但原理是一樣的。該指標一般定義在具體平台的current.h標頭檔案中,型別為struct task_struct:

arch/arm/include/asm/current.h

#define current (get_current())  

static inline struct task_struct *get_current(void)

include/linux/sched.h

struct task_struct
2.jiffies系統開機後「滴答」數

include/linux/jiffies.h

extern u64 __jiffy_data jiffies_64;

extern unsigned long volatile __jiffy_data jiffies;

3.hz、tick系統晶振主頻,平台相關

arch/arm/include/asm/param.h

#ifdef __kernel__

# define hz config_hz /* internal kernel timer frequency */

# define user_hz 100 /* user inte***ces are in "ticks" */

# define clocks_per_sec (user_hz) /* like times() */

#else

# define hz 100

#endif

include/linux/timex.h
extern unsigned long tick_usec;         /* user_hz period (usec) */

extern unsigned long tick_nsec; /* acthz period (nsec) */

static全域性變數 全域性變數

1 全域性變數 外部變數 的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。這兩者的區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是...

全域性變數和靜態全域性變數

全域性變數和區域性變數是從變數的作用域的角度劃分。靜態變數和動態變數是從變數的記憶體分配的角度劃分。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同,區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原...

c 全域性變數 靜態全域性變數

全域性變數是靜態儲存方式,靜態全域性變數也是靜態儲存方式,這兩者在儲存方式上並無不同。區別 雖在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,靜態全域性變數在各個原始檔中都是有效的。靜態區域性變數則限制了其作用域,只在定義該變數的原始檔內有效,在同一源程式的其它原始檔中不能...