Skip site navigation (1)Skip section navigation (2)
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>