sys7.1-doc-wip/OS/NetBoot/ATBootEqu.a
2019-07-27 22:37:48 +08:00

120 lines
5.0 KiB
Plaintext

;__________________________________________________________________________________________________
;
; File: ATBootEqu.a
;
; Contains: Equates for .ATBoot driver (network booting)
;
; Written by: Patrick Dyson
;
; Copyright © 1989-1990 by Apple Computer, Inc. All rights reserved.
;
; Change History (most recent first):
;
; <6> 3/9/90 PWD Added offsets to driver globals for number of attempts and last
; big error.
; <5> 2/20/90 PWD fixed equates for boot blocks as per comment in atbootequ.a
; <4> 1/25/90 PWD fixed equates for boot blocks.
; <3> 12/28/89 SWC Fixed header and set tabs to 4.
; <2> 12/19/89 PWD Adding to bbs
; <1.1> 12/12/89 PWD Added support for self-authenticating images
; <1.0> 10/30/89 PWD Adding to EASE
;__________________________________________________________________________________________________
BootDDPType EQU 10 ; our DDP type
BootSocket EQU 10 ; our static socket
minPktSize EQU 6 ; the minumum header size
BootStore EQU $B50 ; lomem storage place
;
; Constants within the packet for a received block packet
;
packetVersion EQU 1 ; (byte) Protocol version number
rbNullCommand EQU 0 ; ignore this one
rbMapUser EQU 1 ; user record request
rbUserReply EQU 2 ; user record reply
rbImageRequest EQU 3 ; image request & bitmap
rbImageData EQU 4 ; image data
rbImageDone EQU 5 ; server done with current image
rbUserRecordUpdate EQU 6 ; new user info to server
rbUserRecordAck EQU 7 ; info received from server
;
; Offsets within the socket listener globals
;
bootImageID EQU 0 ; (word) our image ID (-1 if uninit)
machineID EQU bootImageID+2 ; (word) our machine id
bitmapBase EQU machineID+2 ; (long) bitmap buffer area
lastBlockNo EQU bitmapBase+4 ; (word) last block we have space for
packetsReceived EQU lastBlockNo+2 ; (word) image blocks received
imageBuffer EQU packetsReceived+2 ; (long) image buffer area
blockSize EQU imageBuffer+4 ; (word) data block size
trafficTimer EQU blockSize+2 ; (long) ticks when last block in
progressTimer EQU trafficTimer+4 ; (long) ticks when last NEW block in
retransThreshold EQU progressTimer+4 ; (long) dynamic ticks between retrans
roundTrip EQU retransThreshold+4 ; (word) packet roundtrip time
backOff EQU roundTrip+2 ; (word) exponential backoff factor
lastRetransmission EQU backOff+2 ; (long) time of last transmission
server_addr EQU lastRetransmission+4 ; (long) server address...
tuple_table EQU server_addr+4 ; (long) pointer to tuple table
readPacketArea EQU tuple_table+4 ; (586 bytes) ddp read area
endOfGlobals EQU readPacketArea+586 ; end of globals
SktLsnGSize EQU endOfGlobals ; globals size
;
; Offsets within a user record
;
; <pd 5> now padded to 586 bytes (maxddpsize)
URserverName EQU 0 ; server name...
URserverZone EQU URserverName+33 ; server zone
URserverVol EQU URserverZone+33 ; volume name
URserverAuthMeth EQU URserverVol+32 ; user name
URsharedSysDirID EQU URserverAuthMeth+2 ; shared system folder dir id
URuserDirID EQU URsharedSysDirID+4 ; user system folder dir id
URfinderInfo EQU URuserDirID+4 ; saved finder info
URbootBlocks EQU URfinderInfo+32 ; saved boot blocks
URbootFlag EQU URbootBlocks+138 ; server based flags
UREnd EQU URbootFlag+2 ; total structure size
URSize EQU UREnd+306-18 ; pad for maxddp size
;
; Offsets within the driver globals
;
netBootRefNum EQU 0 ; (word) refnum of .netBoot driver
netError EQU netBootRefNum+2 ; (word) last error recorded
netimageBuffer EQU netError+2 ; (long) pointer to downloaded image
netImageSignature EQU netimageBuffer+4 ; (16 bytes) image signature
netServerAddr EQU netImageSignature+16 ; (long) source server address
netBootPktRply EQU netServerAddr+4 ; (BootPacketReply)
netBootStorage EQU netBootPktRply+18+URsize; storage for downloaded code
netpram EQU netBootStorage+4 ; (ptr) copy of pram record
netnumAttempts EQU netpram+4 ; number of unsuccessful attempts
netbigError EQU netnumAttempts+2 ; error that makes us guest boot
endOfDGlobals EQU netbigError+2
ATGlobalsSize EQU endOfDGlobals ; size of globals for allocation
;
; Additional offsets for the record passed to the start code (pram record)
;
PRosType EQU 0 ; (byte) os type
PRprotocol EQU PRosType+1 ; (byte) protocol to boot over
PRerrors EQU PRprotocol+1 ; (byte) last error
PRflags EQU PRerrors+1 ; (byte) net boot flags
PRsrvrHint EQU PRflags+1 ; (byte) last server address we booted from
PRtimeout EQU PRsrvrHint+1 ; (byte) seconds to wait for bootserver
PRsignature EQU PRtimeout+1 ; 16 byte image signature
PRuserName EQU PRsignature+8 ; 31 byte user name
PRpassword EQU PRuserName+31 ; 8 byte password
PRsize EQU PRpassword+16 ; total structure size
;
; Constants for the flags (PRflags) (1=yes, 0=no) ain't binary great for boolean logic
;
PRbootingEnabled EQU 7 ; net booting disabled
PRsavedPasswd EQU 6 ; password saved