diff --git a/libc/SYSCALLS.TXT b/libc/SYSCALLS.TXT index b9bd9e772..14b990dc7 100644 --- a/libc/SYSCALLS.TXT +++ b/libc/SYSCALLS.TXT @@ -264,6 +264,7 @@ int delete_module(const char*, unsigned int) 129 int klogctl:syslog(int, char *, int) 103 int sysinfo(struct sysinfo *) 116 int personality(unsigned long) 136 +long perf_event_open(struct perf_event_attr *attr_uptr, pid_t pid, int cpu, int group_fd, unsigned long flags) 364 # futex int futex(void *, int, int, void *, void *, int) 240 diff --git a/libc/arch-arm/syscalls.mk b/libc/arch-arm/syscalls.mk index b19fb68e8..61a37d5c2 100644 --- a/libc/arch-arm/syscalls.mk +++ b/libc/arch-arm/syscalls.mk @@ -183,6 +183,7 @@ syscall_src += arch-arm/syscalls/delete_module.S syscall_src += arch-arm/syscalls/klogctl.S syscall_src += arch-arm/syscalls/sysinfo.S syscall_src += arch-arm/syscalls/personality.S +syscall_src += arch-arm/syscalls/perf_event_open.S syscall_src += arch-arm/syscalls/futex.S syscall_src += arch-arm/syscalls/epoll_create.S syscall_src += arch-arm/syscalls/epoll_ctl.S diff --git a/libc/arch-arm/syscalls/perf_event_open.S b/libc/arch-arm/syscalls/perf_event_open.S new file mode 100644 index 000000000..39710a5d3 --- /dev/null +++ b/libc/arch-arm/syscalls/perf_event_open.S @@ -0,0 +1,16 @@ +/* autogenerated by gensyscalls.py */ +#include +#include + +ENTRY(perf_event_open) + mov ip, sp + .save {r4, r5, r6, r7} + stmfd sp!, {r4, r5, r6, r7} + ldmfd ip, {r4, r5, r6} + ldr r7, =__NR_perf_event_open + swi #0 + ldmfd sp!, {r4, r5, r6, r7} + movs r0, r0 + bxpl lr + b __set_syscall_errno +END(perf_event_open) diff --git a/libc/arch-x86/syscalls.mk b/libc/arch-x86/syscalls.mk index d2ceb424f..d7362f2d0 100644 --- a/libc/arch-x86/syscalls.mk +++ b/libc/arch-x86/syscalls.mk @@ -187,6 +187,7 @@ syscall_src += arch-x86/syscalls/delete_module.S syscall_src += arch-x86/syscalls/klogctl.S syscall_src += arch-x86/syscalls/sysinfo.S syscall_src += arch-x86/syscalls/personality.S +syscall_src += arch-x86/syscalls/perf_event_open.S syscall_src += arch-x86/syscalls/futex.S syscall_src += arch-x86/syscalls/epoll_create.S syscall_src += arch-x86/syscalls/epoll_ctl.S diff --git a/libc/arch-x86/syscalls/perf_event_open.S b/libc/arch-x86/syscalls/perf_event_open.S new file mode 100644 index 000000000..5c15c5f9d --- /dev/null +++ b/libc/arch-x86/syscalls/perf_event_open.S @@ -0,0 +1,35 @@ +/* autogenerated by gensyscalls.py */ +#include + + .text + .type perf_event_open, @function + .globl perf_event_open + .align 4 + +perf_event_open: + pushl %ebx + pushl %ecx + pushl %edx + pushl %esi + pushl %edi + mov 24(%esp), %ebx + mov 28(%esp), %ecx + mov 32(%esp), %edx + mov 36(%esp), %esi + mov 40(%esp), %edi + movl $__NR_perf_event_open, %eax + int $0x80 + cmpl $-129, %eax + jb 1f + negl %eax + pushl %eax + call __set_errno + addl $4, %esp + orl $-1, %eax +1: + popl %edi + popl %esi + popl %edx + popl %ecx + popl %ebx + ret diff --git a/libc/include/sys/linux-syscalls.h b/libc/include/sys/linux-syscalls.h index 9f23054a4..c2c609dbd 100644 --- a/libc/include/sys/linux-syscalls.h +++ b/libc/include/sys/linux-syscalls.h @@ -146,6 +146,7 @@ #define __NR_syslog (__NR_SYSCALL_BASE + 103) #define __NR_sysinfo (__NR_SYSCALL_BASE + 116) #define __NR_personality (__NR_SYSCALL_BASE + 136) +#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364) #define __NR_futex (__NR_SYSCALL_BASE + 240) #define __NR_poll (__NR_SYSCALL_BASE + 168) diff --git a/libc/kernel/arch-arm/asm/unistd.h b/libc/kernel/arch-arm/asm/unistd.h index e5b89f208..94237541f 100644 --- a/libc/kernel/arch-arm/asm/unistd.h +++ b/libc/kernel/arch-arm/asm/unistd.h @@ -387,29 +387,30 @@ #define __NR_get_mempolicy (__NR_SYSCALL_BASE+320) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define __NR_set_mempolicy (__NR_SYSCALL_BASE+321) +#define __NR_perf_event_open (__NR_SYSCALL_BASE+364) #define __ARM_NR_BASE (__NR_SYSCALL_BASE+0x0f0000) #define __ARM_NR_breakpoint (__ARM_NR_BASE+1) -#define __ARM_NR_cacheflush (__ARM_NR_BASE+2) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __ARM_NR_cacheflush (__ARM_NR_BASE+2) #define __ARM_NR_usr26 (__ARM_NR_BASE+3) #define __ARM_NR_usr32 (__ARM_NR_BASE+4) #define __ARM_NR_set_tls (__ARM_NR_BASE+5) -#if defined(__ARM_EABI__) && !defined(__KERNEL__) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#if defined(__ARM_EABI__) && !defined(__KERNEL__) #undef __NR_time #undef __NR_umount #undef __NR_stime -#undef __NR_alarm /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#undef __NR_alarm #undef __NR_utime #undef __NR_getrlimit #undef __NR_select -#undef __NR_readdir /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#undef __NR_readdir #undef __NR_mmap #undef __NR_socketcall #undef __NR_syscall -#undef __NR_ipc /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#undef __NR_ipc #endif #endif diff --git a/libc/kernel/arch-x86/asm/unistd_32.h b/libc/kernel/arch-x86/asm/unistd_32.h index b8ade84dc..4536585b7 100644 --- a/libc/kernel/arch-x86/asm/unistd_32.h +++ b/libc/kernel/arch-x86/asm/unistd_32.h @@ -421,4 +421,5 @@ #define __NR_eventfd 323 #define __NR_fallocate 324 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_perf_event_open 364 #endif diff --git a/libc/kernel/common/linux/magic.h b/libc/kernel/common/linux/magic.h index 76f334c10..a878ceb6b 100644 --- a/libc/kernel/common/linux/magic.h +++ b/libc/kernel/common/linux/magic.h @@ -24,40 +24,41 @@ #define AFS_SUPER_MAGIC 0x5346414F #define AUTOFS_SUPER_MAGIC 0x0187 #define CODA_SUPER_MAGIC 0x73757245 -#define EFS_SUPER_MAGIC 0x414A53 +#define DEBUGFS_MAGIC 0x64626720 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define EFS_SUPER_MAGIC 0x414A53 #define EXT2_SUPER_MAGIC 0xEF53 #define EXT3_SUPER_MAGIC 0xEF53 #define EXT4_SUPER_MAGIC 0xEF53 -#define HPFS_SUPER_MAGIC 0xf995e849 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define HPFS_SUPER_MAGIC 0xf995e849 #define ISOFS_SUPER_MAGIC 0x9660 #define JFFS2_SUPER_MAGIC 0x72b6 #define ANON_INODE_FS_MAGIC 0x09041934 -#define MINIX_SUPER_MAGIC 0x137F /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define MINIX_SUPER_MAGIC 0x137F #define MINIX_SUPER_MAGIC2 0x138F #define MINIX2_SUPER_MAGIC 0x2468 #define MINIX2_SUPER_MAGIC2 0x2478 -#define MINIX3_SUPER_MAGIC 0x4d5a /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define MINIX3_SUPER_MAGIC 0x4d5a #define MSDOS_SUPER_MAGIC 0x4d44 #define NCP_SUPER_MAGIC 0x564c #define NFS_SUPER_MAGIC 0x6969 -#define OPENPROM_SUPER_MAGIC 0x9fa1 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define OPENPROM_SUPER_MAGIC 0x9fa1 #define PROC_SUPER_MAGIC 0x9fa0 #define QNX4_SUPER_MAGIC 0x002f #define REISERFS_SUPER_MAGIC 0x52654973 -#define REISERFS_SUPER_MAGIC_STRING "ReIsErFs" /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define REISERFS_SUPER_MAGIC_STRING "ReIsErFs" #define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs" #define REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs" #define SMB_SUPER_MAGIC 0x517B -#define USBDEVICE_SUPER_MAGIC 0x9fa2 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define USBDEVICE_SUPER_MAGIC 0x9fa2 #define CGROUP_SUPER_MAGIC 0x27e0eb #define FUTEXFS_SUPER_MAGIC 0xBAD1DEA #define INOTIFYFS_SUPER_MAGIC 0x2BAD1DEA -#endif /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif