On Mon, Aug 25, 2014 at 6:07 PM, David Miller <davem@xxxxxxxxxxxxx> wrote: > From: Alexei Starovoitov <ast@xxxxxxxxxxxx> > Date: Mon, 25 Aug 2014 18:00:56 -0700 > >> - >> +asmlinkage long sys_bpf(int cmd, unsigned long arg2, unsigned long arg3, >> + unsigned long arg4, unsigned long arg5); > > Please do not add interfaces with opaque types as arguments. > > It is impossible for the compiler to type check the args at > compile time when userspace tries to use this stuff. I share this concern. I went with single BPF syscall, because alternative is 6 syscalls for every command and more syscalls in the future when we'd need to add another command. I think type casting is much lesser evil. We already have similar muxing syscalls. It feels to me that single mux/demux syscall is easier to support, document, add new commands. Type casting, yeah, not pretty. Most users will be using wrappers similar to those I've defined in libbpf.h -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html