public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] export syscalls
@ 2001-10-25 17:23 Christoph Hellwig
  0 siblings, 0 replies; 4+ messages in thread
From: Christoph Hellwig @ 2001-10-25 17:23 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel

Hi Linus,

the appended patch exports the syscalls (GPL-limited), this is needed
for the Linux-ABI modules so they can use the syscalls in their
syscall tables for non-Linux personalities.

Please apply,

	Christoph

-- 
Of course it doesn't work. We've performed a software upgrade.

diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/include/asm-alpha/syscall.h linux-2.4.14-pre1/include/asm-alpha/syscall.h
--- ../master/linux-2.4.14-pre1/include/asm-alpha/syscall.h	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/include/asm-alpha/syscall.h	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,8 @@
+#ifndef _ASM_SYSCALL_H
+#define _ASM_SYSCALL_H
+
+/*
+ * Prototypes for architecture-specific Linux syscalls.
+ */
+
+#endif /* _ASM_SYSCALL_H */
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/include/asm-arm/syscall.h linux-2.4.14-pre1/include/asm-arm/syscall.h
--- ../master/linux-2.4.14-pre1/include/asm-arm/syscall.h	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/include/asm-arm/syscall.h	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,8 @@
+#ifndef _ASM_SYSCALL_H
+#define _ASM_SYSCALL_H
+
+/*
+ * Prototypes for architecture-specific Linux syscalls.
+ */
+
+#endif /* _ASM_SYSCALL_H */
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/include/asm-cris/syscall.h linux-2.4.14-pre1/include/asm-cris/syscall.h
--- ../master/linux-2.4.14-pre1/include/asm-cris/syscall.h	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/include/asm-cris/syscall.h	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,8 @@
+#ifndef _ASM_SYSCALL_H
+#define _ASM_SYSCALL_H
+
+/*
+ * Prototypes for architecture-specific Linux syscalls.
+ */
+
+#endif /* _ASM_SYSCALL_H */
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/include/asm-i386/syscall.h linux-2.4.14-pre1/include/asm-i386/syscall.h
--- ../master/linux-2.4.14-pre1/include/asm-i386/syscall.h	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/include/asm-i386/syscall.h	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,31 @@
+#ifndef _ASM_SYSCALL_H
+#define _ASM_SYSCALL_H
+
+/*
+ * Prototypes for architecture-specific Linux syscalls.
+ */
+
+#include <linux/sched.h>	/* struct pt_regs */
+#include <asm/signal.h>		/* old_sigset_t */
+
+
+/* arch/i386/kernel/ldt.c */
+extern asmlinkage int	sys_modify_ldt(int, void *, unsigned long);
+
+/* arch/i386/kernel/process.c */
+extern asmlinkage int	sys_fork(struct pt_regs regs);                                                      
+
+/* arch/i386/kernel/ptrace.c */
+extern asmlinkage int	sys_ptrace(long request, long pid,
+				long addr, long data);
+
+/* arch/i386/kernel/signal.c */
+extern int		sigsuspend1(struct pt_regs *regs, old_sigset_t mask);
+
+/* arch/i386/kernel/sys_i386.c */
+extern asmlinkage int	sys_ipc(uint call, int first, int second,
+				int third, void *ptr, long fifth);
+extern asmlinkage int	sys_pause(void);
+extern asmlinkage int	sys_pipe(unsigned long * fildes);
+
+#endif /* _ASM_SYSCALL_H */
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/include/asm-ia64/syscall.h linux-2.4.14-pre1/include/asm-ia64/syscall.h
--- ../master/linux-2.4.14-pre1/include/asm-ia64/syscall.h	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/include/asm-ia64/syscall.h	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,8 @@
+#ifndef _ASM_SYSCALL_H
+#define _ASM_SYSCALL_H
+
+/*
+ * Prototypes for architecture-specific Linux syscalls.
+ */
+
+#endif /* _ASM_SYSCALL_H */
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/include/asm-m68k/syscall.h linux-2.4.14-pre1/include/asm-m68k/syscall.h
--- ../master/linux-2.4.14-pre1/include/asm-m68k/syscall.h	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/include/asm-m68k/syscall.h	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,8 @@
+#ifndef _ASM_SYSCALL_H
+#define _ASM_SYSCALL_H
+
+/*
+ * Prototypes for architecture-specific Linux syscalls.
+ */
+
+#endif /* _ASM_SYSCALL_H */
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/include/asm-mips/syscall.h linux-2.4.14-pre1/include/asm-mips/syscall.h
--- ../master/linux-2.4.14-pre1/include/asm-mips/syscall.h	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/include/asm-mips/syscall.h	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,8 @@
+#ifndef _ASM_SYSCALL_H
+#define _ASM_SYSCALL_H
+
+/*
+ * Prototypes for architecture-specific Linux syscalls.
+ */
+
+#endif /* _ASM_SYSCALL_H */
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/include/asm-mips64/syscall.h linux-2.4.14-pre1/include/asm-mips64/syscall.h
--- ../master/linux-2.4.14-pre1/include/asm-mips64/syscall.h	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/include/asm-mips64/syscall.h	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,8 @@
+#ifndef _ASM_SYSCALL_H
+#define _ASM_SYSCALL_H
+
+/*
+ * Prototypes for architecture-specific Linux syscalls.
+ */
+
+#endif /* _ASM_SYSCALL_H */
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/include/asm-parisc/syscall.h linux-2.4.14-pre1/include/asm-parisc/syscall.h
--- ../master/linux-2.4.14-pre1/include/asm-parisc/syscall.h	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/include/asm-parisc/syscall.h	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,8 @@
+#ifndef _ASM_SYSCALL_H
+#define _ASM_SYSCALL_H
+
+/*
+ * Prototypes for architecture-specific Linux syscalls.
+ */
+
+#endif /* _ASM_SYSCALL_H */
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/include/asm-ppc/syscall.h linux-2.4.14-pre1/include/asm-ppc/syscall.h
--- ../master/linux-2.4.14-pre1/include/asm-ppc/syscall.h	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/include/asm-ppc/syscall.h	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,8 @@
+#ifndef _ASM_SYSCALL_H
+#define _ASM_SYSCALL_H
+
+/*
+ * Prototypes for architecture-specific Linux syscalls.
+ */
+
+#endif /* _ASM_SYSCALL_H */
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/include/asm-s390/syscall.h linux-2.4.14-pre1/include/asm-s390/syscall.h
--- ../master/linux-2.4.14-pre1/include/asm-s390/syscall.h	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/include/asm-s390/syscall.h	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,8 @@
+#ifndef _ASM_SYSCALL_H
+#define _ASM_SYSCALL_H
+
+/*
+ * Prototypes for architecture-specific Linux syscalls.
+ */
+
+#endif /* _ASM_SYSCALL_H */
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/include/asm-s390x/syscall.h linux-2.4.14-pre1/include/asm-s390x/syscall.h
--- ../master/linux-2.4.14-pre1/include/asm-s390x/syscall.h	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/include/asm-s390x/syscall.h	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,8 @@
+#ifndef _ASM_SYSCALL_H
+#define _ASM_SYSCALL_H
+
+/*
+ * Prototypes for architecture-specific Linux syscalls.
+ */
+
+#endif /* _ASM_SYSCALL_H */
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/include/asm-sh/syscall.h linux-2.4.14-pre1/include/asm-sh/syscall.h
--- ../master/linux-2.4.14-pre1/include/asm-sh/syscall.h	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/include/asm-sh/syscall.h	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,8 @@
+#ifndef _ASM_SYSCALL_H
+#define _ASM_SYSCALL_H
+
+/*
+ * Prototypes for architecture-specific Linux syscalls.
+ */
+
+#endif /* _ASM_SYSCALL_H */
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/include/asm-sparc/syscall.h linux-2.4.14-pre1/include/asm-sparc/syscall.h
--- ../master/linux-2.4.14-pre1/include/asm-sparc/syscall.h	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/include/asm-sparc/syscall.h	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,8 @@
+#ifndef _ASM_SYSCALL_H
+#define _ASM_SYSCALL_H
+
+/*
+ * Prototypes for architecture-specific Linux syscalls.
+ */
+
+#endif /* _ASM_SYSCALL_H */
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/include/asm-sparc64/syscall.h linux-2.4.14-pre1/include/asm-sparc64/syscall.h
--- ../master/linux-2.4.14-pre1/include/asm-sparc64/syscall.h	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/include/asm-sparc64/syscall.h	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,8 @@
+#ifndef _ASM_SYSCALL_H
+#define _ASM_SYSCALL_H
+
+/*
+ * Prototypes for architecture-specific Linux syscalls.
+ */
+
+#endif /* _ASM_SYSCALL_H */
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/include/linux/syscall.h linux-2.4.14-pre1/include/linux/syscall.h
--- ../master/linux-2.4.14-pre1/include/linux/syscall.h	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/include/linux/syscall.h	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,177 @@
+#ifndef _LINUX_SYSCALL_H
+#define _LINUX_SYSCALL_H
+
+/*
+ * Prototypes for Linux syscalls.
+ *
+ * Maybe this could be automatically generated from some kind of
+ * master file (like BSD's syscalls.master), so it is always coherent
+ * to the actual syscalls (which may as well be arch-specific).
+ */
+
+#include <asm/syscall.h>
+
+struct itimerval;
+struct msghdr;
+struct pollfd;
+struct rlimit;
+struct timespec;
+struct timeval;
+struct timezone;
+struct sigaction;
+struct sockaddr;
+struct statfs;
+
+
+/* fs/exec.c */
+extern asmlinkage long	sys_uselib(const char * library);
+
+/* fs/fcntl.c */
+extern asmlinkage long	sys_dup2(unsigned int oldfd, unsigned int newfd);
+extern asmlinkage long	sys_fcntl(unsigned int fd, unsigned int cmd,
+				unsigned long arg);
+
+/* fs/ioctl.c */
+extern asmlinkage long	sys_ioctl(unsigned int fd, unsigned int cmd, void *);
+
+/* fs/namei.c */
+extern asmlinkage long	sys_mkdir(const char * pathname, int mode);
+extern asmlinkage long	sys_mknod(const char * filename, int mode, dev_t dev);
+extern asmlinkage long	sys_rename(const char * oldname, const char * newname);
+
+/* fs/open.c */
+extern asmlinkage long	sys_access(const char * filename, int mode);                              
+extern asmlinkage long	sys_open(const char * filename, int flags, int mode);
+extern asmlinkage long	sys_statfs(const char * path, struct statfs * buf);
+extern asmlinkage long	sys_fstatfs(unsigned int fd, struct statfs * buf);
+extern asmlinkage long	sys_ftruncate(unsigned int fd, unsigned long length);
+extern asmlinkage long	sys_ftruncate64(unsigned int fd, loff_t length);
+extern asmlinkage long	sys_truncate64(const char * path, loff_t length);
+extern asmlinkage long	sys_truncate64(const char * path, loff_t length);
+
+/* fs/read_write.c */
+extern asmlinkage off_t	sys_lseek(unsigned int fd, off_t offset,
+				unsigned int origin);
+extern asmlinkage long	sys_llseek(unsigned int fd, unsigned long offset_high,
+				unsigned long offset_low, loff_t * result,
+				unsigned int origin);
+extern asmlinkage ssize_t sys_read(unsigned int fd, char * buf, size_t count);
+extern asmlinkage ssize_t sys_pread(unsigned int fd, char * buf,
+				size_t count, loff_t pos);
+extern asmlinkage ssize_t sys_pwrite(unsigned int fd, const char * buf,
+				size_t count, loff_t pos);
+
+/* fs/readdir.c */
+extern asmlinkage int	old_readdir(unsigned int fd, void * dirent,
+				unsigned int count);
+
+/* fs/select.c */
+extern asmlinkage long	sys_poll(struct pollfd * ufds, unsigned int nfds,
+				long timeout);
+extern asmlinkage int	sys_select(int, fd_set *, fd_set *, fd_set *,
+				struct timeval *);
+
+/* fs/stat.c */
+extern asmlinkage long	sys_readlink(const char * path, char * buf,
+				int bufsiz);
+
+/* fs/super.c */
+extern asmlinkage long	sys_sysfs(int option, unsigned long arg1,
+				unsigned long arg2);
+
+/* kernel/exit.c */
+extern asmlinkage long	sys_exit(int error_code);
+
+/* kernel/itimer.c */
+extern asmlinkage long	sys_getitimer(int which, struct itimerval *value);
+extern asmlinkage long	sys_setitimer(int which, struct itimerval *value,
+				struct itimerval *ovalue);
+
+/* kernel/time.c */
+extern asmlinkage long	sys_gettimeofday(struct timeval *tv,
+				struct timezone *tz);
+extern asmlinkage long	sys_settimeofday(struct timeval *tv,
+				struct timezone *tz);
+extern asmlinkage long	sys_stime(int * tptr);
+extern asmlinkage long	sys_time(int * tloc);
+
+/* kernel/timer.c */
+extern asmlinkage long	sys_nanosleep(struct timespec *rqtp,
+				struct timespec *rmtp);
+
+/* kernel/signal.c */
+extern asmlinkage long	sys_kill(int pid, int sig);
+extern asmlinkage long	sys_rt_sigaction(int sig, const struct sigaction *act,
+				struct sigaction *oact, size_t sigsetsize);
+extern asmlinkage long	sys_rt_sigpending(sigset_t *set, size_t sigsetsize);
+extern asmlinkage long	sys_rt_sigprocmask(int how, sigset_t *set,
+				sigset_t *oset, size_t sigsetsize);
+extern asmlinkage long	sys_rt_sigtimedwait(const sigset_t *uthese,
+				siginfo_t *uinfo, const struct timespec *uts,
+				size_t sigsetsize);
+extern asmlinkage long	sys_sigaltstack(const stack_t *uss, stack_t *uoss);
+extern asmlinkage long	sys_sigpending(old_sigset_t *set);
+extern asmlinkage long	sys_sigprocmask(int how, old_sigset_t *set,
+				old_sigset_t *oset);
+extern asmlinkage int	sys_sigsuspend(int history0, int history1,
+				old_sigset_t mask);
+
+/* kernel/sys.c */
+extern asmlinkage long	sys_gethostname(char *name, int len);
+extern asmlinkage long	sys_sethostname(char *name, int len);
+extern asmlinkage long	sys_setdomainname(char *name, int len);
+extern asmlinkage long	sys_getrlimit(unsigned int resource,
+				struct rlimit *rlim);
+extern asmlinkage long	sys_setsid(void);
+extern asmlinkage long	sys_getsid(pid_t pid);
+extern asmlinkage long	sys_getpgid(pid_t pid);
+extern asmlinkage long	sys_setpgid(pid_t pid, pid_t pgid);
+extern asmlinkage long	sys_getgroups(int gidsetsize, gid_t *grouplist);
+extern asmlinkage long	sys_setgroups(int gidsetsize, gid_t *grouplist);
+
+#ifdef CONFIG_UID16
+/* kernel/uid16.c */
+extern asmlinkage long	sys_setreuid16(old_uid_t ruid, old_uid_t euid);
+extern asmlinkage long	sys_setregid16(old_gid_t rgid, old_gid_t egid);
+extern asmlinkage long	sys_getgroups16(int gidsetsize, old_gid_t *grouplist);
+extern asmlinkage long	sys_setgroups16(int gidsetsize, old_gid_t *grouplist);
+#endif /* CONFIG_UID16 */
+
+/* mm/mmap.c */
+extern asmlinkage unsigned long sys_brk(unsigned long brk);
+
+/* net/socket.c */
+extern asmlinkage long	sys_socket(int family, int type, int protocol);
+extern asmlinkage long	sys_socketpair(int family, int type,
+				int protocol, int usockvec[2]);
+extern asmlinkage long	sys_bind(int fd, struct sockaddr *umyaddr,
+				int addrlen);
+extern asmlinkage long	sys_listen(int fd, int backlog);
+extern asmlinkage long	sys_accept(int fd, struct sockaddr *upeer_sockaddr,
+				int *upeer_addrlen);
+extern asmlinkage long	sys_connect(int fd, struct sockaddr *uservaddr,
+				int addrlen);
+extern asmlinkage long	sys_getsockname(int fd, struct sockaddr *usockaddr,
+				int *usockaddr_len);
+extern asmlinkage long	sys_getpeername(int fd, struct sockaddr *usockaddr,
+				int *usockaddr_len);
+extern asmlinkage long	sys_sendto(int fd, void * buff, size_t len,
+				unsigned flags, struct sockaddr *addr,
+				int addr_len);
+extern asmlinkage long	sys_send(int fd, void * buff, size_t len,
+					unsigned flags);
+extern asmlinkage long	sys_recvfrom(int fd, void * ubuf, size_t size,
+				unsigned flags, struct sockaddr *addr,
+				int *addr_len);
+extern asmlinkage long	sys_setsockopt(int fd, int level, int optname,
+				char *optval, int optlen);
+extern asmlinkage long	sys_getsockopt(int fd, int level, int optname,
+				char *optval, int *optlen);
+extern asmlinkage long	sys_shutdown(int fd, int how);
+extern asmlinkage long	sys_sendmsg(int fd, struct msghdr *msg,
+				unsigned flags);
+extern asmlinkage long	sys_recvmsg(int fd, struct msghdr *msg,
+				unsigned int flags);
+extern asmlinkage long	sys_socketcall(int call, unsigned long *args);
+
+#endif /* _LINUX_SYSCALL_H */
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/kernel/Makefile linux-2.4.14-pre1/kernel/Makefile
--- ../master/linux-2.4.14-pre1/kernel/Makefile	Sun Sep 23 21:21:03 2001
+++ linux-2.4.14-pre1/kernel/Makefile	Thu Oct 25 19:13:29 2001
@@ -9,12 +9,13 @@
 
 O_TARGET := kernel.o
 
-export-objs = signal.o sys.o kmod.o context.o ksyms.o pm.o exec_domain.o printk.o
+export-objs = signal.o sys.o kmod.o context.o ksyms.o pm.o exec_domain.o \
+	      printk.o syscall_ksyms.o
 
 obj-y     = sched.o dma.o fork.o exec_domain.o panic.o printk.o \
 	    module.o exit.o itimer.o info.o time.o softirq.o resource.o \
 	    sysctl.o acct.o capability.o ptrace.o timer.o user.o \
-	    signal.o sys.o kmod.o context.o
+	    signal.o sys.o kmod.o context.o syscall_ksyms.o
 
 obj-$(CONFIG_UID16) += uid16.o
 obj-$(CONFIG_MODULES) += ksyms.o
diff -uNr -Xdontdiff ../master/linux-2.4.14-pre1/kernel/syscall_ksyms.c linux-2.4.14-pre1/kernel/syscall_ksyms.c
--- ../master/linux-2.4.14-pre1/kernel/syscall_ksyms.c	Thu Jan  1 01:00:00 1970
+++ linux-2.4.14-pre1/kernel/syscall_ksyms.c	Thu Oct 25 19:13:29 2001
@@ -0,0 +1,101 @@
+/*
+ * Exports all Linux syscalls.
+ * Christoph Hellwig (hch@caldera.de), 2001
+ */
+
+#include <linux/config.h>
+#include <linux/module.h>
+#include <linux/syscall.h>
+#include <linux/msg.h>
+#include <linux/sem.h>
+#include <linux/shm.h>
+
+EXPORT_SYMBOL_GPL(sys_ioctl);
+EXPORT_SYMBOL_GPL(sys_gettimeofday);
+EXPORT_SYMBOL_GPL(sys_settimeofday);
+EXPORT_SYMBOL_GPL(sys_getitimer);
+EXPORT_SYMBOL_GPL(sys_setitimer);
+EXPORT_SYMBOL_GPL(sys_access);
+EXPORT_SYMBOL_GPL(sys_statfs);
+EXPORT_SYMBOL_GPL(sys_fstatfs);
+EXPORT_SYMBOL_GPL(sys_open);
+EXPORT_SYMBOL_GPL(sys_ftruncate);
+EXPORT_SYMBOL_GPL(sys_poll);
+EXPORT_SYMBOL_GPL(sys_sysfs);
+EXPORT_SYMBOL_GPL(sys_stime);
+EXPORT_SYMBOL_GPL(sys_gethostname);
+EXPORT_SYMBOL_GPL(sys_sethostname);
+EXPORT_SYMBOL_GPL(sys_getrlimit);
+EXPORT_SYMBOL_GPL(sys_exit);
+EXPORT_SYMBOL_GPL(sys_pread);
+EXPORT_SYMBOL_GPL(sys_pwrite);
+EXPORT_SYMBOL_GPL(sys_nanosleep);
+EXPORT_SYMBOL_GPL(sys_ftruncate64);
+EXPORT_SYMBOL_GPL(sys_time);
+EXPORT_SYMBOL_GPL(sys_kill);
+EXPORT_SYMBOL_GPL(sys_brk);
+EXPORT_SYMBOL_GPL(sys_mkdir);
+EXPORT_SYMBOL_GPL(sys_setdomainname);
+EXPORT_SYMBOL_GPL(sys_setsid);
+EXPORT_SYMBOL_GPL(sys_getsid);
+EXPORT_SYMBOL_GPL(sys_setpgid);
+EXPORT_SYMBOL_GPL(sys_getpgid);
+EXPORT_SYMBOL_GPL(sys_lseek);
+EXPORT_SYMBOL_GPL(sys_mknod);
+EXPORT_SYMBOL_GPL(sys_rt_sigprocmask);
+EXPORT_SYMBOL_GPL(sys_rt_sigpending);
+EXPORT_SYMBOL_GPL(sys_rt_sigtimedwait);
+EXPORT_SYMBOL_GPL(sys_sigpending);
+EXPORT_SYMBOL_GPL(sys_sigprocmask);
+EXPORT_SYMBOL_GPL(sys_rt_sigaction);
+EXPORT_SYMBOL_GPL(sys_sigaltstack);
+EXPORT_SYMBOL_GPL(old_readdir);
+EXPORT_SYMBOL_GPL(sys_llseek);
+EXPORT_SYMBOL_GPL(sys_sigsuspend);
+EXPORT_SYMBOL_GPL(sys_readlink);
+EXPORT_SYMBOL_GPL(sys_dup2);
+EXPORT_SYMBOL_GPL(sys_select);
+EXPORT_SYMBOL_GPL(sys_truncate64);
+EXPORT_SYMBOL_GPL(sys_uselib);
+EXPORT_SYMBOL_GPL(sys_wait4);
+EXPORT_SYMBOL_GPL(sys_fcntl);
+EXPORT_SYMBOL_GPL(sys_read);
+EXPORT_SYMBOL_GPL(sys_rename);
+EXPORT_SYMBOL_GPL(sys_setgroups);
+EXPORT_SYMBOL_GPL(sys_getgroups);
+
+EXPORT_SYMBOL_GPL(sys_socket);
+EXPORT_SYMBOL_GPL(sys_socketpair);
+EXPORT_SYMBOL_GPL(sys_bind);
+EXPORT_SYMBOL_GPL(sys_listen);
+EXPORT_SYMBOL_GPL(sys_accept);
+EXPORT_SYMBOL_GPL(sys_connect);
+EXPORT_SYMBOL_GPL(sys_getsockname);
+EXPORT_SYMBOL_GPL(sys_getpeername);
+EXPORT_SYMBOL_GPL(sys_sendto);
+EXPORT_SYMBOL_GPL(sys_send);
+EXPORT_SYMBOL_GPL(sys_recvfrom);
+EXPORT_SYMBOL_GPL(sys_setsockopt);
+EXPORT_SYMBOL_GPL(sys_getsockopt);
+EXPORT_SYMBOL_GPL(sys_shutdown);
+EXPORT_SYMBOL_GPL(sys_sendmsg);
+EXPORT_SYMBOL_GPL(sys_recvmsg);
+EXPORT_SYMBOL_GPL(sys_socketcall);
+
+EXPORT_SYMBOL_GPL(sys_shmctl);
+EXPORT_SYMBOL_GPL(sys_shmat);
+EXPORT_SYMBOL_GPL(sys_semop);
+EXPORT_SYMBOL_GPL(sys_shmdt);
+EXPORT_SYMBOL_GPL(sys_msgctl);
+EXPORT_SYMBOL_GPL(sys_msgrcv);
+EXPORT_SYMBOL_GPL(sys_shmget);
+EXPORT_SYMBOL_GPL(sys_msgsnd);
+EXPORT_SYMBOL_GPL(sys_msgget);
+EXPORT_SYMBOL_GPL(sys_semget);
+
+#ifdef CONFIG_UID16
+EXPORT_SYMBOL_GPL(sys_getgroups16);
+EXPORT_SYMBOL_GPL(sys_setgroups16);
+EXPORT_SYMBOL_GPL(sys_setreuid16);
+EXPORT_SYMBOL_GPL(sys_setregid16);
+#endif /* CONFIG_UID16 */

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] export syscalls
       [not found] <fa.do3ji5v.16nohb9@ifi.uio.no>
@ 2001-10-25 19:33 ` richard offer
  2001-10-25 20:14   ` Christoph Hellwig
  0 siblings, 1 reply; 4+ messages in thread
From: richard offer @ 2001-10-25 19:33 UTC (permalink / raw)
  To: linux-kernel



* frm hch@caldera.de "10/25/2001 05:25:40 PM +0000" | sed '1,$s/^/* /'
*
* Hi Linus,
* 
* the appended patch exports the syscalls (GPL-limited), this is needed
* for the Linux-ABI modules so they can use the syscalls in their
* syscall tables for non-Linux personalities.


What is the rationale for marking these as GPL-exclusive symbols ? 

I thought system calls were a public interface.

* 	Christoph
* 
* -- 
* Of course it doesn't work. We've performed a software upgrade.

[snip]

* +EXPORT_SYMBOL_GPL(sys_ioctl);
* +EXPORT_SYMBOL_GPL(sys_gettimeofday);

[snip]


richard.
-- 
-----------------------------------------------------------------------
Richard Offer                     Technical Lead, Trust Technology, SGI
"Specialization is for insects"
___________________________________________On sabatical Nov 8 -> Nov 30


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] export syscalls
  2001-10-25 19:33 ` richard offer
@ 2001-10-25 20:14   ` Christoph Hellwig
  2001-10-25 20:46     ` Tom Rini
  0 siblings, 1 reply; 4+ messages in thread
From: Christoph Hellwig @ 2001-10-25 20:14 UTC (permalink / raw)
  To: richard offer; +Cc: linux-kernel

In article <100000000.1004038404@changeling.engr.sgi.com> you wrote:
> * frm hch@caldera.de "10/25/2001 05:25:40 PM +0000" | sed '1,$s/^/* /'
> *
> * Hi Linus,
> * 
> * the appended patch exports the syscalls (GPL-limited), this is needed
> * for the Linux-ABI modules so they can use the syscalls in their
> * syscall tables for non-Linux personalities.
>
>
> What is the rationale for marking these as GPL-exclusive symbols ? 
>
> I thought system calls were a public interface.

That won't change, but the syscalls are exported GPL-only for _inkernel_
users.  My first version of the patch didn't do that, but people think
that they can cause to much pain when used incorrectly, and that is
checkable only with non-binary-only modules.

	Christoph

-- 
Of course it doesn't work. We've performed a software upgrade.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] export syscalls
  2001-10-25 20:14   ` Christoph Hellwig
@ 2001-10-25 20:46     ` Tom Rini
  0 siblings, 0 replies; 4+ messages in thread
From: Tom Rini @ 2001-10-25 20:46 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: richard offer, linux-kernel

On Thu, Oct 25, 2001 at 10:14:51PM +0200, Christoph Hellwig wrote:
> In article <100000000.1004038404@changeling.engr.sgi.com> you wrote:
> > * frm hch@caldera.de "10/25/2001 05:25:40 PM +0000" | sed '1,$s/^/* /'
> > *
> > * Hi Linus,
> > * 
> > * the appended patch exports the syscalls (GPL-limited), this is needed
> > * for the Linux-ABI modules so they can use the syscalls in their
> > * syscall tables for non-Linux personalities.
> >
> >
> > What is the rationale for marking these as GPL-exclusive symbols ? 
> >
> > I thought system calls were a public interface.
> 
> That won't change, but the syscalls are exported GPL-only for _inkernel_
> users.  My first version of the patch didn't do that, but people think
> that they can cause to much pain when used incorrectly, and that is
> checkable only with non-binary-only modules.

So since some people can't do something we should punish everyone?  If
binary-only module crashes and burns, other people aren't going to fix it
anyhow.

-- 
Tom Rini (TR1265)
http://gate.crashing.org/~trini/

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2001-10-25 20:47 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-10-25 17:23 [PATCH] export syscalls Christoph Hellwig
     [not found] <fa.do3ji5v.16nohb9@ifi.uio.no>
2001-10-25 19:33 ` richard offer
2001-10-25 20:14   ` Christoph Hellwig
2001-10-25 20:46     ` Tom Rini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox