Bug 18364

Summary: Bad function definition using #define.
Product: Base System Reporter: shigio <shigio>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 3.4-RELEASE   
Hardware: Any   
OS: Any   

Description shigio 2000-05-03 06:50:01 UTC
	Some functions use a macro SYSCTL_HANDLER_ARGS but no tag command
	can detect them as functions, because function's braces are hidden
	in the macro.
	SYSCTL_HANDLER_ARGS is like this:

		#define SYSCTL_HANDLER_ARGS (struct sysctl_oid *oidp, void *arg1, int ar
			struct sysctl_req *req)
		...
		int sysctl_handle_int SYSCTL_HANDLER_ARGS;


	Instead, it should be like this:

		#define SYSCTL_HANDLER_ARGS struct sysctl_oid *oidp, void *arg1, int arg
			struct sysctl_req *req
		...
		int sysctl_handle_int (SYSCTL_HANDLER_ARGS);

Fix: 

---------------------------------------------------------------------
[/usr/src/sys/sys/sysctl.h]
---------------------------------------------------------------------

#define SYSCTL_HANDLER_ARGS (struct sysctl_oid *oidp, void *arg1, int arg2, \
        struct sysctl_req *req)
...
int sysctl_handle_int SYSCTL_HANDLER_ARGS;
int sysctl_handle_long SYSCTL_HANDLER_ARGS;
int sysctl_handle_intptr SYSCTL_HANDLER_ARGS;
int sysctl_handle_string SYSCTL_HANDLER_ARGS;
int sysctl_handle_opaque SYSCTL_HANDLER_ARGS;

        |
        v

#define SYSCTL_HANDLER_ARGS struct sysctl_oid *oidp, void *arg1, int arg2, \
        struct sysctl_req *req
...
int sysctl_handle_int (SYSCTL_HANDLER_ARGS);
int sysctl_handle_long (SYSCTL_HANDLER_ARGS);
int sysctl_handle_intptr (SYSCTL_HANDLER_ARGS);
int sysctl_handle_string (SYSCTL_HANDLER_ARGS);
int sysctl_handle_opaque (SYSCTL_HANDLER_ARGS);
---------------------------------------------------------------------
[/usr/src/sys/kern/kern_sysctl.c]
---------------------------------------------------------------------
int
sysctl_handle_int SYSCTL_HANDLER_ARGS
{
        int error = 0;
        ...
}
        |
        v
int
sysctl_handle_int (SYSCTL_HANDLER_ARGS)
{
        int error = 0;
        ...
}
...
How-To-Repeat: 
	no
Comment 1 Poul-Henning Kamp freebsd_committer freebsd_triage 2000-07-03 10:41:32 UTC
State Changed
From-To: open->closed

Fixed.