Date: Mon, 14 Dec 1998 15:03:31 -0800 (PST) From: Bill Paul <wpaul> To: dillon@apollo.backplane.com (Matthew Dillon) Cc: brian@Awfulhak.org, committers@FreeBSD.ORG Subject: Re: best way to fix function mismatch warning Message-ID: <199812142303.PAA26888@hub.freebsd.org> In-Reply-To: <199812142204.OAA49586@apollo.backplane.com> from Matthew Dillon at "Dec 14, 98 02:04:28 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
> > : > :> This warning occurs because the vxintr function does not match the > :> function type expected by pci_map_int. That is, because pci_map_int > :> expects a void func(void *) function and vxintr is a > :> void func(struct softc *). > :> > :> So, to get rid of the warning do we (a) cast the function pointer > :> in the pci_map_int() call to the correct type or (b) make the function > :> (in dev/vx/*) take a void * and then reassign the variable to a pointer > :> of the right type inside it? Or (c) some other choice that I haven't > :> thought of ? > : > :(a) as there's no overhead.... alternatively, you could try (c) ;-) > > There's no overhead for b either, GCC detects the alias and optimizes > it out. > > -Matt The mechanism used in most of the drivers I've looked at (and the one that I use myself) is b. Usually, you see something like: void foo_intr(xsc) void *xsc; { struct foo_softc *sc = xsc; /* blah */ return; } -Bill To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199812142303.PAA26888>