Messages in this thread | | | Subject | Re: [PATCH] add a stub by which a module can bind to the AFS syscall | Date | Wed, 30 Apr 2003 16:30:20 +0100 | From | David Howells <> |
| |
I selected a variadic method of argument passing because I didn't want to have to copy the argument block several times in the course of passing from the syscall stub through the multiplexor to the actual handler.
Of course, it might be better if the kernel itself sorted out the individual subcalls and passed them to the filesystem individually or dealt with them itself.
The four calls implemented by Linux are:
(*) int setpag(void)
Set Process Authentication Group number. This could easily be moved into the kernel proper, with the PAG being stored in or depending from the task structure somehow.
This would then obviate the need for OpenAFS to mangle the setgroups and getgroups syscalls.
(*) int pioctl(const char *path, int cmd, void *arg, int followsymlink)
Al Viro's favourite:-) Do ioctl() on a file refered to by pathname. Can't be emulated by open/ioctl/close because:
(a) it can operate directly on symbolic links.
(b) some of its functions don't require a file and don't fail if one can't be opened.
(*) int afs_call(...)
Local client control
(*) int afs_icl(...)
Local client status and logging control.
There are six more which linux doesn't actually support, even though the multiplexor does:
(*) icreate (*) iopen (*) idec (*) iinc (*) iread (*) iwrite
Deal with file by inode number.
David - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |