Re: [PATCH 5/6] syscalls: add define syscall prefix macro

From: Randy Dunlap
Date: Mon Feb 08 2010 - 11:55:45 EST


On 02/08/10 07:48, Jason Baron wrote:
> On Wed, Feb 03, 2010 at 02:01:04PM +0100, Heiko Carstens wrote:
>> On Tue, Feb 02, 2010 at 04:21:55PM -0500, Jason Baron wrote:
>>> Add a new 'SYSCALL_PREFIX_DEFINE#()' style macro to include/linux/syscalls.h.
>>> This allows us to create syscalls via:
>>>
>>> SYSCALL_PREFIX_DEFINE1(32_, mmap, struct mmap_arg_struct __user *, arg);
>>>
>>> The standard 'SYSCALL_DEFINE#()' macro forces 'sys_blah', but for the 32 compat
>>> calls we want 'sys32_blah'.
>>
>> Not really. That's what you want for x86. But the generic name for compat syscalls
>> is compat_sys_whatever. The arch specific compat syscalls don't follow a common
>> naming scheme (yet).
>> Especially if you consider the idea to get automated correct sign extension via
>> hpa's planned script for compat syscalls it would be good if you would just name
>> that define something like SYSCALL_COMPAT.. or COMPAT_SYSCALL..
>> That way it would be easy to add a hook in there.
>
> So I was trying to keep the names of the arch ia32 compat sys calls the
> same, ie 'sys32_blah'. However, I agree a common naming scheme makes
> more sense. what about 'arch_compat_sys_blah'? So as to distinguish from
> the common compat syscalls 'compat_sys_blah'.

Hi,
I can't find my copy of the original posting... sorry about that.

Are these new SYSCALL macros just a shorthand/shortcut to cut down on typing
(and/or errors)?

The added level of indirection makes problems for scripts/kernel-doc (well, if any of
the syscalls have kernel-doc notation, that is). I'd prefer not to see 2 levels of macros
for defining a syscall, but if it has to live, please look into updating scripts/kernel-doc
also.

thanks,
--
~Randy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/