sash(8) (Nur RM400) sash(8)
NAME
sash - Standalone-Shell zum Booten von Reliant UNIX auf einer RM400
SYNTAX
Die SASH wird von der RM400-Firmware entweder manuell oder automatisch
aufgerufen.
BESCHREIBUNG
Mit der Standalone-Shell (SASH) wird das Betriebssystem Reliant UNIX
auf RM400-Systemen geladen. Die SASH wird durch die RM400-Firmware von
einer bestimmten Festplatte, einer CD-ROM oder einem Band in den
Hauptspeicher geladen. Die Kommandos werden dann von der SASH verar-
beitet, um das Betriebssystem zu booten und die Steuerung nach der
Beendigung des Bootens an das Betriebssystem zu übergeben.
Zum Booten eignen sich SCSI-E/A-Platten (IOS), CD-ROM- und Bandlauf-
werke. Außerdem kann die SASH über LAN gebootet werden. Danach kann
die SASH ein beliebiges Plattenlaufwerk mit einem ufs-Dateisystem zum
Booten der ausführbaren Systemkerndatei benutzen, die auf diesem Gerät
enthalten ist. Dieses Gerät muß nicht zuvor eingehängt werden.
Von einem Bandgerät wird im Normalfall die Betriebssystem-Software
installiert. Es besteht allerdings auch die Möglichkeit, nur einen
Systemkern von einer CD-ROM bzw. von einem Bandgerät zu laden. Diese
Möglichkeit eignet sich zur Wiederherstellung des Systems, wenn auf
der Boot-Platte ein Defekt aufgetreten ist; dadurch wird verhindert,
daß die SASH Leseoperationen auf die Platte ausführt.
Nach dem Laden des Systemkern-Abbilds wird auf der ersten Seite des
Speichers (bei 4 KByte) noch vor dem Systemkern-Code ein Argumentvek-
tor eingerichtet. Hier werden Optionen wie z. B. das Reliant UNIX
Root-Gerät, der Typ des Root-Dateisystems etc. an das Betriebssystem
weitergeleitet. Nach dem Einrichten dieses Vektors startet die SASH
die Ausführung des Systemkerns, indem sie zu seinem Einsprungspunkt
verzweigt. Abschließend wird die SASH durch das Betriebssystem aus dem
Speicher entfernt.
Beim Starten des Systems versucht die SASH eine Gerätedatei namens
STARTUP an verschiedenen Stellen zu Diagnosezwecken zu finden. Wenn
die Datei gefunden wird, wird die normale Startprozedur abgebrochen
und ein spezieller Teil der SASH, die Test-und-Diagnose-Shell
(TDSH/TDFSH), aktiviert. Im Normalfall geschieht dies bei der Durch-
führung von Diagnosetests durch den Kundendienst. Die Datei muß in
einem speziellen Dateisystem enthalten sein und wird auf der Diskette
und der Festplatte (Swap-Bereich) gesucht. Wenn die Datei nicht gefun-
den wird, wird so lange die normale Startprozedur durchgeführt, bis
der SASH-Kommando-Parser aufgerufen oder das Betriebssystem Reliant
UNIX erfolgreich gebootet wird.
Der SASH-Kommando-Parser gibt das Prompt sash: aus, die RM400-Firmware
dagegen das Prompt >>. Die Kommandos der SASH sind nachfolgend mit
ihrer Syntax sowie einer Beschreibung sämtlicher optionalen und
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
sash(8) (Nur RM400) sash(8)
obligatorischen Argumente aufgeführt.
Bei fast jedem Drücken von ^D oder ^C muß die SASH die Steuerung wie-
der an die RM400-Firmware zurückgeben. Sie kann dann erneut von diesem
Punkt aus geladen werden.
Die SASH-Kommandos
Die folgende Liste enthält die Kommandos und Optionen der SASH, die
beim Prompt sash: eingegeben werden können. Die Kommandos sind in
alphabetischer Reihenfolge aufgeführt. Die erwähnten Umgebungsvaria-
blen werden unter nvram(7) beschrieben.
Die Variablen number oder address, die in der nachfolgenden Liste ent-
halten werden, können eines der folgenden Formate haben:
______________________________________________________________________
| Format | Beschreibung |
|__________________|__________________________________________________|
| decbase | decbase ist eine aus Dezimalziffern (0..9) |
| | bestehende Zahl |
| 0xhexbase | hexbase ist eine aus Hexadezimalziffern |
| | (0..9a..f) bestehende Zahl |
| 0octbase | octbase ist eine aus Oktalziffern (0..7) |
| | bestehende Zahl |
|__________________|__________________________________________________|
Beispiel:
Es spielt keine Rolle, ob für number der Wert 0xff, 0377 oder 255
angegeben wird.
Die Variable range in der nachfolgenden Liste bezieht sich auf einen
Speicherbereich und kann folgende Formate haben:
______________________________________________________________________
| Range | Beschreibung |
|__________________|__________________________________________________|
| base | Gibt den Inhalt der Speicheradresse base an. |
| base#count | Gibt den Inhalt des Speicherbereichs an, der |
| | bei base beginnt und bei base + count endet. |
| base:limit | Gibt den Inhalt des Speicherbereichs an, der |
| | bei base beginnt und bei limit endet. |
|__________________|__________________________________________________|
Beispiel:
Die Angaben 0xa0400000#36 und 0xa0400000:0xa0400020 für range stehen
für ein und denselben Speicherbereich, der bei der Speicheradresse
0xa+0400000 (hex) beginnt und mit der Speicheradresse 0xa0400020 (hex)
endet.
Die Variable length in der nachfolgenden Liste steht für eine Länge,
die über die folgenden Zeichen angegeben werden kann:
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
sash(8) (Nur RM400) sash(8)
______________________________________________________________________
| Zeichen | Länge |
|__________________|__________________________________________________|
| -b | Byte (8 Bit) |
| -h | Halbwort (16 Bit) |
| -w | Wort (32 Bit) (Standard) |
|__________________|__________________________________________________|
______________________________________________________________________
⊕ auto
Lädt automatisch die Datei, die der Umgebungsvariable bootfile
zugeordnet ist. Das Gerät, von dem diese Datei geladen wird, muß
bereits bootfile zugeordnet sein.
Beispiel:
Wenn der Umgebungsvariablen bootfile der Wert dkncr(0,0,10)sash
zugeordnet ist, wird die SASH von der Festplatte #0 aus dem
Bereich #10 geladen.
______________________________________________________________________
⊕ boot [-n] [-f file] [args]
Lädt eine Datei vom angegebenen Gerät und führt sie aus.
-n Nur für die SNI-interne Entwicklung. Die ausführbare
Datei des Betriebssystems wird geladen, aber nicht
gestartet. Nachdem die SASH die ausführbare Datei gela-
den hat, kehrt sie zum Kommando-Parser zurück. Bei
einem nachfolgenden Boot-Kommando muß dann von SASH
eine andere ausführbare Datei geladen und/oder gestar-
tet werden. Dieses Kommando ist immer dann nützlich,
wenn zusätzlich zu einem Fehlersuch-Monitor eine aus-
führbare Datei geladen werden soll. Eine mit dieser
Option geladene ausführbare Datei kann später mit dem
Kommando go gestartet werden.
-f file Gibt den Namen der zu bootenden Datei an. Wenn kein
Dateiname angegeben wird, lädt das Kommando boot die
Datei, die der Umgebungsvariablen bootfile zugeordnet
ist. Der Dateiname selbst kann den Namen des Geräts
enthalten, in dem die Datei enthalten ist. Wenn kein
Gerät angegeben wird, wird der Wert der Umgebungsvaria-
blen path dem Dateinamen vorangestellt.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
sash(8) (Nur RM400) sash(8)
Der Dateiname kann eines der folgenden Formate haben:
________________________________________________________________________________
| Gerät | Format |
|________|_____________________________________________________________________|
| Band | tpncr([hostadapternumber],[SCSIID],filenumber) |
| | oder |
| | tpncr([hostadapternumber],[SCSIID],)filename |
|________|_____________________________________________________________________|
| Platte | dkncr([hostadapternumber],[SCSIID],[partitionnumber])filename |
|________|_____________________________________________________________________|
Wenn eines der optionalen Argumente nicht angegeben
wird, wird sein Wert auf 0 gesetzt.
args Argumente, die bei einem sofortigen Start an das geboo-
tete Abbild weitergeleitet werden sollen. Argumenten,
die mit einem Bindestrich ("-") beginnen, muß ein wei-
terer Bindestrich vorangestellt werden; damit wird dem
SASH-Kommando-Parser mitgeteilt, daß es sich nicht um
eine Boot-Option handelt. Der zusätzliche Bindestrich
wird vor der Übergabe des Arguments an das Programm
wieder gelöscht.
Beispiel:
Im folgenden Beispiel wird die Datei unix von Partition #0 der
Platte disk#0, die an host_adapter#0 angeschlossen ist, geladen
und dann im Betriebszustand S ausgeführt:
sash: boot -f dkncr(,,)unix initarg=-s
______________________________________________________________________
⊕ cat [file1 file2 ... fileN]
Inhalt der aufgeführten Datei(en) ausgeben.
Wenn der angegebene Dateiname keine Gerätebezeichnung enthält,
wird die Umgebungsvariable path der Datei vorangestellt.
______________________________________________________________________
⊕ cp [-b blocksize] [-c count] file1 file2
Kopiert den Inhalt von file1 nach file2.
file1 ist die zu kopierende Datei und file2 die Datei, in die
file1 kopiert werden soll. file1 und file2 können zeichenorien-
tierte Geräte (raw) sein.
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
sash(8) (Nur RM400) sash(8)
Während der Ausführung dieses Kommandos wird für jeden übertrage-
nen Datensatz ein Punkt (.) auf dem Bildschirm dargestellt.
-b blocksize
blocksize steht für die Anzahl der Bytes, die bei jedem
Lese-/Schreibzugriff von file1 auf file2 kopiert wer-
den. Auf blocksize kann eines der folgenden Zeichen mit
folgender Bedeutung folgen:
___________________________________________________________
| Zeichen| Bedeutung |
|________|_________________________________________________|
| b, B | blocksize wird mit 512 multipliziert |
| k, K | blocksize wird mit 1024 (1 KByte) multipliziert|
|________|_________________________________________________|
HINWEIS: Zwischen blocksize und den nachfolgenden Mul-
tiplikatorzeichen darf kein Leerzeichen stehen!
Ist -b nicht angegeben, wird blocksize standardmäßig
auf 512 Byte gesetzt.
Für zeichenorientierte Geräte (raw) sollte blocksize
ein ganzzahliges Vielfaches der physischen Datensatz-
länge des Geräts betragen.
-c count Gibt die maximale Anzahl der zu übertragenden Bytes an.
Wenn -c nicht angegeben wird, wird der Kopiervorang
beim EOF-Zeichen von file1 beendet.
Beispiel:
Um file3 (die vierte Datei; file0 ist die erste Datei) auf dem
Streamer-Band in Partition 1 der Platte zu kopieren, geben Sie
folgendes ein:
sash: cp -b 16k tpncr(,6,3) dkncr(,,1)
______________________________________________________________________
⊕ disable [consoledev]
Unterbindet die Eingabe von und die Eingabe auf das angegebene
Konsolgerät. Wenn Sie disable ohne Argumente benutzen, werden die
aktuell aktivierten Konsolgeräte angezeigt.
Beispiel:
disable tty(1) deaktiviert den seriellen Remote-Anschluß tty(1).
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98
sash(8) (Nur RM400) sash(8)
______________________________________________________________________
⊕ dump [length] [format] [range]
Formatiert den Speicherinhalt und zeigt ihn an.
length ist ein Zeichen, das die Länge des Speicherbereichs
angibt, von dem ein Speicherabzug erstellt werden soll.
format ist ein Zeichen, das die Länge des Speicherbereichs
angibt, von dem ein Speicherabzug erstellt werden soll.
_______________________________________
| Zeichen| Format |
|________|_____________________________|
| -B | binär |
| -c | ASCII-Zeichen |
| -d | dezimal |
| -o | oktal |
| -u | Dezimalzahl ohne Vorzeichen|
| -x | hexadezimal (Standard) |
|________|_____________________________|
range ist eine gültige Adresse im Speicher, die durch Dezi-
malziffern begrenzt sein kann.
Beispiel:
Das folgende Beispiel zeigt einen durch Halbworte angegebenen,
auf base#count gesetzten range. Da für format kein Argument ange-
geben wurde, wird das Standardformat (hex) benutzt.
sash: dump -h 0xbfc04000#5
0xbfc04000: 8dce 514 6 6900 1a3
______________________________________________________________________
⊕ enable [consoledev]
Ermöglicht die Eingabe von und die Ausgabe auf das angegebene
Konsolgerät durch den SASH-Kommando-Parser.
Wenn Sie enable ohne Argumente eingeben, werden die aktuell akti-
vierten Konsolgeräte angezeigt.
Beispiel:
enable tty(1) aktiviert den seriellen Remote-Anschluß tty(1).
Seite 6 Reliant UNIX 5.44 Gedruckt 11/98
sash(8) (Nur RM400) sash(8)
______________________________________________________________________
⊕ end
Beendet den Kommando-Parser der SASH und gibt die Steuerung an
den Prozeß zurück, durch den die SASH aufgerufen worden war.
Der Rückkehrwert entspricht dem letzten Rückkehrwert des Program-
mes, das von der SASH gebootet und ausgeführt worden ist.
______________________________________________________________________
⊕ fill [length] [-v val] [range]
Füllt den angegebenen Adreßbereich mit val.
length ist ein Zeichen, über das die Länge des zu füllenden
Speicherbereichs angegeben wird.
val ist eine Zahl, mit der der Speicherbereich gefüllt wer-
den soll.
range ist eine gültige Adresse im Speicher, die durch Dezi-
malzahlen begrenzt sein kann.
Beispiel:
Im folgenden Beispiel wird ein Speicherbereich mit einem Wort vom
Wert 0xff00ff00 gefüllt; der Speicherbereich beginnt bei
0xafffffff und besteht aus zehn 32-Bit-Speicherstellen:
sash: fill -w -v 0xff00ff00 0xafffffff#10
______________________________________________________________________
⊕ g [length] [address]
Zeigt den Inhalt einer einzelnen Speicherstelle im Dezimal-,
Hexadezimal- und ASCII-Zeichenformat an.
length ist ein Zeichen, über das die Länge des anzuzeigenden
Speicherbereichs angegeben wird.
address ist entweder eine einzelne Speicheradresse oder ein
Registername.
Seite 7 Reliant UNIX 5.44 Gedruckt 11/98
sash(8) (Nur RM400) sash(8)
Beispiel:
sash: g 0xa0013cfc
address value in decimal value in hex value in ASCII
0xa0013cfc: -192471552 0x8e200000 '\'
______________________________________________________________________
⊕ go [address] [-c args]
Hiermit wird eine ausführbare Datei gestartet, die zuvor mit dem
Kommando boot in den Speicher geladen worden ist.
address Gibt die Adresse an, an der die Ausführung eines zuvor
geladenen Abbilds gestartet werden soll. Dies ist immer
dann nützlich, wenn mehrere Abbilder geladen worden
sind und eine Adresse ausgewählt werden soll. Wenn die-
ses Argument nicht angegeben wird, wird das zuletzt
geladene Abbild gestartet.
-c args Wird zur Übergabe von Argumenten an das Programm
benutzt. Sämtliche Argumente, die auf diese Optionen
folgen, werden an das Programm weitergeleitet; Argumen-
ten, die mit einem Bindestrich beginnen, muß kein
zusätzlicher Bindestrich vorangestellt werden.
______________________________________________________________________
⊕ help [commandlist]
⊕ ? [commandlist]
Zeigt die Syntax für sämtliche Kommandos in commandlist an.
commandlist
besteht aus einem oder mehreren Kommandos, die durch
Leerzeichen voneinander getrennt sind.
Wenn Sie commandlist nicht angeben, gibt das Kommando help die
Syntax für alle Kommandos aus. Statt des Kommandonamens help kön-
nen Sie auch ein Fragezeichen (?) eingeben.
______________________________________________________________________
⊕ inittod [secs]
Initialisiert den Uhrenchip.
secs entspricht der Anzahl der Sekunden seit 1972. Wenn secs
nicht angegeben wird, wird standardmäßig der Wert Null
Seite 8 Reliant UNIX 5.44 Gedruckt 11/98
sash(8) (Nur RM400) sash(8)
eingesetzt.
Der Uhrenchip muß auf jeden Fall in Funktion sein, da andernfalls
das Betriebssystem nicht ordnungsgemäß funktioniert. Dieses Kom-
mando wird normalerweise durch den Hersteller ausgeführt.
HINWEIS: Dieses Kommando kann nur aufgerufen werden, wenn die
Umgebungsvariable bootmode auf d gesetzt ist.
Beispiel:
Dieses Beispiel beschreibt die Prozedur zur Initialisierung des
Uhrenchips.
1. Geben Sie das Kommando inittod ohne Argumente ein.
2. Rufen Sie nach dem Starten des Betriebssystems das Kommando
date(1) auf.
______________________________________________________________________
⊕ load [chardevice]
Nur zum SNI-internen Gebrauch (Kundendienst).
Mit dem Kommando load können Sie ein Speicherabbild über eine
serielle Leitung von einem System aus laden, auf dem das Programm
tip läuft.
______________________________________________________________________
⊕ p [length] [address] [value]
Setzt den angegebenen Wert an eine einzelne Speicherstelle.
length ist ein Zeichen, das die Länge der zu füllenden Spei-
cherstelle angibt.
address ist die Adresse einer einzelnen Speicherstelle.
value ist der Wert, auf den Sie die Adresse setzen möchten.
______________________________________________________________________
⊕ printenv [varlist]
Zeigt die Werte der Umgebungsvariablen in varlist an.
varlist ist eine spezielle Umgebungsvariable bzw. mehrere durch
Leerzeichen voneinander getrennte Variablen. Wenn keine
Umgebungsvariablen angegeben wurden, zeigt printenv
Seite 9 Reliant UNIX 5.44 Gedruckt 11/98
sash(8) (Nur RM400) sash(8)
sämtliche aktuell definierten Umgebungsvariablen an.
Beispiel:
Im folgenden Beispiel wird der Wert der Umgebungsvariablen
netaddr ausgegeben.
sash: printenv netaddr
netaddr = 141.29.51.3
______________________________________________________________________
⊕ prtod
Gibt den Inhalt des Uhrzeitregisters im Uhrenchip aus.
Der angezeigte Hex-Wert entspricht der Anzahl der Sekunden, die
seit 1972 vergangen sind.
Wenn Sie die Funktionsfähigkeit des Uhrenchips überprüfen möch-
ten, rufen Sie dieses Kommando zweimal auf. Wenn Sie das Kommando
aufrufen und dann erneut nach fünf Sekunden, sollte der beim
zweiten Mal angezeigte Wert um ca. 5 über dem ersten liegen. Wenn
der angezeigte Wert sich nicht ändert oder ein kleinerer Wert
angezeigt wird, rufen Sie das Kommando inittod auf.
Beispiel:
Das folgende Beispiel zeigt den Hex-Wert für die Anzahl der
Sekunden seit 1972.
sash: prtod
tod = 0x24bdda99
______________________________________________________________________
⊕ setenv [var] [value]
Richtet eine neue Umgebungsvariable ein oder ändert den Wert
einer vorhandenen Umgebungsvariablen.
var ist die Umgebungsvariable, die Sie einstellen möchten.
value ist der Wert, auf den Sie die Umgebungsvariable ein-
stellen möchten.
Umgebungsvariablen werden als ASCII-Zeichenketten dargestellt.
Die aktuellen Werte der Umgebungsvariablen werden an die
Seite 10 Reliant UNIX 5.44 Gedruckt 11/98
sash(8) (Nur RM400) sash(8)
Programme weitergeleitet, die durch die SASH gebootet werden.
Beispiel:
Im folgenden Beispiel wird die Umgebungsvariable rbaud auf 9600
eingestellt.
sash: setenv rbaud 9600
______________________________________________________________________
⊕ sload [-a] [-b] [consoledev]
Akzeptiert eine Teilmenge des Motorola S-Record-Protokolls. Es
werden die Datensatztypen 0, 3 und 7 akzeptiert.
-a Deaktiviert das Senden von Bestätigungen. Wenn Sie -a
nicht angeben, gibt sload ASCII ACK als Antwort für
jeden empfangenen S-Record mit gültiger Prüfsumme aus.
sload antwortet mit ASCII NACK für alle Datensätze mit
unkorrekter Prüfsumme.
-b Kündigt sload kombinierte Datensätze an, die sowohl
ASCII- als auch binäre Daten enthalten. Bei der Angabe
von -b erwartet sload kombinierte Datensätze, wie sie
durch das Programm sdownload generiert werden. Durch
die Verwendung dieser kombinierten Datensätze erhöht
sich der Durchsatz bei seriellen Datenübertragungen um
ca. das Doppelte.
consoledev
Der Name des Konsolgeräts.
Mit dem SPP-Kommando convert können Abbilder von S-Records
erzeugt werden.
Beispiel:
Das folgende Beispiel zeigt das Kommando zum Laden der S-Records
über tty(0).
sash: sload tty(1)
sload wartet jetzt darauf, daß die S-Records mit sdownload über
den tty(0)-Anschluß geladen werden.
Seite 11 Reliant UNIX 5.44 Gedruckt 11/98
sash(8) (Nur RM400) sash(8)
______________________________________________________________________
⊕ spin [[-i count1] [-c count2] [-v value] -(r|w)
(b|h|w) address]
Führt die Lade- oder Speicherungsoperationen an der angegebenen
Adresse und in der angegebenen Datenlänge (Byte, Halbwort oder
Wort) durch.
-i count1 count1 ist ein Wiederholungszähler, der jede "Unter-
gruppe" wie angegeben ausführt und dies dann count1-mal
wiederholt.
-c count2 count2 ist ein numerischer Wert, der die Anzahl der
Wiederholungen bzw. Kopien für alle nachfolgenden Lese-
zugriffe angibt.
-v value value ist ein numerischer Wert, der die Anzahl der Wie-
derholungen bzw. Kopien für alle nachfolgenden Schreib-
zugriffe angibt.
address ist die Hex-Adresse, auf die ein Lesezugriff erfolgen
soll.
count ist standardmäßig auf 1 eingestellt und value auf 0. Ein
negativer Zähler wird als "unendlich oft" interpretiert.
Durch die Kombination der Optionen -r und -w können Sie mehrere
Schreib- und/oder Lesezugriffe hintereinander ausführen; als
Datenlänge kann Byte (b), Halbwort (h) oder Wort (w) benutzt wer-
den.
Beispiel:
Im nachfolgenden Beispiel wird der Wert 9200 100 Mal an die
Adresse 0xa0300000 geschrieben; dann wird Adresse 0xa0300004 100
Mal gelesen und schließlich die ganze Operation 20 Mal wiede-
rholt.
sash: spin -i 20 -c 100 -v 9200 0xa0300000 -r 0xa0300004
______________________________________________________________________
⊕ tdsh
Nur zum SNI-internen Gebrauch (Kundendienst).
Ruft eine spezielle Test- und Diagnose-Shell auf. An dieser
Stelle wird beschrieben, wie Sie wieder zum SASH-Prompt zurück-
kehren.
Seite 12 Reliant UNIX 5.44 Gedruckt 11/98
sash(8) (Nur RM400) sash(8)
____________________________________________
| Bei der Anzeige| geben Sie folgendes ein:|
|________________|__________________________|
| & | e und RETURN |
| % | !;e und RETURN |
|________________|__________________________|
______________________________________________________________________
⊕ unsetenv [var]
Löscht eine Umgebungsvariable.
var ist die zu löschende Umgebungsvariable.
Beipiel:
Im folgenden Beispiel wird die Definition der Umgebungsvariablen
rbaud auf ihren früheren Wert zurückgesetzt.
sash: unsetenv rbaud
______________________________________________________________________
⊕ warm
Führt einen Warmstart des Systems durch. Mit diesem Kommando kön-
nen Sie vor dem Neustart einen Speicherabzug erstellen.
Der SASH-Monitor sucht nach dem Neustartblock an der Adresse
0x400 im physischen Speicher. Der Neustartblock wird unter den
folgenden Bedingungen als gültig angesehen:
- (offset 0) Wort 0 = 0xfeedface
- (offset 8) Wort 2 = 0
- (Offset 12) Wort 3 = Die Summe aus den 32-Bit-
Zweierkomplementen der ersten 32 Wörter, auf die Wort 1 (Off-
set 4) des Neustartblocks zeigt.
Das Kommando warm benutzt die Standardwerte, die im Neustartblock
des PROM enthalten sind (siehe unten):
Seite 13 Reliant UNIX 5.44 Gedruckt 11/98
sash(8) (Nur RM400) sash(8)
/*
* Restart block -- monitor support for "warm" starts
*
* prom will perform "warm start" if restartblk is properly set up:
* rbmagic == RESTARTMAGIC
* rboccurred == 0
* rbchecksum == 2's complement, 32-bit sum of first 32, 32-bit words
*/
define RESTARTMAGIC 0xfeedface
define RESTARTCSUMCNT 32 /* chksum 32 words of restart routine */
define RESTARTADDR 0xa0000400 /* prom looks for restart block here */
define RBBPADDR (RESTARTADDR+24) /* address of rbbpaddr */
ifdef LANGUAGEC
struct restartblk
{ :
int rbmagic; /* magic pattern */
int (*rbrestart)(); /* restart routine */
int rboccurred; /* to avoid loops on restart failure */
int rbchecksum; /* checksum of 1st 32 wrds of restrt */
char *rbfbss; /* start of prom bss and stack area */
char *rbebss; /* end of prom bss and stack area */
/*
* These entries are for communication between the debug monitor
* and the client process being debugged
* NOTE: a return value of -1 from (*rbvtop)() is distinguished
* to indicate that a translation could not be made.
*/
int (*rbbpaddr)(); /* breakpoint handler */
int (*rbvtop)(); /* virtual to physical conversion rtn */
/*
* config table goes here
*/
};
endif LANGUAGEC
SIEHE AUCH
nvram(7), prom(8).
Seite 14 Reliant UNIX 5.44 Gedruckt 11/98