This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 1/4] Add INTERNAL_SYSCALL_CALL


* Adhemerval Zanella:

> On 20/09/2016 18:36, Florian Weimer wrote:
>> * Adhemerval Zanella:
>> 
>>> +#define __INTERNAL_SYSCALL0(name, err) \
>>> +  INTERNAL_SYSCALL (name, err, 0)
>>> +#define __INTERNAL_SYSCALL1(name, err, a1) \
>>> +  INTERNAL_SYSCALL (name, err, 1, a1)
>>> +#define __INTERNAL_SYSCALL2(name, err, a1, a2) \
>>> +  INTERNAL_SYSCALL (name, err, 2, a1, a2)
>>> +#define __INTERNAL_SYSCALL3(name, err, a1, a2, a3) \
>>> +  INTERNAL_SYSCALL (name, err, 3, a1, a2, a3)
>>> +#define __INTERNAL_SYSCALL4(name, err, a1, a2, a3, a4) \
>>> +  INTERNAL_SYSCALL (name, err, 4, a1, a2, a3, a4)
>>> +#define __INTERNAL_SYSCALL5(name, err, a1, a2, a3, a4, a5) \
>>> +  INTERNAL_SYSCALL (name, err, 5, a1, a2, a3, a4, a5)
>>> +#define __INTERNAL_SYSCALL6(name, err, a1, a2, a3, a4, a5, a6) \
>>> +  INTERNAL_SYSCALL (name, err, 6, a1, a2, a3, a4, a5, a6)
>>> +#define __INTERNAL_SYSCALL7(name, err, a1, a2, a3, a4, a5, a6, a7) \
>>> +  INTERNAL_SYSCALL (name, err, 7, a1, a2, a3, a4, a5, a6, a7)
>> 
>> It's not immediately obvious why these definitions are needed.
>
> I agree this is not obvious, but it follows the SYSCALL_CANCEL macro logic
> where __INTERNAL_SYSCALL_DISP will select the correct __INTERNAL_SYSCALL
> (based on number of arguments).

Is there anything that overrides inidivdual __INTERNAL_SYSCALLx
macros?

What I mean is this:  Why can't this

+#define __INTERNAL_SYSCALL_DISP(b,err,...) \
+  __INTERNAL_SYSCALL_CONCAT (b, __SYSCALL_NARGS (__VA_ARGS__)) \
+			    (err, __VA_ARGS__)

turn into

+#define __INTERNAL_SYSCALL_DISP(b,err,...) \
+  INTERNAL_SYSCALL (b, err, __SYSCALL_NARGS (__VA_ARGS__), __VA_ARGS__)

?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]