aef5e14ba29976949961084ddaabb703df688dd7 |
29-Dec-2015 |
Dmitry V. Levin <ldv@altlinux.org> |
Set SYSCALL_NEVER_FAILS flag for getpid, getppid and gettid syscall * linux/*/syscallent*.h (getpid, getppid, gettid): Set NF flag.
yscallent.h
|
dd039b74efd2b7ecb499a122e05465783716d577 |
28-Dec-2015 |
Dmitry V. Levin <ldv@altlinux.org> |
Set SYSCALL_NEVER_FAILS flag for umask syscall Linux kernel always ANDs umask argument with 0700 and therefore this syscall never fails. * linux/*/syscallent*.h (umask): Set NF flag.
yscallent.h
|
ffb6c55d7d52b22a526e58815770b09a2994d856 |
25-Dec-2015 |
Dmitry V. Levin <ldv@altlinux.org> |
Set SYSCALL_NEVER_FAILS flag for personality syscall Starting with commit v2.6.29-6609-g11d06b2a1e5658f448a308aa3beb97bacd64a940, personality syscall never fails to set the personality, but before commit v2.6.35-rc1-372-g485d527 it still could return an error. Starting with that commit, personality syscall never returns an error. * linux/*/syscallent.h: Set SYSCALL_NEVER_FAILS flag in personality syscall entries.
yscallent.h
|
dd1a80c8d213eed95fe55b7ebcb07ee165dd8e4b |
24-Dec-2015 |
Dmitry V. Levin <ldv@altlinux.org> |
arc, metag, nios2, or1k, tile: fix build Fix build regression introduced by commit 34683e3926d8c2daa368afb805da422ee7043396. * linux/32/syscallent.h: Add sys_ prefix to ARCH_mmap and mmap. * linux/arc/syscallent.h: Add sys_ prefix to ARCH_mmap and mmap_pgoff. * linux/nios2/syscallent.h: Likewise. * linux/or1k/syscallent.h: Likewise. * linux/tile/syscallent1.h: Add sys_ prefix to ARCH_mmap and sys_mmap_4koff. * pathtrace.c (pathtrace_match): Handle SEN_ARCH_mmap. * NEWS: Mention this build fix. Reported-by: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
yscallent.h
|
211d6ef4b673673fe24060b18ca582b9e68fffbb |
04-Dec-2015 |
Elvira Khabirova <lineprinter0@gmail.com> |
fcntl: create a separate parser for fcntl64 syscall * fcntl.c(print_fcntl): New function, made from SYS_FUNC(fcntl). (SYS_FUNC(fcntl), SYS_FUNC(fcntl64)): Use it. * linux/32/syscallent.h: Change parser of fcntl64 to SEN(fcntl64). * linux/arm/syscallent.h: Likewise. * linux/avr32/syscallent.h: Likewise. * linux/bfin/syscallent.h: Likewise. * linux/hppa/syscallent.h: Likewise. * linux/i386/syscallent.h: Likewise. * linux/m68k/syscallent.h: Likewise. * linux/microblaze/syscallent.h: Likewise. * linux/mips/syscallent-n32.h: Likewise. * linux/mips/syscallent-o32.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * linux/s390/syscallent.h: Likewise. * linux/sh/syscallent.h: Likewise. * linux/sh64/syscallent.h: Likewise. * linux/sparc/syscallent.h: Likewise. * linux/xtensa/syscallent.h: Likewise.
yscallent.h
|
401d4bd6015253f4d4eaabe8a97bcef6deb57b76 |
15-Nov-2015 |
Dmitry V. Levin <ldv@altlinux.org> |
Wire up userfaultfd, membarrier, and mlock2 syscalls * linux/dummy.h (membarrier, mlock2, userfaultfd): New stub aliases. * linux/32/syscallent.h (userfaultfd, membarrier, mlock2): New entries. * linux/64/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/arm/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/hppa/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/i386/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/ia64/syscallent.h (userfaultfd, membarrier): Likewise. * linux/m68k/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/microblaze/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/mips/syscallent-n32.h (userfaultfd, membarrier, mlock2): Likewise. * linux/mips/syscallent-n64.h (userfaultfd, membarrier, mlock2): Likewise. * linux/mips/syscallent-o32.h (userfaultfd, membarrier, mlock2): Likewise. * linux/powerpc/syscallent.h (userfaultfd, membarrier): Likewise. * linux/s390/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/s390x/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/sparc/syscallent.h (membarrier, userfaultfd, mlock2): Likewise. * linux/x32/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/x86_64/syscallent.h (userfaultfd, membarrier, mlock2): Likewise.
yscallent.h
|
140ecf876686d49085c6eb3a2306e2ea6ea641bc |
10-Jul-2015 |
Elvira Khabirova <lineprinter0@gmail.com> |
Introduce SEN macro * syscall.c (SEN): New temporary macro. * linux/dummy.h (sys_printargs): New macro. * linux/subcall.h: Wrap all sys_func entries using SEN. * linux/*/syscallent*.h: Likewise.
yscallent.h
|
8c20d8926c0ec14d2b08acdf775050d4d99210d3 |
21-May-2015 |
Dmitry V. Levin <ldv@altlinux.org> |
Fix ioctl entries on 32-bit architectures with 64-bit aligned structures Some ioctl constants are defined to different values on those 32-bit architectures where structures containing a 64-bit field are aligned on a 8-byte boundary and have a size multiple of 8 bytes, and on other 32-bit architectures. * configure.ac: Check the size of a structure containing a 64-bit field. * linux/32/ioctls_inc.h: Rename to ... * linux/32/ioctls_inc_align32.h: ... this. * linux/32/ioctls_inc_align64.h: New file. * linux/32/ioctls_inc.h: Include either 32/ioctls_inc_align32.h or ioctls_inc_align64.h depending on SIZEOF_STRUCT_I64_I32. * Makefile.am (EXTRA_DIST): Add linux/32/ioctls_inc_align32.h and * linux/32/ioctls_inc_align64.h. * tests/ioctl.c (main): Test for VIDIOC_ENUMINPUT. * tests/ioctl.expected: Check VIDIOC_ENUMINPUT decoding. Reported-by: Philippe De Muyter <phdm@macqel.be>
octls_inc.h
octls_inc_align32.h
octls_inc_align64.h
|
df7aa2b19e6f69c19fbe09180bf1ec4fb52e2615 |
19-Jan-2015 |
Dmitry V. Levin <ldv@altlinux.org> |
ioctl: take all 32 bits of ioctl commands into account Historically, only 16 bits (8-bit number and 8-bit type) of 32-bit ioctl commands were used for decoding, which was the source for numerous annoying collisions like this: ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 ioctl(0, MGSL_IOCGPARAMS or MMTIMER_GETRES or MTIOCTOP or SNDCTL_MIDI_MPUMODE, 0x7fffd47f7338) = -1 ENOTTY (Inappropriate ioctl for device) The solution is to use all 32 bits for decoding, not just "number" and "type", but also "size" and "direction". As some architectures override defaults that come from asm-generic/ and provide alternative definitions for some ioctl commands, we support per-architecture ioctl definitions and merge them with common definitions at build time. During the merge, we used to keep both generic and architecture-specific definitions, now architecture-specific definitions have precedence over generic ones -- ioctlsort omits definitions from asm-generic/ for those ioctl names that have different definitions in asm/. Additional bits of "direction" are architecture specific -- the number of bits and their values differ between architectures. To reduce architecture differences in the source code, we keep "direction" in symbolic form and compile it in ioctlsort. Additional bits of "size" are also architecture specific -- not only the number of bits differ between architectures, but sizes of many types depend on sizeof(long). To reduce architecture differences in the source code, we keep 32-bit and 64-bit versions of common ioctl definitions, and use the appropriate version for each architecture and personality. To implement this, the tools for generating ioctl definitions from kernel headers have been rewritten, and the source format of ioctl definitions has been extended. The final ioctlent*.h files that are included by syscall.c are now generated from source ioctls_inc*.h and ioctls_arch*.h files at build time with ioctlsort. * ioctl.c (ioctl_lookup): Use all 32 bits of ioctl command code. * ioctlsort.c: Rewritten. * linux/32/ioctls_inc.h: New file. * linux/64/ioctls_inc.h: New file. * linux/aarch64/ioctls_arch0.h: New file. * linux/aarch64/ioctls_arch1.h: New file. * linux/aarch64/ioctls_inc0.h: New file. * linux/aarch64/ioctls_inc1.h: New file. * linux/alpha/ioctls_arch0.h: New file. * linux/alpha/ioctls_inc0.h: New file. * linux/arc/ioctls_arch0.h: New file. * linux/arc/ioctls_inc0.h: New file. * linux/arm/ioctls_arch0.h: New file. * linux/arm/ioctls_inc0.h: New file. * linux/avr32/ioctls_arch0.h: New file. * linux/avr32/ioctls_inc0.h: New file. * linux/bfin/ioctls_arch0.h: New file. * linux/bfin/ioctls_inc0.h: New file. * linux/hppa/ioctls_arch0.h: New file. * linux/hppa/ioctls_inc0.h: New file. * linux/i386/ioctls_arch0.h: New file. * linux/i386/ioctls_inc0.h: New file. * linux/ia64/ioctls_arch0.h: New file. * linux/ia64/ioctls_inc0.h: New file. * linux/m68k/ioctls_arch0.h: New file. * linux/m68k/ioctls_inc0.h: New file. * linux/metag/ioctls_arch0.h: New file. * linux/metag/ioctls_inc0.h: New file. * linux/microblaze/ioctls_arch0.h: New file. * linux/microblaze/ioctls_inc0.h: New file. * linux/mips/ioctls_arch0.h: New file. * linux/mips/ioctls_inc0.h: New file. * linux/or1k/ioctls_arch0.h: New file. * linux/or1k/ioctls_inc0.h: New file. * linux/powerpc/ioctls_arch0.h: New file. * linux/powerpc/ioctls_inc0.h: New file. * linux/powerpc64/ioctls_arch0.h: New file. * linux/powerpc64/ioctls_arch1.h: New file. * linux/powerpc64/ioctls_inc0.h: New file. * linux/powerpc64/ioctls_inc1.h: New file. * linux/s390/ioctls_arch0.h: New file. * linux/s390/ioctls_inc0.h: New file. * linux/s390x/ioctls_arch0.h: New file. * linux/s390x/ioctls_inc0.h: New file. * linux/sh/ioctls_arch0.h: New file. * linux/sh/ioctls_inc0.h: New file. * linux/sh64/ioctls_arch0.h: New file. * linux/sh64/ioctls_inc0.h: New file. * linux/sparc/ioctls_arch0.h: New file. * linux/sparc/ioctls_inc0.h: New file. * linux/sparc64/ioctls_arch0.h: New file. * linux/sparc64/ioctls_arch2.h: New file. * linux/sparc64/ioctls_inc0.h: New file. * linux/sparc64/ioctls_inc2.h: New file. * linux/tile/ioctls_arch0.h: New file. * linux/tile/ioctls_arch1.h: New file. * linux/tile/ioctls_inc0.h: New file. * linux/tile/ioctls_inc1.h: New file. * linux/x32/ioctls_arch0.h: New file. * linux/x32/ioctls_arch1.h: New file. * linux/x32/ioctls_inc0.h: New file. * linux/x32/ioctls_inc1.h: New file. * linux/x86_64/ioctls_arch0.h: New file. * linux/x86_64/ioctls_arch1.h: New file. * linux/x86_64/ioctls_inc0.h: New file. * linux/x86_64/ioctls_inc1.h: New file. * linux/xtensa/ioctls_arch0.h: New file. * linux/xtensa/ioctls_inc0.h: New file. * linux/aarch64/ioctlent.h.in: Remove. * linux/aarch64/ioctlent1.h: Remove. * linux/alpha/ioctlent.h.in: Remove. * linux/arc/ioctlent.h.in: Remove. * linux/arm/ioctlent.h.in: Remove. * linux/avr32/ioctlent.h.in: Remove. * linux/bfin/ioctlent.h.in: Remove. * linux/hppa/ioctlent.h.in: Remove. * linux/i386/ioctlent.h.in: Remove. * linux/ia64/ioctlent.h.in: Remove. * linux/ioctlent.h.in: Remove. * linux/ioctlent.sh: Remove. * linux/m68k/ioctlent.h.in: Remove. * linux/metag/ioctlent.h.in: Remove. * linux/microblaze/ioctlent.h.in: Remove. * linux/mips/ioctlent.h.in: Remove. * linux/mips/ioctlent.sh: Remove. * linux/or1k/ioctlent.h.in: Remove. * linux/powerpc/ioctlent.h.in: Remove. * linux/powerpc64/ioctlent.h: Remove. * linux/powerpc64/ioctlent1.h: Remove. * linux/s390/ioctlent.h.in: Remove. * linux/s390x/ioctlent.h.in: Remove. * linux/sh/ioctlent.h.in: Remove. * linux/sh64/ioctlent.h.in: Remove. * linux/sparc/ioctlent.h.in: Remove. * linux/sparc64/ioctlent.h.in: Remove. * linux/sparc64/ioctlent2.h: Remove. * linux/tile/ioctlent.h.in: Remove. * linux/tile/ioctlent1.h: Remove. * linux/x32/ioctlent.h.in: Remove. * linux/x32/ioctlent1.h: Remove. * linux/x86_64/ioctlent.h.in: Remove. * linux/x86_64/ioctlent1.h: Remove. * linux/xtensa/ioctlent.h.in: Remove. * linux/x86_64/ioctlent2.h: Include ioctlent0.h instead of ioctlent.h. * syscall.c (struct_ioctlent ioctlent0): Likewise. * Makefile.am: Remove all ioctlent-related definitions. Define the list of ioctlent*.h files that have to be generated by presence of $(srcdir)/$(OS)/$(ARCH)/ioctls_inc*.h files. Add rules for ioctlent*.h files generation. (EXTRA_DIST): Update. * maint/ioctls_gen.sh: New file. * maint/ioctls_hex.sh: New file. * maint/ioctls_sym.sh: New file. * maint/print_ioctlent.c: New file. * HACKING-scripts: Update for ioctlent.sh -> ioctls_gen.sh migration. * .gitignore: Add ioctlent[012].h and ioctls_all[012].h. * configure.ac (AC_CHECK_HEADERS): Add linux/hiddev.h and linux/mmtimer.h for tests. * tests/ioctl.c: New file. * tests/ioctl.test: New test. * tests/Makefile.am (check_PROGRAMS): Add ioctl. (TESTS): Add ioctl.test. * tests/.gitignore: Add ioctl.
octls_inc.h
|
e78f02a16648554e87533eabb6c50f0a9a30ddf8 |
12-Jan-2015 |
Dmitry V. Levin <ldv@altlinux.org> |
Wire up new syscalls * linux/dummy.h (sys_bpf, sys_execveat, sys_getrandom, sys_kexec_file_load, sys_memfd_create, sys_seccomp): New stub aliases. * linux/32/syscallent.h (seccomp, getrandom, memfd_create, bpf, execveat): New entries. * linux/64/syscallent.h: Likewise. * linux/arm/syscallent.h: Likewise. * linux/hppa/syscallent.h: Likewise. * linux/i386/syscallent.h: Likewise. * linux/microblaze/syscallent.h: Likewise. * linux/mips/syscallent-n32.h: Likewise. * linux/mips/syscallent-n64.h: Likewise. * linux/mips/syscallent-o32.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * linux/sparc/syscallent.h: Likewise. * linux/ia64/syscallent.h (getrandom, memfd_create, bpf, execveat): New entries. * linux/m68k/syscallent.h: Likewise. * linux/s390/syscallent.h: (seccomp, getrandom, memfd_create, bpf, s390_pci_mmio_write, s390_pci_mmio_read, execveat): New entries. * linux/s390x/syscallent.h: Likewise. * linux/x86_64/syscallent.h (seccomp, getrandom, memfd_create, kexec_file_load, bpf, execveat): New entries. * linux/x32/syscallent.h: Likewise. * linux/xtensa/syscallent.h (seccomp, getrandom, memfd_create): New entries.
yscallent.h
|
dee03a3c242e2108f50bce17ef68f70f8ddc3d60 |
11-Jan-2015 |
Dmitry V. Levin <ldv@altlinux.org> |
Create generic 32-bit syscallent.h Since arc/syscallent.h, metag/syscallent.h, or1k/syscallent.h, and tile/syscallent1.h share a lot of identical syscall entries described in <asm-generic/unistd.h>, move these entries to a new file 32/syscallent.h using the following automated conversion with subsequent correction of whitespace indentation: sed -e 's|^[[:space:]]*\({[^}]\+},\)[[:space:]]*/\*[[:space:]]\([[:space:]]*[0-9]\+\)[[:space:]]*\*/|[\2] = \1|' -e '/^[[:space:]]*\[[[:space:]]*2\(4[4-9]\|5[0-9]\)/d' linux/arc/syscallent.h * linux/32/syscallent.h: New file. * Makefile.am (EXTRA_DIST): Add it. * linux/arc/syscallent.h: Include "32/syscallent.h", remove generic 32-bit syscall entries, use designated initializers. * linux/metag/syscallent.h: Likewise. * linux/or1k/syscallent.h: Likewise. * linux/tile/syscallent1.h: Likewise.
yscallent.h
|