;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*- ;;; Patch file for System version 123.189 ;;; Reason: ;;; Create net:network-driver-initialization-list and make it accessible to ;;; (add-initialization) via :network-driver keyword. Makes it easy to add ;;; a new device driver without hacking (net:configure) ;;; Written 21-Jan-88 13:40:51 by pld at site Gigamos Cambridge ;;; while running on Jack Flanders from band 2 ;;; with Experimental System 123.186, Experimental Local-File 73.3, Experimental FILE-Server 22.1, Experimental Unix-Interface 11.0, Experimental Tape 18.0, Experimental KERMIT 34.3, Experimental ZMail 71.0, Experimental Lambda-Diag 15.0, microcode 1754, SDU Boot Tape 3.12, SDU ROM 8. ; From modified file DJ: L.NETWORK; PACKAGES.LISP#27 at 21-Jan-88 13:49:40 #10R USER#: #!:CL (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "USER"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; PACKAGES  " (defpackage network (:use "LISP") (:nicknames "NET") (:import-from 'global "ADD-INITIALIZATION" "ARRAY-INDEXED-P" "ARRAY-INITIALIZE" "ARRAY-LEADER" "ARRAY-LENGTH" "COPY-ARRAY-CONTENTS" "COPY-ARRAY-PORTION" "DEFSELECT" "DEFSELECT-INCREMENTAL" "DEFSUBST" "DELETE-INITIALIZATION" "FALSE" "INITIALIZATIONS" "LOCF" "MAKE-PROCESS" "NAMED-STRUCTURE-INVOKE" "NAMED-STRUCTURE-P" "NCONS" "PROCESS-RUN-FUNCTION" "PROCESS-WAIT" "PROCESS-WAIT-WITH-TIMEOUT" "SELECT-PROCESSOR" "STRING-APPEND" "STRING-LENGTH" "STRING-SEARCH" "STRING-SEARCH-CHAR" "STRING-SEARCH-SET" "SUBSTRING" "TIME-DIFFERENCE" "TIME-INCREMENT" "TIME-LESSP" "TRUE" "WITH-LOCK" "WITHOUT-INTERRUPTS" "ZUNDERFLOW" ;;Flavor stuff "COMPILE-FLAVOR-METHODS" "DEFFLAVOR" "DEFMETHOD" "LEXPR-SEND" "MAKE-INSTANCE" "SELF" "SEND" ;;Debugging stuff "EH-ARG" "EH-LOC" ) (:export "ADD-INITIALIZATION" "ARRAY-INDEXED-P" "ARRAY-INITIALIZE" "ARRAY-LEADER" "ARRAY-LENGTH" "COPY-ARRAY-CONTENTS" "COPY-ARRAY-PORTION" "DEFSELECT" "DEFSELECT-INCREMENTAL" "DEFSUBST" "DELETE-INITIALIZATION" "FALSE" "INITIALIZATIONS" "LOCF" "MAKE-PROCESS" "NAMED-STRUCTURE-INVOKE" "NAMED-STRUCTURE-P" "NCONS" "PROCESS-RUN-FUNCTION" "PROCESS-WAIT" "PROCESS-WAIT-WITH-TIMEOUT" "SELECT-PROCESSOR" "STRING-APPEND" "STRING-LENGTH" "STRING-SEARCH" "STRING-SEARCH-CHAR" "STRING-SEARCH-SET" "SUBSTRING" "TIME-DIFFERENCE" "TIME-INCREMENT" "TIME-LESSP" "TRUE" "WITH-LOCK" "WITHOUT-INTERRUPTS" "ZUNDERFLOW" ;;Flavor stuff for tcp-stream "COMPILE-FLAVOR-METHODS" "DEFFLAVOR" "DEFMETHOD" "LEXPR-SEND" "MAKE-INSTANCE" "SELF" "SEND" ;;Debugging stuff "EH-ARG" "EH-LOC" )) )) ; From modified file DJ: L.SYS; LTOP.LISP#575 at 21-Jan-88 13:41:10 #8R SYSTEM-INTERNALS#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS"))) (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; LTOP  " (DEFCONST INITIALIZATION-KEYWORDS '((:SITE SITE-INITIALIZATION-LIST :NOW) (:SITE-OPTION SITE-OPTION-INITIALIZATION-LIST :NOW) (:DISABLE-SERVICES DISABLE-SERVICES-INITIALIZATION-LIST) (:ENABLE-SERVICES ENABLE-SERVICES-INITIALIZATION-LIST) (:SYSTEM SYSTEM-INITIALIZATION-LIST :FIRST) (:FULL-GC GC::FULL-GC-INITIALIZATION-LIST) (:AFTER-FULL-GC GC::AFTER-FULL-GC-INITIALIZATION-LIST) (:GC-SYSTEM-RELEASE GC::GC-SYSTEM-RELEASE-INITIALIZATION-LIST) (:ONCE ONCE-ONLY-INITIALIZATION-LIST :FIRST) (:LOGIN LOGIN-INITIALIZATION-LIST) (:LOGOUT LOGOUT-INITIALIZATION-LIST) (:WARM WARM-INITIALIZATION-LIST) (:COLD COLD-INITIALIZATION-LIST) (:BEFORE-COLD BEFORE-COLD-INITIALIZATION-LIST) (:network-driver net:network-driver-initialization-list)) "Alist defining keywords accepted by ADD-INITIALIZATION. Each element looks like (KEYWORD LIST-VARIABLE-NAME [TIME-TO-RUN]) TIME-TO-RUN should be NOW, FIRST, NORMAL or REDO, or omitted. It is a default in case the ADD-INITIALIZATION doesn't specify any of them.") )) ; From modified file DJ: L.NETWORK.KERNEL; NETWORK-INTERFACE.LISP#123 at 21-Jan-88 13:41:26 #10R NETWORK#: #!:CL (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "NETWORK"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; KERNEL; NETWORK-INTERFACE  " (defvar network-driver-initialization-list nil "The initialization list for network drivers") )) ; From modified file DJ: L.NETWORK.DRIVERS; LOOPBACK.LISP#18 at 21-Jan-88 13:45:33 #10R NETWORK#: #!:CL (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "NETWORK"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; DRIVERS; LOOPBACK  " (add-initialization "Start Loopback interface" '(setup-loopback "LOOPBACK") :network-driver) )) ; From modified file DJ: L.NETWORK.DRIVERS; SHARE.LISP#73 at 21-Jan-88 13:45:38 #10R SYSTEM-INTERNALS#: #!:CL (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; DRIVERS; SHARE  " (add-initialization "Start Share interface" '(setup-share-interface "SHARE") :network-driver) )) ; From modified file DJ: L.NETWORK.DRIVERS; CADR.LISP#26 at 21-Jan-88 13:46:33 #10R CHAOS#: #!:CL (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "CHAOS"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; DRIVERS; CADR  " (add-initialization "Start CADR interface" '(setup-cadr-network "ONE") :network-driver) )) ; From modified file DJ: L.NETWORK.DRIVERS; EXPLORER.LISP#23 at 21-Jan-88 13:47:14 #10R ETHERNET#: #!:CL (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "ETHERNET"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; DRIVERS; EXPLORER  " (add-initialization "Start EXPLORER interface" '(setup-explorer-ethernet "ONE") :network-driver) )) ; From modified file DJ: L.NETWORK.KERNEL; CONFIGURE.LISP#89 at 21-Jan-88 13:54:41 #10R NETWORK#: #!:CL (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "NETWORK"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; KERNEL; CONFIGURE  " (defun setup-lambda-ethernet (tag) (when (eq si:processor-type-code si:lambda-type-code) (si:set-processor-owning-ethernet :find :3com) (cond ((eq ethernet:*3com-owner* si:*my-op*) (ethernet:setup-3com TAG) (si:set-processor-owning-ethernet :give-up :excelan)) (t (si:set-processor-owning-ethernet :find :excelan) (if (eq ethernet:*excelan-owner* si:*my-op*) (ethernet:setup-excelan TAG)))))) )) ; From modified file DJ: L.NETWORK.KERNEL; CONFIGURE.LISP#89 at 21-Jan-88 13:55:24 #10R NETWORK#: #!:CL (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "NETWORK"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; KERNEL; CONFIGURE  " (add-initialization "Start Lambda Ethernet interface" '(setup-lambda-ethernet "ONE") :network-driver) )) ; From modified file DJ: L.NETWORK.KERNEL; CONFIGURE.LISP#89 at 21-Jan-88 13:58:10 #10R NETWORK#: #!:CL (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "NETWORK"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; KERNEL; CONFIGURE  " (defun configure () ;; If we are in the cold load, do a mini-configuration (when si:*in-cold-load-p* (cold-load-configure) (return-from configure t)) ;; Clear out current network configuration (deconfigure) ;; Reset the int-pkts (initialize-network-buffers) ;; Put the network clock function onto the clock list (without-interrupts (pushnew 'net:network-clock sys:clock-function-list)) ;; Start the device drivers (initializations 'network-driver-initialization-list t) ;; Start the protocol modules (when (eq si:*my-op* si:*ethernet-hardware-controller*) (arp:setup-arp)) (chaos:setup-chaos) (let ((ip-address-p (ip:setup-ip))) (cond (ip-address-p (icmp:setup-icmp) (udp:setup-udp) (tcp:setup-tcp)) (t (tv:notify nil "This processor has no Internet Address"))) (select-processor (:lambda ;;KLUDGE: share interface must be set up before chaos, as chaos enables itself on share device -- ;;but share interface sets %processor-conf-chaos-address, so must reset it after chaos ;;has set its address (send si:share-interface :reset) ;; for all of our other processors, set up ARP translation for share interface (setq *processor-forwarding-alist* nil) (dolist (op si:*other-processors*) (push (cons op nil) *processor-forwarding-alist*) (dolist (domain '(:chaos :internet)) (let ((address (find-network-address-for-other-processor op domain))) (when address (add-address-info address domain si:share-interface op)))))) ((:cadr :explorer))) (dolist (x (ni-address-alist *loopback-interface*)) ;;For all protocols enabled on the loopback interface, set up address translations (when (second x) (add-address-info (second x) (first x) *loopback-interface* nil))) (when ip-address-p ;;Start the TCP/UDP server process and enable network services (tcp-application:initialize-tcp-server-process) (tcp-application:enable-all-network-services) (tcp-application:initialize-udp-rwho-server-process))) ;;Start the network receiver process (start-receiver) (setup-network-gauges) ;If Fancy-Landscape enabled, populate screen with gauges t) ))