diff options
author | Ned Ludd <solar@gentoo.org> | 2004-12-20 00:10:51 +0000 |
---|---|---|
committer | Ned Ludd <solar@gentoo.org> | 2004-12-20 00:10:51 +0000 |
commit | d503d1d6c62506ba6fb51c04a9703039e71d11a9 (patch) | |
tree | 1d3976101fc6bfa6aa7cb28aed91d404b03c5ee5 /libc | |
parent | 1c8d7ee9cbe7483d06dab11b1333ea2eb23e60c6 (diff) |
- 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.
Diffstat (limited to 'libc')
-rw-r--r-- | libc/sysdeps/linux/common/Makefile | 9 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/mincore.c | 15 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/xattr.c | 71 |
3 files changed, 93 insertions, 2 deletions
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 - <solar@gentoo.org> + * + */ + +#include "syscalls.h" +#include <unistd.h> + +#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 - <solar@gentoo.org> + */ + +#include "syscalls.h" +#include <unistd.h> + +#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 |