NetBSD-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Porting an OSS application
On May 4, 11:09am, riccardo.mottola%libero.it@localhost (Riccardo Mottola)
wrote:
-- Subject: Re: Porting an OSS application
| Hi Christos,
|
| On 05/04/12 01:42, Christos Zoulas wrote:
| > In article<20120503223052.1bef66c8.dieter.NetBSD%pandora.be@localhost>,
| > dieter roelants<dieter.NetBSD%pandora.be@localhost> wrote:
| >>
| >> soundcard.h contains:
| >>
| >> #include<sys/ioctl.h>
| >> #define ioctl(x,y,z) _oss_ioctl(x,y,z)
| > perhaps defining it this way is better:
| >
| > #define ioctl(x, y, ...) _oss_ioctl(x, y, __VA_ARGS__)
| I think this is still not perfect, since it does not allow the variadic
| argument to be empty.
| I tried to use the gcc extension [1]
|
| #define ioctl(x, y, ...) _oss_ioctl(x, y, ##__VA_ARGS__)
|
| However, this way, my code will complain with:
|
| OSS.m:111:3: error: too few arguments to function '_oss_ioctl'
| /usr/include/sys/soundcard.h:311:5: note: declared here
|
| line 311 says:
| int _oss_ioctl(int fd, unsigned long com, void *argp);
|
| so it is expecting directly the arg.pointer, not the argument list. I
| think this is wrong, since ioctl has the arglist instead:
| int
| ioctl(int d, unsigned long request, ...);
|
| it looks there is a mismatch and the Macro was hiding this?
|
| Riccardo
I committed the change to head.
christos
Home |
Main Index |
Thread Index |
Old Index