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:

> +#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.

> +#define __INTERNAL_SYSCALL_NARGS_X(a, b, c, d, e, f, g, h, n, ...) n
> +#define __INTERNAL_SYSCALL_NARGS(...) \
> +  __INTERNAL_SYSCALL_NARGS_X (__VA_ARGS__, 7, 6, 5, 4, 3, 2, 1, 0, )
> +#define __INTERNAL_SYSCALL_CONCAT_X(a, b) a##b
> +#define __INTERNAL_SYSCALL_CONCAT(a, b)   __SYSCALL_CONCAT_X (a, b)

I think you can reuse the macros from sysdeps/unix/sysdep.h here.

> +/* Issue a syscall defined by syscall number plus any other argument required.

These comment lines are rather long.

> +   Any error will be handled using arch defined macros and errno will be se
> +   accordingly.

“will be set”


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