From shigio@tamacom.com  Tue May  2 22:44:57 2000
Return-Path: <shigio@tamacom.com>
Received: from shrike.dti.ad.jp (shrike.dti.ad.jp [202.216.228.218])
	by hub.freebsd.org (Postfix) with ESMTP id 10EE437C17D
	for <FreeBSD-gnats-submit@freebsd.org>; Tue,  2 May 2000 22:44:53 -0700 (PDT)
	(envelope-from shigio@tamacom.com)
Received: from choota.signet.or.jp (PPP46.tama-ap5.dti.ne.jp [210.170.192.46]) by shrike.dti.ad.jp (8.9.3/3.7W) with ESMTP id OAA07303 for <FreeBSD-gnats-submit@freebsd.org>; Wed, 3 May 2000 14:44:48 +0900 (JST)
Received: (from shigio@localhost) by choota.signet.or.jp (8.9.3/) id OAA63004; Wed, 3 May 2000 14:37:04 +0900 (JST)
Message-Id: <200005030537.OAA63004@tamacom.com>
Date: Wed, 3 May 2000 14:37:04 +0900 (JST)
From: shigio@tamacom.com
Reply-To: shigio@tamacom.com
To: FreeBSD-gnats-submit@freebsd.org
Subject: Bad function definition.
X-Send-Pr-Version: 3.2

>Number:         18364
>Category:       kern
>Synopsis:       Bad function definition using #define.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue May  2 22:50:01 PDT 2000
>Closed-Date:    Mon Jul 3 02:41:32 PDT 2000
>Last-Modified:  Mon Jul 03 02:41:54 PDT 2000
>Originator:     Shigio Yamaguchi
>Release:        FreeBSD 3.4-RELEASE i386
>Organization:
Tama Communications corporation
>Environment:

>Description:

	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);

>How-To-Repeat:

	no

>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;
        ...
}
...

>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: phk 
State-Changed-When: Mon Jul 3 02:41:32 PDT 2000 
State-Changed-Why:  
Fixed. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=18364 
>Unformatted:
