patch-1.3.16 linux/net/unix/proc.c

Next file: linux/net/unix/sock.c
Previous file: linux/net/unix/af_unix.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.15/linux/net/unix/proc.c linux/net/unix/proc.c
@@ -1,100 +0,0 @@
-/*
- * UNIX		An implementation of the AF_UNIX network domain for the
- *		LINUX operating system.  UNIX is implemented using the
- *		BSD Socket interface as the means of communication with
- *		the user level.
- *
- *		The functions in this file provide an interface between
- *		the PROC file system and the "unix" family of networking
- *		protocols. It is mainly used for debugging and statistics.
- *
- * Version:	@(#)proc.c	1.0.4	05/23/93
- *
- * Authors:	Ross Biro, <bir7@leland.Stanford.Edu>
- *		Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- *		Gerald J. Heim, <heim@peanuts.informatik.uni-tuebingen.de>
- *		Fred Baumgarten, <dc6iq@insu1.etec.uni-kalrsruhe.de>
- *
- * Fixes:
- *		Dmitry Gorodchanin	:	/proc locking fix
- *		Mathijs Maassen		:	unbound /proc fix.
- *		Alan Cox		:	Fix sock=NULL race
- *
- *		This program is free software; you can redistribute it and/or
- *		modify it under the terms of the GNU General Public License
- *		as published by the Free Software Foundation; either version
- *		2 of the License, or (at your option) any later version.
- */
-#include <linux/autoconf.h>
-#include <linux/sched.h>
-#include <linux/string.h>
-#include <linux/socket.h>
-#include <linux/net.h>
-#include <linux/un.h>
-#include <linux/param.h>
-#include <net/unix.h>
-
-
-/* Called from PROCfs. */
-int unix_get_info(char *buffer, char **start, off_t offset, int length)
-{
-  	off_t pos=0;
-  	off_t begin=0;
-  	int len=0;
-  	int i;
-  	unsigned long flags;
-	socket_state s_state;
-	short s_type;
-	long s_flags;
-	
-  	len += sprintf(buffer, "Num RefCount Protocol Flags    Type St Path\n");
-
-  	for(i = 0; i < NSOCKETS_UNIX; i++) 
-  	{
-  		save_flags(flags);
-  		cli();
-		if (unix_datas[i].refcnt>0 && unix_datas[i].socket!=NULL)
-		{
-			/* sprintf is slow... lock only for the variable reads */
-			s_type=unix_datas[i].socket->type;
-			s_flags=unix_datas[i].socket->flags;
-			s_state=unix_datas[i].socket->state;
-			restore_flags(flags);
-			len += sprintf(buffer+len, "%2d: %08X %08X %08lX %04X %02X", i,
-				unix_datas[i].refcnt,
-				unix_datas[i].protocol,
-				s_flags,
-				s_type,
-				s_state
-			);
-
-			/* If socket is bound to a filename, we'll print it. */
-			if(unix_datas[i].sockaddr_len>0) 
-			{
-				len += sprintf(buffer+len, " %s\n",
-				unix_datas[i].sockaddr_un.sun_path);
-			} 
-			else 
-			{ /* just add a newline */
-				buffer[len++]='\n';
-			}
-			
-			pos=begin+len;
-			if(pos<offset)
-			{
-				len=0;
-				begin=pos;
-			}
-			if(pos>offset+length)
-				break;
-		}
-		else
-			restore_flags(flags);
-	}
-	
-	*start=buffer+(offset-begin);
-	len-=(offset-begin);
-	if(len>length)
-		len=length;
-	return len;
-}

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this