;;; -*- Mode: Common-Lisp; Package: FS; Base: 10.; Patch-File: T -*-

;;; Reason: Find-lm-band would not work when the FILE CPU type was Explorer II. [10481]

;;;                           RESTRICTED RIGHTS LEGEND
;;;
;;; Use, duplication, or disclosure by the Government is subject to
;;; restrictions as set forth in subdivision (c)(1)(ii) of the Rights in
;;; Technical Data and Computer Software clause at 52.227-7013.
;;;
;;;   TEXAS INSTRUMENTS INCORPORATED      
;;;   P.O. BOX 2909, M/S 2151             
;;;   AUSTIN, TEXAS 78769                 
;;;
;;; Copyright (C) 1989 Texas Instruments Incorporated.
;;; All rights reserved.

;;; Patch file for LOCAL-FILE version 6.1
;;; Written 10/01/89 00:53:14 by BERGER,
;;; while running on ARIES from band LODX
;;; With SYSTEM 6.17, VIRTUAL-MEMORY 6.2, EH 6.5, MAKE-SYSTEM 6.0, MICRONET 6.0, LOCAL-FILE 6.0,
;;;  BASIC-PATHNAME 6.1, NETWORK-SUPPORT-COLD 6.0, BASIC-NAMESPACE 6.2, NETWORK-NAMESPACE 6.0,
;;;  DISK-IO 6.1, DISK-LABEL 6.0, BASIC-FILE 6.3, MAC-PATHNAME 6.0, NETWORK-PATHNAME 6.0,
;;;  COMPILER 6.12, TV 6.15, DATALINK 6.0, CHAOSNET 6.1, GC 6.3, MEMORY-AUX 6.0, NVRAM 6.1,
;;;  SYSLOG 6.1, STREAMER-TAPE 6.4, UCL 6.0, INPUT-EDITOR 6.0, METER 6.1, ZWEI 6.5,
;;;  DEBUG-TOOLS 6.3, NETWORK-SUPPORT 6.0, NETWORK-SERVICE 6.1, DATALINK-DISPLAYS 6.0,
;;;  FONT-EDITOR 6.1, SERIAL 6.0, PRINTER 6.3, MAC-PRINTER-TYPES 6.1, PRINTER-TYPES 6.1,
;;;  IMAGEN 6.0, SUGGESTIONS 6.0, MAIL-DAEMON 6.2, MAIL-READER 6.2, TELNET 6.0, VT100 6.0,
;;;  NAMESPACE-EDITOR 6.0, PROFILE 6.1, VISIDOC 6.4, TI-CLOS 6.20, CLEH 6.5, IP 3.50,
;;;  Experimental CLX 6.3, CLUE 6.17, X11M 6.14, Experimental BUG 11.15, VISIDOC-SERVER 6.1,
;;;  DECNET 1.70,  microcode 429, Band Name: Rel 6.0 + SLE 8/30

#!C
; From file FSGUTS.LISP#> LOCAL-FILE; SYS:
#10R FILE-SYSTEM#:
(COMPILER-LET ((*PACKAGE* (FIND-PACKAGE "FILE-SYSTEM"))
                          (SI:*LISP-MODE* :COMMON-LISP)
                          (*READTABLE* COMMON-LISP-READTABLE)
                          (SI:*READER-SYMBOL-SUBSTITUTIONS* SYS::*COMMON-LISP-SYMBOL-SUBSTITUTIONS*))
  (COMPILER#:PATCH-SOURCE-FILE "SYS: LOCAL-FILE; FSGUTS.#"


(DEFUN FIND-LM-BAND (&OPTIONAL NAME-OF-FILE-PARTITION)
  "Try to find a file band in the follow sequence:
  first: Try to boot the one asked for by the user. Abort if not found.
  second: Try to find the file band that is a default and not diagnostic.
  third: Try to find the file band named FILE on any unit.
  Returns the unit and partition name or aborts boot if not found."
  (DECLARE)
  (BLOCK ()
    (RETURN
     (LET ((POSS (append (SI::GET-PARTITION-LIST %BT-FILE-BAND %CPU-EXPLORER)     ;12-03-87 DAB
			 (SI::GET-PARTITION-LIST %BT-FILE-BAND %cpu-TI-Explorer-II) ; DAB 10-01-89
			 (SI::GET-PARTITION-LIST %BT-FILE-BAND %CPU-TI-LISP)))
	     (UNIT NIL))
	 (WHEN NAME-OF-FILE-PARTITION
	   (IF (SETQ UNIT
		  (DOLIST (PARTITION POSS NIL)
		    (IF (STRING-EQUAL (SECOND PARTITION) (STRING-UPCASE NAME-OF-FILE-PARTITION))
		      (RETURN (FIRST PARTITION)))))
	     (RETURN (VALUES UNIT NAME-OF-FILE-PARTITION))
	     (PROGN
	       (NOTIFY (FORMAT () "No ~a partition. Aborting." NAME-OF-FILE-PARTITION))
	       (THROW 'BOOT-FILE-SYSTEM
		      ()))))
	 (MULTIPLE-VALUE-BIND (UNIT PART)
	   (DOLIST (PARTITION POSS NIL)
	     (WHEN (AND
	       (SI::TEST-PARTITION-PROPERTY (SECOND PARTITION) (FIRST PARTITION) :DEFAULT
					    (THIRD PARTITION))
	       (NOT
		(SI::TEST-PARTITION-PROPERTY (SECOND PARTITION) (FIRST PARTITION) :DIAGNOSTIC
					     (THIRD PARTITION))))
	       (RETURN (VALUES (FIRST PARTITION) (SECOND PARTITION)))))
	   (WHEN UNIT
	     (RETURN (VALUES UNIT PART))))
	 (WHEN (SETQ UNIT
		(DOLIST (PARTITION POSS NIL)
		  (IF (STRING-EQUAL (SECOND PARTITION) "FILE")
		    (RETURN (FIRST PARTITION)))))
	   (RETURN (VALUES UNIT "FILE")))
	 (NOTIFY "No FILE partition.  Aborting.")
	 (THROW 'BOOT-FILE-SYSTEM
		())))))
))
