From d503d1d6c62506ba6fb51c04a9703039e71d11a9 Mon Sep 17 00:00:00 2001 From: Ned Ludd Date: Mon, 20 Dec 2004 00:10:51 +0000 Subject: - Added support for 13 new syscalls to allow more things to compile when using uClibc. mincore() and the ones for Extended Attributes setxattr(), lsetxattr(), fsetxattr(), getxattr(), lgetxattr(), fgetxattr(), listxattr(), llistxattr(), flistxattr(), removexattr(), lremovexattr(), fremovexattr() which are optional. --- libc/sysdeps/linux/common/Makefile | 9 +++-- libc/sysdeps/linux/common/mincore.c | 15 ++++++++ libc/sysdeps/linux/common/xattr.c | 71 +++++++++++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 libc/sysdeps/linux/common/mincore.c create mode 100644 libc/sysdeps/linux/common/xattr.c (limited to 'libc/sysdeps') diff --git a/libc/sysdeps/linux/common/Makefile b/libc/sysdeps/linux/common/Makefile index a6be4307e..ddd015f7c 100644 --- a/libc/sysdeps/linux/common/Makefile +++ b/libc/sysdeps/linux/common/Makefile @@ -32,8 +32,8 @@ CSRC= __rt_sigtimedwait.c __socketcall.c __syscall_fcntl.c \ getpgid.c getpgrp.c getpid.c getppid.c getpriority.c getresgid.c \ getresuid.c getrlimit.c getrlimit64.c getrusage.c getsid.c \ gettimeofday.c getuid.c init_module.c ioctl.c ioperm.c iopl.c \ - kill.c klogctl.c lchown.c link.c llseek.c longjmp.c lseek.c \ - lstat.c lstat64.c madvise.c mkdir.c mkfifo.c mknod.c mlock.c \ + kill.c klogctl.c lchown.c link.c llseek.c longjmp.c lseek.c lstat.c \ + lstat64.c madvise.c mkdir.c mkfifo.c mincore.c mknod.c mlock.c \ mlockall.c mmap.c mmap64.c modify_ldt.c mount.c mprotect.c \ mremap.c msync.c munlock.c munlockall.c munmap.c nanosleep.c \ nice.c noophooks.c ntp_gettime.c open.c open64.c pause.c \ @@ -60,6 +60,11 @@ endif ifeq ($(strip $(UCLIBC_PROPOLICE)),y) CSRC+=ssp.c endif + +ifeq ($(strip $(UCLIBC_XATTR)),y) +CSRC+=xattr.c +endif + COBJS=$(patsubst %.c,%.o, $(CSRC)) OBJ=$(COBJS) $(MOBJ) diff --git a/libc/sysdeps/linux/common/mincore.c b/libc/sysdeps/linux/common/mincore.c new file mode 100644 index 000000000..ecae441a5 --- /dev/null +++ b/libc/sysdeps/linux/common/mincore.c @@ -0,0 +1,15 @@ +/* + * Distributed under the terms of the GNU General Public License v2 + * $Header: /var/cvs/uClibc/libc/sysdeps/linux/common/mincore.c,v 1.1 2004/12/20 00:10:51 solar Exp $ + * + * This file provides the mincore() system call to uClibc. + * 20041215 - + * + */ + +#include "syscalls.h" +#include + +#ifdef __NR_mincore +_syscall3(int, mincore, void *, start, size_t, length, unsigned char *, vec); +#endif diff --git a/libc/sysdeps/linux/common/xattr.c b/libc/sysdeps/linux/common/xattr.c new file mode 100644 index 000000000..c5aa69be3 --- /dev/null +++ b/libc/sysdeps/linux/common/xattr.c @@ -0,0 +1,71 @@ +/* + * Distributed under the terms of the GNU General Public License v2 + * $Header: /var/cvs/uClibc/libc/sysdeps/linux/common/xattr.c,v 1.1 2004/12/20 00:10:51 solar Exp $ + * + * This file provides the following Extended Attribute system calls to uClibc. + * + * setxattr(), lsetxattr(), fsetxattr(), + * getxattr(), lgetxattr(), fgetxattr(), + * listxattr(), llistxattr(), flistxattr(), + * removexattr(), lremovexattr(), fremovexattr() + * + * 20041215 - + */ + +#include "syscalls.h" +#include + +#ifdef __NR_setxattr +_syscall5(int, setxattr, const char *, path, const char *, name, const void *, + value, size_t, size, int, flags); +#endif + +#ifdef __NR_lsetxattr +_syscall5(int, lsetxattr, const char *, path, const char *, name, const void *, + value, size_t, size, int, flags); +#endif + +#ifdef __NR_fsetxattr +_syscall5(int, fsetxattr, int, filedes, const char *, name, const void *, + value, size_t, size, int, flags); +#endif + +#ifdef __NR_getxattr +_syscall4(ssize_t, getxattr, const char *, path, const char *, name, + void *, value, size_t, size); +#endif + +#ifdef __NR_lgetxattr +_syscall4(ssize_t, lgetxattr, const char *, path, const char *, name, void *, + value, size_t, size); +#endif + +#ifdef __NR_fgetxattr +_syscall4(ssize_t, fgetxattr, int, filedes, const char *, name, void *, value, + size_t, size); +#endif + +#ifdef __NR_listxattr +_syscall3(ssize_t, listxattr, const char *, path, char *, list, size_t, size); +#endif + +#ifdef __NR_llistxattr +_syscall3(ssize_t, llistxattr, const char *, path, char *, list, size_t, + size); +#endif + +#ifdef __NR_flistxattr +_syscall3(size_t, flistxattr, int, filedes, char *, list, size_t, size); +#endif + +#ifdef __NR_removexattr +_syscall2(int, removexattr, const char *, path, const char *, name); +#endif + +#ifdef __NR_lremovexattr +_syscall2(int, lremovexattr, const char *, path, const char *, name); +#endif + +#ifdef __NR_fremovexattr +_syscall2(int, fremovexattr, int, filedes, const char *, name); +#endif -- cgit v1.2.3