Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.arcetri.astro.it/irlab/library/linux/khg/HyperNews/get/khg/135/1/2.html
Дата изменения: Thu Mar 23 12:37:41 2000 Дата индексирования: Wed Sep 15 04:06:16 2010 Кодировка: Поисковые слова: http news.cosmoport.com 2005 04 22 1.htm |
I am using linux v2.0.33. In /usr/src/linux/arch/i386/kernel/entry.S SYMBOL_NAME slots 164,165,166 are as follows: .long 0,0 .long SYMBOL_NAME(sys_vm86) I found that I could not add a new system call at 167. When I did, it was called by something else for who knows what reason. I know this because the only thing in my new system call was a printk statement (which displays whenever the new system call is called). With the system call at 167 I would receive unwanted printk messages at boot time, at shutdown time, and when I executed ifconfig! Hence, I put the following at 167 and put my new system call at 168. .long 0 That seems to have made everything work! Another strange thing is that with my system call at 167 the insmod function reports "unresolved symbol" messages and will not install modules?? My guess is that one of the modutil modules is using the 167 slot! Anyone have any ideas? Regarding printk: It is my understanding that printk messages will appear on the console (I am assuming you are at a console if you are modifying system calls and generating the kernel ) as long as your message level is less then your log level. I use <0> for testing to be sure of having the lowest message level. For example: printk("<0>syscallname: entering my test syscall\n"); This works for me. |