Skip to contentSkip to conversation

ioctls

DISCUSSION Pete Zaitcev 2 participants 2 messages Apr 9, 2003 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw
Quoted 6 lines

(i)
First one has the definitions:

#define _IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),sizeof(size))
#define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),sizeof(size))

Quoted 7 lines

These are really unfortunate. I suppose I'll submit a patch to change the definition into

#define _IOR(group,nr,argtype) _IOC(_IOC_READ,(group),(nr),sizeof(argtype))

Really a lot of people have been fooled into believing that the parameter "size" is a size. But it is a data type.

Great idea! I actualy wanted it changed too, but could not find two suitable English words. Perhaps that's why Linus blew it. Wait... you aren't a native speaker either? :-) Anyway, I like it. Just about anything is better than what we have now.

Quoted 4 lines

(ii)
In all cases where the size is wrong (a largish number of cases), do we want to define the "correct" ioctls, and leave the old ones with _OLD suffix as deprecated?

I would not touch anything, but add a comment near every instance (/* THIS IS BROKEN DOUBLE sizeof, DO NOT COPY */).

Quoted 10 lines

(iii)
For userspace it is difficult to get ioctl definitions. All the obscure ioctls live in <linux/foo.h> and including lots of such headers is a sure way to get a source that doesnt compile. Typedef clashes, things outside #ifdef __KERNEL__ that use things inside, etc etc.
Would anyone object against creating a directory with a name like kernelapi and slowly moving manifest constants, ioctl definitions, and definitions of the argument structs to files there?

There was a more comprehensive idea floated by Chrishtoff Hellwig last week. We ought to ask Arjan (or find someone else) to maintain glibc-kernelheaders as a community tarball at kernel.org somewhere. Please, don't look at me. OK, only if Arjan _REALLY_ refuses... Or perhaps you want to take it yourself? This is basically your idea, only halfway
done: everything is copied already. Also, we do not need a buy-in from Linus (though I suspect he'd support it).

-- Pete

#2 lore raw
Quoted 11 lines · Pete Zaitcev
Quoted 2 lines

ioctl definitions, and definitions of the argument structs to files there?

There was a more comprehensive idea floated by Chrishtoff Hellwig last week. We ought to ask Arjan (or find someone else) to maintain glibc-kernelheaders as a community tarball at kernel.org somewhere. Please, don't look at me. OK, only if Arjan _REALLY_ refuses... Or perhaps you want to take it yourself? This is basically your idea, only halfway
done: everything is copied already. Also, we do not need a buy-in from Linus (though I suspect he'd support it).

I have no problem with making the reduced headerset more generically available (and then clean it up more etc etc); it needs for more people than just me to care to make it worth it though.