Subject: kern/10770: tsleep(9) does not document need to include sys/proc.h
To: None <gnats-bugs@gnats.netbsd.org>
From: None <rafal@mediaone.net>
List: netbsd-bugs
Date: 08/06/2000 19:35:13
>Number:         10770
>Category:       kern
>Synopsis:       tsleep(9) does not document need to include sys/proc.h
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          doc-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Aug 06 19:36:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        NetBSD 1.5_ALPHA
>Organization:
Highly Unlikely
>Environment:
	NetBSD 1.5_ALPHA home-built snapshot of 8/2/00 (on x86, not that 
	it matters)

>Description:
	If one is building an LKM that uses tsleep(9) and one does not include
	sys/proc.h in the source file, the LKM will link but will not load.

	This is due to the change of tsleep(9) from a function to a macro
	that calls ltsleep() with a NULL lock argument, so there really *is*
	not tsleep() function in the kernel anymore.

	All this would be fine, except the requirement to include sys/proc.h
	is not stated in the tsleep(9) man page, and other than the load 
	error below, all goes well.  

	If this macro-ization of tsleep(9) is a precursor to the deprecation
	or replacement of the interface, it would also be nice to note that 
	in the man page.

>How-To-Repeat:
	Call tsleep(9) from LKM source without including sys/proc.h.

	Have link succeed, but load fail thusly:
	    lcd.o: In function `lcdread':
	    lcd.o(.text+0x3fc): undefined reference to `tsleep'

>Fix:
	Mention necessary inclusion of sys/proc.h in tsleep(9).
	Possibly mention flux of tsleep() interface in same page, if that
	is indeed the case.

>Release-Note:
>Audit-Trail:
>Unformatted: