public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Increase efficiency of CONFIG_NET=n
@ 2003-03-16 21:43 Matthew Wilcox
  2003-03-16 23:57 ` Christoph Hellwig
  0 siblings, 1 reply; 3+ messages in thread
From: Matthew Wilcox @ 2003-03-16 21:43 UTC (permalink / raw)
  To: linux-kernel, linux-net


This patch adds a file net/nonet.c and amends the Makefile to compile
this and nothing else when CONFIG_NET=n.  It shaves approximately 90k
off the size of a CONFIG_NET=n build (and allows us to remove some ifdefs
from other files which is my real motivation).  Still, this should make
some embedded people happy.

Comments?

diff -urpNX ../dontdiff linux-2.5.64/net/Makefile linux-2.5.64-flock/net/Makefile
--- linux-2.5.64/net/Makefile	2003-02-20 22:46:57.000000000 -0500
+++ linux-2.5.64-flock/net/Makefile	2003-03-16 16:07:00.000000000 -0500
@@ -5,8 +5,9 @@
 # Rewritten to use lists instead of if-statements.
 #
 
-obj-y	:= socket.o core/
+obj-y	:= nonet.o
 
+obj-$(CONFIG_NET)		:= socket.o core/
 # LLC has to be linked before the files in net/802/
 obj-$(CONFIG_LLC)		+= llc/
 obj-$(CONFIG_NET)		+= ethernet/ 802/ sched/ netlink/
diff -urpNX ../dontdiff linux-2.5.64/net/nonet.c linux-2.5.64-flock/net/nonet.c
--- linux-2.5.64/net/nonet.c	1969-12-31 19:00:00.000000000 -0500
+++ linux-2.5.64-flock/net/nonet.c	2003-03-16 16:11:19.000000000 -0500
@@ -0,0 +1,122 @@
+/*
+ * net/nonet.c
+ *
+ * Dummy functions to allow us to configure network support entirely
+ * out of the kernel.
+ *
+ * Distributed under the terms of the GNU GPL version 2.
+ * Copyright (c) Matthew Wilcox 2003
+ */
+
+#include <linux/errno.h>
+#include <linux/fs.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/linkage.h>
+#include <linux/socket.h>
+
+void __init sock_init(void)
+{
+	printk(KERN_INFO "Linux NoNET1.0 for Linux 2.6\n");
+}
+
+static int sock_no_open(struct inode *irrelevant, struct file *dontcare)
+{
+	return -ENXIO;
+}
+
+struct file_operations bad_sock_fops = {
+	.open = sock_no_open,
+};
+
+asmlinkage long sys_socket(int family, int type, int protocol)
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_socketpair(int family, int type, int protocol, int usockvec[2])
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_bind(int fd, struct sockaddr *umyaddr, int addrlen)
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_listen(int fd, int backlog)
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_accept(int fd, struct sockaddr *upeer_sockaddr, int *upeer_addrlen)
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_connect(int fd, struct sockaddr *uservaddr, int addrlen)
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_getsockname(int fd, struct sockaddr *usockaddr, int *usockaddr_len)
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_getpeername(int fd, struct sockaddr *usockaddr, int *usockaddr_len)
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_sendto(int fd, void * buff, size_t len, unsigned flags,
+			   struct sockaddr *addr, int addr_len)
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_send(int fd, void * buff, size_t len, unsigned flags)
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_recvfrom(int fd, void * ubuf, size_t size, unsigned flags,
+			     struct sockaddr *addr, int *addr_len)
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_recv(int fd, void * ubuf, size_t size, unsigned flags)
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_setsockopt(int fd, int level, int optname, char *optval, int optlen)
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_getsockopt(int fd, int level, int optname, char *optval, int *optlen)
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_shutdown(int fd, int how)
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_sendmsg(int fd, struct msghdr *msg, unsigned flags)
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_recvmsg(int fd, struct msghdr *msg, unsigned int flags)
+{
+	return -ENOSYS;
+}
+
+asmlinkage long sys_socketcall(int call, unsigned long *args)
+{
+	return -ENOSYS;
+}

-- 
"It's not Hollywood.  War is real, war is primarily not about defeat or
victory, it is about death.  I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk

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

* Re: [PATCH] Increase efficiency of CONFIG_NET=n
  2003-03-16 21:43 [PATCH] Increase efficiency of CONFIG_NET=n Matthew Wilcox
@ 2003-03-16 23:57 ` Christoph Hellwig
  2003-03-17  2:09   ` Matthew Wilcox
  0 siblings, 1 reply; 3+ messages in thread
From: Christoph Hellwig @ 2003-03-16 23:57 UTC (permalink / raw)
  To: Matthew Wilcox; +Cc: linux-kernel, linux-net

On Sun, Mar 16, 2003 at 09:43:34PM +0000, Matthew Wilcox wrote:
> +asmlinkage long sys_socket(int family, int type, int protocol)
> +{
> +	return -ENOSYS;
> +}

Please just use cond_syscall in kernel/sys.c for all this stubbed
out syscalls.


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

* Re: [PATCH] Increase efficiency of CONFIG_NET=n
  2003-03-16 23:57 ` Christoph Hellwig
@ 2003-03-17  2:09   ` Matthew Wilcox
  0 siblings, 0 replies; 3+ messages in thread
From: Matthew Wilcox @ 2003-03-17  2:09 UTC (permalink / raw)
  To: Christoph Hellwig, Matthew Wilcox, linux-kernel, linux-net

On Sun, Mar 16, 2003 at 11:57:08PM +0000, Christoph Hellwig wrote:
> On Sun, Mar 16, 2003 at 09:43:34PM +0000, Matthew Wilcox wrote:
> > +asmlinkage long sys_socket(int family, int type, int protocol)
> > +{
> > +	return -ENOSYS;
> > +}
> 
> Please just use cond_syscall in kernel/sys.c for all this stubbed
> out syscalls.

OK.

diff -urpNX ../dontdiff linux-2.5.64/kernel/sys.c linux-2.5.64-flock/kernel/sys.c
--- linux-2.5.64/kernel/sys.c	2003-03-07 11:40:53.000000000 -0500
+++ linux-2.5.64-flock/kernel/sys.c	2003-03-16 20:59:33.000000000 -0500
@@ -209,6 +209,23 @@ cond_syscall(sys_swapon)
 cond_syscall(sys_swapoff)
 cond_syscall(sys_init_module)
 cond_syscall(sys_delete_module)
+cond_syscall(sys_socketpair)
+cond_syscall(sys_bind)
+cond_syscall(sys_listen)
+cond_syscall(sys_accept)
+cond_syscall(sys_connect)
+cond_syscall(sys_getsockname)
+cond_syscall(sys_getpeername)
+cond_syscall(sys_sendto)
+cond_syscall(sys_send)
+cond_syscall(sys_recvfrom)
+cond_syscall(sys_recv)
+cond_syscall(sys_setsockopt)
+cond_syscall(sys_getsockopt)
+cond_syscall(sys_shutdown)
+cond_syscall(sys_sendmsg)
+cond_syscall(sys_recvmsg)
+cond_syscall(sys_socketcall)
 
 static int set_one_prio(struct task_struct *p, int niceval, int error)
 {
diff -urpNX ../dontdiff linux-2.5.64/net/Makefile linux-2.5.64-flock/net/Makefile
--- linux-2.5.64/net/Makefile	2003-02-20 22:46:57.000000000 -0500
+++ linux-2.5.64-flock/net/Makefile	2003-03-16 16:07:00.000000000 -0500
@@ -5,8 +5,9 @@
 # Rewritten to use lists instead of if-statements.
 #
 
-obj-y	:= socket.o core/
+obj-y	:= nonet.o
 
+obj-$(CONFIG_NET)		:= socket.o core/
 # LLC has to be linked before the files in net/802/
 obj-$(CONFIG_LLC)		+= llc/
 obj-$(CONFIG_NET)		+= ethernet/ 802/ sched/ netlink/
diff -urpNX ../dontdiff linux-2.5.64/net/nonet.c linux-2.5.64-flock/net/nonet.c
--- linux-2.5.64/net/nonet.c	1969-12-31 19:00:00.000000000 -0500
+++ linux-2.5.64-flock/net/nonet.c	2003-03-16 20:57:26.000000000 -0500
@@ -0,0 +1,28 @@
+/*
+ * net/nonet.c
+ *
+ * Dummy functions to allow us to configure network support entirely
+ * out of the kernel.
+ *
+ * Distributed under the terms of the GNU GPL version 2.
+ * Copyright (c) Matthew Wilcox 2003
+ */
+
+#include <linux/errno.h>
+#include <linux/fs.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+
+void __init sock_init(void)
+{
+	printk(KERN_INFO "Linux NoNET1.0 for Linux 2.6\n");
+}
+
+static int sock_no_open(struct inode *irrelevant, struct file *dontcare)
+{
+	return -ENXIO;
+}
+
+struct file_operations bad_sock_fops = {
+	.open = sock_no_open,
+};

-- 
"It's not Hollywood.  War is real, war is primarily not about defeat or
victory, it is about death.  I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk

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

end of thread, other threads:[~2003-03-17  1:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-03-16 21:43 [PATCH] Increase efficiency of CONFIG_NET=n Matthew Wilcox
2003-03-16 23:57 ` Christoph Hellwig
2003-03-17  2:09   ` Matthew Wilcox

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