# HG changeset patch # User Josef "Jeff" Sipek # Date 1188085764 14400 # Node ID f13167dff80d56957506bc007bbfb73a62d6d8a7 2 VSSI patches Found while cleaning up my Lacie disk diff -r 000000000000 -r f13167dff80d vssi/vp2p --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vssi/vp2p Sat Aug 25 19:49:24 2007 -0400 @@ -0,0 +1,1494 @@ +# This is a BitKeeper generated diff -Nru style patch. +# +# ChangeSet +# 2004/12/20 20:47:55-05:00 jeffpc@optonline.net +# Merge +# +# init/main.c +# 2004/12/20 20:47:52-05:00 jeffpc@optonline.net +0 -0 +# SCCS merged +# +# net/Makefile +# 2004/12/20 20:30:42-05:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# include/linux/socket.h +# 2004/12/20 20:30:42-05:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# include/linux/if_ether.h +# 2004/12/20 20:30:42-05:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# arch/i386/Kconfig +# 2004/12/20 20:30:42-05:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/10/30 15:18:19-04:00 jeffpc@optonline.net +# Added VSSI_INIT +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/10/30 15:18:10-04:00 jeffpc@optonline.net +3 -3 +# Use VSSI_INIT +# +# include/linux/vssi.h +# 2004/10/30 15:18:10-04:00 jeffpc@optonline.net +4 -2 +# Added VSSI_INIT +# +# ChangeSet +# 2004/09/21 00:51:12-04:00 jeffpc@optonline.net +# Merge optonline.net:/home/jeffpc/linux/linux-2.5 +# into optonline.net:/home/jeffpc/linux/vp2p-work +# +# net/Makefile +# 2004/09/21 00:51:06-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# init/main.c +# 2004/09/21 00:51:06-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# include/linux/socket.h +# 2004/09/21 00:51:06-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# include/linux/if_ether.h +# 2004/09/21 00:51:06-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# arch/i386/Kconfig +# 2004/09/21 00:51:06-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/09/16 10:16:57-04:00 jeffpc@optonline.net +# [VSSI] Added a check for closed connections +# +# Signed-off-by: Josef "Jeff" Sipek +# +# net/vssi/daemon.c +# 2004/09/16 10:16:46-04:00 jeffpc@optonline.net +12 -2 +# Added a check for closed connections. +# +# ChangeSet +# 2004/08/16 14:31:09-04:00 jeffpc@optonline.net +# Merge optonline.net:/home/jeffpc/linux/linux-2.5 +# into optonline.net:/home/jeffpc/linux/vp2p-work +# +# init/main.c +# 2004/08/16 14:31:03-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/07/16 11:14:56-04:00 jeffpc@optonline.net +# [VSSI] Created 2 macros to manage connection stats +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/16 11:14:46-04:00 jeffpc@optonline.net +3 -3 +# Created 2 macros to manage connection stats +# +# include/linux/vssi.h +# 2004/07/16 11:14:46-04:00 jeffpc@optonline.net +14 -0 +# Created 2 macros to manage connection stats +# +# ChangeSet +# 2004/07/14 17:00:40-04:00 jeffpc@optonline.net +# [VSSI] Added descriptions of the functions +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/14 17:00:32-04:00 jeffpc@optonline.net +20 -0 +# Added descriptions of the functions +# +# ChangeSet +# 2004/07/14 16:39:19-04:00 jeffpc@optonline.net +# [VSSI] Use RCU for connection list maintainance +# Remove destroy flag +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/14 16:39:09-04:00 jeffpc@optonline.net +34 -11 +# Use RCU for connection list maintainance +# Remove destroy flag +# +# include/linux/vssi.h +# 2004/07/14 16:39:09-04:00 jeffpc@optonline.net +2 -1 +# Use RCU for connection list maintainance +# Remove destroy flag +# +# ChangeSet +# 2004/07/11 09:58:23-04:00 jeffpc@optonline.net +# [VSSI] Get rid of a compilation warning +# Include tcp.h since we are using TCP/IP +# Moved the destroy flag to the correct struct +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# include/linux/vssi.h +# 2004/07/11 09:51:40-04:00 jeffpc@optonline.net +3 -3 +# Get rid of a warning +# +# net/vssi/daemon.c +# 2004/07/11 09:50:22-04:00 jeffpc@optonline.net +10 -5 +# Get rid of a warning +# +# net/vssi/daemon.c +# 2004/07/11 09:31:45-04:00 jeffpc@optonline.net +1 -0 +# Include tcp.h since we are using TCP/IP +# +# include/linux/vssi.h +# 2004/07/11 09:29:06-04:00 jeffpc@optonline.net +1 -1 +# Moved the destroy flag to the correct struct +# +# ChangeSet +# 2004/07/10 17:23:51-04:00 jeffpc@optonline.net +# [VSSI] Added destroy flag +# Fix bug with ListeningDaemon() not sleeping +# Socket closing error fix +# Removed strange if statement +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# include/linux/vssi.h +# 2004/07/10 17:20:55-04:00 jeffpc@optonline.net +1 -0 +# Added destroy flag +# +# net/vssi/daemon.c +# 2004/07/10 16:57:23-04:00 jeffpc@batlh.(none) +25 -16 +# Fix bug with ListeningDaemon() not sleeping +# Socket closing error fix +# Removed strange if statement +# +# ChangeSet +# 2004/07/09 06:09:00-04:00 jeffpc@batlh.(none) +# [VSSI] Added ListeningDaemon() (runs as "vssid/l") +# ManagementDaemon() runs every HZ/2 +# ManagementDaemon() doesn't listen for new connections now +# Added prototype for ListeningDaemon() +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/09 06:02:20-04:00 jeffpc@batlh.(none) +18 -3 +# Added ListeningDaemon() (runs as "vssid/l") +# ManagementDaemon() runs every HZ/2 +# ManagementDaemon() doesn't listen for new connections now +# +# include/linux/vssi.h +# 2004/07/09 06:00:49-04:00 jeffpc@optonline.net +1 -0 +# Added prototype for ListeningDaemon() +# +# ChangeSet +# 2004/07/09 05:33:17-04:00 jeffpc@optonline.net +# [VSSI] Combined atomic vars start and quit into startstop +# Added flags VSSI_START and VSSI_STOP +# Combined atomic variables start and quit into startstop +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# include/linux/vssi.h +# 2004/07/09 05:24:18-04:00 jeffpc@optonline.net +4 -2 +# Combined atomic vars start and quit into startstop +# Added flags VSSI_START and VSSI_STOP +# +# net/vssi/daemon.c +# 2004/07/09 05:22:21-04:00 jeffpc@optonline.net +8 -10 +# Combined atomic variables start and quit into startstop +# +# ChangeSet +# 2004/07/06 21:00:51-04:00 jeffpc@optonline.net +# [VSSI] Fixed maxconn statistics bug +# Add length of the "hello" message to tx_bytes +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/06 21:00:43-04:00 jeffpc@optonline.net +3 -1 +# Fixed maxconn statistics bug +# Add length of the "hello" message to tx_bytes +# +# ChangeSet +# 2004/07/06 20:05:30-04:00 jeffpc@optonline.net +# [VSSI] Added VSSI_PROC_FS +# Added vssi_stats +# Added /proc/vssi/{stats,conns} (configurable) +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/06 20:05:20-04:00 jeffpc@optonline.net +59 -4 +# Added vssi_stats +# Added /proc/vssi/{stats,conns} (configurable) +# +# include/linux/vssi.h +# 2004/07/06 20:05:20-04:00 jeffpc@optonline.net +8 -0 +# Added struct vssi_stats +# +# arch/i386/Kconfig +# 2004/07/06 20:05:20-04:00 jeffpc@optonline.net +9 -0 +# Added VSSI_PROC_FS +# +# ChangeSet +# 2004/07/06 17:54:20-04:00 jeffpc@optonline.net +# [VSSI] Created ManagementDaemon() +# Moved accept() code into ManagementDaemon() +# Changed the message sent to the other end +# MainDaemon() returns void +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/06 17:54:12-04:00 jeffpc@optonline.net +45 -25 +# Created ManagementDaemon() +# Moved accept() code into ManagementDaemon() +# Changed the message sent to the other end +# +# include/linux/vssi.h +# 2004/07/06 17:54:12-04:00 jeffpc@optonline.net +3 -1 +# MainDaemon returns void +# Added ManagementDaemon +# +# ChangeSet +# 2004/07/06 10:19:51-04:00 jeffpc@optonline.net +# [VSSI] Moved code out of MainDaemon() into newly made vssi_accept_conns(), +# vssi_allocsock(), vssi_freesock(), and send_hello() +# Changed length type for vssi_Send() to u32 +# Whitespace cleanup in vssi.h +# Added connection statistics struct +# conn->socket is a pointer +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/06 10:19:43-04:00 jeffpc@optonline.net +111 -53 +# Moved code out of MainDaemon() into newly made vssi_accept_conns(), +# vssi_allocsock(), vssi_freesock(), and send_hello() +# Changed length type for vssi_Send() to u32 +# +# include/linux/vssi.h +# 2004/07/06 10:19:43-04:00 jeffpc@optonline.net +14 -4 +# Little whitespace cleanup +# Added connection statistics struct +# conn->socket is a pointer +# +# ChangeSet +# 2004/07/02 18:44:10-04:00 jeffpc@optonline.net +# [VSSI] Added two out of memory checks +# Now using socket flags to accept connections +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/02 18:44:02-04:00 jeffpc@optonline.net +11 -2 +# Added two out of memory checks +# Now using socket flags to accept connections +# +# ChangeSet +# 2004/06/28 11:11:09-04:00 jeffpc@optonline.net +# Merge optonline.net:/home/jeffpc/linux/linux-2.5 +# into optonline.net:/home/jeffpc/linux/vp2p-work +# +# init/main.c +# 2004/06/28 11:11:04-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/06/25 00:40:41-04:00 jeffpc@optonline.net +# Merge optonline.net:/home/jeffpc/linux/linux-2.5 +# into optonline.net:/home/jeffpc/linux/vp2p-work +# +# init/main.c +# 2004/06/25 00:40:36-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/06/25 00:28:02-04:00 jeffpc@optonline.net +# [VSSI] Call daemonize() complete the setup +# Use TCP/IP instead of UDP/IP +# Prefix error messages with "vssi: " +# Fixed return value check (sock->ops->listen() call) +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/06/25 00:27:53-04:00 jeffpc@optonline.net +6 -5 +# Call daemonize() complete the setup +# Use TCP/IP instead of UDP/IP +# Prefix error messages with "vssi: " +# Fixed return value check (sock->ops->listen() call) +# +# ChangeSet +# 2004/06/24 03:53:05-04:00 jeffpc@optonline.net +# [VSSI] Use kernel_thread() instead of daemonize() +# +# Note: The kernel now not only compiles, but it also boots if you +# select both VSSI and VP2P +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/06/24 03:52:51-04:00 jeffpc@optonline.net +3 -5 +# Use kernel_thread() instead of daemonize() +# +# ChangeSet +# 2004/06/23 03:36:25-04:00 jeffpc@optonline.net +# Make sure we execute only on CPU 0 +# Fix up 2 BUGS (check return values) +# +# net/vssi/daemon.c +# 2004/06/23 03:36:13-04:00 jeffpc@optonline.net +18 -6 +# Make sure we execute only on CPU 0 +# Fix up 2 BUGS (check return values) +# +# ChangeSet +# 2004/06/22 22:22:04-04:00 jeffpc@optonline.net +# Merge optonline.net:/home/jeffpc/linux/vp2p-2.6 +# into optonline.net:/home/jeffpc/linux/vp2p-work +# +# init/main.c +# 2004/06/22 22:22:01-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# arch/i386/Kconfig +# 2004/06/22 22:22:01-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/06/22 22:16:12-04:00 jeffpc@optonline.net +# Merge +# +# init/main.c +# 2004/06/22 22:16:06-04:00 jeffpc@optonline.net +0 -0 +# SCCS merged +# +# arch/i386/Kconfig +# 2004/06/22 22:09:40-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/06/20 02:36:01-04:00 jeffpc@optonline.net +# [VSSI] Fixed memory leak +# Send test packet +# +# net/vssi/daemon.c +# 2004/06/20 02:31:50-04:00 jeffpc@optonline.net +29 -0 +# Fixed memory leak +# Send test packet +# +# ChangeSet +# 2004/06/19 23:26:52-04:00 jeffpc@optonline.net +# Merge +# +# init/main.c +# 2004/06/19 23:26:48-04:00 jeffpc@optonline.net +0 -0 +# SCCS merged +# +# arch/i386/Kconfig +# 2004/06/19 23:24:40-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/06/11 22:12:48-04:00 jeffpc@optonline.net +# [VSSI] Use VSSI_BACKLOG instead of a hardcoded number +# kfree buffer and buffer structure (this might not fly well) +# +# net/vssi/daemon.c +# 2004/06/11 22:12:42-04:00 jeffpc@optonline.net +9 -8 +# Use VSSI_BACKLOG instead of a hardcoded number +# kfree buffer and buffer structure (this might not fly well) +# +# include/linux/vssi.h +# 2004/06/11 22:12:42-04:00 jeffpc@optonline.net +1 -0 +# Backlog constant added +# +# ChangeSet +# 2004/06/10 12:31:49-04:00 jeffpc@jeff.home +# vssiphp.c: +# Some changes +# bk cp fakephp.c vssiphp.c +# PCI hotplug: fix up a bunch of copyrights that were incorrectly declared. +# new file +# +# drivers/pci/hotplug/vssiphp.c +# 2004/06/10 12:31:09-04:00 jeffpc@jeff.home +8 -14 +# Clean up of the comments, and several constants +# +# drivers/pci/hotplug/vssiphp.c +# 2004/06/10 12:22:57-04:00 jeffpc@jeff.home +0 -0 +# bk cp fakephp.c vssiphp.c +# +# ChangeSet +# 2004/06/09 21:08:28-04:00 jeffpc@optonline.net +# [VP2P] Add new buffer to the list of buffers to be tx +# Some changes in the struct vssi_buffer +# +# net/vssi/daemon.c +# 2004/06/09 21:08:20-04:00 jeffpc@optonline.net +13 -6 +# Add new buffer to the list of buffers to be tx +# +# include/linux/vssi.h +# 2004/06/09 21:08:20-04:00 jeffpc@optonline.net +3 -2 +# Renamed some structure members, added address field +# +# ChangeSet +# 2004/06/09 07:12:36-04:00 jeffpc@optonline.net +# [VP2P] Clear the buffer list after going through it in tx_all +# Added basic body for Send() +# +# net/vssi/daemon.c +# 2004/06/09 07:12:30-04:00 jeffpc@optonline.net +20 -1 +# Clear the buffer list after going through it in tx_all +# Added basic body for Send() +# +# ChangeSet +# 2004/06/08 22:02:49-04:00 jeffpc@optonline.net +# [VP2P] Added vssi_tx_all() dummy code +# +# net/vssi/daemon.c +# 2004/06/08 22:02:42-04:00 jeffpc@optonline.net +14 -0 +# Added vssi_tx_all() dummy code +# +# include/linux/vssi.h +# 2004/06/08 22:02:42-04:00 jeffpc@optonline.net +1 -0 +# Added vssi_tx_all() prototype +# +# ChangeSet +# 2004/06/08 21:48:46-04:00 jeffpc@optonline.net +# [VP2P] Clean up FIXME +# +# net/vssi/daemon.c +# 2004/06/08 21:48:39-04:00 jeffpc@optonline.net +5 -7 +# Clean up FIXME +# +# ChangeSet +# 2004/06/08 21:33:56-04:00 jeffpc@optonline.net +# [VP2P] Itterate through all the connections in the list +# +# net/vssi/daemon.c +# 2004/06/08 21:33:50-04:00 jeffpc@optonline.net +14 -6 +# Itterate through all the connections in the list +# +# ChangeSet +# 2004/06/08 20:53:36-04:00 jeffpc@optonline.net +# [VP2P] Fixed up compilation issue +# +# net/vssi/daemon.c +# 2004/06/08 20:53:30-04:00 jeffpc@optonline.net +4 -3 +# Fix up compile +# +# ChangeSet +# 2004/06/06 20:21:34-04:00 jeffpc@optonline.net +# Merge optonline.net:/home/jeffpc/linux/linux-2.5 +# into optonline.net:/home/jeffpc/linux/vp2p-2.6 +# +# init/main.c +# 2004/06/06 20:21:31-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/06/06 20:14:10-04:00 jeffpc@optonline.net +# [VSSI] Spelling/compilation fixes +# +# net/vssi/daemon.c +# 2004/06/06 20:14:04-04:00 jeffpc@optonline.net +5 -4 +# Spelling/compilation fixes +# +# init/main.c +# 2004/06/06 20:14:04-04:00 jeffpc@optonline.net +1 -0 +# Include linux/vssi.h +# +# include/linux/vssi.h +# 2004/06/06 20:14:04-04:00 jeffpc@optonline.net +5 -2 +# Added additional prototypes +# +# ChangeSet +# 2004/06/06 19:15:46-04:00 jeffpc@optonline.net +# [VSSI] Create new sockets upon accept() +# +# net/vssi/daemon.c +# 2004/06/06 19:15:40-04:00 jeffpc@optonline.net +17 -4 +# Create new sockets upon accept() +# +# include/linux/vssi.h +# 2004/06/06 19:15:40-04:00 jeffpc@optonline.net +5 -0 +# Added connection information structure +# +# ChangeSet +# 2004/06/05 01:40:47-04:00 jeffpc@optonline.net +# Fixed up dependencies for CONFIG_VSSI +# Created CONFIG_VSSI_VP2P +# +# arch/i386/Kconfig +# 2004/06/05 01:40:41-04:00 jeffpc@optonline.net +10 -1 +# Fixed up dependencies for CONFIG_VSSI +# Created CONFIG_VSSI_VP2P +# +# ChangeSet +# 2004/06/05 01:17:23-04:00 jeffpc@optonline.net +# 1.1612.diff +# +# net/vssi/daemon.c +# 2004/06/05 01:11:03-04:00 jeffpc@optonline.net +24 -0 +# Import patch 1.1612.diff +# +# include/linux/vssi.h +# 2004/06/05 01:11:03-04:00 jeffpc@optonline.net +16 -2 +# Import patch 1.1612.diff +# +# ChangeSet +# 2004/06/05 01:17:08-04:00 jeffpc@optonline.net +# 1.1611.diff +# +# net/vssi/daemon.c +# 2004/06/05 01:10:48-04:00 jeffpc@optonline.net +12 -6 +# Import patch 1.1611.diff +# +# include/linux/vssi.h +# 2004/06/05 01:10:48-04:00 jeffpc@optonline.net +6 -0 +# Import patch 1.1611.diff +# +# ChangeSet +# 2004/06/05 01:16:18-04:00 jeffpc@optonline.net +# 1.1610.diff +# +# net/vssi/daemon.c +# 2004/06/05 01:10:35-04:00 jeffpc@optonline.net +8 -4 +# Import patch 1.1610.diff +# +# include/net/vssip.h +# 2004/06/05 01:10:35-04:00 jeffpc@optonline.net +4 -14 +# Import patch 1.1610.diff +# +# include/linux/socket.h +# 2004/06/05 01:10:35-04:00 jeffpc@optonline.net +1 -3 +# Import patch 1.1610.diff +# +# include/linux/if_ether.h +# 2004/06/05 01:10:35-04:00 jeffpc@optonline.net +0 -1 +# Import patch 1.1610.diff +# +# ChangeSet +# 2004/06/05 01:16:01-04:00 jeffpc@optonline.net +# 1.1371.612.3.diff +# +# net/vssi/daemon.c +# 2004/06/05 01:09:42-04:00 jeffpc@optonline.net +9 -0 +# Import patch 1.1371.612.3.diff +# +# init/main.c +# 2004/06/05 01:09:42-04:00 jeffpc@optonline.net +2 -0 +# Import patch 1.1371.612.3.diff +# +# include/linux/if_ether.h +# 2004/06/05 01:09:42-04:00 jeffpc@optonline.net +1 -0 +# Import patch 1.1371.612.3.diff +# +# ChangeSet +# 2004/06/05 01:15:27-04:00 jeffpc@optonline.net +# Created basic skeleton for VSSI systems +# +# net/vssi/daemon.c +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +81 -0 +# BitKeeper file /home/jeffpc/linux/vssi-2.6/net/vssi/daemon.c +# +# net/vssi/Makefile +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +5 -0 +# BitKeeper file /home/jeffpc/linux/vssi-2.6/net/vssi/Makefile +# +# include/net/vssip.h +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +20 -0 +# BitKeeper file /home/jeffpc/linux/vssi-2.6/include/linux/vssi.h +# +# net/vssi/daemon.c +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +0 -0 +# BitKeeper file /home/jeffpc/linux/vp2p-2.6/net/vssi/daemon.c +# +# net/vssi/Makefile +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +0 -0 +# BitKeeper file /home/jeffpc/linux/vp2p-2.6/net/vssi/Makefile +# +# net/Makefile +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +1 -0 +# Build net/vssi/ if needed +# +# include/net/vssip.h +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +0 -0 +# BitKeeper file /home/jeffpc/linux/vp2p-2.6/include/net/vssip.h +# +# include/linux/socket.h +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +3 -1 +# Added VSSI Protocol and Address Family numbers +# +# arch/i386/Kconfig +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +12 -0 +# VSSI config option +# +# drivers/pci/hotplug/vssiphp.c +# 2003/08/27 07:44:50-07:00 greg@kroah.com +3 -3 +# PCI hotplug: fix up a bunch of copyrights that were incorrectly declared. +# +# drivers/pci/hotplug/vssiphp.c +# 2003/06/25 17:24:41-07:00 greg@kroah.com +232 -0 +# +# drivers/pci/hotplug/vssiphp.c +# 2003/06/25 17:24:41-07:00 greg@kroah.com +0 -0 +# BitKeeper file /home/greg/linux/BK/pci-2.5/drivers/pci/hotplug/fakephp.c +# +diff -Nru a/arch/i386/Kconfig b/arch/i386/Kconfig +--- a/arch/i386/Kconfig 2005-05-07 12:54:02 -04:00 ++++ b/arch/i386/Kconfig 2005-05-07 12:54:02 -04:00 +@@ -501,6 +501,36 @@ + cost of slightly increased overhead in some places. If unsure say + N here. + ++config VSSI ++ bool "Virtual Single System Image (EXPERIMENTAL)" ++ depends on SMP && !MODULES && HOTPLUG && EXPERIMENTAL ++ help ++ This option enables the creation of a virtual single system image ++ cluster. The resulting cluster will behave like a SSI system. ++ ++ Note: If you want to use more than 1GB of total RAM, make sure High Memory ++ Support is turned on. ++ ++ If you don't know what to do here, say N. ++ ++config VSSI_PROC_FS ++ bool "Virtual Single System Image /proc interface" ++ depends on VSSI && PROC_FS ++ help ++ This option creates /proc/vssi/ directory along with several files ++ with statistics and configuration. ++ ++ If you don't know what to do here, say N. ++ ++config VSSI_VP2P ++ bool "Virtual PCI-2-PCI bridge (EXPERIMENTAL)" ++ depends on VSSI && HOTPLUG_PCI ++ help ++ This option allows the kernel to create a virtual PCI-2-PCI bridge ++ over standard ethernet interface. ++ ++ If you don't know what to do here, say N. ++ + config PREEMPT + bool "Preemptible Kernel" + help +diff -Nru a/drivers/pci/hotplug/vssiphp.c b/drivers/pci/hotplug/vssiphp.c +--- /dev/null Wed Dec 31 16:00:00 196900 ++++ b/drivers/pci/hotplug/vssiphp.c 2005-05-07 12:54:02 -04:00 +@@ -0,0 +1,226 @@ ++/* ++ * VSSI Virtual PCI Hot Plug Controller Driver ++ * ++ * Copyright (C) 2004 Josef "Jeff" Sipek ++ * ++ * Based on Fake PCI Hot Plug Controller Driver (fakephp.c) ++ * ++ * All rights reserved. ++ * ++ * 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, version 2 of the License. ++ * ++ */ ++ ++/* ++ * ++ * This driver will use the VSSI layer and create virtual PCI bridges ++ * to allow communication between PCI buses on different hosts. ++ * ++ * WARNING, this does NOT turn off the power to the PCI device. This is ++ * a "logical" removal, not a physical or electrical removal. ++ * ++ * Use this module at your own risk, you have been warned! ++ * ++ * Enabling PCI devices is left as an exercise for the reader... ++ * ++ */ ++#include ++#include ++#include ++#include ++#include ++#include "pci_hotplug.h" ++#include "../pci.h" ++ ++#if !defined(CONFIG_HOTPLUG_PCI_FAKE_MODULE) ++ #define MY_NAME "fakephp" ++#else ++ #define MY_NAME THIS_MODULE->name ++#endif ++ ++#define dbg(format, arg...) \ ++ do { \ ++ if (debug) \ ++ printk(KERN_DEBUG "%s: " format, \ ++ MY_NAME , ## arg); \ ++ } while (0) ++#define err(format, arg...) printk(KERN_ERR "%s: " format, MY_NAME , ## arg) ++#define info(format, arg...) printk(KERN_INFO "%s: " format, MY_NAME , ## arg) ++ ++#define DRIVER_AUTHOR "Josef \"Jeff\" Sipek " ++#define DRIVER_DESC "Virtual PCI Hot Plug Controller Driver" ++ ++struct dummy_slot { ++ struct list_head node; ++ struct hotplug_slot *slot; ++ struct pci_dev *dev; ++}; ++ ++static int debug; ++static LIST_HEAD(slot_list); ++ ++static int enable_slot (struct hotplug_slot *slot); ++static int disable_slot (struct hotplug_slot *slot); ++ ++static struct hotplug_slot_ops dummy_hotplug_slot_ops = { ++ .owner = THIS_MODULE, ++ .enable_slot = enable_slot, ++ .disable_slot = disable_slot, ++}; ++ ++static void dummy_release(struct hotplug_slot *slot) ++{ ++ struct dummy_slot *dslot = slot->private; ++ ++ list_del(&dslot->node); ++ kfree(dslot->slot->info); ++ kfree(dslot->slot); ++ pci_dev_put(dslot->dev); ++ kfree(dslot); ++} ++ ++static int add_slot(struct pci_dev *dev) ++{ ++ struct dummy_slot *dslot; ++ struct hotplug_slot *slot; ++ int retval = -ENOMEM; ++ ++ slot = kmalloc(sizeof(struct hotplug_slot), GFP_KERNEL); ++ if (!slot) ++ goto error; ++ memset(slot, 0, sizeof(*slot)); ++ ++ slot->info = kmalloc(sizeof(struct hotplug_slot_info), GFP_KERNEL); ++ if (!slot->info) ++ goto error_slot; ++ memset(slot->info, 0, sizeof(struct hotplug_slot_info)); ++ ++ slot->info->power_status = 1; ++ slot->info->max_bus_speed = PCI_SPEED_UNKNOWN; ++ slot->info->cur_bus_speed = PCI_SPEED_UNKNOWN; ++ ++ slot->name = &dev->dev.bus_id[0]; ++ dbg("slot->name = %s\n", slot->name); ++ ++ dslot = kmalloc(sizeof(struct dummy_slot), GFP_KERNEL); ++ if (!dslot) ++ goto error_info; ++ ++ slot->ops = &dummy_hotplug_slot_ops; ++ slot->release = &dummy_release; ++ slot->private = dslot; ++ ++ retval = pci_hp_register(slot); ++ if (retval) { ++ err("pci_hp_register failed with error %d\n", retval); ++ goto error_dslot; ++ } ++ ++ dslot->slot = slot; ++ dslot->dev = pci_dev_get(dev); ++ list_add (&dslot->node, &slot_list); ++ return retval; ++ ++error_dslot: ++ kfree(dslot); ++error_info: ++ kfree(slot->info); ++error_slot: ++ kfree(slot); ++error: ++ return retval; ++} ++ ++static int __init pci_scan_buses(void) ++{ ++ struct pci_dev *dev = NULL; ++ int retval = 0; ++ ++ while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) { ++ retval = add_slot(dev); ++ if (retval) { ++ pci_dev_put(dev); ++ break; ++ } ++ } ++ ++ return retval; ++} ++ ++static void remove_slot(struct dummy_slot *dslot) ++{ ++ int retval; ++ ++ dbg("removing slot %s\n", dslot->slot->name); ++ retval = pci_hp_deregister(dslot->slot); ++ if (retval) ++ err("Problem unregistering a slot %s\n", dslot->slot->name); ++} ++ ++static int enable_slot(struct hotplug_slot *hotplug_slot) ++{ ++ return -ENODEV; ++} ++ ++static int disable_slot(struct hotplug_slot *slot) ++{ ++ struct dummy_slot *dslot; ++ ++ if (!slot) ++ return -ENODEV; ++ dslot = slot->private; ++ ++ dbg("%s - physical_slot = %s\n", __FUNCTION__, slot->name); ++ ++ /* don't disable bridged devices just yet, we can't handle them easily... */ ++ if (dslot->dev->subordinate) { ++ err("Can't remove PCI devices with other PCI devices behind it yet.\n"); ++ return -ENODEV; ++ } ++ ++ /* remove the device from the pci core */ ++ pci_remove_bus_device(dslot->dev); ++ ++ /* blow away this sysfs entry and other parts. */ ++ remove_slot(dslot); ++ ++ return 0; ++} ++ ++static void cleanup_slots (void) ++{ ++ struct list_head *tmp; ++ struct list_head *next; ++ struct dummy_slot *dslot; ++ ++ list_for_each_safe (tmp, next, &slot_list) { ++ dslot = list_entry (tmp, struct dummy_slot, node); ++ remove_slot(dslot); ++ } ++ ++} ++ ++static int __init dummyphp_init(void) ++{ ++ info(DRIVER_DESC "\n"); ++ ++ return pci_scan_buses(); ++} ++ ++ ++static void __exit dummyphp_exit(void) ++{ ++ cleanup_slots(); ++} ++ ++module_init(dummyphp_init); ++module_exit(dummyphp_exit); ++ ++MODULE_AUTHOR(DRIVER_AUTHOR); ++MODULE_DESCRIPTION(DRIVER_DESC); ++MODULE_LICENSE("GPL"); ++MODULE_PARM(debug, "i"); ++MODULE_PARM_DESC(debug, "Debugging mode enabled or not"); ++ +diff -Nru a/include/linux/vssi.h b/include/linux/vssi.h +--- /dev/null Wed Dec 31 16:00:00 196900 ++++ b/include/linux/vssi.h 2005-05-07 12:54:02 -04:00 +@@ -0,0 +1,82 @@ ++#ifndef _VSSIP_H ++#define _VSSIP_H ++ ++#define VSSIPADDR_ANY 0xffff ++#define PORT 0x7A69 ++#define VSSI_BACKLOG 32 /* FIXME: What's a sane backlog value? (== node number?) Should be configurable */ ++ ++#define VSSI_INIT 0x01 ++#define VSSI_START 0x02 ++#define VSSI_STOP 0x03 ++ ++/* global variables */ ++extern struct socket *MainSocket; ++extern struct vssi_stats vssi_stats; ++extern atomic_t startstop; ++ ++/* structure definitions */ ++ ++struct vssi_eth_hdr { ++ u8 version, arch; ++ u16 from, to; ++ u16 cmd; ++} __attribute__((packed)); ++ ++struct vssi_buffer { ++ struct list_head list; ++ char* buf; ++ u32 len; ++ u16 to; ++}; ++ ++struct vssi_stats { ++ u16 conns; ++ u16 maxconns; ++}; ++ ++struct vssi_conn_stats { ++ unsigned long rx_bytes; ++ unsigned long tx_bytes; ++}; ++ ++struct vssi_conn { ++ struct list_head list; ++ struct socket* socket; ++ struct vssi_conn_stats stats; ++ struct rcu_head rcuhead; ++}; ++ ++/* macros */ ++ ++#define inc_current_conns() \ ++ do { \ ++ vssi_stats.conns++; \ ++ if (vssi_stats.conns > vssi_stats.maxconns) \ ++ vssi_stats.maxconns = vssi_stats.conns; \ ++ } while(0) ++ ++#define dec_current_conns() \ ++ do { \ ++ vssi_stats.conns--; \ ++ } while(0) ++ ++/* prototypes */ ++ ++void vssi_init(void); ++int ManagementDaemon(void * unused); ++int ListeningDaemon(void * unused); ++int MainDaemon(void * unused); ++int StartListening(void); ++void StopListening(void); ++int vssi_Send(u16 node, u32 len, char* buff); ++int vssi_Receive(void); ++void vssi_tx_all(void); ++inline int vssi_accept_conns(void); ++struct vssi_conn * vssi_allocsock(void); ++void vssi_freesock(struct vssi_conn *conn); ++void send_hello(struct vssi_conn *conn); ++int vssi_read_procstats(char *buf, char **start, off_t offset, int count, int *eof, void *data); ++int vssi_read_procconns(char *buf, char **start, off_t offset, int count, int *eof, void *data); ++void vssi_rcufree_conn(struct rcu_head *conn); ++ ++#endif +diff -Nru a/init/main.c b/init/main.c +--- a/init/main.c 2005-05-07 12:54:02 -04:00 ++++ b/init/main.c 2005-05-07 12:54:02 -04:00 +@@ -46,6 +46,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -743,6 +744,8 @@ + + (void) sys_dup(0); + (void) sys_dup(0); ++ ++ vssi_init(); + + /* + * We try each of these until one succeeds. +diff -Nru a/net/Makefile b/net/Makefile +--- a/net/Makefile 2005-05-07 12:54:02 -04:00 ++++ b/net/Makefile 2005-05-07 12:54:02 -04:00 +@@ -42,6 +42,7 @@ + obj-$(CONFIG_ECONET) += econet/ + obj-$(CONFIG_VLAN_8021Q) += 8021q/ + obj-$(CONFIG_IP_SCTP) += sctp/ ++obj-$(CONFIG_VSSI) += vssi/ + + ifeq ($(CONFIG_NET),y) + obj-$(CONFIG_SYSCTL) += sysctl_net.o +diff -Nru a/net/vssi/Makefile b/net/vssi/Makefile +--- /dev/null Wed Dec 31 16:00:00 196900 ++++ b/net/vssi/Makefile 2005-05-07 12:54:02 -04:00 +@@ -0,0 +1,5 @@ ++# ++# Makefile for the VSSI layer. ++# ++ ++obj-y += daemon.o +diff -Nru a/net/vssi/daemon.c b/net/vssi/daemon.c +--- /dev/null Wed Dec 31 16:00:00 196900 ++++ b/net/vssi/daemon.c 2005-05-07 12:54:02 -04:00 +@@ -0,0 +1,451 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++struct socket *MainSocket; ++struct vssi_stats vssi_stats; ++atomic_t startstop; ++ ++LIST_HEAD(vssi_conns); ++spinlock_t vssi_conns_lock = SPIN_LOCK_UNLOCKED; ++LIST_HEAD(vssi_tx_buff); ++spinlock_t vssi_tx_buff_lock = SPIN_LOCK_UNLOCKED; ++ ++/* ++ * Start up VSSI daemons ++ */ ++ ++void vssi_init() ++{ ++#ifdef CONFIG_VSSI ++ printk(KERN_WARNING "vssi: 2004/05/09 Josef \"Jeff\" Sipek and Nur Hussein\n"); ++ printk(KERN_WARNING "vssi: Enabling vssi management daemon...\n"); ++ kernel_thread(ManagementDaemon, NULL, CLONE_FS | CLONE_FILES | CLONE_SIGHAND); ++ ++#ifdef CONFIG_VSSI_PROC_FS ++ /* Set up /proc/vssi/ structure */ ++ proc_mkdir_mode("vssi", ++ 0 /* default mode */, ++ NULL /* parent dir */); ++ create_proc_read_entry("vssi/stats", ++ 0 /* default mode */, ++ NULL /* parent dir */, ++ vssi_read_procstats, ++ NULL /* client data */); ++ create_proc_read_entry("vssi/conns", ++ 0 /* default mode */, ++ NULL /* parent dir */, ++ vssi_read_procconns, ++ NULL /* client data */); ++#endif ++#endif ++} ++ ++/* ++ * Management Daemon code ++ * - Watch for admin tasks ++ */ ++ ++int ManagementDaemon(void * unused) ++{ ++ atomic_set(&startstop,VSSI_INIT); ++ printk(KERN_WARNING "vssi: Enabling vssi daemon...\n"); ++ kernel_thread(MainDaemon, NULL, CLONE_FS | CLONE_FILES | CLONE_SIGHAND); ++ kernel_thread(ListeningDaemon, NULL, CLONE_FS | CLONE_FILES | CLONE_SIGHAND); ++ ++ daemonize("vssid/m"); ++ set_cpus_allowed(current, cpumask_of_cpu(0)); ++ ++ if (StartListening()) { ++ printk(KERN_WARNING "vssi: Error starting up...\n"); ++ return 0; ++ } ++ ++ memset(&vssi_stats, 0, sizeof(struct vssi_stats)); ++ ++ atomic_set(&startstop,VSSI_START); ++ ++ while(atomic_read(&startstop)==VSSI_START) { ++ set_current_state(TASK_INTERRUPTIBLE); ++ schedule_timeout(HZ/2); ++ ++ // watch for admin tasks ++ } ++ ++ atomic_set(&startstop,VSSI_STOP); ++ ++ StopListening(); ++ ++ return 0; ++} ++ ++/* ++ * Daemon code dedicated to accepting connections ++ */ ++ ++int ListeningDaemon(void * unused) ++{ ++ daemonize("vssid/l"); ++ set_cpus_allowed(current, cpumask_of_cpu(0)); ++ ++ while(atomic_read(&startstop)==VSSI_INIT) { ++ set_current_state(TASK_INTERRUPTIBLE); ++ schedule_timeout(HZ/10); ++ } ++ ++ while(atomic_read(&startstop)==VSSI_START) { ++ set_current_state(TASK_INTERRUPTIBLE); ++ schedule_timeout(HZ/10); ++ ++ vssi_accept_conns(); ++ } ++ ++ return 0; ++} ++ ++/* ++ * Main Daemon code ++ */ ++ ++int MainDaemon(void * unused) ++{ ++ struct vssi_conn *cc; ++ struct list_head *list; ++ ++ daemonize("vssid"); ++ set_cpus_allowed(current, cpumask_of_cpu(0)); ++ ++ while(atomic_read(&startstop)==VSSI_INIT) { ++ set_current_state(TASK_INTERRUPTIBLE); ++ schedule_timeout(HZ/10); ++ } ++ ++ while(atomic_read(&startstop)==VSSI_START) { ++ set_current_state(TASK_INTERRUPTIBLE); ++ schedule_timeout(HZ/10); ++ ++ rcu_read_lock(); ++ list_for_each_rcu(list, &vssi_conns) { ++ cc = list_entry(list, struct vssi_conn, list); ++ ++ /* Remove dead sockets */ ++ if (cc->socket->sk->sk_state != TCP_ESTABLISHED && ++ cc->socket->sk->sk_state != TCP_CLOSE_WAIT) { ++ list_del_rcu(&cc->list); ++ call_rcu(&cc->rcuhead, vssi_rcufree_conn); ++ continue; ++ } ++ ++ //cc->socket.ops->send(cc->socket, "hello", 5); ++ send_hello(cc); ++ ++ /* FIXME: ++ - read(cc->socket, BUFF, COUNT); (nonblock) ++ - add any new packets to a buffer ++ */ ++ } ++ rcu_read_unlock(); ++ ++ vssi_tx_all(); ++ } ++ ++ return 0; ++} ++ ++/* ++ * RCU free code ++ */ ++ ++void vssi_rcufree_conn(struct rcu_head *conn) ++{ ++ vssi_freesock(container_of(conn, struct vssi_conn, rcuhead)); ++} ++ ++/* ++ * Accept connections, add them to the list ++ */ ++ ++inline int vssi_accept_conns() ++{ ++ struct vssi_conn *conn; ++ static int err; ++ ++ if ((conn = vssi_allocsock())==NULL) ++ return -ENOMEM; ++ ++ do { ++ conn->socket->type = MainSocket->type; ++ conn->socket->ops = MainSocket->ops; ++ ++ //if (MainSocket->sk->tp_pinfo.af_tcp.accept_queue==NULL) ++ // break; ++ ++ err = MainSocket->ops->accept(MainSocket, conn->socket, MainSocket->flags); ++ if (!err) { ++ list_add_rcu(&conn->list, &vssi_conns); ++ conn = vssi_allocsock(); ++ ++ inc_current_conns(); ++ ++ if (!conn) ++ return -ENOMEM; ++ } ++ } while(!err && atomic_read(&startstop)==VSSI_START); ++ ++ vssi_freesock(conn); ++ return err; ++} ++ ++/* ++ * Allocate everything needed to set up a connection struct ++ */ ++ ++struct vssi_conn* vssi_allocsock() ++{ ++ struct vssi_conn *conn; ++ ++ if ((conn = (struct vssi_conn*) kmalloc(sizeof(struct vssi_conn), GFP_ATOMIC)) == NULL) ++ goto nomem; ++ if ((conn->socket = (struct socket*) kmalloc(sizeof(struct socket), GFP_ATOMIC)) == NULL) ++ goto nomem_conn; ++ ++ memset(&conn->stats, 0, sizeof(struct vssi_conn_stats)); ++ ++ return conn; ++ ++nomem_conn: ++ kfree(conn); ++nomem: ++ printk(KERN_WARNING "vssi: Error allocating memory\n"); ++ return NULL; ++} ++ ++/* ++ * Free the connection struct ++ */ ++ ++void vssi_freesock(struct vssi_conn *conn) ++{ ++ if (conn == NULL) ++ return; ++ ++ lock_sock(conn->socket->sk); ++ if (conn->socket->sk->sk_state == TCP_ESTABLISHED || ++ conn->socket->sk->sk_state == TCP_CLOSE_WAIT) { ++ //conn->socket->sk->sk_protinfo.af_tcp.nonagle = 0; ++ tcp_push_pending_frames(conn->socket->sk, conn->socket->sk->sk_protinfo); ++ } ++ release_sock(conn->socket->sk); ++ ++ sock_release(conn->socket); ++ asm("#d"); ++ kfree(conn); ++ ++ dec_current_conns(); ++} ++ ++/* ++ * Send a "hello"-type message to the other end ++ */ ++ ++void send_hello(struct vssi_conn *conn) ++{ ++ /* for packet sending.. */ ++ struct msghdr msg; ++ mm_segment_t oldfs; ++ struct iovec iov; ++ int len,len2; ++ ++ msg.msg_name = 0; ++ msg.msg_namelen = 0; ++ msg.msg_iov = &iov; ++ msg.msg_iovlen = 1; ++ msg.msg_control = NULL; ++ msg.msg_controllen = 0; ++ msg.msg_flags = 0; /* Synchronous for now */ ++ ++ iov.iov_base = "hello from your kernel"; ++ iov.iov_len = 22; ++ ++ len2= 22; ++ len = 0; ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ len = sock_sendmsg(conn->socket,&msg,len2); ++ set_fs(oldfs); ++ ++ if (len != len2) ++ printk(KERN_WARNING "vssi: Warning, %d bytes prepared, but only %d sent\n", len2, len); ++ ++ conn->stats.tx_bytes += len; ++ ++ //conn->socket->ops->shutdown(conn->socket,2); // FIXME: close down the connection ++ ++} ++ ++/* ++ * Start listening for new connections ++ */ ++ ++int StartListening() ++{ ++ struct socket *sock; ++ struct sockaddr_in saddr; ++ int error; ++ ++ /* Create a socket */ ++ ++ error = sock_create(PF_INET,SOCK_STREAM,IPPROTO_TCP,&sock); ++ if (error<0) { ++ printk(KERN_ERR "vssi: Error, could not create socket\n"); ++ return -ERESTARTSYS; ++ } ++ ++ /* Bind to the socket */ ++ ++ saddr.sin_family = AF_INET; ++ saddr.sin_addr.s_addr = INADDR_ANY; ++ saddr.sin_port = htons((unsigned short)PORT); ++ ++ error = sock->ops->bind(sock,(struct sockaddr*)&saddr, sizeof(saddr)); ++ if (error<0) { ++ printk(KERN_ERR "vssi: Error, could not bind to socket\n"); ++ sock_release(sock); ++ return -ERESTARTSYS; ++ } ++ ++ /* Somewhat pointless, since no one should be listing this early */ ++ sock->sk->sk_reuse = 1; ++ ++ /* Start listening */ ++ ++ error = sock->ops->listen(sock, VSSI_BACKLOG); ++ if (error != 0) { ++ printk(KERN_ERR "vssi: Error, could not start listening on socket\n"); ++ sock_release(sock); ++ return -ERESTARTSYS; ++ } ++ ++ MainSocket = sock; ++ ++ return 0; ++} ++ ++/* ++ * Stop listening for new connections ++ */ ++ ++void StopListening() ++{ ++ struct socket *sock; ++ ++ if (MainSocket==NULL) ++ return; ++ ++ sock = MainSocket; ++ MainSocket = NULL; ++ sock_release(sock); ++} ++ ++/* ++ * Transmit all queued buffers ++ */ ++ ++void vssi_tx_all() ++{ ++ struct list_head *list; ++ struct vssi_buffer *buf; ++ ++ spin_lock(&vssi_tx_buff_lock); ++ ++ list_for_each(list, &vssi_tx_buff) { ++ buf = list_entry(list, struct vssi_buffer, list); ++ ++ /* ++ TODO: ++ - Send buf->buf to buf->to ++ - add buf->len to conn->stats.tx_bytes ++ */ ++ kfree(buf->buf); ++ kfree(buf); /* FIXME: this is going to cause oops at best, and mem corruption at worst */ ++ } ++ ++ INIT_LIST_HEAD(&vssi_tx_buff); ++ ++ spin_unlock(&vssi_tx_buff_lock); ++} ++ ++/* ++ * Send a buffer of length len to node ++ */ ++ ++int vssi_Send(u16 node, u32 len, char* ptr) ++{ ++ struct vssi_buffer *buf = (struct vssi_buffer*) kmalloc(sizeof(struct vssi_buffer), GFP_ATOMIC); ++ ++ if (!buf) ++ return -ENOMEM; ++ ++ buf->to = node; ++ buf->len = len; ++ buf->buf = ptr; ++ ++ spin_lock(&vssi_tx_buff_lock); ++ list_add_tail(&buf->list, &vssi_tx_buff); ++ spin_unlock(&vssi_tx_buff_lock); ++ ++ return 0; ++} ++ ++/* ++ * Receive any streams, save them into newly allocated buffers, ++ * and invoke the appropreate kernel handler ++ */ ++ ++int vssi_Receive() ++{ ++ return 0; ++} ++ ++/* ++ * Read all the /proc/vssi/stats ++ */ ++ ++int vssi_read_procstats(char *buf, char **start, off_t offset, int count, int *eof, void *data) ++{ ++ *eof = 1; ++ return sprintf(buf, "conns:\t\t%u\nmaxconns:\t%u\n", vssi_stats.conns, vssi_stats.maxconns); ++} ++ ++/* ++ * Read all the /proc/vssi/conns ++ */ ++ ++int vssi_read_procconns(char *buf, char **start, off_t offset, int count, int *eof, void *data) ++{ ++ struct list_head *list; ++ struct vssi_conn *cc; ++ static int len; ++ ++ if (!list_empty(&vssi_conns)) { ++ rcu_read_lock(); ++ list_for_each_rcu(list, &vssi_conns) { ++ cc = list_entry(list, struct vssi_conn, list); ++ ++ len += sprintf(buf+len, "%lu %lu\n", cc->stats.rx_bytes, cc->stats.tx_bytes); ++ } ++ rcu_read_unlock(); ++ } else ++ len = sprintf(buf, "No connections\n"); ++ ++ *eof = 1; ++ return len; ++} ++ ++EXPORT_SYMBOL(vssi_init); ++EXPORT_SYMBOL(vssi_Send); ++EXPORT_SYMBOL(vssi_Receive); diff -r 000000000000 -r f13167dff80d vssi/vp2p-2.6.diff --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vssi/vp2p-2.6.diff Sat Aug 25 19:49:24 2007 -0400 @@ -0,0 +1,714 @@ +# This is a BitKeeper generated diff -Nru style patch. +# +# ChangeSet +# 2004/12/20 20:47:55-05:00 jeffpc@optonline.net +# Merge +# +# init/main.c +# 2004/12/20 20:47:52-05:00 jeffpc@optonline.net +0 -0 +# SCCS merged +# +# net/Makefile +# 2004/12/20 20:30:42-05:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# include/linux/socket.h +# 2004/12/20 20:30:42-05:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# include/linux/if_ether.h +# 2004/12/20 20:30:42-05:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# arch/i386/Kconfig +# 2004/12/20 20:30:42-05:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/10/30 15:18:19-04:00 jeffpc@optonline.net +# Added VSSI_INIT +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/10/30 15:18:10-04:00 jeffpc@optonline.net +3 -3 +# Use VSSI_INIT +# +# include/linux/vssi.h +# 2004/10/30 15:18:10-04:00 jeffpc@optonline.net +4 -2 +# Added VSSI_INIT +# +# ChangeSet +# 2004/09/21 00:51:12-04:00 jeffpc@optonline.net +# Merge optonline.net:/home/jeffpc/linux/linux-2.5 +# into optonline.net:/home/jeffpc/linux/vp2p-work +# +# net/Makefile +# 2004/09/21 00:51:06-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# init/main.c +# 2004/09/21 00:51:06-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# include/linux/socket.h +# 2004/09/21 00:51:06-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# include/linux/if_ether.h +# 2004/09/21 00:51:06-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# arch/i386/Kconfig +# 2004/09/21 00:51:06-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/09/16 10:16:57-04:00 jeffpc@optonline.net +# [VSSI] Added a check for closed connections +# +# Signed-off-by: Josef "Jeff" Sipek +# +# net/vssi/daemon.c +# 2004/09/16 10:16:46-04:00 jeffpc@optonline.net +12 -2 +# Added a check for closed connections. +# +# ChangeSet +# 2004/08/16 14:31:09-04:00 jeffpc@optonline.net +# Merge optonline.net:/home/jeffpc/linux/linux-2.5 +# into optonline.net:/home/jeffpc/linux/vp2p-work +# +# init/main.c +# 2004/08/16 14:31:03-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/07/16 11:14:56-04:00 jeffpc@optonline.net +# [VSSI] Created 2 macros to manage connection stats +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/16 11:14:46-04:00 jeffpc@optonline.net +3 -3 +# Created 2 macros to manage connection stats +# +# include/linux/vssi.h +# 2004/07/16 11:14:46-04:00 jeffpc@optonline.net +14 -0 +# Created 2 macros to manage connection stats +# +# ChangeSet +# 2004/07/14 17:00:40-04:00 jeffpc@optonline.net +# [VSSI] Added descriptions of the functions +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/14 17:00:32-04:00 jeffpc@optonline.net +20 -0 +# Added descriptions of the functions +# +# ChangeSet +# 2004/07/14 16:39:19-04:00 jeffpc@optonline.net +# [VSSI] Use RCU for connection list maintainance +# Remove destroy flag +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/14 16:39:09-04:00 jeffpc@optonline.net +34 -11 +# Use RCU for connection list maintainance +# Remove destroy flag +# +# include/linux/vssi.h +# 2004/07/14 16:39:09-04:00 jeffpc@optonline.net +2 -1 +# Use RCU for connection list maintainance +# Remove destroy flag +# +# ChangeSet +# 2004/07/11 09:58:23-04:00 jeffpc@optonline.net +# [VSSI] Get rid of a compilation warning +# Include tcp.h since we are using TCP/IP +# Moved the destroy flag to the correct struct +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# include/linux/vssi.h +# 2004/07/11 09:51:40-04:00 jeffpc@optonline.net +3 -3 +# Get rid of a warning +# +# net/vssi/daemon.c +# 2004/07/11 09:50:22-04:00 jeffpc@optonline.net +10 -5 +# Get rid of a warning +# +# net/vssi/daemon.c +# 2004/07/11 09:31:45-04:00 jeffpc@optonline.net +1 -0 +# Include tcp.h since we are using TCP/IP +# +# include/linux/vssi.h +# 2004/07/11 09:29:06-04:00 jeffpc@optonline.net +1 -1 +# Moved the destroy flag to the correct struct +# +# ChangeSet +# 2004/07/10 17:23:51-04:00 jeffpc@optonline.net +# [VSSI] Added destroy flag +# Fix bug with ListeningDaemon() not sleeping +# Socket closing error fix +# Removed strange if statement +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# include/linux/vssi.h +# 2004/07/10 17:20:55-04:00 jeffpc@optonline.net +1 -0 +# Added destroy flag +# +# net/vssi/daemon.c +# 2004/07/10 16:57:23-04:00 jeffpc@batlh.(none) +25 -16 +# Fix bug with ListeningDaemon() not sleeping +# Socket closing error fix +# Removed strange if statement +# +# ChangeSet +# 2004/07/09 06:09:00-04:00 jeffpc@batlh.(none) +# [VSSI] Added ListeningDaemon() (runs as "vssid/l") +# ManagementDaemon() runs every HZ/2 +# ManagementDaemon() doesn't listen for new connections now +# Added prototype for ListeningDaemon() +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/09 06:02:20-04:00 jeffpc@batlh.(none) +18 -3 +# Added ListeningDaemon() (runs as "vssid/l") +# ManagementDaemon() runs every HZ/2 +# ManagementDaemon() doesn't listen for new connections now +# +# include/linux/vssi.h +# 2004/07/09 06:00:49-04:00 jeffpc@optonline.net +1 -0 +# Added prototype for ListeningDaemon() +# +# ChangeSet +# 2004/07/09 05:33:17-04:00 jeffpc@optonline.net +# [VSSI] Combined atomic vars start and quit into startstop +# Added flags VSSI_START and VSSI_STOP +# Combined atomic variables start and quit into startstop +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# include/linux/vssi.h +# 2004/07/09 05:24:18-04:00 jeffpc@optonline.net +4 -2 +# Combined atomic vars start and quit into startstop +# Added flags VSSI_START and VSSI_STOP +# +# net/vssi/daemon.c +# 2004/07/09 05:22:21-04:00 jeffpc@optonline.net +8 -10 +# Combined atomic variables start and quit into startstop +# +# ChangeSet +# 2004/07/06 21:00:51-04:00 jeffpc@optonline.net +# [VSSI] Fixed maxconn statistics bug +# Add length of the "hello" message to tx_bytes +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/06 21:00:43-04:00 jeffpc@optonline.net +3 -1 +# Fixed maxconn statistics bug +# Add length of the "hello" message to tx_bytes +# +# ChangeSet +# 2004/07/06 20:05:30-04:00 jeffpc@optonline.net +# [VSSI] Added VSSI_PROC_FS +# Added vssi_stats +# Added /proc/vssi/{stats,conns} (configurable) +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/06 20:05:20-04:00 jeffpc@optonline.net +59 -4 +# Added vssi_stats +# Added /proc/vssi/{stats,conns} (configurable) +# +# include/linux/vssi.h +# 2004/07/06 20:05:20-04:00 jeffpc@optonline.net +8 -0 +# Added struct vssi_stats +# +# arch/i386/Kconfig +# 2004/07/06 20:05:20-04:00 jeffpc@optonline.net +9 -0 +# Added VSSI_PROC_FS +# +# ChangeSet +# 2004/07/06 17:54:20-04:00 jeffpc@optonline.net +# [VSSI] Created ManagementDaemon() +# Moved accept() code into ManagementDaemon() +# Changed the message sent to the other end +# MainDaemon() returns void +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/06 17:54:12-04:00 jeffpc@optonline.net +45 -25 +# Created ManagementDaemon() +# Moved accept() code into ManagementDaemon() +# Changed the message sent to the other end +# +# include/linux/vssi.h +# 2004/07/06 17:54:12-04:00 jeffpc@optonline.net +3 -1 +# MainDaemon returns void +# Added ManagementDaemon +# +# ChangeSet +# 2004/07/06 10:19:51-04:00 jeffpc@optonline.net +# [VSSI] Moved code out of MainDaemon() into newly made vssi_accept_conns(), +# vssi_allocsock(), vssi_freesock(), and send_hello() +# Changed length type for vssi_Send() to u32 +# Whitespace cleanup in vssi.h +# Added connection statistics struct +# conn->socket is a pointer +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/06 10:19:43-04:00 jeffpc@optonline.net +111 -53 +# Moved code out of MainDaemon() into newly made vssi_accept_conns(), +# vssi_allocsock(), vssi_freesock(), and send_hello() +# Changed length type for vssi_Send() to u32 +# +# include/linux/vssi.h +# 2004/07/06 10:19:43-04:00 jeffpc@optonline.net +14 -4 +# Little whitespace cleanup +# Added connection statistics struct +# conn->socket is a pointer +# +# ChangeSet +# 2004/07/02 18:44:10-04:00 jeffpc@optonline.net +# [VSSI] Added two out of memory checks +# Now using socket flags to accept connections +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/07/02 18:44:02-04:00 jeffpc@optonline.net +11 -2 +# Added two out of memory checks +# Now using socket flags to accept connections +# +# ChangeSet +# 2004/06/28 11:11:09-04:00 jeffpc@optonline.net +# Merge optonline.net:/home/jeffpc/linux/linux-2.5 +# into optonline.net:/home/jeffpc/linux/vp2p-work +# +# init/main.c +# 2004/06/28 11:11:04-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/06/25 00:40:41-04:00 jeffpc@optonline.net +# Merge optonline.net:/home/jeffpc/linux/linux-2.5 +# into optonline.net:/home/jeffpc/linux/vp2p-work +# +# init/main.c +# 2004/06/25 00:40:36-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/06/25 00:28:02-04:00 jeffpc@optonline.net +# [VSSI] Call daemonize() complete the setup +# Use TCP/IP instead of UDP/IP +# Prefix error messages with "vssi: " +# Fixed return value check (sock->ops->listen() call) +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/06/25 00:27:53-04:00 jeffpc@optonline.net +6 -5 +# Call daemonize() complete the setup +# Use TCP/IP instead of UDP/IP +# Prefix error messages with "vssi: " +# Fixed return value check (sock->ops->listen() call) +# +# ChangeSet +# 2004/06/24 03:53:05-04:00 jeffpc@optonline.net +# [VSSI] Use kernel_thread() instead of daemonize() +# +# Note: The kernel now not only compiles, but it also boots if you +# select both VSSI and VP2P +# +# Signed-off-by: Josef 'Jeff' Sipek +# +# net/vssi/daemon.c +# 2004/06/24 03:52:51-04:00 jeffpc@optonline.net +3 -5 +# Use kernel_thread() instead of daemonize() +# +# ChangeSet +# 2004/06/23 03:36:25-04:00 jeffpc@optonline.net +# Make sure we execute only on CPU 0 +# Fix up 2 BUGS (check return values) +# +# net/vssi/daemon.c +# 2004/06/23 03:36:13-04:00 jeffpc@optonline.net +18 -6 +# Make sure we execute only on CPU 0 +# Fix up 2 BUGS (check return values) +# +# ChangeSet +# 2004/06/22 22:22:04-04:00 jeffpc@optonline.net +# Merge optonline.net:/home/jeffpc/linux/vp2p-2.6 +# into optonline.net:/home/jeffpc/linux/vp2p-work +# +# init/main.c +# 2004/06/22 22:22:01-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# arch/i386/Kconfig +# 2004/06/22 22:22:01-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/06/22 22:16:12-04:00 jeffpc@optonline.net +# Merge +# +# init/main.c +# 2004/06/22 22:16:06-04:00 jeffpc@optonline.net +0 -0 +# SCCS merged +# +# arch/i386/Kconfig +# 2004/06/22 22:09:40-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/06/20 02:36:01-04:00 jeffpc@optonline.net +# [VSSI] Fixed memory leak +# Send test packet +# +# net/vssi/daemon.c +# 2004/06/20 02:31:50-04:00 jeffpc@optonline.net +29 -0 +# Fixed memory leak +# Send test packet +# +# ChangeSet +# 2004/06/19 23:26:52-04:00 jeffpc@optonline.net +# Merge +# +# init/main.c +# 2004/06/19 23:26:48-04:00 jeffpc@optonline.net +0 -0 +# SCCS merged +# +# arch/i386/Kconfig +# 2004/06/19 23:24:40-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/06/11 22:12:48-04:00 jeffpc@optonline.net +# [VSSI] Use VSSI_BACKLOG instead of a hardcoded number +# kfree buffer and buffer structure (this might not fly well) +# +# net/vssi/daemon.c +# 2004/06/11 22:12:42-04:00 jeffpc@optonline.net +9 -8 +# Use VSSI_BACKLOG instead of a hardcoded number +# kfree buffer and buffer structure (this might not fly well) +# +# include/linux/vssi.h +# 2004/06/11 22:12:42-04:00 jeffpc@optonline.net +1 -0 +# Backlog constant added +# +# ChangeSet +# 2004/06/10 12:31:49-04:00 jeffpc@jeff.home +# vssiphp.c: +# Some changes +# bk cp fakephp.c vssiphp.c +# PCI hotplug: fix up a bunch of copyrights that were incorrectly declared. +# new file +# +# drivers/pci/hotplug/vssiphp.c +# 2004/06/10 12:31:09-04:00 jeffpc@jeff.home +8 -14 +# Clean up of the comments, and several constants +# +# drivers/pci/hotplug/vssiphp.c +# 2004/06/10 12:22:57-04:00 jeffpc@jeff.home +0 -0 +# bk cp fakephp.c vssiphp.c +# +# ChangeSet +# 2004/06/09 21:08:28-04:00 jeffpc@optonline.net +# [VP2P] Add new buffer to the list of buffers to be tx +# Some changes in the struct vssi_buffer +# +# net/vssi/daemon.c +# 2004/06/09 21:08:20-04:00 jeffpc@optonline.net +13 -6 +# Add new buffer to the list of buffers to be tx +# +# include/linux/vssi.h +# 2004/06/09 21:08:20-04:00 jeffpc@optonline.net +3 -2 +# Renamed some structure members, added address field +# +# ChangeSet +# 2004/06/09 07:12:36-04:00 jeffpc@optonline.net +# [VP2P] Clear the buffer list after going through it in tx_all +# Added basic body for Send() +# +# net/vssi/daemon.c +# 2004/06/09 07:12:30-04:00 jeffpc@optonline.net +20 -1 +# Clear the buffer list after going through it in tx_all +# Added basic body for Send() +# +# ChangeSet +# 2004/06/08 22:02:49-04:00 jeffpc@optonline.net +# [VP2P] Added vssi_tx_all() dummy code +# +# net/vssi/daemon.c +# 2004/06/08 22:02:42-04:00 jeffpc@optonline.net +14 -0 +# Added vssi_tx_all() dummy code +# +# include/linux/vssi.h +# 2004/06/08 22:02:42-04:00 jeffpc@optonline.net +1 -0 +# Added vssi_tx_all() prototype +# +# ChangeSet +# 2004/06/08 21:48:46-04:00 jeffpc@optonline.net +# [VP2P] Clean up FIXME +# +# net/vssi/daemon.c +# 2004/06/08 21:48:39-04:00 jeffpc@optonline.net +5 -7 +# Clean up FIXME +# +# ChangeSet +# 2004/06/08 21:33:56-04:00 jeffpc@optonline.net +# [VP2P] Itterate through all the connections in the list +# +# net/vssi/daemon.c +# 2004/06/08 21:33:50-04:00 jeffpc@optonline.net +14 -6 +# Itterate through all the connections in the list +# +# ChangeSet +# 2004/06/08 20:53:36-04:00 jeffpc@optonline.net +# [VP2P] Fixed up compilation issue +# +# net/vssi/daemon.c +# 2004/06/08 20:53:30-04:00 jeffpc@optonline.net +4 -3 +# Fix up compile +# +# ChangeSet +# 2004/06/06 20:21:34-04:00 jeffpc@optonline.net +# Merge optonline.net:/home/jeffpc/linux/linux-2.5 +# into optonline.net:/home/jeffpc/linux/vp2p-2.6 +# +# init/main.c +# 2004/06/06 20:21:31-04:00 jeffpc@optonline.net +0 -0 +# Auto merged +# +# ChangeSet +# 2004/06/06 20:14:10-04:00 jeffpc@optonline.net +# [VSSI] Spelling/compilation fixes +# +# net/vssi/daemon.c +# 2004/06/06 20:14:04-04:00 jeffpc@optonline.net +5 -4 +# Spelling/compilation fixes +# +# init/main.c +# 2004/06/06 20:14:04-04:00 jeffpc@optonline.net +1 -0 +# Include linux/vssi.h +# +# include/linux/vssi.h +# 2004/06/06 20:14:04-04:00 jeffpc@optonline.net +5 -2 +# Added additional prototypes +# +# ChangeSet +# 2004/06/06 19:15:46-04:00 jeffpc@optonline.net +# [VSSI] Create new sockets upon accept() +# +# net/vssi/daemon.c +# 2004/06/06 19:15:40-04:00 jeffpc@optonline.net +17 -4 +# Create new sockets upon accept() +# +# include/linux/vssi.h +# 2004/06/06 19:15:40-04:00 jeffpc@optonline.net +5 -0 +# Added connection information structure +# +# ChangeSet +# 2004/06/05 01:40:47-04:00 jeffpc@optonline.net +# Fixed up dependencies for CONFIG_VSSI +# Created CONFIG_VSSI_VP2P +# +# arch/i386/Kconfig +# 2004/06/05 01:40:41-04:00 jeffpc@optonline.net +10 -1 +# Fixed up dependencies for CONFIG_VSSI +# Created CONFIG_VSSI_VP2P +# +# ChangeSet +# 2004/06/05 01:17:23-04:00 jeffpc@optonline.net +# 1.1612.diff +# +# net/vssi/daemon.c +# 2004/06/05 01:11:03-04:00 jeffpc@optonline.net +24 -0 +# Import patch 1.1612.diff +# +# include/linux/vssi.h +# 2004/06/05 01:11:03-04:00 jeffpc@optonline.net +16 -2 +# Import patch 1.1612.diff +# +# ChangeSet +# 2004/06/05 01:17:08-04:00 jeffpc@optonline.net +# 1.1611.diff +# +# net/vssi/daemon.c +# 2004/06/05 01:10:48-04:00 jeffpc@optonline.net +12 -6 +# Import patch 1.1611.diff +# +# include/linux/vssi.h +# 2004/06/05 01:10:48-04:00 jeffpc@optonline.net +6 -0 +# Import patch 1.1611.diff +# +# ChangeSet +# 2004/06/05 01:16:18-04:00 jeffpc@optonline.net +# 1.1610.diff +# +# net/vssi/daemon.c +# 2004/06/05 01:10:35-04:00 jeffpc@optonline.net +8 -4 +# Import patch 1.1610.diff +# +# include/net/vssip.h +# 2004/06/05 01:10:35-04:00 jeffpc@optonline.net +4 -14 +# Import patch 1.1610.diff +# +# include/linux/socket.h +# 2004/06/05 01:10:35-04:00 jeffpc@optonline.net +1 -3 +# Import patch 1.1610.diff +# +# include/linux/if_ether.h +# 2004/06/05 01:10:35-04:00 jeffpc@optonline.net +0 -1 +# Import patch 1.1610.diff +# +# ChangeSet +# 2004/06/05 01:16:01-04:00 jeffpc@optonline.net +# 1.1371.612.3.diff +# +# net/vssi/daemon.c +# 2004/06/05 01:09:42-04:00 jeffpc@optonline.net +9 -0 +# Import patch 1.1371.612.3.diff +# +# init/main.c +# 2004/06/05 01:09:42-04:00 jeffpc@optonline.net +2 -0 +# Import patch 1.1371.612.3.diff +# +# include/linux/if_ether.h +# 2004/06/05 01:09:42-04:00 jeffpc@optonline.net +1 -0 +# Import patch 1.1371.612.3.diff +# +# ChangeSet +# 2004/06/05 01:15:27-04:00 jeffpc@optonline.net +# Created basic skeleton for VSSI systems +# +# net/vssi/daemon.c +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +81 -0 +# BitKeeper file /home/jeffpc/linux/vssi-2.6/net/vssi/daemon.c +# +# net/vssi/Makefile +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +5 -0 +# BitKeeper file /home/jeffpc/linux/vssi-2.6/net/vssi/Makefile +# +# include/net/vssip.h +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +20 -0 +# BitKeeper file /home/jeffpc/linux/vssi-2.6/include/linux/vssi.h +# +# net/vssi/daemon.c +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +0 -0 +# BitKeeper file /home/jeffpc/linux/vp2p-2.6/net/vssi/daemon.c +# +# net/vssi/Makefile +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +0 -0 +# BitKeeper file /home/jeffpc/linux/vp2p-2.6/net/vssi/Makefile +# +# net/Makefile +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +1 -0 +# Build net/vssi/ if needed +# +# include/net/vssip.h +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +0 -0 +# BitKeeper file /home/jeffpc/linux/vp2p-2.6/include/net/vssip.h +# +# include/linux/socket.h +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +3 -1 +# Added VSSI Protocol and Address Family numbers +# +# arch/i386/Kconfig +# 2004/06/05 01:09:20-04:00 jeffpc@optonline.net +12 -0 +# VSSI config option +# +# drivers/pci/hotplug/vssiphp.c +# 2003/08/27 07:44:50-07:00 greg@kroah.com +3 -3 +# PCI hotplug: fix up a bunch of copyrights that were incorrectly declared. +# +# drivers/pci/hotplug/vssiphp.c +# 2003/06/25 17:24:41-07:00 greg@kroah.com +232 -0 +# +# drivers/pci/hotplug/vssiphp.c +# 2003/06/25 17:24:41-07:00 greg@kroah.com +0 -0 +# BitKeeper file /home/greg/linux/BK/pci-2.5/drivers/pci/hotplug/fakephp.c +# +diff -Nru a/arch/i386/Kconfig b/arch/i386/Kconfig +--- a/arch/i386/Kconfig 2005-05-14 18:49:11 -04:00 ++++ b/arch/i386/Kconfig 2005-05-14 18:49:11 -04:00 +@@ -501,6 +501,36 @@ + cost of slightly increased overhead in some places. If unsure say + N here. + ++config VSSI ++ bool "Virtual Single System Image (EXPERIMENTAL)" ++ depends on SMP && !MODULES && HOTPLUG && EXPERIMENTAL ++ help ++ This option enables the creation of a virtual single system image ++ cluster. The resulting cluster will behave like a SSI system. ++ ++ Note: If you want to use more than 1GB of total RAM, make sure High Memory ++ Support is turned on. ++ ++ If you don't know what to do here, say N. ++ ++config VSSI_PROC_FS ++ bool "Virtual Single System Image /proc interface" ++ depends on VSSI && PROC_FS ++ help ++ This option creates /proc/vssi/ directory along with several files ++ with statistics and configuration. ++ ++ If you don't know what to do here, say N. ++ ++config VSSI_VP2P ++ bool "Virtual PCI-2-PCI bridge (EXPERIMENTAL)" ++ depends on VSSI && HOTPLUG_PCI ++ help ++ This option allows the kernel to create a virtual PCI-2-PCI bridge ++ over standard ethernet interface. ++ ++ If you don't know what to do here, say N. ++ + config PREEMPT + bool "Preemptible Kernel" + help +diff -Nru a/init/main.c b/init/main.c +--- a/init/main.c 2005-05-14 18:49:11 -04:00 ++++ b/init/main.c 2005-05-14 18:49:11 -04:00 +@@ -46,6 +46,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -743,6 +744,8 @@ + + (void) sys_dup(0); + (void) sys_dup(0); ++ ++ vssi_init(); + + /* + * We try each of these until one succeeds. +diff -Nru a/net/Makefile b/net/Makefile +--- a/net/Makefile 2005-05-14 18:49:11 -04:00 ++++ b/net/Makefile 2005-05-14 18:49:11 -04:00 +@@ -42,6 +42,7 @@ + obj-$(CONFIG_ECONET) += econet/ + obj-$(CONFIG_VLAN_8021Q) += 8021q/ + obj-$(CONFIG_IP_SCTP) += sctp/ ++obj-$(CONFIG_VSSI) += vssi/ + + ifeq ($(CONFIG_NET),y) + obj-$(CONFIG_SYSCTL) += sysctl_net.o