Date: Fri, 5 Feb 1999 11:22:47 -0500 (EST) From: Ilhwan Kwon <ik26+@andrew.cmu.edu> To: freebsd-hackers@freefall.cdrom.com Subject: [help] creating system calls Message-ID: <EqilfLe00Ui503yG00@andrew.cmu.edu>
next in thread | raw e-mail | index | archive | help
Hi. I am trying to write my own system call functions for BSD. I am trying to calculate the maximum amount of memory a PC needs when it is used as a router. First, I declare "u_long max_memused" in /usr/src/sys/sys/mbuf.h. Second, I add following code in m_devget function in /usr/src/sys/kern/uipc_mbuf.c. u_long mem_used = size of memory currently used by mbufs and clusters. if(mem_used > max_memused) max_memused = mem_used; Third, I make prototype for my system calls in mbuf.h like following. long get_mem_stat __P((void)); void clear_mem_stat __P((void)); Fourth, I declare above system calls in uipc_mbuf.c like following. long get_mem_stat(){ return (long) max_memused; } void clear_mem_stat(){ max_memused = 0; } Fifth, I put entries in init_sysent.c like following. struct sysent sysent[] = { /*......*/ {0, (*sy_call)get_mem_stat}, /*241 = get_mem_stat */ {0, (*sy_call)clear_mem_stat}, /*242 = clear_mem_stat */ /* ..... */ }; the 241th and 242th wer originally looked like {0, (*sy_call)no_sys}, finally, I put entries in syscalls.c "get_mem_stat" /*241 = get_mem_stat*/ "clear_mem_stat" /*242 = clear_mem_stat*/ they were originally "no_sys". Now, I recompile the kernel and reboot. but kernel library is not updated. I copy /usr/src/sys/sys/mbuf.h to /usr/include/sys/mbuf.h. I write a small program which includes <sys/mbuf.h> and calls get_mem_stat and clear_mem_stat system calls. Whe I compile, I get "get_mem_stat" : undefined reference from the text segent" "clear_mem_stat" : undefined reference from the text segent" What did I do wrong? Any help on this matter will be greatly appreciated. Thanks -James Kwon To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?EqilfLe00Ui503yG00>