當前位置:編程學習大全網 - 網站源碼 - Linux0.11源代碼調試

Linux0.11源代碼調試

void do_timer(長cpl){

...

fn = next _ timer-& gt;fn;

next _ timer-& gt;fn = NULL

next _ timer = next _ timer-& gt;接下來;

(fn)();

...

}

該函數中的函數指針添加在函數void add _ timer (long jiffies,void (* fn) (void))中。這個函數是內核使用的,用戶空間的函數不能調用add_timer,也就是說do_timer (long cpl)函數中的函數指針只會指向內核中的函數。

(我去看了linux0.11的源代碼,真的只用。

floppy . c(kernel \ blk _ drv):add _ timer(2,& amp轉讓);

floppy . c(kernel \ blk _ drv):add _ timer(ticks _ to _ floppy _ on(current _ drive),& amp軟盤_開_中斷);

Sched.c(內核):void add_timer(long jiffies,void (*fn)(void))

sched . h(include \ Linux):extern void add _ timer(long jiffies,void(* fn)(void));

)

所以妳的“內核不能直接訪問用戶空間函數”是不存在的。

我是看了帖子/線程-3727536-1-1.html才產生這個想法的。

我剛開始學這個。我可能錯了。請原諒我。

  • 上一篇:傳奇aspm2持久沒了裝備會消失嗎
  • 下一篇:誰有 路由和交換技術,這個教材網盤鏈接求壹下大家!感恩
  • copyright 2024編程學習大全網