./share/sys/                                                                                           775       0      12            0  4425704731   6030                                                                                                                                                                                                                                                                                                                                                                      ./share/sys/sun2/                                                                                      775       0      12            0  4425704644   6722                                                                                                                                                                                                                                                                                                                                                                      ./share/sys/sun2/OBJ/                                                                                  775       0      12            0  4425704643   7333                                                                                                                                                                                                                                                                                                                                                                      ./share/sys/sun2/OBJ/ar.o                                                                              444       0      12        32131  4424711756  10220                                                                                                                                                                                                                                                                                                                                                                           
0               NV.*n  9    #    BHm N    POJgp `p*nN^NuNV"n 0) H" ҁЁЁ     @!i 
 2R( p N^NuNVH0*n (m 2BB- B- | |  Bm 8Bm :B- B- 	B 
+|  ~+G +G +G B $+|  (B- 0B- 1G 6Bm 8B- B- . ~+@ <|              ,   gJ  gHy  N    XO   .< B@`,  fJg
S,   gJfJ  gHTHy  -N    PO,   gJ  gHy  RN    XO,  gJ  gHy  qN    XO  ,<  "9    SJn  .< B@`Jg
S,  gJfJ  gHy  N    XOp `4    Hx Hx 0n /N  jJg   Bp `B- pL0N^NuNVH0p . rAH. " ҁЁЁ    *@J  g/. 0n 
/Hy  N    O rlJ- f. ~/ Hy  N    POp` Jg.  g00n 
/HUa POJf. ~/ Hy  N    POp` J- g/- <Hy  N    POp` |  (m 2   |  - Hrn 
Ag &J- f/- <Hy  N    POB- p` lHx Hx 0n 
/N  jO -@   f  J  grHy  AN    XO`b-  g  /- <Hy  `DHx Hx 0n 
/N  jO Jf0-  g/- <Hy  \`-  g  /- <Hy  qN    PO- HH-@|  Hx Hx 0n 
/N  j| |  B-    Jm
- HHjBB- p`rpn 
@ B- Hx Hx 0n 
/N  jO J- f 2.  f B- .  VDA 	B 
+|  B- J  gHy  N    XOp L0N^NuNVH >. 
,. p rAH" ҁЁЁ    *@J  g/0H/ Hy  N    O - HHJo  g  B- J- g2Hx Hx 0H/ N  jO Hx Hx H/N  jO `  B- Hx Hx 0H/ N  jO J- g  Hx Hx 0H/ N  jO -  gxHx Hx H/N  jO | |  `THx B0H/ N  jO Hx Hx 0H/ N  jO Hx Hx H/N  jO | |  B- - HHjB m 2   B- J  gHy  N    XOp L N^NuNVH0p . rAH" ҁЁЁ    (@J  g/. /. 0n 
/Hy  N    O , HHjp`~K N    ,    ft~	*/N    XO;n 
 +n  +n  (B $HUN  XON    ,    g\/N    XOHUN    XO.    g
HUN    XOB L0N^Nu~@Hx HUN  BPOJg n/N    XOp`~@Hx HUN  BPOJgp`NVH0 *n 0-    rAH-@" ҁЁЁ    -@(@I @HUN    XOJ  g/-  HUHy  N    O B N    -@    f* .   g .   ȻgS    J    mJ f`)M B `^J  gHy  %N    XOHx Hy    N  BPOJgR    r;A  nA 1 n!m  LHUN    `@ l !M )M J  g/9    HUHy  GN    O  nJ( 6g/.N  XO/.N    XOp L0 N^NuNVH0..  " ҁЁЁ    *@J- 6f pHy  lN    ` ^/Hy  N    PO` `J  gHTHU/Hy  N    O HTN    XOJ  g/,  HTHy  N    O B- - HHkVA f(|  1-l (B $   
f  +|  
`  A ȹfJ- gB- )l  (`  , $ or9|  `   , $ f&    g/, /,  N    POB ()l  (`      f , r	Ь $+@  - 
 $f*+l  $|  1    fr-A|  `6r-A`.J  gHT/- 
/, $Hy  N    O r9|  `Tpl @ 0+l   ( .A  /0 HUN  PO@ 6-  6f|  6r9|  `J- 6g  `  J  g&0l ///, $/, /,  HTHy  N    O |  1+l  L    fHA g@A ȹg8J    nHy    N    XOR    J  g/9    Hy  VN    POHTN    XO(m L"f J  f L0N^NuNV.*n -m    g
   f2    f
r-A `      g      g  p` $   g
   f>    fr-A `|    fr-A `j    g`    gVp`     gFJg@/.  . A  Z/0 /. .A  Z/0 Hy  xN    | p`  +m  +n  J  g@/- $/- (/.  . A  Z/0 /. .A  Z/0 Hy  N    O    g   g
   fHUN  
XO`p *nN^NuNVH0~ *|    `J- g(m 2,  fRKrmp `FJfHTHy  N    PO    `"HUN  
XO@ 6J- 6gJ Lg/a VXOpL0N^NuNVH8 *n (m 2&m Lr-A,  g H   
 g J  g$/-  - A  Z/0 Hy   N    O +m  r
+A     `Hy   6N    XOHUN  rXOJg`Hy  !N    XO-   g|   - 
R+@ ` .-  g-  f/- <Hy   QN    PO` J-  1f.J- f /- 
Hy  p 0- / /- <Hy   N    ` A ȷgA g| J- f&/- 
Hy  p 0- / /- <Hy   N    O r7|  ` ,   f     f>+m  r
+A     J  gHy   N    XO,   f ^p ` J  gFHy  !' m 2/( /-  - A  Z/0 /-  - A  Z/0 Hy   N    O  .SJf J  g  Hy  !N    XO`t+m  +m  r
+A HUN  rXO-  f >-  f 4-  f *-   f  +m  +m  ` Hy  !N    XO| r7A `  - Wrb@0; N vvvvvvvvvvvv`(    g/- Hy  "DN    PO+m  r+A     HUN  rXOJf  p ` hR 
    (    $J $o  J- f  J  gHy  "+N    XO    f t    g/- Hy  "VN    PO+m  r+A p `  A f4 + (r
b*@0; N                  R 
`B 
|  1`Bp - 1rg >rgrg  p - 1/ Hy  "fN    POB- 1r7|  `l+k  L'm $ (    fHA g@A ȷg8J    nHy    N    XOR    J  g/9    Hy  "|N    POHSN    XO|  1pL8 N^NuNV./. 0n 
/N  "PO. g `@/. Hy    Hx 0n 
/p . rAH" ҁЁЁ   / HzN    ..N^NuNV./. 0n 
/N  "PO. g `>/. Hy    B0n 
/p . rAH" ҁЁЁ   / Hz~N    ..N^NuNVH ~ . rAH|l A    "p ,	gJi  fp`6"ҁށށ    *G n  ( l  +@ 
+|  p L N^NuNVH p . rAH-@" ҁЁЁ    *@ . mg@mg "p` -n J  gh n/( 0H/ Hy  "N    O `HJ- 	g n.( r-A``J- 	gHx Hx 0n 
/a ,O -@f  ~ n-h `. n0H~	b v@0; N jjjJoJnp`   n0HA  -p    
f2J- g,B- +|  
S`/./.0n 
/a O -@f:Sj   gnB- `h-n  n0 Hx Hx 0n 
/a N-@g .`> n"m 2i   n"m 2i   n1m   n0- 8H!@ Bm 8Bm :p L N^NuNVH8*n (m 2J  g 2/-  - A  Z/0 HTHUHy  "N    O ` |  ` z   ,   g ` f   ` \  | `   ` |    ` | !   ` | $   ` | "   ` zp- 0(r@   ` `p- 0(@   ` JHy  "N    XOG .< ,   g|    `  |    ,  Wg  BGSd`  ,  V fBGSd  `         ,<  "9    SJn  A $e  0- "m 80-  m :J  g.p 0- "/ p 0-  / Hy  p 0- / Hy  #N    O ,   f ,  Vf BGSdHy  #N    XO|     ` ,   g       ,  f ,  Vf BGSd`  ` |    ` J  g/- $/- (Hy  #(N    O   `,  f Hy  #BN    XO,   g  .<   &m (` QBGSd  +m  ~+G ` | @   ` ,J  g2/- $/- (Hy  #UN    O `,  f Hy  #pN    XO,   g  .<   &m (`[ QBGSd  +m  ~+G J  g /-  - A  Z/0 Hy  #N        p`   +m  B `  +m  ~+G `
+m  R J  gHy  #N    XO  p`  /- Hy  #N    PO`/- Hy  #N    PO| `+m  R `T+m  ~+G `F - ~b@0; N xV&6FVf
 x xJ  g /-  - A  Z/0 Hy  #N        p L8N^NuNVBA;bC0< "QHx;bN    XOJgr-A`/. /. N    POA0< 2|;b"Q .N^Nu  @(#)ar.c 4.27 88/02/24          NoCartNoDrive
WriteProtEndMediumHardErr
WrongBlock	FileMarkInvCmdNoDataFlakingBOT42GotReset            8          
,     $                    $  $  $$  $(  $,  $0  $4  $:  $@  $D  $J  $O  $Y  $b  $m  $v  $~  $  $  $  $  $  $  $  $         
                  	               
                        	     ar*init tape online
 ar: Timeout waiting for Ready at %x
 ar*init arrdy on before reset
 ar*init arexc on before reset
 ar: Timeout waiting for Exception after reset
 ar*open(%d, %d)
 ar%d: no such controller
 ar%d: would not initialize
 ar%d: already open
 ar%d: can't switch drives in mid-tape
 ar*open SELECT gave EINTR
 ar%d: no such drive
 ar%d: no cartridge in drive
 ar%d: cartridge is write protected
 ar*open exiting
 ar*close(%d, %d)
 ar*close exiting
 ar*command(%x, %d, %d)
 ar*strategy bp=%x mapped in; addr=%x
 ar*strategy sleeping for maxbufs
 ar*strategy queueing %x, maxbufs %d
 arstart qidle not set ar*start unit %d found empty
 ar*start unit %d sc %x bp %x
 ar*start bp=%x mapped in; addr=%x
 ar: block %d requested at tape posn %d, bp=%x
 ar*start op completed bp %x addr %x size %x blkno %d flags %x err %d
 ar*start buffer done, maxbufs=%d
 ar: start_cmd bad state %s=%x for newstate %s=%x
 ar*starting old state %s=%x, new %s=%x, addr %x, size %x
 ar: interrupt from uninitialized controller %x
 ar*intr EXC set, old state %s=%x
 ar: RDST did not complete
 ar%d: many retries, consider retiring this tape
 ar%d: %b error at block # %d punted
 ar%d: %b error at block # %d
 ar*intproc badint after CLOSE
 ar: interrupt without Rdy or Exc, state %s=%x, old %s=%x, bits=%b
 EnaReadyEnaExcepCatchReadyBurstXferResetRequestOnlineInterruptEdgeReadyAckExceptionDircReady ar: trying to re-sync with Archive
 ar: Archive hardware hang caused an error -- check your tape
 ar: Archive hardware hang -- restart entire tape job
 ar*arintproc restarting
 ar: OOPS READ %x
 ar: OOPS WR %x
 ar: histate bad = %d
 ar*arintproc buffer done, maxbufs=%d
 ar*ioctl MTIOCTOP %d count %d
 ar*machine(%x, %x) state %s=%x
 ar: RDST gave Exception, retrying
 ar: RDST failure
 ar*RDST %b %d %d
 ar*READ addr %x count %x
 ar: Read no READY
 ar*WRITE addr %x count %x
 ar: Write no READY
 ar*machine exiting done in state %s=%x
 ar*machine idling
 ar: triggerred at idle %x
 ar: invalid state 0x%x
 ar*machine exiting in state %s=%x
    ar Fin Idle Cmd Wfm Rfm Rew Tense Erase Sel Desel RdSt CloseInit CloseTwo CloseThree ReadInit ReadCmd ReadBurst ReadFin ReadIdle WriteInit WriteCmd WriteBurst WriteFin WriteIdle CmdOk       P     -P      P   T  P    @  &  @  ,  P  \  @  f  @  l  P  |  @    @    P    @    @    P    OP    @    @    P    @  f  P  n  @    @    P    @    P    @    P     @    P  F  @  L  P  l  @    @    @    P    @    @    @    @    P     @  r  @    @    @    P    P    @    @    P  P  @  f  @    @    @    @    @     @    @  J  @  R  @  X  P    P    @    @    P    ,P    ;P    @    ,P    ;P  (  P  <  >P  \  @  l  ;P    @    P    /P    @    @    P    ,P  *  -P  0  -P  H  @  P  @  V  P  b  -P  h  @  t  -P    #P    @    -P    @    P    @    ;P  	  P  	"  @  	(  EP  	4  @  	:  P  	F  @  	T  @  	Z  P  	f  /P  	n  @  	|  @  	  P  
  P  
z  @  
  @  
  P  
  @  
  @  
  @    @     P  N  -P  V  -P  \  >P  d  -P  j  @  r  -P  x  @  ~  P    #P    @  p  @    @    @    P    @    @    @    @    P  
  @  
8  P  
h  @  
n  P  
  @  
  @  
  @  
  @    P  (  @  .  P  8  @  F  @  L  P    @    P    @    @    P    @    @    P  H  @  P  @  V  P  n  @  v  @    @    @    @    P    @    @    P    @  8  @  >  P    @    P    @  
  @    @    P  8  @  >  P    @    P    -P  
  -P    >P    -P    @  &  -P  ,  @  2  P  <  #P  f  @  z  9P    P    .P    @    9P  
  P    .P  D  LP  h  P    P    @    @    P    @    @    @    @    P  h  @  n  P    OP    @  6  @  D  @  J  P  r  @  x  P    @    @    P    @  $  P  z  @    @    P    @    P    @     @  
  @    P  T  @  \  @  b  P  z  @    P    @    P    @    @     @  &  P  b  P  ~  %P     @     @     @     @     LP     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @    @    @  
  @    @    @    @    @            
                           '     B   0         9        C          L          T        \         f         j     
   u         |              r                                                                                                            8         j          
                         &     @  .        7         @     (  J         Q        _     Z  l        w     j                                                                                                 T                        
                         "        '     
,  /         7        ?       H        R        X        c        k         r        {                                                   "                                   _nbuf _arstrategy _rootvp _arprobe _arsleep _rootdev _ar_softc _uprintf _printf _sccsid _bclnlist _qs _arintproc _nproc _file _armachine _whichqs _runin _ardebug _blkclr _dvmasize _pokec _arstart _dumpvp _nchrdev _setjmp _arstart_cmd _arattach _arinit _arprintf _panicstr _geterror _noproc _aropen _physmem _biodone _ardriver _sleep _fbobmemavail _arstatename _boothowto _arcommand _arclose _nfile _spl3 _armaxbufs _physio _bp_mapin _procNPROC _runout _pidhash _selwait _nblkdev _arread _ar_stat_bits _runrun _bufhash _minphys _ar_cmds _splx _cpu _arintr _wakeup _maxmem _arwrite _freeproc _proc _fileNFILE _wantin _panic _iopbmap _dumplo _allproc _zombproc _bfreelist _arioctl _ardinfo _arphys _bufalloc _cpudelay _bufchain _curpri 
/a ,O -@f  ~ n-h `. n0H~	b v@0; N jjjJoJnp`   n0HA  -p    
f2J- g,B- +|  
S`/./.0n 
/a O -@f:Sj   gnB- `h-n  n0 Hx Hx 0n 
/a N-@g .`> n"m 2i   n"m 2i   n1m   n0- 8H!@ Bm 8Bm :p L N^NuNVH8*n (m 2J  g 2/-  - A  Z/0 HTHUHy  "N    O ` |  ` z   ,   g ` f   ` \./share/sys/sun2/OBJ/au_sem_wrappers.o                                                                 444       0      12         6035  4424707420  12767                                                                                                                                                                                                                                                                                                                                                                            8      D          NVH0 *x;^/N    XO(@Jg N     - r	b @0; N   H V     VHm Hx Hm Hx HUHx Hx /8;8;HH/ Hx Hx =` JHm Hy  ` Hm Hy  Hm Hx Hm Hx HUHx Hx /8;8;HH/ Hx `  Hm Hx Hm Hx HUHx Hx /8;8;HH/ Hx Hx =`  p 0, -@Hm  @ / Hm Hx Hm Hx HUHx Hx /8;8;HH/ Hx Hx >`  p 0, -@Hm  @ / Hm Hx Hm Hx HUHx Hx /8;8;HH/ Hx Hx >`:Hm Hy  Hm Hx Hm Hx HUHx Hx /8;8;HH/ Hx Hx N    p L0 N^NuNV.*x;^/- N    XO-@Hx /9   /9    /N    O    -@N    Hm Hx Hm Hx HUHx Hx /8;8;HH/ /.Hx N    p *nN^NuNV.*x;^r-AN     -    cBr-AHm Hy  HnHx HUHx Hx /8;8;HH/ /.Hx N    `   - Ѐ" ҁЁ-@/ N    XO-@/./ /- N    O Jf0B-n` nJh gr-A`R\ .찭 e/./.N    POHm  - Ѐ" ҁЁ @ / Hm Hx HUHx Hx /8;8;HH/ /.Hx N    p *nN^NuNV.*x;^   c ;`!  ;B;^ A   p Np *nN^Nu@(#)au_sem_wrappers.c 1.5 89/04/10 SMI          d         P      -P    ,P    P    KP    $P  
  8P     .P  V  ,P  v  :P    KP    ,P    P    XP  8  P  ~  ,P    @   (  @   ,  @   0  @            
                           $        ,         6         =          I         M         T      x   Y         b          k         r         {                                           x                  @                                                                                                   $     d  .        6        ?        E        N        V        `        k        v                                                                                                                                                           @          %      x  *        2        :       C        L        Q        Z        c        k        o        y                      (                $                                                                                                          _nbuf _rootvp _rootdev _desscan _sccsid _bclnlist _lbolt _kmem_alloc _qs _nproc _sum _whichqs _semconv _runin _avenrun _domainnamelen _hostnamelen _freemem _au_ipcwrite _rate _msgh _hostname _tz _kmem_free _desfree _avefree _dumpvp _maxpgio _sem_undo _nchrdev _boottime _panicstr _noproc _au_semop _msgmap _physmem _sema _saferss _maxslp _multprog _avefree30 _boothowto _au_semsys _semu _au_sysaudit _semctl _semget _nscan _tick _procNPROC _deficit _runout _phz _sem _selwait _pidhash _au_ipcexists _nblkdev _semop _forkstat _domainname _msgque _cnt _semmap _runrun _bufhash _minfree _msg _shminfo _msginfo _maxmem _hz _freeproc _proc _wantin _seminfo _time _total _kernelmap _lotsfree _dumplo _allproc _zombproc _shmem _bfreelist _au_semctl _bufalloc _au_semget _copyin _bufchain _curpri  @    P    @     @  
  @    P  T  @  \  @  b  P  z  @    P    @    P    @    @     @  &  P  b  P  ~  %P     @     @     @     @     LP     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @    @    @  
  @    @    @    @    @            
                           '     B   0         9        C       ./share/sys/sun2/OBJ/bwtwo.o                                                                           444       0      12         6217  4424711772  10744                                                                                                                                                                                                                                                                                                                                                                                          @NV  Hy    Hx /. 0n 
/N    N^NuNV  p N^NuNV.p . " DЁ    *@ .  mp` Ю / N    XO*nN^NuNVH<  . " DЁ    *@(|  LJf/. N    XOrfp ` *-n /.N  |XO&n   E HSN    XO=@@g=@| *0n/HSN    POJfHRN    XO=@@g
0.ng0n/HSN    POp `  | T0n/HSN    POJfHRN    XO=@@g
0.ng0n/HSN    POp `V0n/HSN    POJgHy  hN    XO       g.  gI +K * +T +l  +l   - L< N^NuNVH0 *n 0- H" DЁ    (@/, /, 0m / U/( Hy  sN    O /- 
N    XO-@J    f*J  df v y T#  d  f `(  d` V - rf# 
  d` @B    Jm f  y ,Jf y    f-m 
`J - 
    r/  ,   r/ /9    N    O /, /- 
N    PO y T-P#  d/.N    XO#  -n-|   `dHy   Hx /. <    r/ Hy    N    O Hx Hy    /.N    O Hx /./.N    O    R ,    r⨰bHx Hx@/, N  R .  f(  dp L0 N^NuNVH0p . " DЁ    *@ . Fg  Fg>@Fg  @F f  (n ~()m  )m  ~)G ~)G )m  `   n C  +|  @ +m  +m  ~+G  A (+H $0- H~Ї~+@ (+U ,B 0B 4Bm 8;|  :Hx Hy   /- N  RO BHx  /- N  R`: n .r΁/Hy   /- N  R` m  gp`p  n  `p`p L0N^NuNV.B*|    Jg" m  gBHx  /- N  RO RK <   <e .*nN^NuNV n 2J gn `0. F@@ n 0p N^NuNV.*n HUN    XO-@   g @  gHy  N    XO` <  ` <   rѮHx /.   /
N    p *nN^Nu      @(#)bwtwo.c 1.60 88/08/19 SMI    p                                                       @             bwtwoprobe %s%d: resolution %d x %d
 bwtwoprobe: cannot find control register   bwtwo        P     P   D  P   b  P     P     @     P     @     P     P    P  *  P  F  P  T  P  x  P    P    @    "P     P     P    @  "  P  0  P  <  P  D  @  T  @  Z  @  d  @  z  @    P    !P    $P    P    P    @    P    @  2  P  >  P  D  P  R  P  \  P  r  P    @    @    @    P  J  @    @    @    @    P  .  @  @  P    P    @    "P    P     @   &  @   2  @   :  @   >  P   P  
P   T  'P   X  P            
                !      <   ,          4          ?        G         Q          d     |   p      p   |                                                                                                                           ,                          "       R         '         2       ;         E        J         S         Z        c        n       y     @                           _nbuf _bwtwoioctl _bwtwointr _bw2_softc _printf _fbgetpage _sccsid _bclnlist _mem_putattributes _bw2crmapin _bwtwoprobe _CMAP1 _dvmasize _mem_rop _rmfree _fbmapin _peek _CADDR1 _fbobmemavail _fbopen _bwtwoinfo _poke _mapin _bwtwommap _bwtwoattach _bcopy _bwtwoclose _bwtwosetcr _bwtwodriver _bwtwoopen _bufhash _fbmapout _cpu _Sysbase _panic _iopbmap _kernelmap _bfreelist _bw2_ops _mem_putcolormap _bufalloc _bufchain @     @  &  P  b  P  ~  %P     @     @     @     @     LP     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @    @    @  
  @    @    @    @    @            
                           '     B   0         9        C       ./share/sys/sun2/OBJ/cg2_colormap.o                                                                    444       0      12          662  4424711317  12122                                                                                                                                                                                                                                                                                                                                                                             (       0           NVH8    d . Ю    cp`   n (h J ,l/,  /, N    POJ*T <   .<    &M   ". (n <. SFk
p 6Q(n <. SFk
p 6Q(n <. SFk
p 6Q <   p L8N^NuNV  J g n  h "n     !@ p N^Nu@(#)cg2_colormap.c 1.14 88/06/20 SMI       @  P                               )          :_sccsid _cg2_putattributes _gp1_sync _cg2_putcolormap d.o      _  kern_softint.o _    `  keytables.o      a  kudp_fas./share/sys/sun2/OBJ/cgeight.h                                                                         444       0      12           23  4423623026  11123                                                                                                                                                                                                                                                                                                                                                                      #define NCGEIGHT 0
.h ap     M  cgsix.h      N  cgtwo.o      O  clnt_kudp.o      P  conf.o t     Q  db.h       R  db.o       S  des.o      T  des_crypt.o     U  fbutil.o ryp  ,  V  if.o but  <  W  if_ec.o   P  X  
if_ether.o e  `  Y  if_ie.o   t  Z  	if_subr.o _i    [  
in_cksum.o .    \  in_pcb.o sum    ]  ip.h n_p    ^  kbd.o      _  kern_softint.o     `  keytables.o      a  kudp_fastsend.o     b  	machdep../share/sys/sun2/OBJ/cgsix.h                                                                           444       0      12           21  4423623026  10624                                                                                                                                                                                                                                                                                                                                                                      #define NCGSIX 0
.h      N  cgtwo.o      O  clnt_kudp.o      P  conf.o d     Q  db.h onf     R  db.o b.h     S  des.o .o    T  des_crypt.o     U  fbutil.o .o   ,  V  if.o l.o  <  W  if_ec.o   P  X  
if_ether.o    `  Y  if_ie.o   t  Z  	if_subr.o o     [  
in_cksum.o i    \  in_pcb.o o .    ]  ip.h b.o    ^  kbd.o .h    _  kern_softint.o     `  keytables.o      a  kudp_fastsend.o     b  	machdep.o o   $  c  mb.o ep../share/sys/sun2/OBJ/cgtwo.o                                                                           444       0      12        10175  4424712007  10733                                                                                                                                                                                                                                                                                                                                                                         H  X               8NVH0 *n Hy  HUN    XO   / HUN    O HUN   XOJgp `   . " ҁЁЁ    (@)M B <  r 5   g2rgB <  r 5  //. /9  Hy  	 N    p `,)|   )|   r(`)|    )|     <  L0 N^NuNV.*n  
  / N    XO=@. . 0n/ 
  / N    POJf 0Hx  
  / N    POJf Hx  
 / N    POJf  B 
 / N    POJf  B 
 
/ N    POJf  Hx  
 / N    POJf  Hx HUN    POJf  BHUN    POJf  HUN    XO   fnHx  
  / N    POJfTHxU 
 / N    POJf:BHUN    POJf*Hx  
  / N    POJfHUN    XOrigp`p *nN^NuNVH0 n 0( H" ҁЁЁ    *@(m .J g$<   h  ( 9( `Hy  	#N    XO <  Bt    <  4 f <  4 g <  4 f <  4  g   G `   G <  4  g   <  4  g G < 9   Z  <     G  Zf    f,  fJ  g   <  Bt * g <  	` <  	/  g <  	x` <  	/  gp2`p3/  n 0( H/  P/( Hy  	ZN    p L0N^NuNV  Hy    Hx /. 0n 
/N    N^NuNVp . " ҁЁЁ    "@ i    g* <  Bp  <  Bp  <  Bp  <  1     	g
 <  Bp p N^NuNV. 1  ep`4p . " ҁЁЁA   /0 N    XO". tЁ   $.N^NuNVH0 p . " ҁЁЁ    *@ . Fg bF	g (Fg Fg  @Fg f@F g@Fg  @XFg,p` x(n A  0< "L"Q)m  )m  ` P(n A  0< "L"Q)m  )m     	gr (   gr)A ,)U 0` 
 n C  +|   +m  +m  r+A A $+H  Hx 4Hm $N    PO+m  $B ,+|    0p . +@ D+U P+m  T m      `  (n /- N    XOr     ()m  )m  )m  `\ m   "n     gp`p (   ( `0 m   (   gp`p  n  `p . / N  VXOp L0 N^NuNVH0 p . " ҁЁЁ    *@p . A    (p  ,  @  / N    XO-@ m     /9    /. HzN    O /.N    XOp L0 N^NuNVH0 p . A    *p p . " ҁЁЁ    (@J g\ -  @  / N    XO-@ l     /9    /. HzN    O Hx HTN    PO/.N    XOp L0 N^NuNV. . " ҁЁЁ    *@/. HzN    PO m     HUN    XOp *nN^Nu@(#)cgtwo.c 1.40 89/04/22 SMI           d                	                                           1                                                 %s%d: unsupported resolution (%d)
 WARNING: no interrupt vector specified in config file
 %s%d: Sun-%c color board%s%s
 , double buffered  , fast read  cgtwo        P   (  P   4  @   V  P     @     @     P     P    P  8  P  T  P  n  P    P    P    P    P    P    P    P  "  P  <  P  J  P    P    @    P  z  @    @    @    @    @    @    P    P    P  .  P    P    P    P  P  @  v  @    @    !P  6  P    @    P    P    *P  (  ,P  6  3P  D  *P  h  P    P    *P    ,P    3P    P    *P    P    P  8  +P     @   &  @   :  @   >  P     P     1P     
P            
                !      X   ,          3          ;          F     H   N         X         _          r          ~                                                   @                                                                                            V          %        +         1        6       A         H     d  U       a      @  m        v     f                                                                                                                         _nbuf _cgtwoioctl _cgtwointr _cg2_softc _peekc _printf _fbgetpage _sccsid _bclnlist _lbolt _cg2_putattributes _cgtwoprobe _cg2_ops _avenrun _domainnamelen _hostnamelen _pokec _hostname _tz _cg2_rop _boottime _fbmapin _peek _sleep _fbgattr_default _fbopen _untimeout _cgtwo_wait _cgtwoinfo _tick _poke _phz _cgtwommap _bzero _cgtwoattach _cgtwoclose _domainname _probeit _cgtwodriver _cgtwoopen _bufhash _cg2_dblbuf_enable _splx _wakeup _hz _time _iopbmap _kernelmap _bfreelist _cg2_putcolormap _bufalloc _timeout _cgtwotimeout _bufchain   <  1     	g
 <  Bp p N^NuNV. 1  ep`4p . " ҁЁЁA   /0 N    XO". tЁ   $.N^NuNVH0 p . " ҁЁЁ    *@ . Fg bF	g (Fg Fg  @Fg f@F g@Fg  @XFg,p` x(n A  0< "L"Q)m  )m  ` P(n A  0< "L"Q)m  )m     	gr (   gr)A ,)U 0` 
 n C  +|   +m  +m  r+A A $+H./share/sys/sun2/OBJ/clnt_kudp.o                                                                       444       0      12        13045  4424710476  11602                                                                                                                                                                                                                                                                                                                                                                         	                  0NV n -h J g
 nr ` nrÐp N^NuNV  p N^NuNV   n rÐ n    grÐ . rhЁ/ N    XOp N^NuNVH0 BHx xN    XO(@K J    f 9   "9    #    +|  	 +L N    *BBr-A-n -n /. /. /. HUN  O Hx"`N    XO)@ hHx Hx"`/, hBHz"N    O -@g  B/ Hl 4N    O HnHl 4N    POJfHy  	N    XO/.N    XO`zHl 4 l 8 h NXO)@ d/.N    XOHx Hx Hl Hx N    O -@g/ Hy  
N    PO`(/, N  XO-@g/ Hy  
AN    PO` 
` Hx"`/, hN    POHx xHTN    POp L0 N^NuNV n -h  n!n   n "nC """" n!n  t nrÐp N^NuNVH<*n (m $l -l Bt-BR    `R   tHx HUN    PO   ft   gt-B x;$-h D x;$!l t D-y    R     .  "9    N    $  . $"9    N    "< B@N    Ԁ-B`z    (g .SJo "R    9    " DЁ".ひo 9    " DЁ` .-@    (g
    (fHx Hy    N    PON    -@`:t/9    Hl hHy    N    O Hx Hl hN    POHj ,N    XO   ft/.N    XOHx Hx"`/, h/HzPN    O -@ft)B (t7)B ,HTa .`  G 4 l h B/.HSN    O Jg/.HS k  h NPO`v/, dHS k  h NPOHn HS k  h NPOJg(HS/ U h   h NPOJg/. HS n NPOJft)B (t)B ,/.` ~HS k  h NXO-@ n1n Hl /.HRN    O )@ ,gt)B (t)B ,` @t-B` @N    -@J ,ff/.HTHzN    O  j  JHx Hj ,N    POHTHzN    PO    gtŔ/.N    XOt)B (t<)B ,R   ` Jj $gBj $/.N    XO`  HnHRN    PO)@ pJ (gA"n (""""/.N    XOJ pgp l p ( Ь p)@ l l ph  l/, pN    XO`F l h"l l gR   /, pN    XO`$N    -@Hj ,N    XO/.N    XO`SJf Jf
t)B (`  G LHx /, pHSN    O A    C"""-n -n HnHSN    POJg  Hl (HnN    POJ (fDHn/ U h   h NPOJft)B (t)B ,R   JgDt&HnHSN    PO`0Jo*/ U h   h NXOJgSR   B`t)B (/, pN    XOJ (f  x;$!n DN    -@`:t/9    Hl hHy    N    O Hx Hl hN    POHj ,N    XO   f/.N    XOtŔ   gtŔHUN    XOJ (gR    , (L<N^NuNV.*n B/. $/.  /. /. /. /. /. HUa N*nN^NuNVH0 *n (m rHl ,HTN    POp L0 N^NuNV. n *h A ("n """*nN^NuNV. n (h I 4r(/. HT n NPO(nN^NuNV  N^NuNV  p N^NuNV. n *h /- N    XOHx"`/- hN    POHx xHUN    PO*nN^NuNVHx Hx N    PO-@fHy  
jN    XOp7`   n ( Ј-@ @0  nB  n1|   x;$/( DN    XO-@ x;$-h D x;$!n D x;$ h DBh r0-A=|`*n e, n1n /./. N    PO-@Sn   0g/.N    XO x;$!n D/.N    XO .N^Nu      2  V    clntkudp_create - Fatal header serialization error. clntkudp_create: socket creation problem, %d clntkudp_create: socket bind problem, %d bindresvport: couldn't alloc mbuf        ^  LP   |  5P     
P     TP     TP     
P     @     P     @     P    &P  (  KP  :  AP  F  @  L  P  X  MP  z  !P    IP    @    P    @    @    P     P     P  n  P  v  P    .P    
P    
P    OP    P    OP    P    @P    P    OP  8  OP  l  	P  r  .P  z  )P    OP    LP    ]P    .P    7P    HP    &P  $  KP    4P    `P    ]P  .  .P  <  6P  T  HP  h  P    HP    *P    HP    MP    P    MP    `P     7P  ,  HP  `  KP  j  CP    "P    
P    P    8P    P  (  MP  B  )P  R  OP  \  LP  b  ]P  t  .P    7P    HP    LP    P     _P    P     P     P    P    @    P  	2  P  	  P  	  MP  	  P      @     @     @     @     @     @                                         "        4          <          E          L          T         [          j          v         z                                 H        V                  
                                                         
                 %      j  6      @  @       O        S         ^         f         t        |                                                                                                           	               "     2  2         B         O         Z         c         t        z                                                                        @                               	                                             )         1         :        B        F        O        Y        _        g        m        t        |                      ,                        6                                     _rootvp lmult _rootdev _m_get _clntkudp_control _printf _soclose _crdup _rcstat _lbolt __seterr_reply _kmem_alloc _qs _clntkudpxid _rtnet _nproc _clntkudp_callit_addr _clntkudp_freeres _whichqs _rtstat _avenrun _domainnamelen _hostnamelen _runin _crfree _sobind _rawintrq _authkern_create _clntkudp_create _hostname _clntkudp_init _tz _kmem_free _m_free _xdr_replymsg _dumpvp _nchrdev _boottime _mclgetx _panicstr _noproc _splimp _ku_recvfrom _physmem _clntkudp_once _bindresvport _sleep _clntkudp_destroy _boothowto _m_want _clntkudp_callit _clntkudp_error _ku_sendto_mbuf _kmem_zalloc _untimeout _sbflush _xdr_opaque_auth _tick _procNPROC _phz _runout _pidhash _selwait _nblkdev ldivt _xdr_callhdr _domainname __null_auth _mfree _clntkudp_abort _udp_ops _runrun _splx _socreate _ckuwakeup _xdrmbuf_init _wakeup _m_freem _maxmem _hz _mclfree _freeproc _proc _wantin _time _ifnet _dumplo _allproc _zombproc _noop _mbstat _rthost _buffree _timeout _curpri _sbwakeup _splnet | !   ` | $   ` | "   ` zp- 0(r@   ` `p- 0(@   ` JHy  "N    XOG .< ,   g|    `  |    ,  Wg  BGSd`  ,  V fBGSd  `         ,<  "9    SJn  A $e  0- "m 80-  m :J  g.p 0- "/ p 0-  / Hy  p 0- / Hy  #N    O ,   f ,  Vf BGSdHy  #N    XO|     ` ,   g       ,  f ,  Vf BGSd`  ` |  ./share/sys/sun2/OBJ/conf.o                                                                            444       0      12        26275  4424711452  10550                                                                                                                                                                                                                                                                                                                                                                                             @(#)conf.c 5.58 88/12/16                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            D          JP     JP   "  JP   &  JP   2  P   6  P   :  P   >  *P   J  JP   N  JP   R  JP   V  JP   b  &P   f  <P   j  P   n  PP   r  P   z  JP   ~  JP     JP     JP     JP     JP     JP     JP     JP     JP     JP     JP     JP     }P     <P     P     
P     AP     P     IP     P     JP     JP     JP     JP     JP  
  JP    <P    JP    JP  "  |P  &  (P  *  P  .  JP  :  JP  >  JP  B  JP  F  JP  R  JP  V  JP  Z  JP  ^  JP  j  JP  n  JP  r  JP  v  JP    JP    <P    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP  *  JP  .  JP  2  JP  6  JP  F  ;P  J  HP  N  hP  R  P  V  P  Z  <P  ^  P  j  JP  n  JP  r  JP  v  JP  z  JP  ~  JP    JP    P    P    <P    .P    yP    P    <P    {P    YP    <P    ~P    xP    JP    <P    P    CP    JP    JP    JP    JP    JP    JP    JP    P    P     P    LP  
  XP    <P    P    :P  "  GP  &  JP  *  P  .  P  2  <P  6  P  B  <P  F  <P  J  P  N  KP  R  JP  V  <P  Z  JP  f  9P  j  FP  n  gP  r  P  v  P  z  <P  ~  P    &P    <P    @P    P    P    <P    P    JP    JP    JP    JP    JP    +P    JP    kP    rP    bP    JP    JP    P    <P    JP    JP    JP    JP    JP    JP  
  JP    JP    P    JP    JP  "  JP  &  JP  *  JP  .  <P  2  JP  :  ,P  >  %P  B  aP  F  JP  J  JP  N  P  R  JP  V  P  Z  	P  b  jP  f  P  j  P  n  JP  r  DP  v  JP  z  P  ~  OP    $P    `P    ?P    JP    P    <P    )P    }P    <P    P    fP    qP    <P    P    |P    (P    P    eP    pP    JP    JP    JP    JP    JP    JP    JP    JP  
  JP    JP    JP    JP  "  JP  &  JP  *  JP  .  JP  6  P  :  P  >  5P  B  -P  F  wP  J  P  N  <P  R  zP  ^  QP  b  uP  f  JP  j  JP  n  #P  r  JP  v  JP  z  8P    JP    <P    JP    JP    JP    <P    JP    JP    WP    4P    JP    JP    P    <P    JP    BP    JP    JP    JP    JP    JP    JP    JP    P    "P    _P    JP    JP    P    JP    P  
  P    oP    ^P    JP    JP  "  P  &  JP  *  P  .  VP  6  
P  :  3P  >  JP  B  vP  F  P  J  <P  N  P  Z  JP  ^  JP  b  JP  f  JP  j  JP  n  <P  r  JP  z  P  ~  P    IP    P    P    P    <P    P    nP    ]P    JP    JP    P    JP    P    UP    mP    \P    JP    JP    P    JP    P    TP    JP    JP    JP    JP    JP    <P    P    JP    JP    JP    JP    JP  "  JP  &  JP  2  JP  6  JP  :  JP  >  JP  B  JP  F  JP  J  JP  R  1P  V  JP  Z  JP  ^  JP  b  JP  f  JP  j  JP  n  JP  z  lP  ~  JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    P    JP    JP    JP    JP    JP    JP    JP    JP    =P  
  <P    <P    NP    dP    JP    <P  "  JP  .  JP  2  <P  6  JP  :  JP  >  JP  B  <P  F  P  R  JP  V  JP  Z  JP  ^  JP  b  JP  f  <P  j  JP  n  JP  v  JP  z  JP  ~  JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    <P    JP    JP    JP    JP    JP    JP    <P    JP    JP    JP    JP    JP    JP    <P    JP  	  JP  	
  JP  	  JP  	  JP  	  JP  	  <P  	  <P  	*  JP  	.  JP  	2  JP  	6  JP  	:  JP  	>  <P  	B  JP  	N  JP  	R  JP  	V  JP  	Z  JP  	^  JP  	b  <P  	f  JP  	r  JP  	v  JP  	z  JP  	~  JP  	  JP  	  <P  	  JP  	  JP  	  JP  	  JP  	  JP  	  JP  	  JP  	  JP  	  JP  	  JP  	  <P  	  JP  	  JP  	  JP  	  <P  	  P  	  JP  	  JP  	  JP  	  JP  	  JP  	  <P  	  P  
  JP  
  JP  

  JP  
  JP  
  JP  
  JP  
  P  
  JP  
&  JP  
*  JP  
.  JP  
2  JP  
6  JP  
:  JP  
>  JP  
J  JP  
N  JP  
R  JP  
V  JP  
Z  JP  
^  JP  
b  JP  
n  JP  
r  JP  
v  JP  
z  JP  
~  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP  
  JP    <P    JP  
  JP    JP    JP    P    JP  "  JP  &  JP  *  JP  .  JP  2  JP  6  JP  :  JP  F  JP  J  JP  N  JP  R  JP  V  JP  Z  JP  ^  P  b  JP  j  JP  n  <P  r  JP  v  JP  z  JP  ~  JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    P    JP            
                    "          .          :          F          N         V          a          l          t                                                                                                                                                   	                         %        +        2         :         B        K         V         c         l         w                                                                                                                                                                     (         0         8         @         I         T        ]         f         n         v                                                                                                                                                                       %         0         ;         D         M         U        ^        g         s                                                           B                                                    F                                               (         3         <         E         N        V       _         l         v                                                                                                                                                	                         '        -         6         >         F        N         W         `        h        q        {                                                                                                                                                                   %        -_nbuf _ststrategy _xtstrategy _sdstrategy _xystrategy _tmstrategy _zsstab _rootvp _bwonemmap _cgonemmap _sddump _gponeioctl _cgtwoioctl _vpcopen _bwtwoioctl _bwoneioctl _ptcopen _logioctl _cgoneioctl _desioctl _xyioctl _syopen _rootdev _tmclose _xtread _sccsid _bclnlist _qs _conskbd_info _file _nproc _swread _tmread _whichqs _bwoneopen _consfbioctl _logopen _cgoneopen _xyopen _runin _stclose _logselect _tmdump _mtireset _consms_info _ptcread _syread _dumpvp _nchrdev _spinfo _panicstr _vpcclose _skyclose _ptcclose _acctbuf _noproc _consfbmmap _aropen _vpopen _cnopen _nulldev _snit_info _physmem _logread _xyread _sdsize _skymmap _mmmmap _winioctl _boothowto _arclose _vpclose _cnclose _xtclose _nodev _swwrite _tmwrite _nfile _dumpread _winmmap _xydump _consfbopen _procNPROC _runout _gponemmap _cgtwommap _bwtwommap _skyopen _tmioctl _mmopen _pidhash _selwait _gponeclose _cgtwoclose _bwtwoclose _bwoneclose _logclose _cgoneclose _desclose _nblkdev _dumpwrite _stwrite _sdwrite _arread _cnread _cdevsw _winopen _mtistab _cloneopen _gponeopen _cgtwoopen _bwtwoopen _stioctl _sdioctl _desopen _runrun _bufhash _consfbclose _vpcwrite _ptcwrite _mmwrite _sywrite _ptcselect _syselect _stopen _sdopen _mmread _maxmem _vpcioctl _skyioctl _ptcioctl _syioctl _xtwrite _arwrite _vpwrite _cnwrite _fileNFILE _freeproc _proc _winread _xysize _xtopen _wantin _ptsinfo _seltrue _dumplo _allproc _zombproc _bfreelist _xtioctl _arioctl _vpioctl _cnioctl _tmopen _acctp _mem_no _winclose _xywrite _stread _sdread _bdevsw _winselect _cnselect _bufalloc _piinfo _wcinfo _bufchain _curpri                                                                                                                                                                                                                                                                                                                                    ./share/sys/sun2/OBJ/db.h                                                                              444       0      12           16  4423623026  10100                                                                                                                                                                                                                                                                                                                                                                      #define NDB 1
.h o d     R  db.o onf     S  des.o .h    T  des_crypt.o     U  fbutil.o    ,  V  if.o .o   <  W  if_ec.o   P  X  
if_ether.o P  `  Y  if_ie.o   t  Z  	if_subr.o t    [  
in_cksum.o     \  in_pcb.o      ]  ip.h o     ^  kbd.o .o    _  kern_softint.o _    `  keytables.o      a  kudp_fastsend.o     b  	machdep.o   $  c  mb.o  o   <  d  mb_machdep.o  d  T  e  mem_colormap.o e  h  f  	mem_rop.o h  x./share/sys/sun2/OBJ/db.o                                                                              444       0      12         3776  4424712015  10165                                                                                                                                                                                                                                                                                                                                                                                H         (   XNV   y  r  y  B $ . r$Ё/ N  XOp N^NuNV   n  h p ( 
rf/. /. N  0`/.  n /(  h  P PNPOp N^NuNVH  n  h p ( 
Jg ^/.  n /(  h  P PNPO` VBB*n `(/.  m p / N  POR  -  e*m .
f/. N    XO| ~   y  JgRRrmJg  Hx /N    PO-@g  -@~   y  Jg  0< G @{ 3  B9  B9    y   0Ѐ" ЁҁЁЁ#     y  BHy  N    XOHx  n/( Hy  N    O  n|ݨ R|m d/. n /(  h  P PNPO` y   g ~g p L N^NuNV  p N^NuNV..  y   ( $grgFrg\`   e" b y  r!A $ y  r΁!G (`f . ~$Ї/ N  XO`R y  p !@ 0 y  ~!G $`6 y   ( ( @  "y   ) 0r AHѨ  y  B $p ..N^NuNVHx Hx N    PO-@g:Hx  @/( Hy  N    O  nV /. n /(  h  P PNPOp N^NuNV.B n -h  n vg`@vg`   n  h |  
`  Hx Hx N    PO*@Jfr-A`b m "y   X  n !M  nr!A `> n    f n J g
 h J fr-A` n  h  h "y  "Jf h n  h |  
/. /. N    POp *nN^Nu@(#)db.c 1.4 89/01/14 Copyr 1988 Sun Micro                         v                L       0                  Z      h                Ȑ 
     db db        @     @   $  @   R  @     @     P     @  "  P  <  @  T  @  Z  @  `  @  j  @    @    @    @    
P    @    
P    @  $  @  L  @  X  @  r  @  |  @    @    @    @    @    @    P    @    
P  z  P    @    @    P   .  @   <  @   H  @   P  @   T  @   \  @   d  @   x  @     @     @     @                                  0   &        .        7          ?     h   F     L   N        S          Z      v   b          j          t     Z   |             0                               _dbinfo _db_table _sccsid _dbwput _dbinit _dbclose _dbopen _rinit _rminfo _dbp _bcopy _dbrput _qreply _uniqtime _wminfo _winit _dbioctl _freemsg _allocb _dbinput JP./share/sys/sun2/OBJ/des.o                                                                             444       0      12         3527  4424712023  10344                                                                                                                                                                                                                                                                                                                                                                         `   X             p   NVH *n Hx Hm N    PO. fRBHUN    PO. fBBR   dmHx Hm N    PO. fHUN    XO. rg
r΁rgp `
#     pL N^NuNV  J    fp`p N^NuNV  p N^NuNV.*n  . ,dg,dg4p``J gX - rf
    cp`BHU0n 
/N  4PO`0J g( - rf
    cp`/- Hm HUN  p *nN^NuNV n -h -h A-Hr-ABBn n -h B-HHnHy    Hx 0n 
/HnHz N    N^NuNV.*n -m /- /-  /.N  O B (HUN    XOp *nN^NuNVH0*n ..  y    |      fp`p
|@"9    SJn|  J fp`pB( (MJ f0|  J f< `< B( I |  J fpA`p@"n (I`6B( |   fB( Q|bB( |   fJ fNJ f.B( IC `.QLC CB( p L0N^Nu  @(#)des.c 1.18 88/06/20                                                      des          P   &  P   L  P   Z  P   z  P     P     @  &  @  v  P    P    @    P    P    "P     @   4  @   8  P            
                 !          (     `   0         :         >         E         K          U         ^          e          n         u        ~                                                            x                                                                         
             4         )        3         =        G_nbuf _desstrategy _desioctl _peekc _sccsid _bclnlist _qs _nproc _file _desprobe _whichqs _pokec _biodone _nfile _desdoit _desinfo _physio _procNPROC _des_addr _pidhash _desclose _desdriver _desopen _bufhash _minphys _freeproc _proc _fileNFILE _iopbmap _allproc _zombproc _desblock _bfreelist _bufalloc _cpudelay _bufchain    _dbinfo _db_table _sccsid _dbwput _dbinit _dbclose _dbopen _rinit _rminfo _dbp _bcopy _dbrput _qreply _uniqtime _wminfo _winit _dbioctl _freemsg _allocb _dbinput JP./share/sys/sun2/OBJ/des_crypt.o                                                                       444       0      12         1335  4424706620  11566                                                                                                                                                                                                                                                                                                                                                                                   H       H    NVH0 BK(n Hn/. /. /. /. N   -@*n IL0 N^NuNVr-AHn/. /. /. /. N   N^NuNVH8.. *n  rf    cp`  .   fp `p+@ ,. z̅(M&n Jf  J  l0  g  BB y  NPOJgp`p #  m  +G |bbI &n (`QJnBHUHy,dB y  NJgz`z (n G (Jo2Q`+n  BHUHy,dB y  NJ`Jgp`HU//. N    Jg~fp `pL8N^Nu             :  @     @     @     @    P    @  Z  P    P    P         d                      )          1        :          E_ecb_crypt _common_crypt __des_crypt _cdevsw _g_desfd _cbc_crypt  s  	sc_conf.o d  t  t  sd.o  d    u  sm.h  d    v  spec_subr.o     w  
spec_vfsops.o w    x  st.o  w    y  
str_conf.o     z  str_io.o       {  
subr_prf.o      |  
swapgeneric.o |  0  }  
sys_process.o }  @  ~  tm.o  }  P    ./share/sys/sun2/OBJ/fbutil.o                                                                          444       0      12         1546  4424712026  11060                                                                                                                                                                                                                                                                                                                                                                         P                  @    NVp .  lp .  n "p "	gJi  fp`p N^NuNV. .  ep`&p .  n  p /( 
N   vXO". tЁ$.N^NuNV  /. N    XON^NuNV  Hy    .   r/ /.  . r/  .     r    / N    p N^NuNV   .   r/  .     r    / N    POp N^NuNVH0 *n S jp L0 N^Nu(]"gJl  g/, 
 n NXOJgp`  @(#)fbutil.c 1.24 89/01/09 SMI     ^  @     P     P     P     P     P     P    P            
      v        P            '          /      4   7         @          H          O        X         b          k        s         |                                              _nbuf _fbgetpage _sccsid _bclnlist _Sysmap _fbmmap _fbmapin _fbopen _mapin _bufhash _fbmapout _Sysbase _fbintr _iopbmap _bfreelist _hat_getkpfnum _mapout _bufalloc _bufchain z  str_io.o o      {  
subr_prf.o     |  
swapgeneric.o   0  }  
sys_process.o 0  @  ~  tm.o ss.  P    tty.o .o  d  ˀ  
tty_./share/sys/sun2/OBJ/if.o                                                                              444       0      12         7224  4424706733  10200                                                                                                                                                                                                                                                                                                                                                                                  $      (    NV.*y    `J "f+y   "*m R"
fN  p *nN^NuNV |    ` PA RJf  p N^NuNVH0 *y    `b(m `T n 0PfFHx TH/Hl N    O Jg(0-   g"Hx  . T/ Hl N    O Jf `(l $"f*m R"
fp L0 N^NuNVH0 *y    `D0-   g6(m `, n 0PfHx TH/Hl N    O Jf `(l $"f*m R"
fp L0 N^NuNVH<*n ~ >rd@A   $px (y    `(&l `0UfHUHSNPOJg `&k $.f(l R.fp L<N^NuNV... "y    `$0)    g i `p 0g& h $"f"i R"	f"y    ` i `p 0f ` h $"f"i R"	fp ..N^NuNVH0  y *P- g fJ- n fB=m "y    `((Q ff df df if
0) ng"i R"	f"	g 	` 9    L0 N^NuNVH0 *n m (m `HTBN    PO(l $"fp L0 N^NuNV.*y    `(Jm 
gSm 
Jm 
fJ :g0m / m :NXO*m R"
f/9    BHzN    p *nN^NuNVH8 *n B(M`Jg 0m 9oRRL 
Ю eJg   
Ю g|gxB`( 
Ю d" .Ѐ" ЁHH   0Ё-@Jf&y    `:0+ Hf*/N    XOf/.HU/N    O Jf `
&k R"fp L8 N^NuNVH8  . $igJ$i gBig&$ig<&n Hx HSa PO*@"
f p` /. /. N  fPO` N    Jg2/. /. N    PO` 7m  ` 'm  ` N    Jf8;HH` 0-    g(0+    fN    -@HUa XO/.N    XO0<Rm 2<k A;@ J 2g 2/. /. HU m 2N` N    Jg  +k  ` Hx Hk a 
PO(@"g"J ^g(+L V`  Hx Hk a PO(@"fp`  J .fp`  +L Z`  N    Jg n /HUN  PO`  N    Jf8;HH`   n J fp-`vHU/. /. Hx /.  n  h  h N`T . A (r\fA0;N 0R i i i2 i1 i) i( i ii0p L8 N^NuNVH *n .. g| Jm WDRm Jfp `,Jm gSm Jg m  `m BHy iHU m 2NL N^NuNVH< *n (y    -UB-m A-H` "g 
Hx Hn/N    O E`JgRJel c o0, H d@ 0l 	 o0, H dH@H 
@ 00, H 
H@@ 0B&l "ftHx HnN    POHx  /.HnN    O -@fbr Ӯ`F"gBA"K    Hx  /.HnN    O -@fr Ӯ&k $    n(l R    n  .ԑ .L< N^Nu       2         9P     @   &  @   :  9P   ^  9P     P     P     9P    P  T  P  ^  9P    9P    9P  2  9P  n  9P    
P    9P    3P    @P    9P    ;P    P  *  @  6  P  H  ?P  h  P    P    1P    P  H  P  Z  @  f  P  t  9P    )P    &P  0  4P  j  4P        
                     (          /         8      4   C         J         N         U         ^          j         s                                           T                  @                                                                                                :  (       1        <     
  D        M        S        ^        c        k         r        {                                                @       |       f                                                                            
                         $       /        8        B         L         U       `        h_ifb_ifwithaf _ifa_ifwithaf _rootvp _suser _rootdev _if_attach _lbolt _qs _nproc _whichqs _pfctlinput _avenrun _domainnamelen _hostnamelen _runin _afswitch _ifa_ifwithaddr _rawintrq _hostname _bcmp _tz _dumpvp _if_slowtimo _nchrdev _boottime _panicstr _noproc _splimp _physmem _ifa_ifwithnet _ifioctl _boothowto _ifunit _domains _tick _procNPROC _phz _runout _bzero _pidhash _selwait _bcopy _ifinit _nblkdev _ifa_ifwithdstaddr _domainname _if_down _ifconf _runrun _splx _maxmem _hz _copyout _freeproc _proc _wantin _time _ifnet _dumplo _strlen _ifqmaxlen _allproc _zombproc _arpioctl _timeout _ifpromisc _curpri   DP  v  JP  z  P  ~  OP    $P    `P    ?P    JP    P    <P    )P    }P    <P    P    fP    qP    <P    P    |P    (P    P    eP    pP    JP    JP    JP    JP    JP    JP    JP    JP  
  JP    JP    JP    JP  "  JP  &  JP  *  JP  .  JP  6  P  :  P  >  5P  B  -P  F  wP  J  P  N  <P./share/sys/sun2/OBJ/if_ec.o                                                                           444       0      12         7215  4424712525  10643                                                                                                                                                                                                                                                                                                                                                                                           (NV.*n HUN    XOJmHmN    XOJlp `p*nN^NuNV. n 0( H" ЁЁ    -@-h 
 n0 .<   "9    SJn .~nЇ/  .   / N    PO n~q-Hp rr ( ቀr (     n!@ Hz 4Hz:HzTHz zHy  8 n 0( H/ /.N    p ..N^NuNV.    l: . A    *p "
g&Jm  g /. Hy  ;N    PO/. N  VXOp *nN^NuNVH8 . " ЁЁ    *@&M . A     p (h 
N    -@8 .<   "9    SJn0+    f/.N    XO`tA nC 3h  "0< T @ 8T 0< T2+  gr`rA8p T0< T @8B-  k @ J g/. N  DXO/.N    XOp L8N^NuNVH p . -@" ЁЁ    -@ .A     p -h 
 nJ( f  -h g$"n!i | f nB  nB | nS Jf nB( `   n|   nB(  n"h -I nA n\I3h  ".<   *n`
0- H*U"
f  o.<   n1G /. .   Ї/ N    PO n0@  @ 00p L N^NuNVH8B*|    ~  A    &p "g pJk  g h(k 
0   gz  @ g&   gD   f  p?T0< T   8`  pTHl HUN  PO0< T @8R`  T Hl HUN  PO0< T @@@8R`  p?T0  
g4Hl HUN  PO0< T @8Hl HUN  PO0< T2<@@`2Hl HUN  PO0< T @@@8Hl HUN  PO0< T2<A8R`Hy  FN    XOJ- fT `H0  gT R NR/N  `(0  
f"T RR FB- B- J g/a NXORK rm r .L8N^NuNVH0 . " ЁЁ    *@ . A     p (h 
R- -  o<R JJ- f/. Hy  _N    PO|  B- B- J g^/. a XO`R- 
 l- H`p
~ - "<ANmN      09+@ FRD9@ 0< T @08p L0N^NuNV.*n  n R >0  -@0   f   o
  o&/. N    XOHy  vN    XO n R B`   .r-@TM-M 
rЁ-@HnHn/ /
N    O Jg$/. N    XOHy  N    XO n R B`\Jf$/. N    XOHy  N    XO n R B`2/././.N    O -@g/./. / /.N    p *nN^NuNV  Hz0/. /. /. N    N^NuNVH *n B0- H. " ЁЁ    -@N    -@ .  ig. igF i
fHHx  . ~Ї/ Hm nN    O `0 .~nЇ/ /. HUN    O -@`/a XO`~-G/.N    XO .L N^Nu@(#)if_ec.c 4.43 89/01/11 SMI            6          d                       ec reset ec%d ecintr: impossible value ec%d: ethernet jammed
 garbled packet
 trailer error
 runt packet
       ec           P     P   T  
P   r  +P     P     @     P    P  4  @  :  P  F  @  p  
P    P    P    +P    P  &  @  2  P  d  
P  t  P  B  P  r  
P  ~  P    @    @  0  @  J  @  d  @  ~  @    @    "P    @  0  
P  >  P  f  @  l  P    P  0  
P  8  @  >  P  z  P    
P    @    P    
P    @    P    P     P  $  P  R  
P  \  P    P    &P    P     @   &  @   2  @   :  @   >  P            
                    *          0          >          F        N         X        `         j          t               d        (                                                                ,         6                                       	                !         1         7       @        H        Q     D  Z         a     V  i        r        y                                                       _nbuf _copy_to_mbufs _copy_from_mbufs lmult _ether_attach _printf _sccsid _bclnlist _ecread _rawintrq _identify _do_protocol _ecintr _ec_softc _etherbroadcastaddr _splimp _peek _m_want _ether_output _ecdocoll _ecioctl _ecattach _bcopy _mfree _ecdriver _ecprobe _bufhash _check_trailer _localetheraddr _splx _ecreset _ecinfo _mclfree _ecstart _panic _ecinit _iopbmap _ifnet _set_if_addr _bfreelist _mbstat _ecoutput _bufalloc _cpudelay _bufchain  WP    4P    JP    JP    P    <P    JP    BP    JP    JP    JP    JP    JP    JP    JP    P    "P    _P    JP    JP    P    JP    P  
  P    oP    ^P    JP    JP  "  P  &  JP  *  P  .  VP  6  
P  :  3P  >  JP  B  vP  F  P  J  <P  N  P  Z  JP  ^  JP  b  JP  f  JP  j  JP  n  <P  r  JP  z  P./share/sys/sun2/OBJ/if_ether.o                                                                        444       0      12        14455  4424707021  11402                                                                                                                                                                                                                                                                                                                                                                         
x  @      `      H    NVH  9    " DЁ/ BHzN    O *|    ~ J- g<-  f4/N    XOJfR- 
p - 
-  gr`re
HUN  XORK r`mp L N^NuNVH< *n Hx BN    PO(@Jfp`  9|  0, Hr|)A $L GHx HRN    PO&  
|7y  
 7| 4 5|  |  |  5|  %m n 5m r %m t 5m x  n %P BnHnHTHU m .NL< N^NuNVH0*n N    -@ - ~rЀ" ҁЁ    (@~   ~gRI rmrm.f  /- ~N    XOJg"/.N    XO+y  
| ;y  
 p` -y    `f n - ~ fN/.N    XOJ  
g(=| A ~C"Hn/. Hy    N    `  +m n ;m r p`   n-h @JfHm ~N  
XO(@)n  )y     /.N    XOHm ~HUa PO`lB, 
,  g+l  ;l  /.N    XOp`FJ g/, N    XO)n   ,     gHm ~HUa PO)y     /.N    XOp L0N^NuNV. n 0(   f ( n X  n Yh  n Jh f  N    -@ n Jh 
fHy  
N    XO n 0( 
HA   Sp Ry    n Bh 
 n     e
/N    XO n -P      n B  n B |#     /.N    XOJ    gB    Hy    N    XO-n  n h  mL*h U f@p - Pr - Ё2( Hd` /. /. N  FPO`p 0-    g/. N    XOp *nN^NuNVH8*n A tC" n (h p 0, -@-l -l 0, m rf ,  ng 0, y  
f( ,   
|f/.Hy  
Hx N    O `  .ذfBHl N  
 XO/ Hy  
Hy  
Hx N    O AC"   f `  N    -@ .rЀ" ҁЁ    &@~  gRG rmrm.g@'l  7l   +  J g(=| AC"Hn/+ HU m .NO B .f. .԰f$HnN  
XO&@Jg'l  7l   +  /.N    XO   f   .԰f)l  9l  )m n 9m r `\ .rЀ" ҁЁ    &@~  gRG rmrm.gh+  g`)l  9l  )k  9k  )l  )n 9|  A-H   n1l   n1| BnHn/. HU m .N`/. N    XOL8N^NuNV.*n N    -@J g/- N    XOB B- B- 
B/.N    XOp *nN^NuNVH0~-GJ  
gB  
/9    BHzN    O  n  rЀ" ҁЁ    *@~ J- g>-  fp - 
op - 
-@(MRK rm.fp `*LHUa $XO n *|   
L0N^NuNVH<*n U fJm gp/` Z&MN    -@ + rЀ" ҁЁ    (@~   gRI rmrm.f  $i g/.N    XOp`  HUN    XOJf  /.N    XOp3`  .f\Hk a XO(@.f/.N    XOp1`   -    g0Hk a vXO$@.
fHTa XO/.N    XOp1`xHRa XO)m  9m   -  ~r@ B, 
`@HTa XO`6+l  ;l  p , +@  ` . $ig P$i g$ig/.N    XOp L<N^NuNVH0 *n Hx  HnN    POI8  m # N    -@0m / m *NXO/.N    XOB    HUN  
XON    -@`Hx Hy    N    POJ    g/.N    XOA    XL(HUHnHy iBN    O JgHy  N    XOp L0 N^NuNVH< *n J    g*     
m/9    Hy  >N    POB  
` HnBN  POR  
     
fHnN  
 XO/ Hy  YN    POHx BN    PO(@JfHy  N    XO9|  0, Hr|)A &L Hx HSN    POBnE$  
|5y  
 %n 5n 
5|5 6 7|  |  |  7|  'n 7n 'n 7n HnHTHU m .NO  9    " ҁЁ/ HUHzN    p L< N^NuNVH0 *n  n X  n Yh  n Jh f  N    -@ n Jh 
fHy  N    XO n 0( 
HA   Sp Ry    n Bh 
 n     e
/N    XO n -P      n B  n B |#     /.N    XOJ    gB    Hy    N    XO-n  n (h h  mR0-   fHl  f@l  f8HnBN  PO0, nf  , f#     Hy    N    XO/. N    XOL0 N^NuNV  J  
fBr#  
J fp `J n "|  3h  "Hy  N  
 XO/ Hy  N    POJ gA  "n 3h  "pN^NuNVH *n "|  ~  cp A  
 rA  
  :RrmB! <  L N^Nu   `              0123456789abcdef      mfree arp: ether address is broadcast for IP address %x!
 %s: %s
 duplicate IP address!! sent from ethernet address revarp: can't set perm inet addr
 Found Internet address %x
 revarp: Requesting Internet address for %s
 revarp: no mbufs mfree Ethernet address = %s
         
  8P   "  FP   ,  -P   D  P   n  @     P     'P     @     @  X  P  t  -P    P    3P    @    @    P    3P    @    9P    "P  L  @  \  =P  h  3P    3P    6P    =P    =P    3P  (  P  <  @  B  >P  V  CP  `  CP  ~  ;P    .P    .P    3P     P     P    .P    5P    @  6  6P    @    @    @    P    @    @    @    P    P  0  -P    @    3P    -P    6P    P    6P    3P    @  $  @  *  8P  6  FP  T  -P    P    -P  0  3P  @  P  R  3P  x  3P    3P  	&  3P  	N  'P  	d  P  	  3P  	  BP  	  @  	  P  	  BP  	  P  	  BP  	  3P  	  BP  	  P  	  @  	  P  
  BP  
"  @  
*  BP  
0  @  
6  P  
>  @  
N  @  
V  @  
`  @  
l  @  
v  @  
|  P  
  P  
  @  
  >P  
  'P  
  @  
  @  <  8P  P  FP    P    @    >P    CP    CP    ;P    .P    .P    3P     P  "   P  (  .P  .  5P  n  @    BP    BP    5P    6P    @    @    @    @    @    @    P  
  @  
.  @  
B  @  
R  @  
j  @                               !          (          0         7          <     `   I     F   V        `         i         x                                          @        
                                                                        
|                           %         4         ;        F        N        Y         c        i         s        x                              
                 @       
                       
                                      J                            '        +         1        :         B        J        P         W        ^        f     	8  u        }                   
x                   _rootvp _rootdev _in_control _m_get _printf _lbolt _log _revarpinput _in_arpinput _arpinput _avenrun _domainnamelen _hostnamelen _runin _in_ifaddr _rawintrq _hostname _useloopback _tz _dumpvp _nchrdev _boottime _in_broadcast _panicstr _noproc _etherbroadcastaddr _ipintrq _splimp _physmem _ifa_ifwithnet _sleep _boothowto _m_want _arpwhohas _looutput _tick _arptimer _phz _runout _bzero _selwait _ether_sprintf _nblkdev _domainname _revarp_start _arptab _mfree _arptnew _runrun _arptfree _localetheraddr _splx _arpresolve _wakeup _m_freem _maxmem _hz _loif _mclfree _mclput _wantin _time _panic _ifnet _dumplo _revarp_myaddr _myaddr _mbstat _arpioctl _arptab_size _timeout _curpri  JP  f  <P  j  JP  n  JP  v  JP  z  JP  ~  JP    JP    JP    JP    JP    JP    JP    JP    JP    JP    <P    JP    JP    JP    JP    JP    JP    <P    JP    JP    JP./share/sys/sun2/OBJ/if_ie.o                                                                           444       0      12        47571  4424712560  10701                                                                                                                                                                                                                                                                                                                                                                         .  X            
x   NVH8 . " DЁҁЁ    *@Hn/. N    PO.    @f8(n B/N    POJf</. N    XO~g   f"|  `  &n Hy  HSN    POJgp `lHSN    XO. rgN   f
|  p`H(n BHTN    POJf(G HxgHSN    POJfHSN    XO  gfp `|  pL8N^NuNV n 0( H" DЁҁЁ    -@J g h  h   n!|     n( HHrg^rgXrgb/.N  **XO .rnЁ/ BN    POHz jHzHzHz Hy  / n 0( H/ /.N    p N^Nu n"n !i 
 ` n"n !i 
  n h "n "i  ) @ ` vNV.    l: . A    *p "
g&Jm  g /. Hy  /N    PO/. N  JXOp *nN^NuNVH0  . " DЁҁЁ    *@N    -@HUN  **XOHUHzLN    POHUHzN    PO`&(m "g+l | fB B |S HTN    XOJ f0-    g  J fT/9  ./9  ./9  ./9  ./9  ./9  .HUN  O -@ o+n HUN  tXOHUN  *`HUN  TXOHUN  DXOHUN  HXOB HUN   XOJgXHUN  	.XO m @ HUN  #(XOHUN  *XO/. N  RXO 9    Ѐ" Ё/ HUHz tN    O +y     /.N    XOp L0 N^NuNV .     "<  pN    -@/. N    XOHy  /&N    XO/.a <XOp N^NuNVH0*n  
    "<  pN    . N    , (m B-  f, m  g"HUN    XOHy  /4N    XOr-A`  Hx HTN    PO, HTHUN  %POHUN  %~XO 9    / HUHzN    O  -        l
+y     `" 9    Ѐ" Ё/ HUHz&N    O `*R(/a BXOJgHUN    XOHy  /GN    XO/N    XOp L0N^NuNVH0~ *|    HUN  'XO- HHrgrgJrgf`   m ( @g m ( @gHUN  ,vXOp`   m ( @g~ m (  @`4 m  gHUN    XOHy  /MN    XO m  gF m   f(Jf((m ,  f,  f,  f,  g~`JgHUN  DXO`Kp  e  L0N^NuNVH0*n (m HUN  'XOJl gBHUN    XOHy  /WN    XOHUN  -ZXO 
    "<  pN    / a ZXO`  ~ >   f.<   9G HUN  (XO0- rAf  rPg
HUN  	XO   g
HUN  &`>J f:J g4HUN    XOHy  /bN    XO 
    "<  pN    / a XOJ gL,   fBHUN  'XOJ g2,   f(,  f ,  fHUN    XOHy  /}N    XOp L0N^NuNV  Hz/. /. /. N    N^NuNVH0 *n 0- H-@" DЁҁЁ    (@-n BN    -@ .  ig` ig  ig   i1g` i2gp i
g ig  r-A`  Hx  .rЁ/ Hm nN    O `  Hl n/. HUN    O -@`  /.HTN    PO-@f  `v/.HTN    PO-@fl``,  fJ gJlgr-A`NHTN   @XO n-h    l-|   )n `,  f : n!l  `
/.a :XO/.N    XO .L0 N^NuNVH8 *n (m Hx HTN    PO,  ,  A nC 3h  "HTHUN  &POJm |gR&m HxHSN    PO+  +  0- |@2 AA7@ 0k /Hk /- xN    O HSHUN  &POp L8 N^NuNVH< *n $m A    C #h  "&m "g `  HSHUN  POk gN(m"gF,  g>  	p ,   -@BT m  	+LI e(m+LJg7|   BS m   +K G  e&m +K +  f h0* H-@g"Bj /.N  ,VXOH-@ѭ B .ѭ80* 
H-@g"Bj 
/.N  ,VXOH-@ѭ B .ѭ<0* H-@g"Bj /.N  ,VXOH-@ѭ B .ѭ@0* H-@g"Bj /.N  ,VXOH-@ѭ B .ѭD  p  @gVRH m (  f "/-HUN  ,PO m 1@ HUN  'XO/- HUN  ,PO5@ 5|  HUN  (XOp L< N^NuNVH8 *n (n R >,  f R BHUN    XOHy  /N    XO` l fB`  p 0, / HUN  ,.PO&@+  f HUN    XOHy  /N    XOR B` vp +   ?r Ё-@Hk HUN  +PO-@rЁ-@   m`BHnHn/./.N    O Jg HUN    XOHy  /N    XOR B`  Jf HUN    XOHy  /N    XOR B`     po  Jf  Rd-k 
-mgpB/././.HzN    O -@gNRhRm n  +n 'n 
 .P/ HUN  +8PO-@XKn n  n+P`/././.N    O -@Jg/.HU/./.N    p L8 N^NuNVH *n .. nHUN    XOHy  /N    XO -@/ /- N    PO-@fHUN    XOHy  /N    XO+n ;G ޮ+G HUN  TXOp L N^NuNVH<*n (m ~ >- &L`$KPKHSHUN  ,PO5@  A QHeHTHUN  ,PO7@ +L +L ;m  p L<N^NuNVH0*n .. nHUN    XOHy  0 N    XO -@/ /- N    PO(@/.HTN    PO"fHUN    XOHy  0 N    XO+L ;G HUN  DXOp L0N^NuNVH0*n (m ~ >- |`$S A )(Rm SB| `" -tg/.N    XO BRm+L p L0N^NuNVH0*n .. nHUN    XOHy  0;N    XO Ѐ" Ё偐ЁҁЁ-@/ /- N    PO(@"fHUN    XOHy  0\N    XO+L ;G HUN  HXOp L0N^NuNVH *n "m ~ >- |`8 SЀ$ Ђ傐ЂԂԀ Ѐ" Ё偐ЁҁЁA #( RmSއ"ށ偞ށҁށBx +I p L N^NuNVH8*n .. ;G Ѐ" DЁ-@/ /- N    PO-@fHUN    XOHy  0xN    XO+nއ"Dށޮ+G/./.N    PO(n`&LI HTHUN  ,PO7@  -~e/.HUN  ,PO9@ +n+Lp L8N^NuNVH8*n .. ;G  Ѐ" ҁЁЁ-@/ /- N    PO-@fHUN    XOHy  0N    XO+n އ"ҁށށޮ+G (n`&LI HTHUN  ,PO7@  - ~e/.HUN  ,PO9@ +n +L p L8N^NuNVH0*n .. ;G Ѐ" 灐ЁҁЁ-@/ /- N    PO(@,fHUN    XOHy  0N    XO+L|`0 SЀ$ 炐ЂԂԀ Ѐ" 灐ЁҁЁA )( RmSއ"灞ށҁށBx +Lp L0N^NuNV.*n "n Jm fp `. m P  - Ⱝ e+m  Sm "	g     *nN^NuNVH< . " DЁҁЁ    *@-m o RT   o RX` xJ g xJ g pJm g h(m .g+l | fB B |S -m =m &m +k  "L -IA n\I3h  "'L B B Hx dHTN    PO(@'L .fHUN    XOHy  0N    XO` l < l9| < BB` Jl o ~Jg: Th < l0Hx </N    PO(JfHUN    XOHy  0N    XO` /.HUa bPO-@Jf-@Jm fJfp`B. gv Ь / HUN  +8PO, g` Ь    fT-F nXH-H nn  nn  n0,     n0, H(   ?( `  -m  n+P R\JfR`.
gB`B HT/.N    PO-@'n 'n /.HUN  +8PO-@ nXH-H nn  nn  n n .(   ?( `
$L(T.f t/.HUN  ,PO7@ +  +  HSHUN  %POJ f HUN  %~XO`R-k (k .gHTN    XOB Jg n  +n 'm  +K +n ;n HUN  %~XOp L<N^NuNVH<*n (n J  .g,  g
J- fp`B. ,  g*p   ѭ NR F gRP g  RL`  R J g R,JfHUN    XOHy  0N    XO,  g R0JfHUN    XOHy  1N    XO,  g R4JfHUN    XOHy  1N    XO,   gR$l fp `p 0, / HUN  ,.PO&@`  +  gp `p 0+ / HUN  ,.PO$@ g`HUN    XO/- HSHy  1N    O HT/- Hy  19N    O /- p 0, / Hy  1WN    O Hy  1|N    XOP  - ް e+m  Rm 0- ԰m cHUN    XOHy  1N    XO&J"f :B- ,  fJgHTHUN  PO-l g/.N    XOB -l g n  +n )m  +L p L<N^NuNVH< *n  n  (  "m/N    XOHy  1N    XO`  -m g8$m B/.HRN    O (@"f/. N    XOHy  1N    XO`^&m "g"g`&SJf&&m `&L n 'h  | n J f!K  n !K  n R  n Rl n |  B p L< N^NuNV. . -@ . -@ . Ѐ" Ё偐ЁҁЁ-@ . Ѐ" DЁ-@ . Ѐ" ҁЁЁ-@ .  Ѐ" 灐ЁҁЁ-@.<    m2m(mm쾮m
m .  ЮЮЮЮЮЇV~..N^NuNVH0*n -M0- H. Hx ( " Ё    / N    PO nB j- HH|g D|g|g .` LJ f@    l+|    /- N    XO+@ J fHUN    XOHy  1N    XO"ށ    +G Hx Hy  2/- /- /- N    O B  -   rr-@Hn/ N    POp .  rr 2.A-@Hy   Hx /  -  r/ HnN    O  .  / Hx 
/- N    O +@ J f 8HUN    XOHy  2N    XO` (m p J WD -@g\ -   r/ /9    N    PO-@f&HUN    XOHy  2"N    XOHy  2>N    XO .r    +@ -m  .    r-@p ,A  r-@HnHTN    PO .rr 2.A r . t婀+@ Hy    -   r/ /-  .r/  .    / N    O Jg  -L|  nBPTR   m| T 0@THx /- N    POR   m-L| ` n  nP 0@PTR - l  䀼mA-H  nP   D+m  "ށ    +G Hx Hy  2G/- /- /- N    O  -   ` (m p J WD -@gPHx @/9    N    PO-@f&HUN    XOHy  2LN    XOHy  2hN    XO .r    +@ -m  .    r-@HnHTN    PO . R+@ Hy   Hx @/-  .r/  .    / N    O +m  "ށ    +G Hx Hy  2q/- Hy   /- N    O  -  / Hx 
/- N    +@ p L0N^NuNVH *n HxHx N    POHx / N    POHx / N    PO/ /- N    PO+@ ~//- N    PO+@ ~//- N    PO+@ ~//- N    PO+@ J gJ gJ gJ fHUN    XOHy  2vN    XO/9  .HUa PO/9  .HUa PO/9  .HUa PO/9  .HUa |PO/9  .HUa PO/9  .HUa POp L N^NuNV.*n -  f8JmgHUN    XOHy  2N    XOJ g/- /- N    POB p *nN^NuNVH<*n -m -m B`"HUN    XOHy  2N    XOHUN  **XOHx 
/- N    PO/.HUN  +8PO-@$m \Jn n Hx /.N    PO n /- HUN  +8PO-@$nXJn n /.HUN  ,PO n1@ Hx /.N    PO n1|V - HH~g
~gJ~HUN  (XO.< 0 "9    SJn.< 0 "9    SJn2`< <  2`p nJf` m  .<  @"9    SJo` n(  gHUN  )`XO-@ nJf n(  gJf\HUN    XOJg <  2/  n(  f <  2` <  2/  nJg <  2` <  2/ Hy  2N    `   n(   f (m Hx HTN    PO ,  HTHUN  &PO,  fHUN    XOHy  2N    XO`>&m HSN  (\XO0-   gp`p +   + HSHUN  &PO~-G .L<N^NuNVH<*n -m` n!M  n-PJf(m`    &m /-HUN  ,PO7@ $m   pg<HUN    XOHy  3!N    XOHUN  -ZXOHUN  'XO5|@  HUN  (XOHUN  'XOHSHUN  ,PO5@ 5|  HUN  (XO.< 0 "9    SJo    p  @f`    	I e(m-l 
fv-mfHUN    XOHy  3N    XO n+P)n 
 .P/ HUN  +8PO-@A -H nn  nn , 	 ,  	|  BTf f  	&m BS  7|  g   G  e&m `  p  @gHUN    XOHy  3;N    XOp L<N^NuNVH0*n (n N    . BT      Bl J gHTHUN  ,PO m 1@ +L `+L +L /N    XOp L0N^NuNVH8 *n &m N    -@HUN  'XOJ g+     f/.N    XO`hHUN  &6XO(m "g` Jl g  p 0, / HUN  ,.PO(@"f/- HUN  ,PO7@ 7|  HUN  (XO/.N    XOp L8 N^NuNVH0 *n `rf
HTHUa ,PO(m "fp L0 N^Nu,  gJl gp 0, / HUN  ,.PO`p +@ p ,   JfHUHz.N    `NV.*n HUa |XO 
    "<  pN    / a |XOp *nN^NuNVH8*n (n &m BHTHUa POHUa tXO.< 0 "9    SJn  ,  fHUN  -ZXOHy  3TN    XON    -@HUN  'XO+  g . +  g .  7n HUN  (XO.   gHUa XO/.N    XOp L8N^Nu,  g d` hNV"n  i "!IShp N^NuNVH0*n (m .gb~ lV gHUN    XOHy  3^N    XOJl g
R m m&HUN    XOHy  3nN    XOHy  3N    XOp L0N^NuNV.*n Hx HUN    PO-  -  -  -   9  .-   - - 	 -   	  	- 	 -  	| ` - 
 -  
| @  -  
-  -  p *nN^NuNV.*n - HHrg&rg6rg0HUN    XOHy  3N    XO`& m  @ m  @` m   m  p *nN^NuNVH<*n (m &m $m - HH~gH~g ~gbHUN    XOHy  3N    XO`h.< 0 "9    SJnp `F  g`.< 0 "9    SJnp +@`"+  @g`.< 0 "9    SJnp   -@ .L<N^Nu  g`NVH *n - HH~g&~gd~gBHUN    XOHy  3N    XO`J m  @.<  @"9    SJn m B(@`" m  .<  @"9    SJn m Bp L N^NuNV.*n - HHrg&rg@rg:HUN    XOHy  3N    XO`0 m  @ m  @ m  @` m   m  p *nN^NuNVH0 *n (n HnHTN    PO-  f.  g `Xp .  rr 2.A-@ m0 -   rЭ c . r"  Ё`p L0 N^NuNV."n p r ) ቀr ) t婀 n Ш $.N^NuNV n  .  =@nnp 0.N^NuNV n =n nnp 0.Ш N^NuNV=n 
nn0.HN^NuNVH<*n (m HUN    XO ,D / p ,E  / p ,E  / Hy  3N    O   D&m $m  Hy  3N    XO`R>, @gF ,D / p ,E  / p ,E  /   / Hy  3N    O   DTKeHy  3N    XOp L<N^NuNV. n *h /N    XOHy  4`N    XO-  gHy  4fN    XO-  gHy  4jN    XO-  gHy  4nN    XO-  gHy  4sN    XOp -   A  ./0 Hy  4xN    POp   A  ./0 Hy  4N    PO0m /0m /0m 
/0m /p 0- / p 0- / Hy  4N    O Jm gp 0- / Hy  4N    POp *nN^Nu            
          @  H  4                             
   	           4  4
  4  4  4  4"  4&  4*  4.  43  4=  4J  4N  4T  4X  4\      ie reset ie%d iebark reset
 obie buserr reset
 iedog bus error lost sync
 lost interrupt: resetting
 CU out of sync
 receive error
 giant packet
 trailer error
 runt packet
 ie_tbdalloc: ridiculous request ie_tbdinit: no rmap space ie_tfdalloc: ridiculous request ie_tfdalloc: no rmap space ie_tbufalloc: ridiculous request ie_tbufalloc: no rmap space ie_rbdinit: no rmap space ie_rfdinit: no rmap space ie_rbufinit: no rmap space out of mbufs: output packet dropped
 out of mbufs
 Ethernet jammed
 no carrier
 no CTS
 tbd: %x, es->es_utbd: %x
 	es->es_tbdring: %x, tfd: %x
 tfd->ietfd_tbd: %x, es->es_base: %x
 iexmitdone: tbds out of sync iexmitdone: too many free tbds output queue full; can't requeue
 out of mbufs for packet requeue
 iegetmem: no memory iecb no SCP memory no kernelmap for ie memory
 iegetmem iecb no kernelmap for ie memory
 iegetmem iecb ieinitmem: no rmap space ieobfree init failed:%s%s%s
  iscp busy   no cnr   no intr  cus not idle after reset
 Intel 82586 failed diagnostics
 ierustart: not enough rbufs RU unexpectedly not idle
 RU did not become ready
 iesynccmd scb overwritten cmd not accepted
 iechkcca ieca iewaitintr iechipreset iesplice parity error src=%d byte=%d addr=%x
 scanning...
 off=%x src=%d byte=%d addr=%x
 done
 idle suspended ready <3> <4> <5> <6> <7> idle suspended no resources <3> ready <5> <6> <7> scb:  cx  fr  cnr  rnr  cus=%s  rus=%s
 cbl=0x%x rfa=0x%x crc=0x%x aln=0x%x rsc=0x%x ovrn=0x%x
 cmd=0x%x
       ie           kP   ,  <P   J  P   Z  P     JP     9P     JP     JP     9P  (  kP  r  @    `P    @    P    6P  (  @  .  
P  :  @  f  kP  n  4P  z  @    FP    FP    fP    @    @    @    @    @    @    @     @  *  @  4  @  >  @  H  @  V  @  d  @  t  @  ~  @    @    hP    P    tP    bP    kP    SP    P    @    
P  (  kP  4  SP  <  4P  `  P  h  @  n  
P    NP    @    @    hP    P    tP    tP    hP    P    P    @  $  uP  .  bP  L  kP  T  @    @    P    @    uP  "  @  0  kP  X  @  h  P  p  @  v  
P    @    kP    SP    @    @    @    P    @    
P     kP  ,  SP  L  @  v  P  ~  @    
P    DP    kP    4P  T  PP  l  zP    P    P    @  	  bP  	F  NP  	n  @  	  NP  	  PP  	  @  	  tP  
  @  
  @  
  @    @  B  @    @    @    @    @    P    @    
P    @  2  P  :  @  @  
P  l  @    ^P    P    @    
P    P    @    
P  
0  +P  
f  @  
  P  
  (P  
  P  
  @  
  uP    P    P    @  $  uP  B  @  x  @    @    P    @    uP    P    NP    P    @     uP  2  @    fP    P    @    uP    P    P    @  $  uP  6  @    P    P    @    uP  :  NP  R  @  p  @    P    P    @    uP    @  ,  @  ~  P    P    @    uP  n  kP    #P     P  (  @  .  
P  r  #P    P    @    
P    @  l  P    @    @    @    @  2  fP  j  @    @    P    @     
P    P  "  @  (  
P  B  P  J  @  P  
P  z  @    @    P    @    
P    @    
P    @    
P     @    uP  2  P  :  @  @  uP  d  @  x  fP    P    @    
P    P    P    @    
P    P    NP    P    P    @    uP  $  P  2  @  D  WP  n  <P    KP    P    P    @    uP  *  xP  0  P  @  P  H  @  N  
P  V  @  \  uP  l  iP    iP    <P    3P    KP  R  NP    P    @    WP    xP    P  ,  P  4  @  :  
P  B  @  H  uP  X  iP  l  iP    <P    3P    KP    P    @    WP    P  @  P  N  P  \  P  j  P  ~  P    P    P    P    @    uP    @    @    @     @     @   (  @   \  P   d  @   j  uP     "P     P     @     
P     @     NP     @  !  NP  !,  @  !T  @  !l  NP  !  @  !  P  !  P  !  @  !  P  "  @  ".  P  "<  @  "P  @  "X  @  "h  @  "p  @  "x  @  "~  
P  "  NP  "  @  "  P  "  @  "  
P  "  @  #  @  #l  @  #  P  #  @  #  
P  #  @  #  @  #  @  #  @  #  @  #  @  #  P  $6  P  $>  @  $D  uP  $d  @  $  P  $  @  $  
P  %"  4P  %L  @  %l  bP  %  4P  %  @  %  bP  %  @  %  @  &  @  &  @  &$  bP  &  @  &  FP  &  kP  &  SP  '  P  '0  @  '8  @  '>  uP  'F  4P  'R  @  '~  @  '  bP  '  P  (  @  (  uP  (.  P  (6  @  (<  
P  (D  @  (J  uP  (n  NP  (  @  )  P  )"  @  )(  uP  )  P  )  @  )  uP  )  P  )  P  )  P  *T  P  *\  @  *b  uP  *|  P  *  P  *  P  *  @  *  uP  +P  <P  ,  P  ,  @  ,  
P  ,  @  ,  
P  -&  @  -,  
P  -B  @  -H  
P  -l  P  -t  @  -z  
P  -  @  -  
P  -  @  -  
P  -  @  -  
P  -  @  -  
P  -  @  -  @  -  
P  .
  @  .  @  .  
P  .J  @  .P  
P  .h  @  .n  
P      @     @     @     @      6P   R  @   V  @   Z  @   ^  @   b  @   f  @   j  @   n  @   r  @   v  @   z  @   ~  @     @     @     @     @            
                    &          7          F         N         W          ^          l     
   v     %   ~                                   ,.        ,                                              ,V        +8        '        .                                             *         4         ;      @  E     &6  P        T         _         m     *  x     .               ,v                                                D               @                       .                         **  )        1        :     #(  E         K       S       Z         g     (\  v                            .       .       .                                .               J                                                              #     &  -        6         <     -Z  D      @  P     %~  [         c        j     +  w     	.       t                                @                .                                                                                #     L  0       <     H  I     T  U     '  _        h        p     )`  |                                                               R       .                              *       	       &       D       (       |  !        -      P  5       C       P     
  ]        g         p       y                         _nbuf _delmultiaddr _addmultiaddr _copy_from_mbufs _copy_to_mbufs _rootvp _rootdev _rmget _ether_attach _ieattach _iedocb _peekc _max _printf _from_ieoff _to_ieoff _bclnlist _lbolt _kmem_alloc _rmalloc _to_ieint _ieaddr _iechkcca _iedriver _avenrun _domainnamelen _hostnamelen _runin _rawintrq _identify _pokec _hostname _iecuclean _tz _kmem_free _ether_pullup _ieinitmem _ie_tfds _dumpvp _ieparity _do_protocol _nchrdev _boottime _mclgetx _ie_rbdinit _ie_tfdinit _panicstr _iepoll _noproc _etherbroadcastaddr _ie_rbufs _Sysmap _splimp _iechipreset _ieinfo _physmem _ierustart _peek _iebark _iedog _mmu_getkpte _iedefaultconf _iecalcmem _boothowto _m_want _iefifolim _ie_rfds _ie_tbufs _ether_output _ieoutput _untimeout _ie_retransmit _tick _ieinit _poke _mapin _phz _runout _bzero _selwait _bcopy _iecbdone _nblkdev ldivt _iestat _domainname _iecustart _rminit _mfree _from_ieaddr _iedoaddr _iegetmem _runrun _bufhash _check_trailer _ieobfree _localetheraddr _ie_tbds _splx _ietbdget _ieread _ie_requeue _m_freem _maxmem _hz _Sysbase _ieioctl _ie_softc _ie_rbufinit _ie_rfdinit _ie_tbufinit _ie_tbdinit _ieclfree _mclfree _wantin _iewaitintr _time _panic _iopbmap _ifnet _kernelmap _dumplo _set_if_addr _iestartout _ie_rbds _ieprobe _bfreelist _mbstat _iesplice _ierecv _iesynccmd _ieintr _ieca _iexmitdone _iechipinit _iermap _ie_tbufalloc _ie_tfdalloc _ie_tbdalloc _bufalloc _timeout _iereset _cpudelay _bufchain _curpri +  g . +  g .  7n HUN  (XO.   gHUa XO/.N    XOp L8N^Nu,  g d` hNV"n  i "!IShp N^NuNV./share/sys/sun2/OBJ/if_subr.o                                                                         444       0      12        13277  4424712573  11257                                                                                                                                                                                                                                                                                                                                                                            `               NV.*n ;n  * ;| +n  *+n  2+n  .+n   6B VB ZHUN    XOp *nN^NuNV   n p J VD N^NuNV   n !y   #   p N^NuNV.*n -n  n p 0Jg6rg\ m  0m / m *NXO nJ gHm tHUN    POp `: n (   gp`* n "n "  n "n 1i  ` nXHC t"`*nN^NuNVH< *n (n B0- rAg p2`  n  - ~ g XHC ~"HTHUN    POJfB ~` X-m =m -|   `  &n TK-S=k p 0+ -@`  "
g`J 
gZHnHUHT/.  j 
NO Jf j f*B-L` n0( HѮ-PJf-n`vp 0* -@`jHUN  lXO n p 0/ Hy   N    PO/. N    XOp/`  n p 0Jg >rg $y  "
g H n p 0g :$j `0.y   f$ .찹    fHy; BHTN    O -@   | b
    dBHx BN    PO(@"f"/. N    XOHy  6HUN  POp7`  ( 9|  `
r l &L &7n 7n Jg:-nB` n0( HѮ-PJf/.HU/.HSN  ZO N    -@ -  "mHy  IHUN  POR &HUN  XOB |J f+L ` m !L |+L R 0m / n NXO/.N    XOp L< N^NuNVH8*n .9    9    "- "N    . f(&m .g+k | fB B |S HSN    XO`DS(m ` SJo(l |"f.g(&l |.g )k | | f+L HSN    XOS p L8N^NuNV   n 0( H/ /Hy  _N    p N^NuNV   9    r  xf 9  | g./. aXO/. N    XO 9    r#  x#   |p N^NuNVH  n B n =h n eJndB~ >.   r	"n 1qx   n | <0x n  Іop` n ܇  n  p L N^NuNVH0 *n m @ |ep1`RJm |f J xfHxN    XO+@ xJ xfp`,p 0- |Ѐ" ҁЁЭ x(@Rm | n (  n 9h  p L0 N^NuNVH<*n &m xp 0- |Ѐ" ҁЁE Jm |gT(n I `B0+ l f6 f0 
rN    S. Sm |Jgއ"ҁށ/HSHk N    `\Kefp1`p L<N^NuNVH<*n (n  n 0- h rf  ng0- y   f
     gp`B-@g^  gX~ `F Ѐ" ҁЁ n Ш x @0- h f Ѐ" ҁЁ n Ш x @ gp`B-@gR n p 0( |e-M~-G-n -nHnHT/. N    O Jf b   | b
    dxN    -@$y    .
g6Jj 
gHy  fN    XO5| 
 
Sy   Ry   "#    B~%G `Hx 
BN    PO$@/.N    XO.
g  $5|  (J`Y Xl   l !  p 0-    g$  g6  5g@$y  `^0* m f@`VBHy    N    PO&|    `  HT/. N    PO`  HT/. N    PO`  m bj g$j .
f.
g4J g.HUHT/.  j NO &@.g~J gB/* N    PO`HTN    XO`\N    -@ +  mR HTN    XO/.N    XO`,B |J f&` k !L |'L R /.N    XOp L<N^NuNVH0*n  
Ю -@BA-H~-GJ g  . XY `  N    -@(y    .g6Jl 
gHy  kN    XO9|  
Sy   Ry   
#    B~)G `Hx BN    PO(@/.N    XO.f/.N    XOp `  e*n  
Ю -@..  mHTN    XOJfrpopp`09@ JgX Yl B0, H. / Ь / HUN    O ǟ  n -LJ n  .L0N^NuNVH0*n ~ (n `*0, H, g Ь -@/HU/ N    O ކ(T,f/. N    XO L0N^NuNVH0.. (n |pn 80, Hm ` 4 , Ї||d*L(T,f 
` 0- H`~N    -@*y    ,
gBJm 
gHy  pN    XO;l 
 
Sy   0, 
HA   Rp #    B|+F `0l 
/BN    PO*@/.N    XO,
g  Bm 0- Hrpl0- Hrp`",0, Ho0, H, Jo./0- H"
ҭ Ё/  Ь / N    O m l Jl oݬ `HTN    XO(@,f* 
`HTN    XOp L0N^Nu            can't handle AF 0x%x
 WARNING: no mbufs
 WARNING: if_snd full
 %s%d:  mget mget mget       >  P   n  @   x  @     .P  Z  AP  
  @    @  "  
P  .  BP  R  @  v  %P    %P    IP    P    BP    @    @  N  @  X  'P  l  @  t  @    @    @P    GP    GP    *P    BP  V  BP    @    
P    GP    @    @    
P    GP    @    @    
P    7P  :  P    %P    %P  "  PP  H  'P  R  :P  b  @  h  HP  v  OP  |  OP    :P    QP    @P    @    8P    ;P    &P  &  P  8  P    ;P    BP    'P    BP    @P    @P  	F  'P  	P  :P  	`  @  	f  HP  	t  OP  	z  OP  	  :P  	  QP  	  @P  	  BP  	  ?P  
(  4P  
  4P  
  BP  
  'P    :P    @    HP  ,  OP  :  OP  D  :P  \  QP  j  @P    4P    P    BP            
             Z   &     
V   7     	   F         N         W          ^          i          w                                                                          
                                                                      l        @         d  0        4         <     
  J        R     Z  _        h        r        |                                                                                                                                         $      N  3        <         B         J      @  V        ]         g        o       x                                                                                                                                                           #         +         3        =        G        O_nbuf _delmultiaddr _addmultiaddr _copy_from_mbufs _copy_to_mbufs _rootvp _rootdev _m_get _if_attach _ether_attach _printf _bclnlist _lbolt _kmem_alloc _rtnet _revarpinput _arpinput _rtstat _avenrun _domainnamelen _hostnamelen _runin _ovbcopy _in_ifaddr _rawintrq _identify _hostname _ether_register _tz _m_free _ether_pullup _dumpvp _do_protocol _nchrdev _boottime _panicstr _noproc _etherbroadcastaddr _ipintrq _splimp _ether_families _physmem lmodt _boothowto _m_want _ether_error _arpwhohas _ether_output _tick _phz _runout _selwait _bcopy _address_known _nblkdev ldivt _ipintr _domainname _mfree _softcall _runrun _bufhash _check_trailer _mclget _splx _arpresolve _m_freem _maxmem _hz _mclfree _wantin _time _panic _m_copy _random_drop _ifnet _dumplo _set_if_addr _bfreelist _mbstat _snit_intr _m_more _rthost _bufalloc _bufchain _curpri g^  gX~ `F Ѐ" ҁЁ n Ш x @0- h f Ѐ" ҁЁ n Ш x @ gp`B-@gR n p 0( |e-M~-G-n -nHnHT/. N    O Jf b   | b
    dxN    -@$y    .
g6Jj 
gHy  fN    XO5| 
 
Sy   Ry   "#    B~%G `Hx 
BN    PO$@/.N    XO.
g  $5|  (J`Y Xl   l !  p 0-    g$./share/sys/sun2/OBJ/in_cksum.o                                                                        444       0      12         1247  4424711507  11404                                                                                                                                                                                                                                                                                                                                                                         P   P       l       0    NVH0*n .. 0- Hn  f/ 
Э / N    PO` | z (M rf2z ܅:- HSS`("
fHy  N    XO`  Jm f*U`0- H* *Ul*Jo      f* / HTN    PO܀   g^p ܀`Rp ܀S / HTN    PO=@Hx HnHnN    O p 0.܀   gp ܀`zJf > r  ܀ r  ІF  L0N^Nu    @(#)in_cksum.c 5.8 88/09/23 Copyr 1983 Sun Micro        cksum: out of data
        .  P   `  @   f   P     P     P     P                  P                      #          -         4         =        E          K_printf _sccsid _ocsum _m_want _in_cksum _mfree _mclfree _mbstat _swab sops.o     x  st.o ps.    y  
str_conf.o     z  str_io.o o      {  
subr_prf.o     |  
swapgeneric.o   0  }  
sys_process.o 0  @  ~  tm.o ss.  P    tty.o .o  d  ˀ  
tty_flow.o .  |  ˁ  tty_ldterm.o  |    ˂  	tty_pty.o ˁ    ˃  ufs_inode.o     ˄  ufs_vnodeops.o     ˅  uipc_mbu./share/sys/sun2/OBJ/in_pcb.o                                                                          444       0      12         6565  4424707047  11042                                                                                                                                                                                                                                                                                                                                                                                              NV.Hx BN    PO-@fp7`. n*h +n  +n  /. HUN    PO n !M p *nN^NuNVH< *n (m &m BnJ    gNJm fJ gp` ,J g   n $h h  fJ g(p 0* -@Bj HRN    XOJfp1`  5n =j gz=nBn d x;$ h DJh gp
`  0,   f l 0(   g
0,   fr-A/.p 0./ /* B/9    HSN  $O Jgp0``A C "JnfH0+ Rk @ ek c7|  =k Bp 0./ /- B/9    HSN  $O Jf;n p L< N^NuNVH0  n *h h  gp` U gp/` Jm g lJ    g>J f
 y    XH`( f$ y     h  0(   g y    A C " n J f &B(HI  Jg6 ,  f h 0(   g Th  &f/N    XO` TSh &B n  h 0(   f&Jg TJ ,f9|  A C "HTN    XOJg< T-h ,g2 n0(   f$-y    ` n (  g-h @JfJf\p 0- -@Bm HUN    XO-@;n Jf/- N    XO/ N    XO-@Jf-y    Jfp1`  -nB n p 0( / J g rЁ` .X @/p 0- / /-  n /( N  $O Jgp0`D n J f Jh f
B/a PO nXH"n C "A "n C " n 1m  p L0 N^NuNV   n B  n Bh  n  h 0(    g/. N  6XOp N^NuNV n -h  nB /.N    XO n J 4g/( 4N    XO n J  g/(  N    XO/. N    XO . r/ N    XOp N^NuNVH0 *n  n 1|   n (h Hx HTN    PO8 9m  A XL(p L0 N^NuNV. n 1|   n *h Hx HUN    PO:  n ;h   n A XM*p *nN^NuNVH8 *n N    -@ n (P`6 , fJ f(T`$J g
 l 1n  $&L(TJ g
HS n NXO f/.N    XOp L8 N^NuNV. n *h  "
g,0- $  gHUHy0rN    POHUN    XO n B  p *nN^NuNV.*n J  g/-  N    XOB  p *nN^NuNV.r-A n *P`~0- n frBJ gJ g -  g`VJ gRJ gJ g -  f60- n g`*J gRJg.   g .l"M-@g
*U f | 	*nN^Nu            P   <  P   n  P     
P  8  7P  @  @    7P    @    P    P    P  &  P  t  *P    P    P    %P  0  ;P  :  &P  L  P    @  *  @  R  ?P  h  P  ~  *P    1P    P    !P    !P  N  P    +P    P    *P    *P                             '         +          2         9      T   E         N      
   V         ]          m         x                        6                                                                                                           @                  %         .        9        A         K         R        [        d        m                                                                                                                                                            (       0         8       H         R     $  `         m        u         }_rootvp _rootdev _in_pcbdisconnect _qs _rtnet _nproc _in_pcbbind _whichqs _rtstat _runin _ifa_ifwithaddr _in_ifaddr __insque _rawintrq _in_pcbdetach _rtrequest _in_losing _m_free _in_setsockaddr _dumpvp _nchrdev _panicstr _noproc _ipintrq _splimp _physmem _in_pcbnotify _boothowto _m_want _rtalloc _procNPROC _runout _m_getclr _bzero _pidhash _selwait _nblkdev _ifa_ifwithdstaddr _in_iaonnetof _in_pcbconnect _mfree _runrun _rtfree _splx _maxmem _in_rtchange _mclfree _freeproc _proc __remque _wantin _ifnet _dumplo _allproc _zombproc _zeroin_addr _mbstat _rthost _in_setpeeraddr _in_netof _in_pcblookup _in_pcballoc _curpri _sofree  BP    @    
P    GP    @    @    
P    GP    @    @    
P    7P  :  P    %P    %P  "  PP  H  'P  R  :P./share/sys/sun2/OBJ/ip.h                                                                              444       0      12           16  4423623027  10124                                                                                                                                                                                                                                                                                                                                                                      #define NIP 0
.h b.o    ^  kbd.o .h    _  kern_softint.o     `  keytables.o      a  kudp_fastsend.o     b  	machdep.o o   $  c  mb.o ep.  <  d  mb_machdep.o  <  T  e  mem_colormap.o T  h  f  	mem_rop.o  T  x  g  movc.o .    h  mti.o vc    i  
mti_conf.o c    j  nfs_client.o      k  nfs_server.o      l  
nfs_subr.o     m  nfs_vnodeops.o     n  	nit_buf.o      o  param.o   ,  p  pi.o ara  @  q  pr_plngrp.o   P  r./share/sys/sun2/OBJ/kbd.o                                                                             444       0      12        25624  4424712064  10360                                                                                                                                                                                                                                                                                                                                                                         h        |         `NVH8J    f* 9    ~ЇrN    #     9    lR#     n J gp ` t     . ~gb~g X`rއ"ҁށށ    *G n !M  n !M 8Hx Hx N    PO-@fhHx Hx Hx N    O JgN`  n  (     rFN    -@ ~  Ѐ" ҁЁЁA    J g rRrm ;` Hx Hx "N    PO-@f*Hx Hx Hx "N    O Jg/.N    XO` t n(h ("TBl Bl N    )@ ~)G B B  nߨ  n h |  
 n&h BB '|    B B+ Hx Hk N    PO n~"ߨ  n!n ~ +l  /. n /( 0 h 0 P PNPO -   f~ ;f  *  . ~$Ї+@ B ~+G 0+G ,Bm 4;|  6;|  8+y   > 9  Ѐ" Ё+@ B/- BN    XO+@ :J :f4Hy  N    XO ;`2HxHm N    POJg d ;`~+G HUN  	(XOp `Hx FHUN    POpL8N^NuNVH0 *n (m B /, B/, :N    POHx FHTN    POp L0 N^NuNVH0 *n (n  l p ( 
rgJ   f. l  gBHUN    PO l   gBHmN    POHT/-  m  P PNPO`HTHUN  POp L0 N^NuNVH0  . Ѐ" ҁЁЁ    -@ @*h "
g(h "gB HTHUN  POp L0 N^NuNVH<*n (n &m B$l J g
 l -h N    -@ AXr
\f ,A0;N  @ \0 ` l4 v nJfp`p> H ,g ZH'G ,` < n > H ,g >H'G ,`   n HH/ HUN  PO` Hx Hx N    PO-@g  @ h     ,g
    ,fp`p   nX )n ~%G ` Hx Hx N    PO-@g  @ h   , nX )n ~%G ` -n n0Hg   g   g~-G`A 4`
A 6`A 8-HJf J n"n0h g 82 ` -n n0Hg   g    g&~-G`  n1k 4 `  n1k 6 `  n1k 8 `  n + 0g 'P 0` Hx Hx N    PO-@g   @ h   0 nX )n ~%G ` /.HSN  	xPO-@` v/.HSN  
xPO-@` `` HHx Hx N    PO-@g8 @ h ~  nX )n ~%G ` $Hx Hx N    PO-@f`~-GN    -@J g/+ N    XO'L /.N    XO     rFN    / HzHx /.N    L<N^Nu n h +  f+  fp`
p + `p  nX )n ~%G `n/.N    XOHT/-  m  P PNPO`@v@k@k	@k@kkvkvvk
kkk `HSN   XOHSN  	(XO/.N    XOJgB %n  l |  
`B B  l |  
HTHUN    PO` NVH0 *n (U"g(l "gHx Hx HTN    O /- B/- :N    POHUN  XOL0 N^NuNVH0 *n (U"g2J 0gJ ,fHTp . / N  >PO`HTp . / HUN  L0 N^NuNVH0 *n HUN    XOJgdHx Hx N    PO(@JfHy  /N    XO`> l  R HT/-  m  P PNPO.  fB  `. 
 fr#  L0 N^NuNVH0 *n I J 0gB, B, Hx /- a PPO`Hx HTN    PO |  L0 N^NuNV.*n  n (  bTJ $gNf m $"n i  `   n f m $"n i  `   n /HUN  PO-@fp`   n (  eb(  bZp (    -@B n"    "n  .R   
m .Ѐ" ЁA   	B0  n p (  @"n  p *nN^NuNV.*n  n (  bLJ $gFf"m $i  `   n f"m $i  `   n /HUN  PO-@fp`n n p ( "nq   n (  eL(  bDp (    -@B n"    "n  .R   
mp *nN^NuNVH0 *n HUHzN    POI ,  fHx HUN  
POp L0 N^NuNVH< *n (n -m f>HTN    XO` F l  gBHm $N    PO l   g<BHUN    PO`. l p ( 
Jg  rg.   g>   g6   gHT/-  m  P PNPO`  /.a XOHTN    XO`  -l  n (   g"n )  g n (    fHTN    XO`| nrè  n"n!i   .rЁ/ N    XOHTN    XO`F n (    g&L$k `p / /.N  
PO e'J &k "fHTN    XOp L< N^NuNVH0*n . I p , |b @0; N   F  f&|   9    r
N    / HUHzN    `  f |  `  fBHUN  nPO`  f
|  `  g  |@Ά  /HUN  nPO` p |g&|g4|g.|g(   gHUa @XO` vHx HUN  nPO` d~p / HUN  nPO 9  ~gJg~fHx 
/- a lPO` *Hx /- a ZPO` Jg f  HUa XO`  B, J g l ( f
|  `  p / HUa PO f  |  `   g f|  `   g  ` f|  `  J g   l ( fH,< j "9    SJn 9      gN   `/9 N    XOB, Hx HUa *PO`6 l p ( / HUa PO` "p , |b@0; N xHhL0N^NuNV"n C . r|  B .  gr B p A    #p  |  N^NuNV."n .  i $"fp `6 g ( `*r0g ( `rg ( `  g ( ` ..N^NuNVH0 *n I N    -@, r/ HUN  POp , / HUa PO,  g/9    HUHzN    O /.N    XOp L0 N^NuNVH0 *n I ,  gHUHzpN    PO|  L0 N^NuNVH8*n . G < p     ,fLJf4Hx HnN    POp =@~-GHnp / HUN  `  p / HUN  PO` p  / HUa zPO-@fHUa 8XO` p  n0 < p rf,rr k ¨ gzr« g< `Xz JfR gL gF g@ e b
    ,g*+ g<HUa XO/9    HUHz.N    O G `p + vfHUa |XO f     ,f p / HUN  PO`  - ,~g0~f p  =@~-GHnp / HUN  ` /. p  / N  >PO` ~r-A k  ( g* fFë  .F ` .聫  .聫 ` .豫     ,f \Jf V~ȇ  =D~-GHnp / HUN  ` ,~^rᡳ     ,f Jf 
ȇ  =D~-GHnp / HUN  ` p    zb @0; N  **  " ~  `  +   f        - ,~g0~f  +    =@~-GHnp / HUN  ` b/.  +    / N  >PO` H`> +    =@~-GHnp / HUN  `(/.  +    / N  >PO` - ,~g~g `  fB  k  (   +   k  (  HUa XOHUN  XO` Hy  YN    XO`` ~ȇ؄"؁    (D`~fHUHH/ N  HPORLJg b - ,~f/. p / N  >` e > b 6 - ,~g
~gj` " g Hx 	p / HnN  O (@/. Hx N  >PO/. Hx [`
/. p / N  >POJf/. Hx zN  >PO`   c^ g  Hx 	p / HnN  O (@HUHx N  HPOHUHx [`
HUHH/ N  HPOJfHUHx zN  HPO`Vp @~j=@~-GHnp / HUN  `0p vb @0; N f8L8N^NuNV. H=@r-AB.B.Hn/. N  POBHn/. N  PON^NuNVr-A-|  n . Ю -@S nB`H. r-@ . -@ ".N    Ю @S"n . ".N    -@ J f .N^NuNVH8*n I &l .g   n P dp0r  ,   0g@ , ~g-k ` ,    g-k `-SJf-Sp .  n0  n p Pg|   n G `$ n B(  n B( `<- 4`0<- 6`*<- 8`$ n 0   g   g   g<F  n 0@ F0/. p . / HUN  L8N^NuNVH0*n .  gh    ,g
    ,f2~ (m :`. g"JgRI  >mHy  N    XO(m :  n C """"/. HUN  POL0N^NuNVH0*n .  gD    ,g
    ,f0~ (m :`". fBB Hl HUN  PORI  >mL0N^NuNVH ~  n *h :`Jgp / /. a zPORK  n  >mL N^NuNVH0 *n HUN    XOJfHy  N    XO`DHx Hx N    PO(@JfHy  N    XO` l  R HT/-  m  P PNPOL0 N^NuNVH8 *n (U"g  HTN    XOJf&J  gHy  N    XOHUa XOR    `^Hx Hx N    PO&@JfHy  N    XO`8 . P/ N    XO n "k """"rӫ HS/,  l  P PNPOL8 N^Nu  @(#)kbd.c 1.54 89/03/29 SMI           H                              L                                          kbd: Couldn't allocate dynamic memory for downs table
 kbdcmd: can't allocate block for command
 kbd: Error detected
 0123456789abcdef kbd: Too many keys down!
 kbdputcode: can't put block for keycode
 kbdputcode: can't allocate block for keycode
 kbd: Buffer flushed when overflowed.
 kbdqueueevent: can't allocate block for event
    kbd kbd    
  'P     ZP     DP   $  'P   *  ZP   6  JP   t  P     VP     .P     P     DP     P    VP  ,  .P  >  QP  `  bP    =P  6  @  >  @  T  P  f  @  l  P    )P    @    =P    P    =P  <  aP  T  aP  t  @    P    @    3P    @    VP    VP    VP  4  @  J  @  f  VP    VP    lP    QP    TP    P    DP    gP  N  TP    @    @    TP    GP  &  /P  8  =P  B  @  |  @    @    P    VP    @    P  	  @  	  @  	^  =P  	  @  
  mP  
N  mP  
  @  (  mP  h  4P    @    QP    aP    aP  <  QP  z  QP    WP    QP    @    QP  
J  ZP  
R  DP  
`  pP  
  @  
  @  
  @    @    @    rP    +P    P    `P  &  3P  <  @  \  'P  h  pP  v  TP    4P    =P    @  *  @    JP    pP  .  @  j  @    @    @  V  @    @    @    @  0  @    @    @    P    mP    @    @  6  @  J  @  f  @  z  @    @    @    @    @    @  n  @    @    @    8P    RP    @  ^  @  d  P    @    @  N  P  Z  @  `  P  r  VP    @    P    P    @    @    P    2P    VP    @    P  .  IP   &  @   2  @   :  @   >  @   F  @   P  @   \  @   d  @   h  @   p  @   x  @   |  @                              #         ,          4     h   <     R   D         K          W         [        e         k         r         {     
x                                                     H         @                                                                       !        +        4        <       L        X        `       p       {                                                                                                                        %        /        5       >         E       W        b        j        o         v                                   n                                                  	(                         @       
  
     	x                  /        9         B         I       X         ^       i         q         y                                                                                                                                      >                  "       ,         4         B       K        S         \     T  l         v               _kbdtranslate _montrap _rootvp _rootdev _printf _sccsid _kbduse _lbolt _kmem_alloc _qs _kbd_info _file _nproc _whichqs _kbdgetkey _fbdev _runin _avenrun _domainnamelen _hostnamelen _kbd_send_esc_event _hostname _tz _kmem_free _kbdreleaseall _dumpvp _canput _nchrdev _boottime _kbddata _panicstr _consdev _noproc _kbd_downs_size _kbddevopen _consvp _kbdkeyreleased _kbdmiinfo _physmem _kbd_repeatrate _strsetwithdecimal _sleep _kbdioctl _boothowto _settable _kbdrinit _strwaitbuf _putctl1 _nfile _kbdqueueevent _kbd_overflow_cnt _spl5 _untimeout _kbdflush _tick _kbdwput ulmodt _kbd_overflow_msg _procNPROC _runout _phz _bzero _kbdreioctl _selwait _pidhash _kbdcancelrpt _kbdid _nblkdev ldivt _kbdopen _rconsvp _qreply _kbdreset _uniqtime _kbd_repeatdelay _domainname _kbdinput _kbdsetkey _runrun _kbdkeypressed _mousedev _freemsg uldivt _kbdqueuepress _splx _kbdmoinfo _allocb _wakeup _kbdwinit _maxmem _hz _rconsdev _fileNFILE _freeproc _proc _kbdcmd _keytables _flushq _getiocseqno _wantin _time _kbdrpt _dumplo _bufcall _kbdputcode _allproc _zombproc _kbdclose _spltty _keystringtab _kbdrput _kbddev _timeout _kbdidletimeout _cpudelay _kbdclick _curpri   @    @    P    @    uP    P    NP    P    @     uP  2  @    fP    P    @./share/sys/sun2/OBJ/kern_softint.o                                                                    444       0      12         1556  4424707654  12314                                                                                                                                                                                                                                                                                                                                                                         @   X                  NVH8 *n (n N    -@J  vg&&|    'y     #    G   XeB  v&y    ` f + g^&k "f&y    "fHy  N    XO#     &'L B J    g y    !K #    `#    #    N    /.N    XOp L8 N^NuNVH8 J    fp `LN    -@&y    "g*S(k #     'y     #    /.N    XO"fp`HTNXO`L8 N^Nu  @(#)kern_softint.c 1.7 89/02/26 Copyr 1985 Sun Micro           too many softcalls           P     @   $  P   *  P   2  P   <  P   D  @   J  P   h  P   r  @   x  	P     P     P     
P     
P     
P     P     P     P     P     P     P    P    P    P    P            
     @                      &          ,     X   7          A         K          Q          X         b_softint _sccsid _siron _softhead _spl7 _softcalls _softcall _softfree _splx _panic _softtail s_inode.o     ˄  ufs_vnodeops.o     ˅  uipc_mbuf.o     ˆ  
uipc_socket.o ˆ     ˇ  uipc_syscalls.o     ˈ  vers.o       ˉ./share/sys/sun2/OBJ/keytables.o                                                                       444       0      12        13017  4424712075  11576                                                                                                                                                                                                                                                                                                                                                                                              @(#)keytables.c 1.16 89/02/21 Copyr 1987 Sun Micro  ¢+-Ţ1234567890-~`789ƱȢ	qwertyuiop{}_456asdfghjkl;:|
123΢zxcvbnm,./0. ¢+-Ţ!"#$%&'()0=^@789ƱȢ	QWERTYUIOP[]_456ASDFGHJKL+*\
123΢ZXCVBNM<>?0. ¢+-Ţ1234567890-~`789ƱȢ	QWERTYUIOP{}_456ASDFGHJKL;:|
123΢ZXCVBNM,./0. ¢СŢ ƱȢ		

΢
    4     4    4       M    Ңˢ1234567890-=`բŢ	qwertyuiop[]ֱآ͢asdfghjkl;'\
ڴɢzxcvbnm,./
ܲޢ Ңˢ!@#$%^&*()_+~բŢ	QWERTYUIOP{}ֱآ͢ASDFGHJKL:"|
ڴɢZXCVBNM<>?
ܲޢ Ңˢ1234567890-=`բŢ	QWERTYUIOP[]ֱآ͢ASDFGHJKL;'\
ڴɢZXCVBNM,./
ܲޢ Ңˢ1 3457890=բŢ		ֱآ͢
;'
ڴɢ
,.
ܲޢ     V    V         M    1234567890-=`789-	qwertyuiop[]456,asdfghjkl;'
\123zxcvbnm,./
0.
 !@#$%^&*()_+~789-	QWERTYUIOP{}456,ASDFGHJKL:"
|123ZXCVBNM<>?
0.
 1234567890-=`789-	QWERTYUIOP[]456,ASDFGHJKL;'
\123ZXCVBNM,./
0.
 1 3457890=789-		456,
:"
123
,.
0.
   x    x    x      ;    Ңâ1234567890-=`բĢŢ	qwertyuiop[]ֱآ͢asdfghjkl;'\
ڴɢzxcvbnm,./
ܲޢ Ңâ!@#$%^&*()_+~բĢŢ	QWERTYUIOP{}ֱآǢASDFGHJKL:"|
ڴɢZXCVBNM<>?
ܲޢ Ңâ1234567890-=`բĢŢ	QWERTYUIOP[]ֱآǢASDFGHJKL;'\
ڴɢZXCVBNM,./
ܲޢ Ңâ1 3457890=բĢŢ		ֱآǢ
;'
ڴɢ
,.
ܲޢ       	  	  
        M   Ңâ1234567890-=`Ţ	qwertyuiop[]ֱǢasdfghjkl;'\
ڴȢzxcvbnm,./
ܲޢπ Ңâ!@#$%^&*()_+~Ţ	QWERTYUIOP{}ֱǢASDFGHJKL:"|
ڴȢZXCVBNM<>?
ܲޢπ Ңâ1234567890-=`Ţ	QWERTYUIOP[]ֱǢASDFGHJKL;'\
ڴȢZXCVBNM,./
ܲޢπ Ңâ1 3457890=Ţ		ֱǢ
;'
ڴȢ
,.
ܲޢπ   
  <    <          M   456,
<1â1234567890-=`բĢŢ	qwertyuiop[]ֱآǢasdfghjkl;'\
ڴȢɢzxcvbnm,./
ܲ8923π7 -.0
>â!@#$%^&*()_+~բĢŢ	QWERTYUIOP{}ֱآǢASDFGHJKL:"|
ڴȢɢZXCVBNM,.?
ܲ 456,
<1â1234567890-=`բĢŢ	QWERTYUIOP[]ֱآǢASDFGHJKL;'\
ڴȢɢZXCVBNM,./
ܲ89237 -.0
<â1 3457890=բĢŢ		ֱآǢ
;'
ڴȢɢ
,.
ܲ   
^  
  ^    ^        M            V  
  
<  [H       [A       [B       [D       [C                                                                                                                             @    @    @    @    @  V  @  Z  @  ^  @  b  @  f  @    @    @     @    @    @  
  @  
  @  
  @  
  @  
  @  
<  @  
@  @  
D  @  
H  @  
L  @    @    @    @    @    @    @    @    @    @    @    @        
                 V   .          6     x   D        R        `     <   n      4   |     	        
        	        ^        x                        V        V        
  
     
<         $     
  2        @       N     ^  ^     4  l       |     x                                    <              4                            
^  !       /_keytab_s3_up _keytab_vt_uc _keytab_s2_uc _sccsid _keytab_vt_up _keytab_s2_up _keytab_s4_cl _keytab_s4_ct _keytab_ms_lc _keytab_s3_cl _keytab_k220_uc _keytab_s3_ct _keytab_k220_up _keytab_vt_cl _keytab_s2_cl _keytab_vt_ct _keytab_s2_ct _keyindex_s2 _keyindex_s3 _keyindex_s4 _keyindex_ms _keytab_s4_lc _keytab_ms_uc _keytab_s3_lc _keytab_k220_cl _keytab_ms_up _keytab_k220_ct _keytab_vt_lc _keytab_s2_lc _keytables _nkeytables _keyindex_vt _keytab_s4_uc _keytab_s4_up _keytab_ms_cl _keystringtab _keyindex_k220 _keytab_ms_ct _keytab_k220_lc _keytab_s3_uc Ua XOR    `^Hx Hx N    PO&@JfHy  N    XO`8 . P/ N    XO n "k """"rӫ HS/,  l  P PNPOL8 N^Nu  @(#)kbd.c 1.54 89/03/29 SMI           H                              L                                          kbd: Couldn't allocate dynamic memory for downs table
 kbdcmd: can't allocate block for command
 kbd: Error detected
 0123456789abcdef kbd: Too many keys down!
 kbdputcode: can't put block for keycode
 kbdputcode: can't allocate blo./share/sys/sun2/OBJ/kudp_fastsend.o                                                                   444       0      12         6063  4424710521  12422                                                                                                                                                                                                                                                                                                                                                                                         8    NVN    -@ n  S f  . r/ N    XO/.N    XOp N^NuNVN    -@-y    gF nJh 
gHy  N    XO n1|  
Sy   Ry   
 n#    B nr!A `Hx Hx N    PO-@/.N    XO n   nr!A  nBh  n B n ( Ј-@ @r  n!n   .N^NuNVH<*n | &M`
0+ H܀&S.f n -h  nJh fJ fB/N    PO$nE  A -HJg R0( $   g n "n )  g\Jg
/N    XOHx HRN    PO5|   n XH"nXI"HRN    XOR    Jg RJ ,fHUN    XOp3` R     R-h , RR ( R0( $  g
 ~Ї-@N    -@&y    .g6Jk 
gHy  N    XO7|  
Sy   Ry   #    B~'G `Hx Hx N    PO&@/.N    XO.fHUN    XOp7` ~'G 7G (K |  	0P@9@ 
/.N    XOX-@ @C " n XHC " n9h   n 9h  9l 
 Bl J    g*B BB, &܇/HSN    PO9@ Jl f9|     @B, 9y     Ry    Bl |   n0( H~~΀|z &-K0- HІof( nB` 0- H܀-M*U(
f 9@ ` &N    -@$y    (
g6Jj 
gHy  N    XO5|  
Sy   Ry   
#    Bx%D `Hx Hx N    PO$@/.N    XO     g   
Э %@ 5m  $5|  B %|     HUa XO%@ *JN    -@$y    (
g6Jj 
gHy  N    XO5|  
Sy   Ry   
#    Bx%D `Hx Hx N    PO$@/.N    XO(B 
Э %@ 5D 5|  B %|     %m  N    -@ j R/.N    XO n m ٭ ,  @  9@ N    -@$y    (
g6Jj 
gHy  N    XO5|  
Sy   Ry   #    Bx%D `Hx Hx N    PO$@/.N    XO(
fHSN    XOHUN    XOp7`  x%D 5|   
Ъ -@Hx / HTN    O  xЄ9@ v 6r 2, ցr 2, ցr 2, ցr 2, ցr 2, ցr 2, ցr 2, ցr 2, ց r  ր r  ЃF@9@ 
/.HS/. n h .NO -@g.
gHUN    XOHRN    XO .`(
fp `(n&Jچ| ` L<N^Numget mget mget mget mget             P   &  P   2  P   D  P   N  P   b  @   h  !P   z  #P     #P     P     $P     P  B  P    P    P    P    P    P    &P    P    P    @  "  !P  0  #P  6  #P  <  P  T  $P  b  P  p  P    P    P    P  &  P  .  P    P    P    @    !P    #P    #P    P    $P    P    @  $  @  :  P  D  P  T  @  Z  !P  h  #P  n  #P  t  P    $P    P    @    P    P    P    P  "  @  (  !P  6  #P  <  #P  B  P  Z  $P  h  P  v  
P    P    P  J  P  T  
P            	                             "         +      
   3         :         E         O      8   T          \      0   d         x                         >                                                                                                                                                        )       6         =        D       L         T         \        g_ipq _rtnet _file _in_pcbbind _udpstat _rtstat _ip_id _in_ifaddr _rawintrq _udb _m_free _ipstat _etherbroadcastaddr _ipintrq _splimp _fragbuf_alloc _fragbuf_free _m_want _nfile _rtalloc _bzero _route_missed _bcopy _in_cksum _ifptoia _mfree _rtfree _udpcksum _splx _m_freem _mclfree _fileNFILE _ku_fastsend _panic _ifnet _mbstat _m_more _rthost _route_hit *()_+~789-	QWERTYUIOP{}456,ASDFGHJKL:"
|123ZXCVBNM<>?
0.
 1234567890-=`789-	QWERTYUIOP[]456,ASDFGHJKL;'
\123ZXCVBNM,./
0.
 1 3457890=789-		456,
:"
123
,.
0.
 ./share/sys/sun2/OBJ/machdep.o                                                                         444       0      12        44603  4424711661  11221                                                                                                                                                                                                                                                                                                                                                                                        H   8NVH N  r <  r-@N  N           fN  X    e$J   .g y  r⨰   .d6 y `"J   .g y  r⨰   .d y  r#   . 9      g y      .#   .      @   .c
~#    `B    N    N  rp    B/9    Hx r/ Hy    Hy    N    O ~#   6N    | `DB     / Hx Hx Hy    Hy    N    O Hy  ZHy    N    POJg
R    mN    Y    B/9    Hx Hx  Hy    Hy    N    O Hy    N    XO 9   .r/  9   .rj  / Hy   N    O     l4 9    rj  / Hy   N    POHy   N    XO <    0  dHy   N    XOJ    g   d
-|  @` .~@Ї-@ .r*@J   >f
#       >J   Bf 9   >#   B      *l   
  r"<       d 
  r"<   `"9    -A rrN    Jl  ~o  .rrN    Jl  `p#   *#    *y    "
ҁ    #    #    *y    "
偛    #    #    *y    "
ҁ    #    #     9    " ЁЁй    #    #     9    й    #     9    й    #     9    й    #     9    й    #    *y    K #    9    rN    й   #     9   >" ҁЁЁй    #     9   й    #     9   Ѐ" DЁй    #     9    й    #     9    й    #     9   "9   N    VjVй    #    p 09   "9   N    Vй    #     9    й    #     9   " ҁЁй    #     9   Ѐ" DЁҁЁй    #    *y   "
       b-n`-|    9    -@-M" Ё .#    *<    9    g
#    `f#    .9    ޹    #      r   oHy  !N    XO 9   .|mHy  !,N    XOB/.Hx  r/  .r/ Hy    N    O  Ѯ r/  .r/ N    PO/././.N    O #        z` S @     й    !@ R    eJ    g   dHx /.N    PO/9    /.N    PO#         9    r/ Hy  !6N    PON     9    / Hy  !F/ <   / /9    N    O Hx @Hy  !QHy    Hx  /9    N    O  9    rN    / Hy  !\Hx  9    Y/ /9   N    O N    J    gHx@Hx N    POB    N  J*|   *<    9    r㠺c
*9    r/HUHy    N    O #    J    fHy  !kN    XO~-GHn/9    N    POJgHy  !N    XOBHy    N    PON    p L N^NuNVH0 y *P(m .gZ -fT~ `, A   J0 f A   L00 H    `R A   JJ0 fRLA   JJ0x gJf 9      g#     9      gHy  !N  XOp L0N^NuNV-x;$B8;N     n!@ /9    Hy    Hx Hy   n/( N    O -|   j` B8;-|   BS/.N    POB`D .A   L00 H    g& .A   J0 HH/ S/.N    POR .A   JJ0 fHx -S/.N    PO-n n/Hy  $N    PO-|  $`R nJf/9   /N    POB`RA  $Jf`&A  $HH/ S/.N    POSJl-n .r-@BY/.N    PO/.Y/.N    PO/.Y/.N    PO!  ;>;^-x;^ n  n!n  nB N    J8;gX nJf `J8;g.8;HH/ /9   Hy  !N    O Hy  !N    XOp N^NuNV.~-G y    !y     "h ~ " .    # RRrmp ..N^NuNVH *x;(~  B A   C <g B RrmB @+n  D ;p L N^NuNVH *x;(-x<J<f . Sr¸<g.8<|!<`.- <|,rJ<f" x;$ ( Tr"<   n
/N    XOBHx $/N    O Jf~/.  x;$0( <H/ Hy  !N    O /- D/. /Hy  !N    O B;p-@  x;$F ( x;$ . F , x;$ . F $Hx /8;$N    PO`  -n-n -m <-m D-m @. g 8:  gHx /HnN    O -n  . Yrb,@0; N   " "   "  -x<-x<B<`BB-FHx /HnN    +G <+n  Dp L N^NuNV x;( ( <X/ N    XO-@rgnHx Hn/ N    JfZ.r!< x;$ .!@ $ x;(!n < x;(!n D x;(!n @ x;(  @ x;(r  @ ;p N^NuNV3        #        N    .  fBJ   l:J   g2Jy   f*3    B   N    -@N    /.N    XON    -@.  g
BN  `|.  g0Jy   f( 9      gJ   :fN   3    N  HHy  "N    XON    .  
g/9    `.  g <  "` <  "!/  y `NXO/.N    XOp N^NuNVH B/9    /9    Hy  ""N    O ,9     9    Sr    -@/9    N    XOA    C" . . p~ `  Jf  n 0@n/./.N    POHx //./9     y     h  h dNO -@Xzf**9   6B   6 9   ./ Hy  "@N    PO#   6R   .m r/Hy  "UN    PO .gJ~g<~g~g ~g"/ Hy  "N    PO`.Hy  "l`Hy  "x`Hy  "`Hy  "`Hy  "N    XOp L N^NuNVH8N    -@ @#    F*|    (|    &@~ Jg*`*XMXLXKRr@mHy    N    XO 9      g&Hy   N    XO~f
~Ϲ    ` y  Np L8N^NuNV"|    |   r@Jg"XIXHR   op N^NuNV  H  J g/. Hy  " y NPOHy  " y NXON    J   FgN     @!y   F NNJ   FgN     @!y    N    p N^NuNV-N   r-@/Hy  " y NPO`P nf/Hy  " y NPO`H n/( /( /( /( //( Hy  " y NO  n-P .  r⨰gHy  #" y NXOp N^NuNVH8 *n N    -@    g/9    N    XO n (h  BJ ,g   f h ,-h f
-|    &LN    -@`      gzJg      ld  &@ n-h ` n ( g-h JfJfHy  #4N    XO/.Hy π N    PO    π &@HUHSN    POI G  fHy  #HN    XO  pXM . S Jn >Hy π N    XO/.N    XO .    g
/ N    XOp L8 N^NuNV`H8 *n  -    Э   r-@   g:&m 8Al .-HIl`HTHx HSN    O &k XLe`X   f -  r    (@`@   g
 m ,(h `.   !cHy  #_N    XOHnl/.HUa O Il     e$Sk   LXL//. N    PO    `     d
-|    `-|    r-A     e8 . `0/.  / Hx Hx /. /.N    O     Sjp L8 `N^NuNVdH0*n     gp ` .-    ޭ   r   f -  r    (@`$r!cHy  #kN    XOHnp/HUa Ipp ,   -@p 0, @-@   g g  ~fp` 
JfB`-n       f
   g$       f     g   f     g*       f <   ` <     r⨰b`       `rXLR       f"   f   e   r-A g  ~gp ,   gp`$,   gp 0, @fSJn .L0dN^NuNV.*n  r0g      f   fHy  #yN    XO -    -@ - Ю  r-@` y    R B/9    N    PO/./9    N    PO-@gr    -@/ HUa 2PO     .Ю+@  p *nN^NuNV.*n    g   -    Э   r-@N    -@ -   -@B`$Hx /.Hy    N    O R    .m .찹    g
/ N    XO -      r-@ ./  .    / N    PO/././9    N        p *nN^NuNV0. 
  -@Hn/. N    POp 0.@r-@p .  rb:@0; N  0 0 0        f   o
   `    .ЮN^NuNVH0 Hy     <        / Hy    Hy    N    O Hy    Hy    N    PO`HBHx Hx HUHy    N    O     fHx `Hx Hx HUHy    N    O K     eBHx  <    / HUHy    N    O J   2fp`p    /  <    / HUHy    N    O  <  rr*@BHx  <    / HUHy    N    O Hx  <    / HUHy    N    O  <  rr*@B <    / HUHy    N    O  
  rr  rr*@`HUN    XO      e`\ 9      fHUN    XO`>HUN    XO    g,HUHy    N    POHxHy   HUHy    N    O       e`HUN    XO      e`  HUN    XO    gx(M`$HnHTN    PO. g
.  ~fI  
   e 
   d.HUHy    N    POHxHy   HUHy    N    O `
HUN    XO      e h`Z y Te@ y T    d.HUHy    N    POHxHy   HUHy    N    O `
HUN    XO      eN    Hy           f <   ` <   / Hy    Hy    N    O BHy    N    PO 9    r/ Hy    Hy    N    O Hx Hy    Hy    N    O Hx Hy    Hy    N    p L0 N^NuNVH N    -@    g/9    N    XOJ   gH~ p   gpF   A  $*px ``R` y    R Hx /9    N    POHx /9    N    PO. gr    *GHx /9    BHUHy    N    O /. N    XO    -@/ HUN    POHx HU/. N    O /9    HUN    PO 9   ~f4HUHy    N    PO 
    r/ Hx /9    N    O `,~ p   f A  $! p   `R` .    g
/ N    XOp L N^NuNVJ oJ m . Ю    cHxHy  #Hy  #N    O N    -@    g/9    N    XO/. N    XO    -@/ Hy    N    PO/.  .     / N    PO/9    Hy    N    PO .    g
/ N    XOp N^NuNVH .. N    , r
fHx 
 y NXO/ y NXO/N    XOp L N^NuNV. y N. rg ..N^Nu  @(#)machdep.c 5.121 89/02/22 SMI                                 a  s  i  h  b   d  @w        #  #  #  #  #  #      $               mem = %dK (0x%x)
 CAN'T HAVE PERIPHERALS IN RANGE 0 - %dKB
 dvma collision user area too large system map tables too large sys pt too small no memory avail mem = %d
 kernel map IOPB space DVMA map space cannot allocate segkmap segmap_create segkmap bootflags Can't invoke %s, error %d
 icode sendsig: bad user stack pid=%d, sig=%d
 usp is %x, action is %x, upc is %x
 rebooting...
 -s  
dumping to vp %x, offset %d
 
%d pages left       
%d total pages, dump  device bad
 device not ready
 area improper
 i/o error
 succeeded
 failed: error %d
 (%s)  Halted

 Begin traceback...fp = %x
 FP loop at %x Called from %x, fp=%x, args=%x %x %x %x
 End traceback...
 read_hwmap no pmgrp read_hwmap invalid pte bp_map size buscheck size bp_mapin (int)len > 0 && (int)off >= 0 && off + len <= PAGESIZE ../../sun2/machdep.c   /sbin/ /single/ /etc/ /bin/ /usr/etc/ /usr/bin/ init       
  @     SP     @   $  PP   .  P   6  @   H  @   \  @   l  @     @     @     gP     @     @     P     @     eP     eP     yP     @     P     P     P    BP    8P    @    P  <  ^P  B  BP  H  8P  X  ^P  ^  zP  l  ,P  t  P  z  P    P    P    UP    8P    WP    
P    @    @    @    
P    ,P    ,P    @    
P    @    P  *  P  2  @  8  P  @  eP  r  @  z  P  ~  @    @    @    @    @    P    P    P    P  (  @  .  dP  4  P  J  dP  P  %P  V  P  \  P  n  P  t  P  z  P    oP    P    P    P    P    P    ~P    P    P    P    P    P    P    P    P    P    P    P    P    P    P  "  P  (  ,P  0  P  8  P  >  P  D  @  V  P  \  P  b  P  j  P  p  VP  v  P    VP    P    P    P    =P    P    =P    pP    P    P    P    pP    P    P    P    P    P    KP    P    KP    )P    P  *  )P  0  P  6  P  J  P  P  P  V  P  h  P    P    9P    9P    9P    sP    9P    sP    'P    @     P    @    @    P  D  BP  J  8P  t  P    P    P    lP    P    P    P    eP    OP    P    OP    &P    P    P    @    
P    P  $  P  .  @  @  P  F  P  T  @  Z  P  d  P  j  P  t  ,P  |  P    @    ,P    P    P    IP    eP    OP    eP    @    P    &P    &P    :P    P    P    P    @     P  2  P  8  1P  D  @  J  P  T  /P  Z  P  b  mP    @    @    gP    @    @    gP    @    gP  	  @  	  @  	.  P  	<  P  	B  0P  	Z  P  	d  @  	  P  	  @  	  gP  	  @  	  P  	  @  	  P  

  @  
  P  
  @  
.  @  
6  P  
H  @  
X  @  
r  P  
  P  
  P  
  P  
  P  "  @  (  @  .  
P  8  @  >  P  X  P  ^  P  J  P  Z  P  x  @  ~  
P    @    
P    P  
(  P  
  P  
  P  
  P  :  P  >  FP  D  P  H  NP  N  +P  \  @  d  P  l  @  v  @  |  @    mP    P    P    rP    @    @    gP    @    @    @    @    
P     P    qP    @  &  @  <  P  V  P  \  ;P  b  @  h  
P  r  P  x  ,P    P    P    RP    P    TP    ;P    ;P    @     @  &  @  0  @  6  
P  >  @  F  @  R  @  X  
P    @    
P    @    @    @    @    @    
P    	P    @    ZP    P    ZP    P    gP  .  XP  >  gP  ^  ZP  d  P    @    @    +P    @    	P    @    @    	P    P    *P    @  2  @  ^  @    @    P    P    P    RP    :P    cP    :P  `  @  f  P  x  P    P    @    P    CP    P    P    RP  ^  P    JP    @    P    P    TP     P  
  BP    UP  "  P  R  8P    JP    @    P  <  P  R  P    P    P    P  `  @  f  P    P    P    aP    P    P    P  *  P  P  BP  V  @P  z  P    RP    P    JP    P    P    5P    ]P  D  P  |  BP    P    P    P    :P    P    JP    BP    P    :P    bP    P    :P    P    P    P     :P  &  bP  0  @  D  P  P  :P  V  P  `  P  v  SP    :P    bP    SP    :P    P    SP    P    :P    P    CP    gP  *  CP  6  P  >  P  H  BP  N  }P  b  BP  h  P    CP    P    P    P    BP    }P    BP    P     CP  X  BP  ^  }P  r  BP  x  P    CP    P    UP    P    P    :P    P    UP    P    ,P    P    UP    |P    ^P    BP    |P  *  `P  0  BP  6  |P  P  P  Z  P  b  P  h  RP  p  @  ~  @    @    @    P    P    aP    P    P    P    P    BP    P    kP    TP  ,  P  6  P  >  TP  F  @  V  BP  \  \P  f  P  v  P  |  5P    @    @    @    P    RP    @     @    P    P    P  "  P  (  RP  4  kP  H  `P  N  TP  ^  `P  f  P  n  P  t  `P  z  TP    P    RP    rP    P   b  @   f  @   j  @   n  @   r  @   v  @   ~  @         *   
                            %     
   -     4   3          9         B         K          S          [          c     
   o         w                                            B                                               X                                     x                            
                        )        6        =     H  F        S        \        e      x  k        q                                        >                                           @                                                             $        ,        5        ?        H      :  V         b        l         r               6                                j                                                                           .                             %         /        5         >         D        M         R        Z         f         s         {                                                                                         t                                   	     	                           &         ,        7       @        G     r  R        X     J  _         i         o     6  y                                J                                                                                                                %        .        8         >         K         Y         a        j         v                                                                                                                      @                             %        ,         9        A      x  F        S        Z        b        j        r       {                                                                                                                                       
             F  "        *         6        >        B         K         S         \         e         o        x                                      2                                                  (                                                   r          #        *      $  1        <        F        N       T        ]        g        n        x                                                                $                                         F  	       	
         	        	        	#_nbuf _callout _protoscb _rootvp _bp_map _boot lmult _rootdev _desscan _getvbr _printf _subyte _sigcleanup _sccsid _bclnlist _lbolt _rmalloc _mmu_setpmg _nrnode _qs _suword _redzone _page_init _uvecinit _vfs_syncall _file _nproc _sum _whichqs _read_hwmap ulmult _fbdev _avenrun _domainnamelen _hostnamelen _runin _dumpsys _inodeNINODE _freemem _econtig _rate _msgh _stop_mon_clock _start_mon_clock _dvmasize _rawintrq _ncsize _segu _segvn_create _segmap_create _initname _hostname _tz _rmfree _desfree _avefree _segkmem_mapin _page_hashsz _kas _dumpvp _maxpgio _sem_undo _nchrdev _nopanicdebug _hat_unload _boottime _kseg _mmu_pmginval _msgbufinit _panicstr _consdev _noproc _initpath _configure _Sysmap _msgmap _cngetc _kbddevopen _consvp _memialloc _setcputype _physmem _mmu_setctx _end _mmu_setpte _kdvmaseg _sema _version _peek _saferss _scb _maxslp _hat_unlock _mmu_getkpte _CADDR1 _multprog _CADDR2 _sleep _as_fault _splvm _inode _fbobmemavail _avefree30 _boothowto _m_want _buscheck _sendsig _page_pptonum _callfree _spl0 _icode _nfile _semu _bootstr _spl7 _page_hash _initscb _nscan _bootflags _tick _uinit _hat_init _poke _bp_mapin _hat_reserve _hat_pmgreserve _procNPROC _bootf _phz _ncallout _deficit _runout _disable_all_interrupts _sem _useracc _bzero _etext _ninode _seg_attach _zfod_argsp _pidhash _selwait _waittime _DVMA _enable_dvma _disable_dvma _setvbr _nblkdev _as_setprot _startup ldivt _pmgrp_invalid _tracedump _mmu_pteinvalid _psignal _as_map _forkstat _rconsvp _mmu_getpmg _as_alloc _seg_alloc _iuniqtime _domainname _start _rminit _kmem_init _mfree _hat_chgprot _msgque _cnt _dquotNDQUOT _dquot _semmap _nclist _runrun _bufhash _minfree _mb_hd _mousedev _msg _kctx _execve _va_cache_valid _segkmap _splx _segkmem_create _segu_create _cpu _shminfo _msginfo _cfreecount _grow _cnputc _exit_vector _maxmem _hat_mempte _ndquot _hz _Sysbase _msgbuf _assfail _copyout _Syslimit _mclfree _rconsdev _fileNFILE _freeproc _proc _kernprot _dumpmag _strcpy _wantin _ncache _hat_pteload _seminfo _time _mmu_getctx _mmu_getpte _panic _hat_pmginit _kvm_init _iopbmap _ifnet _total _kernelmap _lotsfree _dumplo _halt _allproc _zombproc _shmem _dumpsize _mbstat _cfreelist _bfreelist _getdevaddr _bp_mapout _calltodo _pagezero _kbddev _va_cache _bufalloc _copyin _fuword _bufchain _pagecopy _setregs _segudata _curpri _cfree p space cannot allocate segkmap segmap_create segkmap bootflags Can't invoke %s, error %d
 icode sendsig: bad user stack pid=./share/sys/sun2/OBJ/mb.o                                                                              444       0      12         5333  4424712105  10165                                                                                                                                                                                                                                                                                                                                                                             @      H           NVH8*n (m  m .&h  9     @  / N    XO.  U0( ,   gJl n  Jl f  Hx HSHTN    O +@ J gnRl  U0( ,   g9|   f( f/N    XO U0( ,  g(HSN    XO    f/+ /+  /+  N  O HU U h NXOp`* gB fJf(` l !M f)M /N    XOp L8N^NuNVH<*n (m (&m 0$m $ 9     @  / N    XO.  U0( ,   gJl f  Jl f  Hx HSHTN    O +@ HJ HgrRl  U0( ,   g9|   * &f%m D &/N    XO R0( ,  g(HSN    XO    f/+ /+  /+  N  O HU U h NXOp`n * &gZB DJ &f%M &` j *!M D%M *-T` .g @-h fJfJfB fB .Jf(` l !J f)J /N    XOp L<N^NuNVH8 *n (m  m .&h  U0( ,   gBl Sl Hm HTN    PO U0( ,  g/+ /+  /+  N  O HU U h NXOL8 N^NuNVH8 *n (m (&m 0 U0( ,   gBl Sl Hm HHTN    PO U0( ,  g/+ /+  /+  N  O HU U h NXOL8 N^NuNV.*n J &g/- &a XOJfJ &gp `
 m   fp*nN^NuNV.*n J  <g.J @g/- @Hy  @N    PO`/. HU/. N    +@ @*nN^NuNVHx DHnN    PO-n r-A-n /. Hn/. N    N^NuNV"n  n ". R`SjN^Nu  @(#) mb.c 4.63 88/09/15 SMI    mbpresetup: hasinfo %x?
             P   (  .P   V  P     .P     !P     @     .P  $  P  2  .P  `  P    .P    !P    @  J  .P    8P    @    8P    @    @    @    P    P    %P    P            
                       <   $          ,         4         >         E         I        R         Y      x   ^          e         n         w                                           x                  @                                   
                                                                        '        2        7        ?         F        O        X        a         g      @  s      x  x                                                     v       <       \                                                                 $          
                       (       .       7        A        K        S_nbuf _rootvp _rootdev _mbuwrap _printf _sccsid _bclnlist _lbolt _qs _mbudone _nproc _sum _SPLMB _whichqs _avenrun _domainnamelen _hostnamelen _runin _mbsetup _rate _dvmasize _hostname _tz _dumpvp _nchrdev _mbugo _boottime _panicstr _noproc _physmem _fbobmemavail _boothowto _tick _bp_mapin _procNPROC _phz _runout _bzero _pidhash _selwait _nblkdev _mbgo _domainname _cnt _runrun _bufhash _splx _cpu _maxmem _hz _mbpresetup _dopresetup _mbdone _freeproc _proc _wantin _mbrelse _time _iopbmap _kernelmap _total _dumplo _allproc _zombproc _bfreelist _swab _mballoc _bufalloc _bufchain _curpri   P  D  BP  J  8P  t  P    P    P    lP    P    P    P    eP    OP    P    OP    &P    P    P    @    
P    P  $  P  .  @  @  P  F  P  T  @  Z  P  d  P  j  P  t  ,P  |  P    @    ,P    P    P    IP    eP    OP./share/sys/sun2/OBJ/mb_machdep.o                                                                      444       0      12        10165  4424711517  11673                                                                                                                                                                                                                                                                                                                                                                         @      @            NVH *|     9     @  / N    XO. `& UJ .f/N    XOJf`/N    XOJgJf/N    XOJgp`p L N^NuNVH0 *n (n J @g
 , @B @`Hzn/. HT/- N   L0 N^NuNVH0*n (n    gHx Hy  |Hy  hN    O *,    (, ؅  rHTN    XO. lHy  N    XOJn   9     @  / N    XO, `V.   g>/. N  XO r㠰  ho r` 9  h#  h/N    XOp `  R BHUN    PO R/ HUN    PO. g/N    XON    -@    g/9    N    XO r    / HTN    PO/9    ؇r    /N    PO .    g
/ N    XO   珏n En .L0N^NuNV.*n /. /- N  hPO*nN^NuNVH0*n    gHxHy  Hy  N    O  9     @  / N    XO-@ n -PfHy  N    XO`  n B/.N    XO .r.     l  N    -@谹    g/9    N    XO r    (@| ` .  ~g,/9    HTN    POI RHnHTN    PO. f .谹    g
/ N    XO 9     @  / N    XO-@/R/HUN    O /.N    XO 9     @  / N    XO-@J  poN  -@ @N-@f/.N    XOL0N^NuNV-y  d`2 .A  8 0  f
R  d`  R   
mB .  tfR  pR  ` 9  p  lo 9  p` 9  l#  l 9  tA  8!  R  t   
  tmB  t 9  t  dfHxHy  Hy  N    N^NuNVS  pR  d   
  dmB  d 9  d  tfHxHy  !Hy  N     9  dA  8-p  9  dA  8B  .N^Nu  @(#)mb_machdep.c 1.10 89/01/05 SMI     	map == mb_hd.mh_map ../../sun/mb_machdep.c mbsetup buscheck fail map == mb_hd.mh_map ../../sun/mb_machdep.c mb_mapfree: MR == 0!!!
 store != retrv ../../sun/mb_machdep.c retrv != store ../../sun/mb_machdep.c    
  ;P     P     <P   4  P   D  4P   V  >P     @     ;P     @     @     CP     +P  
  @    LP    P  ,  <P  D  @  R  @  b  @  h  @  p  >P    (P    
P    >P    JP    =P    =P    %P    2P    P    5P    2P    &P    =P    %P  Z  @  v  ;P    @    @    CP    P    <P    @    P    >P    P    JP    =P    =P    %P    2P  0  5P  8  &P  L  KP  `  =P  j  %P  r  P    <P    P    >P    P    <P    @    @    >P    @    @  "  @  B  @  J  @  P  @  V  @  \  @  d  @  l  @  r  @  x  @    @    @    @    @    @    @    @    @    CP    @    @    @    @    @    @     @    @    CP    @    @  &  @  .  @            
              t             !         *          3          ;     8   @     @   H     `   M         W     p   _         f          o         s         z      x                                                                p         x                  @                                                                        #        +        4         @         L     d  S         Z        h        s         }                                                                                         @               x                          	                                   (        -        5        9         B     h  N        X        ^        f     F  o        u                                                 $                                                         _nbuf _rootvp _store _bp_map _rootdev _mbuwrap _printf _mbq _sccsid _mbs _bclnlist _mbqlen _lbolt _rmalloc _qs _nproc _sum _SPLMB _whichqs _avenrun _domainnamelen _hostnamelen _runin _mbsetup _rate _dvmasize _hostname _tz _rmfree _dumpvp _mbq_store _nchrdev _boottime _run_mhq _panicstr _noproc _physmem _mmu_setctx _mmu_setpte _retrv _sleep _fbobmemavail _boothowto _buscheck _tick _procNPROC _phz _runout _pidhash _selwait _DVMA _nblkdev _mbgo _mmu_pteinvalid _domainname _mbq_retrieve _cnt _runrun _bufhash _mb_hd _splr _kctx _splx _mb_mapalloc _cpu _maxmem _hz _assfail _mb_mapfree _freeproc _proc _wantin _mbrelse _time _mmu_getctx _mmu_getpte _panic _iopbmap _kernelmap _total _dumplo _allproc _zombproc _bfreelist _bufalloc _bufchain _curpri  	P    @    @    	P    P    *P    @  2  @  ^  @    @    P    P    P    RP    :P    cP    :P  `  @  f  P  x  P    P    @    P    CP    P    P    RP  ^  P    JP    @    P    P    TP     P  
  BP    UP  "  P  R  8P    JP    @    P  <  P  R  P    P    P    P  `  @  f  P    P    P./share/sys/sun2/OBJ/mem_colormap.o                                                                    444       0      12          434  4424711333  12220                                                                                                                                                                                                                                                                                                                                                                             (       $            NV  J g2J f,J o& n Jg n  h h ` n  h  h  p N^NuNV  J g(J g" n  h 0(   g n  h "n !Q p N^Nu      @(#)mem_colormap.c 1.18 88/07/29 SMI                      B             0_sccsid _mem_putattributes _mem_putcolormap     @  q  pr_plngrp.o   P  r  sc.o r_p  d  s  	sc_conf.o .o  t  t  sd.o c_c    u  sm.h      v  spec_subr.o     w  
spec_vfsops.o o     x  st.o vfs    y  
str_conf.o o    z  str_io.o./share/sys/sun2/OBJ/mem_rop.o                                                                         444       0      12        32710  4424711423  11246                                                                                                                                                                                                                                                                                                                                                                         3         <       8   (NVXH<*n (n  *- .g$(, g~gp` 3z`,z `(z`$z`  ~g~g~g~ gp` 3X~fx`(..   fh-M-n -n -n -n -L,g-n $-n (HnHnN    PO-n -n -n -n ,g-n $-n (J o 2J o 2,v΃v
g 2&m Jl40+    g*A    0x HH. `| ~(F` |~`|~` gvgvg&fx `   T    g0/. (/. $HT .    / /. /. /. /. HU T PN` 2($l  * Ѯ $ * Ѯ (Jj&-n $0*    gA    0x HH. Jl`V". $-Ax -j &Jf6to02. *Ү-A. g
Utծ .Ѯt`2. *0Ю".Ё-@tŮ-C + Ѯ  + Ѯ Jj-n -n ` V". -A V". -A-k &ton2. Ү-A. gHUtծJg: Rtb0@0; N     tծ `T `R `
Tt .Ѯt`2. 0Ю".Ё-@tŮ-C-G .gJghJg<Jf8|`PJgL|`Hp ᆌ r  `0Jg* rt䦌` R~b@0; N -F~-G`BJmj0+   g` A  3&0   fv`.ƫ f(` / ဆ r㠆`$Jg rt䣆` g~g~g-C`~-G-E-L  ..,ܮ "z҅ꁐ-@lBz Jgzxt lJg(z t̂f| `
p rȁtfx Jg B   ft-Bp`B .".쒀-AJgYJ  g BJgX .U-@Jf4   f*vo
BT`~-G~nS`RUp2.vЖ` Lt2. .Ѯ  . ~Ї".Ԓ-AJfJf*x YJg S vB SglR~Ϯ g
 oR~ƇJf ւm~Jf Jf R` BB&   g
   f~t-B   mtւTJltւ-n-nJf*r  `  pTJf
Tt΂ƂJf(z lURJgRUU`HBJjt ւ .".쒀-A .".Ԓ-AJgYYlRYJgoRB .f   . Ю  $o   . $Ю  o   .  (o0 . (Ю  on$.ゕ". Sծծ`L .  (fB .  $o8Jf2JfJo(R$.앮ゕ$.ԕゕ-C -@-E-DJg ..,.J  f N . S: Jg *n΄ . xb ,@0; N    $ 6 F \ l p |        ` +F0FG]Q` +FF]Q` +ḞF0GF:Q` +0FG]Q` +` +̇]Q` +0F@FG]Q` +vF]Q` +hḞ]Q` +Z` +VḞ]Q` +ḢF0GF:Q` +4F0F@FG]Q` + ̇]Q` +` +*n&.Ƈ$.ć(nSL&n . xb *@0; N    $ t T2p` *Jg F-@Jg F-@FJg
 8m QJg
 Q` *lJg F"F-@Jg F"F-@FFJg .8m͝QJg .Q` *xfVJg
 F-@FJg
 F-@FF~g
 *8m*Q~g
 *Q` )Jg
 F-@FJg
 F-@FḞFxg
 *8m *Qxg
 *Q` )^Jg-FJg-FJg
 8m QJg
 Q` )` )xf@Jg -@Jg -@Jg .8mQJg .Q` (Jg -@Jg -@̇Jg .8mQJg .Q` (Jg-FJg-FJg F8m FQJg FQ` (@xfDJg
 F-@Jg
 F-@Jg .8m͝QJg .Q` 'Jg
 F-@Jg
 F-@FJg .8m͝QJg .Q` 'xfFJg
 F-@Jg
 F-@FJg .8mQJg .Q` 'bJg
 F-@Jg
 F-@ḞJg .8mQJg .Q` '` 'Jg
 F-@Jg
 F-@ḞJg .8mQJg .Q` &xfPJg -@FJg -@F~g
 *8m*Q~g
 *Q` &xJg -@FJg -@ḞFxg
 *8m *Qxg
 *Q` &xfRJg F-@Jg F-@Jg F8m F*QJg FQ` %Jg F-@Jg F-@FJg F8m FQJg FQ` %pxf@Jg -@Jg -@Jg .8mQJg .Q` %*Jg -@Jg -@̇Jg .8mQJg .Q` $` $*nJg >(n .A  3&p 8. . S6 $.$nή . zb $@0; N    $ `  RB~` $rz Jgz :rJmp 0rʁp 02s FATG\Q` $6Fz Jgz :rJmp 0rʁp 02s FAG\Q` #z Jgz :rJmp 0rʁp 02s FA0AG\Q` #z Jgz :rJmp 0rʁp 02s TG\Q` #` #~z Jgz :rJmp 0rʁp 003 2FA\Q` #Dz Jgz :rJmp 0rʁp 02s 0F@@G\Q` #Fz Jgz :rJmp 0rʁp 02s G\Q` "z Jgz :rJmp 0rʁp 02s FAG\Q` "` "z Jgz :rJmp 0rʁp 02s FAG\Q` "Tz Jgz :rJmp 0rʁp 02s 0AG\Q` "z Jgz :rJmp 0rʁp 003 2FAF@G\Q` !z Jgz :rJmp 0rʁp 003 2FA\Q` !` !(n .A  4&p v2. .-@ .-@ . S=@ .S=@ . zb !L@0; N    $ P`	`	d
(
D` !-n-n(.z Jgp 0Jg&pp 0 t @  F4.m0jr؁pp 0 r @  FQJg0jt؂pJgp 0xʄ"³X F®Snj H`  TFFF(.z Jgp 0g$pp 0 t @  F4.m.jr؁pp 0 r @  FQg.jt؂pJgp 0xʄ"³X FÔSnj F` Jf  Jf  -n-n(.z Jg(pp 0 t @  F"4.m2jr؁pp 0 r @  F"QJg&jt؂pxʄ"³X F ®Snj Z` -n-n(.z Jgp 0Jg(pp 0 t @  F"4.m2jr؁pp 0 r @  F"QJg2jt؂pJgp 0xʄ"³X F ®Snj B` -n-n(.z Jgp 0Jg$pp 0 t @  4.m.jr؁pp 0 r @  QJg.jt؂pJgp 0xʄ"³X ®Snj N` .` *Jf  Jf  -n-n(.z Jg"pp 0 t 3 ".4.m,jr؁pp 0 r 3 "QJg"jt؂pxʄ*3X ".ʁSnj j` r-n-n(.z Jgp 0Jg"pp 0 t 3 ".4.m,jr؁pp 0 r 3 "QJg.jt؂pJgp 0xʄ*3X ".ʁSnj R` -n-n(.z Jgp 0Jg(pp 0 t @  "F4.m2jr؁pp 0 r @  "FQJg2jt؂pJgp 0xʄ"³X  F®Snj B` Jf  Jf  FFF(.z g"pp 0 t @  4.m,jr؁pp 0 r @  Qg jt؂pxʄ"³X ÔSnj d` &FFF(.z Jgp 0g"pp 0 t @  4.m,jr؁pp 0 r @  Qg,jt؂pJgp 0xʄ"³X ÔSnj L` bJf  Jf  -n-n(.z Jg$pp 0 t @  F4.m.jr؁pp 0 r @  FQJg"jt؂pxʄ"³X F®Snj f` -n-n(.z Jgp 0Jg$pp 0 t @  F4.m.jr؁pp 0 r @  FQJg.jt؂pJgp 0xʄ"³X F®Snj N` ` -n-n(.z Jgp 0Jg$pp 0 t @  F4.m.jr؁pp 0 r @  FQJg.jt؂pJgp 0xʄ"³X F®Snj N` Jf  Jf  -n-n(.z Jg&pp 0 t @  "4.m0jr؁pp 0 r @  "QJg$jt؂pxʄ"³X  ®Snj `` X-n-n(.z Jgp 0Jg&pp 0 t @  "4.m0jr؁pp 0 r @  "QJg0jt؂pJgp 0xʄ"³X  ®Snj H` Jf  Jf  -n-n(.z Jg&pp 0 t 3 "F4.m0jr؁pp 0 r 3 "FQJg&jt؂pxʄ*3X "ʁFʮSnj ^` -n-n(.z Jgp 0Jg&pp 0 t 3 "F4.m0jr؁pp 0 r 3 "FQJg2jt؂pJgp 0xʄ*3X "ʁFʮSnj F` Jf  Jf  -n-n(.z Jg"pp 0 t 3 ".4.m,jr؁pp 0 r 3 "QJg"jt؂pxʄ*3X ".ʁSnj j` F-n-n(.z Jgp 0Jg"pp 0 t 3 ".4.m,jr؁pp 0 r 3 "QJg.jt؂pJgp 0xʄ*3X ".ʁSnj R` ` ..,.*n(nJg f&n$n . S4  .=@ήz . xb <@0; N    $ z ,.,(` =nx JgZJngl6p 0쨀DF@Sn[8JglJgp 0쨈@FDSGSQ` FnFx JgZngl6p 0쨀DF@n[8  glJgp 0쨈@FDGSQ` `=nx JgZJngl6p 0쨀DF@2@n[8JglJgp 0쨈@FD2DGSQ` =nx JgZJngl6p 02DAn[8JglJgp 0쨈@0DGSQ` ` =nx JgZJngl6p 0쨀Dn[8JglJgp 0쨈@GSQ` ^=nx JgZJngl6p 02FADAn[8JglJgp 0쨈@0F@DGSQ` FnFx JgZngl6p 02.DA[8  glJgp 0쨈@GSQ` =nx JgZJngl6p 0쨀DF@n[8JglJgp 0쨈@FDGSQ` \` X=nx JgZJngl6p 0쨀DF@n[8JglJgp 0쨈@FDGSQ` =nx JgZJngl6p 0쨀D2@n[8JglJgp 0쨈@0@GSQ` =nx JgZJngl6p 0쨀DSF@n[8JglJgp 0쨈@0DF@GSQ` X=nx JgZJngl6p 0쨀Dn[8JglJgp 0쨈@GSQ` 
` &n$n .-@ .-@ . S=@ .S=@z Jf 
 . tb 
@0; N    $  zr` 
-n-nJg(Jg& 쨀F(4.m& 쨀F(QJgJg& 쨀FSnj` 
FFFJg(g& 쨀F(4.m& 쨀F(QgJg& 쨀FSnj` -n-nJg(Jg& 쨀F"(4.m& 쨀F"(QJgJg& 쨀F"Snj` -n-nJg(Jg& "(4.m& "(QJgJg& "Snj` ` -n-nJg(Jg& 쨀(4.m& 쨀(QJgJg& 쨀Snj` &-n-nJg(Jg& "F(4.m& "F(QJgJg& "FSnj` 
FFFJg(g& ".(4.m& 쨈(QgJg& ".Snj` 
*-n-nJg(Jg& 쨀F(4.m& 쨀F(QJgJg& 쨀FSnj` 	` 	-n-nJg(Jg& 쨀F(4.m& 쨀F(QJgJg& 쨀FSnj` 	:-n-nJg(Jg& 쨀"(4.m& 쨀"(QJgJg& 쨀"Snj` -n-nJg(Jg& 쨀F(4.m& 쨀F(QJgJg& 쨀FSnj` B-n-nJg(Jg& 쨀(4.m& 쨀(QJgJg& 쨀Snj` ` ` -n-nJg(Jg
&Jg`v (" 먀F&`Jg&"Jf,z 4.m(" 먀F&QJf*| Jg Jf&"Jg(" 먀FSnj n` &FFFg&Jg
&Jg`v (" 먀F&`Jg&"Jf,z 4.m(" 먀F&QJf*| gJf&"Jg(" 먀FSnj l` -n-nJg*Jg
&Jg`v (" 먀F"&`Jg&"Jf,z 4.m(" 먀F"#&QJf*| Jg"Jf&"Jg(" 먀F"#Snj h` -n-nJg&Jg
&Jg`v (" 먀&`Jg&"Jf,z 4.m(" 먀&QJf*| JgJf&"Jg(" 먀Snj t` :` 6-n-nJg$Jg
&Jg`v (" 먀&`Jg&"Jf,z 4.m(" 먀&QJf*| JgJf&"Jg(" 먀Snj z` -n-nJg*Jg
&Jg`v (" "F&`Jg&"Jf,z 4.m(" "#F&QJf*| Jg"Jf&"Jg(" "#FSnj h` FFFg$Jg
&Jg`v (" 먀&`Jg&"Jf,z 4.m(" 먀&QJf*| gJf&"Jg(" 먀Snj r` V-n-nJg&Jg
&Jg`v (" 먀F&`Jg&"Jf,z 4.m(" 먀F&QJf*| JgJf&"Jg(" 먀FSnj t` ` -n-nJg&Jg
&Jg`v (" 먀F&`Jg&"Jf,z 4.m(" 먀F&QJf*| JgJf&"Jg(" 먀FSnj t` -n-nJg(Jg
&Jg`v (" 먀"&`Jg&"Jf,z 4.m(" 먀"#&QJf*| Jg Jf&"Jg(" 먀"#Snj n` r-n-nJg(Jg
&Jg`v (" 먀F&`Jg&"Jf,z 4.m(" 먀F&QJf*| Jg Jf&"Jg(" 먀FSnj n`  -n-nJg$Jg
&Jg`v (" 먀&`Jg&"Jf,z 4.m(" 먀&QJf*| JgJf&"Jg(" 먀Snj z`6`4 . tb*@0; N TXJ.jnTp L<XN^Nu    @(#)mem_rop.c	4.19 89/03/21 SMI                3  3                                                                                                  4  4D  4     P    P  V  @    P    @    @  "  @   <  @   @  @    @    @    @        3                       $          -          <_sccsid _pr_reversesrc _mem_rop _pr_clip _pr_reversedst Jmp 0rʁp 003 2FAF@G\Q` !z Jgz ./share/sys/sun2/OBJ/movc.o                                                                            444       0      12         2050  4424711253  10527                                                                                                                                                                                                                                                                                                                                                                                           `          NV   .  n "n `"QB@SjN^NuNV-|    `NV-|   -y   . o   n#   n "n 2  gS"	  fR" .$    D   "N( """"""""""""""""QB@Sj$    "    D   "N QB@SjB#  N^Nu o "o  / on`QB@SjNu` QB@SjNu      NV-|  R`NV-|  V-y   n#  "n  . B.   gS @.$    D   "N( """"""""""""""""QB@Sj$   g2   gB#  N^Nu  @(#)movc.s 5.23 89/03/29 SMI          @   0  @   >  @   F  P   Z  P    P  R  @  `  @  n  @  v  P    P    P        R   
      D                Z   $      *   +          1        :         A     h   I        Q     V   W     >   [     h   b      8   i         o     t   y                                 ~   kzlfv bcopy_getaddrs ret _kzero _kcopy kclfv _ovbcopy _lcopy _blkclr copyerr bzlfv bwd _bzero _bcopy bclfv zerostart bytes _u zeroerr longs   ˔  	wintree.o o      ˕  ws.o ee.    ˖  
ws_dispense.o   0  ˗  ws_interrupt.o 0  D  ˘  wscons.o o    T  ˙  xt.o s.o  d  ˚  xy.o t.o  x  ˛  zs_asm.o      ˜  
zs_async.o o     ˝  zs_common.o "FSnj` 
FFFJg(g& ".(4.m& 쨈(QgJg& ".Snj` 
*-n-nJg(Jg& 쨀F(4.m& 쨀F(QJgJg./share/sys/sun2/OBJ/mti.o                                                                             444       0      12        27304  4424712143  10404                                                                                                                                                                                                                                                                                                                                                                                x         NV  /. N    XOJlp `pN^NuNVH<*n &m 
Hx/9    N    PO$@0- HЀ" ҁЁЁЁ    (@~ B| " 4)J 6 9      )@ 0E AIFRrm0- H @    0  0- HЀ" ҁЁЁЁ    (@~ 0- HЇ9@ J  gp gBHx "`BHx  HTN  O Rrmp L<N^NuNVH0*n .. |Ά    l(G"ҁ    J 6fp` N    , r  fLB, DB, CB )| 
 B $Bl Bl Bl  Bl "9n  A    C (#h  "HTN  
XO`, ,    g x;$ h DJh f  .  g
   g  BHx "HTN  O .  gr`Drr    A    00   fHx BHTN  O   gr0.   fR ,   fH   g   g\.  fTrHxHTN    POJg ~ϔ ;/N    XOp`N   g.  f/N    XO ;p`*/N    XO)M 
A $)H +L 8+L ~ϔ~ . L0N^NuNVH0*n (m .g j09    l fN    N    .    f<`^0, rr0, H   A    00   g  BHx "`~Jm <f   gHxHy    N    POJg   gHx HTN  POHx Hx HTN  O     f ,   
f   f2J  f PBHx  HTN  O HxHy    N    POJf rfHx `HTN  PO   gHx HTN  POBA    C (#h  "Hl N    XOB 8B /N    XOHTN    XOp L0N^NuNVH8 *n (n &m  l p ( 
   b :ABrTf *A0;N        \N    -@Hk (N    XOJg   gHx HSN  PO/.N    XOHTN    XO` N    -@Hk (N    XOJg
HSN  ~XO/.N    XOHTN    XO`  l  Tg Tg"T
g"Tg  TfHTHUN    POHSN  XO` THTHUHSN  X` D l  gFN    -@   gHx HSN  PO    BHUN    PO/.N    XO l   l   g  N    -@BHmN    PO/.N    XOHTHUN    PO`  N    -@p + -@g&n B   gHx HSN  POHSN  XO/.N    XOHTN    XO`^N    -@p + -@g&n B   gHx HSN  POHSN  XO/.N    XOHTN    XO`
  p L8 N^NuNVH0  . Ѐ" ҁЁЁЁ    *@-m g(m $"gB $HT/.HUN  Xp L0 N^NuNVH0*n (m HnHU/.  . \/ N    O . g" n 0( r/ HznHx /N    ` Jf   TgzTgrTgj"T	g"T
g
"Tf bN    -@ m /(  . ~(Ї/ N    POJg/. N  ~XO/. N  
XO/.N    XO` N    -@ . \/  m /(  . ~(Ї/ N    O Jg/. N  ~XO/. N  
XO/.N    XO` Jl B tkg Ptlg tmg    TgH  t$g(  tzg    t{g  @tjg 6~-G` T n 0( H/ N    XO` < m  h Jf .N    -@Hx Hx /. N  O  9    lV/ /. HzN    O  n     /.N    XO`  Hx Hx /. N  O `  Hx Hx /. N  O `  B m  h /N  
tXO/ /. N  O `xHx  m  h /N  
tXO/ /. N  O `PHx  m  h /N  
tXO/ /. N  O `(Hx B/. N  O / N  
XO m  h  Jg)n  m |  
HU/. N    POL0N^NuNV.>. 
r  g   g   g    g   ..N^NuNV.. r  g   g A@ g   ..N^NuNVH *n N    -@ - ~( fBHx  HUN  O ` ~A  J0H HH   0, zf  ``  `(  `"  ` - z0gzgz gz0g -   g   -   	f    -   g <   `p@z - 4   -   g  ///BHx pHUN  O BHUN  PO -   gp `p/ Hx pHx pHUN  O Hx Hx `Hx pHUN  O Hx HUN  PO/.N    XOL N^NuNV.*n    gHx Hx HUN  O ?HUN  XOp *nN^NuNV.*n    gHx HUN  PO   f
HUN  XO*nN^NuNVH<*n N    -@   f J- BgZ.- 6|@ކp @ B    BHx  r   /     /    /Hx HUN  O     `     f J >gV - (  f .- 6    ޭ :B/- > r   /     /    /Hx HUN  O ` (m .g $m 6z@` > k p ( 
~g<~g  ~g   - (  f  `   - (  g  HSHTN    PO` Z~@f  Hx Hx HUN  O  9    lV/ HUHzN    O     HSN    XO` ~@fF k p \/ HUHzN    O HSN    XO`  ~@fHSHTHUa O `ZJfHSHTN    PO`Zo,/HR/+ N  nO ƚݫ  +  , f -K&k /.N    XO.f HTN    XO&@Jf p@, gN.- 6    B/ r   /     /    /Hx HUN  O B :+F >    /.N    XOL<N^NuNVH *n "n .. `"	RI
    A SJnL N^NuNVH *n `&  l  /N    XOHx Hy    N    PON    ( ~ - 4r - 5, . zb6@0; N     .. ` ` . F΀`/N    XO`  &9    $ 0 F  g+C 0 F  f Zp*@ 4z - 4   -   g  /Hx PHUN  O /N    XO g4J  g, g <  ` <   / 0- |/ Hy   N     L N^NuNVH<B~ `   A    *p ,
g  (m 
 " ҁЁ    &@  g>E HRN    XO, o(`HRN    XO@ QBFSd|  RJf  gZR,E -J`@  np A  z0 HHRmHS/N  POp , #  | $n f&R 9    耾m $ .L<N^NuNVH<*n G BB~ &zƅ . ЃЀ" ҁЁЁЁ    (@    gHzgBzpg<   g4` b~g ~ g h~pg    g    g ^`  f&p". A    20   f   gR   f  J  g//. Hy  )N    O z$l 
*
gHx /* N    POHTN    XO`     g   ,   f  J  g//. Hy  ;N    O Hx Hx HTa tO N    -@   gHx HTN  PO    A    C (#h  "/.N    XO$l 
*
gHx /* N    POz˔< @ 5 f z    g $l 
.
g  gR gJfHx /* N    PO` ^   g   ,   g~ ,   f H ,   g<p , Cr , D      d p , C ER, Cp , CB4E`  p , Cr , D      d  p , CB4E`  /Hl (N    PO8   	g   gHx HTN  PO gHTa XO 
g   gHx HTN  PO     frp , Cr , D      dR   f: , ~,~f,p , Cr , D      d p , C ER, Cp , CER, C`Rp , Cr , D      eHTN  XO`  p , Cr , D   g     f      /9  HTHz N    `  z //. Hy  N`p g/. Hy  N    POz p ሊ   	gB, B`   gB >` >۬ :HTa XO`p - / /. Hy  N    O Jg//. Hy  N    O Jg//. Hy  N    L<N^NuNVH8*n N    -@HUHzN    PON    &m 
.fB- DB- C/.N    XO`  p - Cr - D   . o  to~Hx /N    PO(@Jg/+ N    XOJf"HTN    XOB- DB- CHSHm N    PO`Lt - D l (ER- DR SJnHT/+  k  P PNPOp - Cr - D   . tn hp - Cr - D   g$   f    /9  HUHzN    O /.N    XOp L8N^NuNVH0 n 0( H~-@A     p *h 
|  ." ҁЁ   (@` g:|   |  ~ Jg|`$ Rzo   g `  gJgA -HX n*(X n((   f
 n    @    f
 n ~pf A  j`
 A  Z0 HH. A -HvJg^HT/N    PO SJgZX n$(Jg n 0( |v HT/`X n$(Jg n 0( |v B QBGSd|  L0N^NuNVH0~ `   rA    (p "glJl  gfrf r/ Hy  N    PO*G"
ҁ     rg&HUa ,XOBHx "HUa O ?HUa XOR    m rp L0N^Nu    @(#)mti.c 1.56 89/03/24 SMI                                                   	

                                                                                                      mti line 0x%x: %s DTR
 raiseing dropping mti%d,%d: DSR on
 mti%d,%d: DSR off
 mti%d: read error code <%x>. Probable hardware fault
 mti%d: DMA output error
 mti%d: impossible response %x
 mti%d,%d: silo overflow
 mti%d,%d: ring overflow
  mti%d    mti mti ldterm ttcompat    
  5P   4  tP   :  P   \  DP   r  rP   x  @     "P     DP     @     @  .  P  H  DP  Z  P    CP    @    @    "P  4  @    6P    ]P    ]P    ]P    )P     NP  &  P  T  "P    P    6P    @    @    @    @     P    6P     @  6  @  @  P  V  hP  h  ]P  r  aP    P    >P    @    ]P    [P  $  P  2  sP  @  @  L  ]P  V  [P    P    @    @    P    @    pP    ]P    P  &  pP  2  ]P  >  QP  J  P  t  @  ~  @    ]P    [P    P    @    @    ]P    [P  $  DP  H  @  |  !P    wP    P    :P    @     @  ,  ]P  8  P  \  SP  n  @  z  @    ]P  	  MP  	  P  	2  @  	<  fP  	R  P  	j  ]P  	  @  	  @  	  @  	  @  	  @  	  @  
  @  
  @  
*  @  
6  @  
d  QP  
  P    @  "  @    @    @    @    @  "  @  .  ]P  \  @  n  @    @    @    P    HP  
(  @  
\  HP  
  @  
  P    @    fP  2  P  D  [P  h  P  v  [P    P    @    P    oP    HP  B  @  ^  ]P    @    ]P    P    6P    P  &  ]P  2  rP    @    ]P    @    @    @    @    P    <P    &P  (  gP  8  gP    @    @    @    P    DP    "P    @    @    P    ~P    aP    @    @    P  8  P  P  @  ^  P  t  ]P    ~P    ~P    eP    @    @  n  @    @    P    @    @    P  4  @  :  P  P  @  V  P  l  @  r  P    nP    ;P    P    ]P    _P     P    [P  0  ,P    @    P    ]P    <P    &P    @    @    P  d  <P    @    P    DP    P      @   (  @   4  @   <  @   @  <P     @     P     @     @     @     @     @     @     @     @     @     @            
                      X   (         1        :          B        L     n   X        `         j         q          z         ~               
t                                                                                                    J         @                            
                           ,         8        A       K       W         b        l        v                                            j                                      ~                                   
                        2         =         F        L         W     z  `        k        p        x                                                                                                       J                         @           "       +       6        >       G        O       X        b         k       x         ~                                      Z       
                                                  >                           
                                    (        0        6         B        K        V        ^         g        p        z                           
                                                                                             
        _nbuf _rootvp _mtireioctl _mtiioctl _rootdev _mtiintr _printf _mtirinit _bcopy_swab _sccsid _bclnlist _lbolt _rmalloc _qs _putbq _dmtomti _file _nproc _mtiprobe _whichqs _fbdev _avenrun _domainnamelen _hostnamelen _runin _putc _mtireset _hostname _putq _tz _dumpvp _nmti _canput _ttycommon_ioctl _mtisoftCAR _nchrdev _mtidebug _mtisoftdtr _mti_softc _boottime _panicstr _consdev _noproc _mtimodlist _ttycommon_qfull _mtimctl _configlen _kbddevopen _consvp _physmem _mtistart _mtirestart _mtiwinit _peek _sleep _boothowto _mtidtrlow _nfile _flow_from_termios _untimeout _mtiinfo _tick _flow_stop _resplen _procNPROC _phz _runout _flow_init_v _mtiline _mtiattach _pidhash _selwait _DVMA _junk _mtiwput _mticlose _nblkdev _setcons _resetcons _mti_speeds _rconsvp _qreply _domainname _flow_from_termio _mtistab _mtidriver _nclist _mtiopen _runrun _bufhash _mousedev _freemsg _mtiresponse _splx _mticmd _allocb _cfreecount _wakeup _cmdlen _mtitodm _maxmem _flow_char _hz _getc _ttycommon_close _mtirstrt _rconsdev _fileNFILE _freeproc _proc _splclock _getq _flushq _wantin _time _flow_start _iopbmap _kernelmap _dumplo _bufcall _allproc _zombproc _bfreelist _cfreelist _mtidrainring _mtiparam _putctl _spltty _mtiticks _freeb _kbddev _bufalloc _timeout _mtim_info _flow_end_v _bufchain _curpri _cfree Q` =nx JgZJngl6p 02DAn[8JglJgp 0쨈@0DGSQ` ` =nx JgZJngl6p 0쨀Dn[8JglJgp 0쨈@GSQ` ^=nx JgZJngl6p 02FADAn[8JglJgp 0쨈@0F@DGSQ` FnFx JgZngl6p 02.DA[8  ./share/sys/sun2/OBJ/mti_conf.o                                                                        444       0      12          666  4424712147  11357                                                                                                                                                                                                                                                                                                                                                                              (                   @(#)mti_conf.c 1.8 88/02/08 SMI    @                
                             "         .      `   9         B     Q   K         S        \         h         q         |                                   _nbuf _sccsid _bclnlist _nmti _mtisoftCAR _mti_softc _mtiinfo _mtiline _nclist _bufhash _cfreecount _iopbmap _cfreelist _bfreelist _bufalloc _bufchain _cfree br_prf.o      |  
swapgeneric.o |  0  }  
sys_process.o }  @  ~./share/sys/sun2/OBJ/nfs_client.o                                                                      444       0      12         5071  4424707216  11721                                                                                                                                                                                                                                                                                                                                                                                   p           NV/. Hn/. N  VN^NuNV n -h  h B /. N    XO n/( ZHy   BB/.  n  h  h \Np N^NuNV   n  h 0( r@g< n  h J g. n  h  .  f n  h  .  g
/. a dXOp N^NuNV   n 0rf< h  h  (  f, n  ( rjЁ/ /. /N  O /. N  jXOp N^NuNV   n 0rfF h  h  (  f6 n "n "i C j0< 
"Q2 n "n !Q /. N  jXOp N^NuNV n -h A    "nC #h  " n 9     -@ n     fL h  h   fd n  h  h  -h f`| n  h  h   . jcf n  h  h  -h j`R n  h  h   . ^d n  h  h  -h ^`( n  h  h   . bc n  h  h  -h b n .Ѩ p N^NuNV n -h  n 9     m 9     f( 9    l nA j"n 0< 
"Q2p`p N^NuNVHx HN    XO-@/. / Hy     n  ( r.Ё/ Hy    Hx  h /(  N    O -@f6 n-Pf/. XH//. N  O `   Ff
/. a XOHx H/.N    PO .N^NuNV/. /. a POJgp `D/. /. /. a :O -@f& n /( (/( $/. a O /. /. a dPO .N^NuNVH8 *n (n &n -m &7l  7l  7l  /- N    XO m  h  "( &   A  '@ 
'l ( 7l 
  n ( ~ e
0( N  f n'l  !k  ~`
 n'h ~ 'l , 'l 0  'l 4 $'l 8 ('l < ,'l @ 07l  4'l   6 rgrg'l  `'|    `'|        f( fr&0<k  @ 7@ Bk 4'l  p L8 N^Nu       @   6  %P     @    @  ^  @  z  +P    +P  t  +P    +P    +P    P    P    P    P     @  H  P    (P            
                             )         ;          P         Z         a          m         v                                `         @                                                                                                  j  #        )        .        6        ?         L        U        d      @  p        x                                                                                                    f       V          '        1        9_nbuf _rootvp _xdr_attrstat _rootdev _nfs_purge_caches _nfs_validate_caches _bclnlist _lbolt _kmem_alloc _avenrun _domainnamelen _hostnamelen _runin _nfs_getattr_cache _hostname _tz _kmem_free _dumpvp _nchrdev _boottime _panicstr _rfscall _noproc _physmem _boothowto _set_attrcache_time _tick _phz _runout _selwait _xdr_fhandle _nblkdev _nfs_attrcache _domainname _runrun _bufhash _nfs_getattr_otw _dnlc_purge_vp _maxmem _hz _vfs_fixedmajor _nattr_to_vattr _wantin _time _dumplo _nfs_attrcache_va _bfreelist _nfs_cache_check _nfsgetattr _bufalloc _bufchain _curpri HTa XO`p - / /. Hy  N    O Jg//. Hy  N    O Jg//. Hy  N    L<N^NuNVH8*n N    -@HUHzN    PON    &m 
.fB- DB- C/.N    XO`  p - Cr - D   . o  to~Hx /N    PO(@Jg/+ N    XOJf"HTN    XOB- DB- CHSHm N    PO`Lt - D l (ER- DR SJnHT/+  k  P PNPOp - Cr - D   . tn hp - Cr - D   g$   f    /9  HUHzN    O /.N    XOp L8N^NuNVH0 n./share/sys/sun2/OBJ/nfs_server.o                                                                      444       0      12        32437  4424707261  11777                                                                                                                                                                                                                                                                                                                                                                         x  P     l        @NV n /N    XO-@f
 	;`   n-h  9  xr Ё/ /9  x/.N    O -@g
;`  /8;$N    XOHx/.N    PO-@r-A`"BHzp/.Hy /.N    O R   cHx;bN    XOJgLr-A`/.Hy N    POR   c/. n h  h NXO ;BN    `
/.N    XOp N^NuNVH0 *n /. /. N  PO(@"frF*`B x;$/( DHnHT l  h NO -@fHm HnN    PO*HTN    XOp L0 N^NuNVH0 *n /. /. N  PO(@"frF*`   n     f(   g*r/ n  ( rЁ/ N  POJf
r-A`  Hn . r Ё/ N  POg B@fBr-A-A-A x;$/( DHnHT l  h NO -@f2 x;$/( DHnHT l  h NO -@fHm HnN    PO*HTN    XOp L0 N^NuNVH0 *n  n J  g h  Jfr
*`  /. /. N  PO(@"frF*`  BB x;$/( DHn n /(  HT l  h  NO -@gB`R x;$/( DHn/. n h  h NO -@f*Hm $HnN    PO/. /.Hm N    O -@*Jg/.N    XOHTN    XOp L0 N^NuNV.*n /. /. N  PO-@frF*`  Hx N    XO+@ -m -|   A-Hr-A=AB-|    x;$/( DHn/. n h  h DNO -@gHx /- N    POB B ` <   +@ */.N    XOp *nN^NuNV   n J gHx /( N    POp N^NuNV.*n B LB H/. /. N  PO-@frF*`  n    gHy  @N    XOr-A`& x;$/( DHn/. n h  h NO -@Jf j x;$ h D0( ngV x;$/( DHx /. n h  h NO -@g& x;$/( DHx @/. n h  h NO -@Jf  n  (  eB HHm HnN    PO`  n  (    -@J  |g  ( $Ю    b   n0r0f   n  (   / /./9    N    O +@ P - PЮ+@ L n  .А   $d
 .А  ` n  ( $+@ HHx Hx /- H/- LHy    N    O -@f" nRh +n THm HnN    PO` $p .rf .-@`r-A/.Hy  iN    POB/- P/9    N    O B P n /( $N    XO+@ L-m L n -h $A-Hr-A=A n -h  -h $ x;$/( DHx BHn/. n h  h NO -@f<Hm HnN    PO n  ( $+@ HJg/. - LЭ H/ N    POJg"J Lg n /( $/- LN    POB LB H*/.N    XOp *nN^NuNV   n J PfJ Lg/( H/( LN    POp N^NuNVH8/. /. N  PO*@.
f n ~F ` J n     f&   g~/ n  ( ~Ї/ N  POJ    gHy  N    XO~`  x;$/( DHnHU m  h NO . f  x;$ h D0( ng x;$/( DHx HU m  h NO . Jf X n J 0gX-h 0-h ,A-H~-G=G n -h $-h , x;$/( DHx Hx HnHU m  h NO . `  |  n (h 4`R(T.f~
lHx 
Hx PHy   N    O `.~(lHx 
Hx@Hy   N    O ` / N    XO&@HS n /( 4N  
^PO-K-F=|  n -h $-h , x;$/( DHx Hx HnHU m  h NO . r
lHSHy   N    `"r(lHSHy   N    `/HSN    POJf x;$/( DHnHU m  h NO .  n  f . X/ HnN    POHUN    XOp L8N^NuNV"n  n ` 	Щ  0) H!@ PH"Q"	fp N^NuNVH0 n (h  .gJf n ~
 ` Hn . ~$Ї/ N  PO0.       f*~-Gf~-G`=nBn`F0.     ` f~-G=nBn`0.      f~`~-G/. /. N  PO*@.
f n ~F ` > n     f(   g&~/ n  ( ~Ї/ N  POJf~`  Jf6/. N    XOJg&BB x;$/( DHnHTHU m  h  NO . `L x;$/( DHnHx BHnHTHU m  h $NO . g/. N    XOJfJf/. N    XOJfd x;$/( DHn/. n h  h NO . f2 . ~$Ї/ HnN    PO/. /. . X/ N    O . /.N    XO n  HUN    XOp L0N^NuNV. n J  g h  Jf n r
 `  /. /. N  PO*@"
f n rF `   n     f(   g(r/ n  ( rЁ/ N  POJfr-A`V x;$/( D n /(  HU m  h (NO -@   f/. N    XOJgB`Jf/. N    XO n  HUN    XOp *nN^NuNVH0  n J  g h  Jg n J Dg h DJf n r
 `  /. /. N  PO*@"
f n rF `   n     f(   g(r/ n  ( rЁ/ N  POJfr-A`d/.  . r$Ё/ N  PO(@"f n rF HUN    XO`n x;$/( D n /( DHT/(  HU m  h 0NO -@HTN    XOHUN    XO n  f/. N    XO`/. N    XOJg n Bp L0 N^NuNVH0  n J @g h @Jf n r
 ` /. /. N  PO*@"
f n rF `  /.  . r Ё/ N  PO(@"f n rF HUN    XO`   n     f(   g(r/ n  ( rЁ/ N  POJfr-A`X x;$/( D n /( @HTHU l  h ,NO -@   f/. N    XOJgB`Jf/. N    XO n  HUN    XOHTN    XOp L0 N^NuNV. n J  g h  Jf n r
 `  Hn . r(Ё/ N  POr-A/. /. N  PO*@"
f n rF `   n     f(   g(r/ n  ( rЁ/ N  POJfr-A`^ x;$/( D n /( $Hn/(  HU m  h @NO -@   f/. N    XOJgB`Jf/. N    XO n  HUN    XOp *nN^NuNVH0  n (h  "gJf n r
 ` rHn . r$Ё/ N  POr-A/. /. N  PO*@"
f n rF ` 4 n     f(   g*r/ n  ( rЁ/ N  POJf
r-A`   x;$/( DHnHnHTHU m  h 4NO -@   fX/. N    XOJgHBB x;$/( DHnHTHU m  h  NO -@f  x;$/( DHnHU m  h NO -@Jf@ . r$Ё/ HnN    PO/. /. . X/ N    O -@/.N    XOJf/. N    XO n  HUN    XOp L0 N^NuNV. n J  g h  Jf n r
 `  /. /. N  PO*@"
f n rF `   n     f(   g(r/ n  ( rЁ/ N  POJfr-A`V x;$/( D n /(  HU m  h 8NO -@   f/. N    XOJgB`Jf/. N    XO n  HUN    XOp *nN^NuNVH0 *n /. /. N  PO(@"f
rF+A ` >    gHy  N    XOr-A` 
 x;$/( DHx HT l  h NO -@f   n J $fB B B B`   n      $d ( $` <    !@ $ n /( $N    XO+@  n * $-m  n -h $A-Hr-A=A n -h  -h $ x;$/( DHnHT l  h <NO -@gB `4 n J $g . $fB r+A ` n  ( $+@ B +n HTN    XOp L0 N^NuNV   n //( N    POp N^NuNVH0 *n /. /. N  PO(@"frF*`PHn/,  l  h  h NPO-@*f"N    +@ +n +n +n +n HTN    XOp L0 N^NuNV  p N^NuNV  p-N^NuNV  p N^NuNVJ  4f  B ." ҁЁЁҁЁ  -@`R n 9  4 o 9  4` n ( #  4 n 9  4 o 9  4` n ( #  4rӮ ." ҁЁЁҁЁ  0bR   m `J  0g-y  0 y  0#  0`/9  4N    XO-@ .N^NuNV   n    0#   0p N^NuNVH0*n BBBR    B n -h m
   m& n /( N    XORHy  N    XO`  n -h    m
   o0Hx Hx  n /( N    O RHy  N    XO` \U .$ ԂЂЂԂЂ  (@ ." ҁЁB8;a -@/9  4/ N    PO/./, HU m  h NO Jf HUN    XORHy   N    XO`  Jg  -nN    -@ x;$-h D x;$!n D .tЂ/ /.N    PO-@gL/./. / N  RO Jf4HUN    XOR n  h /( N    XO/ Hy   6N    PO`@a 0-@/9  4/ N    PO .A   R /. /././. TNO /./, HU m  h NO JfHy   mN    XORJg
/.a XOJf*/./, HUN    O JfHy   N    XORJg    g/. l NXO/.a NXOJg x;$!n D/.N    XO .ѹ   L0N^NuNVH0 *n (n HTN    XO9m  9m  9m 
 )m  )m  )m   )m  $)m  (p L0 N^NuNV.J g6/. N    XO*@"
g$ . P/ HnHU m  h N-@fJfp ` .*nN^NuNV   n "n 0Pg`, n "n  ) r  WD ` n p 0rgrp N^NuNVB`& n  ( ".Ё/ /. aPOJgp`R n  .ep N^NuNV/. N    XOR-@B`0/. n  h  .//. N    O Jfp`R n  . ep N^NuNVJ  8g$ n  h h  eHy   N    XOp `  n -h  n  . g vB` n n "n  ) 1@  n "n  ) 1@  . rЁ-@` f n -h  nJ f" . rЁ/  n  ( rЁ/ a POJg n "n ) 1@  n "n ) 1@  n ( /  . rЁ/ /( N     n ( ".    Ё-@`   n -h  n "n )  b   . rЁ/ Hn . X/  . T/ /	N    O JfD n/( /. a 0POJg
 n Bh ` n "n  ) 1@  n "n  ) 1@ Bn . rЁ2.HЁ-@`( .g rg rg Bp `F nr X . rLЁb` nr X . rLЁb n p h VD N^Nu    P                                        H           @       H                               $       h                     h         ,       X                               8       H    
       D       h           $           
       H                  D                  H           0       D       h           $                  (         4  P                                 rfs_read: attempt to read from non-file
 rfs_read: map failed, error = %d
 rfs_write: attempt to write to non-file
 rfs_readdir: attempt to read non-directory
 nfs_server: bad proc number
 nfs_server: bad version number
 nfs_server: bad getargs
 nfs_server: weak authentication, source IP address=%s
 nfs_server: bad freeargs
 nfs_server: bad sendreply
 NFS request from unprivileged port.
       UP   .  @   :  @   D  FP   b  4P   r  !P     #P     +P     "P    P    P  4  @  r  0P    P    @    @  
  @    0P    P    @  N  0P  b  xP  ~  P    P    @    P  0  %P  X  P    %P    @    @    P    0P    @    _P    EP  F  &P  L  7P  r  0P    @    P    _P    -P    P  D  0P  p  %P    %P    P    %P    @  6  @  J  @  P  P  	:  @  	@  sP  	Z  @  	`  sP  	r  P  	  @  	  @  	  P  	  @  	  P  
  %P  
B  0P  
L  P  
  @  R  @    @    LP    LP  &  uP  f  0P  ~  xP    P    P    @  
   @  
f  LP  
  uP  
  P  
  @  (  @  J  @  b  P    P    P    uP    LP    @  :  @  R  P    @    LP    uP    P    P  L  @  b  @    @    LP    uP     P  d  @  z  @    @    LP  n  0P    xP    P    uP    P    @  >  @    LP    uP    P    @    @     P  x  P  "  P  D  %P  f  @    P    P    @    @  (  @  4  @  D  @  N  @  Z  @  j  @    @    @    @    @    @    @    P    @    @    {P  :  .P  F  @  L  P    eP    @    P    @    @    KP    P    @     P  :  WP  f  IP  ~  @    fP    JP    @    P    @    KP    {P    @  "  P  N  `P  \  @  b  P  t  @    P    {P    1P  *  P    wP  *  $P  X  @  p  @  v  P  F  PP    (P     @     P     P     @      @   $  QP   ,  P   4  @   8  @   <  bP   D  P   L  @   P  @   T  P   \  P   d  @   h  @   l  9P   t  P   |  @     @     QP     P     @     @     P     )P     @     @     P     P     @     @     P     P     @     @     P     P     @     @     9P    lP    @    @    TP    lP  $  @  (  @  ,  aP  4  lP  <  @  @  @  D  8P  L  lP  T  @  X  @  \  P  d  P  l  @  p  @  t  9P  |  lP    @    @    kP    >P    @    @    QP    YP    @            
                              &         /        9          A          P          Y        e         o          ~                                                                                 P                                     
                4         '       2         ;       G         O     
^  \         l         |                                                                                                                 
                  &       .        7         >     j  F       P         Z         f         u                                                    4              x       R                                                    #         .         5         B        K        T       a         h         u        ~     8                                          0                               0              h                                      (     
  4       >         O         `     |  l       z                                                                                                                          "         *        3        =        E       M       X       b         k       v                                                               _nbuf _rootvp _xdr_attrstat _exit _rootdev _rfs_link _printf _svcerr_decode _nfs_svc _rfs_remove _bclnlist _xdr_writeargs _kmem_alloc _qs _xdr_void _kmem_fast_free _file _nproc _nfstsize _whichqs _rfs_statfs _runin _xdr_creatargs _xdr_readargs _rfs_rename _crfree _rfs_rddirfree _rfs_rdfree _rfs_error _vn_rele _rfs_lookup _getvfs _mbuf_to_iov _svckudp_create _svc_unregister _svc_register _bcmp _kmem_free _kas _dumpvp _authdes_getucred _xdr_rdresult _nchrdev _setjmp _panicstr _segmap_release _svcerr_noproc _noproc _vattr_to_nattr _vattr_null _rfsget _physmem _relvm _eqaddr _rfs_read _as_fault _xdr_slargs _xdr_diropargs _rfs_symlink _boothowto _rfsdisptab _m_want _xdr_putrddirres _nfile _rfssize _rfs_null _nfs_chars _checkauth _rfsput _segmap_getmap _soreserve _procNPROC _runout _findexport _inet_ntoa _bzero _svckudp_dup _pidhash _selwait _rfs_readdir _bcopy _xdr_fhandle _nblkdev _nfs_portmon _xdr_rnmargs _getsock _mfree _crget _rfs_mkdir _xdr_statfs _fhtovp _runrun _rfsfreesp _bufhash _rfs_rlfree _segkmap _svc_sendreply _xdr_linkargs _xdr_saargs _rfs_create _rootname _svcerr_progvers _svcerr_weakauth _nfsreadmap _rfs_dispatch _maxmem _rfs_rmdir _xdr_rddirargs _xdr_enum _mclfree _fileNFILE _freeproc _proc _sattr_to_vattr _wantin _kmem_fast_alloc _rfs_readlink _svckudp_dupsave _dumplo _strlen _makefh _allproc _zombproc _svstat _mbstat _bfreelist _nullfree _svc_run _rfs_write _rfs_setattr _rfs_getattr _hostinlist _bufalloc _bufchain _xdr_rdlnres _xdr_diropres _curpri                                                                                              
        _nbuf _rootvp _mtireioctl _mtiioctl _rootdev _mtiintr _printf _mtirinit _bco./share/sys/sun2/OBJ/nfs_subr.o                                                                        444       0      12        20663  4424707276  11450                                                                                                                                                                                                                                                                                                                                                                                      x   NVH0  n -h Z`:Hy  0N    XOr-A`$rg$rg  /.Hy  QN    POB .fr-A*y    "
ҁ    R     9    rN    #    JUg
SJnJUg
N    ` .J f
N    +@ :  - ` (|      f$ n 0, h fJl fJ g
9|  `  I    He x;$-h D x;$!n  DB/. /9   n /( RN    O -@ x;$!n DJg r-A 9    " ҁЁ    (@R     9    rN    #    Jl g
SJnJl g .`8J g/,  l  h   h NXO)n 9|   n 9h  (  , L0 N^NuNVH0  n  grgrg2/Hy  qN    PO`V*|    `
\M   $d0 -  fBU`8(|     ,  fBl `"I    He/.  n  h   h NXOp L0 N^NuNV. n (  f(  gr-A`
 n -h .R   *|    J f  r+A J fR/. /.Hx Hy /. N    O +@ J fHy  N    XO m / m  P h   h NXO`/. /./. /- N    O /. /. a PO m   m JfHy  N    XOR - `  K    He @R  /. /.Hx Hy /. N    O -@fHy  N    XO n/ P h   h NXO/. /. a DPO n  nJfHy  N    XO .*nN^NuNV. n /a XO n B*|     -  fB `"K    He/.  n  h  h NXOp *nN^NuNV.*n R    . A   R BB . A   "- *00 -AB`N n    
f Jf  n  Jh f Jh g z/N    XO-@-@   @1h  /.a XO/.  HUa PO-@   	 fHx / N    POB .r
N    -@ .r
N    "< N    -@/ /./. /. /. /. /. /. n h  PNO  -@rb*@0; N                  `  `  -  g  -  g&N  Jg-|  'r-Ar-AB`  r-A .  ,o <  ,` .-@-  f  Hm 2Hy  N    POJf6J>Lg008>Py    g$08>Py    gr-AHm 2Hy  N    POJf B/.N    POJg  R       'g  Hn/. n h  h NPO/.N    XO/ Hm 2 . A  /0 Hy  0N    O J>Lg  08>Py    g  08>Py    g  /.N    XO/ Hm 2 . A  /0 Hy  QN    O `PJ f `-  g:-  gHm 2Hy  rN    PO  JgHm 2Hy  N    PO`  /.a pXOJg/.N    XO .*nN^NuNV.*x;$N    -@-m $  $J  g0 - 0  f - ( $F  gBN    XOJgr-A`B+n $/.N    XO .*nN^NuNV"n  n p 0)  0) H!@ 0) H!@ !i  !i  !i   !i $ !i ( p N^NuNV   n  h A ."n 0< "Q n !n   p N^NuNV   n  h  (   f  n  h 0( n  
f x;$ h D0( ` n  h 0( rHN^NuNV    n  h 0( n  
g n   . N^NuNV.B./. /. N  PO*@Jf J  $gR y  $J g 9        m8*y  $ y  $#  $HUN  XOHUN  
XOHUN  .XOR    `Hx N    XO*@R    Hx HUN    PO n C .0< "Q;|  +|     J gJ n    f fp` n  +@ $ n    f fp ` n  ( ;@ (+M *+n   HUN  
xXO n  h  R R.J g0J.f n /( 8/( 4Hm N    O /. Hm N    POK  
*nN^NuNV   n ( :HH( =HH( GHHr? @    "n #P  n ( :HH( =HH( GHHr?A    !  R    p N^NuNV. n ( :HH( =HH( GHHr?A    *p `R fF"	f4 n ( :HH( =HH( GHHr?A    !  `#m  S    `"M*m "
fp *nN^NuNV"n JfLJ  $f"#I `."  $ y  $#h   y  $ h   y  $!I J g#  $R    p N^NuNV"n Jg8 fB  $`  $f#  $ i   Q!i  B BS    p N^NuNV   n J g$/( ZHy   BB rЁ/  h  h \NO  n J Zg/( ZN    XO n B Zp N^NuNV.*n  m   h  S J fHUaXOHx `
HUa XOBHUa POp *nN^NuNV. n ( HH( HH( HHr?A    *p `nHx  /. Hm .N    O JfP .   fFRm m  f(HUa XO m   h  R R    J gR    `R    HUa XO 
`
*m "
fp *nN^NuNV.J  $g2*y  $ -   fJm fHUa LXOHUa XO*U  $fp *nN^NuNVH8 *|    (U`JG 0  f: k  (    f,J g
 +  f/, ZHx BBHS k  h \NO (l "fXM   ep L8 N^NuNVH0 Hx N    XO-@*@(|  (ܹ  ,eJ  0f 9      -@-y  0R  0`.rA    .-@JfB .L0 N^NuNV.*n `4 8;$    "<   N    2- VHg m  NHx 
HUN    PO0- N   f 8;$    "<   N    ;@ VRm X m  N0-   g x;$Rh p *nN^NuNV.*n Sm XJm XjHy  N    XO0-   g x;$Sh Jm Xf m N0- N  gm NHUN    XOp *nN^Nu                                              $                            .nfs    authget: authdes_create failure
 authget: unknown authflavor %d
 authfree: unknown authflavor %d
 clget: null client clget: null auth clget: null client clget: null auth NFS server %s not responding still trying
 NFS server %s not responding still trying
 NFS %s failed for server %s: %s
 NFS %s failed for server %s: %s
 NFS server %s ok
 NFS server %s ok
 0123456789ABCDEF RUNLOCK  null getattr setattr unused lookup readlink read unused write create remove rename link symlink mkdir rmdir readdir fsstat           @     P   >  @   D  P   \  AP   j  >P   p  AP   v  AP   ~  6P     AP     P     P     xP     xP    @  (  XP  N  #P  \  xP  d  #P  j  #P  r  6P  x  #P    @     P  
  >P    >P  *  xP  D  xP    'P    =P    P    @    gP    !P  @  @  F  gP  \  =P  f  @    P    @    gP    @    gP    =P    =P  L  'P  X  'P  p  @    P    7P  
  JP    6P  &  P    @    @    P     -P  ,  `P  >  @  D  P  Z  7P  j  'P    %P    @    @    P    -P    `P    %P    @    @    P  @  @  F  P  ^  @  d  P    P    cP    VP    WP  	  @  	&  @  	.  @  	:  [P  	@  
P  	H  @  	N  @  	T  @  	\  @  	f  @  	p  @  	x  5P  	  P  	  [P  	  EP  	  sP  
  @  
R  pP  
d  LP  
  P  
  P  
  P     P  \  P  p  P    @    @    @    @    @    @    +P    @    @  
  @  $  +P  p  P    P  
   P  
F  0P  
R  :P  
Z  	P  
  @  
  @  
  @  
  P  (  P  H  P  V  @  ^  @  f  @  n  fP  ~  @    @    @    bP    JP    8P    bP    JP  ^  @  d  gP    ZP     @     @     @     @     @     @      @   $  @   (  @   ,  @   0  @   4  @   8  @   <  @   @  @   D  @   H  @   L  @            
                            !         )          2          :          A     .   L         U         _         f          r          z         ~                                                                                                                 j                     
               @  (         .         =        A        P       Z         h        p        x                                     @                                                                                                        	  &        /     `  =        H      H  Q      $  ^        d       m        }                                                                                                @                      H               
x  (       1     
|  9        C         J         P         `       k         s        y                                                                                                                                           $              :  &         7       >     (  F         T        \        f     
  n     
  y      H                  _nbuf _rootvp lmult _rootdev _rnhash _uprintf _printf _crdup _rinactive _ractive _bclnlist _lbolt _kmem_alloc _nrnode _qs _nproc _authget _rlock _whichqs _fbdev _avenrun _domainnamelen _hostnamelen _runin _rtable _crfree _authfree _clget _rawintrq _clntkudp_create _authkern_create _hostname _bcmp _clntkudp_init _tz _nextdesvictim _rfsnames _clnt_sperrno _dumpvp _clstat _nchrdev _boottime _panicstr _rnfree _rfscall _consdev _setdirmode _noproc _rreactive _kbddevopen _consvp _physmem _add_free _rreuse lmodt _clntkudp_once _sleep _makenfsnode _rnpages _setdiropargs _boothowto _chtable _unixauthtab _tick _rm_free _nextunixvictim _procNPROC _phz _runout _bzero _pidhash _selwait _authdes_win _nblkdev ldivt _rconsvp _nfs_attrcache _domainname _vattr_to_sattr _timeo_shift _runlock _runrun _rp_addhash _bufhash _rinval _mousedev _issig _splx _authdes_create _setdirgid _wakeup _rnew _maxmem _rfind _hz _clfree _rconsdev _freeproc _proc _splhigh _interrupted _wantin _time _panic _ifnet _dumplo _cltoomany _allproc _zombproc _rpfreelist _bfreelist _newname _nfs_cache_check _rfree _prefix _nfs_vnodeops _kbddev _bufalloc _rflush _rp_rmhash _desauthtab _bufchain _curpri xdr_diropargs _rfs_symlink _boothowto _rfsdisptab _m_want _xdr_putrddirres _n./share/sys/sun2/OBJ/nfs_vnodeops.o                                                                    444       0      12        45301  4424707352  12321                                                                                                                                                                                                                                                                                                                                                                         ,              
P   NV.*n /. Hn/N    O -@f"/././N    O Hn/N    PO .*nN^NuNV.    n   n *h J ffJm Pg*/. Hy   BB/. N  'O /. N    XO`B.  fJm Pg4Jm Pf/. BBB/. N  ';@ P`/. BBB/. N  '.  g0- PH`p *nN^NuNV.*n B    gp`  -m     gJ f0 nJ Zf& n RP nJ Zg/( ZN    XO n!n  Z.  g:    f0/.N    XO/. HnHUN  	O -@f
 n !n Jf /. /. /. /. HUN  O -@.  g    f/.N    XO .*nN^NuNVH0*n (n BBJ fp ` J m
 , Ь jp`     f.    f$ , Ь ?FoHx /8;$N    POp` -m `: 8;$    "<   N     n2( VHg$ h  NHx 
/.N    PO n0( N   f n 8;$    "<   N    1@ V nRh X n h  N n0(   g x;$Rh  ,  -@,,    <     l
 <    ` , . BJ fJ0  f /.HUN    POJg/. HUN    PO n ( ~ -@o Fo". r-A` nJh Pg0( PH-@`  /.HU/9    N    O -@    f>    gJf2 n .Ї ~e"B/ .І/ /9    N    O r-AHT/. / .І/ N    O -@Jg   .ІЇ  rr㨰 c   .І", -AmlHxpHy  ,Hy  ,N    O  Ї  j  r㠐-@o ЮЮ    oHxrHy  -!Hy  ,N    O /. .ІЮ/ N    POJf  B    fX n ( ~ d!l  ~0  g~	` n h  Nކ    g0  g~-G.  g8~Ϯ . `*0  g~`ކ    g n ,  ~f~-G/././9    N    O -@`B/./9    N    O JfJ oJg B nSh XlHy  -:N    XO n0(   g x;$Sh  nJh Xf&h N n0( N  gh N/.N    XO .L0N^NuNV.*n /. Hm /. /. N    O -@f/. /. N    POp`8 nBh  n . r	!@ $/.N    XO/.N  XO-@R>*nN^NuNVHx HN    XO-@ n  h  h   (  l n  h  h   ( ` . -@-n  n  h A .C0< "Q-n -n-n-n /. /.Hy    HnHy    Hx  n  h /(  N    O -@f n-P . Ѯ Ѯ JfJ f <Jf .X/ /. N    POHx H/.N    PO .gxrgRrEgl n  h  (  r2Ё/ /.Hy  -wN    O  n  ( r.Ё/ N  0XOHy  -N    XO`  n  h  (  r2Ё/ Hy  -BN    PO .N^NuNVHx  Hn/. N    O B ./6Hy  -N    POR   mp N^NuNVt. n  h  h   (  l n  h  h  .( `.. -n  n  h A .C0< "Q-n -G-G/. HnxHy    HnHy    Hx  n  h /(  N    O -@f-nxJf . Ѯ Ѯ JfJ gg @ n   Jf/.  Hn|/. N     ...tN^NuNV  p-N^NuNV  p-N^NuNV n -h  n0( N  g/. BBB/. N  'O /. /. /. N    -@N^NuNVH0 *n (n Hx HN    XO-@l f0 f&l 4f 6f ,f
 0g
r-A` D/- N    XO g. ,   "<   //, HUN    O  m !l  ~/. BBBHUN  'O  m 1@ P/- N    XO $g, (f"A    C #h  ")y     $)| B@ (HnHTN    PO m A .C0< "Q/. /.Hy    HnHy    Hx  m /(  N    O -@fF n-Pf(/( </( 8HUN    O  .X/ HUN    PO`   Ff
HUN    XOHx H/.N    PO .L0 N^NuNV/. Hn/. N    ;J8;g8;HH`   n Jh gj0( ngP . -@ 0( ng<r-H` ng0.HgX . rLЁb . -@ p 0.  fp ` 
;p
N^NuNV n     gp`  Hx N    XO-@/. HnHy     n  ( r.Ё/ Hy    Hx  h /(  N    O -@f<-nf/. B/./.N    O -@`   Ff/. N    XOHx /.N    PO .N^NuNV. n *h HUN    XO/. BBB/. N  'O ;@ PHUN    XO0- PH*nN^NuNVH0 *n (m Jm gp ` J fg   l f/( N    XOl NBBHUN    O /, f/, bHnN    O /, ^HnHy    HnHy    Hx 
 l f h /(  N    O -@f-n l f/( N    XO/, fN    XOB fHx /, bN    POB b/, ^N    XOB ^`/. BBBHUN  'O Jm fJ ff 
HTN    XOHTN    XO .L0 N^NuNV/. /. N    PO-@f  n /( N    XO/. /. /. N    O  n   n Jg
 PRh `  Hx hN    XO-@/. /. HnN    O /. /.Hy    HnHy    Hx  n  h /(  N    O -@f n-P   Ff/. N    XOJfP n /(  .r$Ё/  .X/ N    O  n  J  ,pg$/.  n //. /. N    O ` n BHx h/.N    POJfr n  P    g  n  P    g n  P    fB n  P/(  n  P0( H/  n /N    O -@ n /N    XO n   n /( N    XO .N^NuNVt    f6BB/.  /. /. /. a 
O -@f n /N    XOp`  n BHx hN    XO-@/. /. HnN    O /. N    XO n 1@  n    f h    n 0( 4H!@ `R n    f h`   n 0( 4H!@ `0 n    f h    n r!A ` n    f h  Hn/. N    PO n /( N    XO/. /. N    PO/.  /.Hy    HnHy    Hx 	 n  h /(  N    O -@ n  h B Jf d n-Pf B n /(  .r$Ё/  .X/ N    O  n   n J f n  P h B ~J  ,pg/.   n //. /. N    O  n =h / .r$Ё/  n /N    O  n 0.h g2HntN    XO=n|/.  Hnt n /a RO  n 1n  n  P    g  n  P    g n  P    fZ n  P/(  n  P0( H/  n /N    O -@ n /N    XO n  `   Ff/. N    XO n /( N    XOHx h/.N    PO .N^NuNVBBB/. Hn/. /. a O -@f*Hn/. n h  h lNPOJf-n-n`BJf Jg  n /( N    XO/.N    XO nh  c   h J ff  N    -@ n /( N    XO/. /./. /. /. N  O -@ n /( N    XOJgHx /.N    PO`  n Rh  n h !n  f n h !n b n h J ^g n h /( ^N    XO n RP n h !n  ^`   n h h NBB/.N    O /. /. HnN    O /. HnHy    HnHy    Hx 
 n  h /(  N    O -@ n  h B  n h B Jg .` .rFf/. N    XO n /( N    XOJg/.`/.N    XOJf-n .N^NuNVHn/.  n  h  h lNPOJf-n  n  h A .C0< "Q/. /. HnN    O  n /( N    XO/. HnHy    HnHy    Hx  n  h /(  N    O -@ n  h B  n  h B  n /( N    XOJf2-n   Ff/. N    XO   Ff/. N    XO .N^NuNVHy  -/. N    POJgBHy  -/. N    POJg,Hy  -/. N    POJgHy  -/. N    POJf
r-A` $ n /( N    XO/. /. N    PO/. /. N    PO .  g @/( N    XO/. /. HnN    O /. /. HnN    O /. HnHy    HnHy    Hx  n  h /(  N    O -@ n  h B  n  h B  n /( N    XO .  g @/( N    XOJf2-n   Ff/. N    XO   Ff/. N    XO .N^NuNV.*n Hx hN    XO-@/. /. HnN    O /. N    XO;@ p 0- / /. N    PO;@ HnHUN    PO n /( N    XO/. /. N    PO/. /.Hy    HnHy    Hx  n  h /(  N    O -@ n  h B  n /( N    XOJf n-P   Ff/. N    XOJf   n /(  .r$Ё/  .X/ N    O  n   n  P h B J  ,pg/.  n //. /. N    O =m HU .r$Ё/  n /N    O 0.m g,HUN    XO;n /. HU n /a O ` n BHx h/.N    PO .*nN^NuNV/. /. HnN    O  n /( N    XO/. N    XO/. HnHy    HnHy    Hx  n  h /(  N    O -@ n  h B  n /( N    XOJf-n   Ff/. N    XO .N^NuNV/. /. HnN    O Hn/. N    PO-n /. HnHy    HnHy    Hx 
 n  h /(  N    O -@ n  h B Jf-n   Ff/. N    XO .N^NuNV.*n B n -h  n0( N  g ( ~ fp ` 8-U n-h     gp`  n  h  h   . e n  h  h   ( -@-@-m  n  h A .C0< "Q-n/.N    XO-@/. HnHy    HnHy    Hx  n  h /(  N    O -@f-n   Ff/. N    XOJfFJg&HUB/./.N    O -@-n+n Jg n h  N n!m  ~/./.N    PO .*nN^NuNV.*n J  .oZ   gR y  ,!M +y  , #  ,+|  ,t S  .     ,fHy  ,tN    `Hy  ,tN    XOp `
HUN  JXO*nN^NuNV./8;$N    XOR  .Hx;bN    XOJg  J  .f2*y  ,  ,tgx m !m   m !m  ~HUN    XO`S  .S  .J  .f@`0 m !m   m !m   m 4-h HUN  JXO n1@ P*y  ,  ,tfBN    XOR  .`Hx Hy  ,tN    PO*y  ,  ,tg m !m   m !m   m 4-h HUN  JXO n1@ P`NuNVH0 *n  m 4(h  r-@    -@Jg|Hn/, ZHm (/-  - $r	/ /-  /- 4a O ;@ H-@f  J (g/- ( -  (Э  / N    PO - ( f   - $r	㨰 ~e  r-A`|Jl Pff - $r	", ~ c - ` - $r	", ~ -@lHy  -N    XO/, Z/. - $r	/ /-  /- 4a PO ;@ `
;l P 0- H-@JfXJgRJfL0, r@g@J g: .谬 f
 .찬 g&r-A;|  R    A .0< "|    "QJggrHUN    XOJf
HUN    XOJf,Jg&/./.Hl N    O HnHl N    PO .L0 N^NuNV  pGN^NuNV n 0  fD n P g:    g0 n  P /. Hy   BB/. N  'O  n  h 1@ P-n  n  h  (  r2Ё-@Hx  Hn n  ( r.Ё/ N    O /. /. /. /. HnN    N^NuNVH  n *h  h .( `*/. N    XOgf `R    B . "N    -@"N    -@ - R f
-y  ,`B/. /. N    PO-@f f .ذ ~d4Ї ~c, - ~ b .    -@` - ~-@`-GB/./.HnHn/.  /. /. /. N    O $-@fHy  -N    XOJ g   . e-n,.`T-n`: n"n"i  )  fHx~Hy  .:Hy  .N    O  n-h  n (  f,. -n  nRh  n X n-h    Jn nB .  rr-@Jf <  `p/ /. /./.N    O -@ @ .r	!@ $ nBh /.N    XO .䰭 ~e@ .     f4/. n/(  N    PO/.N    XOJg/.N    XO`/.a JXO-@f .     fB`|-F .Ю+@ R` "Jo P .Ї ~d BSR߮ .ؐ Ю  -@ .ذ ~dЇ ~c - ~-@`-G n  ( Ш bB`  Hx /./.HnHn/./. /./. N    O $-@g   .  rr-@Hx/. / /.N    O -@ @Bh  n .r	!@ $/.N    XO/.a XO-@ggBR>| .     fR>R    .  rѹ   $Jg Jg  N    -@ n (  f* (  f  f g/. /. N    PO-@/.N    XOJg  n (  f  (  f  f J g&Rh  n   n B R>x .    +@ RJg.J g(-n ` n/N    XO nBX nJfg .g "   Fg  .L N^NuNV n -h J gD n r `: 8;$    "<   N     n2( VHg$ h  NHx 
/.N    PO n0( N   f n 8;$    "<   N    1@ V nRh X n h  N n0(   g x;$Rh  nJ Zf J ,f
 x;$-h D , n ,RP n!n , Z n/( Z/. N    PO n ( ~  ". Ү c .      gp`      b./. ,/. (/. $/.  /. /. /. /. /. a O $`6/. ,/. (/. $/.  /. /. /. /. /. /. HztN    O ,-@ nSh XlHy  .SN    XO n0(   g x;$Sh  nJh Xf&h N n0( N  gh N/.N    XO .N^NuNVH0BJ f.   f n  h  (    f n *h J g
 .  ~ep `  n  h     o n  h  ( ` <   -@ n p 0( -@Rh J fn0- N   g 9      (;$f
~#-G` xHUN    XO/. /. /. N    O -@fJ f.   fm NHUN    XO`   .  ~eB`  - ~   -@ . Ю d
 . Ю ` .-@ . ".N    ".N    -@ .SЮ".N    ".N    -@/. / /././. /. N    O -@Jg .B RJ Zf "J f
 x;$-h D  n RPJ Zg/- ZN    XO+n  Z`  .,  ".N    -@HTHnN    PO-L,<    .".N    -@`D n ( ".Ү찁d6 ( "҆f*(HHTHnN    POHTHnN    PO   Jf І".Ү찁c8܇".Ү윁   eHx		Hy  .Hy  .[N    O ,.ܮ윇/. ///.HUa hO -@f
(n.f 
JgJg/. /.N    PO`* .      fJ fJ f n J f ` n Sh fJo/- Z/. a PO .L0N^NuNVJ m
 . Ю jp`r n     gp``-n -n . 'r@n n #-n (B/. /. /. N    O HnHy    /. /. /. N    N^NuNV   . r  WD N^NuNV  pN^Nu             R     	n  	x  	  	    r  D  @          :    B    
H   H   >  &  '  +J      +  +                ,t  ,t                                                      nmoved >= 0 && nmoved <= n ../../nfs/nfs_vnodeops.c nzero > 0 && on + nmoved + nzero <= MAXBSIZE ../../nfs/nfs_vnodeops.c RUNLOCK NFS write error: on host %s remote file system full
 NFS write error %d on host %s fh  
 %x  . .. . .. do_bio: write count < 0 fhandle and lockhandle-id are not the same size! nfs_getapage pvn_kluster pp2->p_next->p_offset != 					    pp->p_offset ../../nfs/nfs_vnodeops.c RUNLOCK (io_off+io_len) - (lbn_off+bsize) < PAGESIZE ../../nfs/nfs_vnodeops.c             {P   0  P   @  P     @     P     @     @  R  ,P  z   P    @    @    wP  Z  oP  t  P    lP    MP    P    lP  L  kP  ^  
P    }P    ZP    }P    9P    mP  `  @  f  @  l  P    @    @    P    P  ~  }P    FP    }P    FP    @    P    P  D  P  \  *P    [P    @    P  ,  P  6  P  L  GP    qP    =P    @    P    @    @     P    @  "  P  B  fP  Z  @  `  P    @P    )P  	  GP  	^  P  	  @  	  P  	  P  
8   P  
d  P  
  @  
  wP  
  P  
  P  
  sP    P    P     GP  D  P  X  qP  n  P  ~  =P    P  `  P  t  P    eP    GP    mP    P    =P  
   P  
$  @  
4  wP  
v   P  
  P  
  RP  
  P  
  QP  
  GP  
  wP  
  0P    =P     ,P  :  @  T  P  ^  P    
P     P    4P    P    RP    P    QP    GP  B  P  j  PP  z  @    P    =P  
   P    0P  6  wP  |  0P    P    RP    P  F  sP  V   P  f  P  v  P    (P    GP    PP    @     P  F  P  b  JP     P    0P    P  "  wP  2  =P     P    P    P    wP    @  $   P  :  =P    ,P    P    RP    P    QP    GP  B  P  R  wP  j  0P    RP     P    P    P    GP  B  wP  d  P  z  P    @    zP    @    zP    @    zP    @    zP     P    P    P  0   P  D  RP  Z  RP  l  P  v  pP    GP    wP    wP    P  
  P  (  P  @  RP  N  P  f  HP  x  sP     P    P    P    (P    GP    wP    P  8  PP  V  @  p  P    P    JP    =P    RP     P    P  ,  P  6  QP  L  GP  n  wP    P    RP    sP    P    OP    GP  ,  P    P    UP    P    GP  @  P  `  mP    =P    @    @    @    @    @    @    @    @    P  
  @    P    @  8  LP  @  @  J  BP  X  @  `  @  f  @    P    @    @    @    @    @    @    P    @    @    MP  
  @    @  8  @    aP  .  @  4  P    .P    P    P    P     P   *  P     @     fP     P  !  P  !4  P  !D  |P  !P  "P  !d  @  !z  kP  !  P  !  @  "  P  "L  @  "R  @  "X  P  "  P  #  [P  #$  }P  #8  aP  #D  P  #V  P  #|  }P  $4  P  $j  P  $  [P  $  }P  $  vP  $  vP  $  NP  %4  3P  %D  ~P  %  P  &,  P  &8  lP  &Z  MP  &x  P  &  lP  &  
P  '  }P  '  P  '  @  '  P  '  P  (  P  (   P  (  P  (  wP  )@  |P  )J  "P  )b  |P  )l  "P  )  /P  )  ,P  )  |P  )  P  *  "P  *H  P  *V  -P  *  @  *  @  *  P  *  *P  +  gP  +  7P  +  nP      @     @     @     @     @     @     @     @      @   $  @   (  @   ,  @   0  @   4  @   8  @   <  @   @  @   D  @   H  @   L  @   P  @   T  @   X  @   \  @   `  @   d  XP   h  @   l  @     @     @                           z           )         1          7          E          O     	n   Z         c        m               0                                      +                  
H        @                                                        !         .         B        H        O      x  T         `         g        p         w                                                                                                                       !       +      x  1         >         K     r  W     	x  c         q     J  y               @                                 >                                                                                      )        1         =        F         M         T         [         g         t                                               .                                                     	     ,t                  %     +  .         5        >        G     :  T         a         h         r     &        R                                                                               @                ,p                x                   !       *         2         C         J         S         Y         g         s     D                .       ,                                                          H           
                  !       ,        :         D     '  Q     ,  _         j        u                                      B                                  $                                                 
                 "         +         <         C         U         a     	  n     	  {              ,       +J       ,                         (                                             _specvp _nbuf _nfsread _nfs_strategy _rootvp _exit _xdr_attrstat _page_sub _nfs_ioctl _rootdev _nfs_link _nfs_purge_caches _printfhandle _nfs_validate_caches _printf _pvn_vptrunc _nfs_realvp _dnlc_remove _nfs_inactive _nfs_remove _bclnlist _kzero _lbolt _xdr_writeargs _kmem_alloc _qs _pvn_kluster _nfs_cache_blown_fh _file _nproc _sum _wakeup_one _rlock _whichqs ulmult _nfs_open _avenrun _domainnamelen _hostnamelen _runin _xdr_creatargs _xdr_readargs _pvn_fail _nfs_rename _crfree _page_sortadd _nfs_cache_blown _pvn_range_dirty _vn_rele _nfswrite _rate _page_lookup _dnlc_lookup _nfs_lookup _nfs_select _segvn_create _do_bio _segmap_pagecreate _hostname _tz _nfs_getapage _kmem_free _nfs_noop _dumpvp _xdr_rdresult _nchrdev _setjmp _boottime _nfs_access _panicstr _segmap_release _rfscall _setdirmode _noproc _vattr_null _physmem _relvm _sleep _splvm _xdr_slargs _makenfsnode _xdr_diropargs _setdiropargs _nfs_symlink _boothowto _xdr_getrddirres _async_daemon_ready _nfile _nfs_dump _tick _segmap_getmap _bp_mapin _procNPROC _async_bufhead _phz _runout _nfs_cmp _bzero _pidhash _selwait _nfs_readdir _xdr_fhandle _bcopy _as_unmap _nfs_getpage _nfs_close _nblkdev _page_find ldivt _uiomove _as_map _psignal _xdr_rnmargs _nfs_attrcache _domainname _vattr_to_sattr _nfs_dnlc _nfs_mkdir _cnt _runlock _runrun _bufhash _strcmp _nfs_getattr_otw uldivt _segkmap _splx _xdr_linkargs _xdr_saargs _nfs_create _setdirgid _async_daemon_count _nfs_wakeup_one_biod _wakeup _dnlc_purge_vp _maxmem _nfs_rmdir _hz _klm_lockctl _nfs_lockctl _xdr_rddirargs _pageio_setup _assfail _nfs_fsync _nfs_lostpage _xdr_enum _nfs_putpage _async_daemon _page_rele _fileNFILE _freeproc _proc _nattr_to_vattr _wantin _nfs_readlink _time _pageio_done _panic _total _dumplo _nfs_attrcache_va _allproc _zombproc _bfreelist _rwvp _nfs_rdwr _pvn_getpages _newname _nfs_cache_check _rfree _pvn_vplist_dirty _nfsgetattr _nfs_setattr _nfs_getattr _dnlc_enter _nfs_nra _nfs_map _nfs_vnodeops _bufalloc _rp_rmhash _nfs_writelbn _bufchain _pvn_done _xdr_diropres _xdr_rdlnres _curpri    Jn nB .  rr-@Jf <  `p/ /. /./.N    O -@ @ .r	!@ $ nBh /.N    XO .䰭 ~e@ .     f4/. n/(  N    PO/.N    XOJg/.N    XO`/.a JXO-@f .     fB`|-F .Ю+@ R` "Jo P .Ї ~d BSR߮ .ؐ Ю  -@ .ذ ~dЇ ~./share/sys/sun2/OBJ/nit_buf.o                                                                         444       0      12         7116  4424706742  11230                                                                                                                                                                                                                                                                                                                                                                         P         d         HNVH0     gp`j n J f^Hx Hx N    PO(@"f
 ;p`@rӬ *l *+n   n !M 8!M r+A +|     B B HUN  &XOp L0 N^NuNVH0*n (m N    . Hx Hm $N    POJ g/, N    XOB HTHzN    PO/N    XOB /N    XOp L0N^NuNV   n  h p ( 
rg&   f. n  h  g B/. N    PO`/. /. N  `/.  n /(  h  P PNPOp N^NuNVH0 n (h .f  Hy  N    XO/. N    XO`  *n ` m (  
f m B( 
*m .
f/. /. N  `   n  h   g  N    . B/. N    POHTHzN    POJ g/, N    XOB B HTN  &XOJ o/, HTHzZN    O /N    XO`& n  h p ( 
Jg ^~g 4   g ^/.  n /(  h  P PNPOp L0N^NuNVH8 n *h  n (h  p	g `pg8p
g rpg    pg  / n /(  h  P PNPO` z n  h &h JmJ l n  h |  
~)G ` : " ЁЁ偐ЁЫ "9    N    "< B@N    +@ fB  n  h |  
B `  J l n  h |  
~")G `   - " ЁЁ偐Ё"9    N    ,  n  h &h  "< B@N    '@  "< B@N    & n  h |  
~`^~+G  n  h |  
B `H n  h  h +P  n  h |  
B `$ n  h  h    n  h |  
~)G /. /. N    POp L8N^NuNVH<*n HUN    XO.  m  -  |m m (  f - |fQ `2Hx Hx N    PO&@,g   k B( 
P HUHSN    PO*K(m (P rg rr`r ,ކ)G Jgj&M`&k J f k  (  m k (  fݫ `:Hx /N    PO$@.
fHUN    XOp ` j B( 
ݪ HRHSN    PO 
L<N^NuNVH  n *h /. a XO-@ gh @ h .( ,- ܇ bJ f
HUN  XO,- ܇ bJ f/.  n /(  h  P PNPO`/. /- N    PO+F p L N^NuNVH0 *n J gHUHy  
N    PO/- N    XOB B J g Hx BN    PO(@Jg l B( 
+L p L0 N^NuNVH8N    . /. HzN    PO*n (m &m "f"g
HTN    XOB /N    XO`d"g,J fHSN    XOJgHT/+  k  P PNPOB "fHUa XOJ o/- /. HzfN    O /N    XOp L8N^Nu      @(#)nit_buf.c 1.15 88/11/02 Copyr 1988 Sun Micro     @      f                                                                  nbrput: called on closed device instance
 nb %x: nbstartchunk called with existent chunk
       nitbuf     *  $P   x  @     0P     )P     "P     P     1P     #P  0  )P  B  @  ~  @    P    "P    @    0P    )P    P    "P     @  8  2P  D  #P  D  %P  J   P  V  P    %P    P    P    P  j  P    P    $P    /P  V  $P  f  "P    /P    @    /P  <  @  B  P  N  "P  j  $P    0P    P    "P    #P    P  ,  2P  8  #P   4  @   @  @   H  @   L  @   T  @   \  @   p  @   x  @   |  @             
               P            !         %        /         6         ?        H         Q         `         m      @   w         {                                                           |                                      &                                               
                      @  +        4         =         C         K        O       Y        c        i         q     f  y                                                                   lmult _printf _sccsid _lbolt _qs _nb_winit _nproc _whichqs _nbioctl _avenrun _domainnamelen _hostnamelen _hostname _tz _canput _boottime _nbclosechunk _nb_minfo _nbwput lmodt _nbaugmsg _msgdsize _nbopen _untimeout _nbstartchunk _tick _procNPROC _phz _pidhash ldivt _qreply _nbaddmsg _domainname _nbclose _freemsg _splx _allocb _hz _nb_rinit _freeproc _proc _flushq _nbrput _nb_info _time _allproc _zombproc _linkb _spltty _freeb _timeout PO(@"f
 ;p`@rӬ *l *+n   n !M 8!M r+A +|     B B HUN  &XOp L0 N^NuNVH0*n (m N    . Hx Hm $N    POJ g/, N    XOB HTHzN    PO/N    XOB /N    XOp L0N^NuNV   n  h p ( 
rg&   f. n  h  g B/. N    PO`/. /. N  `/.  n /(  h  P PNPOp N^NuNVH0 n (h .f  Hy  N    XO/. N    XO`  *n ` m (  
f m B( 
*m .
f/. /. N  `   n  h   g  N./share/sys/sun2/OBJ/param.o                                                                           444       0      12         4352  4424713056  10675                                                                                                                                                                                                                                                                                                                                                                                                  2  N              F                     d          2      2       
   <      <   d   
   ^    @          d           d   
  @           W   	      P Z   x (               	P            
                      H    &         /         6         B         F         P     @   Y         _         f         o         x                                                            @                                                                          	                        %        .        4        @        G        R        Z        d        k        q        w                                                                                                      (                @          
                        #        +     l   3        ;        H        O         W        _        d      z  m      8  v                                      $                                                         R                                  
                        '        0       8        C        M        W        _        f_callout _linkblk _rootvp _dblock _rootdev _lbolt _fifo_alloc _qs _strmsgsz _streams _file _nproc _whichqs _avenrun _domainnamelen _hostnamelen _runin _inodeNINODE _msgh _strlofrac _hostname _tz _dumpvp _sem_undo _nchrdev _boottime _panicstr _noproc _nstrevent _strevent _msgmap _strctlsz _physmem _sema _queue_incr _inode _boothowto _m_want _callfree _nfile _semu _tick _ndblks _procNPROC _phz _ncallout _runout _sem _ninode _pidhash _selwait _nblkdev _nstrpush _nmuxlink _fifoinfo _iuniqtime _domainname _queue_init _tickadj _maxuprc _mfree _msgque _mblock _semmap _dquotNDQUOT _dquot _nclist _runrun _msg _shminfo _msginfo _cfreecount _streamsNSTREAMS _maxmem _maxsepgcnt _ndquot _hz _mclfree _fileNFILE _freeproc _proc _wantin _seminfo _time _kernelmap _dumplo _allproc _zombproc _shmem _strmedfrac _nmblock _mbstat _cfreelist _calltodo _segudata _curpri _cfree   P    "P     @  8  2P  D  #P  D  %P  J   P  V  P    %P    P    P    P  j  P    P    $P    /P  V  $P  f  "P    /P    @    /P  <  @  B  P  N  "P  j  $P    0P    P    "P    #P    P  ,  2P  8  #P   4  @   @  @   H  @./share/sys/sun2/OBJ/pi.o                                                                              444       0      12         7306  4424712156  10207                                                                                                                                                                                                                                                                                                                                                                            h     x         hNVH J f/. N    XO~fp `.*n ~  f
R m#    #    #    pL N^NuNVH8 *n p . rnp .     (@J fp`  &l J. f fHy  N    XOp . rf+   fHy  N    XO.  g
 ;p`.#       tN    )M A $)H +L 8+L r(0. HL8 N^NuNV"n  i BB 8B p N^NuNVH8*n (n &m  l p ( 
~g
   g`\HTHUHSN  O `J l  g l   l   g.N    . BHmN    PO/N    XOHTHUN    PO`
HTN    XOp L8N^NuNVH< *n Hx Hx N    PO-@fHy  $N    XO-m  n(h  n( n)h   nrӨ  n "T	gX"T
gP"TgH@"TfFHx Hx "N    PO$@JfHy  HN    XO&j B r"Ӫ  n!J )A ` B `B r)A  n h |  
`B B  n h |  
/./. N    POL< N^NuNVH8|
*y    =USFJFo 0.UfK9    g      (|    Jg  Hx Hx N    PO&@Jgl l /( N    XOJf4B/, N    POHx Hx  l /( N    O HSN    XO`$ k R HS l /(  l  h  P PNPO- 9   g \    - (|   Jg D      f|#   r     `  `  ~#  ` B  9  9  fJf
J9  g      Hx Hx N    PO&@Jg   l /( N    XOJf4B/, N    POHx Hx  l /( N    O HSN    XO`T k   R  k R  k   R  k BR  k BR HS l /(  l  h  P PNPO  ` 9  g|g |g p L8N^Nu  @(#)pi.c 1.21 88/09/03 SMI                                p                      s               \        n      6                  n      v  }      |                        keyboard not connected
 no mouse power jumper on CPU parallel port
 zsioctl: can't allocate reply block piioctl: can't allocate TCGETS response pi pi ldterm ttcompat        P   >  7P   F  7P   L  5P   ~  7P     @     P     @     P     )P     P     P  l  @    #P    <P    3P    -P    2P    4P    @     >P  ^  4P  l  @  r  >P    -P    5P    P    P     7P  4  4P  J  P  \  <P  t  !P    2P    P    P    7P    @    @  
  @    @    @     @  ,  @  6  @  :  @  H  4P  `  P  r  <P    !P    2P    @    @    @    @     @   8  @   P  @   d  @   h  @   p  @   x  @     @     @     @     @     @     @            
                          $          ,     6   4     |   =         E         O         S         Y         `          i         r         z      \                                                                                                                                	                                   (        /         5        @        H       P        Y        b         m       v                              <                                                                                                             
                          !        *        2        ;        E       P        X        b       j     n  t        ~        _nbuf _rootvp _piioctl _rootdev _printf _piwput _pirinit _sccsid _bclnlist _qs _file _nproc _piprobe _whichqs _pilast _piopen _fbdev _runin _start_piscan_clock _dumpvp _canput _nchrdev _panicstr _consdev _noproc _pimodlist _kbddevopen _consvp _physmem _piwinit _peek _scb _boothowto _putctl1 _nfile _spl5 _procNPROC _runout _piintr _selwait _pidhash _clkpiscan _piclose _nblkdev _rconsvp _qreply _pidriver _runrun _bufhash _mousedev _freemsg _splx _allocb _piaddr _maxmem _pisoftc _rconsdev _fileNFILE _freeproc _proc _flushq _wantin _panic _iopbmap _dumplo _allproc _zombproc _bfreelist _kbddev _bufalloc _piinfo _pim_info _bufchain _curpri pecvp _nbuf _nfsread _nfs_strategy _rootvp _exit _xdr_attrstat _page_sub _nfs_ioctl _rootdev _nfs_link _nfs_purge_caches _printfhandle _nfs_validate_caches _printf _pvn_vptrunc _nfs_realvp _dnlc_remove _nfs_inactive _nfs_remove _bclnlist _kzero _lbolt _xdr_writeargs _kmem_alloc _qs _pvn_kluster _nfs_cache_blown_f./share/sys/sun2/OBJ/pr_plngrp.o                                                                       444       0      12          745  4424711437  11563                                                                                                                                                                                                                                                                                                                                                                             0       `           NVH *n .. //. N    PO - rg&rgp L N^Nuro
 n |  p`ro n A p`NV n  ( rgrgp N^Nup`p`NVN^NuNV  Hn /.  n  P h NPON^Nu    @(#)pr_plngrp.c 1.15 88/06/20 SMI              P                              $          +         ?      `   S         b          }_sccsid _cg8_groups _cg4_groups _bzero _pr_set_plane_group _pr_get_plane_group _pr_set_planes _pr_available_plane_groups  uipc_mbuf.o     ˆ  
./share/sys/sun2/OBJ/sc.o                                                                              444       0      12        16501  4424712173  10220                                                                                                                                                                                                                                                                                                                                                                         
                 NVH0 *n (m "f(m $"f(m hHTN  XO 9    Ѐ" Ё/ HUHzN    p L0 N^NuNVH0*n  . Ѐ" DЁЁ    (@Hm N    XO~g;|g mg gp `N~()M )|  
 )|    B $B ,BHTN  POB  9    Ѐ" Ё/ HTHz N    pL0N^NuNVH n .(        mHy  #N    XO/.  " ҁЁA    p NXO(@"fHy  GN    XO n 0( HЀ" DЁЁ    )@ "ҁށ G   "n "Q#P pLN^NuNVH<*n (m $0- HЀ" DЁЁ    &@.-    $k     mHy  tN    XOHU"ҁށA     px NXOJ g l  ( @  l  h  ` , ~Ї@ p L<N^NuNVH< *n (m &m $m  +  @  / N    XO-@J 8g(J @f"J $f)M $` l (!MB)M (r%A @/.N    XOp L< N^NuNVH< *n "
g  Hx# N    XO-@(m J ,f*l $"
f/.N    XO`  &m r)A ,$k 8'J 0"
fB ,/.N    XO`  HUHR m  h NPOJgX m !M r)A ,A f*0-    f 0-  fHSN  XO/.N    XO`0HSN    XO/.N    XO`HSN  XO/.N    XOp L< N^NuNVH<*n Hx# N    XO-@.
f/ N    XOHy  N    XO(m $0, HЀ" DЁЁ    &@ -    -@HU" ҁЁA    p NXO$@-m 0f/.N    XO`  %m H ~ , j 0( H. mHp     A    R  n    g A    R  G    "n ) ѐHR j  h NXOHx HRHSN  8O , gF~fHx BHS j  h NO `(~f"Hx BHS j  h NO HRHSN  	PO/.N    XOp L<N^NuNVH0~ *|    `(    g(m 0,   P g~HUN  XOK 9    Ѐ" DЁЁ    e L0N^NuNVH< *n (m $0, HЀ" DЁЁ    &@-m 0 -    -@HU" ҁЁA    p NXO$@ n+h  8B 0B ,'j $B @HRa 4XO/.N    XOJ $fHSN  jXO`
HRa XOp L< N^NuNVH<*n (n .. z $m ,< B@0*   g$<   "9    SJnSJnJfB 
    "<  N    / Hy  N    POHx HUN  POHUN  jXOp` LBj p(r 5|   Hx @HxaHUN  

O Jg
BBj ` %l  0, F@5@ xJg
  |   ,    f  5D G p , |A  0 f4, f.vp /  
    "<  N    / Hy  N    O | ` p / Hx HUN  
O JgR`
Rp ep f.Jgp `THUN  
dXOJf /- N  
 XOJf p `.|m n 
    "<  N    / Hy  N    POpL<N^NuNVH8*n (m &m J, fh0+   g 
    "<  N    / Hy  "` 
    "<  N    / Hy  NN    POHx HUN  POHUN  jXO`  B, ~ >+ F  0+   gL/p 0+ /  
    "<  N    / Hy  iN    O Hx HUN  POHUN  jXO`  0+   
gX0,   gp 0, Ь A     S`.Jl gR`$ 
    "<  N    / Hy  N    PO  /- N  
 XOJfB`Hx /HU m  h  h Np L8N^NuNVH8 *n (n &l J, gL0,    r/  + " ҁЁA   /0  
    "<  N    / Hy  N    B, p L8 N^NuNVH "n ..  i | `2z :(    fp `" f(<   "9    SJnRmpL N^NuNV.*n Hx Hy B@HUaO Jg6 
    "<  N    / Hy  N    POHx HUN  POp`p *nN^NuNVH0*n >. . (m Hx Hy B@HUa  O Jg( 
    "<  N    / Hy  N    POp`&:, 0   r 2gp`pE9@ F p L0N^NuNVH0 *n (m Hx Hy B@HUa O Jg( 
    "<  N    / Hy  N    POp`"0,     g    p`p , L0 N^NuNVH0 *n (n ,  l  (  @  / N    XO-@(m  l     ,g/ N    XOp`*Hx p 0, / HU l  h NO /.N    XOp L0 N^NuNV"n  i 0( F@  N^NuNVH0 *n (m  l J ,gHx BHU m  h  h Np L0 N^NuNVH0*n .. (m Jg$ 
    "<  N    / Hy  .N    PO9|  ,<  >"9    SJnBl ,<А "9    SJnp L0N^NuNVH&n (k G z ~ `rlx RHx HTa PO, l~gzHx HTa POJgp`0HLN^Nu      @(#)sc.c       1.69 89/02/13 Copyr 1987 Sun Micro    R           $     P      S           6      8  
   
d  	    N    
      sc scslave:  unknown type in md_flags
 scslave:  md_flags scsi type not configured
 scattach:  unknown type in md_flags
 scgo:  queueing error1
 sc%d:  SCSI bus continuously busy
 sc%d:  invalid cdb size, using size= %d
 sc%d:  sc_cmd: unrecoverable errors
 sc%d:  scsi bus error (unwanted interrupt)
 sc%d:  spurious interrupt
 sc%d:  SCSI bus error, icr= %x  resid= %d
 sc%d:  odd length without xfer
 sc%d:  %s%d, unit offline
 sc%d:  sc_cmdwait: no interrupt request
 sc%d:  sc_cmdwait: no REQ
 sc%d:  sc_cmdwait: no REQ
 sc%d:  resetting scsi bus
        sd sc      $  @   ,  QP   B  _P   r  FP   ~  	P     @     @     @     QP     _P    $P    @    VP  0  P  D  @  J  VP  j  FP  ~  P    FP    $P    @    VP    P  \  JP    KP    JP    KP    KP  Z  @  f  KP  r  #P  ~  KP    @    KP    JP    KP    @    VP    FP    P  6  KP  `  ]P  j  0P    ,P    dP    @    @    KP  0  FP  T  @  `  P  t  FP    FP    P    +P    @  j  `P    FP    @P    @    
P    @    @    @  >  @  Z  FP  f  @P  n  @  t  
P    @    @    @    FP    @P    @    
P  >  FP  J  @P  R  @  \  FP  h  @P  p  @  v  
P    @    @    FP    @P    @    
P    @    @  	"  =P  	<  FP  	H  @P  	P  @  	V  
P  	h  @  	  P  	  FP  	  @P  	  @  	  
P  
F  `P  
  FP  
  @P  
  @  
  
P  
  @  
  FP    @P    @    
P  x  FP    @P    @    
P    JP    KP  <  KP    FP    @P    @    
P    `P  
  `P   2  @   6  @   :  @   >  @   B  @   F  @   N  @   R  >P   V  @   Z  4P   d  @   h  @   l  @   p  @   t  @   x  @   |  @     @     @     @     @            
     
             &     N   1         9     j   B         K        S     
d   _          f          n          s     
   {                                                  
         R                                                                                        @                  #        +        3        <         C         O        Y        c        k     8  s        |                                                            $               

                                                                           $         *         2        ;         A      @  M     6  W       _       i     
  s         |                                                             L               	                                                                   	                        $       /        8        B         K         U        _     
   m        u        }_nbuf _sc_putbyte _scsi_unit_subr _sc_dmacnt _rootvp _sc_idle _rootdev _scintr _sc_cmdwait _peekc _printf _nsc _sccsid _bclnlist _lbolt _qs _cp_time _nproc _scsubr _scprobe _whichqs _avenrun _domainnamelen _hostnamelen _runin _scwatch _cdb_size _scslave _dvmasize _hostname _dk_time _tz _dk_bps _dumpvp _nchrdev _mbugo _scsi_ntype _boottime _panicstr _noproc _sc_cmd _physmem _scstart _biodone _dk_read _scgo _fbobmemavail _boothowto _dk_xfer _scpoll _dk_seek _sc_wait _scinfo _tick _procNPROC _phz _tk_nout _runout _scattach _pidhash _selwait _DVMA _sdinfo _nblkdev ldivt _domainname _scustart _scdone _sc_deque _scdriver _scctlrs _tk_nin _runrun _bufhash _splr _splx _cpu _sc_reset _sc_getbyte _maxmem _sc_off _hz _freeproc _proc _wantin _time _panic _iopbmap _kernelmap _dumplo _allproc _zombproc _bfreelist _dk_busy _bufalloc _timeout _cpudelay _bufchain _sc_getstatus _curpri _dk_wds    b./. ,/. (/. $/.  /. /. /. /. /. a O $`6/. ,/. (/. $/.  /. /. /. /. /. /. HztN    O ,-@ nSh XlHy  .SN    XO n0(   g x;$Sh  nJh Xf&h N n0( N  gh./share/sys/sun2/OBJ/sc_conf.o                                                                         444       0      12         1647  4424712177  11216                                                                                                                                                                                                                                                                                                                                                                                    t           `@(#)sc_conf.c 1.22 88/09/12 SMI                                                                                          sd st      4  P   8  P   <  P   @  P   D  P   H  @   L  P   P  P   T  P   X  P   \  P   `  @            
      4         (             '         1          9          A      $   T         [      |   g          s      ,   {                                                     0                                                                        0                                    !        +_nbuf _scsi_unit_subr _nsc _sccsid _bclnlist _stintr _sdintr _scsi_disre_enable _sdisk _scsi_ntype _scsi_debug _nsdisk _stape _scinfo _stunitptr _sdunitptr _sdinfo _nstape _stmkcdb _sdmkcdb _scctlrs _bufhash _stattach _sdattach _stunits _sdunits _bfreelist _bufalloc _ststart _sdstart _bufchain xy.o s.o  x  ˛  zs_asm.o  x    ˜  
zs_async.o      ˝  zs_common.o  p NXO./share/sys/sun2/OBJ/sd.o                                                                              444       0      12        50311  4424712235  10215                                                                                                                                                                                                                                                                                                                                                                         -(  X      `      p  (NV n 0( H" ҁЁЁ    N^NuNVH8>. 
0H|, " ҁЁЁ    (@ " Ё    *@&l - ehHT l  h  h NXOJ gHS J f>/Hy  /N    POHTHS k  h (NPOJg>Hx /,  l  h  h NPO`$J g`J gS J f0GHPN    XO 9    Ѐ" DЁ/ 0GHPHzN    p L8N^NuNVH<*n 0- H" Ё    $@0- H" ҁЁЁ    (@)M )m $ 9m  0- @r- 	r@  -    " ҁЁ    )@ B, | Bj B Bj Bj Bj Bj Bj Bj B B B B B Bj B B B*Hx &Hj @N    POHx @HRN    PO5|  @Bj B5|  V5|  F5|  J~%G Hx (/9    N    PO-@f(     "<  N    / Hy  /N    PO`  .V~-@%n BBBBHTN  O ~n Hx BBHx HTN  O B`@,  fP,  f ~,  g <H "9    . SJnR   l PBBBBHTN  O JfBBBBHTN  O Jf Hx $/.N    POHx $B .    / Hx HTN  O JfXHx Hy  0 .P/ N    O Jf| Bj `8 np (   ~g| Bj `| Bj `| 5|  Hx/9    N    PO&@-K.f&     "<  N    / Hy  0N    PO`@ V~&@BkHSHTN  RPOJgHSHTN  PO/.Hx/9    N    p L<N^NuNVH0*n (n | ~ Hx B     / Hx HUN  O Jfp`(RrmBBBHx HUN  O R~mp L0N^NuNVH<*n (n lھf$L| :< `0FQJFgp` HT 
    "<  N    / Hy  06N    |  p 0- " Ё    &@7l @7l BBk D7l F7l H7l J7l N7l P7l L7l VJk Vf0+ @k B7@ V0+ F J'@ z ` A0H0HC #h  "REE m m Jh mF~ >+ LJo
p 0+ Je~ m 0( H @    p 0+ J" DЁ"N     p L<N^NuNVH8*n &m I Hx HTN    PO     g2    g(    g   7 g    g
   < f m  `m 'M - HH,   눁,  . r,   ,  .   @ n  n  +n      fBm `(    g
    f;n  ` . r	;@ BHUHS k  h N. grop`p`p L8N^NuNVH<0. 
H~΀    l, " ҁЁЁ    *@"ށ    $GJ fp` `Jj f*Rj  9    Ѐ" DЁ/ 0n 
/HzxN    O J- f &. ~G ~'G | 5|  BBBBB0n 
/N  
^O JgJ*gD| BBBBB0n 
/N  
^O | BBBBB0n 
/N  
^O JgBj 0n 
/HzN    POp` | -j Hx $/.N    POB/.Hx $BHx 0n 
/N  
^O Jg| 5|  `NBj Hx Hy  0C .P/ N    O Jf| `" np (   ~g| `| Hx/9    N    PO(@-L.f* 
    "<  N    / Hy  0JN    POp`   V~(@| 5y  -\ BHTHx BHx 0n 
/N  
^O Jg/.Hx/9    N    .  g0`FBj HTHUa POJg /.Hx/9    N    .  fp`/.Hx/9    N    p L<N^NuNVH >. 
0H|̀    lD"ҁ܁܁    *FJ- g*0H|" Ё     @HΆCx  ) `pL N^NuNVH< 0. 
Hr" ҁЁЁ    &@0. 
Hr" Ё    *@E Hx# N    XO-@`r@Hx HRN    PO   fr	$/.N    XOn  5n 
 %n  %n  $%n   p --@n . rgL(k r%x;$ , x;$     0.  gp`p/ Hx /. /*   x;$/( N    O JfPHRN  XOHRN    XO. rgh.  gp`p/ Hx /* /*   x;$/( N    O Jg
r$-R`,Hx# N    XO-@ x;$ 0rÒ/.N    XOrÒ-R   g
HRN    XO.rL< N^NuNVH<*n 0-    -@    lV" ҁЁЁ    (@&l  ." Ё    -@0- ~Ю$@.- $A g>J, gJ f~HUN    XO`  J, g e+m  (HUN    XO`   n e d fp 0( `X n!J  n"(  N    ,  n"(  N     n!@  n ( Ш !@  np 0( DВ܀1F p 0+@ ( l  (  @  / N    XO* G ,-KHU/N    POHT l  h  PNXOHT l  h  h NXO/N    XOp L<N^NuNVH8*n (n 0-    " Ё    "@0- ~G A f0p , 9@ )m  )m $ Bl )~g  9|  `      g9|  `:0-    A  -h0 g0- ~rp g9| . `9| 
 ȷ g#K  ") N    #@  - $Щ )@ .-   r	 +  $l ` +  $)@ 9|  pL8N^NuNVH<*n p 0- " Ё    (@K Hx HUN    PO n >(     n ( HH-   눁-  n 0( H   b ArTf A0;N 0^ $ 6`"^@r)A  n pl h  n  ( r-   -  n  (   @  n  (    @  n  ( @  n !h   n  ( r	1@ ` 4r)A  n 0( rAl 1@  n  ( r-   -  n  (   @  n  (    @  n  ( @  n !h   n  ( r	1@ ` Hx 
HUN    PO n 0(  n ( HH-   눁- r)A  n 0( rAl 1@  n  ( r@  n  ( r  @  n  (   @  n  (    @  n  ( @  n  (    @  n !h   n  ( r	1@ ` ~)G  n pl h |   n  ,     !@  n 1|  Hx /, N    PO` r)A  n  p 1@  n pl h  n  ( r-   -  n  (   @  n  (    @  n  ( r	@  n !h   n  ( 1@ ` r)A  n  
p 1@  n 0( rAl 1@  n  ( r-   -  n  (   @  n  (    @  n  ( r	@  n !h   n  ( 1@ ` vr)A  n pl h  n  p 1@  n  ( r-   -  n  (   @  n  (    @ |   n  ( 8    !@  n 1|  ` r)A  n pl h | $  n  ,     !@  n 1| $ Hx $/, N    PO` ~)G  n 0( rAl 1@  n B  n Bh ` z~)G  n 0( rAl 1@  n  ,     !@  n 1|  &l BS7|   n 'h  ` *r<)A  n !h   n 0( rAl 1@ -  -   n  ( 1@ |  ` r)A Hx Hm N    PO n pl h  n  ( 1@  n !h   n  ( @  n  (    @  n $h 8j  ` tr)A  n 0( rAl 1@  n  ( @  n  ( 1@  n !h   n  (    g &-  -  ` r)A  n pl h  n  ( @  n  ( @  n  ( 1@  n !h  `  r)A  n 0( rAl 1@  n Bh p   !@ `  r)A  n pl h  n  ( r-   -  n  (   @  n  (    @ B-  n !h   n  ( 1@ `.r)A  n 0( rAl 1@ `7.
 GL<N^NuNVH< *n BBB.(m -l  n$h 0"
g 0* Hr" Ё    &@B  nJh mp2( F    + eJ fJ g     fJ+ f$     "<  N    / Hy  0jN    POBk Bk | B, B+r` + f(J f
| ` ~    f| r` + fb,  fZJ g$     "<  N    / Hy  0N    POHn HTHSN   O HTa >XOHx HTHU m  h N` + fJ g/. HTHSN  ` + fHn HSHTN  O + fHn HSHTN  O rg  + f"Hn HSHTN  O Bk Bk r`  + f@J f:| Bk Bk | `Pp 0+ -@p +-@kBk Bk `,/. /. HRHSHTHUN  vO Jgrgrg  7n nnJk gVSk     R HTa XOHx HTHU m  h NO Jg$     "<  N    / Hy  0N    POA f80,    f.B (0,   g/, N    XO`6/,  m  h NXO`$ , r	"* %A (/, N    XOl p L< N^NuNVH< *n (n &n $k     f
7|  ` f+ fv,  gn*  ff    o\ , S7@ r)A HTa XOHx HTHU m  h NO Jg      "<  N    / Hy  0N    PO` vR ,  g  p *   Srb  @0; N   f ` b f d f f     fHx /. HTHSHUN  O rg >| Jy  -pfHy  0/. HTN  +~p` `X`V`T| ` ,  g,  f,  g&Bk Rk 0+ y  -^o7y  -Z 7y  -\ `J f| + g"Hy  0/. HTN  +~| + ` f0+ Rk y  -Zl  0+ y  -pnJk o,  fHy  0/. HTN  +~O | HTa FXOHx HTHU m  h NO Jg(     "<  N    / Hy  1 N    PO`  p`  Rk 0+ y  -\l^0+ y  -boHy  1/. HTN  +~O /. HTN   :PO| Bk 9|  HTa XOHx HTHU m  h Np``Hy  1/. HTN  +~O | Bk Bk | *     f&y   -foHx /. HTHSHUN  rg 0p L< N^NuNVH0 *n (n /. HTN   :PO| 9|  /,  l  h  h $NXOp L0 N^NuNVH8*n (n -  g$ 
    "<  N    / Hy  1$N    PO/. HUHTN   O | &l , g    pg
HTN  *RXO n )P p +   9@ k p + rr + t婀r + ቀr + )@ J g f)m  p L8N^NuNVH8*n (n &n ,, =n k  gk 
 g
k . f n  f Jl g  ~ `   Ѐ" ҁЁ 4f f   G"ҁAf0( R@1@ S@y  -do> G"ҁAf0( H/ /     "<  N    / Hy  1AN    O  G"ҁAf0( y  -`mdއ"ҁށ GAfBh =| `TR0, Hm Jl  g  0, H @Rl  Ѐ" ҁЁ) f"ҁAf1|  `  n f  Jy  -fg  , g  /. HSN   :POn  f&| /     "<  N    / Hy  1o`$| /     "<  N    / Hy  1N    O 7|  'F HSa "XOHx HSHU m  h Np`pL8N^NuNVH8 *n (n &n -  g: 
    "<  N    / Hy  1N    POHSHUHTN   | p `HSHUHTN   | pL8 N^NuNV.*n A C "A C 0< "Q+n  +m  ;m  m   p *nN^NuNVH0 *n (n A C "A C 0< "Q n   )l  9l l p -9@ p L0 N^NuNVH 0. 
H~΀    mp`J n  (   gp`6"ҁށށ    *G/. Hy    Hx 0n 
/Hm \HzN    L N^NuNVH 0. 
H~΀    mp`H n  (   gp`4"ҁށށ    *G/. Hy    B0n 
/Hm \HzfN    L N^NuNVH<.. *n 0. 
H|̀    l| " ҁЁЁ    (@ " Ё    &@. zE  A(r
\f A0;N J(n > VH+ f .
gJ fp`  l  (  @  / N    XO-@. ~rA  -hp 0h gz`z Jg. ~rA  -h0h `. ~rFA  -h0h /.N    XO*` -M l /( N    XO n  n"l 1i  p +~g~g n1|  `
 n1|   n1|  ` ,A @0< "M"Q2` A @0< "M Q0`  +j  *` %m  $` -Mp +~g~g n1|  `
 n1|  Hx Hy  1 .~&Ї/ N    O  n1|   n"l 1i   l /( N    XO n!@  n"l !i   n"l !i   l J g n"l "i !i  "` nB "Hx  l /( /.N     n"l 1i  6 n"l 1i  8`  z  A  C #h  "R~l  ` l  (  @  / N    XO-@z  A  C #h  "R~m/.N    XO`  -Mp +: n!k   nk   nk B+B B+B+`DHUHSHT0n 
/N  %`2p`.@@dz@:d~@&d@
d@dt@dds@d{&ddwdp L<N^NuNVH8 *n (n &n B +    g .  +   g ( . `  .  m  (  @  / N    XO-@/./+ /+ /+ Hx 0n 
/a `O -@/.N    XO` 
 .  m  (  @  / N    XO-@/./+ /+ /+ Hx 0n 
/a O -@/.N    XO`  .  m  (  @  / N    XO-@/./+ /+ /+ Hx 0n 
/a O -@/.N    XO` Z .  m  (  @  / N    XO-@/./+ /+ /+ Hx 0n 
/a XO -@/.N    XO`  .  m  (  @  / N    XO-@/./+ /+ /+ Hx 0n 
/a  O -@/.N    XO`  .  m  (  @  / N    XO-@/./+ /+ BHx 70n 
/a O -@/.N    XO` T . , f  p` J .  m  (  @  / N    XO-@/./+ /+ /+ Hx 0n 
/a <O -@/.N    XOHx $/+ /, N    `   . , g  Hx BB/+ p 0/ 0n 
/a -@`   .  m  (  @  / N    XO-@/./+ /+ /+ Hx 0n 
/a O -@/.N    XO`Hp`Pp 0r7bA ,r
TfA0;N "rPPz7
 Jgp`p L8 N^NuNVH<>. 
*n 0Hr" ҁЁЁ    (@0Hr" Ё    $@Hr΁Gx  .  l
Ю  op`   "* N    Ѯ J  -rgLB/,  l  h  h NPOBBBBHTa 4O JgBBBBHTa O Jgp`FB  -r    /. /. /
Hx 
HTa O Jg/. /. /
Hx 
HTa Jgp`p L<N^NuNVH0 *n (m "m B) l  l  l    @     0d p    @  -v)   ) p L0 N^NuNV.  bp A  .J f 9  /`p A  . 0 N^NuNV."n . p )rgrg4rg 9  /`N ,dp A  .>J gp A  .>`$ &dp A  -J gp A  - 0 ..N^NuNVH8 r-A n 0(    " Ё    &@*k 0( rI +rf R n h  l0( HA  /N-p ` n h . f
-|  1`-|  2 n (  fB-k  "+ N    /. /. n 0( rraЁ/  .     "<  N    / Hy  2N    O JgJ fHy  2N    XO`/./+ Hy  2 N    O m p -   / a XO/ p -   / Hy  28N    O J.g(p ./ HSa PO/ p ./ Hy  2SN    `Hy  2lN    XOp L8 N^Nu    @(#)sd.c       1.90 89/03/31 Copyr 1987 Sun Micro    
                   2p  2y  2  2  2  2  2  2  2  2  3  3  3  3  3  3  3  3#  33  3H  3]  3n  3y  3  3  3  3  3  3  3  3  4  4  4  45  4=  4M      4Z  4[  4d  4t  4  4  4  4  4  4  4  4  4  4  4  4  4  4  4  5  5#  53  5>  5J  5\  5l  5v  5  5  5  5  5  5  5  5  6  6  6  6  61  6A  6O  6U      6i  6r  6}  6  6  6  6  6  6  6  6  6  7  7  7$  75  7>  7D  7L  7P  7T  7a  7e      7v  7  7  7  7  7  7  7  7  7  7  7  7  7  7  8  8  8  8  8'  81  8;  8G  8O  8W  8\  8f  8q  1  1  sd%d:  sdtimer: I/O request timeout
 sd%d:  no space for inquiry data
 EMULEX sd%d:  no space for disk label
 sd%d:  <%s>
 EMULEX sd%d:  no space for disk label
 sd%d:  SCSI bus failure
 sd%d:  rezero failed
 sd%d:  single sector I/O failed
 sd%d:  single sector I/O failed
 recoverable failed, no retries retry sd%d:  retry failed
 restore failed sd%d:  request sense failed
 sd%d:  warning, block %d has failed %d times
 sd%d:  reassigning defective block %d
 sd%d:  reassigning failing block %d
 sd%d:  reassign block failed
 sd unknown key unknown error write/verify unknown cmd sd%d%c:  %s %s 
 , blk %d (rel. blk %d)
        sense key(0x%x): %s ,  error code(0x%x): %s
 
   no sense no index no seek complete write fault drive not ready drive not selected no track 00 multiple drives selected no address no media loaded end of media      I.D. CRC error hard data error no I.D. address mark no data address mark record not found seek error DMA timeout error write protected correctable data error bad block interleave error data transfer failed bad format self test failed defective track  invalid command illegal block address aborted volume overflow bad argument  no index seek incomplete write fault drive not ready drive not selected no track 0 multiple drives selected lun failure servo error       ID error hard data error no addr mark no data field addr mark block not found seek error dma timeout recoverable error soft data error bad block parameter overrun synchronous xfer error no primary defect list compare error recoverable error  invalid command invalid block illegal command  invalid cdb invalid lun invalid param list write protected media changed reset mode select changed no sense soft error not ready media error hardware error illegal request unit attention write protected blank check vendor unique copy aborted aborted command equal error volume overflow miscompare error reserved fatal timeout EOF EOT length error BOT wrong tape media test unit ready rezero <bad cmd> request sense format <bad cmd> <bad cmd> reassign read <bad cmd> write seek <bad cmd> <bad cmd> <bad cmd> <bad cmd> <bad cmd> <bad cmd> inquiry <bad cmd> <bad cmd> mode select reserve release copy <bad cmd> mode sense start/stop          tP   J  tP   \  $P     @     
P     eP     gP    P  :  $P  T  tP    P    IP    IP  2  rP  8  P  H  tP  T  RP  \  @  b  
P    @    @    P    @    @  6  IP  H  MP  V  @  h  @  v  %P    rP    P    tP    RP    @     
P    @  ,  @  <  rP  B  'P  p  MP  ~  @    @    tP    RP    @    
P  .  $P    )P     aP  .  IP  P  3P  f  tP  v  $P    gP    P    @    @  <  @  X  BP  z  IP    @    @    %P  	  rP  	  P  	   tP  	,  RP  	4  @  	:  
P  	X  @  	t  @  	  rP  	  'P  	  rP  	  'P  	  rP  	  'P  
  3P  
  tP  
<  $P  
  tP  
  $P  
  `P  
  7P  
  bP  Z  8P  j  @  t  P    8P    `P    bP     eP  6  3P  J  tP  b  $P    2P    2P    aP  
  P  
P  `P  
f  ;P  
  bP  
  $P  4  @  r  P    $P    IP  z  IP  j  MP    IP     MP  Z  MP  v  IP    MP  T  IP  v  $P    {P    tP    RP    @    
P  N  tP  Z  RP  b  @  h  
P  x  @    @    @    @    @  ~  @    tP    RP    @     
P  ,  P  ^  P    tP    RP    @    
P  v  @    @    @    @    @    @    @    @    @  :  @  H  @  ^  @  j  @    tP    RP    @    
P    @    @    @    @    @  8  @  D  @  r  @    @    @    tP    RP    @     
P  0  @  Z  @  H  @  j  tP  v  RP  ~  @    
P    @    @  0  @  J  tP  V  RP  ^  @  p  tP  |  RP    @    
P    tP    RP    @      
P     @   $  @     3P  !   tP  !,  ]P  !D  CP  !h  3P  !  tP  !  ]P  !  CP  !  3P  !  tP  "
  $P  "|  `P  "  @  "  @  "  @  "  `P  "  |P  #  @  #  P  #  |P  $^  P  $  `P  $  bP  %@  @  %  `P  &  bP  &0  `P  &f  bP  &  `P  &  bP  &  `P  '  bP  '8  `P  'n  bP  '  `P  '  bP  '  `P  (2  bP  (F  NP  (  `P  (  bP  )^  tP  )x  $P  )  P  )  @  *  @  *
  MP  *  @  *  @  *  @  *  @  +"  @  +6  @  +H  @  +\  @  +n  @  +  $P  +  @  +  @  ,  @  ,(  P  ,P  tP  ,\  RP  ,d  @  ,j  
P  ,  @  ,  
P  ,  @  ,  
P  ,  @  ,  
P  ,  @  -  
P  -  @  -  
P   ~  @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @    @    @  
  @    @    @    @    @  "  @  &  @  *  @  .  @  2  @  6  @  :  @  >  @  B  @  F  @  J  @  N  @  R  @  V  @  Z  @  ^  @  b  @  f  @  j  @  n  @  r  @  v  @  z  @  ~  @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @  
  @    @    @    @    @    @  &  @  *  @  .  @  2  @  6  @  :  @  >  @  B  @  F  @  J  @  N  @  R  @  V  @  Z  @  ^  @  b  @  f  @  j  @  n  @  r  @  v  @  z  @  ~  @    @    @    @    @    @    @    @            
                  &         .     -b   ;     -\   L     )6   T     -h   _         h     %   u          }     -(                                                     0                           .        .>        -                          "         )        2        A        N        U         ^        h     -Z  x      @                                                   $                               -^                                :                   
              -f           )     	  1         8         B        P        [         e        n     *  ~                    /N                                                                                                                        
             !R         *         0     *R  @      @  L       U     
^  \       j     !  s        {             +~                       R       *                                  :                                        -v                     v          $        .        4        <        K        Q        Z        e         n        v                            -p                                       -d       -`                                          
          !        )        1_nbuf _scsi_unit_subr _sdstrategy _rootvp _sd_restores _sd_max_restores _sddump _sdwchkmap _rootdev _sdioctl_cmd _printf _sccsid _sdintr_ran_sense _bclnlist _lbolt _rmalloc _qs _sdintr _cp_time _mbudone _sd_key_error_str _sd_emulex_error_str _sd_adaptec_error_str _file _nproc _whichqs ulmult _avenrun _domainnamelen _hostnamelen _runin _strncpy _dvmasize _sd_max_retries _hostname _dk_time _sdisk _bcmp _tz _rmfree _sdtimer _dk_bps _dumpvp _nchrdev _sd_max_busy _boottime _panicstr _noproc _sdsave_cmd _physmem _biodone _nsdisk _sd_repair _dk_read _sdsize _sleep _as_fault _fbobmemavail _boothowto _disksort _dk_xfer _sd_print_error _nfile _simple _sd_cmds _dk_seek _untimeout _physio _tick _procNPROC _phz _tk_nout _runout _bzero _sdunitptr _pidhash _selwait _DVMA _bcopy _nblkdev _sdwrite _sdintr_sense ldivt _sdintr_adaptec _domainname _sdmkcdb _sdcmd _sd_fix_block _sdioctl _tk_nin _runrun _sderrmsg _bufhash _minphys _getlabel _sd_print_key _splr uldivt _splx _sdopen _cpu _wakeup _maxmem _hz _sd_adaptec_keys _sdattach _uselabel _sderror _fileNFILE _freeproc _proc _wantin _sdrestore_cmd _time _iopbmap _kernelmap _sdunits _dumplo _sdintr_ran_reassign _allproc _zombproc _sd_retry _bfreelist _dk_busy _getdevaddr _sdread _sd_fails _sd_max_fails _bufalloc _biowait _timeout _cpudelay _sdstart _bufchain _curpri _dk_wds + /+ /+ Hx 0n 
/a O -@/.N    XO`Hp`Pp 0r7bA ,r
TfA0;N "rPPz7
 Jgp`p L8 N^NuNVH<>. 
*n 0Hr" ҁЁЁ    (@0Hr" Ё    $@Hr΁Gx  .  l
Ю  op`   "* N    Ѯ J  -rgLB/,  l  h  h NPOBBBBHTa 4./share/sys/sun2/OBJ/sm.h                                                                              444       0      12           16  4423623030  10125                                                                                                                                                                                                                                                                                                                                                                      #define NSM 0
.h nf.    v  spec_subr.o     w  
spec_vfsops.o w    x  st.o      y  
str_conf.o     z  str_io.o       {  
subr_prf.o      |  
swapgeneric.o |  0  }  
sys_process.o }  @  ~  tm.o  0  P    tty.o s.  d  ˀ  
tty_flow.o d  |  ˁ  tty_ldterm.o  ˁ    ˂  	tty_pty.o     ˃  ufs_inode.o     ˄  ufs_vnodeops.o     ˅  uipc_mbuf.o     ˆ  
uipc_socket.o ˆ     ˇ  uipc_syscalls.o     ˈ  vers.o       ˉ  vm_as.o   4./share/sys/sun2/OBJ/spec_subr.o                                                                       444       0      12         5505  4424710660  11561                                                                                                                                                                                                                                                                                                                                                                             8      X           NV  Hx 0n 
/BN   N^NuNV./. /. 0n /N  O *@Jf J g n     f/N    XO*@`rHx VN    XO*@+|     J gV x;$/( DHn/.  n  h  h NO Jf0AC :#h  "AC B#h  "AC J#h  "+n  &;n  0;n   ;|  +M "J gT n Rh  n +h   n +h   n     f  0n /a XO+@ * m *Rh  m * h +h 6 6`pr+A B A +H *0. H       lD0. H   " ҁЁA   -p g 0n / nNXOr	+@ 6 6fB 6HUN  \XOXM 
*nN^NuNV./. B0n 
/N  O *@Jf^Hx VN    XO*@+|     +n      f0n 
/a XO+@ *B &;n 
 0;n 
  ;|  +M "B HUN  \XOXM 
*nN^NuNV   n 0( 0H   2( 0   Ёr @    "n " n 0( 0H   2( 0   ЁrA    !  p N^NuNVB n 0( 0H   2( 0   ЁrA    -p `^ . fFJf4 n 0( 0H   2( 0   Ёr @    "n `  n"n `-n n-PJfp N^NuNVH >. 
| 0H   r ЁrA    "p `i 0f )  fܩ R"Q"	fp JVD L N^NuNV.>. 
0H   r ЁrA    "p ` i 0f )  f0) .  gp`"Q"	fp ..N^NuNVH0*n -m  n>( 00H   r ЁrA    (p `&J Rol 0fA "Hg )  f 	`(T"fp L0N^NuNV.0. H   r . ЁrA    *p `"0- 0n fC  )  fRi  	`*U"
fp *nN^NuNV.0. 
H   r . ЁrA    *p `x0- 0n 
fl -  fbJ &gHJ gB - & gDJ &g2J g, n "m & )  f//- & m & h  h hNPOJfJ &fJ fRm  
`*U"
fp *nN^NuNVH *n >. HnN    XOm . gAC :#h  " gAC B#h  " gAC J#h  "p L N^Nu      @(#)spec_subr.c 1.27 88/12/05 Copyright 1988 Sun Micro       @   0  @   X  ,P   h  P   r  .P  l  P    -P    @    @    P    .P  J  @    "P    "P    "P  :  "P    "P    "P  Z  "P    "P    "P    P        &                    &         ,         4         =          E         M         W         [         b         k         r        {                                                 l                                                                                                           #       .        6      @  >     \  E        O        U       \        d        l        u                                                                  _other_specvp _makespecvp _specvp _nbuf _rootvp _rootdev _bdevvp _sccsid _bclnlist _qs _nproc _whichqs _runin _slookup _smark _dumpvp _nchrdev _panicstr _noproc _stillopen _physmem _boothowto _kmem_zalloc _sunsave _procNPROC _runout _pidhash _selwait _nblkdev _uniqtime _runrun _bufhash _isclosing _maxmem _stable _ssave _freeproc _proc _sfind _wantin _dumplo _allproc _zombproc _bfreelist _fifosp _bdevsw _spec_vnodeops _bufalloc _bufchain _curpri iscompare error reserved fatal timeout EOF EOT length error BOT wrong tape media test unit ready rezero <bad cmd> request sense format <bad cmd> <bad cmd> reassign read <bad cmd> write se./share/sys/sun2/OBJ/spec_vfsops.o                                                                     444       0      12         3452  4424710664  12131                                                                                                                                                                                                                                                                                                                                                                            X     (          @NV  Hy  N    XOp N^NuNVH8 J  0f\R  0*|    (U`8G 0  f*    f J gBHx BBHS k  h \NO (T"fXM   @eB  0p L8 N^NuNV  pN^NuNV| n Jf   y         fN 9       fB y    0( @  y    2( H   ၀ArA=@Hy   /. N    PO``/. Hy  N    PO=@g   y         f6 y    h f*Hy  N    XOHn|N    XO. y|g. Y|f n | b `L n J( f| 0  n B(  n J( f| b  n B( /. Hy  &N    PO=@fp`0n/N    XO n  p N^Nu                             spec_badop swap Swapping on root device, ok?  swap           @     $P   "  @   *  @   0  P   x  P     @     P     *P     P     P     P     P     !P    @    P  "  P  (  *P  2  P  >  @  D  P  P  "P    @    P    P      @     @     @     @     @     @     @     @            
                            #          +         5         9          F         M         V         ]         e         n         x                                                                                                                                                               )        /         7         =        E         L        T        ]        g       r                                        _nbuf _rootvp _rootdev _bdevvp _printf _bclnlist _qs _getblockdev _nproc _whichqs _runin _dumpvp _nchrdev _panicstr _noproc _spec_mountroot _spec_sync _physmem _spec_swapvp _rootfs _boothowto _procNPROC _runout _pidhash _selwait _nblkdev _spec_badop _runrun _bufhash _maxmem _stable _freeproc _proc _strcpy _gets _wantin _panic _dumplo _allproc _zombproc _bfreelist _spec_vfsops _spec_vnodeops _bufalloc _bufchain _curpri       &                    &         ,         4         =          E         M         W         [         b         k         r        {                                ./share/sys/sun2/OBJ/st.o                                                                              444       0      12        62753  4424712312  10246                                                                                                                                                                                                                                                                                                                                                                         ;  P            	  `NV n 0( H" ҁЁЁ    N^NuNVH8>. 
|, " ҁЁЁ    (@ " Ё    *@&l -  Fm  HT k  h NXOJ oLS J fB/Hy  BN    POHTHS k  h (NPOJgB B- FHx HS k  h NPOB  9    Ѐ" DЁ/ 0GHPHz@N    `0GHPN    XOp L8N^NuNVH< *n 0- H" ҁЁЁ    (@0- H" Ё    &@)M )m $ 9m  0- @r- 	r@  -    " ҁЁ    )@ B B B, B B B B+ IB+ JB '|;  B  B+ OB |  MB+ LB+ FB+ GBk 87|  BBk DHx/9    N    PO$@"
g 
Vr&p L< N^NuNV n B 0!h   (!h  ,p . 1@ :|  MB( Fp N^NuNVH<. ~. " ҁЁЁ    (@ " Ё    *@- 9Jfp` &-U&UJ- Gg-  GgJ, fHx $HSN    PO|  G-  Gf~J- Jg.  fJ  f J- JgJ  gJ g/Hy  B=N    PO;|  8|  FBHx 0n 
/N  VO Jf B-  Fg 8|  G|  MB  B ;|  8|  FBB0n 
/N  VO Jf J- Ffp ;@ 8p` 8-  Gg-  Gf*|  FBHx 0n 
/N  VO Jf
-  Fg |  M|  F 9    " ҁЁ/ 0n 
/HzVN    O Hx 0n 
/N    PO0n 
/Hz0N    PO|  FBB0n 
/N  VO |  FBB0n 
/N  VO -  Ffr|<|  F`P SJo`|  F 9    / 0n 
/HzN    O Hx 0n 
/N    PO0n 
/HzN    POBB0n 
/N  VO JgHx $HSN    PO-  Fg-  FfHx HUa :POp ;@ 8p` -  Gg$-  Gg|  FBHx 0n 
/N  VO -  Gg-  Gf L|  M` B|  FBHx 0n 
/N  VO Jf *|  FBHx 0n 
/N  VO Jg  -  Ff         fpBHx 0n 
/N  VO JgVB/,  l  h  h NPO|  FBB0n 
/N  VO |  FBHx 0n 
/N  VO $|  >`        fBHx 0n 
/N  VO $|  >r`  -  FfHx HUa POB 4p ;@ 8p` b/Hy  B]N    POHx HUa POB- Gp ;@ 8p` 4$|  ;* HH/ Hj Hk N    O JgrE @  >re$|  >* HH/ Hj Hk 
N    O Jg@J, f/Hy  BN    POE @|  FBHx 0n 
/N  VO J $fE @+J j ) G0* *H+@ $+j , 4J $f+|    $-  Gg|  FBHx 0n 
/N  VO  - 4  g< `z |  | 
 Fp ;@ 8B  9    Ѐ" DЁ/ 0n 
/HzN    p L<N^NuNVH0>. 
|̀    d. " ҁЁЁ    *@ " Ё    (@J fp` R m  (  @  / N    XO* ,  Fo$,  FfJ f~)G /N    XOp` |  F/N    XO/. 0H/ a PO( g ` .  g8J, Hg"/Hy  BN    POHx HTa vPOp
`     f|  IJ  fJ f 4J, Mg  4B, MB, OB, LB  B B  , 4  g 8|  L` P,  Lg F , 4  	f :J  fJ g/Hy  BN    POBHx 0H/ N  VO BHx H/N  V|  L` ,  Lg  , 4  	g/Hy  BN    PO` J  fJ g/Hy  CN    POBHx 0H/ N  VO BHx H/N  VO Jf/Hy  C7N    POB, GB, Fp` `|  L` T,  Lg J , 4  	g/Hy  CTN    PO` ,J  fJ g/Hy  CN    POBHx 0H/ N  VO BHx H/N  VO Jf/Hy  CN    POB, GB, Fp`  |  L`  ,  Lg   , 4  	g/Hy  CN    PO`  J  fJ g/Hy  CN    POBHx 0H/ N  VO BHx H/N  VO Jf/Hy  DN    POB, GB, Fp`,|  L`"zg zg &zg zg Jp L0N^NuNVH >. 
*n -  Ifh - 4  g0Hx Hx 0H/ N  VO Jf  r/ Hy  D(`  Hx Hx 0H/ N  VO Jf  r/ Hy  DG`~-  If:Hx Hx 0H/ N  VO Jfr/ Hy  DfN    PO|  I`H-  If@ - 4  g6Hx Hx 0H/ N  VO Jfr/ Hy  DN    POB- I- ( Gf  0GHPHzN    PO- FHH-@|  F 9    " Ё/ 0GHPHzN    O Hx 0GHPN    PO0GHPHz^N    POn F 9    Ѐ" DЁ/ 0GHPHz6N    p L N^NuNVH8>. 
|" ҁЁЁ    *@" Ё    (@&l J, Ff0GHPHzN    PO` Jy  ?gJ, Ig9k 6 >`Jy  ?g9k 2 >`Jy  ?fBl >,  GgTJ, IfJ, JgH0, :H-@-l 0, # Gf|/ Hx `BHx 0H/ N  VO 9n :)n 00, <l >o  J, JfJ, Ig  Jl >g$ 
    "<  N    / /9  ?N    POJ, If$Hy  D 
    "<  N    / Hy  D`"Hy  D 
    "<  N    / Hy  DN    O /, /,  0l </Hy  DN    O J, Ig gS, IHT0H/ a PO f60GHPHzZN    PO 4B, I|  FHxHx H/N  V`P0GHPHz$N    PO     4B, F,  Og,  Og,  OfB, OB )|;  R  B, JB p L8N^NuNVH8. ~* " ҁЁЁ    (@"ځ    &EK J+ Ffp ` N l  (  @  / N    XO. `$ f   f|@Hx HUN    PO   f|I*/N    XO;n 
 +n  n  HUN  XO+  Fn& 9    Ѐ" DЁ/ 0n 
/HzN    O     f" f0n 
/HzN    POp`   l  (  @  / N    XO. `Hx HUN    PO   g+  Fn0n 
/HzzN    PO/N    XOHUN    XO,    g
HUN    XO~ϕp JWD L8N^NuNVH<*n 0- ~. " ҁЁЁ    (@&l "ށ    -G G( 
 FgA g~HUN    XO`   l  (  @  / N    XO, `Hx  .P/ N    PO n    lR E ,`$j J f%M B HT l  h  PNXOHT l  h  h NXO/N    XOp L<N^NuNVH8 *n (n 0- r" Ё    &@A \f      g~J+ Ogn+  Of"B+ OB '|;  R  B+ J     4`D|  O7|  :'k  ,'k   (+m  ('m ( 0 + S rmHk N    XOp ` $9|  ` J+ Og  7|  :'k   ('k  ,+m  ('m ( 0 + S rmHk N    XOp `  A fp , 9@ )m  Bl `      gPJ+ Og+  Of|  O7|  :'k   ('k  ,+m  ('m ( 0 + S rmHk N    XOp `ZJ+ Og<7|  :'k   ('k  ,+m  ('m ( 0 + S rmHk N    XOp `9| 
 )m  9|  B (pL8 N^NuNVH< *n p 0- " Ё    &@$k I Hx HTN    PO - HH,   눁, 0- H   b ArTf A0;N xT 0 VRxxV`,>pk 8m +m  r'A  + 4   f  ,  ,  p 0+ B g - "+ $N    `p 0+ D-@;m  7m  B7n D .  @ n ` Vpm k 8;@ +m  r'A  + 4   g(;m  p 0- -@ -   @ n ` 
,  ,  p 0+ B g - "+ $N    `p 0+ D-@;m  7m  B7n D .  @ n ` m  pm k 8;@ Bm p   +@ r'A ` D ,  ,  pm k 8;@   - r  @  -   @  -    @ Bm p   +@ r<'A ` pm k 8;@   - r  @  -   @  -    @ Bm p   +@ r'A +  Gf pk 8m      +@ ,  ,  ;|  |  p , +@ ` |r'A pk 8m      +@ |  p , ;@ Hx /N    PO+  Gg
+  Ff 8|  p , ;@ ` $ pk 8m  - 8    +@ ;k & r'A  + 4rg  + $  @  + $   @ ` ,  ,  B, |  ` J+ Kg* + 4  g  |  +  Gf B,   B+ Kpm k 8;@ Bm p   +@ r'A ` T;|   pm k 8;@ Bm p   +@ r'A ` "pk 8m      +@ | $ p , ;@ r'A `  - ,   , pm k 8;@ Bm p   +@ r'A  + 4  g '|  h ` J g,  ,  `, |  r'A pk 8m -SHx /.N    PO     +@ |  p , ;@ ` @r'A pk 8m -SHx /.N    PO     +@ |  p , ;@ ` p * 8-@p * <`4p * 9-@p * =`"p * :-@p * >`p * ;-@p * ?-@r'A  p ;@ -SHx $/.N    POpm k 8;@      +@ |  p , ;@  n(  (   n|   nn  n.(   (  + 4   fL n + $  @ 
 n + $   @ +  Gf pm k 8;@  
n B, Bm +  Gf-S n|  Rm R, `  + ( Gf  -S n|  Rm R, `  pm k 8;@ Bm p   +@ r'A `dr'A pm k 8;@ ;| 
  |  Bm p   +@ `.r'A pm k 8;@ `
 m  Np L< N^NuNVH<*n .. | (m  l &h 0"g 0+ r" Ё    $@Jf* 
 FmJ g rf0B* F5|  :%n  0%j   (%j  ,|  M~7|  ` rf0B* F5|  :|  M%n  0%j   (%j  ,~7|  ` *  FnB* F0k /Hz N    PO` $-R*  Fn/.HSHRHTN  "O ` b,  g"* 
 Fg* 
 Ff/. HTHRN  $N` *  Fg*  FfHn HTHRN  $O * 	 Ff Hn HTHRN  &O Jf H~` * 
 FfTl ,  f,  g&%n  0 np (   5@ :~| 
 F` %n  0Bj :| 
 F`4* ;`./Hn HRHSHTHUN  O Jg~g~g ` B 0, H   b PA<rTf @A0;N     F  f "  "   "p 5@ :|  J * 4   f&p 0* DѪ `  p 5@ :|  I * 4   gR `  B* O|  IB B B %l   `  B* IB* JB B %|;  B* O , Ѫ  `  |  J , Ѫ `vB* IB* JB B %|;  B  B* O`TB* IB* JB B %|;  B  B* OBj <Bj @ 4`"HRN  -XO5@ <``
A f0,    f/,  m  h NXO`/, N    XOl  * S ~mHj N    XOp L<N^NuNVH< *n (n &n $n -R-j  n %P 0%j   (%j  , np (   5@ :HRN  -XO5@ <,  g *  Ff/. HTHRN  )`  np (   rf&* 
 Nf * 4  g n /HTHRN  (` *  Ng*  Ng*  NfF np (   rf2 n( 8( 9g$     lJ f n /HTHRN  &F` x np (   rf n /HRHSN  (|` PJ* Gg& n(  g5|  : n /HRHSN  (|` $ np (   rg  J* Gg(  g n /HRHSHTN  '`  np (   rfR* 
 NfJ*  Gg*  Gf*     "<  N    / /9  ?N    PO5|  :7| 
 |  H`  np (   rg :p (   rf
|  M` RJ* GgJ n(  g>     4 n 'P (*  Nf
 n Jf  5|  :'k  (%k ( 07|  `  np (   rfh*  Gf*  Ng  *  Ng  *  Ng       "<  N    / Hy  DN    POHTN  *XOHRHUN  ,(POHy  D`|HTN  *XOHRHUN  ,(POHy  E`^,  gHRHUN  ,(PO`PJ fJ n Jgl  g*  Nfp`0 n 'P (`$HTN  *XOHRHUN  ,(POHy  EN    XOp L< N^NuNVH8 *n (n &n "n A -H-I-I-  g|  Fr` d,  Gg,  Gf$ n f n(  g|  Fr` 0,  Gf@ n f6|  FB, H n(  g|  H n(  g:|  Fr`  -  g|  Fr`  -  g|  Fr`   n f B, JB, IB B )|;  B  B, O n fBB, H n(  g|  H,  Gf$ np ( 	rr ( 
Ёr ( Ё)@ $ n f8 n  f.|  FB, H n(  g|  H n(  g|  Fp L8 N^NuNVH0 *n (n /. HTN  *zPO- 
 Ff|  F`|  F9|  /,  l  h  h $NXOp L0 N^NuNVH8 *n (n &n -  Ff| 
 F`| 
 FHSHTHUN  *O -  GfHTHUN  %POp L8 N^NuNVH< *n (n &U$UB+ +  gBJ  g<J g6     "<  N    / Hy  EN    PO|  M*  *  +   g  +  g  +  g|  H*  *    g+  g*  *  `  +  f+   f+  g*  *  `\+  g*  *  `F+  g|  H*  *  `*+  g*  *  `+  g*  *  p L< N^NuNVH0 *n (n /. HTN  *zPO| 	 Fl 9|  r+A /,  l  h  h $NXOpL0 N^NuNVH8 *n (n &n ,  f,  f
,  g  | 
 Fl  f l  HSHTHUN  *p `  B- JB- IB B +|;  B  B- OB 0Bm : 4r+A -  Lf9|  `n9|  `f-  Lf|  L`|  LHSHTHUN  *O      4| 
 Fl  fr+A  l  `r<+A `0, Hrg Trg/,  l  h  h $NXOpL8 N^NuNVH *n "n  n .. p ( Nrgrg6   gP`N ( 4   gS `Jo "( $N     !h  `"!h  .) !G 01|  :#G (|  Op `,#G ( f|  O1|  :`Jo|  O`|  OpL N^NuNV."n  n .. #G ((  Ng(  Nf
#i  (p `J(  Nf, ( 4   gS `Jo "( $N     !h  `( 
 Nf|  I|  Op..N^NuNVH8 *n (n     $f&U` - $X/ /9    N    PO&@ fp `@)K Vr)@ 8/. HTN  *zPO|  F9|  /,  l  h  h $NXOpL8 N^NuNVH0 *n (n     $g/, - $X/ /9    N    O ,  g0/. HTHUN  *O | 
 F/,  l  h  h $NXOp`/. HTHUN  *| 
 Fp L0 N^NuNVH0*n I 0-    ~/ Hy  E#N    PO~ p / Hy  E9N    PORrmHy  E>N    XOp L0N^NuNV.*n ". ;m  A C "A C 0< "Q+A +m  ;m  m   p *nN^NuNVH8 *n (n &n 9l  A C "A C 0< "Q& )l  9l l l  Np L8 N^NuNV"n  n p ) Grgr gr"gr#gp `p ( `p ( N^NuNV.  bp A  ?J f 9  A`p A  ? 0 N^NuNV."n . p ) Grg:r"gr#g 9  A`N =dp A  @J gp A  @`$ 6dp A  AJ gp A  A 0 ..N^NuNVH4*n (n -m $THRHTa PO p *   / a XO/ p *   /  .    "<  N    / Hy  ENN    O Jg&p / HTa PO/ p / Hy  EoN    O Hy  EN    XO~ p / Hy  EN    POR|mHy  EN    XOp L4N^NuNVH0 *n "Up - Grg  rgTrg<rg$r#gTr(g  m  :f  0- <HR`  p ) 
r ) Ё`|p ) r ) 
Ё`jp ) 	r ) 
Ё`X UJ- Igp ( 	r ( 
Ё`>p ( r ( Ё`,(U0, `"p ) rr ) Ёr ) Ё`0- <HL0 N^NuNV   n    o!|   N^NuNVH8>. 
*n |*     ep`  " ҁЁЁ    (@ " Ё    &@ + 4   g   -  gR + 4  
fV U    fJ U (  $f> - "+ $N    )@ /, HS0H/ N  3O Jf  `J f U'h  $ U ( Э '@ ,- HUHz`   U +  g4 U'h   U ( "+ $N    Jg/+ $/Hy  EN    p`   -  gN - "+ $N    )@  + 4  
f2 U    f&/, HS0H/ N  3O Jg     4p`0 U ( Э '@ ,- HUHy    Hx H/Hl \HzFN    L8N^NuNVH8>. 
*n |̀    ep` " " ҁЁЁ    (@ " Ё    &@ + 4   gT -  g*J f, U    f BHS0H/ N  3O Jf U'h  $ U ( Э '@ HUHz`   U +  g2 U ( "+ $N    Jg/+ $/Hy  EN    p`d U'h   -  g(J f" U    fBHS0H/ N  3O J U ( Э '@ HUHy    BH/Hl \HzN    L8N^NuNVH >. 
*n ,. zz `ZHx Hx 0H/ a O Jfm  :g<+F 0p`l - 4  f"Hx Hx 0H/ a O Jf;|  :`Rm+F 0 - 4  g Hx Hx H/a ݰJfp`R  S 0B B- Op L N^NuNVH >. 
*n ,. z( JnHBHx 0H/ a \O JfBHx H/a FO Jg  D+@ 0Jg l;|  :` b  l   - 4  g@*-  R/Hx 0H/ a O Jg bHx Hx H/a O Jf ` DBHx 0H/ a O Jg  /Hx 0H/ a ܨO Jf  `  ༭  oV*   - 4  g*J  f$roHx Hx 0H/ a fO Jg  S/Hx 0H/ a JO Jf~`    ftJ gn - 4  g4Hx Hx 0H/ a O Jg~Hx Hx H/a O Jf2`dBHx 0H/ a O Jg /Hx 0H/ a O JgB p `>BHx 0H/ a ۬O Jg/HUH/a NO Jg/Hy  EN    POpL N^NuNVH >. 
*n ,. Bz-@-m  JlD-F| * jr - 4  g/Hx 0H/ a O Jf<`x - 4  fn/-  HU0H/ a pO JfV/Hx 0H/ a O Jg>+n 0g  ;|  :`  Jo   - 4  f/Hx 0H/ a ڦO Jf  -  Og-  Og-  OfB- OR  B +|;  B- JB /.HU0H/ a O Jf^JgRz `FHx Hx 0H/ a 6O Jf*+F 0-  Gfm  :f
S 0+m  ,m  :f`Rmp `+F 0p `/.Hy  FN    POpL N^NuNVH<.. *n B.. |(     d V " Ё    -@ mg@mg d@mg p` (M0H~b@0; N   t&  n*(   (  Og(  Og(  Of4 nB( O nR   nB  n!|;   nB( J nB  nJ( Ig/0n 
/a PO nB( I n 4 nBh : nB 0//.0n 
/a Jf nJ 0g p`  nJ( If *(  ڬ (  Og(  Og(  Of4 nB( O nR   nB  n!|;   nB( J nB  n 4 nBh : nB 0//.0n 
/a vJf nJ 0g Np` J n*(  Bh : nB 0//.0n 
/a PJf nJ 0g p`  nJ( If *( ڬ Bh : nB 0//.0n 
/a 
Jf nJ 0g p`  n ( 4  fp` BHx 0n 
/a BO |  nJ( Ig/0n 
/a &PO nB( I n(  GfJ gBHx 0n 
/a O  n 4 nn K|z`  nJ( Hg</Hy  F5N    PO nB 0 n!h   ( n!h  , n1|  :p
`  n(  Gg,, z` l n ( 4  g |*, ` R nJ( HgD/Hy  FUN    PO nB  nB 0 n!h   ( n!h  , n1|  :p
` p n(  GfJ gBHx 0n 
/a O BHx 0n 
/a O |z`   nJ( Ig/0n 
/a ѼPO nB( I nB( H n 4 n(  GfBHx 0n 
/a ~O BHx 0n 
/a j`  nJ( IfHy; /0n 
/a  Jf& n 4 nB 0 nh  :gJh :gp` z nBh :` lJoJn*p` `/0HA  A/0 0n 
/a O JgSjT 	f . n ( 4  g .  g BHx 0n 
/a Ԧ`  &M n7h :  n7h <  nJh :fB  n'h   
 n'h  ` n'h 0  n'h ( 
 n'h ,  nBh : np ( G6 n ( 4  g  SS`~$M n5h :  n5h <  nJh :fBj  n%h    n%h  `  n ( 05@  n%h (  n%h ,  nBh : np ( G4 n ( 4  gSRp L<N^Nu@(#)st.c       1.91 89/04/21 Copyr 1989 Sun Micro Emulex                                                Wangtek         WANGTEK                                 Archive         ARCHIVE                                 Adsi            ADSI                                    CDC             LMS                          K  ,  ,        Fujitsu         >                       !    [  ,  ,        Exabyte         EXABYTE                 (    Y            Kennedy         KENNEDY                 "(            HP-88780        
HP      88780           #(            Spare           SPARE                   )                Sysgen                                             &'''    Sysgen11                                                  Adaptec         ADAPTEC                     "             Unknown                                      B            Var. Unknown                                 A               Fx  F  G
  G  G  G(  G4  GC  GS  Gb  Gr  G~  G  G  G  G  G  G  G  G  G  G  G  H  H      H  H  H  H  H&  H6  HI  HJ  HK  H^  H_  Hr  H  H  H  H  H  H  H  H  H  H  H  H  H  I  I  I!  I3  I4  IA  IB  IS  Ic  Iy  Iz  I  I  I  I  I  I  I  I  I  J  J!  J2  J3  JG  JU  JV  Jh  Jt  J  J  J  J  J  J      J  J  J  J  J  K  K  K	  K
  K  K  K"  K0  K1  K2  K3  K4  K5  KE  KF  KG  KW  KX  Kd  Kt  K  K  K  K  K  K  K  K  K  K  K  K  K  K  K  K  K  K  K  K  K  K  K  K  K  K  K  K      E@  EL                              st%d:  sttimer: I/O request timeout
 st%d:  warning, rewinding tape
 st%d:  unknown SCSI device found
 st%d:  warning, unknown tape drive found

 st%d:  tape is write protected
 st%d:  warning, rewinding tape
 st%d:  warning, using alternate tape format
 st%d:  warning, rewinding tape
 st%d:  format change failed
 st%d:  warning, using alternate tape format
 st%d:  warning, rewinding tape
 st%d:  format change failed
 st%d:  warning, using alternate tape format
 st%d:  warning, rewinding tape
 st%d:  format change failed
 st%d:  file mark write failed
 st%d:  file mark write failed
 st%d:  file mark write failed
 st%d:  file mark write failed
 st%d:  %s  read st%d:  %s  write retries= %d, file= %d, block= %d
 st%d:  illegal command
 
 
 
 st%d:  warning, tape rewound
 st%d:  failed cmd =   %x   
 unknown key   st%d error:  sense key(0x%x): %s ,  error code(0x%x): %s 
           sense =  %x   
 st%d:  stread: not modulo %d block size
 st%d:  stwrite: not modulo %d block size
 st%d:  file positioning error
 st%d:  block positioning error
 st%d:  tape is write protected
 st%d:  tape is write protected
    st%d:  wrong tape for writing, use DC6150 tape (or equivalent)
 st%d:  warning, the tape may be wearing out or
      the head may need cleaning.
 no sense soft error not ready media error hardware error illegal request unit attention write protected blank check vendor unique copy aborted aborted command equal error volume overflow miscompare error reserved fatal timeout EOF EOT length error BOT wrong tape media    write fault drive not ready drive not selected   logical unit fault  error log overflow time-out error  soft write error soft interface error   hard read error  space command error no record found locate error  soft read error soft write error  parameter overrun synch. xfer error  verify error  hard write error invalid command invalid block address  space cmd error  invalid cdb lun invalid cdb field write protected media changed drive reset mode select changed block length error cmd sequence error overwrite error blank tape error  unknown tape format format failed  tape length error invalid cdb undetected ecc error no gap found miscorrected error block sequence error tape not ready no tape installed tape position error     drive not ready     no tape tape too short drive timeout      hard data error   block not found  dma timeout write protected soft data error bad block   file mark detected compare error   invalid command                unit attention command timeout  append error end-of-media          ~P   F  ~P   X  FP     @     P     rP     P     oP  &  ~P  <  FP  ~  P    {P    
P  ^  ~P  p  FP    QP    @    P    @  P  @    @    rP    P    =P    HP    @  *  @  T  rP  h  P  |  =P    HP    @    QP    @  @  @  b  @    nP    @    @    @    @    nP    @    @  L  @  R  P  x  @    )P    @    @    )P    @    P    @  R  @    rP    P    ^P    ~P    FP    jP  :  lP  P  lP    @    P  	&  @  	,  P  	@  @  	T  @  	z  @  	  P  	  @  	  P  	  @  	  @  	  @  	  P  
  @  
  P  
4  @  
:  P  
N  @  
b  @  
r  @  
x  P  
  @  
  P  
  @  
  P  
  @  
  @    @    P    @    @    @    @    @    @    P  >  @  T  @  Z  P  x  HP    rP    P    =P    HP    rP    P  
"  ~P  
6  FP  
P  HP  
\  @  
r  @  
  @  
  @    ~P    \P     @  &  P  4  @  <  ~P  H  \P  P  @  X  @  `  ~P  l  \P  t  @  z  P    @    P    HP    @    HP  v  ~P    FP    jP    =P    lP    @    rP  4  P  \  HP  z  jP    =P    HP    lP    4P    oP    ~P  *  FP  L  8P  h  jP    =P    lP  
  FP    oP    oP  T  oP    oP    FP    QP    \P  \  \P    WP    WP    QP  <  WP  0  WP    QP    WP  "  QP  ,  WP    QP    WP    FP  (  HP  J  @  x  @    @    @  6  @    @    P     oP  ^  @    @    @     @   D  @   p  @     @     ~P     \P     @     P  !  ~P  !  \P  !  @  !  P  !  @  "  @  "  @  "  @  "$  @  ",  @  "@  @  "x  @  "  @  "  @  "  P  $f  @  $  @  $  @  %2  ~P  %>  \P  %F  @  %L  P  &^  @  &  @  '\  @  (  \P  (  \P  )&  {P  ),  
P  )T  @  )  {P  )  +P  )  @  )  @  *6  @  *<  P  *L  @  *R  P  *b  @  *h  P  +~  @  +  @  +  @  +  @  +  @  +  @  ,  @  ,  @  ,r  ~P  ,~  \P  ,  @  ,  P  ,  @  ,  P  ,  @  ,  P  ,  @  ,  P  ,  @  ,  P  .&  ^P  .B  ~P  .T  FP  .  \P  .  @  /  9P  /  @  /"  P  /@  \P  /l  @  /  eP  /  KP  /  ^P  /  ~P  0  FP  0<  @  0  9P  0  @  0  P  0  @  0  eP  0  KP  3  @  3  P  5l  @  5r  P  5  ^P  5  FP  8  @  8  P  9  @  9  P  :b  @    @    @    @     @    @    @    @    @    @    @    @     @  $  @  (  @  ,  @  0  @  4  @  8  @  <  @  @  @  D  @  H  @  L  @  P  @  T  @  \  @  `  @  d  @  h  @  l  @  p  @  t  @  x  @  |  @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @     @    @    @    @    @    @    @    @     @  $  @  (  @  ,  @  0  @  4  @  8  @  <  @  @  @  D  @  H  @  P  @  T  @  X  @  \  @  `  @  d  @  h  @  l  @  p  @  t  @  x  @  |  @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @    @     @    @    @    @    @    @    @    @     @  (  @  ,  @            
                  &         .         7         @          H     ;   P     $   b     (|   n         x     "                                    T                  A        @        ?        1                         V  
     ?        x       %  +     )  >     3  P        Y        b        q        ~                     -       
        x               -        @                                                  $                  
                        '         1        9     *z  E        N         W         ]        f        n        x                                      +       (       +(               Z                ;                >r          $         ,        2        =        B        K        S         Z         e        n        w     &F       &                '               /       $N                                  @               x       5                 &         /     >  7     +h  E        N       c         i     ,(  {                                              ?               *                                              *                        $  
                 !        +        3        <        F     ?  P       [     1  k       y     .                                          _nbuf _scsi_unit_subr _ststrategy _rootvp _rootdev _desscan _printf _sccsid _stintr_ran_sense _stintr_eot _bclnlist _stintr_opening _lbolt _rmalloc _qs _stintr _mbudone _st_emulex_error_str _st_hp_error_str _st_key_error_str _stposition_file _file _nproc _stcmd _wrong_media _sum _stintr_sysgen _stintr_ran_append _stposition_block _whichqs _avenrun _domainnamelen _hostnamelen _runin _freemem _stminphys _stclose _rate _dvmasize _st_get_retries _hostname _bcmp _tz _rmfree _desfree _avefree _sttimer _dumpvp _maxpgio _nchrdev _boottime _panicstr _geterror _noproc _stsave_cmd _physmem _biodone lmodt _saferss _maxslp _multprog _sleep _fbobmemavail _avefree30 _boothowto _st_print_error _stintr_append_error _st_get_error_code _nfile _stwrite_eof _stape _st_drivetab1 _untimeout _st_drivetab2 _nscan _physio _tick _procNPROC _phz _deficit _runout _bzero _stunitptr _pidhash _selwait _stintr_change _stintr_ran_change _DVMA _stintr_file_mark_detected _nblkdev _stwrite _stintr_sense ldivt _forkstat _nstape _domainname _stmkcdb _cnt _stioctl _runrun _bufhash _minphys _stinit _st_print_key _minfree _stintr_handle_error _splr _st_error_message _splx _stopen _cpu _wakeup _maxmem _tape_worn _hz _st_print_cmd _stattach _fileNFILE _freeproc _proc _wantin _strestore_cmd _time _iopbmap _total _kernelmap _stunits _lotsfree _dumplo _allproc _zombproc _st_retry _bfreelist _stposition_eom _stinit_error _stread _bufalloc _timeout _ststart _bufchain _curpri                 "(   ./share/sys/sun2/OBJ/str_conf.o                                                                        444       0      12         1470  4424711541  11405                                                                                                                                                                                                                                                                                                                                                                                    D           8@(#)str_conf.c 1.10 88/09/09 Copyr 1986 Sun Micro nbuf          pf            kb            ms            db            ldterm        ttcompat                            <  P   J  P   X  P   f  P   t  P     P     P                               $          ,      2   4          <          F         M          V         _         g         p          z                                                                                                                                _rootvp _rootdev _ttycompatinfo _dbinfo _fmodsw _sccsid _kbd_info _runin _ms_info _fmodcnt _dumpvp _nchrdev _ldtrinfo _panicstr _noproc _physmem _boothowto _runout _selwait _nblkdev _runrun _maxmem _wantin _pf_info _nb_info _dumplo _curpri sm.o  x    ˜  
zs_async.o      ˝  zs_common.o         $  
                 !        +        3        <        F     ?  P       [     1  k       y     ../share/sys/sun2/OBJ/str_io.o                                                                          444       0      12        72517  4424707776  11140                                                                                                                                                                                                                                                                                                                                                                         M       4         pNVH< n *PJ g$    gHx Hy  NHy  NN    O     g J f0HUN    XO$@Jg +j  `HxHTN    POJgp` (m .g   ,   f x;$ h DJh g ,   gp` d~  &TB`t0+   frJ gp` . / J gp ` . / 0m /Hk k h NO . |fJ8;g
8;HH`p-@` gHTHUN  PO&k .f~Ϭ HTN    XO .` N    &@JfpJ` (|    `JfA $(`I H    e    e< y    R Hy  NHx N    POHSHy    N    PO y    S pJ` L y    R y    R  y    "y      o
 y     `
 y     (  y    !@ Bl B 9|   Bl "B, Bl Bl B B (B ,B 0B 4B 8B <B @B DHy  N8Hy  NHSN  FO 'L 8'L ~  0- H   " ЁA    )p  +L /. /. 0m /HS/, N  ?JO . |g  g|-F`B    f:0- H   ကG/- H/ HUN    O $@HUN    XO n *J )M +L JgHTHUN  PO0- H   " ЁA     p -h g nX-Pf~Ϭ HTN    XOp `  BHU/.HTN  ,O 8;HH-@g/. HTN  PO~ ;`.~ B y    SHSHy    N    PO y    S B ~Ϭ HTN    XOJ8;g
8;HH`pL<N^NuNVH8 *n (n &x;$ + 0  gJ>LfJl gJk :fHJk :f&Jl f9k < 7l  :J>Rg/8>RN    XO`9k : I !>L1 >PRm !>RL8 N^NuNVH0  n J fHxHy  OHy  NN    O  n *h B /. N    XO(@Jg -  f"+L `Hx HUN  F PO/. HUN  POp L0 N^NuNVH<*n (U`  0.   f  N    .      9    " DЁ/ HUHz<N    O  -   g* l Jh g r  l h HxHTN    POJgHUHz;N    PO /N    XO/. Hx  , ~$/ N  @LO J f LHx HTN    POIN    . &l B B Bl J g/- N    XOB B y    SHTHy    N    PO y    S /N    XO`($S k ( 	 
f k /N    XOHSN    XO&J.fL<N^NuNVH8  n -h  n*h ,`2 ;$f$&m "g)K ` n!K ,HUN    XO*K`(M*m "
fʙ n*h 0`2 ;$f$&m "g)K ` n!K 0HUN    XO*K`(M*m "
fL8 N^NuNVH8 n J fHxHy  O Hy  ON    O  n *h  -   @g -   gp`p - ;` B  . r >RWD-A-nJg `   -    g`  L;HT ~$/ N    PO` /N    XOJ9    gN     l p ( 
Jg ~g~	g   gHxlHy  O4Hy  O2N    O HTN    XO` f x;$ ( (   f  x;$ ( $   f x;$ ( 0   g
 ;` "Hx  x;$0( :H/ N    POHx Hy    N    PO x;$0( :m fBN    .  r$/ N    XO(@Jf  -   f  Jm  g"p 0-  +@ $J $nl/N    XO` pJm "gJg/N    XO` V -   f6      9    r
N    " p 0- "N    / HUHzD:N    O B $ -   fD n 0( H/ Hx 
HUN  LvO Jg2 n 0(   g -   g8 ;fB8;/N    XO` /N    XO`  ,  e&L(l HSN    XOJ f ,  f  JgHT ~$/ N    PO` `HTN    XO` R n J gz ( ",  l ( ` ,  -@g"/. B/ /, N    O ; .ѮJ8;f .Ѭ ` ,  e&L(l HSN    XO.f.f ~.g, -   gHTN    XO`HT ~$/ N    PO`  ~ϭ `| l (  
f| ~$/ N    XO(@ l p ~f - 4  g.Hx /- ,N  `Jm g l p / 0m /N    POHTN    XOJ9    gN     U(h.f z n J f : -   gHUHzBN    PO p L8N^NuNVH8*n  -   @g -   gp` p - ` z n ,B. ~$/ N    XO(@Jf  ` F ,  e&L(l HSN    XOJ f ,  f*J.gHT ~$/ N    PO`  HTN    XO`  | .f.grHT ~$/ N    PO`dJg ,  l ` ,  . g//. /, N    O ߬ ߮ .g ,  e&L(l HSN    XO`~ϭ Jf `bHT ~$/ N    POpL`Z l p ( 
Jg ~g~	g   gHxHy  OHHy  OFN    O HTN    XO`  n fp#`p L8N^NuNVH<*n (n &m  +   g HxHy  OsHy  OZN    O `  l (  
fn +   f ~ J Dg, +  @  r JVD//+ DN    POB D  + 4  gHx /+ ,N  PO + 8  gpHx ``J fdJ <g, +    r JVD//+ <N    POB <  + 4   gHx /+ ,N  PO + 8   gHx HSN  8PO +   g  Jk  gnJk "ghN    ,  +   gHSHz>N    PO       9    r
N    " p 0+ "N    / HSHz>N    O /N    XO l J( 
f$HTN    XO. g $J $o +    g(~ϫ y         HUN    XO     +   gHx 0k /N    POHTHUN    PO` h l Jg       l P HUN    XOHm $N    XOHSN    XOHx HSN  8PO l |  
 l  HTHUN    PO` HTN    XO|  ~ Jk gHx 0k /N    POHUN    XOHm $N    XOHSN    XOHx HSN  8PO` HTN    XOB+ ~ϫ ` J g,HTHUN    PO` p` + 4  g<Hx /+ ,N  `* l p ~gJk g l p / 0k /N    POHTN    XO`  l   ghN    -m B B Bm m / N    XO`8 n-P h ( 	 
f n h /N    XO/.N    XO-nJf l  g6 l  HTHUN    PO` $l  +    gJ f
 +  gHTN    XO` Z'L HSN    XO` H ,  ~gHxHy  OHy  ON    O -l  n0   gN0( Hg~g~g(`8     `   `" +  @ ` +  @ '@  n0  g7h   n0  g;h   n0  g;h   n0  g;h 
   n0  g;h  " n0  g7h    n0  g7h  " n0  g      n0  	g  n0  
gJ( f  HTN    XO0- m "b  0- ~g  m ` UJ fHUN    XO*@.
f.
g  HUN    XO`   l |  
HTHUN    PO`  Hx;Hy  OHy  ON    O HTN    XO`f l p ( 
   bA <rTfA0;N $@
	  p L<N^NuNV.-n .. `$ n ( gHx /N    PO n-h Jf..N^NuNVH0 n  . F 8 n *h 0`   -  f
. ~8glN    .  U     df/N    XO`
 U 0/N    XO.g)m  HUN    XO*l `$ n !m  0HUN    XO n *h 0`(M*m .
f vL0N^NuNVH  n J fHxHy  OHy  ON    O  n *h  -   Pg -   gp`p - ;` > U h =h  U h =h fHxHy  PHy  PN    O Jng nf
=y   `0.H    o 9    `0.=@Jno* n  ( 2.Hm ( 2.Ho
 ";` | 	 -   g n 0( H`
 n 0( H-@ . r >RWD-A`B n  ( ` /..HH/ HUN  LvO Jg/N    XO` &/N    XO-nJgr`^ -   gb x;$ ( (  fT x;$ ( $  fF x;$ ( 0  f8Hx  x;$0( :H/ N    POHx Hy    N    PO x;$0( :m fBN    .  U/( N    XOJg 2/N    XOBBp 0- / /.  n  ( 2.Hm 0.H/ BN  GdO -@g8/  U/(  U h  P PNPO . J9    gN     n J f p L N^NuNV. n J fHxHy  P&Hy  PN    O  n *h  -   Pgp `^N    -@ U/( N    XOJf4J f/.N    XOp `,8;HH-@ U/( N    XOJg/.N    XOp*nN^NuHx Hx HUN  LvO Jg/.N    XO;p `NV. n J fHxFHy  PEHy  P8N    O  n *h  -   Pf   U h =h  U h =h fHxSHy  P\Hy  PWN    O JngNnf
=y   `0.H    o 9    `0.=@Jno0.H n0.H lp `  -n -n A-Hr-AB=ABn-n8;HH-@Hx Bp 0- / Hn0.Ho .`0.H/ BN  GdO -@f
;p `&/. U/(  U h  P PNPOJf;p*nN^NuNVH0 *n (m  ,   gHxHy  PHy  PnN    O J @g, ,     r JVD//, @N    POB @  ,   g(rì y         HUN    XO     ,   gHx 0l /N    PO , 4  gHx /, ,a FPO , 8  gHx HTa tPOp L0 N^NuNVH< n -P n J fHxHy  PHy  PN    O  n *h  -   @g  -   gp`p - ;` pJ  NfN  .RHUN  /XO(@Jg`(l .gX~`R|lL A  NXJ g A  NX p   f n  `  n /HU/. N  *O Jf -n ~-G . r-@.  g-@`.  f.  g~-G`B-n /. BHnHUN  /`  n Jg   @  ` z ` n n Jg     ` Z ` NB U(h`HTN    XOѮ(T.f n  ` " n  D-@ . >Rfd`T x;$ ( (  fT x;$ ( $  fF x;$ ( 0  f8Hx  x;$0( :H/ N    POHx Hy    N    PO x;$0( :m f x;$ h DJh g
. ~gL/.N    XO(@.gD0, :Hf8 x;$ h D0, 6h g& x;$ h DJh gHTN    XOJf
 ;` 
:;n ` 
. n 0- HD ` 
 n 0- H ` 
(n  mb/. Hx HTHUN  /`  U-hg/.N    XO n   ~$/ N    XO!;` -n /.N    XO-@l
 ;` B; U`$ .Ѐ" DЁA   
 p  (  nఐg-h fJgp`p !;` LHx /. /. HUN  ,` 4 - ~f 	 U h J g   U h  h 0( f  BHx  U ( ~$/ N  @LS (`  U/( N  /FXO(@Jg Hx 	/. HTN    `  - ~f  m J g /.N    XO-@J8;f  @ h -h g .ܰg @ (   Qg
 ;` ^  S f,/N  E8XO-@ n// N  DHPOJg ;` (B .䐹    rN    /  n//.N  D O -@g -n B~-G-@ n ~$-@ m /(  m /( / N  FO  nB 8B  n h   n h  >/. Hx HnHUN  /O J8;g2 nB Hy  N8Hy  N/.N  F n!n 8!h 8 ` 
F n~@  nRh /.N    XO .~$Ї/ N    XO/.N    XO .䐹    rN    !;` 	 - ~g
 ;` 	fBHUN  F PO` 	 .Ѐ" ЁҁЁй    -@䰹    eT    dL @h  fBJ g< h -h g0 n ( ~@g"/.//N  E8XO/ N  DO -@f
 ;` 	BB/./.HUN  ER` 	, - ~f /.N    XO-@J8;f 	 @h  f6J g0 h -h g$ n ( ~@gB/BN  DO -@f
 ;` B/. n ( Ѐ" ЁҁЁй    / HUN  ER`  - ~f .~f`/.Hx  U/( N    O JgJ9    g VN    ` LHx Hx Hx N  J^O Jg` . .g~g~g, ;`  `  -  @ +@ `  -  @ +@ `  n  -   gp` -   	gp`p  ` B-m ,` n ;$g-H-h JfJgZ .~f ^Jf2BN    XO-@g &Jg n!n `+n , n ;$ n!n  .쁭 4` *Jg ~Jg n"n!i  `
 n+h  ,/.N    XOB 4-m ,Jg  n (  4 n-h `-m ,Jg D n ;$f"n " `  n-h `(n  U-hg , ~g n h ( 
   fB;` f n h ( 	 
f
 L;` L n h (  
f~)G `B -l -TA-H~-GBBnBn-n`n n h J( 
gfJm` n (  o .` n (  -@gHnB/  n/( N    O ;J8;f  n-h Jf )@ -l -l ~-G-n``Jg` n (  o .` n (  -@gHnB/  n/( N    O ;J8;f  n-h Jf , )@ ~!;`  -   Pg -   gp`p - ;` (n J  m ,  rJlDD`Jg
 ;` /, N    XO-@g @ h -h f
 ;` r n (   Pg  (   gp`
 np ( ;` B n P` n-h  nJ f~$ ,  X n , ~f  U h =h  U h =h nf
=y   `0.H    l0.` 9    =@,, l| 0.Hm0.Hn ,     o
 ";` N    .  ,    g  /N    XO-l -l A-H~-GBBnBn-nB/, p 0- / Hn/, HTN  GdO -@g  @ h    /. U/(  U h  P PNPOJ9    g N    `  U/( N    XOJf T/. Hx HUN  LvO Jg ./N    XO`  - ~g
 ;` (U`(l J f  Ng
 ;` p/.N    XO-@g \0, ~fHx Hx N    PO&@Jf
 ;` 2$k ~߫  k | 	 
$ x;$ h D5h   x;$ h D5h   nRh HSHTa PO`  -   @g -   gp`p - ;` N    .  |$/ N    XO(@Jg0 l ( 	 
ghHT / N    PO/N    XO L;` r -   g/N    XO ;` T/. Hx HUN  LvO Jg/N    XO` ./N    XO&l BN    XO, lHT ~$/ N    PO`    @!S<&Hx /. HSN    O HTN    XOB;`   . A Pr\f A0;N >`x~|^<@S@	S@tw@t @f@f{@S
@S@S  S  S  S  S
  S  S	  S  S  SSS$S	S	Stvtf~f}f|p L<N^NuNVH8*n (n J  NfNN  .R`FHxHTN    POJg ;p`  ,   Pg ,   gp`, ;p` ʻ>Rfd`T x;$ ( (  fT x;$ ( $  fF x;$ ( 0  f8Hx  x;$0( :H/ N    POHx Hy    N    PO x;$0( :l f ,   f F~  HTN  /XO&@JgJ f| `  ~`Rrl A  NXJ g A  NX p "k   fA  NX-px .. mro
 ;`  A  NX-px g .g   k J g k  h 0(   g
 ;`  BHx  + ~$/ N  @LO B8;Hx B0m /Hk/.N  ?JO . |f,J8;f ;Hx B0m /Hk/.N  ?JO ` g
HTHUa RPO|~Ϭ HTN    XO L8N^NuNVH0*n (n  -   g
 ;` < - (    l/. N    XO-@l
 ;` J g -   fR~  Hx B0l / ~$/  .Ѐ" DЁA   
/0 N  ?JO . rfPJ8;f^ ;`VHxHUN    POJg
 ;`   -   Pg | -   gp`- ;`n g
HUHTa 4POR ( U0(  g> U ( ~$/ ` n PJ f/.N    XO-@fJg/.N    XO~ϭ HUN    XOL0N^NuNVH *|  NT~ `BHx 	 Ѐ" DЁ    / /N    O Jfއ"DށA   
+px  `
R    mPM  Ne~ `F Ѐ" DЁ    / Hy  NN    POJfއ"DށA   
 px #   Sd`
R    mR  NL N^NuNV.*n  U"h  9  Sdg"i "	f 	*nN^NuNV."n ~ `4 Ѐ" DЁA   
 p  ( f Ѐ" DЁ    `R    mp ..N^NuNVH<*n (n J m ,     o
 ;` PHx Hx N    PO&@Jf  Hx Hx Hx N  J^O Jg`  x;$ h DJh g&.   f
 ;`  8>R g
 
;`  - >Rf   x;$0( :m g   x;$ ( (  f   x;$ ( $  f   x;$ ( 0  f  Hx  x;$0( :H/ N    POHx Hy    N    PO` A 8r\fpA0;N :nnnnnnnnnnnnnnnn  T"T"T
"T	TTTtutt
t	tt~t}t"ttr -   g
 ;` $k %l  $ x;$ h D5h   x;$ h D5h  B B  k |  
~߫ J g/. /, HSN  B O Jg pN    .       9    " DЁ/ HUHzN    O  -    f  HUHzN    POJm f J g/- N    XOB r N  5+@ %m  /N    XOHS U/(  U h  P PNPOJ9    gN    N    . J m  J g   , `  Rm HxHm N    POJf
 -   fBSm  -   gp`pI;Jm f /N    XOHUHzN    PO` :Sm  -   Pg  -   gp`- ;Jm f /N    XOHUHzN    PO` p"9    N    / HUHzN    O       J g  J fHxGHy  PHy  PN    O &m B  J kHUHzDN    PO/N    XOHm N    XO$k  k p ( 
   g     g *Hx~Hy  PHy  PN    O `  -   @gJ -   gp`- ; J kHUHz
N    PO/N    XOHm N    `  HxHUN    POJf -   
f  -   
gp`pI; J g/- N    XOB J mHUHz
4N    PO/N    XOHm N    `TJ g ;`>! ;J g/. /, HSN  CO Jg)j  `J g * `p;HSN    XOL<N^NuNV  R  S` 9  S`N^NuNVH<*n (n &n $n BBBBJ fHxHy  PHy  PN    O -m  n (   @g  (   gp` n( ;p ` Hx HnHRN    O Jg ;p `  .~g ;p ` N    .  nB $.  g n (   gZ n r$/ N    XO-@g@/N    XO n h ( 	 
f  /. n ~$/ N    PO L;p ` d n (   g6B B Hx HRHnN    O Jg ;/N    XOp `  /. Hx /.N  LvO Jg 2/N    XOp ` J9    gN     n (   g . Jm  Jg   n h J( 
g  -T-l Jf )@ `   n h J( 
gJm n (  o .` n (  -@g/ /. n/( N    O Jf  .Ѯ nѨ  n (  e-H-h /N    XO .ܑJn P` R~)G JgH n h J( 
g: . -n` n h J( 
g-n n-h Jf nB Jm  Jg  -S-k Jf '@ `  Jm n (  o .` n (  -@g@/ /. n/( N    O Jg$ ; n~Ϩ B/.N    XO` \ .Ѯ nѨ  n (  e-H-h /N    XO .ܑJn <` >~'G Jg . Jg n!n `-nJg/. n ~$/ N    PO`
 n~Ϩ Hx HRHnN    O Jg   ;`   n h (  
f   n ~$/ N    XO-@ @ h p ~f n ( 4  g:Hx /( ,a `* nJh g" n h p /  n0( H/ N    PO/.N    XOJ9    gN     n P-hf V n PJg   n (   fx.  gpJ <g4 (    r JVD//( <N    PO nB < n  n ( 4   gHx /( ,a JPO n ( 8   gHx /a tPO .L<N^NuNVH<*n (n &n .. J fHx
yHy  QHy  QN    O $m  *   Pg *   gp`p * ;` 0 |f|gJ l
 ;`  R h =h  R h =h nf
=y   `0.H    l0.` 9    =@*+ lz Bn0.Hm0.Hn ,     o
 ";`  -k -k A-H|-FBBnBn-nN    ,   g`/N    XOB/p 0* / Hn/+ HTN  GdO -@g&/  R/(  R h  P PNPOJ9    gN    p L<N^Nu R/( N    XOJf/. Hx HRN  LvO Jg p/N    XO`NVH0*n ~  -   gp ` 0N    ,  -   
g/N    XOp`  -   g  .  g  U/( N    XOJg -   f  .   g -   f UJg  .  g -   g  rfHx
Hy  Q^Hy  Q+N    O JfdJ f^BN    XO(@Jg0(;$0. H)@ )m 0 +L 00. H 8/N    XOp `4/N    XOHUN    XO ;p `/N    XOHUN    XO L0N^NuNVH8 *n J fHx Hy  Q}Hy  QpN    O (m  ,   g
 ;`  N    -@ ,   
g   ;`   ,   f TJfr&l <"g     df     `  )x;$ <`   T/( N    XOJg
 ,   g.&l @"g     df
      `\)x;$ @`T ,   g/.N    XOp`H&l D"g     df
  @   `)x;$ D` . grg <rg n/.N    XOp L8 N^NuNVH8*n (n N    &@Jfp`  N    . 'L 'l 0 0J 0gJ    gHxqHy  QHy  QN    O  l 00(   g
 , 0|$І` , 0|$ @!K A $)H 0/- /HSN  FO  k   k  >/. /. 0n /HS S h NO , rfBBHSN  @LO /N    XOp`/N    XO L8N^NuNVH8*n J g  J9    gN    N    . J gp ` . / HU U h NPO0-    f
0- >   g@(y    `4gA $f""g'l  `#         f#    &L(l "fHx HUN    POHx Hm $N    PO`N    . J 0gHUN    XO @!m  J gHm $N    XO @!m 0 HUHy    N    PO y    S /N    XOp L8N^NuNV   n  (   g/N    XO n  p N^NuNV   n  (   gr/N    XO n  p N^NuNV   n  (   
g/N    XO n  p N^NuNVH0*n  m .( l  HxHy  QHy  QN    O `     o,<   `,Hx /N    PO(@JfN ;p `  //, /. N    O `f//, /. N    O JgNHTN    XO ;p `Z . grgrgHxHy  QHy  QN    O HTN    XOp ` ݮ  l B( 
ݬ +L *LJf 6pL0N^NuNVH *n  m .( lHx7Hy  QHy  QN    O *m `  Jg   -  l ` -  ,  . g&rg6rg0HxJHy  RHy  R N    p `d//. /- N    O `"//. /- N    O Jg
 ;p `,*m ݮ ,
f nJgHxNHy  RHy  RN    pL N^NuNV |    `J f  !n  !n   `A  9    " ҁЁ    ep N^NuNVH8 *n (n &|    `$ f + g/+ HUaPOJgp`G  9    " ҁЁ    ep L8 N^NuNVH8 *n (n "
f "fJ fHxHy  REHy  R/N    &|    `0J g&"
gf"g fJ g
 .  f `G  9    " ҁЁ    ep L8 N^NuNV n ` h J f N^NuNV-|  S
Br-A-n BHx Hn/. a O J8;g.J g$Hy  RWHx N    POB8; n  `p`d n  h -h  nrè  n r$-@Hy  N8Hy  N/ N  FO  n!n 8!h 8  n B /. N    XOp N^NuNVH< *n /a XO$@BBHRa jO &@Jgn(k "ҁ        e    eHxHy  RHy  RN    O /. HSHTHUa O rfHxHy  RHy  RN    L< N^NuNV.*n K $ n    n "n "i 1i 
   n "n "i 1i  " n "n "i 1i   n "n "i 1i  *  n  h ;h 
   n  h ;h  " n  h ;h   n  h ;h  *nN^NuNVH8*n B.   g~`~-G.
g  J m  .   g
-|   `~-G.- -m /./N    PO&@Jg8 k n 
//+ /.N    O JgF ;HSN    XOp ` RJ g #;p ` @Hx /./N  J^O Jgp ` "߫ (KJ m Jgp ` . Ю . `  /.S A    00   / N    PO&@Jf /.SA    <0h   /N    PO&@Jf  J gHTN    XO #;p ` Hx /./N  J^O JgTHTN    XOp ` b/./N    PO&@Jf  J fHx /./N  J^O JgHTN    XOp ` |Am/N    XO,     f,9    S.A    >0x   /. A    00   / N    PO&@Jg J g. .RJf" k  (   o . ѫ  . ѫ  k  (   o . ` k  (  . g:/. Hx //+ N    O ;J8;gHSN    XOHTN    XOp `&߫  .f(K`HSHTN    POJ f  L8N^NuNV.N    . /8;$Hy    /. /. N    O Jf      ob/. N    XO-@r-A`@S .A    00   -@ /8;$Hy    /. / N    O Jf"R . m/N    XO J;p`^Hx 8;$r0Ё/ N    POJg&/N    XO/8;$/. /. N  Kt ;p`/N    XO/8;$/. /. N  Ktp ..N^NuNV.J m 9    A    00   dHxHy  SHy  RN    O /. N    XO" ҁЁй    -@    f~`    f .~` .~Ї-@N    .  n-PgZ`H n    f( (  f"n" /N    XO/.N    `" .P-@ n-h Jf/N    XO..N^NuNV.*n  -   g.  f #;p`  .  g.  f ;p`  .  g r-A r$-@r-A-|  @`r-A-Ur-A-|  P .  . @ / /.N    POJgP .F /.N    XO.  f..  g x;$( HHSr¸<g ;` ;p`& - g -   gp`- ;p`p *nN^NuNV.*n  Jm "g      rí  r$/ N    XOp *nN^Nu      @(#)str_io.c 1.47 89/04/18 SMI      S(        S1          
`                  N                         N      S:      SA      SD      SK      SO      ST      SW      SZ    ttcompat            sflag == 0 || sflag == CLONEOPEN ../../os/str_io.c stropen: out of streams
 vp->v_stream ../../os/str_io.c vp->v_stream ../../os/str_io.c 0 ../../os/str_io.c 0 ../../os/str_io.c !(stp->sd_flag & STPLEX) ../../os/str_io.c (bp->b_wptr - bp->b_rptr) == sizeof (struct stroptions) ../../os/str_io.c 0 ../../os/str_io.c vp->v_stream ../../os/str_io.c rmax ../../os/str_io.c vp->v_stream ../../os/str_io.c vp->v_stream ../../os/str_io.c rmax ../../os/str_io.c !(stp->sd_flag & STPLEX) ../../os/str_io.c vp->v_stream ../../os/str_io.c stp->sd_iocblk ../../os/str_io.c 0 ../../os/str_io.c vp->v_stream ../../os/str_io.c vp->v_stream ../../os/str_io.c (retevents & (POLLPRI|POLLIN)) != (POLLPRI|POLLIN) ../../os/str_io.c vp->v_stream ../../os/str_io.c sflag == MODOPEN ../../os/str_io.c count >= 0 ../../os/str_io.c 0 ../../os/str_io.c count >= 0 ../../os/str_io.c 0 ../../os/str_io.c count==0 ../../os/str_io.c qup || qdown || index ../../os/str_io.c munlink: could not perform unlink ioctl, closing anyway
 (fpdown >= file) && (fpdown < fileNFILE) ../../os/str_io.c 0 ../../os/str_io.c (size >= 0) && (size <= rbsize[ndblkclass - 1]) ../../os/str_io.c        strrhead strwhead ldterm bk ldterm tab ntab ms kb slip     $  @   *  @   0  P   N  P   j  BP  *  @  B  P  R  P  d  P  |  P    P    3P    @    P    -P    P    3P    3P    3P    3P    3P    3P    3P    3P  N  @  T  @  \  @    bP    @      P    $P  0  @  N  bP  v  P    @    @    3P    -P    P    3P    P  n  $P    @    @    P    P    @    @  @  P  P  P  f  P    BP    MP    yP    @    P    P    vP  *  3P  4  -P  :  P  B  3P  N  yP  l  >P  v  vP    ?P    ?P  D  @  J  @  P  P    P    yP    P    uP  &  @  ,  @  2  P  >  vP    9P    P    BP    P    P  	  yP  	"  yP  	@  P  	H  `P  	V  P  	d  P  	  @  	  yP  	  yP  	  P  
  P  
&  vP  
l  aP  
  P  
  vP  
  P    P  ,  @  J  9P  T  vP  \  P  d  uP    MP    P    P  @  P  N  vP  r  P    [P    P    P  
&  @  
,  @  
2  P  
>  vP  
  @  
  @  
  P  
  PP    @  >  PP  d  @  |  @    P    MP    P    `P    P    P    yP    AP  8  P  B  P  J  P  T  P  n  9P  z  +P    P    P    P    @    eP    vP    9P     P  ,  P  6  P  D  @  R  vP  r  +P    @    9P    vP    P    yP  &  >P  2  vP  \  eP    vP    P    @    @    P    vP  $  P  :  qP  T  eP  d  @  j  @  p  P  |  vP    cP  r  P  |  ZP    P    yP    ?P    ?P  
  @    @    P  n  @  t  @  z  P    P    P    P  L  @  \  yP  j  yP    9P    P    BP    P    0P    yP  D  @  p  P  x  uP    @    @    P    P    P    yP    0P  ,  yP  H  @  Z  yP    @    @    P    @    @    P    P    P    P    @    @    @    P  :  PP  ^  P  h  P  p  P  z  P    9P    @    @     P  <  @  D  @  L  @  r  @    @    @    @  l  AP    9P    P    BP     kP  \  6P    @    AP    P     \P  .  	P  n  @    @    @    [P    P  Z  @  n  @    P    `P    @    @   $  @   <  @   B  @   L  @   |  P     P     P     P     `P     @     P  !  P  !  P  !F  @  !P  @  !v  @  !  P  !  @  "  P  "  @  ">  HP  "L  P  "V  uP  "l  @  #<  ;P  #  ?P  $  aP  %  aP  &  P  &  P  &  P  &  P  '  :P  '  P  '4  yP  '  @  '  P  '  uP  '  0P  '  @  '  yP  (*  @  (@  P  (b  }P  (  P  (  P  )  P  )(  yP  )F  yP  )b  @  )r  yP  )  yP  )  LP  )  P  )  [P  )  vP  *  @  *  @  *  BP  +\  9P  +h  P  +n  BP  +  @  +  @  +  @  +  @  ,  @  ,^  @  ,  @  ,  @  ,  P  -  fP  -   \P  -p  	P  -z  @  -  BP  .  P  .2  qP  .B  P  .\  @  .v  	P  .  
P  .  	P  .  *P  .  @  .  	P  .  @  .  rP  .  	P  .  @  /  *P  /  @  /,  @  /b  	P  /  	P  /  *P  /  P  /  }P  /  @  0  9P  0  P  0  BP  1  @  1  P  1  P  1  P  1  MP  2   vP  2  @  2$  yP  2B  P  2J  uP  2P  P  2|  BP  2  yP  2  MP  3  yP  3  MP  3(  P  3.  P  3<  P  3`  @  3f  @  3l  P  3  MP  3  yP  3  P  3  @  3  @  3  P  4&  MP  40  yP  4<  P  4L  BP  4  vP  4  MP  4  yP  4  P  4  @  5  vP  5$  @  5*  @  5f  @  5l  @  5r  P  5  P  5  P  6  P  6.  yP  6X  P  6  P  6  yP  6  @  6  yP  6  P  6  uP  7  P  7  P  8  P  8  vP  8  P  9R  P  9p  P  9  P  :  9P  :  vP  :  P  :   uP  :x  PP  :  @  ;   @  ;  P  ;|  P  ;  P  ;  P  ;  :P  <  P  <  yP  <4  @  <Z  P  <b  uP  <z  0P  <  @  <  yP  <  P  <  yP  =  0P  =d  @  =j  @  =p  P  =  ;P  =  yP  =  yP  =  P  =  yP  =  P  >  @  >  @  >$  P  >F  P  >  ZP  >  0P  >  ZP  >  yP  ?  ZP  ?8  yP  ?\  P  ?n  P  ?  @  ?  @  ?  P  ?  @  @   @  @,  yP  @:  yP  @d  P  @l  uP  @r  P  @  JP  @  JP  @  P  @  P  @  P  A   P  A
  P  A  P  A4  P  AF  -P  AL  P  AT  3P  A`  yP  A  P  A  P  A  P  B  @  B$  @  B*  P  BP  }P  Bt  [P  B  P  B  P  B  @  B  @  B  P  B  P  C*  @  C0  @  C6  P  C~  @  C  @  C  P  C  [P  C  P  C  @  C  @  C  P  D  P  D,  gP  D:  P  DZ  P  D  gP  D  P  D  @  D  @  D  P  D  P  E  gP  E$  P  E  @  E  P  E  @  E  @  E  @  F  >P  F\  P  Fb  P  Fj  P  Fv  @  F|  @  F  P  F  @  F  @  F  P  G  }P  G  P  G  P  H"  @  Hf  lP  Hx  }P  H  lP  H  }P  H  vP  H  @  H  vP  H  }P  I  @  I,  vP  IB  /P  IL  P  IT  P  I`  lP  Ix  lP  I  }P  J  aP  J  P  J$  vP  JD  P  Jf  P  Jr  xP  J  P  J  /P  J  lP  J  xP  J  P  J  yP  K  BP  K,  yP  K@  @  KR  yP  Kf  @  K  P  K  lP  K  @  K  @  K  P  K  /P  K  {P  L  P  L  xP  L8  yP  LD  ?P  Lh  yP  M  BP  M,  P  M  P   "  @   0  @   <  @   P  @   \  @   l  @   t  @   |  @     @     @     @     @     @     @                                           )         1          7         @     ?J   I     M   S          [          d     M   l          y     
`                                                                                     F         D        DH                                                               (        5        <       J       T         ]       k     Lv  u     j       N         @                                                                    /                        D                    	                         $         .         7        @     NT  G         O         W     /  g         q         x     ,       /F               N       J^                                 >                          N                        Kt       <                 &        +        3     C  <     :  G        P        Y         `         i     8  v                                                        E8                                   @       .R                                ER                 #       ,         5         =       F     Gd  R         ]         f     F  l         t         z                       N                N8       Sd                         S`               B                *                                  A       Ar  '         /        :        D        J         Q         [         a         i     5  v        ~     A                                                         N              52                                         ,                    &         -       E        O     @L  X         a         i        s        {_specvp _other_specvp _nbuf _linkblk _rootvp lmult _rootdev _qattach _strvtime _fmodsw _strncmp _sccsid _canputextra _strrput _bclnlist _lbolt _qs _qtail _pollreset _strmsgsz _putbq _kmem_fast_free _munlinkall _findlinks _linkcycle _streams _file _nproc _log _whichqs _avenrun _domainnamelen _hostnamelen _runin _strdismantle _strclose _vn_rele _strcheckoutq _strwaitq _stroutput _strm_info _hostname _fmodcnt _putq _tz _queue_free _dumpvp _getclass _canput _strdoioctl _nchrdev _strst _alloclink _boottime _inferior _panicstr _noproc _gsignal _strctlsz _sealloc _physmem _ldtab _closef _sefree _getcompatqueue _msgdsize _sleep _dopush _getmname _boothowto _strdata _strwaitbuf _putctl1 _nfile _qhead _strselect _ufalloc _untimeout _stwm_info _tick _selwakeup _strunbcall _strpoll _procNPROC _strkread _phz _runout _getiocd _strputmsg _pidhash _selwait _bcopy _findmod _strwakepoll _nblkdev _strwrite ldivt _uiomove _cdevsw _psignal _getendq _qreply _nstrpush _nmuxlink _domainname _initialize_ldtab _strclean _pfind _rbsize _munlinkone _strioctl _runrun _bufhash _qenable _strcmp _strwsrv _strmakemsg _runqueues _freemsg _setq _setrun _splx _stropen _dballoc _ttcompatname _allocb _stwdata _ttcompat_qinit _wakeup _streamsNSTREAMS _ioc_id _maxmem _putiocd _hz _ldreplace _copyout _getf _assfail _str2time _strtime _allocq _fileNFILE _freeproc _proc _backq _splclock _getq _flushq _getiocseqno _wantin _str3time _time _dumplo _bufcall _allproc _zombproc _ndblkclass _ldtab_initialized _bfreelist _strgetmsg _strsendsig _linkb _qrunflag _spltty _strread _qsize _unselect _freeb _assign_controlling_tty _bufalloc _qdetach _timeout _copyin _bufchain _curpri  XO.  f..  g x;$( HHSr¸<g ;` ;p`& - g -   gp`- ;p`p *nN^NuNV.*n  Jm "g      rí  r$/ N    XOp *nN^Nu      ./share/sys/sun2/OBJ/subr_prf.o                                                                        444       0      12        12241  4424710032  11422                                                                                                                                                                                                                                                                                                                                                                         	        ,          NVA -HBHx //. N  O N    p N^NuNV.A -H*x>R"
fBHx `,    f*y    J g&Hx HUN    POJgHUHx /./. N  p *nN^NuNV.*n r-AA -HHx N  xXO"
g    f*y    BHUN    POJfr-AHU/././. N  O N    p *nN^NuNV.N    . A -H/. N  xXOBHx /./. N  O /N    XOJ    fBHx /./. N  O N    p ..N^NuNV.K <BBHx HnHUHnHx 
/. N  nO  *@ >BHx A/
HnN  p *nN^NuNV\H<*n (n BxE|` ~9n 4~0-FxHH, `  ` ~`~
`~/.x/. /. HnHRHn|/XL/,N  nO  $@` XL.,z |, g`r
f.Ae"/. /. A|/
Hn|N  O E| 
Ae"/. /. A|/
Hn|N  O E|Qk J`XL.,XL&lB/. /. HnHRHn|HH/ /N  nO  $@BJg HH* g  Srg|Ae"/. /. A|/
Hn|N  O E|Jgp,`p<|-FHH z oAe"/. /. A|/
Hn|N  O E|RK`  o hRK`Jg bAe"/. /. A|/
Hn|N  O E| >` 0XL&lHH, g ~
f.Ae"/. /. A|/
Hn|N  O E| 
Ae"/. /. A|/
Hn|N  O E|`Ae"/. /. A|/
Hn|N  O E| %`  Jf$/. /. A|/
Hn|N  L<\N^Nu~
f.Ae"/. /. A|/
Hn|N  O E| 
Ae"/. /. A|/
Hn|N  O E|HH, ~%f jHH, ~2l  ~xbA .rTfA0;N zxusoldcbXOD%`NV.   
 fBJ l< .  e"/.  /.  / /. N  O -n   n  -R D K . ". N    A  	  . ". N    -@ S $Jf` 0 . $S $Jn .  e"/.  /.  / /. N  O -n   n R Ab . *nN^NuNV  J    g
r  	`D#     B  	J;$g0 x;$ h    g Hx:N    XOA:0< "|    "Q/. Hy  	a HPO/9  	N    XOp N^NuNV  /. Hy  	Hx a  O /. Hy  	a 
POp N^NuNV   n /( $0( rraЁ/ 0(    / /. Hy  	a p N^NuNV  B  	#  
    /. /. /. Hy  
a O B    Hy  
6a XOp N^NuNVn    
 f/. /. Hx Hy  
GN  O /. /. Hx HnN  p N^NuNVH0*n .. (n   gJ    f09    y    g(y    J  	f  ,g  /. HUHTN    O Jg  |Ά`  HH, g   g  z
g  zg  J    g| 0b    f     g6# 0b    #     B   B   z A   B0X R  mA      R   J   k     mB     gJ  	f
/N    XOS J n 6p L0N^NuNVH | `rJ  
`m    
`m0-|  
I` nRHH/ N    XO nJfB  
` 9  
`R  
`A   0 HH. / N    XOr
fR  	mp L N^Nu                0123456789abcdef panic: %s
 %s: table is full
 %s: table is full
 %s%d%c: hard error sn%d   assertion failed: %s, file: %s, line: %d
 assertion failed 
 
<top of msgbuf>
           @   $  P   N  8P   V  $P   h  P     @     @     8P     $P     P     @     P    JP     @  6  @  B  AP  J  TP  `  @  j  P    @    @  8  @  ~  @    @    @  6  @    @    @    @  >  @  l  @    @    @    @    @    /P    @    ?P  &  @  X   P  b  @  l   P  r  @    P    -P    @    @    P    @    @  .  @  B  @  H  @  L   P  ^  @  l   P  r  @    @    @    @     P    !P    GP     $P    @    P  Z  P  f  DP  r  DP  ~  DP    DP    DP    DP    DP    DP    DP    DP    DP    DP    DP    @    BP  	  @  	&  @  	.  @  	H  BP  	X  @  	^  @  	d  @  	j  DP  	|  BP  	  @            
                        	   #         ,         5      .   >          F     	   P     n   X         b         f         m      x   r        w                                          x                            	                                             x                                                       '        /        ;        C        L        U        ^        f     	  v                              4                                                                                                       x                 $        -        7         >       I         O         W        _         g     <  p        y                                                     R        $                                                                          
        _nbuf _rootvp _boot _prtmsgbuf _rootdev _desscan _uprintf _printf _noprintf _printn _bclnlist _qs _nproc _sum _log _whichqs _fbdev _runin _freemem _rate _strcheckoutq _stroutput _panic_opt _logwakeup _desfree _avefree _dumpvp _logpri _maxpgio _nchrdev _setjmp _msgbufinit _panicstr _consdev _noproc _kbddevopen _consvp _harderr _physmem _saferss _maxslp _prtmsgbuflines _multprog _avefree30 _boothowto _panic_regs _nscan ulmodt _procNPROC _deficit _runout _pidhash _selwait _nblkdev _putchar _forkstat _rconsvp _writekmsg _cnt _runrun _bufhash _minfree _mousedev uldivt _tablefull _splx _cnputc _maxmem _msgbuf _assfail _tprintf _rconsdev _freeproc _proc _splhigh _prf _wantin _panic _total _lotsfree _dumplo _allproc _zombproc _bfreelist _log_open _kbddev _bufalloc _bufchain _curpri losing anyway
 (fpdown >= file) && (fpdown < fileNFILE) ../../os/str_io.c 0 ../../os/str_io.c (size >= 0) && (size <= rbsize[ndblkclass - 1]) ../../os/str_io.c        strrhead strwhead ldterm bk ldterm tab ntab ms kb slip     $  @   *  @   0  P   N  P   j  BP  *  @  B  P  R  P  d  P  |  P    P    3P    @    P    -P    P./share/sys/sun2/OBJ/swapgeneric.o                                                                     444       0      12        10507  4424711710  12116                                                                                                                                                                                                                                                                                                                                                                         @  8            P    NV 9       g  n B n Jf X/. Hy  N    POB .A    J g .A    /0 Hy  N    POR   mHy  N    XO/. N  XOB .A    J gT n Jf, .A    /0 /. N    PO .    `  /.  .A    /0 N    POJgbR   m/. Hy  N    PO`  n JgRB .A    J g./.  .A    /0 N    POJf .    `R   mp N^NuNV   9       g/. Hy  N    PO/. N  XOp N^NuNVH0 9       g *|  d`  J  f  HUN  XO+@ 
n  J 
lB 
`t0- H   " ҁЁA    0   
fN~-G`<>- 0- H   ".灀A;@ HUN  XO+@ 
;G J 
nR   oK Jf \~#  ~-G`   n ( h n ( HH~a-@`   n ( 9 n  .Ѐ" Ё( HH~0Ё-@( a m( h n( HH~a-@`P n J( gFHy  	9N    XO`6Hy  	 N    XO`& n ( HH/ HH/ Hy  	N    O f /. Hy  N    PO*|  d`J 
g/Hy  N    POK JfHy  N    XO/. N  XO n Jf2*|  dBHy  /. N    POJf
~-G` DB` <*|  d` n "Uf"U) ( gK JfJg Hy  	/. N    POJf~-G`B n ( 0 m ( 9 n ( HH~0-@( 0 l J n ( a l  n J( g Hy  	RN    XO` BB n Jg  *|  dJg j n "Ufr"U) ( ffJ( g( HH~0-@ n J( g( HH~a-@0- H   2< m A".灀A;@ HUN  XOJn  K ` v*|  d`   y (P U, fz U( , fn n  sf ( d f.   .~` , -@-l 0- H   2< m A".灀A;@ HUN  XOJnRK Jf lBBHy  	k/. N    POJf~-G*|  d`HUN  XOJnK Jfp `   n "U n "Ui     	oH n  .r
N    ~0Ї@  n  .r
N    Ї@  n  .~aЇ@  n B( `( n  .~0Ї@  n  .~aЇ@  n B( 0- H   2< m A".ҮAHL0N^NuNVH0*n ~(|    `vJl  gl  fd~ 0- H   =@Hx 0m /H" ҁЁA     p NPOJf*Hx 0m /0.H" ҁЁA    p NPOp`I LJf m 0( ,  gp` L0N^NuNV.N    . r
f~
/N    XO ..N^NuNVH *n `rgfr#gRr@gZrg"a~ rgr
fBL N^NuHx N    XOHx  N    XOHx N    XOSM d*n `*n Hx 
N    XO`@(#)swapgeneric.c 5.45 89/02/25 SMI   	p           	s                                 %s filesystem type (  %s   ):  Unknown filesystem type '%s'
 %s name:  %s device (  %s%%d[a-h]  ):  swap unknown device name %c%c
 swap bad/missing unit number
 bad partition (use a-h)
 bad partition (use a-h)
 swap xy sd        P   (  @   .  P   @  
P   R  
P   \  @   b  P   x  @   ~  P     @     
P     
P     5P     
P     
P     .P    @    P  2  
P  H  
P  R  .P  d  
P    P    @    P    @    P    @    @    @    =P  L  @  |  @    @    P    @    P  <  @  B  P  \  @  b  P  j  @  z  @    P    @    P    @    @    @    .P    @    @    .P    @    P    @     @  6  @    @    @    .P    @    @  F  'P  ^  P    P  *  =P  T  =P    P    1P    1P    1P    1P  8  1P   $  @   (  *P   2  @   6  )P            
                           $          -          5     @   =         G        T         Z      x   _         f         o          v      x   |                                                                                                                                                             d          #        +        4       =        F        O         U        _         i         t      x  y                                                               ~                                                $                                          !        +        3_nbuf _rootvp _rootdev _desscan _mbdinit _printf _sccsid _bclnlist _getblockdev _file _sum _runin _freemem _vfssw _rate _desfree _avefree _dumpvp _maxpgio _nchrdev _panicstr _noproc _getchar _cngetc _physmem lmodt _saferss _maxslp _multprog _avefree30 _boothowto _nfile _bdevlist _nscan _runout _deficit _chkroot _selwait _nblkdev ldivt _forkstat _scdriver _xycdriver _cnt _runrun _bufhash _strcmp _minfree _getfstype _cnputc _maxmem _getfsname _fileNFILE _strcpy _gets _wantin _iopbmap _total _dumplo _lotsfree _bfreelist _bdevsw _bufalloc _bufchain _curpri                                         
        _nbuf _rootvp _boot _prtmsgbuf _rootdev _desscan _uprintf _printf _noprintf _printn _bclnlist _qs _nproc _sum _l./share/sys/sun2/OBJ/sys_process.o                                                                     444       0      12        12047  4424710064  12165                                                                                                                                                                                                                                                                                                                                                                         	   H            H    NVH0 (x;^Jf, x;$r 0 x;$"x;$!i l | x;$ h l     0` /, N    XO*@"
gz   
f^ x;$ h DJh g x;$ h D0( m 6f
 - 0rg
 ;` Br 0+x;$ |Hx HUN    PO x;$     0`  - |;$f
 - 0rf
 ;`    f-  gB | 0` -  f`Hx Hy    N    POJ    f0- <H#    B   #    #    #   #    rí 0B; rr
b 8@0; N   R,,    ,,,,,HUN  XOHx H/9   Hy   N    O Jg r#   ` Hx HHy   /9   N    O Jgr#   HUN  XO` Hx N    XO#   dJ   o #         l 9   ` <   #   `HUN  XO/9   `/9   /9   dN    O Jgr#   `                    ` zHx N    XO#   d`f#         l 9   ` <   #   `/9   `/9   d/9   N    O Jf xHUN  XO            J   nHx /9   dN    POB   d`  HnN    XOr-A=|Hy   hHx BHnB/9   N    O ;J8;g
r#   `2n g d ;/9   hN    XO`HUN  XO!   ;J   g ;B    Hy    N    XOp L0 N^NuNV  `( n (  f
/N    XOHx Hy    N    POJ   np N^NuNVH< x;$-h  x;$0( <H    f  x;$B( -y   B   $y    .S|b @0; N  2 `  @BzvHx Hx HRN    O Jg >HRN    XO#   ` 2Hx Hx HRN    O Jg HRN    XO#   ` .
m    l  lR @#0    ` /9   HRN    PO. lFHx Hx HR/.N    O Jf/9   HRN    PO. Hx 
Hx HR/.N    O Jl |` pBHRN    POJm ^/9   HRN    PO` R 
lR  0 *@~  A  	 0 и;(g8R|m 8;(~@Їf  x;( ( @   "9    #   *   ` ~g x;(!J D       b  x;$y       	f x;(     @`@   f  x;$~Ϩ 0 x;$ 0 x;$B |`   f x;$     0Hy    N    XOp` ` x;$ 0 x;$B |Hy    N    XO x;$( HH/ N    XO x;(0< "|   "Q`   x;( ( @   "9   X #   XA   "x;(0< "Q` /9   `/9   dHRN    O Jg ` /9   `HR/9   dN    O Jg ` zHx /9   `HRN    O Jg ^&J| (y   d`HSN    XORRK ~f*L`HSN    XO*XXK 9   `Wm(M   `l HSN    XORRK`B/9   `HRN    O JgB`&Hx /9   `HR/.N    O Jf  |-F&J| (y   d`HH/ HSN    PO. m\RRKRL rf*L`/HSN    PO. m:XXKXM 9   `Wm(M`HH/ HSN    PO. mRRKRL   `mJgHx 
/9   `HR/.N    O Jl`/9   hN    XOJf~#   Hy    N    XOp L<N^Nu                                   	   
         
                B  3P     0P    NP    $P    NP    NP  $  NP  ,  NP  4  NP  :  NP  B  NP    @    NP    NP    ;P    NP    NP    NP    JP    NP    @    P    NP    NP    NP    NP    NP  ,  NP  4  @  <  NP  B  NP  H  NP  N  ;P  ^  NP  l  NP  v  NP    NP    P    NP    NP    NP    NP    NP    NP    NP    NP    JP    @    NP    NP    NP    NP    P    NP  ,  P  @  NP  R  NP  X  P  n  NP    NP    P    @    NP    NP    NP    NP    9P    8P    NP    $P    NP  .  NP  @  NP  H  NP  N  NP    +P    @P    NP    +P    IP    NP    NP  "  NP  *  P  D  /P  R  NP  Z  P  r  /P    
P    NP    
P    @    NP  
  NP    NP  ,  NP  :  NP    NP    9P    NP    9P    P    NP    NP    NP     NP  8  NP  >  NP  F  JP  Z  NP  b  NP  h  ;P    NP    +P    NP    <P    @P    NP    NP    <P    NP    +P    NP  (  /P  B  NP  T  P  v  P    NP    P    NP    NP    /P    NP    LP    NP    NP  	  9P            
                            !         *          3         =          I     	   Q         U          ]          f        o         v      x   {                                                   x                                                                                              
                         (        0        :         A        L        W        ^        i        r        z                                                                                   x                                                                                     %        -         6      $  =        G        O        X        b       m        t        ~                                                 l  _nbuf _rootvp _exit _rootdev _desscan _suibyte _bclnlist _kmem_alloc _ipcreg _qs _suword _suiword _procxmt _nproc _sum _whichqs _runin _freemem _runchild _vn_rele _rate _vn_create _kmem_free _desfree _avefree _dumpvp _maxpgio _nchrdev _panicstr _acctbuf _noproc _vattr_null _physmem _saferss _maxslp _multprog _sleep _avefree30 _boothowto _nscan _procNPROC _deficit _runout _useracc _pidhash _selwait _nblkdev _as_setprot _psignal _forkstat _ptrace _pfind _cnt _runrun _bufhash _minfree _setrun _wakeup _maxmem _copyout _fuibyte _freeproc _proc _wantin _fuiword _total _lotsfree _dumplo _allproc _zombproc _bfreelist _acctp _bufalloc _fuword _copyin _bufchain _core _curpri _ipc  #         l 9   ` <   #   `HUN  XO/9   `/9   /9   dN    O Jgr#   `                    ` zHx N    XO#   d`f#         l 9   ` <   #   `/9   `/9   d/9   N    O Jf xHUN  XO            J   nHx /9   dN    POB   d`  HnN    XOr-A=|Hy   hHx BHnB/9   N    O ;J8;g
r#   `2n g d ;/9   hN    XO`HUN  XO!   ;J   g ;B    Hy    N    XOp L0 N^NuNV  `( n (./share/sys/sun2/OBJ/tm.o                                                                              444       0      12        22574  4424712331  10236                                                                                                                                                                                                                                                                                                                                                                         `                 PNVH< *n (|  Hx HUN    POJf  J  xf4/Hx /9    N    O JfHx/. Hy  N    p ` 8#  xHx "/9    N    PO". A    !  . A    J f/. Hy  
N    POp `  Hx " . A    /0 N    PO/. HUN  POJfp `       g   . A    &p E Hx HRN    PO4 xBj   5|  
J+ f|  |  +  g*   f
0* 
  	f4  f/. Hy  )N    POp `r#   y   `r#  pL< N^NuNV  pN^NuNV   n 0( H @    "n "i $0  n 0( HЀ" ЁҁЁ @   "n J gp`p p N^NuNVH8*n  . A    (p   y  x"y  x Q  9  xT/ /N  .PO T Hl A /N  .PO|  |  .< B@J, f`/. Hy  ON    POp `  SJnJo|  G Hl /N  .POHx HSN    POBSBk   J, f|  |  ,  g+   g&p +   / /. Hy  lN    + p `pL8N^NuNVH0. ~΀rl2 G"ҁ    (HJf A    *p "
gJm  fp`   Hx Hx (0n 
/N  O JgBp`  ,  g,  f/Hy  N    POBp`j.  g,  g/Hy  N    POBp`DB )| B@ B, Jl f,)| B@ 9|   9    " Ё/ 0n 
/HzVN    p L0N^NuNVH >. 
,. rЀ" ЁҁЁ    *@rg g\J- gVHx Hx @0H/ N  O Jf8Hx Hx @0H/ N  O JfHx Hx I0H/ N  O JgB fBHx H/N  Bp L N^NuNVH . ~" Ё    *@N    . ` J f   fr@Hx HUN    PO   fr	*/N    XO;n 
 +n  +n  (B $HUN  XOJ fp `VN    . `r@Hx HUN    PO   g/N    XOHUN    XO-@   g
HUN    XO~ϕ .L N^NuNVH< *n 0- r-@$@"
ҁ    " Ё    &@B N    -@`Hx Hj N    PO*  lR*  .A     p (h $J f"'M B J .f)K .` l 2!K )K 2` k !M 'M J 6f
HTN  XO/.N    XOp L< N^NuNVH< *n ` r(k "f
+k  .` `0, r-@$@"
ҁ    B* HHjr` Br-A ." Ё    f   , (rrgFr4gPr8g:rDgDr+A 6Hx,Hx < , Ѐ" Ё/ N    PO/ N    PO%@ `$r+A 6%|  , `r+A 6%|   r-A-l -l (` \ , $lV䀰 or9|  ` 6 , $lV䀰 f&    g/, /,  N    POB ()l  (`      f , $lVR%@  , $lV-j 䰮fP-l     f,    6gJ JgrL-Ar+A 6Br-A`r0`r,-Ar+A 6r<%A `  r+A 6 , $lV䀰orH-A , $lV䀐-@`rI-A , $lV".䒀-AHx,Hx < .Ѐ" Ё/ N    PO/ N    PO%@ p    ^D -@B0- HA     0 rЁ-@Hx / N    PO n .r0 n.r( 刁(  n  J* g
 n .` n0,   gp `p(   爁(  n   n .C    "q 0) r( 刁(  n1n 
 n1n JfHUN  
HXO`DHUN    XO`8B J'l  HTN    XO* S*   mHj N    XO&m ."f L< N^NuNVH0 *n rí "0- HA     0 rЁ(@Jl gHl  -     / N  .PO0- HA     p J( gHy  N    XO0- HA     p |   m |  r "p L0 N^NuNVH< . A    &p .g PJ .g H + "~g < . A     p J( f $ . A     0 ~Ї-@*k .(m .fHy  N    XO0, ~΀|mHy  N    XO$G"
ҁ     nA C 2*  g    f%l  ` np 0( ", %A Hx /.N    PO n0   . A     p | 	  . A     p |   k |  B . A     p J( f4`Hy  N    XO|ͫ ",+ 6f>0k /Hy  N    PO`  .R  n*<   "9    SJo`zf*  g*  g *  g |%| B@ p *   -@    f|     	f*  gB`  Jg    g    g
   	fHTN  XO%l  ` zfR J    Jl*R `  HHJo " Ё    g/./, $/Hy  .N    O ~`  R `  "ށ    f   , (~g4~4g.~Hg~Ig~pg~qg`Z , Ѫ `P ,  `FB `@ , $lV%@ `:`8Hy  LN    XO` S|b@0; N jrB 6~ "J g
HSN    `HSN  XOp L<N^NuNVH ~ *y    `:"
g0J .g* - "  g  A     p J( f/a LXOp`RK jrmp L N^NuNVH< *n (m .&l 0+ rЀ" ЁҁЁ    $@ - "  gPB J)k  'j  (HSN    XO* S*   mHj N    XO+l  .J g,B J .f+L .`J g+l  .B  m 2!L +L 2J .gHUa FXOp L< N^NuNVH8. ~A    00 HA    *p . Ѐ" ЁҁЁ    (@. A    00 HA    &p  B@ gF[ J j<. / Hy  SN    PO)| B@ N    . 0m /a XO/N    XO    6f  N    .  - "  fnJ+ fh|  |  G Hx HSN    PO6 (     . |A     p 0( H+ 刁+  m |  | "/N    XO 9    " Ё/ /. HzN    p L8N^NuNVH0*n 0- ~. Ѐ" ЁҁЁ    (@0- rA    00 HA     0 rЁ"@"ށ    fP - $lV䀰 l - $lVr 2) 
)@ )l  `2 - $lVr 2) 
Ё)@  , S)@ ` - $lV)@ p L0N^NuNV/. 0n 
/N  hPO-@f6/. Hy    Hx 0n 
/. r" Ё    / HzN    N^NuNV/. 0n 
/N  hPO-@f4/. Hy    B0n 
/. r" Ё    / HzN    N^NuNVH . ~΀|l A    "p ,	gJi  fp`L n  P    gp`:އ"ށҁށ    *G n  ( l  jV+@ R+@ p L N^NuNVH . ~-@*@"
ҁ     . mg@mg  p`  -n  n0H~b@0; N               n.( r-A`~ n-h JoJnp`  Sk  /. n0HA  /0 0n 
/a >O Jf nP gP f-  gp`@-  g`4-n  n1m   np -   1@  n!m   n0 p L N^NuNV  pN^NuNV        n 0 
 n  .    1@ p N^Nu    @(#)tm.c 4.29 88/09/25                
H    `     p      s                @   D   E   p   q   4   8   (      tm%d: can't get iopb at %x to initialize controller
 tm%d: can't get iopb space
 tm%d: older TapeMaster must be first
 tm%d: no response from ctlr
 tm%d: error %d during config
 mt%d: not online
 mt%d: no write ring
 tmgo: gate wasn't open
 tmintr: queuing error tmintr: queueing error 2 tmintr: can't clear interrupt
 tm%d: stray interrupt
 mt%d: hard error bn=%d er=%x
 tmintr mt%d: lost interrupt
        mt tm        HP     P   (  @   6  jP   <  P   R  @   X  	P   d  @   n  jP   t  P     &P     &P     @     	P     &P     CP     @     @     &P    CP  `  @  l  @  r  	P    @    @    @    XP    IP    &P  (  @  .  @  <  @  H  @  b  @    @    	P    @    CP    @    	P  R  IP  b  JP    @    @    P    @    P    _P  ,  vP  `  IP    @    @    @    @    P    9P  6  3P  L  ZP  l  @  ~  9P    3P    ZP    +P    [P    IP    ^P    9P  2  3P  L  JP    @    ZP    IP  "  P  j  P  t  -P    P    P    -P  	  &P  	4  CP  	  JP  	  @  	  LP  
  /P  
.  [P  
d  &P  
  HP  
  @  
  &P  
  @  
  	P  
  &P  
  :P  $  &P  <  &P  Z  @  `  gP  v  @  |  gP    IP    CP    &P    &P  *  &P  <  @  B  	P  \  @  b  	P    wP  
   @  
b  4P  
z  @  
  	P  
  P    @  
  gP  D  `P  N  @  l  :P    &P    IP    /P  &  [P    XP    :P    IP    XP    &P     @    	P    9P  ,  ZP  @  9P  n  CP    JP    ZP    _P    vP    IP  &  XP  4  &P  L  P    @    UP     4P    <P  $  @  6  UP  T  4P  `  <P    JP    IP    IP    @  4  HP     @      @   $  @   (  @   ,  @   0  @   8  @   <  JP   @  @   D  :P            
                          &         /          6         ?          E          N          V     <   _     `   g         q         x                        ~                                   x                                                                         x        $                 
H  	      @                           )        1        :        A        J     
  R        \        f         p        x         ~                                                                                                                                h                                  %        -         4       =       G        P        Y         _      4  i        r        {              .                @       |        x                                                `                                        x                                   $        /        9        ?        G        M       V         ]       e       m        v      $  }                                                           ,                                                   _nbuf _tmstrategy _rootvp _ctmbuf _rootdev _rmget _desscan _imax _uprintf _printf _tmclose _sccsid _bclnlist _lbolt _rmalloc _qs _tmtimer _file _nproc _tmread _sum _whichqs _avenrun _domainnamelen _hostnamelen _runin _freemem _blkclr _rate _tmdump _pokec _tmgo _hostname _tz _desfree _avefree _dumpvp _maxpgio _tm_mb _nchrdev _tmintr _boottime _panicstr _geterror _noproc _imin _physmem _biodone _saferss _maxslp _multprog _sleep _rtmbuf _avefree30 _boothowto _tmwrite _nfile _spl3 _tmcinfo _nscan _physio _tmphys _tick _procNPROC _phz _deficit _runout _bzero _tmioctl _tmattach _pidhash _selwait _DVMA _mt_softc _tmdinfo _nblkdev _mbgo _c68t86 _forkstat _domainname _tmdriver _cnt _tmprobe _runrun _bufhash _minphys _minfree _tmpoll _mttotm _tmslave _splx _wakeup _tmscp _maxmem _mtutab _hz _mbdone _fileNFILE _freeproc _proc _wantin _time _tmstart _panic _tmdone _tminit _iopbmap _total _kernelmap _lotsfree _dumplo _tmseteof _allproc _zombproc _bfreelist _tmopen _tmcommand _bufalloc _timeout _cpudelay _bufchain _curpri  A    *p "
gJm  fp`   Hx Hx (0n 
/N  O JgBp`  ,  g,  f/Hy  N    POBp`j.  g,  g/Hy  ./share/sys/sun2/OBJ/tty.o                                                                             444       0      12         4663  4424710100  10405                                                                                                                                                                                                                                                                                                                                                                                   t          NV.*n rÕB B J g/- N    XOB *nN^NuNVH0 *n  -   
g>Hx Hx N    PO(@JgL l  R HT . r$Ё/  n  h $ PNPO`$B/. N    POHx Hx  n /( N    L0 N^NuNVH< *n (n  n B&l  Ar
\f &A0;N |B    | Z Z ltN    -@B . r$/ N    POHx Hx  n /(N    O /.N    XO l $h +R +j  j  j  ` N    -@B . r$/ N    POHx Hx  n /(N    O /.N    XO l $h  -   r 2+@  -   r 2* +@ ` & l $h Hx HRHm N    O Jg A !j   Hx Hx  n /(N    O `   l  h  ;@  l  h  ( ;@ Bm Bm `  r`  rÕ`  Hx Hx N    PO$@Jg   m /( N    XOJf/- HUa POHRN    XO`Z l  h "j R HR m /(  m  h  P PNPO`,  t  t
"T"T
"T	TTTtgt%trB  l |  
 A2r\f A0;N                       D   $` 8Hx Hx "N    PO-@f
r"-A`  n$h Hx "HRN    PO%m   nr"Ө 'A J g/, N    XO)n ` Hx Hx N    PO-@f
r-A`  n$h Hx HRN    PO5m   nrӨ 'A J g/, N    XO)n ` lHx Hx N    PO$@Jf
r-A` PA "j #h  "P r'A J g/, N    XO)J ` Hx Hx N    PO$@JgL j BX r'A J g/, N    XO)J  n r `  BHx Hx N    PO$@Jf
r-A`  N    -@ n -h `/.N    XOѮ n-PJf/.N    XO j  X r'A J g/, N    XO)J `@@"T@T@th@ts@tj  t  t
"T"T
"T	TTTtgt%trp `0N    -@J g/- N    XO+L /.N    XO .L< N^Nu@(#)tty.c 2.26 89/03/08 SMI        "  P   T  P     P     P    P    P  2  P  @  P  j  P    P    P    P    P  "  P  r  P    P    P  ^  P    P    P    P    P    P  *  P  f  P  ~  P    P    P    P    
P    P  >  P    P    P    P                                      $          *         2          :         K         T         ^         f      4   w                                                                                                                                                                                _rootvp _rootdev _sccsid _runin _bcmp _dumpvp _canput _ttycommon_ioctl _nchrdev _panicstr _noproc _ttycommon_qfull _physmem _msgdsize _boothowto _putctl1 _runout _bzero _selwait _nblkdev _runrun _freemsg _splx _allocb _maxmem _ttycommon_close _flushq _wantin _dumplo _spltty _curpri    爁(  n   n .C    "q 0) r( 刁(  n1n 
 n./share/sys/sun2/OBJ/tty_flow.o                                                                        444       0      12         4375  4424710105  11441                                                                                                                                                                                                                                                                                                                                                                         P                   NVN    -@ n C#h  "C#h  "B.B.B.B. n    g . `rî n    
gh J.frî` n    fh  n  (   gh  J.frî n  (   gh  n  (   
g . `rîA"n #h  "/.N    XOJ  pgDHy  /.p .r@Ё/ p .Ё/ p .Ё/ p .Ё/ /. Hy  N    . g. fp`BN^NuNV.Hx "HnN    PO n p 0-@p 0( -@p 0( -@p 0( -@h B$. n (	(R   mB .B6R   m n h h Hn/. a PO$.N^NuNVN    -@p . -@ n C#h  ".r-@.  grî . g
rî`  JgJ.frîJgJ.frîJ g  p . f . . grî`p . f . Jgp . frîJfp . f . p . gp . f n `rîJg. f n Jf. g n . g n A"n #h  "/.N    XO . g0J  pg(Hy  /.Hy  /./. /. Hy  N     .N^NuNVN    -@ n    fp`B-@ n r/.N    XOJ  pg/./. Hy  N     .N^NuNVN    -@ n  r-@rÐ/.N    XOJ  pg/./. Hy  9N     .N^Nu      @(#)tty_flow.c 1.8 89/01/11 SMI                flushfstopflitfstripf  eatmeflush
stop	start        flow %x: set to ^%c/^%c ^%c ^%c %b
 flow_char: flow %x char %x returns %b new state %b
 flow_stop: flow %x returning %d
 flow_start: flow %x returning %d
           P     P     @     @  4  @  :  P  h  P    P  T  P  h  @  p  @  z  @    @    P    P    P    @    @    P     P     P  (  @  8  @  >  P                                    P   %        2         9         A         J     p   U         _         g         p         {                                          |                                    X                                             
               !        )     t  5        =_rootvp _rootdev _printf _sccsid _flow_fcbits _runin _dumpvp _nchrdev _flowdebug _panicstr _noproc _physmem _boothowto _flow_from_termios _spl7 _flow_stop _runout _flow_init_v _bzero _selwait _nblkdev _flow_from_termio _runrun _flow_flbits _splx _maxmem _flow_char _wantin _flow_start _dumplo _flow_end_v _curpri ycommon_qfull _physmem _msgdsize _boothowto _putctl1 _runout _bzero _selwait _nblkdev _runrun _freemsg _splx _allocb _maxmem _ttycommon_close _flushq _wantin _dumplo _spltty _curpri    爁(  n   n .C    "q 0) r( 刁(  n1n 
 n./share/sys/sun2/OBJ/tty_ldterm.o                                                                      444       0      12        35542  4424710133  12002                                                                                                                                                                                                                                                                                                                                                                         $        P         hNVH8  n J f Hx Hx JN    PO(@JfHy  *N    XOp` rJӬ *l *A  *\C 0< "Q2B &B *B .B 2B 6B :B >B BB F n !M  n !M 8`PN    -@ . rЁ/ Hz8Hx Hx N    O Hx . rЁ/ N    POJfp/.N    XOHx Hx 
 n /( 0N    O Jg`lN    -@ . rЁ/ Hz Hx Hx N    O Hx . rЁ/ N    POJg/N    XO n B  ;p`t/.N    XOHx Hx N    PO(@Jg ~&l 67|  7|, 
7|  7|  Bk rӬ  l |  
HT n /(  h  P PNPO <   L8 N^NuNV  /. N    XOp N^NuNVH8 *n -m  nJ :gN/( :N    `@N    -@A /HzHx Hx N    O Hx Hm N    PO/.N    XOHx Hx N    PO(@Jg&l 6Bk rӬ  l |  
HT/-  m  P PNPO n/N    XOB  n ( &   gHx /- 0N    PO n ( &  gHx /- 0N    POp L8 N^NuNVH8 . ~$Ї-@ n -h *h  n  h p ( 
Jg  ~g~
g  /. /. N    PO`  -    fP -   g&BBHx /. N  O /. N    XO` v n  h B( 
 n  ( R!@  @B `N/. N    XO` F     &`  &` n  h p Jg~g/. /. N    PO`  -   g0 - &  g& n h   b~ϭ &Hx  n/( N    PO - &  f-n  n(h &L ( ѹ     -   f  - ~g `  -   g  - &  grí & ` JfD -   
g. - &   g$ -   grí &Hx  n/( N    PO ` v -   
g   - &   g- g
 -   g,rí &Hx `- fr &Hx  n/( N    PO- g - g  - rg8- $fr  & `  - "fHU/.p / N  O `    -    gt- f Hx p / Hx /. N  O `  - fHx p / Hx /. N  O `v- fHx p / Hx /. N  O `R- gL 
f -   f< -   g~
` 
f -   g~
 -   	g Ae
 Zb   n e   `$ -   g`p n e  -   g: - &  f0 n h P e$ n h  ~ &Hx  n/( N    PO n-h f X/. /. N    POp L8N^NuNVH<*n (m  , &  	g J :g/, :HUN    POB :B >B B &`  n h (  
b /- N    XOJf /.HUN    PO` BHUN    PO/, :N    XOB :B >B BB 2B 6/./-  m  P PNPO` fBHUN    PO/, :N    XOB :B >B BB 2B 6~Ϭ &Hx /- 0N    POHx Hx /- N    O Hx Hx Hm $N    O Hx Hx /- N    O /./-  m  P PNPO` /.HUN  $ PO`  n h p Jg~gH/./-  m  P PNPO` J :g /, :N    XOB :B >B BB 2B 6     &` &` , &  gh/./-  m  P PNPO` . n h p ( 
Jg~
g ^   g B   g X   g /./-  m  P PNPO`   ,   g  &n +  -@   o~-GHTN  lXO$@Jg  -k  +  d* k R HTHU/.HRp / N  
O $@JfHSN    XO.
fHy  *N    XO/.N    XO`&n.f`HTHU/.N  O J Fg/, F/- 0 m 0 P PNPOB FHUN    XO-@f  ,   g( , &  gm   b~Ϭ &Hx Hm $N    POp L<N^NuNVH8. *n (n &n G $ , &  f Jf
rì &` , $f2 ,   gHT/. HSHx Hy  *N  ,~Ϭ &~ &` , f" , &  f  HT/. HSN  *l >` ¾, #f~Ϭ &HT/. HSN  4*l >` , f  , &  fDHT/. HSN  *l >` z, !fHT/. HSN  ` b , &  gjrì &, fHT/. HSN  O *l >`   ,   g  p A  (\J0 g  HT/. HSN  O *l >p A  (\0 `~, fx ,   	gH ,   g>HT/. HSp / N  hO -@`HT/. HSHx N  O SJn m B( 
HT/. N  POHTN  lXO*@` p    Bf: ,   
gHT/. HSHx N  `Hx Hx /. N    ~Ϭ &` , m  -  e, m B( 
Hx Hx N    PO*@Jg   l >!M )M > m R R B , &  f@ 
gJg6, g, f* m B( 
HT/. N  POHTN  lXO*@Jf(`   , 2R 2Jf)l . 6rì & \fr & , &  g&rì & ,   gHT/. HSHx /N  O  ,   gHT/. HSp / N  h`$ 
f ,   gHT/. HSp / N   
L8N^NuNV.*n "m >"	g
 )  fp`S BS  i p *nN^NuNVH8 *n (m >"fHy  *N    XO ,  f:&m :g2`&k "fHy  +N    XO + fB HTN    XO+K >L8 N^NuNVH0. *n (n  ,   g r ,   g J 2f  HT/. HUN  ` L ,   g,p A  )\J0 gHT/. HUHx Hy  *N  ,O HT/. HUHx Hy  *N  ,`   ,   	g  HT/. HUHx Hy  *~N  ,`   , 2 BlHT/. HUN  `  HTN  ,XO, Sk  HT/. HUHx N  O `p A  %\0 HH|bn@0; N ppppp`T ,   
g4 , &  fHT/. HUHx \N  O | &HT/. HUp `HT/. HUp , / N  hS 2L0N^NuNVH0*n .- 6(m :"l `z -   	g> b 	g 
f f&R`R`PJgLS`H -   g>~ `:  R`2`0p A  %\0 HHrb@0; N г e(l "f r - .. ro~ L0N^NuNVH0*n (n HTa XO rgHT/. HUp / a vO HTa XOL0N^NuNVH0*n (n `HT/. HUp / a <O HTa XOHTa XO. r gr	g`4r g4r	g.HT/. HUp / a O HTa XOHTa @XO. rfrg l >R R BL0N^NuNVH0*n (n  ,   g: , B 2f0HTa XO rgvHT/. HUp / a |O HTa XO`HT/. HUp , / N  hO  ,   g HT/. HUHx 
N  hO `HTa XOHTa |XO~fB 2~Ϭ &L0N^NuNVH< *n (n J, !gHT/. HUp , !/ N  hO HT/. HUHx 
N  O &l :$k `HT/. HUp / N  hO  e&k "frì &)l B 2B 6L< N^NuNVH< *n (n  . r$Ё-@&M`   +  f4"
f*k `%k  -K&k  nB /.N    XO"f`   , rHg   ,   gN +  -@   or-A-k  . dZHT/./. @Rp / N  hO `-k `& nR 
fHTHx /.Hx 
N  O  . e$K&k "f HU n /(  h  P PNPOJ Fg/, F n/(  h  P PNPOB FL< N^NuNVH0. *n (n  ,   fp `  |  ,   	g` b: 	g4 
g.HT/. HUHx ^N  O R ,   g ``& @`  fHT/. HUHx ^N  O R~?HT/. HUp / N   RL0N^NuNVH<. *n (n  ,    f ,   g\ ,   gRHx Hx N    PO$@JfHy  +-N    XO`   j R Hx /. HT/, FHRHUN  )@ F`  &l F"gH`&k J f k  (  fXHx /. N    PO$@JfHy  +NN    XO`<'J &J`*Hx /. N    PO&@JfHy  +oN    XO`)K F k R L<N^NuNVH8*n .. (n &n `HS/. HTp / a O SJnL8N^NuNVH0 *n (m >"f.Hx Hx N    PO(@JfHy  +N    XO`+L :+L > L0 N^NuNVH0 *n (n /, :/-  m  P PNPOB :B >B BB 2L0 N^NuNVH8 *n (n  l p ( 
Jg6rg$   f   l  g  BHUN    PO`xHTHUN  `|&m B 2 +    f +   g( +   gBHx @HSBHTHUN  O (@Jg: +   
fHTN    XOѹ    `HTN    XO`HT/-  m  P PNPOp L8 N^NuNVH<*n (n &n $n .
g$`$j J fA -H j ((  ` A -HB x ` Jf2Hx /. N    PO$@Jg  n A -H j ((   ,   g   ,   g   k R p A  )\J0 g`J g \gTR . j  \R Sf2Hx /. N    PO$@Jg  n A -H j ((  p A  )\0  ,    fR . j R S`  ,   g   ae   zb    `  &+  o& ,   g <  '\` <  &\/ /* /+ /N    O Ѭ .ѫ Ѫ  +  d @Jf2Hx /. N    PO$@Jg 8 n A -H j ((   k R  
f ,   g~
z A  %\0X HH 
f4 ,   g* , &  f~@ &~
9  %iHH* S `|ͬ &|  zb @0; N    B h0R .` J .gS . ,   
g  ,   g|` x|` r ,   f @ ,       f R|` L ,       f4 j   R SR . , .~g ( j  *  eS ` z .R . ,   g2 ,    g  |`  |`  ,, .zRzl  | `   ,       g   g`   ,   g   ,   f  |`  J .fV ,   gL`| ,   g|`^ , .rJlDD`, `F ,   g|`8|`4 ,   g| `&|	`" ,       g   g   gB . j R SJg   ,   g\Jf2Hx /. N    PO$@Jg   n A -H j ((   ,   g
 j  ` j BR SSf`` ,   
f</. N    XOѹ    /. /-  m  P PNPO/Hx /- N    O `/. N    XOx B A -H +  e X&k .f/. N    XO . L<N^NuNVH0 *n (n  ,   
g `  BHUN    POHx Hx /- N    O Hx Hx N    PO)@ FgLHTHx HUp . / a O J BgHTHx HUa O J Fg/, F/-  m  P PNPOB F      L0 N^NuNVH0 *n (m  ,   fx    g6BHm $N    POBHUN    POHx Hx /- 0N    O Hx `&BHUN    POHx Hx /- 0N    O Hx Hx /- N    O rì &/. Hx /- N    O J gHHx Hx N    PO)@ Fg2HTHx Hm $p . / a O /, F/- 0 m 0 P PNPOB FL0 N^NuNVH< *n &m  n (h  Tg  Tg  Tg  "T	gD"T
g<"Tg4  Tg j  Tg `HU n /(  h  P PNPOL< N^Nu m $h A C0< "Q2A 0< "J Q0 ,   g(J :g     & . r$/ N    XO  . r$/ HTHnN  "O ` d m $h A C0< "Q2 ,   r 2)@  ,   r 2* )@  ,   r 2* )@  ,   r 2* )@ j 	 j 
 j  j  j 
 j  j  j   . r$/ HTHnN  "O ` J fHx	wHy  +Hy  +N    O  m  h JfBJ fHx	yHy  +Hy  +N    O Hx Hx  n /( N    O Hx `   m  h    fZB/. N    POJ fHx	~Hy  ,Hy  +N    O Hx Hx  n /( N    O Hx Hx  n /(`j m  h    fdB/. N    POJ fHx	Hy  ,9Hy  ,%N    O Hx Hx  n /( N    O Hx Hx  . r$/ N    O J fHx	Hy  ,cHy  ,ON    O  m |  
B B HU/. N    ` *Hx  n /( N    POr &`Hx  n /( N    POrì &`Hx  n /( N    POr &`Hx  n /( N    POrì &` n m  h  rb \@0; N rNVH8 *n (n Bn - ",   gp=|  ,   g,Hx Hx  n /( N    O =| =| Bn`Bnp , =@p , =@J :gN     &/. N    XO`8 ,   f.- , f
- , g=| p , =@p , =@ - ",   g n  ,   g| `B.Jng\Hx Hx N    PO&@JfHy  ,yN    XOA"k 0< "Qrӫ  k |  
HS n /(  h  P PNPOL8 N^NuNVH<*n &m  n (h  @TgP@"Tg HU n /(  h  P PNPOL<N^Nu m $h .* A 0< "J"Q2Jg%G ` m $h 4 5l 
 5l  Jj f5l  B* l  	l  
l  l  l  
l  l  l  ` ^  @(#)tty_ldterm.c 1.26 89/04/18 SMI    ,                    $      ,  ,                    %      %  %,                                                                                                                                                                                                                                            !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~                                                                  |     `{}                                                  \ ~  ABCDEFGHIJKLMNOPQRSTUVWXYZ                                                                                                                                                                                                      ABCDEFGHIJKLMNOPQRSTUVWXYZ     '                          (!)^                                                                                                                                   "                    ldtermopen: open fails, can't allocate state structure
 ldtermrsrv: out of blocks
 ^ curline_trim called with no message curline_trim: current input line mislinked output_echo_char: out of blocks
 output_echo_char: out of blocks
 output_echo_char: out of blocks
 newmsg: out of blocks
 mp->b_datap != NULL ../../os/tty_ldterm.c mp->b_datap != NULL ../../os/tty_ldterm.c mp->b_datap != NULL ../../os/tty_ldterm.c mp->b_datap != NULL ../../os/tty_ldterm.c mp->b_datap != NULL ../../os/tty_ldterm.c chgstropts: can't allocate stroptions message  ldterm ldterm        EP   ,  @   2  P   L  @     WP     RP     )P     CP     +P    WP  (  RP  @  )P  N  YP  l  CP  |  EP    GP    BP  $  WP  @  RP  R  )P  ^  CP  n  EP    YP    VP    VP  P  P  |  @    BP    BP    P  6  VP  ^  @P    VP  @  VP    @    @    @    @    VP     P  <  P  r  P    P    OP    BP    OP    BP    VP  $  +P  :  +P  P  +P  x  @    BP  	  @  	  @  	  YP  	  @  	  P  	  BP  
  @  
<  NP  
v  VP  
  @  
  @    @  4  @  Z  @  v  @    @    @    @    @    @  8  @  Z  @  d  @    @    +P    EP  
,  @  
6  @  
  @  
  @  
  @  8  @  >  QP  b  @  h  QP  ~  YP    @    @     @    @    @  "  @  D  @  J  @  f  @  r  @    @    @    @    @    @  8  @  X  @    @    @    @  p  YP    @    @    @    @    @  V  EP  d  @  j  P    @    EP    @    P    EP    @    P    EP    @    P  8  OP  F  @    @    (P    1P    BP  6  EP    @    EP    @  L  @  T  @  f  P    EP    @    @    EP  v  (P  ~  1P    +P    BP    BP     OP  4  +P  F  EP    OP    OP    +P    OP  $  +P  :  +P  V  +P  n  EP    AP    @   l  @     @     @     JP     @     @     JP     +P     OP  !  @  !  @  !  JP  !6  +P  !h  OP  !z  @  !  @  !  JP  !  +P  !  +P  !  @  !  @  !  JP  !  <P  "  VP  "0  VP  "L  VP  "h  VP  "  +P  #(  AP  #  EP  #  @  #  QP   &  @   2  @   6  @   :  @   >  @   F  @   P  @   \  @   d  @   h  @   p  @   x  @   |  @        '\   
             (\              (        4     %   A     $   I         P         T         ]     &\   h          o     ,                                            4                                                      @                                l          %     %\  .         6     %H  @        J     "  V       g       r     %,       "       
                                                                                                        h         1     
  A       M     ,  a        j     )\  s                            $        $        @                                                          *\                                   $       2        <        B         H         P        V         ]         f        o        y                                               %          _lcuctab _do_ioctl _imaptab _printf _ldtermwput _ldtermrinit _sccsid _lbolt _qs _cp_time _notrantab _putbq _curline_tabcols _nproc _curline_rubout _movtuc _whichqs _curline_werase _curline_erase _ldtermopen _avenrun _domainnamelen _hostnamelen _hostname _dk_time _putq _tz _newmsg _dk_bps _typetab _canput _ldtrinfo _boottime _chgstropts _curline_reprint _do_signal _ldtermwinit _curline_trim _curline_unget _dk_read _msgdsize _sleep _dk_xfer _putctl1 _do_flush_output _dk_seek _tick _procNPROC _phz _tk_nout _output_echo_char _echo_char _do_noncanon_input _do_canon_input _ldtermrput _output_echo_string _pidhash _omaptab _ldtermclose _ldtermrsrv _qreply _ioctl_reply _ldtermmiinfo _domainname _tk_nin _qenable _freemsg _splx _msg_upstream _allocb _initmodes _wakeup _ldtermopen_wakeup _hz _assfail _curline_kill _freeproc _proc _getq _flushq _time _panic _bufcall _allproc _zombproc _dk_busy _putctl _spltty _do_output _freeb _ldtermmoinfo _dk_wds   f4"
f*k `%k  -K&k  nB /.N    XO"f`   , rHg   ,   gN +  -@   or-A-k  . dZHT/./. @Rp / N  hO ./share/sys/sun2/OBJ/tty_pty.o                                                                         444       0      12        20046  4424710151  11320                                                                                                                                                                                                                                                                                                                                                                                          hNVH8*n ~ .     mp`  (G"ҁ    J fXB )|   B .Bl &Bl (Bl *Bl ,`X ,    fZ   fRrHxHTN    POJg~ϔ ;p`n ,    g x;$ h DJh g
 ;p`L0.   g)M A $)H +L 8+L rÔ&|    ` r$ f)K @`G H    e L8N^NuNVH0 *n (m "g  09    H     f&     rFN    29       fN    Hl N    XO   gr@BHTN  POHx HTN  POB @HTN    XOB 8B p L0 N^NuNVH< *n (n &m  l p ( 
Jg r
g prgt   g|   g   g*` \   f R     +  DBHSN  PO` 6   g|  DBHSN  POHx HSN  PO` HTHUHSN  `   l  g.+  Df +  DBHSN  POBHUN    PO l   l   g  +   Df +  DBHSN  POBHmN    POHTHUN    PO`     gn$L *  gHTHUN    POHx HSN  PO`P(j HRN    XO"f`>   	gp `p/ Hx 
/-N    O ` l p rgHTN    XOp L< N^NuNVH0  . Ѐ" ҁЁЁ    *@-m g(m ."gB .HT/.HUN  p L0 N^NuNVH<*n (n B&l . trgX  t$g   thg HnHT/. Hm N    O , g H 
    rFN    / HzHHx /N    ` Hx Hx N    PO$@Jg   l  h "j R    	fJ m /( N    XOJf/. Hm N    POHRN    XO`THR m /(  m  h  P PN`8   g2J g m  %m  `+J B B+J R BHUN  POB  l |  
` 
   f l ~!G  l |  
`   
    rFN    "9  ၀AH/ N    XOB  l |  
`  Jf   TgzTgjTgH"T	gb"T
gR"Tg0``    t fXgT< @ EHx HUN  PO`F-   Df -  DBHUN  PO.<t	`.<t
HUN  BXO   fJl~-GJg l !n  l |  
HT/. N    POL<N^NuNV.*n  -  rf&   gr@BHUN  POHx HUN  PO -   
g-  $f-  %fp`B-@   
gJg8-  D -   D`Jf-  D -  D    BHUN  PO*nN^NuNV  Hx  n /( N  POp N^NuNV.*n J f8J :gB/- :N    POB :r-A    gHx 0m >/N    PO.   gPJ 2g$ rr JVD//- 2N    POB 2rÕHm N    XO   gHx 0m >/N    PO.  gPJ 6g$ rr JVD//- 6N    POB 6rÕHm N    XO   gHx 0m >/N    PO*nN^NuNVH8 p .     mp`  p . Ѐ" ҁЁЁ    *@   gp`     g
HUN    XO(m "g*(l "g"Hx HTN    POHx Hx 
HTN    O r B- DB- EJ  f0 9    " Ё    &@Gܷ    dHy  0N    XOp L8 N^Nu    f     r$N    #  `NVH8 p . Ѐ" ҁЁЁ    *@&m "gHx /+ N    PO  09    H     f@09       r . f*N    `"+T fB ` m B S HTN    XO(m "fp L8 N^NuNVH<p . Ѐ" ҁЁЁ    *@   g(J- Dg"/. p - D/ N    PO. f0B- Dp `    g.J- Eg(/. p - E/ N    PO. g ` B- Ep ` $m .
g  J g     f     g/. BN    PO. fvHRN    XO(@`r ,  , f*&l HTN    XO(K.fHRN    XO(@Jfp `  n  m,( /. B//, N    O . gHTN    XO `  ݬ  n J n ,  gHTHRN    POp `  &l HTN    XO(K.fp `     gjJ gd/. Hx rN    PO. Jf(m ,g n J oS /.  l p / N    PO. +T fB ` m B HTN    XO`   gp`    gp#`Hx Hm N    PO` L<N^NuNVH<*n p . Ѐ" ҁЁЁ    (@ ~-@`&   fb   gp#` .Hx Hl N    PO&l .g,9     k 0( H-@~go, ~    	f<J o  `2   gp`     gJf  p#`  Hx Hl N    PO/+ N    XOJg/.BBHU o - ` / BN    O $@Jf08 #;g
8;HH``   gJfRp#`PHy  bN    XO&l .fHRN    XOp`,HR/+  k  P PNPO~J9    gN    J n Vp L<N^NuNVH8 p . Ѐ" ҁЁЁ    *@ . ATr\f DA0;N X@ `   :&np
 n Jg   f ~    ` \` R n Jg   f X    ` 6` , n Jg((m "g(l "gBHx 
HTN        ` (m "g(l "gHx Hx 
HTN    ` (m "g (l "g  n /Hx HTN    ` J @g  m @0( H n  ` J @g  m @"n  1@ ` r n Jgr` brÕ` Z n Jgr` JrÕ` B n 0- >HD ` 0 n  D;@ >`  B   gJ- Df   gJ- Egr-A`H(m "g(J g"   f&l "g*HSN    XOѮ&S`   gJ g
 - R-@ n  `  n    gP&HHx HSHm &N    O Jg xA &!k   (m "g b(l "g XHx Hx HTN    ` D n  ;@ & n  ( ;@ (Bm *Bm ,` "A &"n #h  "`  n p 0- &  n p 0- (!@ `  J fp`   9  2< n 
AH/ N    XO`  J @g m @J g m @ h J fp`  /. /. /.  m @/( N    8;HH`zp`v@th@tf@t&@tt@t@t@t|@tw@f@f{  th  t$tgt%tutt
t	tt~t}tvtptit!t f~f}f|p L8 N^NuNVH8 p . Ѐ" ҁЁЁ    *@   gp` N    -@ . g  rg:rg  `     df  r`     dfjr/.N    XOp `  (m "gJ g   g&   gJ- Df     gJ- EfJ g/.N    XOp`z&m 2"f+x;$ 2`(m "g/, N    XOJf8&m 6"f T+x;$ 6` h   gJ- Df   gJ- EfJ g/.N    XOp`
+x;$ :` *L8 N^Nu@(#)tty_pty.c 2.45 89/03/15 SMI                     
                                                          ptcopen: Can't find pty slave major device number ptcwrite: null return from strmakemsg ptys ldterm ttcompat         +P   0  P   z  %P     
P     FP  "  P  2  @  <  P  D  3P  J  P  Z  2P  d  KP    @    @    DP  "  @  F  @  T  @  f  @    @    QP    @    QP    7P    P    @  "  ^P  H  'P  d  ?P    P    @    P    P  &  3P  8  WP  J  CP  |  P     P    ?P    @  ,  P  4  3P  :  @  H  1P    @    @    @  2  7P  h  @  v  @    @     @  *  *P  N  P  x  *P    DP    P    *P    DP    P    +P  <  P  \  DP  z  [P    'P    @    P    5P    5P    @    UP    @    5P    3P  	   @  	"  P  	:  [P  	H  P  	X  @  	`  P  	v  2P  	  ?P  	  P  	  RP  
"  RP  
j  RP  
x  PP  
  ^P  
  PP  
  4P  
  ?P    P  "  ^P  L  RP  ~  RP    ?P    %P    P  .  %P  >  P    %P    P    =P  
  @  
  UP  
  ?P  
:  ]P  
B  <P  
v  P  B  'P  l  'P    'P  x  $P    P     'P  j  @    1P    8P  r  P    \P    /P    /P    BP    BP  B  P    BP   "  @   .  P   2  @   6  @   :  @   B  @   J  @   ^  @   f  @   j  @   r  @   v  @     @                         v   !          *         3        ;         ?          I          P        Z          c         i         p         y                       B                            	                                                                 	        
                   
                "         3        ?        G        P         Z         a        l         u        |                                                                                                                                                               )         4         @       J         S     V  ^       h         n         v         ~                             
Z                                                                                                            $        ,         5        >        H       Q         Y         a         k         r        z        _rootvp _ptcopen _ptsreioctl _ptsopen _rootdev _sccsid _qs _strmsgsz _putbq _ptswinit _streams _file _nproc _whichqs _fbdev _runin _pt_sendstop _putq _bcmp _ptcread _dumpvp _canput _ttycommon_ioctl _nchrdev _pty_softc _panicstr _ptcclose _ptsclose _consdev _noproc _gsignal _ptsmodlist _ttycommon_qfull _kbddevopen _consvp _physmem _msgdsize _sleep _boothowto _putctl1 _nfile _ptsm_info _selwakeup _npty _procNPROC _runout _pidhash _selwait _nblkdev _setcons _resetcons ldivt _uiomove _cdevsw _rconsvp _qreply _strioctl _pt_smajor _runrun _mousedev _runqueues _strmakemsg _ptcwrite _freemsg _ptcselect _ptsrserv _splx _allocb _wakeup _ptcwakeup _streamsNSTREAMS _maxmem _ptcioctl _ptsioctl _ptsrinit _ttycommon_close _rconsdev _fileNFILE _freeproc _proc _getq _flushq _ureadc _wantin _ptsinfo _panic _dumplo _bufcall _allproc _zombproc _ptswput _putctl _spltty _qrunflag _freeb _kbddev _curpri Hm N    O , g H 
    rFN    / HzHHx /N    ` Hx Hx N    PO$@Jg   l  h "j R    	fJ m /( N    XOJf/. Hm N    POHRN    XO`THR m /(  m  h  P PN`8   g2J g m  %m  `+J B B+J R BHUN  POB  l |  
` 
   f l ~!G  l |  
`   
    rFN    "9  ၀AH/ N    XOB  l |  
`  Jf   TgzTgjTgH"T	gb"T
gR"Tg0``    t fXgT< @ EHx HUN  PO`F-   Df -  DBHUN  ./share/sys/sun2/OBJ/ufs_inode.o                                                                       444       0      12        21110  4424711025  11551                                                                                                                                                                                                                                                                                                                                                                         x                   NV.*y    "|    "<   `"#I PISj#    A J#    +|     N*+M +M &+|     "9    `0K *+M  y     +y     NA J#    +M &+|     SJnB Jp *nN^NuNVH<*n `FRl 
HTN  XO`6 8;$    "<   N    2, BHg   l  .Hx 
HTN    PO0n 
/N    XO-@fHy  N    XO n h 
 (  gHy  N    XO0. 
HЮ       &@(S`p .  2fd0. 
l 0fZ0, .   f N0, .  f,-l Jg n!l N N`# N     l N B JB N l  .HTN  XORl 
` &(TfBJ    g`$Hy  N    XOp` t-BN    Jf(y    $g-l Jg n!|     N#    B JB N9|  .`4 8;$    "<   N    2, BHg l  .Hx 
HTN    PO0, .   f 8;$    "<   N    9@ BRl D l  .0,   g x;$Rh J :gRJ gL     gB     g8BHy   BBHl  l  h \NO -@f 0, .  f t-BJg0-S`" n .  2f0. 
h 0g  n-P .fJl 
gHy  N    XOHTN    XOHSHTN    PO/, >N    XOB >9n 
 0 n)h  *)n  2B 6)M :B F/- 0 . "- N    "  - N    $  . "- N    "- F - N    Ԁԭ  . "- N    "- xN    "- `Ԁ - d//, *N    O $@   g8HRN    XOHTN    XO()L B 2HTN  XOHTN  JXOp`  -j   . "- xN    Ѯ nC R0< "QBl 9|  
Bl Bl  n)P 0, R   r
A  x)p   9l | $B     f l  HRN    XOJl RgHTN    XO)@ > n  p L<N^NuNV.*n 0- .   fHy  N    XOHUN  XO0- .rFg   m  . 9        n 9      oA    "|    #h  "`R   0- .  gA    C b#h  "0- .  gA    C j#h  " m  .0- .  gB 6A    C r#h  "m .Hm N    XOp *nN^NuNV.*n 0- .   gHy  N    XO0- .rFg   m  . 9        n 9      oA    "|    #h  "`R   0- .  gA    C b#h  "0- .  gA    C j#h  " m  .0- .  gB 6A    C r#h  "m .Hm N    XOp *nN^NuNVH0 *n I 0- .   fHy  N    XOHUN  XOSl Jl f:Bm .J    g y     +y     N`#    +|     NB JK J#    p L0 N^NuNV.*n 0- .     fJ NfJ JgHy  N    XO m :J( f  HUN  XOJm Tn~R BHUN  POp 0- R-@Bm RB z m B ././- 2HUN    O B0m V/HU m /(  N    O /- >N    XOB >0- .rNg$BHUN  `0-   fHx! HUN    POHUN  XOBm .J    g y     +y     N`#    +|     NB JK J#    p *nN^NuNVH8*n &m :0- .tNg J+ f /+ 0 - 2"+ N    "  + N    $  - 2"+ N    "+ F + N    Ԁԫ  - 2"+ N    "+ xN    "+ `Ԁ + d//- *N    O (@   gHTN    XO`  0- .tFg   9        n 9      oA    "|    #h  "`R   0- .  gA    C b#h  "0- .  gA    C j#h  " m  .0- .  gB 6A    C r#h  "m . - 2"+ xN    Ь  -@A R"@0< "QJ g
HTN    `HTN    XOp L8N^NuNVH8*n &m :B~-G~ ` ."+ tN    -@R m-n o .".N    -@ + 0r	-@/+ 0N    XO-@/+ 0 . "+ d/ /- *N    O -@ @   g/.N    XO/.N    XOp `  n(h  /+ 0 n/(  HTN    O  .R"+ t/ .RHt N    PO/.N    XO-n n(h  .+ t`L -t g@J o . S/ Hx/.HUa O Ѯ/+ 0/.HUN    O  .ѮSnJ o@J m: . ".N    -@-tx g . S/ /./.HUa TO Ѯ/.N    XO .L8N^NuNVH8*n (m :Bx 8- R      g  @ g   fJ gp`  .  ^g *, HFʀS", P-@ .  ^c  JfBHx /, 0`BHx /BB/.HUN    -@f  +n  ^ m @ .0- .~Fg   m  . 9        n 9      oA    "|    #h  "`R   0- .  gA    C b#h  "0- .  gA    C j#h  " m  .0- .  gB 6A    C r#h  "m . .` JfB`BBHx /BB/.HUN    O -@f   m , 0` Ь 4S L/ /. Hm N    O .. ެ 0S", PS |-@ t-@ , t", tN    ".-A , 0r	-@A0< 3"M Q0G|-F`* .JjA  .B .|-SJlx`
 BzSn+n  ^ m B .Hx HUa PO|-F`zA  .-PgV/. ./6/.HSa O Ѯ .Jj*A  .B/, 0/.HSN    O  .Ѯ .Jj JSJlx`b -szgT Bz|l R", P㠰 ^n , 0` , HF ^Ь 4S L, //.HSN    O r	ݮSnJm   -szg  |l R", P㠰 ^n , 0` , HF ^Ь 4S L-@'n  ^|lR", P㧾 ^n , 0` , HF ^Ь 4S L-@fHy  
N    XO .Jo8 .", TѮ ./ /.HSN    O  .r	ѮBA  .C  . gHy  N    XOR   ox  ""3zzgHy  &N    XOR~m .䑭 J j$/- /- ^/- 2Hl Hy  .N    O B  m @ .B .D/ HUN    p L8N^NuNVH ~ *y    `   gJ0- 0n 
f@0- .  g~``HUN    XO*+M /- >N    XOB >Hy   HUN    PO`.0- .  g$0- R     ` f0. 
H zfJmRK һ    e v L N^NuNVH *n ..  gD m :J( g:0- R       g(0- R     ` g0- R      gp`z x;$ h DJh gf x;$ h D0( m VgH x;$ h D0( m Xg4 x;$"h DC `g0- XHgXI x;$ ( DrLЁep 0- Rfp `p
L N^NuNV.*n `4 8;$    "<   N    2- BHg m  .Hx 
HUN    PO0- .   f 8;$    "<   N    ;@ BRm D m  .0-   g x;$Rh p *nN^NuNV.*n Sm DJm DjHy  XN    XO0-   g x;$Sh Jm Df m .0- .  gm .HUN    XOp *nN^Nu                                 @   `                     iget: bad dev iget: bad fs inode free inode isn't iput irele idrop iinactive itrunc: newspace itrunc1 itrunc2 itrunc: %s/%d new size = %d, blocks = %d
 IUNLOCK      )P     ^P   (  eP   2  P   8  eP   J  _P   R  6P   d  P   l  P   x  P     _P     @     RP     =P     (P     /P    @    YP  $  @  *  YP  D  ^P    P    @    eP    @    IP    %P    eP    eP    eP  0  RP  <  =P  X  (P  n  RP  z  =P  4  @  :  YP  D  SP  P  P  \  PP    HP    P    HP    P    1P    HP    ;P    VP    SP  0  @  :  @  V  1P    @    VP    XP    @    YP    @  2  WP  8  ?P  @  WP  F  ?P  N  WP  T  ?P  d  ?P  t  ?P    ?P    ?P    P    @    YP    WP    ?P  &  WP  ,  ?P  4  WP  :  ?P  J  ?P  Z  ?P  v  ?P    ?P    P    @    YP    @  
  eP    P    P  $  eP  *  eP  :  P  t  @  z  YP    @    @    $P    P    PP    @  ,  P  6  @  B  eP  J  P  R  P  \  eP  b  eP  r  P    HP    P    HP    P    1P    HP  	  ;P  	.  VP  	F  WP  	L  ?P  	T  WP  	Z  ?P  	b  WP  	h  ?P  	x  ?P  	  ?P  	  ?P  	  ?P  	  1P  
  OP  
  P  
V  P  
x  =P  
  P  
  ;P  
  VP  
  VP  
  9P  $  5P  0  OP    #P    &P    VP    FP    WP    ?P    WP    ?P    WP    ?P    ?P  
   ?P  
  ?P  
B  ?P  
|  FP  
  P  
  P    #P  X  #P    @    YP  *  #P  f  @  l  YP    @    YP    @    P    P    )P  6  SP  H  PP  \  P    P    RP    =P    (P    RP    =P  *  @  0  YP  h  JP            
                            !         )          1          >          E     J   P         Z         a         e         l         u          |                                                                                           @                                                                         #        +        4         :         A         N         T       ]         d        k        v       }                   x                                                                                                                    
.  
                        %      @  1       9        F        M        U       ^         d         l         s         ~                                                                                                                                                      
               "        )         7        A        K        S       Y       `        h_nbuf _rootvp lmult _rootdev _ifreet _printf _pvn_vptrunc _chkdq _iinactive _bclnlist _lbolt _qs _nproc _whichqs ulmult _avenrun _domainnamelen _hostnamelen _runin _inodeNINODE _vn_rele _geteblk __insque _syncip _hostname _tz _dumpvp _chkiq _nchrdev _boottime _panicstr _bdwrite _noproc _iflush _physmem _free _ifree _dnlc_purge1 lmodt _iunlock _sleep _inode _boothowto _irele _itrunc _vttoif_tab _iftovt_tab _getmp _tick ulmodt _procNPROC _phz _runout _bzero _ninode _pidhash _selwait _bcopy _nblkdev _bread _indirtrunc ldivt _ilock _iuniqtime _domainname _iupdat _dquotNDQUOT _dquot _runrun _bufhash _bmap _ihinit uldivt _tablefull _wakeup _maxmem _ndquot _hz _iaccess _bwrite _dqrele _freeproc _proc __remque _wantin _iget _brelse _time _getinoquota _panic _dumplo _allproc _zombproc _bfreelist _ihead _ufs_vnodeops _bufalloc _bufchain _curpri _iput _idrop _ifreeh `4 8;$    "<   N    2, BHg l  .Hx 
HTN    PO0, .   f 8;$    "<   N    9@ BRl D l  .0,   g x;$Rh J :gRJ gL     gB     g8BHy   BBHl  l  h \NO -@f 0, .  f t-BJg0-S`" n .  2f0. 
h 0g  n-P .fJl 
gHy  N    XOHTN    XOHSHTN    PO/, >N    XOB >9n 
 0 n)h  *)n  2B 6)M :B F/- 0 . "- N    "  - N    $  . "- N    "- F - N    Ԁԭ  . "- N    "- x./share/sys/sun2/OBJ/ufs_vnodeops.o                                                                    444       0      12        51205  4424711112  12315                                                                                                                                                                                                                                                                                                                                                                         3  P           
    NV  p N^NuNV  p N^NuNV. n *h .  g8    f.0- R      fr-AHUN    XO n !m ^ `B/. /. /. HUN  LO -@0- .rFg   m  . 9        n 9      oA    "|    #h  "`R   0- .  gA    C b#h  "0- .  gA    C j#h  " m  .0- .  gB 6A    C r#h  "m .Jg
HUN    XO .*nN^NuNVH<*n (n J g    gHy  4@N    XO0- R   -@   g"  @ g   gHy  4EN    XOJ m
 , Ь jp` pJ f:p ` d 8;$    "<   N    2- BHg m  .Hx 
HUN    PO0- .   f 8;$    "<   N    ;@ BRm D m  .0-   g x;$Rh     f:   f( , Ь ?FoHx /8;$N    PO~-G` Z m  .` m  ..  g m   .-m B$m :A -H.,  (,   ** HFʬ  * 0 l * 0` , , J f  - ^ -@nB` Լo,.//./9    N    O &@    f   , І ^oLp JWD / Hx  І/ BB , "* P/ HUN    O -@fN , І+@ ^r-AJgR`n    ffHx Hx  І/ BB , "* P/ HUN    O -@gBHS/9    N    O ` B/HS/9    N    O r-A`BHT/. /HsH N    O -@Jg   ЄІ  rr㨰 c  ބ", -AmlHxDHy  4jHy  4ON    O  І  j  r㠐-@o ЮЮ    oHxFHy  4Hy  4N    O /.AH HPN    POJf  B    fb.  f
  @ f n0  g~` ~-G`چ    g n0  g~-G m B . x;$ h DJh g(m R` J fچ    g
 ,  ^f~-G/.HS/9    N    O -@`BHS/9    N    O JfJ oJf .  g(    fJf
 .䰭 gHx HUN    POm .Sm DJm DjHy  4N    XO0-   g x;$Sh Jm Df m .0- .  gm .HUN    XO .L<N^NuNV  pN^NuNV  pN^NuNVH0 *n  n (h 0, .rFg   l  . 9        n 9      oA    "|    #h  "`R   0, .  gA    C b#h  "0, .  gA    C j#h  " l  .0, .  gB 6A    C r#h  "l .0, R   r
A    * ;l R ;l V ;l X 0, 0H+@ 
+l 2 ;l T +l ^ A bC #h  "A jC $#h  "A rC ,#h  ";l | 4+l  60, R       g  ` f
+|     ` n  h +h  p L0 N^NuNVH8 *n (n BBl f8 f.l 4f& 6f 
f fgp` &m `4 8;$    "<   N    2+ BHg k  .Hx 
HSN    PO0+ .   f 8;$    "<   N    7@ BRk D k  .0+   g x;$Rh l gx n 0( k Vg
N    Jgp `p-@f k  R0<l k R n Jh g00+ R     @ gk R0k X/N    XOJfk R k @ .l fl g 0l /0l /HSN  
O -@f > gH0+ R     @ f
r-A` Hx HSN    PO-@f /, HSN    PO-@f   g: n 0( k Vg
N    Jgp `p-@f  A C b#h  "R $g~ n 0( k Vg
N    Jgp `p-@ (f2JgHx HSN    PO-@fXA    C b#h  "A    `
Jf8A $C j#h  " k  .RJgA    C r#h  " k  .Hx HSN    POHSN    XO .L8 N^NuNVH *n .. ,. zf0- VH. zf0- XH,  x;$ h D0( Hf0- VHf/N    XOJfN    Jfp`  0- VHfz `*- Hx  D/ HUN    O Hx 0m V/HU m /(  N    O /- >N    XO;G V;F X m @ . x;$ h DJh gm RHUN    XO+@ >Hx /HUN    O Hx /B m /(  N    p L N^NuNV. n *h `4 8;$    "<   N    2- BHg m  .Hx 
HUN    PO0- .   f 8;$    "<   N    ;@ BRm D m  .0-   g x;$Rh /. HUN    PO-@HUN    XO .*nN^NuNVH  n     gp`   n *h BB/. HUa . 0- .rFg   m  . 9        n 9      oA    "|    #h  "`R   0- .  gA    C b#h  "0- .  gA    C j#h  " m  .0- .  gB 6A    C r#h  "m . L N^NuNV. n *h `4 8;$    "<   N    2- BHg m  .Hx 
HUN    PO0- .   f 8;$    "<   N    ;@ BRm D m  .0-   g x;$Rh BHUN    PO-@HUN    XO .*nN^NuNV   n /( N    XOp N^NuNVH  n *h Hn/. HUN    O . 0- .rFg   m  . 9        n 9      oA    "|    #h  "`R   0- .  gA    C b#h  "0- .  gA    C j#h  " m  .0- .  gB 6A    C r#h  "m .Jf b*n n C  0- R  	g0- R  @@fJ  48g
 n  P P @0- .rFg   m  . 9        n 9      oA    "|    #h  "`R   0- .  gA    C b#h  "0- .  gA    C j#h  " m  .0- .  gB 6A    C r#h  "m .HUN    XO n  P    g  n  P    g n  P    fB n  P/(  n  P0( H/  n /N    O -@ n /N    XO n   L N^NuNVH  n    fp` B n *h Hn/. BBB/. HUN    O . 0- .rFg   m  . 9        n 9      oA    "|    #h  "`R   0- .  gA    C b#h  "0- .  gA    C j#h  " m  .0- .  gB 6A    C r#h  "m .*nrfxJ f:0- R     @ f.  g~` J g/. HUN    PO. `~ `JgHUN    XO`(0- R      f n J fBHUN    POJf V n C  0- .rFg   m  . 9        n 9      oA    "|    #h  "`R   0- .  gA    C b#h  "0- .  gA    C j#h  " m  .0- .  gB 6A    C r#h  "m .HUN    XO n  P    g  n  P    g n  P    fB n  P/(  n  P0( H/  n /N    O -@ n /N    XO n  J g/.  /.  n / P h  h N L N^NuNVH  n *h BB/. HUN    . 0- .rFg   m  . 9        n 9      oA    "|    #h  "`R   0- .  gA    C b#h  "0- .  gA    C j#h  " m  .0- .  gB 6A    C r#h  "m . L N^NuNVH0*n Hn/.  n  h  h lNPOJf-n  n (h 0, R     @ fN    Jfp` BBHTBHx /. /- N    . 0, .rFg   l  . 9        n 9      oA    "|    #h  "`R   0, .  gA    C b#h  "0, .  gA    C j#h  " l  .0, .  gB 6A    C r#h  "l . m 0( .rFg   m  h  . 9        n 9      oA    "|    #h  "`R    m 0( .  gA    "m C b#h  " m 0( .  g A    "m C j#h  " m  h  . m 0( .  g m B 6A    "m C r#h  " m h . L0N^NuNVH0 n *h  n (h Hx HUN    PO. f Hn/. HUN    O . f /.N    XOHy  4/. N    POJgHy  4/. N    POJgf~`PBB/.HUHx /. HTN    O . g
rf(~ `$B/./. HUN    O . rf~ `J0- .rFg   m  . 9        n 9      oA    "|    #h  "`R   0- .  gA    C b#h  "0- .  gA    C j#h  " m  .0- .  gB 6A    C r#h  "m .0, .rFg   l  . 9        n 9      oA    "|    #h  "`R   0, .  gA    C b#h  "0, .  gA    C j#h  " l  .0, .  gB 6A    C r#h  "l ./.N    XO L0N^NuNVH0*n  n (h m 0, R  
g m  HnHUBBB/. HTN    O . 0, .rFg   l  . 9        n 9      oA    "|    #h  "`R   0, .  gA    C b#h  "0, .  gA    C j#h  " l  .0, .  gB 6A    C r#h  "l .Jf  (n n C  0, .rFg   l  . 9        n 9      oA    "|    #h  "`R   0, .  gA    C b#h  "0, .  gA    C j#h  " l  .0, .  gB 6A    C r#h  "l .HTN    `rf/.N    XO L0N^NuNVH  n *h Hx B/. HUN    . 0- .rFg   m  . 9        n 9      oA    "|    #h  "`R   0- .  gA    C b#h  "0- .  gA    C j#h  " m  .0- .  gB 6A    C r#h  "m . L N^NuNVH<z B n (h  n *P&- .(   ^ep ` fp     WD -@   -@JgHx / Hy  6N    O `/.N    XO-@$@HTN    XO( Є ^c(, ^0  Є    c0  (<    HnB///. N    O -@f  |  n&P`  Jg` n  eV%S 5k  
Hk Hj N    PO0* 
@ rA5@ p 0+ Ї$p 0* ڀc
p 0* `. 
r 2* Ё$@p 0+ ܀p 0+ ހ r 2+ Ё&@e |B/.N    PO ^dJg /. B//.N    O -@f n !G  l  .0, .~Fg   l  . 9        n 9      oA    "|    #h  "`R   0, .  gA    C b#h  "0, .  gA    C j#h  " l  .0, .  gB 6A    C r#h  "l .HTN    XOJg/.Hy  6N    `/./.N    PO .L<N^NuNVH8*n  n &h (U.,     f   e -   gp`    ,  )G BBHUHSa -@0+ .~Fg   k  . 9        n 9      oA    "|    #h  "`R   0+ .  gA    C b#h  "0+ .  gA    C j#h  " k  .0+ .  gB 6A    C r#h  "k . .L8N^NuNVH *n B n ~  n Bh 4Hn/. BBB/. /- N    O . f0BHx B/. N    XO/ /. /.Hx N   O . `rf/.N    XO m 0( .rFg   m  h  . 9        n 9      oA    "|    #h  "`R    m 0( .  gA    "m C b#h  " m 0( .  g A    "m C j#h  " m  h  . m 0( .  g m B 6A    "m C r#h  " m h . L N^NuNV.-n -n A-H~-G-n =n -n B/. Hn/. a . J  g
 n   `Jg~ ..N^NuNVHn/.  n  h  h TNPOJfJfp`  Hx  HnN    PO n  h -h  n  h -h  n=Pp 0/ Hn/N    O  np 0T/ /N    PO-n -|    /. /. /. /. HnN    N^NuNV.Hx 
N    XO*@:  n  h +h 2  n  h +h   n  p *nN^NuNVH0..  n *h (m :,, 0-m * n=h `R    BBBB ", P-@  H-@J g n BB/. $   l .R", P㠰 ^n , 0` , HF ^Ь 4S L/ HnHn/.HUN    O -@f TfJ g n zː   l&   fz-Ez-E`8Hy  4N    XO`(z-EJ  4<g Ffg-E`B//. N    PO-@f     l8   l .R", P㠰 ^n , 0`Z , HF ^Ь 4S L`D - ^  j  r㠐Ȱd  - ^  j  r㠐` -@g .Юľe  J gvHx Hx /.  /. N    O -@//. / N    O JgHy  4N    XOHx B/.N    O /.N    XO n   n B R>xJ g  n zː` B/./.HnHn/.  /. //. N    O $-@fHy  5N    XOJ g   . e-n*.`P-n`: n"n"i  )  fHxHy  5QHy  5!N    O  n-h  n辨 f*. -n  nRh  n X n-h    Jn nB   f n(  (  J f <  `p/ /././.N    O -@ @1n  .", d", HF®t	Ё n!@ $ nB  0.  -@g" <   / /. n/( N    O /.0.H   " ҁЁA    p NXO .Ю+@ FR>| .     fR>R    .  rѹ   $R , 0ѮJg  .Ȱ ^d Ю  -@   l8   l .R", P㠰 ^n , 0`Z , HF ^Ь 4S L`D - ^  j  r㠐Ȱd  - ^  j  r㠐` -@   fR n  ( Ш bB`2Hx /./.HnHn/./. /./. N    O $-@B`  g
    $fzB/. $   l .R", P㠰 ^n , 0` , HF ^Ь 4S L/ BHn/.HUN    O -@f 2fJ g   n zː` -n-n-G-FJg     gJ f <  `p/ /././.N    O -@ @1n  .", d", HF®t	Ё n!@ $ n!n   .Ю  -@g" <   / /. n/( N    O /.0.H   " ҁЁA    p NXOR>| .     fR>R    .  rѹ   $Jg~J gxJf/.N    XO-@`/.N    XO/.N    XO   f  Jg  Jf/.N    XO-@`/.N    XO/.N    XO`  Jg  N    -@ n (  f$ f f g//. N    PO-@/.N    XOJg > nྨ f 2 (  f & f J g"Rh  n   n B R>x   +G FJg.J g(-n ` n/N    XO nBX nJf .L0N^NuNV n -h  n ( ^  ". Ү c .      gp` xJ gD n r `: 8;$    "<   N     n2( BHg$ h  .Hx 
/.N    PO n0( .   f n 8;$    "<   N    1@ B nRh D n h  . n0(   g x;$Rh     b./. ,/. (/. $/.  /. /. /. /. /. a |O $`6/. ,/. (/. $/.  /. /. /. /. /. /. HzJN    O ,-@ n0( .  f  J (g h  .    (f
 n h  . n0( .rFg   h  . 9        n 9      oA    "|    #h  "`R    n0( .  gA    "nC b#h  " n0( .  g A    "nC j#h  " n h  . n0( .  gB 6A    "nC r#h  " nh . nSh DlHy  5jN    XO n0(   g x;$Sh  nJh Df&h . n0( .  gh ./.N    XO .N^NuNV.*n /. /- */. /. N    O -@f/. /. N    POp`v n1m 0  n!n  $ n!n   /.0- 0H   " ҁЁA    p NXOR>.   gp ` /.N    XO-@/.N    XO .*nN^NuNVH<*n (m J g
 .  ^ep ` p 0- -@Rm $l :J fT0, .   g 9      (;$f
~#-G` HTN    XO/. /. HUN    O -@HTN    XO`v .  ^eB`f , ^   -@ . Ю d
 . Ю ` .-@/. Ъ 0S H/  .  H/ /./. HUN    O -@J* gJg~-G`BJg tB F0, .  
g
.  g \ l  .0, .~Fg J l  . 9        n 9      oA    "|    #h  "`R   0, .  gA    C b#h  "0, .  gA    C j#h  " l  .0, .  gB 6A    C r#h  "l .` &n.g .+  "* P-@   lR"* P㠰 ^n * 0` * HF ^Ъ 4S L-@BB/ BHn/.HTN    O -@f 8fHxWHy  5Hy  5rN    O HSHnN    PO-K,<    ."* P-@`D n ( ".Ү谁d6 ( "҆f*&HHSHnN    POHSHnN    PO   Jf І".Ү谁c8܇".Ү蜁   eHxlHy  5Hy  5N    O ,.ܮ蜇    0l <   "* 0N    +   ?+  ."* d㠞t	Ї-@/. B//./ HTa O -@    0l   .Ю谬 ^d  Jg/. HSN    PO`  R   lR .R"* P㠰 ^n * 0` * HF ^Ъ 4S L-@BB/ BHn/.HTN    O -@g/. HSN    PO`TfHxHy  5Hy  5N    O /. /* 0/.HS ."* d/ HTa O -@Jg XJgJg/. /.N    PO`& .      fJ fJ fJ f TJ fJ g
 .  ^el .Sm Jm fJo
HTN    XO .L<N^NuNVJ m
 . Ю jp`r n     gp``-n -n . 'r@n n #-n (B/. /. /. N    O HnHy    /. /. /. N    N^NuNV   . r  WD N^NuNV  pN^NuNV  Hy  6N    XOp N^Nu             
     B  L  V      B    d  @  H    t  R      
~  (     !  *`  -  2  3  3  3      rwip rwip type nmoved >= 0 && nmoved <= n ../../ufs/ufs_vnodeops.c nzero > 0 && mapon + nmoved + nzero <= MAXBSIZE ../../ufs/ufs_vnodeops.c IUNLOCK . .. ufs_getapage bad bsize ufs_getapage page_enter ufs_getapage pvn_kluster pp2->p_next->p_offset != 						    pp->p_offset ../../ufs/ufs_vnodeops.c IUNLOCK bn != UFS_HOLE ../../ufs/ufs_vnodeops.c (io_off+io_len) - (lbn_off+bsize) < PAGESIZE ../../ufs/ufs_vnodeops.c bn != UFS_HOLE ../../ufs/ufs_vnodeops.c ufs_badop          P  aP   v  @     P     fP     P     fP     P     fP     fP     fP     fP    fP  :  =P  n  @  t  P    @    P    P    _P    >P    P  &  _P  v  cP    sP  $  KP  n  qP    qP    sP    8P    sP    *P    `P  Z  @  `  @  f  P    @    @    P    
P  t  sP  z  8P    sP    8P    hP    @    P  .  wP  ~  P    fP    P    fP    P    fP    fP    fP    fP    fP  *  HP  D  P  P  _P  l  >P    P    _P    P  	  PP  	R  @  	  P  	  GP  	  P  
  P  
:  P  
H  P  
Z  P  
  P  
  hP  
  =P    PP     P  N  	P  l  3P  z  P    P    	P    3P    P    _P  "  >P  8  P  D  _P  p  P  ~  =P    P    fP    P    fP    P    fP  
  fP  
  fP  
6  fP  
\  fP  
  P  
  _P  
  >P  
  P  
  _P    &P    =P  6  P  ^  <P  |  P    fP    P    fP    P    fP    fP    fP    fP     fP  B  @  f  P  l  fP  t  P  z  fP    P    fP    fP    fP    fP    fP    =P  Z   P  n  #P    :P    P    fP    P    fP    P    fP    fP  $  fP  @  fP  f  fP    P    P    GP  "  P  (  fP  0  P  6  fP  >  P  D  fP  T  fP  d  fP    fP    fP    =P     P  *  #P    P    P    fP    P    fP    P    fP    fP    fP    fP    fP    P    :P    P    fP    P    fP    P    fP    fP  
  fP  &  fP  L  fP  ~  P    fP    P    fP    P    fP    fP    fP    fP    fP  h  P    <P    =P    @    pP    @    pP    :P  
  P  4  P  :  fP  B  P  H  fP  P  P  V  fP  f  fP  v  fP    fP    fP    P    fP    P    fP    P    fP    fP  $  fP  @  fP  f  fP    EP    :P    P    fP    P    fP    P    fP  "  fP  2  fP  N  fP  t  fP    P    fP    P    fP    P    fP    fP    fP    fP  6  fP  P  =P  b  P    P    P    fP    P    fP    P    fP    fP    fP  
  fP  0  fP    @    P    P    aP  "  rP  `  P    P    `P    P  "  fP  *  P  0  fP  8  P  >  fP  N  fP  ^  fP  z  fP    fP    =P    @    P    0P  l  P  r  fP  z  P    fP    P    fP    fP    fP    fP    fP  L  :P  f  P  |  @    P    P    fP    P    fP    P    fP    fP    fP      fP   V  fP  !  QP  !V  YP  !n  0P  !|  +P  !  |P  !  IP  "  P  "  qP  "  @  "  P  "  @  #  ^P  #  LP  #  P  $
  @  $  P  $"  P  $0  P  $  P  $  @  $  P  $  @  $  @  $  P  %x  ~P  %  P  &  P  &&  sP  &2  jP  &F  jP  'F  P  '  qP  (.  ~P  (  P  (  P  (  sP  (  jP  (  jP  )  P  )$  P  )0  P  )V  P  )h  P  )t  P  )  AP  )  %P  )  uP  *:  P  *  sP  *  P  *  _P  *  >P  *  P  +  _P  +  P  +  P  +  fP  ,  P  ,  fP  ,  P  ,  fP  ,&  fP  ,:  fP  ,^  fP  ,  fP  ,  @  ,  P  -  wP  -0  ~P  -H  P  -  P  -  P  -  P  .  P  .8  aP  .J  P  .Z  =P  .  "P  /*  P  /0  fP  /8  P  />  fP  /F  P  /L  fP  /\  fP  /l  fP  /  fP  /  fP  0,  qP  0L  @  0R  @  0X  P  0h  P  0  P  0  !P  0  @  1  @  1  P  10  _P  1  P  2   qP  2  P  2.  @  24  @  2:  P  2  P  2  P  3`  ZP  3n  )P  3  bP  3  @  3  P      @     @     @     @     @     @     @     @      @   $  @   (  @   ,  @   0  @   4  @   8  @   <  @   @  @   D  @   H  @   L  @   P  @   T  @   X  @   \  @   `  @   d  @   h  @   l  @                                         $          +     B   6         ?     3   K          V          ]     (   k     d   w                                                                                 3                                     x                                             #        0         :     H  F         T         e         n      x  t                       B       L                          @       48       !               !                        3                           )       5        ?         O        W         a        j         s         |              L                                                                                                                                        #         0         7     4<  ?        G        P        Y     @  c       t     R                         *`        
                                                                                              @  
                       x  %        2        9         C        K       T         \         b         j         s     2  |                                      t                                                          
~                        -                     (     
  0        ;        E        K         S         ^        f         w                                                $                                                                                 V  (         4         <         F     3  T        ^     -  l         u                         _specvp _nbuf _rootvp _page_sub _suser _ufs_ioctl _rootdev _ufs_realvp _iinactive _chkdq _ufs_inactive _ufs_remove _bclnlist _kzero _lbolt _kmem_alloc _fifo_alloc _qs _fbrelse _pvn_kluster _ufs_badop _kmem_fast_free _file _nproc _sum _whichqs _avenrun _domainnamelen _hostnamelen _runin _inodeNINODE _pvn_fail _ufs_rename _page_sortadd _pvn_range_dirty _vn_rele _rate _page_lookup _syncip _ufs_lookup _ufs_select _segvn_create _segmap_pagecreate _hostname _stickyhack _ufs_fid _tz _ufs_getapage _kmem_free _dumpvp _ufs_cmp _chkiq _nchrdev _boottime _ufs_access _panicstr _segmap_release _noproc _direnter _physmem _dirlook _iunlock _sleep _rwip _ufs_rdwr _splvm _inode _ufs_symlink _boothowto _irele _nfile _itrunc _iftovt_tab _kmem_zalloc _tick _segmap_getmap _rm_allocpage _procNPROC _phz _runout _groupmember _bzero _ufs_ra _ninode _pidhash _selwait _ufs_link _old_ufs_readdir _ufs_readdir _bcopy _as_unmap _ufs_getpage _ufs_close _nblkdev _page_find ldivt _uiomove _ilock _as_map _psignal _rdwri _fifoinfo _iuniqtime _domainname _iupdat _ufs_mkdir _cnt _dquotNDQUOT _dquot _ufs_open _runrun _bufhash _strcmp _bmap _fbread _segkmap _ufs_map _splx _ufs_create _wakeup _maxmem _ufs_rmdir _ndquot _hz _klm_lockctl _ufs_lockctl _pageio_setup _assfail _ufs_fsync _iaccess _ufs_lostpage _ufs_putpage _page_rele _dqrele _chown1 _fileNFILE _freeproc _proc _strcpy _dirremove _wantin _kmem_fast_alloc _ufs_readlink _time _pageio_done _getinoquota _panic _total _dumplo _strlen _allproc _zombproc _page_unlock _bfreelist _pvn_getpages _pvn_vplist_dirty _ufs_setattr _ufs_getattr _page_enter _bdevsw _pagezero _ufs_vnodeops _bufalloc _ufs_writelbn _biowait _bufchain _curpri _iput n -h  n ( ^  ". Ү c .      gp` xJ gD n r `: 8;$    "<   N     n2( BHg$ h  .Hx 
/.N    PO n0( .   f n 8;$    "<   N    1@ B nRh D n h  . n0(   g x;$Rh     b./. ,/. (/. $/.  /. /. /. /. /. a |O $`6/. ,/. (/. $/.  /. /. /. /. /. /. HzJN    O ,-@ n0( .  f  J (g h  .    (f
 n h  . n./share/sys/sun2/OBJ/uipc_mbuf.o                                                                       444       0      12        15605  4424710216  11564                                                                                                                                                                                                                                                                                                                                                                         0                   NV.Hx Hy  0Hx Hy   Hy    N    O N    . BBHx N   O Jg$BHx Hx N   O Jg/N    XO`Hy  ;N    XOp ..N^NuNVH  . r
  r-@r-@  j  . /.Hy    N    PO-@f    fHy  BN    XOp `  *n    B/.HUHy    N    O Jf  /./.Hy    N    p `v| `B *    #    K Ry   Rmy   `H r
j~Ї, Jo4B ;|  
Ry   
Ry    HUN  XOK S` . g|g 
L N^NuNV  BBHx a Jgp`p J    VD N^NuNV.N    -@*y    "
g@Jm 
gHy  YN    XO;n  
Sy    . A   Rp #    Br+A `/. /. N  PO*@/.N    XO 
*nN^NuNV.N    -@*y    "
g@Jm 
gHy  ^N    XO;n  
Sy    . A   Rp #    Br+A `/. /. N  PO*@/.N    XO"
fp `Hx p 
Э / N    PO 
*nN^NuNV.N    -@ n Jh 
fHy  cN    XO n 0( 
HA   Sp Ry    n Bh 
 n     e
/N  XO n *P      n B  n B |#     /.N    XOJ    gB    Hy    N    XO 
*nN^NuNV.`R    Hx Hy    N    POa JgTN    -@*y    "
gTJm 
gHy  iN    XO;n  
Sy    . A   Rp #    Br+A `$    gRy   p `Hy  nN    XO/.N    XO 
*nN^NuNVH0*n .
g  N    . N    -@Jm 
fHy  uN    XO0- 
HA   Sp Ry   Bm 
    e
HUN  XO(U*    B B |#    /.N    XOJ    gB    Hy    N    XO*L"
f n/N    XOp L0N^NuNVH8*n .. g J mJl:Hy  {N    XO`*"
fHy  N    XO0- H n0- H *UJ nGB` &"
f; g Hy  N    XO` N    -@(y    "gBJl 
gHy  N    XO9m 
 
Sy   0- 
HA   Rp #    Br)A `0m 
/Ba PO(@/.N    XO&"g  0- H l0`
0- H 9@    | c$l p o/. HTHUN  
XO  . Ѭ `$0l / Ь /  
Э Ю / N    O ; g0, HB *U&LJn  .`/.a XOp L8N^NuNVH0 *n (n `*UJf``   | d0- HЭ 2, HЁr|c*`@0l /0- H"
ҭ Ё/  Ь / N    O 0, m HTa XO(@"fp L0 N^NuNV...  n "g  Jm,`0( HBh  P"gnJoj0( Hoh ߨ `VDr ` P0( HҀJf0( Hmh `4 n `0( Hm1A `0( H P.f`Bh  P.fp ..N^NuNVH0*n  - Ю ~|bJg(M*U0, H `     p n `N    -@(y    .gBJl 
gHy  N    XO9m 
 
Sy   0- 
HA   Rp #    B~)G `0m 
/Ba PO(@/.N    XO.g  Bl p| -@0, H". . ~ Їl0, H".`". ~ ҇0- Hl00, H". . ~ Їl0, H".`". ~ ҇`2- H./0, H"Ҭ Ё/  
Э / N    O  l m Jm g߭ `
HUa |XO*@J o.
f @J o
HTa `XO`( `
HUa XOp L0N^NuNVH0*n .. ,. (n *
gJmJm*f(Hy  N    XO`*
g0- Hn0- H*UJf*
gZ0- H/ /N    PO* /HT 
Э Ї` .
g20m //N    PO* /HT 
Э / N    O Ŝ*UJf L0N^NuNVH .. *n /0- H"
ҭ Ё/ /. N    m p L N^NuNVH0 *n IHx  HTN    PO`$0- Hє       | c    *U"
fJ gF . rg"Jg(rg*`0JgHrgLp L0 N^Nu n  ` n  ` n  ѐJ g . rf n  , ` n   ` n  , ѐ`NVH0 *n N    -@J    fBHx Hx a O (y    "g@     j  A    R0 Sy   #    ;|   +@ ;|  `Bm /.N    XO"gp`p L0 N^NuNV.N    -@*y    "
g6Jm 
gHy  N    XO;|  
Sy   Ry   
#    Br+A `Hx /. a BPO*@/.N    XO"
fp `( . +@ ;n  ;|  +n  +n  B  
*nN^NuNV.*n 0- HrgrgNHy  N    `J 
Э  *@    j  A    S0 f *    #    Ry   `/-  m NXOp *nN^NuNV   n //N    POp N^NuNVH< *n (n 0- HrgrgFHy  N    XO`  &M  )@ 9|       j  A    R0 `^0, HX/ N    XO$@0, HX$0l /Hj  
Э Ю / N     
X )@ 9|  )|  
> )J B p L< N^Nu      mbclusters mbinit out of mbufs: map full mget mget mfree mget m_more mfree m_copy m_copy m_copy mget mget m_cpytoc mget mclput mcldup        @     _P   "  ?P   ,  &P   <  @   T  @   d  FP   n  @   t  VP     _P     	P     @     VP     MP    !P    P  &  _P  ,  P  >  OP  D  OP  N  ]P  Z  ]P    ]P    ]P    @    @P    &P    @P    @    VP    ]P    ]P  (  @P  @  @  N  FP  f  &P  p  @P    @    VP    ]P    ]P    @P    @    FP    6P    &P    @    VP  2  ]P  <  ]P  Z  @  h  @P    @P    FP    .P    .P    @P    HP    .P    @P    +P    &P    @P    @     VP    ]P    ]P  $  @P  >  ]P  H  @  N  VP  \  FP    &P    &P    @    VP    ]P    ]P    @    @P    @P    FP    .P     .P    @P    HP    FP  P  @  V  VP  d  @  j  VP    @    VP    &P    @P    @    VP    ]P    ]P    @P  &  FP  p  @    :P  @  :P  L  &P  V  @P  f  @  l  VP  z  ]P    ]P    @P    FP  	\  :P  	  @  	  VP  
"  %P  
F  %P  
\  :P  
  :P  
  6P    &P    OP    OP    MP    P    ]P    OP     FP  "  &P  ,  @P  <  @  B  VP  P  ]P  V  ]P  \  @P    FP    @    VP    MP  
  P  
  OP  
  OP  
"  ]P  
L  7P  
|  @  
  VP  
  MP  
  P  
  P  
  :P    @                                     '         0        :         A          M          \          e         i         p     
X   x      x   }                                                            x         @                                                                              
                 '         -        7        ?       F         L         T        ]        f        n        x                                                                                      ^                                                                   @  $     j  +         3        :     
z  E      x  J        R        [     |  c         i        t         |            l                                                                                        0                 $                                                 '       /        6     
>  ?     	  I        Q_rootvp _rootdev _m_get _mclrefcnt _desscan _m_expand _lbolt _kmem_alloc _segkmem_alloc _rmalloc _qs _nproc _mcldup _sum _whichqs _avenrun _domainnamelen _hostnamelen _runin _freemem _rate _hostname _tz _m_free _rmfree _desfree _avefree _dumpvp _maxpgio _nchrdev _m_tally _boottime _mclgetx _kseg _panicstr _noproc _m_cat _imin _splimp _physmem _saferss _maxslp _multprog _sleep _avefree30 _boothowto _m_want _nscan _tick _procNPROC _phz _deficit _runout _m_getclr _bzero _kmem_free_intr _pidhash _selwait _bcopy _nblkdev _forkstat _domainname _m_adj _rminit _mfree _m_cappend _cnt _runrun _minfree _mclget _splx _m_clalloc _wakeup _m_pullup _m_freem _maxmem _hz _mbutl _mbinit _mclfree _freeproc _proc _mclput _wantin _time _m_copy _panic _total _kernelmap _lotsfree _dumplo _allproc _zombproc _mbstat _m_more _mbmap _buffree _m_cpytoc _curpri  fP  t  fP    P    fP    P    fP    P    fP    fP    fP    fP  6  fP  P  =P  b  P    P    P./share/sys/sun2/OBJ/uipc_socket.o                                                                     444       0      12        21504  4424710240  12113                                                                                                                                                                                                                                                                                                                                                                            p      8      h    NVH8.. J g//. /. N    O `//. N    PO*@,
fp+`|0Hgp)`pHx Hx N    PO&@Ы (@Bl Bl 8 x;$ h DJh f9|  )M B/. BBHT m NO , g l  HTN  XO ` n  p L8N^NuNVN    -@B/. BHx /.  n  h  h NO -@/.N    XO .N^NuNV.*n N    -@BBBHx HU m  h NO -@g/.N    XO .`DJ f+M +M  m  J lB `
    l0. `p;@  /.N    XOp *nN^NuNV.*n J g4BHUN    POJf Hx HUN    POJfHy  N    XOB J f20- rg(Hm LN    XOHUN  tXO 
r/ N    XOp *nN^NuNV.*n N    -@B0-   g,`/- N  DXO - f`/- N  DXO - fJ g  0-   gT0-   fHUN  XO-@f:0-   g00-   g0-   f`Hx Hm "N    PO0-   fJ g(BBBHx HU m  h NO -@Jf-@0-    gHy  N    XO m  HUa xXO/.N    XO .*nN^NuNV  BBBHx 
/.  n  h  h NN^NuNV.*n N    -@0-    fHy  N    XOm B/. BHx HU m  h NO -@/.N    XO .*nN^NuNV.*n N    -@0- rg& m 0(   fHUN  XO-@gr8-A` B/. BHx HU m  h NO -@/.N    XO .*nN^NuNV.*n N    -@B/. BHx HU m  h NO -@/.N    XO .*nN^NuNV.*n N    -@0-   fr9-A`00-   gr%-A`BBBHx HU m  h NO -@/.N    XO .*nN^NuNVH<*n (n BBB~-G m 0(    g ,  Pcp(` L.  g0-   f m 0(    gp`B-@R>J g   n 0( H-@`     l     Le 0-   f 0-   gJg~#-G/.N    XO` H0,   fm j0- j  g4m jJ lg m l/( Hm jHU m l PNO `Hm jN    XOHm LN    XO/.N    XO` m  jHx Hm jN    PO0- j   f m  jN    -@0-   g~ -G/.N    XO` Jm $gp 0- $-@Bm $/.N    XO` l0-   f@ m 0(   g~9-G/.N    XO` >J f~'-G/.N    XO` ".   g.<   `X - P L"- X Tl
 - P L` - X T. o v m 0(    g , Юm Z    l ,/.N    XOEJn
` $p` LN    -@&y    "g6Jk 
gHy  N    XO7|  
Sy   Ry   
#    Br'A `Hx Hx N    PO&@/.N    XO    m8   m0HSN    XOJg"    o <   ` , -@   `2   p opp` , l   p opp` , ` -@HTHx /. Ы / N    O Jgr-A7n $Jf  $KJ n Jg m  N    -@/. /. /..   f p	/ HU m  h NO -@/.N    XOJgm B BBBJfJ f Jm j0- j  g4m jJ lg m l/( Hm jHU m l PNO `Hm jN    XOJg/.N    XO    fHx 
/8;$N    PO .L<N^NuNVH<*n (n | -m J g n BJ g n B.   g Hx Hx N    PO&@B. ~/ HSHx 
HU n h NO , fr n0(   g n  &S n  PB.g ., 0+ Ho0+ H. HTB/ Ы / N    O Jg|HSN    XO&@J gJf.f.g HSN    ` Jm $g| <- $Bm $/N    XO`  0-   g/N    XO` 0-   f m 0(   g|9/N    XO` J g 0-   g|#/N    XO` 0,   f m J0- J  g4m JJ lg m l/( Hm JHU m l PNO `Hm JN    XOHm ,N    XO/N    XO` m  JHx Hm JN    PO0- J   f m  JN    * J ,g R>&m @.fHy  N    XO-k | n0(   g  k  
gHy  N    XO.  glv $K`j  
f0* Hր$R.
fJ g/BHSN    O  n  &J``k  
f,0+ H ,    4   | c    4$K&S.fBJ g
 n   @`/- @N    XO+K @.g'n |.g  k  
f   n0(   fHy  (N    XO.  glv $K`j  
f0* Hր$R.
fJ g/BHSN    O  n  &J``k  
f,0+ H ,    4   | c    4$K&S.fBJ g
 n   @`/- @N    XO+K @.g'n |B(- (.f` +n @` J o Jf k  
gk  
gHy  2N    XO., m Jgo.0+ Ho0+ H. /N    XOHTB/ Ы Ю/ N    O Jg|N    * 0+ Hf  .  g
&SB`  -k |0+ H ,    4   | c    4N    -@Jk 
fHy  <N    XO0+ 
HA   Sp Ry   Bk 
    e
HSN    XO+S @&    B B |#    /.N    XOJ    gB    Hy    N    XO&m @&g"'n |`.  g߮`߫ k  ,.  fJ (g (J (f m @ `Jg 8f 2.  f  .g * n0(    gHm ,N    XO n0(   gJ gBBBHx HU h NO Jf4J g. n Jg& n h J g n / n h  h NXO, m J0- J  g4m JJ lg m l/( Hm JHU m l PNO `Hm JN    XO/N    XO L<N^NuNVH0*n .. (m R  g
HUN  tXO gBBBHx HU l N`p L0N^NuNVH8*n I ,&m ` l  Hx Hl N    PO0,    f l  N    . HUN    XOl 0,   g4l J lg m l/( Hl HU m l PNO `Hl N    XOA0< "L QHx  HTN    PO/N    XO0+   g k J g/. k  h NXOHnN    XOp L8N^NuNVH8*n B(n    g J g* m J g Hn /. /. HUHx  m  h N` ~*-G` m Bm ` .g  l  f    l .0 HTN    XON    -@(y    "g6Jl 
gHy  BN    XO9| 
 
Sy   Ry   #    Br)A `Hx 
Hx N    PO(@/.N    XO9|  &L 'G ~&.gl  g
~-G`   l  0;@   l J g
 m  ` m ` .fzN    -@(y    .g6Jl 
gHy  GN    XO9| 
 
Sy   Ry   #    B~)G `Hx 
Hx N    PO(@/.N    XO9|    l ~! .gl  l
~-G` P  l J g0. m ` 80. F@m ` *.g
l  l  ~-G`   l /0    fA L`A ,HPN    POJf  ~7-G`    l +p  \`    l +p  <`    l  0 ;@ h`    l  0 ;@ H`   .   ~b  @0; N hh`j .      b zA 6rXTf jA0;N hZZZZZv        .g
HTN    XO .L8N^NuNVH0 *n    g4J g( m J g/. /. /. HUB m  h N` ^p*` XHx 
Hx N    PO(@9|   .   b  ArXTf  A0;N  L L L L L L   L       r b9|   L 0-      L 0- H!@ `   L 0- H  `   L 0H `   L p 0- $ Bm $`    l ! P `x  l ! 0 `j  l ! \ `\  l ! < `N L 0- hH `> L 0- HH `.HTN    XOp*`(   @       n  p L0 N^NuNV.*n Jm &lHx 0- &HD/ N    `&Jm &o"0m &/N    XO-@gHx / N    POJ Dg 0- Jr/ /- DN    POB Dm Jp *nN^Nu    sofree dq soclose: NOFDREF soaccept: !NOFDREF mget receive 1 receive 1a receive 2 receive 3 mfree mget mget          P   0  .P   V  ,P     @     XP     9P    XP  H  9P    9P    P    P    @    HP    ?P    @    P  0  XP  N  @  d  @    @    #P    @    HP  2  9P  t  XP    @    HP    9P    XP    @  <  9P  Z  XP    9P    XP    9P    9P     ;P  ,  P  8  9P  P  #P  h  XP    9P    9P    9P    9P  l  9P    P    4P    @    HP    OP    OP    4P    QP    9P    8P  x  2P    XP    9P  	\  ;P  	n  <P  	  3P  	  P  
X  2P  
j  P  
  <P  
  9P  
  9P  
  9P    9P  \  ;P  h  P  r  9P    #P    XP    @    HP    @    HP  (  GP    <P    @    HP    GP  
V  <P  
  @  
  HP  
  9P  
  2P    XP  `  P  p  @  v  HP    OP    OP    DP    4P    4P    9P    %P    %P    4P    ;P  f  P    ;P    9P  H  @    #P    P    FP     ;P    -P  (  9P  X  ?P    P    P    4P    @    HP  &  OP  ,  OP  2  4P  J  QP  X  9P    P    4P    @    HP    OP    OP    4P    QP    9P    P    P    P  "  P  ~  P    5P    3P    )P            
                            &          -        5     $   >     (   J        U        c         m         q                                                     
                           h                                                                                                       #       -        6       @         G        R        Z        a     t  k        t                                                                                                                                                	                           $        ,     ^  <         G        P        [        e        k         s        {                                                j                       D                              N                                	          $         ,       4_nbuf _sbreserve _rootvp _rootdev _m_get _sosend _soclose _soshutdown _soconnect _sodisconnect _bclnlist _qs _sbdroprecord _rtnet _file _nproc _whichqs _rtstat _runin _sbwait _soaccept _sobind _rawintrq _m_free _pffindproto _dumpvp _nchrdev _panicstr _noproc _soqremque _gsignal _splimp _solisten _physmem _sogetopt _sleep _boothowto _m_want _nfile _sorflush _domains _selwakeup _procNPROC _runout _m_getclr _bzero _pffindtype _pidhash _selwait _nblkdev _uiomove _psignal _mfree _pfind _runrun _bufhash _mclget _splx _socreate _wakeup _m_freem _maxmem _sohasoutofband _sbrelease _mclfree _fileNFILE _freeproc _proc _mclput _wantin _socantrcvmore _m_copy _panic _ifnet _dumplo _sosetopt _allproc _zombproc _soabort _mbstat _bfreelist _m_more _soconnect2 _rthost _bufalloc _bufchain _soreceive _curpri _splnet _sofree                                              #        0         :     H  F         T         e         n      x  t                       B     ./share/sys/sun2/OBJ/uipc_syscalls.o                                                                   444       0      12        16470  4424710265  12475                                                                                                                                                                                                                                                                                                                                                                                  \          NVH0 *x;^N    (@JgZr(9|  )|     
/- /- Hn/N    O ;J8;f)n ` 8; @B</, N    XOBl p L0 N^NuNVH0 *x;^/N  fXO(@"gFHx /- /- HnN  O ;J8;f"/./, N    PO;/.N    XOp L0 N^NuNVH0 *x;^/N  fXO(@"g/- /, N    PO;p L0 N^NuNVH8 *x;^J gDHx Hn/- N    O ;J8;f B/./- N    O Jf
 ;` /N  fXO(@"g N    -@&l 0+   f ;/.N    XO` 0+   gDJk f> #;/.N    XO` fJk $f(0+   g7| 5 $`Hx Hk "N    POJk gJk $g %;Bk $/.N    XO` BN    XOJl/.N    XO`  N    (@"f 8; @B</.N    XO`  -k Hx /.N    POJfHy  N    XO&n9|  r()|     
)K Hx Hx N    PO-@/ HSN    POJ gN n0( Hl
0( H-@/./-  n ( Ј/ N    O Hx /- HnN    O /.N    XO/.N    XOp L8 N^NuNVH8 *x;^/N  fXO(@"g  &l 0+   g0+ rg
 %;`  Hx /- /- HnN  O ;J8;f  /.HSN    PO;J8;f  0+   g0+   g $;/.N    XO`rN    -@Hx;bN    XOJg$J8;f2 ;`*Jk $fHx Hk "N    PO0+   f %;Bk $/.N    XOk /.N    XOp L8 N^NuNVH8 *x;^BHx /- N    O Jf
 ;` J/- /- Hn/N    O ;J8;f &/- /- Hn/N    O ;J8;f  N    (@"g  -x;r(9|  )|     
)n N    &@"g  r&7|  '|     
'n -x;/./.N    PO;J8;f<    f/./.N    PO;J8;fB;Hx /- HnN    `R/+ N    XOBk  . @B</, N    XOBl  . @B</.N    XO/.N    XOp L8 N^NuNV.*x;^-m -m A-Hr-A-m -m BB/- Hn/N  p *nN^NuNV.*x;^BBA-Hr-A-m -m BB/- Hn/N  p *nN^NuNVd.*x;^Hx Hn/- N    O ;J8;fP   e (;`> ./ Hnh/.N    O ;J8;fAh-H/- Hn/N  p *ndN^NuNVH8*n /. N  fXO(@.g -m -m BnBBnB&m ~ `"J l
 ;`  J g + ѮRPK mJg&Hx /- /HnN  O ;J8;g`  BJ g&Hx /- /- HnN  O ;J8;g`JB-n/./. Hn/./, N    O ; .!;Jg/.N    XOJg/.N    XOp L8N^NuNV.*x;^Hx Hn/- N    O ;J8;fF-m -nA-Hr-A-m -m BBB/- /- Hn/N  	p *nN^NuNV.*x;^BBA-Hr-A-m -m BBBB/- Hn/N  	p *nN^NuNVd.*x;^Hx Hn/- N    O ;J8;f     e (;`v ./ Hnh/.N    O ;J8;fRAh-HJg B/./.N    O Jf ;`$ - rЁ/  - X/ /- Hn/N  	p *ndN^NuNVH8*n /. N  fXO(@.g t-m -m BnBBnB&m ~ `"J l
 ;` @J g + ѮRPK m-nHn/. HnHn/, N    O ; .!;Jg`-m oJfB`6 n0( Hl
0( H-@/./ n ( Ј/ N    O Hx /. HnN    O J gb-m oJfB`8 n0( Hl
0( H-@/./-  n ( Ј/ N    O Hx /. HnN    O Jg/.N    XOJg/.N    XOp L8N^NuNV-x;^ n/N  fXO-@g n/(  @/( N    PO;p N^NuNV-x;^B n/N  fXO-@g   n   p o
 ;`   nJ glHx 
Hx N    PO-@f 7;`r n/(  n ( Ј/  n/( N    O ;J8;g/.N    XO`4 n"n ) 1@ /. n/( /(  n/( N    ;p N^NuNV-x;^B n/N  fXO-@g   nJ g$Hx Hn/( N    O ;J8;g`  BHn n/( /(  n/( N    O ;J8;fz nJ gpJgjJgd n0( Hl
0( H-@/. n/(  n ( Ј/ N    O ;J8;fHx  n/( HnN    O ;Jg/.N    XOp N^NuNVH0 BHx HnHx N    O ;J8;f  BHx HnHx N    O ;J8;f  N    *@"
g  -x;r*;|  +|     
+n N    (@"gjr(9A )|     
)n !;;!;/./.N    PO;f n h    n h  `R/, N    XOBl  8; @B</- N    XOBm  . @B</.N    XO/.N    XOp L0 N^NuNVH8 *x;^/N  fXO(@"g  Hx Hn/- N    O ;J8;f  &l Hx Hx N    PO-@f
 7;`  B/.BHx HS k  h NO ;J8;f\ n0( Hl
0( H-@/./-  n ( Ј/ N    O ;J8;fHx /- HnN    O ;/.N    XOp L8 N^NuNVH8 *x;^/N  fXO(@"g  &l 0+ rf
 9;`  Hx Hx N    PO-@f
 7;`  Hx Hn/- N    O ;J8;f  B/.BHx HS k  h NO ;J8;f\ n0( Hl
0( H-@/./-  n ( Ј/ N    O ;J8;fHx /- HnN    O ;/.N    XOp L8 N^NuNV./. Hx N    PO*@"
fp7`l   p o&    nHUN    XOJfHUN    XOp`<;n  /.  
Э / /. N    O -@gHUN    XO` n   .*nN^NuNV./. N    XO*@"
fp `m  g
 &;p ` 
*nN^Nu  accept       )P   $  NP   :  =P   f  P     @     @     P     >P     @    P  D  XP  d  ,P  ~  @    \P    <P    <P    "P  $  <P  2  (P  B  <P  N  )P  j  <P    P    @    MP    NP    P    P    BP  "  BP  0  >P  <  <P  ^  @    @    P    >P    \P    P  .  "P  N  <P  `  >P    ,P    =P    =P    )P    NP    )P  .  NP  J  VP  n  VP    BP    P    P    P    P  6  @    @    XP    XP    @  &  @    @    @    P    >P  0  >P  Z  XP    @    @  	$  XP  	\  XP  	  ,P  	  @  	  @  
P  ZP  
  BP  
  BP    BP  ,  BP  @  >P  R  >P  v  @    P    @    P  $  XP  <  P  n  PP    @    XP    !P  
H  BP  
l  BP  
  P  
  =P  
  =P  
  )P     NP    )P  "  NP  D  UP  l  P    P    P    P    @    XP    -P  |  BP    BP    >P    @     -P  $  XP    BP    BP    >P    P  
  ;P    P  :  XP  L  P  r  AP            
                            "          *          3          ?     d   I          T     N   ]         g         k         q         x                                                                                                                                                 
       B  
                        (         /        :     D  @        H        O       X         a         i        t        |                                                |       |                       f                              r       $           
                           &        .       6         <         E     	  M        V        a        k        q        y             	                                                                                                                            !         ,        4         <_nbuf _rootvp _rootdev _m_get _sosend _soclose _soshutdown _shutdown _soconnect _connect _bclnlist _qs _file _nproc _whichqs _recv _runin _getsockname _crfree _soaccept _sobind _m_free _dumpvp _nchrdev _setjmp _panicstr _noproc _soqremque _solisten _pipe _recvfrom _physmem _sendit _sogetopt _sleep _boothowto _send _m_want _nfile _sendmsg _ufalloc _falloc _procNPROC _runout _useracc _m_getclr _pidhash _selwait _nblkdev _bind _getsockopt _setsockopt _socket _getsock _mfree _runrun _bufhash _socketpair _accept _mclget _splx _socreate _m_freem _maxmem _sendto _getf _copyout _recvit _mclfree _fileNFILE _freeproc _proc _listen _wantin _recvmsg _sockargs _getpeername _panic _socketops _dumplo _sosetopt _allproc _zombproc _mbstat _bfreelist _unp_connect2 _soconnect2 _bufalloc _copyin _bufchain _soreceive _curpri _splnet                            #       -        6       @         G        R        Z        a     t  k        t                                         ./share/sys/sun2/OBJ/vers.o                                                                            444       0      12          251  4424713074  10526                                                                                                                                                                                                                                                                                                                                                                              p                   SunOS Release 4.0.3 (GENERIC) #1: Mon Apr 24 14:48:42 PDT 1989
Copyright (c) 1989 by Sun Microsystems, Inc.
                 
_version s.o in.    ː  windt.o     ˑ  
winioctl.o d    ˒  	winlock.o tl    ˓  winshared.o     ˔  	wintree.o re     ˕  ws.o int    ˖  
ws_dispense.o nt  0  ˗  ws_interrupt.o .  D  ˘  wscons.o upt  T  ˙  xt.o sco  d  ˚  xy.o    x  ˛  zs_asm.o y.o    ˜  
zs_async.o o     ˝  zs_common.o   XO` f./share/sys/sun2/OBJ/vm_as.o                                                                           444       0      12         7662  4424711174  10710                                                                                                                                                                                                                                                                                                                                                                         @                   NVH0 *n (n J f+m  "m  I"	g$ ) b ) Щ d+I  	`
"i fp L0 N^NuNV/9  @Hx Hy  HN    O -@Hx / N    PO .N^NuNV  /. N    ` n /( N    XO n J f/Hy  HN    PON^NuNVH< *n a |(@&m $K"g@/+ /+ HTN    O -@g/ HS k  PNPOJgHTa vXOp `
&k f L< N^NuNVH8 *n (n &m "f
)L )L `T"l  d 	Ь  cp`@ + Ы dp`0&k  f)K )k  'L  l !L  m  d+L p L8 N^NuNVH8B .  (@.. ޮ    HT/. a PO*@,
fp`  &L-M`b - Э e*m  g~-G`HAx  - Э c,- ܭ `,/. /. /HTHU m  h NO -@fJfJg\    fR*n`H - Э e*m  - Э c
 - Э ` , BHx /HSHU m  h NO Ʒe .L8N^NuNVH0 .  (@.. ޮ    HT/. a PO*@"
g`: - Э e*m  gp`&HTHU m  h NPO-@f   I Jfp L0N^NuNVH0B .  (@,. ܮ    HT/. a dPO*@.
ffp`j - Э e*m  g~-G`HAh  - Э c.- ޭ `./. /HTHU m  h NO Jgr-AJf .L0N^NuNVH0 .  (@,. ܮ    HT/. a PO*@.
g`\ - Э e*m  gp`HAh  - Э c.- ޭ `./. /HTHU m  h NO Jgp`
Jfp L0N^NuNVH<*n  .  $@ . Ю    -@(m .g  `z&l  , Ь dh . cf d$l  , Ь d
 , Ь ` .. -l /HRHT l  h NO Jgp`J g . d(Kep L<N^NuNV./. /. /. N    O *@"
fp`* n !M /. HU n NPO-@g
HUN    XO .*nN^NuNVH<..  n *P n (M n -h -nf&. r/ //. /. N    Jg <p ` 8.   f &M n$h cpcl n c ` 
  n d 
`  n  B//. /. N    O Jg,.  g n   b n "n  А cp `  n&h  d-h  .f dd  n c ` 
  n d 
`  n  B//. /. N    Jg H.  g" n   b 2 n "n  А c p ` $L`   n-h  .g   @"@&i  dpcl n c ` 
  n d 
`  n  Hx //. /. N    O Jg*.  g n   b n "n  А cp `| n$h b ^ch n c ` 
  n d 
`  n  Hx //. /. N    Jg*.  g n   b n "n  А cp `pL<N^NuNVH8  n J f!h   n "P n  	А-@ n *h (M"
gr     f` - b@ - Э -@d0 n !M  n   .c
 n  .` n  . `l - c"g
 +  c&M*m f"fp`F + cp`8 n !K  n    + Ы c n  .  ` n   p L8 N^NuNVH8~ J fp `:/. N    XO n *h (M"
g&m J $gHU k $NXOހ*m f L8N^NuNVH8 .  (@ . Ю    &@ n *h .
`j - Э dR cZ d(m  - Э c
 - Э ` . /. /HTHU m  h (NO Jgp`ǹd n *m  fp L8N^NuNVH0 n B .  (@,. ܮ    HT/. a DPO*@.
g`h - Э e*m  gp`TAh  - Э c.- ޭ `./. /HTHU m  h ,NO -@ n ѐgp`
Jfp L0N^Nu          \  @   f  @   l  !P     P     P     P     @     P     P    P    P  *  P    P    P    P  <  P    P  	  P                               %          /     4   :         A          Q         Y          d         m         w                                                          @                                                     f                    	      V               	~  '       5        =     
  H        P         a        i     	  r        z     z       H                                  _rootvp _rootdev _kmem_fast_free _hat_free _as_addseg _runin _valid_va_range _dumpvp _segvn_ops _nchrdev _panicstr _as_faulta _noproc _physmem _as_fault _boothowto _seg_free _as_freeincr _runout _bzero _selwait _as_unmap _nblkdev _as_setprot _as_map _seg_alloc _as_alloc _runrun _as_swapout _as_checkprot _maxmem _as_incore _wantin _kmem_fast_alloc _as_dup _as_sync _dumplo _as_memory _as_freelist _as_hole _as_segat _curpri _as_free     PO;p N^NuNV-x;^B n/N  fXO-@g   n   p o
 ;`   n./share/sys/sun2/OBJ/vm_hat.o                                                                          444       0      12        22133  4424711565  11073                                                                                                                                                                                                                                                                                                                                                                                          NVH0 r *|    A RPM   @e#      r "|    (|    T 0@TR)I C I    e   Ry  #      #      #         y      y    !|     #       L0 N^NuNVH0 *n Hy  N    XO`HTHy  N    PO(m "g2 fHTN    XOHUN  jXOB B HTHy  N    POHy  N    XO"f
HUN  jXO/9    N    XOL0 N^NuNVHn/. /. N  
PO J gp`p / /./. /. /. N  N^NuNV .    f .  / N    XO-@`B .  -@ /. N  XO.  ?Ѐ.J gp`p / /././. /. N  R>xN^NuNVH0  n  h 
(h "f n /( 
N  
`9y     Ry    HTN    XO n /( 
/. N  PO*@    gm  dHy  N    XOUm L0 N^NuNVH< g g/. N  XO.  n  h 
$h ,
f n /( 
N  
`5y     Ry    HRN    XO*n (M `  ,g 
     d8,gSk  n /( 
HUN  PO&@    f 
   x *@`  HnHUN    PO. g  .  ~g   f"p .  ?|8g|?g`f~(`B~-`> f$p .  ?|gB~ . ?|Ά`p .  ?g .   ?Ѐ./.HUN    POK e .gSk L<N^NuNV  N^NuNVH<  n  h 
J g   n  h 
$h "
f n /( 
N  
`5y     Ry    HRN    XO*n  
Ю -@`  "g 
     dJ"gSk  n /( 
HUN  PO&@    f 
   x *@`R 
 rЫ (@`PL,  g k  dHy  N    XOSk Hx `Hx 	HUHTHSN  |O K e ZSk L< N^NuNVH8 *n N    -@`Hx BHSHTN  |O Jl
N    -@"gSl &m  "g:     " ҁЁ    (@Rl +  f/.N    XOr-A"f/.N    XOL8 N^NuNVH0 N    -@Jl
N    -@"gSl  n *h  `LHx BHUHT/. N  
O Jj
N    -@"gSl m fp `p 0-     *@"
g: 
    " ҁЁ    (@Rl -  f/.N    XOr-A"
f r/.N    XOL0 N^NuNVHn/. N    PO . N^NuNVH0  n *h 
HU/. N  PO(@J gJ g , gHy  N    XO    gJ f/. HUHTN  L0 N^NuNVH0 N    -@Hy  N    XO*|     fTJm fNJ  f#  HUHy   N    PO(|   /9    HTN    POI  π e+y   #  K    e#    Hy   N    XOHy  N    XO/.N    XOL0 N^NuNVH0J g n  gHy  N    XO/. /. N  JPO(@ .  rЬ *@N    -@-  gJHn/. N    POp .  .   눁. p .  .   鈁. `  /. /. N    PO . g  JgHy  *N    XOJ gJgHx+Hy  [Hy  6N    O *  n J  f0<` n  (      ;@  n !M  /.N    XO n  h 
R ``/.N    XOJ gNp -   . tt JVDf p -   . tt JVDgHy  nN    XO. tr JVD-  - . tr JVD-  퉃- .   f0 n      
f     eR    `R   `R   `R   .   fSl L0N^NuNV.*n A    */. N  XO  ?Ѐ -? /. N    XOm  @m *nN^NuNVH8~  n J f Hy  N    XOR    *y  PM   @f*|     fJ f#  `6"gm e(M>-   f"g
*L#  `Hy  N    XO`Hy  N    XOHUN    XOJ g, m &h `/+ N    XO&k .f m B R   +n  ;y     Ry      n !M  n &h `HS/+ N    POR   (&k .fL8N^NuNV. n      
gHy  N    XO*n  
Ю -@`HU/. N  JPOK e*nN^NuNV   . rb<@0; N  @ " & & " " & & @ * . . * * . .`p(`p8`p-`p?`Hy  N    XOp N^NuNVH0 *n -Ug  N    -@ n  f$I Tfp `p 0    !@  8`x nJ  fHy  N    XO n (  `*TfHy  N    XOTfp `p 0    X(@p 0"
f"<  `
"
    恰f8 ;| /.N    XOB n  h S -  g0 .  /. /. HU/. /.N  
      L0 N^NuNVH< *n (n BB,  fHy  N    XO.  f    r-@ - Ю-@ N    &@N    -@ m J f:$y    g
HRN    XOHUHy   N    PO .   -@r-A` m $h g
HRN    XO-n J gt.   glHn/.N    PO n p   r .   Ѐ n p   r .   刁  .  gA    C"J/./.N    PO.  f4Jg/9    Hy   N    PO/.N    XOg
HSN    XOL< N^NuNVH8  n *h 
&m "fHUa @`7y     Ry    HSN    XON    -@/. N    XO(@    gDRl R   J  g" .   gHU/. HTN  6O /.N    XO` *Hy  N    XO`HJl f     f
 l J fl   fR   `R   Rl HTN  XO#  (y  "fp(y  r-AI    fJ  g(y  `(|     g z  f   m"Hy  N    XON    Hy  N    XOR`R   #    9|  /. HUHTN  O Hy  N    XO/.N    XOHT/, N    PO  L8 N^NuNVN    -@/. N    XO-@ @Rh J  g< .    g0 @J g( ( ".  g/. /. /.N  6O /.N    XO .N^NuNVH8*n (m m  gHx&Hy  Hy  N    O &m .g  ~ ,  gHx BHTHUa O RPLrm m -h g<N    -@g/.N    XO/- N    XO .g
/ N    XO + f'm  J g$ m B ` m !m  J g
 m !m  B B B N    -@Sm +y   #  /.N    XOL8N^NuNV.*n Jm fHxXHy  CHy  .N    O N    -@+n   n +h  J g m !M B  n !M  .  +@ /.N    XO*nN^NuNV  /.  n /( /Hy  VN    O Hy  zN    XON^NuNVH0*n `Rl /N    XOHTa XON    . (m "f/N    XOp L0N^Nu    @(#)vm_hat.c  1.103 89/04/19 SMI       hat_unlock hat_unload - pmg not kept hat_pmgreserve hat_pteload free page hat_pteload pp != NULL && ppme->pme_page == NULL ../../sun/vm_hat.c pteload - remap flags hat_getctx - no ctx's hat_reserve hat_vtop_prot hat_pteunload - no mappings hat_pteunload - no mapping hat_ptesync - invalid pme pmg->pmg_keepcnt == 1 ../../sun/vm_hat.c pmg->pmg_keepcnt > 0 ../../sun/vm_hat.c pmg = %x, pmg base = %x, addr = %x
 wrong pmg          P     P   "  P   &  @   .  
P   4   P   T   P   ^   P   d   P   j   P   n  2P   t   P   x  @   ~  P     9P     9P     9P     P     9P     P     @     P     @     P     P     @    @    P    @      P  .  @  6  9P  <  P  ^  @    @    P    @    @  :  @  B  P  J  P  R  P  f  @  p  2P    @    EP    @    @    P    P    P  4  @  >  2P  `  DP     P  ^  @  f  P  n  P  v  P    @    2P     @    EP  "  @  R  #P  j  @  z  #P    
P     P    :P    :P    #P     #P  *  @  :  #P  `  
P  n  
P     P    :P    :P    !P    @    @    EP  &  2P  <  @  T  #P  ^  @  d  P  l   P  ~  @    @    P    1P    P    @    @     P    @    @    P    @     P    :P  ,  @  2  EP  B  @  `  #P  z  DP    P    @    EP    @  	  @  	  =P  	.  
P  	F  :P  	`  :P  	  @  	  EP  

  P  
  0P  
  KP  
&  KP  
.  KP  
6  KP  
\  1P  
h  @  
  %P  
  @  
  P  
  'P  
  @  
  P  
  P  
  @    @    @  $  @  *  EP  4  @  :   P  D  P  `  P  x  'P    P    P    P    'P    P    @    EP    @  j  @  p  EP    #P    
P    @    EP    @    EP  
  
P  
,  
P  
F  :P  
|  @  
  @  
  EP  
  CP  
  #P    9P    P  *  P  V  P  z  DP    1P    P    2P     P  ,  :P  :  P  l  P  t  P  |  P    #P    3P    2P    'P    @    @    :P    @    P    'P  &  'P  2  @  :  @  @  @  J  @  Z   P  b  @  j  @  r   P    @    @     P    6P    @    P    'P    @    @    @     P    :P    P     #P  .  3P  @  @  L  2P  z  @    :P    @    @    =P    CP    P  &  P  :  P    #P    @    @    :P    @    @    =P    #P  (  :P  J  @  P  P  Z  @  `  EP    :P    #P    :P                  "             "          4        <        F          R        ^         b         l     6   z                                                           L                 @                           D        *            
              j  ,         5        ?     
  K         W         c        k         x                                              ,                                                                                /        >         J     J  X     
  e         r                                            
P                |                                                                J          "        ,       ;       I      0  V       a       k_mon_exit _hat_newseg _printf _page_numtouserpp _sccsid _ctx_lock _mmu_setpmg _hat_getpmg _qs _hat_free _hat_wrongpmg _nproc _whichqs _pments _mon_enter _ctxhand _dvmasize _hat_memload _hat_pagesync _ctxs _kas _mmu_settpmg _hat_pageunload _hat_unload _mmu_pmginval _cv_broadcast _hat_xfree_other _cv_wait _ctx_time _hat_getctx _mmu_setctx _mmu_setpte _pmgrps _mmu_getkpte _hat_unlock _splvm _fbobmemavail _page_pptonum _pmgrphand _hatcnt _pmgrpmin _hat_init _hat_pmgfree _hat_reserve _hat_pmgreserve _procNPROC _hat_devload _pidhash _DVMA _mmu_pteinvalid _pmgrp_invalid _mmu_getpmg _hat_pmgalloc _hat_ptesync _rm_outofhat _hat_chgprot _hat_vtop_prot _kctx _splx _cpu _hat_mempte _assfail _hat_pteunload _hat_pmglink _freeproc _proc _hat_pteload _mmu_getctx _mmu_getpte _panic _hat_pmginit _allproc _zombproc _hat_getkpfnum _getpmg_check _cache_stats _pmgrpfree _pme_lock .   fSl L0N^NuNV.*n A    */. N  XO  ?Ѐ -? /. N    XOm  @m *nN^NuNVH8~  n J f Hy  N    XOR    *y  PM   @f*|     fJ f#  `6"gm e(M>-   f"g
*L#  `Hy  N    XO`Hy  N    XOHUN    XOJ g, m &h `/+ N    XO&k .f m B R   +n  ;y     Ry      n !M  n &h `HS/+ N    POR   (&k .fL8N^NuNV. n      
g./share/sys/sun2/OBJ/vm_sched.o                                                                        444       0      12        10217  4424710427  11401                                                                                                                                                                                                                                                                                                                                                                            8            8    NVH< J  g BHy  N    PO`  .  o N    ~Ϭ 0,  f
HTN    XON    HTN  XOJg bJg Z/9    /, `N    POѹ    ` >N    J    gB    BHy    `R9    BHy    N    PON    `  - HH~gx~f n - 0   f j 9    lRg 9    lR" `r - `N    - HH- HHҀ- HH~瀒-Ao (M-A`  9        mJ Xf  - HH  o   - 0  
~f  J g  Jm f  N    ~ϭ 0-  f
HUN    XON    HUN  XOB    BB y    J fJ       mH/9    /9    N    PO    l, 9   й        b 9        l
~-G`  B-|*y    `~g *m .
f ng $B~-G 9  lR‰l~-G~-G-l `/9    /.N    PO-@".N    "9        o2 .ѹ    HTN  XOJf /9    /.N    PO    &LB   
  o~
#       l~#  BB   *y    `  - 0  
~f J g  Jm f  g  - HH  o:-  f-  n-  f"- HHo  (M- HH-@`  Jf  -  g
-  f  -m X .ذ  l" ҁЁ    -@R`-y    n ( nH#    $|    ` j  . m
$j J f n!j  %n  n!n  n *m .
f JfB-|$y   `,*R- HH- HHЁ~-@m(M-@$j .
fJf Jg.f Jf jN    R9    BHy    ` NuNVH *n J  g0m </Hy  N    PO/- N    XO+@ X 
    "<   N    й    / N    XO, N    . -  f
HUN    XOr 0/N    XOB- R    R   prݹ   pL N^NuNVH *n ~-GJ  g0m </Hy  N    PON    ~ϭ 0/ N    XO/- N    XO,  
    "<   N    й    / N    XOІr+@ `B- S    R   t - `ѹ   J9    gB9    Hy    N    XOJf0N    . | 0;$g-  f
HUN    XO/N    XO .L N^Nu                  swapin: pid %d
 swapout: pid %d
           
  @     @     #P   ,  @   6  (P   L  7P   T  'P   \  @   r  HP   |  P     .P     (P     DP     DP     P     /P     /P     #P     'P     P     P    4P  R  P  X  P  p  @    (P    7P    'P    @    DP    FP    
P    $P    P    P    P    P    P    P  "  P  (  :P  F  KP  v  @    HP    P    4P    P    .P    .P    @    .P    P    .P    @    @    @  $  @  .  NP  4  KP  n  @    @    P    NP    NP    NP  l  NP    (P    
P    
P    @    @    P    +P    CP     4P  (  OP  0  JP  :  (P  L  &P  \  >P  h  "P  n  8P  x  P    @    @    P    (P    >P    <P    CP    4P    OP    ;P    "P    8P     P  &  /P  .  /P  4  /P  :  ?P  H  (P  f  &P  p  >P                                        &          ,         3         7         >      x   C         L         U         d         q         x               x         @                                                                                                    x                                    
                       %         ,        7        B         I         O         U        \        b         l        w        |                                                                      @                 x                                           
                                   $        .        4        <        B        M      $  T        ^        f         s        |                                        _rootvp _rootdev _desscan _printf _imax _lbolt _qs _nproc _sum _whichqs _avenrun _domainnamelen _hostnamelen _runin _freemem _rate _hostname _tz _desfree _avefree _dumpvp _maxpgio _nchrdev _boottime _panicstr _noproc _imin _bigp _physmem _sched _nosched _swapin _saferss _maxslp _multprog _sleep _avefree30 _boothowto _setrq _spl0 _spl6 _nscan _tick _rm_asrss _procNPROC _phz _deficit _runout _nbig _pidhash _selwait _nblkdev ldivt _forkstat _domainname _remrq _cnt _runrun _minfree _segu_swapout _as_swapout _swapout _splx _wakeup _maxmem _hz _freeproc _proc _wantin _time _kernelmap _total _lotsfree _dumplo _segu_swapin _allproc _zombproc _swapdebug _bplist _segudata _curpri (|     g z  f   m"Hy  N    XON    Hy  N    XOR`R   #    9|  /. HUHTN  O Hy  N    XO/.N    XOHT/, N    PO  L8 N^NuNVN    -@/. N    XO-@ @Rh J  g< .    g0 @J g( ( ".  g/. /. /.N  6O /.N    XO .N^NuNVH8*n (m m  gHx&Hy  Hy  N    O &m .g  ~ ,  gHx ./share/sys/sun2/OBJ/vm_subr.o                                                                         444       0      12         7017  4424710436  11252                                                                                                                                                                                                                                                                                                                                                                         8   x      ,          NV  /.  n 0( <H/ Hy  8N    O /.  n 0( <H/ Hy  cN    O Hx 	/. N    PO n r@ 0p N^NuNV   n     o!|    N^NuNVH B n J fp `  n *P    fp `p/ /- /N  `O Jfp` N    -@` n ~@Hx /. N    PO n    f/.N    XO n Bh  n !x;$ , n !U  J o  n  .      n 1n   n  ( r	 n !@ $ n !U   n !m  /.  n NXO n .(  x;$     0 n -h      fp`p/ Hx //. x;$/( N    O -@gtp .~f .-@`~-G n ~ n 1n N     x;$ 0 n    g
/N    XO/.N    XO n ~ϐ .` /. N    XOJl n r n r-A1n `/.  n NXO/. N    XO-@    fp`p/ Hx //. x;$/( N    O JgHy  N    XON     x;$ 0 n    g
/N    XO/.N    XO n  (ߕ  n   n ߨ  n J (fJg   n ~ϐ n J (f Jf  n P n S ` :L N^NuNV    fp`p   -@/ /. /.  x;$/( N    r JWD N^NuNV    fp`p-@/ /. /. Hy    N    r JWD N^NuNVH0.. ,. /N    XO*@ S/ N    XO(@d.
g.f"Hy  N    XO`Hx HUN    POK $cp L0N^NuNVH8*n  n (h ~ &n `.*B  / Hx Hx HSHy    N    O RG rmp L8N^NuNVH0*n (M -M`f -@HnHn x;$/( N    O JfFBHx B .Ю / /././. Hx N    O  . g ` .Ѯ .ep L0N^Nu  pid %d: killed due to swap problems in %s
 sorry, pid %d was killed due to swap problems in %s
 physio unlock memialloc      @     P   6  @   <  P   N  9P     @     -P     'P    AP    (P    -P    BP  (  AP  D  +P  z  VP    (P    @    MP    -P    BP    AP    DP    P    DP    #P    #P    @    MP  .  CP  ~  P    P    QP  
  P            
                           $          -          5         ?         F         J         Q      x   V         _         f         o         ~                        x         @                                                                                                                                       (        1         ?        H        P        Z         a         k        v                                                                                              `                                                 @        x                  )      d  2        ;         A         I         T         b        j        n     H  w                                                        $                                                                                   _nbuf _rootvp _rootdev _desscan _uprintf _printf _bclnlist _lbolt _qs _nproc _sum _whichqs _runin _avenrun _domainnamelen _hostnamelen _freemem _rate _hostname _tz _desfree _avefree _segkmem_mapin _kas _dumpvp _maxpgio _vn_rdwr _nchrdev _boottime _core_seg _kseg _panicstr _noproc _memialloc _physmem _page_numtopp _saferss _maxslp _multprog _sleep _as_fault _avefree30 _boothowto _buscheck _kernacc _spl6 _nscan _physio _tick _procNPROC _deficit _runout _phz _useracc _selwait _pidhash _nblkdev _psignal _forkstat _domainname _cnt _runrun _bufhash _minphys _minfree _splx _wakeup _page_free _as_checkprot _maxmem _hz _uaccess _swkill _freeproc _proc _wantin _time _panic _total _lotsfree _dumplo _as_memory _allproc _zombproc _bfreelist _bufalloc _biowait _bufchain _curpri P    P  "  P  (  :P  F  KP  v  @    HP    P    4P    P    .P    .P    @    .P    P    .P    @    @    @  $  @  .  NP  4  KP  n  @    @    P    NP    NP    NP  l  NP    (P    
P    
P    @    @    P    +P    CP     4P  (  OP  0  JP  :  (P  L  &P  \  >P  h  "P  n  8P  x  P    @    @    P    (P    >P    <P    CP    4P    OP    ;P    "P    8P     P  &  /P  .  /P  4  /P  :  ?P./share/sys/sun2/OBJ/vpc.o                                                                             444       0      12        10051  4424712361  10374                                                                                                                                                                                                                                                                                                                                                                         `                   NV.*n Hm N    XOrg:Hm N    XOrg(Hx Hm 
N    POJfHx Hm N    POJgp `>| H | I |  Hx 
/9    N    PO#     9       gR    p *nN^NuNVH8p . ~l<p .     *@ @   f"p . jRA    (p .gJl  fp`  &l 
 ,  @  / N    XO. A . r( g/N    XOp`  A . r|  . f*   `L*  F`<0n 
/N  XOJg0n 
/N  XO/N    XOp`"0n 
/N  XO r>f/N    XOp L8N^NuNVH8p .     *@p . jRA    (p &l 
 ,  @  / N    XO. BA . r|   /N    XOp L8N^NuNVH8*n 0-        (@0-    jRA    &p  +  @  / N    XO. BHU/+ (N    O )@ ,, *- B (0- xȀ      gR"y    2-    -IA    h  .    -@ro    R)F S)E Hx /.`///HSN  >O /N    XOp L8N^NuNVH0*n .. ,. *. (m 
 -  @  / N    XO(   gA  |  RS|  $< ($ ($< ( $   ( $rr(A  |  G 
/N    XOp L0N^NuNV  /. Hy    B0n 
/p . " Ё    / HzN    N^NuNVH v z  A    -p g  n-h 
x  nA  ( ,܄     *@ g v nA  | @ HUN    XO g  v nA  |   g&//Hy  N    O  n|   nC    g/- /- //.a `X   g2Hm  n/( (N    PO"܁    /N    XOHUN    XOR~m R~m  L N^NuNVH0 p .     *@p . jRA     p (h 
`Hx HUN    PO   f,   gp L0 N^NuNVH0 p .     *@p . jRA     p (h 
"|  `HHgi  HHF`TIJfp L0 N^NuNVH8p .     *@p . jRA    (p &l 
.   g(p`   n  `4 n " ?  *` . vg@v gp`   ,  @  / N    XO, 0n 
/a XO   g| @ `@   g|  `0B+ `*0n 
/a hXO|  0n 
/a XO0n 
/a JXO ~>f/N    XOp L8N^Nu@(#)vpc.c 1.18 88/12/16 Copyr 1986 Sun Micro                        B                              vpc%d: bus address error channel %d.
   vpc          P   "  P   8  P   L  P   r  @P   x  
P     GP     GP     GP     9P     8P    3P  .  3P  r  @    @    3P    @    3P    9P    8P    3P  *  3P  V  9P  p  8P    3P    P    GP    *P    *P     @  ,  3P  h  3P    3P    1P  .  <P  :  #P  T  8P    9P    4P    @    P  @  >P  P  <P  X  P  b  4P    9P    8P     P    9P    8P    @  d  9P  z  8P    3P  N  3P   .  @   B  @   J  @   N  8P            
     <                     (         1          8          @     `   H         R         Y          b         f        o         v                                                                               @                                                                                         $     B  -        8         @        F        Q        V        ^        g        p         v                     @                                                                               R                @                  	                        #        )        2        =        E        N        X         b       m        }                     >          _nbuf _vpcstrategy _rootvp _vpcopen _rootdev _peekc _printf _sccsid _bclnlist _lbolt _rmalloc _qs _vpcbits _nproc _vpcdriver _whichqs _avenrun _domainnamelen _hostnamelen _runin _mbsetup _pokec _hostname _tz _dumpvp _nchrdev _boottime _panicstr _vpcclose _noproc _physmem _biodone _sleep _vpcintr _boothowto _physio _tick _procNPROC _phz _runout _selwait _pidhash _DVMA _nblkdev _vpcwait _domainname _runrun _vpccmd _bufhash _minphys _vpcwrite _splx _wakeup _maxmem _hz _vpcioctl _vpcdinfo _vpc_softc _freeproc _proc _rvpcbuf _wantin _mbrelse _time _iopbmap _kernelmap _dumplo _allproc _zombproc _vpcprobe _bfreelist _odd_addr_words _bufalloc _bufchain _vpc_io _curpri rnelmap _total _lotsfree _dumplo _segu_swapin _allproc _zombproc _swapdebug _bplist _segudata _curpri (|     g z  f   m"Hy  N    XON    Hy  N    XOR`R   #    9|  /. HUHTN  O Hy  N    XO/.N    XOHT/, N    PO  L8 N^NuNVN    -@/. N    XO-@ @Rh J  g< .    g0 @J g( ( ".  g/. /. /.N  6O /.N    XO .N^NuNVH8*n (m m  gHx&Hy  Hy  N    O &m .g  ~ ,  gHx ./share/sys/sun2/OBJ/win.o                                                                             444       0      12        22476  4424712642  10421                                                                                                                                                                                                                                                                                                                                                                                t      8    NVH p . . rN    -@   mp `x .A    *p "
f:HxRN    XO*@"
fHy  N    XOp `@ rN    A    !  ." ҁЁЁއ"ҁށށށҁށAx  L N^NuNVH p . . rN    ,    m/Hy  N    POp `< A    *p "
fp `&"ҁ܁܁އ"ҁށށށҁށAx  L N^NuNV.0n 
/a XO*@"
fp`  .   
g    gp
`      f  r*A  xC 0< 
"QA  dC$0< "Q y  tC80< "QHx  HmLHy  0N    A$+H +|    $A8+H4AL+H< x;$0( <H+@ 4R  | | p *nN^NuNV   n "n  )  4g ) H f   g/. N    XON^NuNVH8 B`Hx Hy  N    POJ  fN    -@r#  0n 
/a XO*@(m -m "g
    fJg n    fBS  Jg  HUHT .r,Ё/ a 4O  n (<fB< n (@fB@ n (DfBD n (HfBHHUHT .  L/ a O  n ( f
B r-A n ( f
B r-A n (fB n (fB n (İ 4fB/N    PO"g  HUHTHlTa `O Hl HTN    POHUHTHl a BO Hl HTN    POHUHTHl a $O  ,fB lB  lB   gpSJg ,f^HTN    `RB,HH/ ,HH/ HTN    O  lBBHx Hx /, pN    O JgHy  N    XO   gHUHTN    PO , |fB | ,f
HTN    XOHUHTN    POJgHx /.N    POHm @N    XOHm TN    XOHm hN    XO`Hm N    XOS    J f&m `B BHSHzN    O &k "f   g"g
HTN    XOHxHUN    POJ  fVB .A    J g,HxR .A    /0 N    PO .A    B R   mB    B  /.N    XOHy  N    XOp L8 N^NuNVH00n 
/a XO*@~ BN    -@HUN    XOJ g\ m JgR m (hI m  (r WD-A`0   g/.N    XOp#`      Hx Hm N    POHUN  XOJg ,  g`
    mJg   m -h`B Jf   ,  g   n J gv/BHx  , Ѐ" ЁЮ/ N    O .  m  (S gR `J g4 n J g*Hm N    XOS    /. HH/ N    PO. Jg/.N    XO L0N^NuNVH<*n (n &n J    gHS/, p 0/ HUHy  N    O J fJ, g,  f~`~ JTmTc@T eTc4Hl /p 0/ HUN  bO J    gHy  2N    XOp ` JTm  T b  0  g8Jf4Hl /p 0/ HUN  bO J    gHy  :N    XOp ` r0  g Ptf HHl /p 0/ HUN  bO J    gHy  BN    XOp ` ,T e  T b  0  g8Jf4Hl /p 0/ HUN  bO J    gHy  NN    XOp ` 0  g tf Hl /p 0/ HUN  bO J    gHy  UN    XOp ` T e  Tb  0  g8Jf4Hl /p 0/ HUN  bO J    gHy  `N    XOp ` F0  	g $tf Hl /p 0/ HUN  bO J    gHy  fN    XOp `  T*e >T[b 6p 0   tf0p 0   3HHp 0   rrpĀf 0  g Jf J    gbJ g\p 0   tf2p 0    n 0HHp 0   rrpĀ`t //. Hy  pN    O J gFp 0   tf4p 0    n 0HHp 0   rrpĀf J    gHy  N    XOp 0  ~j-@Hx 	/ HnN    O -@ m A C#h  " m "m B B Hl /Hx HUN  O Hl /Hx [HUN  O `&Hl / nH  / HUN  O R nJfA"m C #h  "Hl /Hx zHUN  b m A p 0   p 0   ~fp 0   rrp`p p ` T f|+  gt m  h $h Hx HRN    POJf$Hx!HRN    POJfHx"HRN    POJg2Hl /HxHUN  bO J    gHy  N    XOp ` :T f:+  g2Hl /HxHUN  bO J    gHy  N    XOp `  p 0   tf  p 0   3HHp 0   rrpĀg  Jg0   g  tf  p 0   tfB m A p 0   HHp 0   rrpĀgT*eT[c2Hl /p 0/ HUN  bO J    gHy  N    XOp `J    gHy  N    XOpL<N^NuNVH0 *n (n "
g.   g&"gA `p  @HPHm |/. HUa bO Jg"gBHl /. HTa FJfp `pL0 N^NuNVH0 *n BHU n /( /( a vO Jgl n (h "f`^p 0   rrpF`  J g l     g(l `(l HUHTHTa O Jg .RroR    U*e<U[b6J f0 n A p 0   p 0   rg h< p L0 N^NuNV.*n J g r / /- N    POrÕB Hm N    XOp *nN^NuNVH0 0n 
/a XO*@(m N    -@HUN  XO . rgHrgj`0 m      dfr `    lJ    J f+x;$ /.N    XOp `6HUN    XO"g ,f l"l ) g/.N    XOpL0 N^NuNV.*n "
g8J g2/. 0n /p 0. / HUN  bO  - r,Ё/ N    XOp *nN^NuNVH *n | z .
g -m g | n-h g nHUN  XO 9        o&    mJ    g Hy  N    XO`  =n =n  n ( =@ n (2- 0H=@ (2- 2H=@ n C#h  " n (fHn/N    PO, fp`B* JfHHm Hx HnN    O , g.~`$Hm N    XOrfHy  N    XO`SJfJgJ    gHy  N    XOJf
pѹ    HU/.N    PO   g  m0( <HfHx /-N    PO    gHUa XOL N^NuNV   n     fp`  n  ( 4    gHx /N  >POp N^NuNV. n /( 4N    XO*@"
g/. HUN    POp *nN^NuNV.*n /-lHm/-N    Bp *nN^NuNV.0n 
/a VXO-@g @J gJ  ,gp`$ n h *h   n /
N    XO*nN^NuNVH8*n .
g  (m .g   ,f  &lGJ k + lJ m
 + mB B 'l .+ Rm~ J    g  J o   g  Hy  N    XO`p gp Ѐ" ЁЬ-@B` nRR   l*Hm N    XO-@lJ    g&Hy  GN    XO`'G Rm~ J np L8N^Nu      @(#)win.c 2.46 88/02/08 SMI       ~ ~  gcA@ | >        0                           P         d                                    Couldn't allocate window buffers
 Too large a window number (%D)!
 Error dbl_set in winclose
 win_send_one w=%X, id=%D, value=%D, mask=%X  other
  ascii
  neg ascii
  meta
  neg meta
  top
  neg top
 other_mask %X, bit %D
  escape sequence
  LOC_DRAG
  LOC_TRAJECTORY
  vuid
  IGNORED
 Win sys tossing input!
 Trouble unputc in winsendevent
 Win sys tossing partial input!
 win_sharedq_shift: shifting inputevents
 win_sharedq_shift: non integer multiple of size of struct inputevent
         1P   0  IP   B  #P   P  @   V  P   f  1P   n  IP     1P     @     P     IP  j  @  ~  @    @    @    0P    P    @  0  P  N  @  T  P  \  @  d   P  p  @    @    TP    P    P    P  >  P  ^  P  l  @  r  P    P    P    ]P    9P    MP    MP    MP    AP     
P    )P  >  P  L  (P  T  @  f  IP  |  IP    P    IP    
P    @    <P    @    >P     P    P  N  <P  j  P  t  @    2P    AP  $  
P  4  JP  F  <P  n  DP    @    P    @    DP    @    P     @  *  DP  2  @  8  P  f  @  p  DP  x  @  ~  P    @    DP    @    P    @  	  DP  	  @  	  P  	L  @  	V  DP  	^  @  	d  P  	  @  	  DP  	  @  	  P  
  +P  
t  @  
z  P  
  DP  
  @  
  P  
  P  <  @  R  @  v  @    @    P  .  P  @  P  X  @  b  DP  j  @  p  P    @    DP    @    P  
z  @  
  DP  
  @  
  P  
  DP  
  @  
  P    'P  0  $P  D  >P  p   P  |  @    ,P    <P    P    <P  >  @  R  QP    @    
P    P    P    @    P  .  /P  R  ;P  j  \P  x  @  ~  P    P    @    P    
P    P    4P  $  P  2  @  N  6P  b  4P    WP    @    SP  `  CP  z  @    P    AP    CP    @    P   D  @   T  P   d  @   p  @        X                       &          2        :     b   H          Y     >   d          m         q                                                                                 P                  `  	                  0        >        J         ]         q                                                                                                                              5       ?        Y         b        k       y                                                         &                                        
                                     %       3     d  H         N     0  e         x                                                                                      ,          
                 !        ,         ;         E     x  W     (  a         s     r       :       T                                   _win_send_one _pr_dbl_set _printf _winfromdev _sccsid _winsendevent _dtop_set_cursor _winsignal _mem_ops _qs _winclistchars _dtop_choose_dblbuf _file _nproc _ws_window_nudge _whichqs _dtop_removewin _ws_lock_event _wincursordefaultmpr_data _kmem_free _desktops _dtop_close _dtop_validate_shared_lock _winpsnotkill _wintossmsg _strsetwithdecimal _dtop_changedisplay _wlok_forceunlock _sleep _win_send_unlocked _winclistcharsmax _vuid_get_value _spl1 _nfile _winmmap _kmem_zalloc _selwakeup _winkill _procNPROC _win_infinite_redirect _bzero _wt_enumeratechildren _winsopen _win_send_one_other_debug _selwait _pidhash _winclosebusy _dtop_event_to_sharedq _bcopy ldivt _uiomove _wincloselock _psignal _winopen _pfind _win_sharedq_shift _nclist _ws_set_focus _win_send_it _b_to_q _splx _cfreecount _wakeup _workstations _wincursordefaultmpr _getc _wincursordefaultimage _win_sharedq_debug _win_send_one_debug _fileNFILE _freeproc _proc _winread _winbufs _ureadc _winfromopendev _kernelmap _rl_free _win_disable_shared_locking _allproc _zombproc _wlok_unlock _cfreelist _hat_getkpfnum _ws_favor _wincursordefault _win_send _cms_freecmapdata _win_freecmapdata _winclose _winselect _winwakeup _unputc _dtop_cmsfree _cfree                       #       -        6       @         G        R        Z        a     t  k        t                                         ./share/sys/sun2/OBJ/wincms.o                                                                          444       0      12         4374  4424712657  11107                                                                                                                                                                                                                                                                                                                                                                         p   P                 NV.*n /. /-N  PO-@fp` .S*nN^NuNVH0 *n (n JglJlgfHllHTHUN   O JfP   
g
HTN    `<J |g m | ( 4 4n ,pR/ /,l/-N    O Jpf
HUN  XOHx HllN    POHx HlN    POBp L0 N^NuNVH |  A    J gh~ *G"
ҁҁ"A         g2 -  f(Hx Hmt . P/ N    O Jf
 g 
`RrmR~mp L N^NuNV.*n  . " ҁЁ/ N    XO-@f Hy  N    XO/. HU/.N  `,* Ю +@  - Ю +@ /. BHU/. N   .*nN^NuNVH<*n (n G `E \.. ޮ S". J  g  J oz T"T1 0x fl l "l 1 0x fZ l "l 1 0x fH - d   g
-K&J$n T  l    l    Tx  l  x  l  x p L<N^NuNVH0 *n (n BB B "
g . " ҁЁ/ HUN    POp L0 N^NuNVH0*n PMz~p fP(M`8,, Sܔ  ". N     , Sm ". N    Jf*PLJf~gR/`p `R|oHx /. /. N    L0N^NuNV.*n  - d   gA \`A `"H m m  m *nN^NuNV"n  )S-@ iP iP iP iP
 iP iPN^NuNV"n  )S-@ i i i i
 i iN^Nu      @(#)wincms.c 2.16 88/02/08 SMI         Couldn't allocate colormap buffer
           @   X  @   p  #P     
P     @     P     P     P  "  P  N  P    P    @    P    @    @  $  @    	P  ,  P  D  P  z  P                               #          ,         ;     p   C         G         N         W          b          j     `   t          z                                                                                                          
               $       5        >        I        R        \        g       y                      2          _dtop_set_bkgnd _rmget _printf _strncmp _dtop_cmsmatch _sccsid _qs _nproc _whichqs _kmem_free _rmfree _desktops lmodt _dtop_stdizecmap _kmem_zalloc _procNPROC _bzero _pidhash _cms_alloc _dtop_cmsalloc _nclist _cfreecount _workstations _winenforcecmstd _freeproc _proc _dtop_restore_grnds _dtop_save_grnds _winbufs _kernelmap _allproc _zombproc _cfreelist _cms_freecmapdata _dtop_alloccmapdata _win_freecmapdata _dtop_cmsfree _cfree p L0 N^NuNVH |  A    J gh~ *G"
ҁҁ"A         g2 -  f(Hx Hmt . P/ N    O Jf
 g 
`RrmR~mp L N^NuNV.*n  . " ҁЁ/ N    XO-@f Hy  N    XO/. HU/.N  `,* Ю +@  - Ю +@ /../share/sys/sun2/OBJ/windt.o                                                                           444       0      12        37214  4424712711  10742                                                                                                                                                                                                                                                                                                                                                                         '        d          NV.*n "
g0 m(  Pf$- f- f mJf
HUN  XOp *nN^NuNV.*n  m(  Pf- f- g mJf
HUN  XOp *nN^NuNVlH<*n A `-HA \-H~-G g Hm t/. N    PO. g `  m t h 
-h HnHy@XF/- t nNO . gJ|gHy  'N    XO ` <HnHy@F /- t nNO . gHy  'N    XO ` +n   l/.Hy  'N    POp` HnHyF/- t nNO . gHy  (N    XO ` +n pJ pfp`  pfp` Hx /- pN    PO~f    B| | B/-HmHUN    O +@Jfp` > -l^T/ N    XO+@ -l^T/ Hy  (&Hx  -l^/ /-N    O  - d   g-n-n-nHmHx /- pN    O B|  - d  g~f - d  g~gAB0h AJ0h g  R~g  //- pN    PO .T/  .R/ /.Hx B/- p m p P h NO  m p ( ~g*~g,~g2~ g, m p/( Hy  (/N    PO`"~-G`-|   ~`
-|   ~ -G .T/  .R/ /.Hx /./- p m p P h NO R~m    o~@ - d  gJ-f" - d  gJ-fJ-gHx `
J-gHx /- pN    POI)n J0- lH)@ B~)G F0, D L~Ї~)@ R , F", RN    )@ /, N    XO)@ V )n r~)G j0- nH)@ n0, l t~Ї~)@ z , n", zN    )@ /, N    XO)@ ~ -|    <     / N    XO&@  rr$@+Jc 
/ HSN    POAcAHP/
N    PO m~  m~!G  -  +@ .  rN    +@ m!mp L<lN^NuNVH8*n B&m (|        g8g ,  f-L~ A  fA BRrmI  `e.gPBB/.HUN  DO A -H(k `f
 n  `A -H(l .fJ f
HSN    XO   g@BHx Hx HUN  $O BHx Hx /- pN    O JgHy  (AN    XOJ tg/- tN    XOHmN    XO/-Hm/-N    O Jg -l^T/ /-N    POHm N    XOHmTN    XOHm N    XOJ6g/-/-6N    POJ^g/-/-^N    POHmN    XOHm
N    XOHx /-N    POHxHUN    POp L8N^NuNVH8 *n (n &m fbHUa XOB/-N    PO'L"gD)n )n  l BB/,N    O Hx /,N    POBHUHTN  f'L"g)n )n L8 N^NuNVH0 *n "
gv(m pHnHx HTN    O J.f(J gR n (h pHnHx HTN    O J.g0 - d  fJ g n  ( d  fJ gHTHUN  tPOL0 N^NuNV.*n HUN    XO-@Hy Hx HUN    O  n J(fJ(g"BBBHx /- /- BBHU U PNO $ n J(g BBBB/- /- BBHU U PNO $Hy /.HUN    *nN^NuNV.*n J fp`8HUN    XO-@HUN    XO-@mJgHm  /- /. N  p *nN^NuNVH0 *n (mJgB/. HmTN    O Hz/. Hl Hm HUN  
O Hz^/. HlHm HUN  
O , gHUa nXOHUa XOJg/-N    XOJg&Jf J    gHy  (jN    XOHTN    XOHUN    XOp L0 N^NuNVH0 *n (mA  . fHzBHl`
Hz BHl /. HUN  
O HUN    XOp L0 N^NuNV n Jf, n J g  n r  n !A /. N    XO` f n J dgD n "n  ) d g2-h r!A  n B L/. N    XO n r  n !n  n J gJ g B/. /N    `   n J g  /( N    XO-@ n -h /. N    XO/. n /( /.  n NO  n !n Jf   n     f  n /(  n /( XHy  (N    O /. N    XO`X n J f8 n -h /. N    XOB n /( /.  n NO  n !n J gB/. /. N    p N^NuNVH  n *P"P n . n ,0- hHlJJg<*m0- hH2- lHЁ2) hH. 0- nH"N    2) nHN    , `\0- hH`R0- lHoJJg2*m0- hH2) lHހ0- nH"N    2) nHN    , `0- hH2- lHЁS. 0- jHlJJg<*m0- jH2- nHЁ2) jH, 0- lH"N    2) lHN    . `\0- jH`R0- nHoJJg2*m0- jH2) nH܀0- lH"N    2) lHN    . `0- jH2- nHЁS,  n   n   n  p L N^NuNVH8 *n -m (mBJg  J |g   n (f  J8g+h8`/-/-/- |N    O +@&m m    fgB"g   
g
Hk/+l`   f"g   
gHm/-HUN  "O rÕg
HUN    XOp L8 N^NuNVH0 0n 
/N    XO-@ @*h (m mJfhRRJ f:Jf4JfSS/8;$HUN  !PO)mX`6 x;$0( <HgHx/-N    POJgSSp` m\Rp L0 N^NuNV. n /( N    XO*@"
gHx HUN    POHy  (N    XO*nN^NuNV n -h HHx /.N  PO n hBN^NuNV.*n J gRHm/- N    POHx /- N    POHUa XOHmN    XOJ gB/- Hy    N    B p *nN^NuNVH0 *n (n  l -h |Hn/. N    PO`/, HTHnN    O (l f+n HmHmHnN    O HnN    XO mJfHx HUa POp L0 N^NuNVH8 0n 
/N    XO*@(m &lBnJf RRJ f  Jf  J xg l x ( 4 4f  Jf  SS l(  Pg * l ( D2- 0H=@ l ( H2- 2H=@ l ( =@ l (=@Hm @HnN    PO-@ ,fT- fL- fDJg>Bn`   x;$0( <HXg `Hx/,N    POJg SSp` 0.H2.HЁ n 2HlX0.H2.HЁ2( Hl@0H2( HЁ2.Hl*0( H2( HЁ2.Hl , xgJgp`B=@ n C#h  "0- 0n0- 2n, g$JnfHlHnN    POJgp`B=@, g$JnfHl
HnN    POJgp`B=@JngHTa XO x;$0( <H'@R/8;$/+HTN  "O Jg   ,f2-HH/ Hx HTN  'O -HH/ Hx HTN  '`l , xgdB,HH/ Hx Hx Hx /, pN    O Jg:,HH/ Hy  )Hy  (N    `J g l R`Hy  )*N    XO - <L8 N^NuNV n -h H n (  -@Hy  )WN    XO n"n  )  f
 ) d g8 n /( /( d/( Hy  )N    O  n/( /( Hy  )N    N^NuNVH *n  m(  Pf- f- gX m gHUa XOJg@ m ( D m2( H$-f m ( H m2( H$-gHUa XOL N^NuNV. n *h HHUa dXO mBHUa  XO*nN^NuNV n "h H iB N^NuNVH<*n .< ,
g J pg J    f  mJ f JgfHx /- pN    PO-@Hx /- pN    PO-@B-HH/ Hx -HH/ Hx /- pN    O JgHy  )N    XO -|І-@I-m p/.N    XO,  m(  Pf- f- f
- g / n/( 4/.N    O  m(  Pgz n!|      n    !@  n   
!@  m  PBB .   / Hx  n/( /( /( 0/( ,/. n P PNO $Jgz` 
D- gh /Hx /.N    O BBHl Hx /, /,  n/( 0/( ,/. n P PNO $Jgz` 	///.N    O - g@ /, BHl >Hx Hl BB/.N   O  Jgz` 	Hl N    XO- g 	: B/Hl fHx Hl *BB/.N   O  Jgz` 	PHl *N    XO` -mg -m g  n (f  m &nG  .  8-@-k  nJ g"J gJ g @J g +    fp`B=@f +   f +   g f n0H"-!A , n0+ H"-!A 0 n"m!i 4/ n/( 4/.N    O Jng  +    f   n!|      n    !@  n   
!@  n$h  n"nC 0< "Q n"n!i   n!J  n0< "J"Q .  
%@  n (  n"( zЅz$ n/( 0/( ,/.Hx /( /( BB    /  h  PNO $Jgz` r- g   n)h   n)h   l 0, HzЅz /Hx /.N    O  n/( 0/( ,/.Hx  n/( /( BBHl  l  PNO $Jgz` / n/( 4/.N    O  +   f +   g  n)h  r)l r J0+ H)@ F0, D LzЅz)@ R0+ H)@ j0, l tzЅz)@ z , jlR"-( , FlR"-)A  +   g &Bn +   g , ` n0( 2H", 0=@=l D=l HA    C 0< "Q +   gHl HnN    PO`BHl  .z@Ѕ/ HnN    O  n9h 0  n9h 2 Hl N    XO=l k g   +   g` +   g , B`
 n0( $H-@ +   g0+ H` n0( 0H2+ HЁ-@=n0+ H".̒=A`\ +   gp `
 n0( 0H-@=n0+ H"=AHl Hl HnN    O 0+ HД=@=l DHl Hl HnN    O Jk gRk f n ( =@ n ( ,=@`=k 0.lR@@H"=AHl Hl HnN    O Hl N    XOJf.BB/.Hx Hl /, BHl >N   O  Jgz`  +   g & +   g ` n0( 0H"0=@Bn=l l=l pA    C *0< "Q +   gHl *HnN    PO`BHl * .z@Ѕ/ HnN    O  n9h 0 * n9h 2 ,Hl *N    XO=l k (g   +   g` +   g , n`
 n0( &H-@ +   g0+ (H` n0( 2H2+ (HЁ-@=n0+ (H".̒=A`` +   gp `
 n0( 2H-@=n0+ (H", =AHl *Hl *HnN    O 0+ (HЬ =@=l pHl *Hl *HnN    O Jk *gTk *f n ( =@ n ( 0=@`=k *0.lR@@H", =AHl *Hl *HnN    O Hl *N    XOJf,BB/.Hx Hl *B/Hl fN   O  Jgz`  n (lS-@Hn/. n P h NPO +   gHHl N    XOJf8 BBB + 뀀 / Hl BB/.N   O  Jgz	` r +   gHHl *N    XOJf8 BBB + $뀀  / Hl *BB/.N   O  Jgz
`  Jng   +    fF m  PBB/./+  n/( /( /( 0/( ,/. n P PNO $Jgz`  - gvJ gp`p-@ /Hx /.N    O BB/././, /,  n/( 0/( ,/. n P PNO $Jgz`Z///.N    O Jg2B/.Hx /.Hx /- pN    O JgHy  )N    XO///.N    `$///.N    O /Hy  *N    POp L<N^NuNVH0  n *h ``I 0, H $/ 0H  / /. /. 0l /0l /0, H / 0H / /.  n  P PNO $Jgp`*U"
fp L0 N^NuNV-n  n"hJ fJfJgp`BN^NuNVH0 *n IT/. Hl Hx -  / HTN    )M H)|  z L)|  : P)|  *- X)m `)|  ! \L0 N^NuNVH0 *n I /.  -  / Hx -  / HTN    )M H)|   L)|   P)|  *2 X)m `)n  d)|  ! \L0 N^NuNVH0 *n I /.  -rЁ/ Hx -P/ HTN    )M H)|   L)|   P)|  *: X)m `)n  d)|  ! \L0 N^NuNV. n *h p   o  HUN    XO-@    fb n J(gHy Hx HUN    O `@ n J(gHy Hx HUN    O ` n  ( d  fVHy  *@N    XO`F n /( /( //. BHU U h NO JgHy  *bN    XOHy /.HUN    *nN^NuNVH0 *n (n -mfLB-HH/ -HH/ HUN  $O  -g HUN  $DXO .gHTHUN  %POL0 N^NuNVH0 *n (mB   g("fB/- |Hz &N    `   g+LL0 N^NuNV"n  i    f   g i      i !Ip N^NuNVJ g  /. N  %~XO-@ n  h(  Pf n ( f( gHy  *xN    XOJ g n R n n  n n B n (HH/ Hx /( pN    O JgHy  *N    XOJg
/. a ڊXON^NuNV   n  h(  Pf n ( f( g n  hJ f/. a JXOp`p N^NuNVH0 *n (n HUaXO-@B-HH/ Hx -HH/ Hx /- pN    O JgHy  *N    XO0, 2HD/ 0, 0HD/ /- pHx Hl @0, 2HD/ 0, 0HD/ /- pa O  JgHy  *N    XOJgHUa لXOL0 N^NuNVH  n  h.(,R n  h*(  n  h((o
f| fp`J n  Ѐ" Ё"n Щ"@""""2J    g///Hy  *N     n  h!Fp L N^NuNV.*n     fr-A`4    f-HH-@`    f-HH-@`p`0B/./. /- pN    O JgHy  +N    XOp`p *nN^Nu  @(#)windt.c 2.51 89/03/24 SMI   ioctl err FBIOGATTR
 ioctl err FBIOGTYPE
 illegal colormap size (%D)
 ioctl err FBIOGPIXRECT
 colormap Unknown depth %D
 Error pr_dbl_set display  in dtop_close
 Waking up waiting process because display lock is free
 Window %s lock broken after process %D went away
 The offending process was sent SIGXCPU
 Error dbl_set lock display not  a cur dbl %d
 Warning: display lock count pointer is NULL
 You may see display garbage because of this action
 Internal lock: pid = %d, id = %d, time = %d
 Shared lock: pid = %d, id = %d
 Error dbl_set draw cursor
 Error in drawcursor: pr_dbl_set
 Kernel cursor Roperr %D
 data display mutex Tried to set 1 bit deep colormap
 pr_putcolormap error
 Warning: Cursor up dtop_changedisplay [windt.c]
 Error in dtop_changedisplay 
 Error dbl_set flip disp #2
 roperr in flip display
 size=%d head=%d oldtail=%d
 error in ioctl SET for dbl_set
     8  @   |  @     +P    @    P  6  @  <  P  ^  @  d  P    @    P    P    mP  (  5P  B  @  ^  DP    qP    cP  D  @  J  P    cP  8   P  F  5P     P    5P    5P    P  
  P  >  OP  r  P    P    @    P  ,  @  D  P  R  @  X  P  j   P  v  eP    lP    P    "P    "P    "P    P    P    eP    eP  $  P  2  9P  n  _P    6P    _P    @    qP  ,  qP  d  @    bP    jP  	  jP  	0  P  	>  AP  	^  @  	  ,P  	  @  	  @  	  HP  
  P  
  @  
  P  
  UP  
(  .P  
t  @  
  .P  
  iP     iP  4  ,P  N  GP  h  7P    @    P    (P    7P  (  ,P     P    ?P     P    ?P  
.   P  
:  ?P  
x   P  
  ?P    LP  l  @    >P    P    @    )P  J  GP  ^  BP  f  @  l  P    @    2P    JP    eP    NP     :P  6  oP  J  EP  p  P  ~  eP    P  h  pP    )P  ~  pP    pP    @    @  .  @  Z  P  r  @  x  @  ~  P    @    P    @    P  
  @    P  &  @  ,  P  &  TP  J  P  ^  P    P    @    P    bP     jP    P    jP    jP  (  @  @  eP  p  @    eP  h  jP    P    jP    jP    CP    oP    P  2  !P    FP    FP  t  FP    P    @    CP     oP  <  P  ^  !P  "  FP  L  FP    FP    P    @    P  N  @  p  P    @   4  jP     jP     P     @     P     jP     jP     @     P  !  P  !  @  !  @  !  @  "  @  "F  P  "P  @  "X  @  "`  @  "t  @  "  P  "  @  "  @  "  @  "  @  #  bP  #:  jP  #\  jP  #v  @  #|  P  #  @  #  P  #  jP  $  @  $  @  $4  @  $p  :P  $  @  %  @  %  P  %P  P  %^  @  %d  P  &  P  &  @  &  P  &f  @  &l  P  &  XP  &  @  '  P  '~  P  '  @  '  P             
                              (          4     '   <     
   M          V          k         o         |     $D                          !                 	                2        	l                `           '        4         >        Q         e     \  q     
:                         %                                  #                       (     $  <         N         U     D  k         w               H                                 "                                  %         A         M        X         _         u        ~     &       4                                                                                 '         .         A        I         W     t  h         x     '                         !       
               :                               %~          0        ;        E        K       ]        f     "  |              z                                                                 $           (         7        B         T         h     "  z                                   lmult _pr_dbl_set _printf _ws_close _winfromdev _sccsid _dtop_set_cursor _mem_ops _rl_rectintersection _qs _dtop_openfb _dtop_choose_dblbuf _file _nproc _dtop_check_all_locks _whichqs _dtop_removewin _dtop_update_enable _dtop_track_locator _dtop_interrupt _kmem_free _desktops _wlok_setlock _dtop_rl_rop _rl_union _win_waiting_debug _wt_isindisplaytree _dtop_close _dtop_validate_shared_lock _rl_empty _pr_dbl_get _dtop_copy_dblbuffer _closef _rl_normalize _wlok_done _dtop_flip_display _dtop_unlockdisplay _dtop_timedout_display _dtop_lockdisplay _dtop_changedisplay _wlok_forceunlock _sleep _dtop_change_loc_dtop _kern_dupfd _wlok_lockcheck _dtop_cursordown _win_shared_update _nfile _dtop_cursorup _dtop_init_display_lock _wt_setclipping _dtop_computeclipping _dtop_invalidateclipping _kmem_zalloc _win_shared_update_mouse_xy _wlok_clear _procNPROC _bzero _wt_enumeratechildren _pidhash _dtop_event_to_sharedq _dtop_update_cursor _win_shared_update_cursor ldivt _dtop_drawcursor _wt_remove _psignal _rl_null _rminit _wt_passrltoancestor _rl_rectdifference _pfind _win_sharedq_shift _nclist _ws_set_focus _dtop_set_enable _wt_intersected _dtop_dblset _wt_notifychanged uldivt _dtop_init_data_lock _dtop_check_lock _cfreecount _dtop_timedout_data _wincursordisable _wakeup _workstations _dtop_cursordraw _win_sharedq_debug _fileNFILE _freeproc _proc _dtop_unlockmutex _winbufs _dtop_init_mutex_lock _win_shared_update_cursor_active _dtop_unlockdata _dtop_lockdata _pr_get_plane_group _pr_set_plane_group _kernelmap _rl_free _allproc _zombproc _dtop_isdblwin _wlok_unlock _pr_set_planes _cfreelist _cms_freecmapdata _dtop_alloccmapdata _dtop_putcolormap _rl_initwithrect _rl_rectintersects _pr_available_plane_groups _cfree "-( , FlR"-)A  +   g &Bn +   g , ` n0( 2H", 0=@=l D=l HA    C 0< "Q +   gHl HnN    PO`BHl  .z@Ѕ/ HnN    O  n9h 0  n9h 2 Hl N    XO=l k g   +   g` +   g , B`
 n0( $H-@ +   g0+ H` n0( 0H2+ HЁ-@=n0+ H".̒=A`\ +   gp `
 n0( 0H-@=n0+ H"./share/sys/sun2/OBJ/winioctl.o                                                                        444       0      12        35523  4424713010  11437                                                                                                                                                                                                                                                                                                                                                                         &X               x    NVH<*n 0n 
/N    XO(@&l | J    gBJ    gg g0  g g&/- /- /HU/. 0n 
/Hy  &N    O N    -@.f~ . A <r
\f*A0;N               ` |` @@g&@g
@g
@g@g$@g  gdpg(@g'gggg%g` $k Jg kRHkTN    XOJgJg  kS`  kS . A r\f HA0;N  & & & & & & & & & & & & & & & & & & &    g ~ kRR kJfHk HSN    PO kSS`   k ( x;$2( <HgHx/+N    POJgJg kSS`   gJ  gI  gH  gG  g*  g  g  g  g  g  g(g"g ggLgKgg?g`J    g  Hx HRN    POHjLN    XOJgHxHRN    PO` HxHRN    PO`^ . A ,r
\fLA0;N   gJ  gI  gH  gG  g  g  g(g"gLgKg?    g
    f |
` -MJ    f  
X/ 0n 
/N    PO-@m  n ` xJ    f nHk N    XO` ^HTN    XO.g\ l  (fP k"k ) m k"k )` k"k )Ш k搨 * Ѐ" Ё* , ѕ` * ` Jg    )x;$ x;$0( <H)@` BB` Jg~@` ~ϔ` -M    d 	 /
 - /4N    PO` |-M    d Hn/N    POJm    f .f|` B n ( ) nJ f &J g  l )h  J g  l     g L l )h  HT/, N  fPO`    f  HTN    XO, f HTN    XOJg Hl  /, HSN    O ` HTHSN    PO, g ` -M~*~ /N    XO-@g n @    f/./.N    PO` PR`   gHx 	HTN    PO|
` 0HUHTN  #TPO, g ` -M-jf|` g4 n0( H2, 2HЁ/ 0H2, 0HЁ/ HS/.N    O `d n0H2, 0HЁ-@0H2, 0HЁ'@ .ѫ n0( H2, 2HЁ-@0( H2, 2HЁ'@ .ѫ/+/+/+N    O  *  g HHnHj N    PO~fA    C#h  "=| ~-GB.B.HnHj N    POJgHy  &N    XOHRN    XOHx HRN    PO` HUN   XO, f -MHnHnHnHn/
N  !.O , f JgB0`  g f, n9P  n9h   n)h   n)h  B` nC 0< 
"QAC$0< "QAC80< "QHx  HlLHnN    O A$)H )|    $A8)H4AL)H< +f HSN    XOHSN    XOHSN    XO` -MHnHnHnHn/
N  !.O , f Jf X n-h -n-n-ng f0  n1l   n!l  `A "n0< 
"Q n!n A$C0< "Q-n-nHx /.HnN    O , f A8C0< "Q-nHx /.HnN    O , f Hx  /.HlLN    O , g ` -M0- H2, 2HЁ/ 0H2, 0HЁ/ HTN    O -@ .X/ /.N    PO` ZA  +h  *` J-MB.fC  #m  "` . |f-L`-l  kJf0n 
/N    XOJf ^~-GHTN    XOJgHl  /.HSN    O  n0, $h f
0, &h g~ n0,  Pf
0, "h gBHTHy    N    O  nC  #h  "BHTHzbN    O HTN    XOJgHl  /.HSN    O Jg DHkTN    XO` 4A (!m   ` $A (+h  *` * 8` )U 8` /, 4N    XO-@fp ` , 4*` -U/.N    XO-@g 8)n 4Hl hHl @N    POHx HTN    PO` -MA "M0< "Q .~hЇ/ /, N    PO` v-MBHn/- hN    POJm ~  nJ0x6g~-G`RzmJf
 nJh 4g< l Jg" l  (f l  h"l "i!i Hl N    XOJl nC 0< "Q)n ` 0n 
/N    XOJg `  kJg BHSN    PO` -M kJg 
Z/
HTHy    N    O ` x0n 
/N    XOJg d` HjLN    XO` P   g   f
HTN  %>XO-M+l <  n1l 0  n1l 2 
 n1l $  n1l & /.g  fA h`A @HPN   PO, ` -U . <f Hl hN    XO` -MJ m    nJm   o|`  n-h B  nJgJ fJ  fJ $fHTHSN    PO` Jlo>Hx Hlt .P/ N    O Jf  n Юln    
g  ` /.HTHSN    O -@g@ @AlCl0< "Q nAC""" n)h n   
g:`  HTHSN    PO nCl0< "Q/,lHSN    PO)@p~gJ/+Hy    B .~Ї/ /./.HkHllN  !O  , f J/,l/,pHk`pBp/,lHlHSN    O )@Jf|`     /,lHy    B .~Ї/ /./.HlHllN  !O  , f /,l/,pHlHSN    O  +g(Jg2Hx Hlt +  t/ N    O Jf~HSN    XO`.   
f&Jg k   
fHk/+HSN    O /.HTN  PO` @-MJ gJ  gJ $g ln 	-m B    
g n/Hy    /.Hl` n/Hy    /.HkHllB .~Ї/ /.N  !O  , g p` -U   lAJf|`  ,gB)n +f~HSN    XO +fHSN    XOHSN    XOHSN    XO   @ ` F*` >Hx HUHkN    O ` &-M-|    .f n    f&H nJ( Hg"Hx ~H/ .~<Ї/ N    O Jg    `e.gJ |g|` 
   fJ fJ fHTN    XOJg|` 
'L |)K     '|    ~ 'G*A2'H.'|    F'GRAZ'HV'|    n~'Gz~'Gr'GvA'H~A'H0+t|~Ї~'@ nC 0< "Q n/( dHSN    PO, f HTHSN  fPOA hC  #h  "0+ llR@@H2+ hHЁ'@'@0+ nlR@@H2+ jHЁ'@'@/+/+/+N    O ~~Hk N    XOHk N    XOHkTN    XOB .~Ї/ N    PO$@JffB .~(Ї/ N    PO$@JfLN    $@Jg \%KHx /+N    PO%K + d  f
 + d  gHx BHSN    O 'j  %K 'J )J Hl  HTHSN    O  nJ( g0B~/N    POJf n/( h/HRN    O Jg: nJ( (g>B~(/N    POJf* n/( l/HRN    O Jf8;HH, ` 4Hx HRN    POHSN    XO` A 0< "M"Q` ~  * fJ f     x;$0( <H#    B/+ |Hy    N    O B    B/9    HSHzN    O `4 +ⰹ  &l0J |g* k |J g  k |J gHx HSN    PO    f    g 
^B .rN    -@A    -p gb ." ҁЁЁ n"ҁҁ-H    g* ( f" ( 4 x;$2( <HgHx 	/.N    POR   l 	` l-M~ `:Hn  n/0 N    POJm hA "n  Rzl 	  n fA B`-M~ `, Ю/ A  P/( |N    PORzl 	.A Jf  nz! `-MJ- g 	B 
~Ї/ N    POJf  n/( h/HRN    O Jf 8;HH, ` -MJ- (g B 
~(Ї/ N    POJf  n/( l/HRN    O Jf ~8;HH, ` p-Mf2J- g \Hn 
X/ N    POJg D/.HRN    PO` 2 nJ( g &BXH/N    POJf  n//HRN    O Jf 8;HH, ` -Mf$J- gHn 
X/ N    POJf |` -j B`6 n .f~  n"nx"xR|l ` n-h 6RJf|` l-MA |"M0< "Q` T-MA "M0< "Q` <-M MC |0< "Q    ` -M MC 0< "Q` Hn/N    POJm )n ` HU/, N    PO` *    `    b #    ` -M-|  &vz  n"n"X nPg XR~l `-M-|  &vz  n"n"X nPgXR~m~f F n0 n1|  ` 0-Mp 0  g&  g6p 0/ /* N    PO n!@ `  n0, 0H"+!A `  n0, 2H"+ƒ!A ` -M:$ n!j&  n!j* ` -M5U$ n%h & n%h *` -M:. n!j0  n!j4 ` j-M5U. n%h 0 n%h 4` JHn/N    POJl|` 2 *g &j.f
j$g %n    Jf  ~%G` Hn/* N    PO*` -MA +h  *` -MC #m  "`    g  * (f Hj ,N    XO` `    g ~   f t    Jf6'L k~!G| | Hx Hx Hx HSN    O ` 2R` *   g     g HTHSN    PO| | SJf: kBBHx Hx /+ pN    O JgHy  'N    XOB` HSN    XO`    g HTHSN    PO` -MJg    f
 - @` n   f ( @   g Pg
 + xf @ n    f~-G`> n    f+HH-@`" n    f+HH-@`| ` B/. n//+ pN    O Jg Hy  'N    XO` -M   gX   f
~+G `  n   f,HH!@ `  n   f,HH!@ ` d n~!G ` V nB ` JJg|0` > kJo B'L` *Hy  '5HTN    PO` J    fp`B#    ` |`  . A rN\fA0;N $  `<P2rl\f88" .& < d|&dJT6~RRzp$8@lg@dg)@@g&@4g5@4g4@g-@gB@
gI@
gG@g<@g
@g
@g@g@@g9@g$@g@g@f  gd  gP  gJ  gH  gG  g:  g,  g*  g  g  g  g  g  g  g  g  g,g1(g#(g"g3g gggggLgg	gg>pg/pg.pg(lg@g'4g74g6,g0g2g+g
gH
gFgKg;g+gggg?g=g8g%g!gggf~f}/.N    XOJ    g@J    g8J    gg g&  g g//HU/. 0n 
/Hy  '>N     L<N^Nu ;|`NV.*n Al"n 0< "Q   g m    g   f n B *nN^NuNV   n J pg$ n    f n /( pN    XO n !@N^NuNVH0 *n (m  - 8   gT"gPBnBn=l $=l &0.m  f0.m $f0.m "f
0.m &gAC  #h  "rp L0 N^NuNV.r-A n *h `rӮ*U"
f n  .o
 p`   n C0< "Q n  ( rЁ-@-@ n *h `NA"M   Jg .rЁ-@Hx /.HnN    O Jf6 n  f-nrӮ*U"
fHx  n /( HnN    Jgp`p *nN^NuNV   n Jh mh  op` n Jh mh  op`p N^NuNVH0 *n (n  n r J g  Hx HT/- N    O -@fz , rЁjЁ", N    ", N    -@    op`RJ gJHx /. /, N    O -@f" n J g$Hx  /. /( N    -@g .` n Bp L0 N^NuNVH<*n &n (n $n .- ޮ ,, ܮ       f Д` ЕS-@ ДS-@nBJm>n:Jm6 $l0Jm* . $l JgJ gJ gJgJ gJ fp`x ДSo
 .R` * / Ї/  І/  n  NO Jf</ + Ї/  * І/  n  NO Jf/ + Ї/  * І/  n  NJgp`p L<N^NuNV-n /.N    XO n    gR/9    /.HzN    p N^NuNVH<*n (n .
fp`  HnHnHUN  $O ..ޮ"ҁށcp`f($l &m ` JE HPHSN  $PO&k .fB`& + f   f JE HPHSN  $POR/.N    XO&@Jfp L<N^NuNVH0 *n (n HnHUN    POnHn/- N    POnHn/- N    POnHn/- N    POn   gr-A`B - 8  gA  C#h  "A (C` . A  C#h  "A (C#h  "Hx HTHnN    L0 N^NuNVH< *n (n &n BBB` * f   gR`RR/.N    XO$@JfL< N^NuNV. n *h rh/N    XOJfl - f
HUN    XOJ-g>Hx Hx /. N  %O J-gBHx `J-gBHx /. N  %O  - f
HUN    XO*nN^NuNV. n  h *h pHUN    XO-@/. HUN    POBBB .    /  . rhЁ/  n 0( 2HD/ 0( 0HD/ HUN    O  /.HUN    PO*nN^Nu  @(#)winioctl.c 2.51 88/06/20                                                                        winioctl dev: %X, cmd: %X, data: %X [%X,%X,%X...]
 putback error
 Error in WINDRLSE
 error in ioctl SET for dbl_set
 WINPRINT winioctl exit dev: %X, cmd: %X, data: %X error: %D
            P   $  `P   ,  MP   ^  @   d  P   n  ;P    7P    $P    1P  X  3P  d  7P  v  3P    3P    hP  "  ,P  >  hP  L  uP  Z  TP  .  .P  P  'P    @    @P    "P    ?P    P  8  P  Z  .P  x  
P    @    0P  X  BP  v   P    jP    P    @    P    P    VP    @    @    JP    P    :P    LP    <P    @    aP    aP    aP  	6  WP  	P  .P  	  lP  	  "P  	  ?P  
  P  
  HP  
>  HP  
J  "P  
`  ?P  
v  uP  
  SP  
  SP  
  AP    
P  4  .P  P  'P    _P    lP  
  >P  *  P  0  HP  D  kP  Z  uP  x  @    @    rP  
R  P  
t  P  
  P  
  P    NP  :  ~P  \  @    yP    ~P    @    =P    P  ,  	P  Z  zP  j  @    aP    aP    @  8  	P  J  :P  T  LP  ^  <P    JP    P    P    P    GP  4  P  J  P  ^  P    P    @  &  BP  <  (P  H  (P  T  (P  h  P    P    xP    gP    P    ?P    P  ,  P  L  P  f  P    VP    	P    )P    DP    HP    )P    ^P    }P    @  >  1P  b  KP  n  fP    
P  
  'P  v  .P    P    P    P  (  P  d  P  x  {P    P    P    P    'P    .P    P    P    @  :  @    9P  r  'P    .P    /P  v  +P    &P    P    @    P    P    *P    P    @    P    @    RP    `P    `P    ZP    `P    XP    MP    @    P    oP     aP     aP  !Z  ~P  !~  P  !  P  !  ~P  !  ~P  "$  ~P  #$  \P  #<  ^P  #J  }P  #z  @  #  @  #  @  #  iP  $$  .P  $:  .P  $P  .P  $f  .P  $  aP  %(  iP  %T  %P  %l  :P  %  @  %  @  %  :P  %  oP  %  mP  &8   P  &H  mP             
                              4          C          L          T          `     &X   h          y                                                                                                                                   $         6         J         [     %>  p               @               `                                 !.                                      $         /         =         P         d         v                                                 #                                 $           *     !  =         M         ^         d         s                                                                                                         )        2         9         ?         Y        n         }             &        @                                                                                &        2         :       H        L         R        _         h     $  x     #T                                                                                            %  5         I     f  _        j         s        |                              &v                                                               
                  $        +_vq_peek lmult _pr_dbl_set _ws_indev_match_name _dtop_cmsmatch _strncmp _printf _winfromdev _sccsid _dtop_set_cursor _winsignal _mem_ops _lbolt _qs _dtop_openfb _dtop_choose_dblbuf _wt_partialrepair _nproc _whichqs _avenrun _domainnamelen _hostnamelen _dtop_removewin _dtop_update_enable _ws_track_locator _wt_positionchanged _ws_button_order _win_prepare_surface _ws_open_indev _hostname _tz _desktops _dtop_rl_rop _boottime _wt_isindisplaytree _winio_getusercursor _dtop_validate_shared_lock _rl_empty _dtop_copy_dblbuffer _wt_numbertowindow _wlok_init _winpsnotkill _dtop_flip_display _dtop_changedisplay _dtop_lockdisplay _win_errno _wt_windowtonumber _wlok_forceunlock _dtop_change_loc_dtop _sleep _win_check_destroy _ws_set_dtop_waiting _wincopyoutrl _winioctl _wt_copy_layer_node _wlok_waitunlocked _winioctl_cmapcopy _vuid_get_value _dtop_cursordown _spl1 _dtop_cursorup _dtop_stdizecmap _dtop_computeclipping _dtop_invalidateclipping _wt_install _rl_copy _win_shared_update_mouse_xy _tick _winkill _procNPROC _phz _wt_badchildren _wt_enumeratechildren _pidhash _bcopy ldivt _win_shared_update_cursor _winfilterlockscreen _dtop_cmsalloc _check_crosshair_info _win_exit_seconds _domainname _wt_printwindow _pfind _win_sharedq_shift _nclist _ws_set_focus _wt_intersected _winprintexits _wt_sizechanged _splx _cfreecount _wakeup _workstations _hz _getc _winprintall _copyout _wt_count_layer _wt_gettreelayer _freeproc _proc _winbufs _win_shared_update_cursor_active _winnodisplaylock _winfromopendev _time _ws_lockio _dtop_lockdata _pr_set_plane_group _win_initialize_plane_group _pr_get_plane_group _win_pick_plane_group _kernelmap _rl_free _allproc _zombproc _wlok_unlock _cfreelist _ws_scaling _ws_open _dtop_alloccmapdata _dtop_putcolormap _ws_close_indev _win_return_cms _timeout _copyin _vq_putback _dtop_cmsfree _cfree Jg: nJ( (g>B~(/N    POJf* n/( l/HRN    O Jf8;HH, ` 4Hx HRN    POHSN    XO` A 0< "M"Q` ~  * fJ f     x;$0( <H#    B/+ |Hy./share/sys/sun2/OBJ/winlock.o                                                                         444       0      12        11037  4424712763  11265                                                                                                                                                                                                                                                                                                                                                                                 0      @    NV   n J Dfp N^Nu n "H"i D  @g (  x;$2( <HgHx n /( `N    POJgp`NV n J gb h h . g. f n "H"i 0) <H g0 n     f/( /( XHy  8N    O /. N  XOp N^NuNVH0 n  . Ѩ  n  (  o N    -@ n .( /N    XO*@"
f( n     f //( XHy  nN    O ` -  g  -  f  -  m  J g\ - 0   g   n  ( 8    n ( 8    f& ( <   oHy     . r8Ё/ N    PO`h n B <B 8`Z-  g , n     f //( XHy  N    O `  n     f //( XHy  N    O `  - 0F   f r@ 0J  	g  9  	r    (@HT 9  	    / HUN    O  n    f4AX"n C (#h  "A`"n C 0#h  " n ~` :J   gl n J (fJ ,g n J 0fRJ 4fLAX"n C (#h  "A`"n C 0#h  " n J (fJ ,g   n J 0fJ 4g  AXC#h  " . r(Ё/ HnN    POA`C#h  " . r0Ё/ HnN    POHnHnN    PO n J Pg^J 8fJ <g n  . 8n 8f> . <o4 n     f//( XHy  	N    O /.  n  h PNXO` n B /.N    `/.N    XO/. N  XOL0N^NuNV   n J g h r  n J Tg
/ h TNXO/. N  XOp N^NuNVH0 *n (n  n   f n r  n  . +n  D+n  @+n  B A  0C 8#h  ""gV+y     0, <H+@ +L  , 0   gr@ 0J  $g0, HH+@ y  + J    gHTN    XO`+y     p L0 N^NuNVH0 *n J Dg   m D  @g  J g m    n  J fHy  	CN    XO m D - @F(m "gH0, <H f<J \g/- H m \NXOJf&J  $gm  J    g
HTN    XOrì 0J Lg
HU m LNXO-m `HUN  XO/.N    XO` m Sp L0 N^NuNV.*n J g m BHx hHUN    POp *nN^NuNV  S  	J  	g.     	l"/9  	Hx /9    N    B  	B  	p N^NuNV       	l*Hx /9    N    PO#  	fHy  	oN    XO`R  	p N^NuNVH0 *n (n "fB`$ , 4gJ  ,g/, 4N  XO+l 4p L0 N^NuNVH0 /. N    XO*@J    gHU/. Hy  	N    "
g       00- <H-@B*y    `@ - 0  g0- <Hg 00- >Hf     00- <H-@*m "
fJg^*y    `P0- >Hf@ - 0  f6     00- :H-@(y    `0, :Hf     0(m "f*m "
fp L0 N^Nu    @(#)winlock.c 1.24 89/01/12 SMI                     Window %s lock broken because process %D not running
 Window %s lock broken after process %D went away
 Window %s lock broken because process %D blocked
 Window %s lock broken because process %D not running
 Window %s lock broken after time limit exceeded by pid %D
 Warning: window lock count pointer is NULL
 win rmalloc failed in wlok_lockinit
 %D favored (%X)
       F  P     @      P     @     P    )P  $  @  *   P  p  BP  |  BP    BP    BP    P    @     P    @     P  &  @  0  @  :  4P  D  @  L  P  V  7P    @  2  P  X  P  h  1P    @     P    -P    -P    @  <  @    @    ,P    @    @    P    6P    +P  J  @  P   P    @    P    6P    @    0P    #P  &  @  ,  @  8  @  @  @  J  <P  P  P  V  @  \  @  p  @  |  <P    P    @    @     P    @    @    @    )P    %P    @  "   P  D  =P    =P    =P                                         $         (         /         8     (   A     ,   O         X         g         t      @   ~                        `        H        $                                    f        	                                      "      T  6         B         H        T        Z       f        q        v         }                             @                                                           	          #         +         7       E        I         R     0  a         i         r        |                                                                                       _printf _sccsid _lbolt _rmalloc _qs _nproc _whichqs _ws_nice _ws_set_favor _avenrun _domainnamelen _hostnamelen _hostname _tz _rmfree _desktops _wlok_setlock _ws_set_nice _boottime _Sysmap _wlok_done _wlok_init _lok_user_addr _wlok_forceunlock _sleep _wlok_waitunlocked _wlok_lockcheck _wlok_running_check _timevalsub _spl5 _ws_set_pri _tick _wlok_clear _procNPROC _phz _bzero _favor_pid_and_children _favor_debug _pidhash _domainname _wlok_time_workaround _pfind _nclist _ws_no_pid_check_lock _ws_check_lock _splx _lok_user_count _cfreecount _wakeup _timevaladd _workstations _hz _Sysbase _ws_lock_limit _setpri _uaccess _freeproc _proc _winbufs _time _kernelmap _allproc _zombproc _wlok_unlock _cfreelist _ws_favor _ws_check_time _cfree   gX   f
~+G `  n   f,HH!@ `  n   f,HH!@ ` d n~!G ` V nB ` JJg|0` > kJo B'L` *Hy  '5HTN    PO` J    fp`B#    ` |`  . A rN\fA0;N $  `<P2rl\f88" .& < d|&dJT6~RRzp$8@lg@dg)@@g&@4g5@4g4@g-@gB@
gI@
gG@g<@g
@g
@g@g@@g9@g$@g@g@f  gd  gP  gJ  gH  gG  g:  g,  ./share/sys/sun2/OBJ/winshared.o                                                                       444       0      12         2333  4424712772  11562                                                                                                                                                                                                                                                                                                                                                                            H                  NVH8 *n -m(m&nG  nJ g
 ` "fB B BB >`     f  Hx Hy  PHltN    O Jg. ,pЬlS-@ mP mP mP`| | | HnHnHnHx Hy	  /- p m p P h N``A 0< 
"K"QA$C :0< "QA8C N0< "QHx  Hk bHlLN     nJfp `"m )!@L8 N^NuNV   n J g ` n  . ( P  ( PN^NuNV   n J g ` n !n  n !n N^NuNVH8 *n (mGJ fT gJgHUa 6XO  g m  (r WD/HTa RPO  g/-/-HTa j L8 N^Nu@(#)winshared.c 1.8 89/03/24 Copyr 1985 Sun Micro       monochrome         X  @   b   P    
P             
                                    )     `   3        F     r   b         m         v          }                                                                    @                                            #_strncmp _sccsid _qs _nproc _whichqs _desktops _win_shared_update _win_shared_update_mouse_xy _procNPROC _pidhash _bcopy _win_shared_update_cursor _nclist _cfreecount _workstations _freeproc _proc _winbufs _win_shared_update_cursor_active _kernelmap _allproc _zombproc _cfreelist _cfree 0   gr@ 0J  $g0, HH+@ y  + J    gHTN    XO`+y     p L0 N^NuNVH0 *n J Dg   m D  @g  J g m    n  J fHy  	CN    XO m D - @F(m "gH0, <H f<J \g/- H m \NXOJf&J  $gm  J    g
HTN    XOrì 0J Lg
HU m LNXO-m `HUN  XO/.N    XO`./share/sys/sun2/OBJ/wintree.o                                                                         444       0      12        11742  4424713005  11265                                                                                                                                                                                                                                                                                                                                                                         
x              x    NVH0 *n    gp`  HUN  XOJf(m "fp`  B B J f$J fJ fJ gB B )M )M `|J f+l   m !M )M `bJ f+l   m !M )M `H m    g m    g m  (  f t m  (  f d m !M  m !M rBHUHzjN  p L0 N^NuNV"n  i "g   g ( fJ gp`$ i "g   g ( fJ gp`p N^NuNVH0 *n (m    fp`PrÕ , f)m   , f)m  J g
 m !m  J g
 m !m  BHUHzN  p L0 N^NuNV.J gl/. /.  n NPO n *h `LJ g n 0-  P n 0- "h /. HU/. aO J g n 0-  P n 0- "h *m "
fp *nN^NuNV   f n B`.    d /. N    XO n   n  P    fp`p N^NuNVH *n "n ~".
gl~  A     eD A     0   Rd, A      
"<  N    "ҁށށЇ"`Rtm   m~"p L N^NuNVH< *n (n A    C0< "QHm THm @N    POHm @N    XOJ f6Hm @Hm  N    PO m ;h h 0 m ;h j 2HnHTN    PO`  0-  T0- "l  m A  C#h  "BnBnHnHnHm  N    O Hm @HnN    PO m 0( 0m  ;@ 0 m 0( 2m ";@ 2 m J gHm @ - r@Ё/ Hm @N    O &m `Hm @Hm @Hk  N    O &k "fHnHTHnN    O 0-  T0- "l 0-  m @0- "m B0-  n0- "nHm @N    XOHnN    XO&m `*0+  T0+ "l HTHSa VPO0+  T0+ "l &k "f&m `Hm @Hm @Hk  N    O &k "fHm @N    XO   fHnHm THnN    O HnHm hHnN    O Hm hN    XOJf    `HnHm @HnN    O HnN    XOB$n`R$R"
f   mHnN    XOHnHm @N    POHm THm @N    POJf
HUN  
8XOHm hHnN    POJf&Hm hN    XOHm hHnN    POHUN  
8XOHnN    XOp L< N^NuNV   n    f rhЁ/ //. N    p N^NuNV   n rp N^NuNVH8 *n (M`0&l "f m  |f"p` "k `g"i "	f"	g(l "fp L8 N^NuNV"n ` n 0)  P n 0) "h "i  fp N^NuNV.*n    grÕHUN  
8XO   g
HUN  
8XO   fHm hN    XOJfHx HUN    POrÕp *nN^NuNV   n    g rhЁ/ r /N    POp N^NuNV   . r@Ё/ N    XO . rTЁ/ N    XO . rhЁ/ N    XO/. N  
8XOp N^NuNVH0  n A  C#h  " n =h 0=h 20. nm:0. nm00.H2.HЁ2. Hl0.H2.HЁ2. Hmp `6 n *h `$0n /0n /HUa rO (@Jg `*m "
f . L0 N^NuNV  /. N    XOJ g  n //Hy  
N    O  n /( Hy  
N    PO n /( Hy  
N    PO n /( Hy  
N    PO n /( Hy   N    PO n /( Hy  N    POHy  7N    XO n 0( &H/ 0( $H/ 0( "H/ 0(  H/ Hy  EN    O Hy  pN    XOHy  rN    XO n 0( .H/ 0( ,H/ 0( *H/ 0( (H/ Hy  N    O Hy  N    XO n /( <0( 2H/ 0( 0H/ Hy  N    O Hy   . r@Ё/ N    POHy   . rTЁ/ N    POHy   . rhЁ/ N    POp N^NuNV.*n R <HnHUa FPO m  hA .  <*nN^Nu      @(#)wintree.c 2.10 88/02/08 Copyr 1985 Sun Micro        w: %X, Flags: %X  parent: %X 
 link[WL_OLDERSIB]: %X  link[WL_YOUNGERSIB]: %X 
 link[WL_OLDESTCHILD]: %X  link[WL_YOUNGESTCHILD]: %X 
 Window Rect:  [left: %d, top: %d, width: %d, height: %d] 
 Saved Rect:  [left: %d, top: %d, width: %d, height: %d] 
 ScreenOffsets: x=%d y=%d  ClippingID=%d
 w_rlexposed w_rlexposedold w_rlfixup            @     @    @  p  P    .P    .P    .P    P  4  !P  P  P  \  0P  r  4P    P    P    4P  ,  P  H  &P  d  P    P    P    &P    P  ,  %P  B  P  P  P  v  P    P    0P    P    
P    @    
P    0P    P    @  "  0P  V  &P    @    @  2  P  D  P  x  4P    0P    0P    0P    @     P    @     P    @     P    @     P    @     P  	   @  	   P  	  @  	   P  	$  @  	*   P  	V  @  	\   P  	f  @  	l   P  	t  @  	z   P  	  @  	   P  	  @  	   P  	  @  	   P  	  @  	  P  
  @  
  P  
  @  
,  P                            
x              +          @          Q          d         h     4   z                                 `        `                  r                            J                        "  +       <     X  M         Y         b        m                                             T                
8                                          #       3       E        Q       _        i        o        x                                                          _printf _winfromdev _sccsid _winsignal _rl_rectintersection _rl_intersection _rect_intersection _qs _wt_partialrepair _nproc _rl_equal _whichqs _wt_positionchanged _desktops _rl_union _wt_isindisplaytree _rl_empty _rl_normalize _wt_numbertowindow _wt_windowtonumber _rl_coalesce _wt_setclipping _wt_nullclipping _wt_initclipping _wt_install _rl_copy _procNPROC _wt_enumeratechildren _wt_badchildren _pidhash _rl_print ldivt _wt_remove _rl_null _wt_bump_clippingid _wt_printwindow _wt_passrltoancestor _rl_difference _rl_rectdifference _nclist _wt_intersected _wt_notifychanged _cfreecount _workstations _freeproc _proc _winbufs _kernelmap _rl_free _allproc _zombproc _cfreelist _rl_initwithrect _cfree   gd  gP  gJ  gH  gG  g:  g,  ./share/sys/sun2/OBJ/ws.o                                                                              444       0      12        13564  4424713020  10242                                                                                                                                                                                                                                                                                                                                                                         	P  @            0   NV  J    f .J    f 9    r(N    #    J    f 9    l^#    J    f 9    rN    #    J    f 9    rN    #    J    f 9    lR#    J    f 9    " Ё#    J   f$ < B@"9    N    "9    N    #   J    f 9    " DЁjR#    J    f(J  	pg  9  	hrN    "9  	pN    #    r#    p N^NuNVH0  n JgP*|    (m `4J, "g*Hx Hl "/. N    O JfJ g n   
`(l 6"fK  ep L0 N^NuNV"|     i `0( n 
f 	` h 6"fC  ep N^NuNVH0 a (|        f*L`I  e"
gJ gr#    p `  +y  	h $/- $N    XO+@  J  f /- $Hy  	N    POr#    p `  /- $/-  Hm N    O Hm ,N    XOHmLN    XOrA  	tC """"2A  	C """"2A  	C #h  "A  	C$""2A  	C.""2J    f#        /9    BHy    N     
L0 N^NuNV.*n     J frJ gHy  	N    XOJ  g/- $/-  N    PO/- N    XO/-N    XOHm ,N    XOHmLN    XOHxHUN    POp *nN^Nu/- HUN  LPOrf t` vNVH BHn/. N    PO;f X n-h  nJ f
 H;` : n=h 0n/a XOJg
 ;` Hx >N    XO*@.
fHy  
N    XO ;` Hx >HUN    PO+n ;n +n B~  n x x"RrmBHm :Hy@v/.N    O J8;g(Hy  
8N    XO8 ;g
8 ;f ^~B :~-GBHnHyv/.N    O J8;g(Hy  
ON    XO8 ;g
8 ;f ~B :BHnHy@"T/.N    O J8;gHy  
fN    XO`  +n +n +n +n BB . 0BBHnHy"T/.N    O J8;gHy  
xN    XO`rBHm Hy@k/.N    O J8;f:~-GBHnHyk
/.N    O J8;gHy  
N    XO`~ n -h !M +n 6 
`8;HH/ Hy  
N    POp L N^NuNVH8  n  h *h &n PK n (h ` P f @& 6B 6B8;BHnHy@"THUN    O J8;g8;HH/ Hy  
N    PO n -h -h -h -h BHnHy"THUN    O J8;g8;HH/ Hy  
N    POB . r:Ё/ HyvHUN    O J8;g8;HH/ Hy  
N    PO n    g8Br/Hyk
HUN    O J8;g8;HH/ Hy  N    PO n J g/( N    XOHx >/. N    POp `G 6(l 6"f Hy  
N    XOpL8 N^NuNV.*n -y  	h/.N    XO-@gH/./ HnN    O J  g/- $/-  N    PO+n $+n  AC 0< "Q*nN^NuNV.*n  9  	h"9  	lN     $c   - $й  	h-@/ N    XO-@g  /./ HnN    O `$HnHnN    POrfHy  -N    XOHnHm N    POrfJ  g/- $/-  N    PO+n $+n  AC 0< "Q`&Hy  TN    XOHUN    XOHy  rN    XO*nN^Nu    @(#)ws.c 1.19 88/02/08                  i                         f                              Couldn't allocate %D byte event buffer bytes
 ws_close: desktop still opened
 ws_open_indev: heap alloc failed
 ioctl err VUIDGFORMAT  ioctl err VUIDSFORMAT  ioctl err TCGETS  ioctl err TCSETSF  ioctl err KIOCSDIRECT  err = %D
 ws_close_indev: device not found
 ioctl err %D TCGETS
 ioctl err %D TCSETSF
 ioctl err %D VUIDSFORMAT
 ioctl err %d KIOCSDIRECT
 Window input queue unexpectedly full!
 Window input queue overflow!
 Window input queue flushed!
       
P     IP     :P      /P   &  IP   ,  HP   4  :P   @  HP   F  0P   N  :P   V  /P   \  0P   b  6P   j  :P   r  /P   x  6P   ~  5P     :P     5P     4P     :P     4P     JP     :P     /P     5P     P     JP     'P     1P     'P    P    @    @    3P  "  @  (  3P  .  P  6  
P  R  9P  p  P    9P    9P    9P    9P  
  9P    P  *  @  6  )P  L  @  R  P  \  P  t  P    P    P    @    @    @    @    @    P    IP     P    P    P    GP  B  @  H  P  ^  P  j  P  v  P    P    P    +P    @    P  2  )P  @  @  F  P  ^  +P    2P    @    P    2P    @    P  4  2P  D  @  J  P    2P    @    P    2P    2P    @    P  4  @  :  P    2P    @    P    2P    @    P  $  2P  >  @  D  P  h  2P    @    P    P    P    @    P    @    )P    P  (  P  `  @  f  @  l  P  ~  @    )P    P    -P    @    P    &P    P  	   @  	&  P  	0  P  	8  @  	>  P   2  P   D  P   V  P        	p             *          0     @   E          M          V     $   `     	P   h          x         |                                                                               	h                  `            
                  0         8         C         R         ]         q         |                      	       	       	       	       	       	t            (        :        A         N        Y         `        i         q                                                                                                              T  1        <        F        L        U        `     	l  t        }                            L                                           _ws_q_collapse_factor _ws_flush_input lmult _ws_indev_match_name _printf _strncmp _ws_close _sccsid _ws_init_tuning _qs _ws_tuning_done _file _nproc _whichqs ulmult _ws_poll_rate _ws_open_indev _ws_interrupt _ws_vq_node_bytes _kmem_free _desktops _ws_flush_handler _ws_stop_handler _ws_break_handler _closef _wlok_done _vq_initialize _wlok_init _vuid_destroy_state _win_errno _kern_dupfd _ws_q_collapse_trigger _ws_event_timeout_default _ws_kbd_focus_sw_default _ws_kbd_focus_pt_default _ws_flush_default _ws_stop_default _ws_break_default _vq_get _winclistcharsmax _nfile _kmem_zalloc _procNPROC _bzero _pidhash _vq_put _ws_indev_match_dev ldivt _ws_fast_poll_duration _nclist _strioctl uldivt _ws_no_pid_check_lock _ws_check_lock _ws_loc_still _cfreecount _ws_shrink_queue _workstations _hz _ws_handle_overflow _fileNFILE _freeproc _proc _winbufs _kernelmap _ws_vq_expand_times _allproc _zombproc _cfreelist _ws_open _ws_close_indev _timeout _ws_slow_timeout _ws_fast_timeout _ws_check_time _cfree g8Br/Hyk
HUN    O J8;g8;HH/ Hy  N    PO n J g/( N    XOHx >/. N    POp `G 6(l 6"f Hy  
N    XOpL8 N^Nu./share/sys/sun2/OBJ/ws_dispense.o                                                                     444       0      12        20173  4424713035  12134                                                                                                                                                                                                                                                                                                                                                                         @  @               NVH0  n (h "g  /N    XO*l "
gz n    
g
/N  
PXO F  fNJ (gR n "m ( ) 4 4f@ ,f l"l ) g`$ m (    lHm ,N    XOHUN   XOp L0 N^NuNV.*n  rf 8HUN  XO` @0; N   ^ ,` =|J g B -    / Hn/- N    O J    f   g    r+A` HUN  XO    gJg  m0(    g Hx HUN  pPO=|Jg B -   / Hn/-N    O +m B` @Hn/-HUN  XO ` (Hn/- HUN  XO `    gr+A` +m r+A` =|
J gB - r|Ё/ Hn/- N    O r+A` =|JgB -r|Ё/ Hn/-N    O +m    f   	fB`r+A` ^J g$B - r|Ё/ Hm/- N    O rf&J g B -    / Hm/- N    O B`  HUN  :XOJf  J g  HUN  XO-@ @C""""n gnfHx `rp 0.2-.Hf HnHm.HUN  O Jg    `.p 0.2-$Hf<HnHm$HUN  O Jg$AC""""Hx HUN  pPOHUN  :XOJf*nf/.HUN  `HnHUN    PO F  f
p *nN^Nur-A   	gA`J g
 m A `A    C#h  "B.B. -rc Hy  `N    ` rNV   n 0 n h.fh$gJ n J fJ g:J g4B .    / /. /. N    rg n      n r` n r!Ap N^NuNV   n p 0 n 2HfJ n p 0/  n /( N    PO n  f& g n "n  )  ") fp`p N^NuNV.*n Jg/-Hy  uN    POBp`4 - gJ fr`r+Ap` - g
r+Ap`p *nN^NuNV.*n BJ    f J f - $    c
HUN    XO    f  J gv m ( rf  `d -     obHnHm N    POrgLnencn gnf,HUN  XO-@ @C""""r-A    nJgNnencn f=| r-AB.B.HnHm N    POJgHy  N    XOp *nN^NuNV.*n B`nHnHm N    POrg`nencn g`8HUN  XO-@ @C""""r-AJ    gHx HUN  pPO   fJgJ    fHx HUN  pPOp *nN^NuNV.*n . rg
HUN  
XOm.fm$f+mJ8g+m8+m8`.  g    +m*nN^NuNVH0 *n (mHnHm N    POrfHy  N    XOJ    g././. -  / /.p 0./ Hy  N    O nenc0n f  `$ .Ѭ`H .Ѭ`>)n`6)n`.p 0.   g   g  g  g  g    HnHm N    POrg8nencn f /./././.N    O Jf =| r-AB.B.`,HnHm N    POHnHUN  	POnfA"|  """" <  L0 N^NuNVH0 *n `HUa ^XOJ f/- N    XO/-N    XO+@ (m"g)l)lHx 4Hm N    POp L0 N^NuNV"n  n p 0  rb  @0; N     2 D V h zJ gr `rr`jJ gr ``r`XJ gr `Nr`FJ gr `<r`4J gr `*r`"J gr  `r`J gr@ `ré p N^NuNV n -hgj nJ |g`-h-hHnHnHnN    O  n !n n!n n!n/./. n/( |N     n !@p N^NuNVH *n  -  lHy  N    XO`<~ `0J g0HUa XO-@ @C""""HnHUN    POR mp L N^NuNV.*n "
fp `  m  rfHUN    XOJgp`B*nN^NuNVH8 *n (n    gHy  #N    XO`  "fHy  BN    XO`       f  HTHUN    POJ fJ g   x;$0( <H 4f&x;$`/, 4N    XO&@JglHSHm 8Hx HUHm ,N    +l  t+|   xA C d#h  "+|   |+|  b +|   +M J    fr ,+|  r +L (p L8 N^NuNV n -h H n-h  nB (N^NuNV  J    gHy  hN    XON^NuNV n -h H n-h  n #      nJ (g& h (J gB n h ( h /( |Hz N    B    N^NuNV.*n # 4    r#    B m /( |Hz N    O B    J    g
HUN  
XOp *nN^NuNV.*n # 4    B m /( |Hz N    B    p *nN^NuNV   n     g ( 4    gp` n      p N^NuNV   n     g ( 4    gp`T n  h  ( f0/. N    XO n  h  h"n "i "i ) f`
 n J gB    p N^NuNV   n     g ( 4    gp` n p N^NuNVH8 0n 
/N    XO*@(m &l    f :Hx HSN  PO   f  HxHSN  PO/8;$HkXHx HSHkLN    O 'L'|  &B'|  w'K'|  r/+PHx HSN  O )M x'M8'k <'k@'k D'kH'M 'M BHSa POHTN    XOHTN    XOrHTN    XO   ghJ,gb  -grgrf>r)A`BHSN  XOJg HxHSN    POJg HxHSN  POp`B` kTRp L8 N^NuNVH0  n *h H(m B xB8HUN    XOr)l< )l@)lD )lHHx HTa  POHUN    XO HUN    XOHUN    XOBBHTN  O /-N    XOL0 N^NuNV n "h ` iJ gp`
"i "	fp N^NuNV n "h ` i!n  i!n "i "	fN^NuNV n "h ` i . Ѩ"i "	fN^Nu    @(#)ws_dispense.c 1.25 88/02/08 Unknown input state
 Focus state should be SEND_Q_TOP %D
 putback error
 Window input: tried to read empty q
 q get id %D value %D avail %D sec %D usec %D
 ws_send_batch: batch number too large
 ws_lock_event: already locked
 ws_lock_event: NULL window arg
 event TIMEOUT EVENT
 io            BP   8  @     [P     @     @    P    P  :  @  l  @    P    @    @  &  P  Z  P    P    P    @    @  R  @    @    @    @    @    ^P  $  TP  J  @  P  P    P    2P  P  @  V  P    P    %P    KP    /P     P  >  @    aP    @    P     P    @  .  P  <  @  R  P  `  @    @    0P    @    P  
  P  0  @  6  P     P    @P  	   1P  	.  @  	H  @  	V  @  	  ,P  	  WP  	  :P  
   P  
  FP    @  $  P  X  ^P    P    @    P    @    P    ]P  .  AP  L  (P  X  @  p  @  x  @    @    P    @    +P    @    P  
  
P  
B  ;P  
H  
P  
^  
P  
f  ?P  
z  ;P  
  
P  
  ?P  
  @  
  
P  
  ;P  
  
P  
  
P     
P  B  BP  x  ?P    
P    P    @    @    (P  $  @  0  @  <  @  N  @    RP    P    	P    @    -P    @  F  QP  x  3P    	P    4P    @    IP             
                    +     	d   ;         J          R        b          n     @   v                       
                                                                      2       A        H        R         c         y     r                                                               
                &      @  0         B        F     `  P         ^        h     &  v                                                                                              .       <        B        M        R         Y         o        x             @                                                  p       
P                          #         +     X  @         Q       _     
  p        t        ~                                                                       :                                            (         2     	  D     
  \         h        o_vq_peek _dtop_set_bkgnd _win_send_one _ws_flush_input _ws_qget_debug _printf _ws_focus_match _winfromdev _sccsid _dtop_set_cursor _win_can_lock _win_dont_lock _ws_verbose_event_lock _ws_lock_control_pid _lbolt _ws_set_dtop_grabio _qs _ws_window_transit _ws_no_in_transit _ws_focus_during_each_transit _ws_send_batch _nproc _ws_nudge _ws_window_nudge _dtop_check_all_locks _ws_check_all_locks _whichqs _avenrun _domainnamelen _hostnamelen _ws_dtop_mutex_locked _ws_no_collapse _dtop_track_locator _ws_enable_event _ws_unlock_event _ws_lock_event _hostname _ws_vq_node_bytes _tz _desktops _wlok_setlock _boottime _ws_unlock_io _ws_event_timeout_msg _vuid_destroy_state _sleep _ws_set_dtop_waiting _ws_q_collapse_trigger _vq_get _vuid_set_value _vuid_get_value _dtop_cursordown _dtop_cursorup _ws_timedout_event _ws_get_event _tick _procNPROC _phz _bzero _wt_enumeratechildren _pidhash _ws_collapse_q _domainname _ws_empty_input_flag _tv_equal _pfind _win_sharedq_shift _nclist _ws_set_focus _ws_try_event_enable _wt_intersected _ws_force_event _cfreecount _wakeup _ws_send_kbd_request _ws_shrink_queue _workstations _win_empty_input _hz _freeproc _proc _dtop_restore_grnds _dtop_save_grnds _winbufs _time _ws_lockio _kernelmap _vuid_copy_state _ws_set_focus_state _allproc _zombproc _wlok_unlock _cfreelist _ws_favor _win_send _ws_set_shiftmask _ws_set_pick_focus_next _vq_putback _cfree    O +m    f   	fB`r+A` ^J g$B - r|Ё/ Hm/- N    O rf&J g B -    / Hm/- N    O B`  HUN  :XOJf  J g  HUN  XO-@ @C""""n gnfHx `rp 0.2-.Hf HnHm.HUN  O Jg    `.p 0.2-$Hf<HnHm$HUN  O Jg$AC""""Hx HUN  pPOHUN  :XOJf*nf/.HUN  `Hn./share/sys/sun2/OBJ/ws_interrupt.o                                                                    444       0      12        13333  4424713050  12353                                                                                                                                                                                                                                                                                                                                                                                8      8    NVH8B 9    ѹ  
~  " 灐Ё    *@ F   f     
f  R&m `HSHUN  POJgB  
&k 6"f 9    ѭ   g
HUN  XO -    m, 9    й    oHUN  2XO 9    й    +@ F  g
HUN    XO   gHmLN    XO   gHx /9    Hm ,N    O (m `/9    HTN    PO(l "fRrm  9  
    m#        `
#        JfBHzN    POB    `/9    BHzN    p L8N^NuNVH0*n (n ~B`|#g/.Hy  	WN    POJf .L0N^Nu-|  @R    HnHn/, N    O -@  f    gTA-H| lr-A n0h H=@B.B.-AA    C#h  "HnHUN  POR`  @l~ | `$r-AA Hp HUN  PORr   lJg "/.Hy  	8` NVH0 *n -mrÕJg   n-h-hB(nHnHnHnN    O  .gZHTN    XOB/,N    PO+nHx  n/(N    POBHTN    XOBHT/.N    O  nr n .f
 .g/./. n/(N    O  n!n n!n/.N    XOp L0 N^NuNVH8*n (n &m`rJ    ft/9  	&Hm N    PO-@R    J    g/9  	&/ Hy  	oN    O JfJ  	&gB  	&`HUN    XO` 9  	.ѹ  	& -  gJ ft#  	*  	&.fHy  	N    XOJ  gP -fH +f
 +g4J    g /+/+/+/+Hy  	N    O 'k'k-k-kp 0   g     g    !g    "g    g  g<  gf  gl`   -    lHl N  nXO , ѫ~`   -    lHl N  nXOp  )@  , ѫ~`  'l ~`  'l ~`  J    o( 9    " ҁЁ   @p 0 8~ HTHmN    POHTHy    HUN  O JgRHTHm HUN  O JgRHTHm HUN  O JgRJf~ .f
 .g/+/+/+N    O HTHm N    PO~fHy  	N    XOJ    g(/, /,  -  / /, p 0/ Hy  

N    p L8N^NuNVH0 *n (n 0   g,Up 02- HfN ,  
fD/.  m NXOp`6p 02- Hf& ,  f0  g/.  m NXOp` U p L0 N^NuNV=|B.B.r-AA    C#h  "Hn/. a TPOp N^NuNV   n    g$r,/N    XOJ    gHy  
8N    XON^NuNV  /. N    XOJ    gHy  
SN    XON^NuNV.*n =|
B.B.r-AA    C#h  "Jg^ m-hgRHm ,N    XOB .   / Hn/.N    O Hx /.N    POJ    gHy  
xN    XO*nN^NuNV."n >) lHD |    `XH0Hr 2br 2(  N    "p ..N^Nu      @(#)ws_interrupt.c 1.16 88/02/08          !  "     "  !  !     "  !  "     "     !  "  !                  ws_read_indev length error %D
 ws_read_indev error %D
 Win input q collapsed %D, factor %D
 Unexpected dtop_loc == NULL!
 Ut (%D,%D) & rt(%D,%D) out of sync: now in sync
 Window input queue unexpectedly full!
 q put id %D value %D avail %D sec %D usec %D
 Event lock broken by user
 Window input queue flushed by user!
 Stop sent
           P     @   *  EP   V  @   b  @   p  P     @     AP     AP     ;P     @     AP     ;P     
P     .P     P    -P    P    P  4  @  :  ;P  B  XP  F  P  N  WP  R  P  d  2P  l  P  t  P    VP    @    P    P    DP  8  OP  P  @    @    @    P    0P    NP  .  NP  <  :P  L  P    3P    P    P    @    P    P    HP    @    @    P    @  $  @  .  IP  8  @  >  @  T  @  X  @  b  @  h  P  p  @    )P    @    P  (  AP  4  @  P  AP  \  @    P    P    @    /P    +P    @    @    @  H  3P  X  8P  f  @  l  P  t  P    @    P  L  OP    *P    "P    @    P    P    %P    @    P    OP    *P  8  P  J  P  R  9P  Z  @  `  P    UP    P        	&             (          8          >         M          U        ]          n          y                                                                                                          	.                   "        0     n  @        Q         ^        p                                @               `                                               
     p          ,         >         P       d         t                                                                                                               %         <      @  H        P       b     
  r     2                                                       	*                                                   (         I        O       \        g        p        z                                                    _ws_q_compress_factor _win_send_one _ws_flush_input lmult _ws_qput_debug _printf _sccsid _dtop_set_cursor _winsignal _lbolt _qs _file _nproc _ws_nudge _whichqs _ws_kreads _avenrun _domainnamelen _hostnamelen _dtop_update_enable _ws_q_compress_more _dtop_track_locator _ws_track_locator _ws_poll_rate _ws_scale_event _ws_button_order _vq_compress _ws_no_q_compress _ws_q_compress _dtop_interrupt _ws_interrupt _hostname _tz _desktops _ws_break_msg _ws_sync_debug _boottime _ws_flush_msg _ws_stop_handler _ws_flush_handler _ws_break_handler _ws_sync_msg _wlok_forceunlock _ws_flush_default _ws_usr_async_check _wlok_lockcheck _wlok_running_check _vuid_set_value _dtop_cursordown _nfile _untimeout _win_shared_update_mouse_xy _tick _procNPROC _phz _pidhash _vq_put _ws_stop_msg _win_shared_update_cursor _ws_fast_poll_duration _domainname _nclist _ws_consume_event _ws_quiet_ticks _ws_loc_is_still _ws_loc_still _ws_read_indev _cfreecount _kern_read _workstations _hz _ws_q_compress_base _ws_compress_debug _ws_handle_overflow _fileNFILE _freeproc _proc _winbufs _win_shared_update_cursor_active _time _buttoncodes _kernelmap _allproc _zombproc _cfreelist _ws_scaling _timeout _ws_fast_timeout _ws_slow_timeout _cfree                      
                                                                      2       A        H        R         c         y     r                                                               
./share/sys/sun2/OBJ/wscons.o                                                                          444       0      12        11732  4424711576  11136                                                                                                                                                                                                                                                                                                                                                                                       @   NV"n J. gp`z 9     f6B  # 
  B  	r#  By  	By  	By  	By  	
 9     g x;$ h DJh g
 ;p`#  C $#   . N^NuNV  B  Hy  N    XOp N^NuNVH< *n (n  l p ( 
Jg rg(rg rgZ   g D   g   g$HTN    XO` r  HTN    XO` rù  N  JHTN    XO` x&l  A r\f  A0;N DDDD  H  HDJ  	ff l $h #   	 l |  
B HTHUN    PO`  l $h  9  	 f$B  	 l |  
B HTHUN    PO`   l |  
HTHUN    PO`  HTHUN  PO`    T  S  S  S
  S"T"T
TT`   l  g*N    -@BHUN    PO/.N    XO l   l   g N    -@BHmN    PO/.N    XOHTHUN    PO`HTHUN    PON  Jp L< N^NuNV.-y  g *y  	"
gB  	HU/.N  POp *nN^NuNVH0*n (m tggt%fB  m |  
`bHnHU/. Hy  N    O . gBHzvHx /N    `>Jl  TfB`~-GJg)n  m |  
HU/. N    POL0N^NuNV. 9  ~gxN    .  9    gX  	gL/9  	 y  NXOJf$r#  	rù   9  rfN  J`Hx BHzN    O /N    XOp ..N^NuNV  rù  N  Jp N^NuNVH8N    -@ 9  ~f X*y  .
g L`HHTN    XO`< l p \/ BHzN    O ~  HTN    XO` HTHUa :POHUN    XO(@Jg   l p ( 
~g~g ,  , g y ,JfV~  ~#  	m  cBHz N    PO`  9    rN    / BHz N    O HTHUN    PO`l.g h l ~ R S`&L(l HSN    XO"g,,  Jo/ y  NXOJg|  #  	Hx BHzN    O .f/.N    XOL8N^NuNVH<(y  .g  N    -@$|  	,<  `b k (  
fHSHTN    PO`X*k .+ ` Jf'M HSHTN    PO`6pSSJf-K&k /.N    XO.fHTN    XO&@Jf <  А. g&/.N    XO/9 T/Hy  	 y \NO N    -@~Ϲ  a /.N    XOp L<N^NuNVH8 *n (n  l p ( 
Jg     g   g     g  `   l  g
 l  f,N    -@BHm $N    PO/.N    XO l   l  g l  f  N    -@BHUN    PO/.N    XO l  HTHUN    `PJ  gLHT/-  m `6&y  "g6/+ N    XOJfHSHy  N    PO`HT/+  k  P PNPO`
HTN    XOp L8 N^Nu      @(#)wscons.c 1.25 89/01/05 SMI                               0                        0                        0                          0              >  Z  v      wc ldterm ttcompat           @      @   *  @   0  @   8  @   >  @   D  @   J  @   P  @   V  @   z  @     @     @     @     ?P     :P    @    :P  $  @  *  @  2  :P  p  @    @    2P    @    @    2P    2P    @  :  (P  H  DP  T  ;P  p  (P    DP    ;P    2P    P    @    @    @    @    @  2  @  8  P  R  IP    2P    @    'P    @    @    @    @    @    @    @    OP  "  ;P  :  @  @  @  T  (P  ^  @  l  @  |  :P    OP    @    :P    CP    @  
  @    5P  (  >P  0  1P  >  OP  L  
P  t  MP    @    @    OP    ;P    @    'P    @    
P  6  
P  Z  MP  h  CP    ;P    @    (P    @    ;P  *  (P  :  DP  F  ;P  l  (P  z  DP    ;P    2P    @    @    P    @    "P    :P   "  @   .  P   6  @   :  @   B  @   J  @   R  @   V  @   ^  @   f  @   z  @     P     @     @     @     @     @     @     @     @            
                         &         /        7        @         J         Q         U          \         c         l          t         }                                                           @                                                                           
     >          !        )       4         E        N     J  W        e        p         v         |                                                                                        @       Z                               v                                   $        ,        0         A     2  J        T        Z         `         h        p        v                                                                                      0                         _nbuf _rootvp _wcreioctl _wcioctl _rootdev _sccsid _wclrput _bclnlist _lbolt _qs _putbq _nproc _whichqs _wcopen _avenrun _domainnamelen _hostnamelen _runin _wcuwput _dvmasize _wconsout _hostname _putq _tz _wscons _dumpvp _canput _ttycommon_ioctl _nchrdev _boottime _wcurinit _panicstr _noproc _wcmodlist _ttycommon_qfull _physmem _wcstart _fbobmemavail _boothowto _spl1 _spl5 _tick _procNPROC _phz _runout _selwait _pidhash _wcclose _nblkdev ldivt _qreply _domainname _wcuwinit _softcall _runrun _bufhash _wclrinit _wcopoll _freemsg _splx _cpu _maxmem _hz _ttycommon_close _wcrstrt _freeproc _proc _getq _flushq _wantin _time _iopbmap _dumplo _bufcall _allproc _zombproc _bfreelist _freeb _bufalloc _timeout _wcinfo _wcm_info _bufchain _curpri _wclwinit   0P    NP  .  NP  <  :P  L  P./share/sys/sun2/OBJ/xt.o                                                                              444       0      12        25111  4424712415  10242                                                                                                                                                                                                                                                                                                                                                                         h                  PNVH0 n *h (h p - -@HUN  XOJfp`  Hx HTN    PO    . ,   ,  9  ,   , . ,   ,      -@-  g   r` .   -@n p 0.-@@ n |  -  fp , L0N^Nu.<   "9    SJo`NV.*n "
ҁ    +n   - X/ N    XOrg  Hx /9    N    PO+@ J fHy  N    XOp `t|  BBHUa O  m p (   rg/. Hy   N    POp `4Hx BHUa FO -@g/ /. Hy   N    Jgp `p*nN^NuNV  pN^NuNV. n 0( HЀ" ЁҁЁ    *@0( H-@ h $J g< m (  f n  h $0( H/ Hy  ;N    PO n  h $ h  h   n 0( H" DЁ    ".+  n 0( H @    "n "i $0 p *nN^NuNVH0. ~΀rl2 " DЁ    (@ @Jf A    *p "
gJm  fp`  Hx BHx 	0n 
/N  hO Jf 0, rg/Hy  ]N    POB` J.  g 0,   g/Hy  oN    POB` "Jl f,)| B@ 9|   9    / 0n 
/HzN    O 0,   g ^ - g~g  ~g  J  gLJ  o$Hx Hx Hx 0n 
/N  hO Jg$` (Hx BHx 0n 
/N  hO Jf J  g  J  o&Hx Hx Hx 0n 
/N  hO Jg  `  Hx Hx Hx 0n 
/N  hO Jg  `  .  g"Hx Hx Hx 0n 
/N  hO Jgl`~Hx BHx 0n 
/N  hO JgL`^.  g"Hx Hx Hx 0n 
/N  hO Jg"`4Hx Hx Hx 0n 
/N  hO JfB )| B@ B, p `tBJ  fhHy  N    XO~#  0- HЀ" ЁҁЁA   -p  np ( -@/N  XO/. 0n 
/a 4PO-@B  `pL0N^NuNVH >. 
,. r" DЁ    *@rg gdJ- g^Hx BHx 0H/ N  hO Jf>Hx BHx 0H/ N  hO Jf Hx Hx  Hx 0H/ N  hO JgB fm gBHx Hx H/N  hBp L N^NuNVH . ~" Ё    *@N    . ` J f   fr@Hx HUN    PO   fr	*/N    XO;n 
 +n   . Ю +@ (B $HUN  XOJ fp `  N    . `r@Hx HUN    PO   g/N    XOHUN    XO-@    f J (gJf . ~g~g~-G   g
HUN    XO~ϕ .L N^NuNVH< *n 0- r-@" DЁ    $@ ." Ё    &@B N    -@`Hx Hj N    PO*  lR*  .A     p (h $J f"'M B J .f)K .` l 2!K )K 2` k !M 'M J 6f
HTN  `XO/.N    XOp L< N^NuNVH< *n ` (k "f
+k  .` 0, r-@A    -p  ." DЁ    $@ n0( HЀ" ЁҁЁA   -p /.N  JXOJg n(  g/.Hy  N    POB* HHjr` Br-AB ." Ё    f   , (r  bvA rXTfhA0;N  > (   > > > > >r+A 6%|  , r-A`|r+A 6%|  X r-A`fr+A 6Hx < , / N    PO%@ `Fr+A 6Hx,Hx  , " Ё/ N    PO/ N    PO%@ ` 	   -l  , (-@ , (   -@`  , $lV䀰 or9|  `  , $lV䀰 f&    g/, /,  N    POB ()l  (` X    f , $lVR%@  , $lV-j ذf  -l     f2    6g$J Jgr-Ar-Ar+A 6Br-A`r`r-Ar+A 6Hx,Hx  .l  " ЁrЁ/ N    PO/ N    PO%@ `  r+A 6 , $lV䀰or-AB , $lV䀐-@` r-Ar -A , $lV".ؒ-AHx,Hx  ." Ё/ N    PO/ N    PO%@ p    ^D -@B n0( HЀ" ЁҁЁA   -p Hx /.N    PO n   n   n   n.(   (  n 9  (   (  n.  ? n .C    "q 0) (   ( Jg$ n  n  n1n HUN    ` n1n HUN  
&XO .Ю5@ `DB JB 6%| B@ 'l  HTN    XO* S*   mHj N    XO&m ."f VL< N^NuNVH8 n 0( HЀ" ЁҁЁ    *@(m &m .( p 0+ Ї   c,  fHy  N    XO0<G7@ 
,  g    r`
    7@     ,,  g    r`
     E    @ F |   n ~Ϩ " n ~ "p L8N^NuNVH<*n -m /.N  JXO 
    rN    A    (p  n( ~`g| @ /.N  JXO n|  ~Ϭ ",, 6f$0l /Hy  N    PO/.N  JXO` -l . n-h fHy  N    XO n0( ~΀rmHy  N    XO$m  " DЁ    &@7j  0+   g n    f'h  ` n ( r 2* '@ rf(0+   g0+ |Dg/.N  JXO`  |'| B@ p * -@ n    f|     0f
0+   f$   f n/( $/Hy  N    O B7n Jg L   "g @   g
   1f/.N  zXO n'h  ` 0   #f n~` rfR J    Jl,R ` HHJo " Ё    g/. n/( $/Hy  7N    O  n~`  R `  "ށ    f   n ( (   g  g.  g&   g`f n ( ѫ `X n (  `JB `D n ( $lV'@ `:`8Hy  UN    XO` S|b@0; N \dB 6~ "J g
HTN    `HTN  XOp L<N^NuNV.*|    J- g(/- N  JXOJg m (  gHUa vXOp`K    4ep *nN^NuNVH< *n (m .&l 0+ r-@" DЁ    $@ - "  gPB J)k  'j  (HSN    XO* S*   mHj N    XO+l  .J g,B J .f+L .`J g+l  .B  m 2!L +L 2J .gHUa XOp L< N^NuNVH<. ~A    00 HA    *p . " DЁ    (@. A    00 HЀ" ЁҁЁ    &@$k  B@ gHU J j>. / Hy  \N    PO)| B@ N    . |  HSa XO/N    XO    6f N    .  - "  f   k (  f  -k Hx HRN    PO      *  * 	  9  *   * . rA     p 0( *   *     -J n( g 
   r` .   -@ n nn p 0.-@ n@  nn  n|  r "/N    XO 9    / /. HzN    p L<N^NuNVH0*n 0- ~. " DЁ    (@0- rA    00 HЀ" ЁҁЁA   "p "ށ    fP - $lV䀰 l - $lVr 2) )@ )l  `2 - $lVr 2) Ё)@  , S)@ ` - $lV)@ p L0N^NuNVH  n ~
(  f,<   "9    SJnSfp (  VD L N^NuNVH  n ~(  g,<   "9    SJnSf(    r JWD L N^NuNV   n    o!|   N^NuNV/. 0n 
/N  PO-@f4/. HzHx 0n 
/. r" Ё    / HzFN    N^NuNV/. 0n 
/N  PO-@fF n  P   op`2/. HzXB0n 
/. r" Ё    / HzN    N^NuNVH . ~΀|l A    "p ,	gJi  fp`8"Dށ    *G n  ( l  jV+@ R+@ p L N^NuNVH . ~-@" DЁ    *@ . mg@mg  p`  -n  n0H~b@0; N               n.( r-A`~ n-h JoJnp`  Sk   n0HA  -p /.p ./  ./ 0n 
/a nO Jf nP gP fm  fp`:0-   g`,-n  n1m   n1m   n!m   n0 	p L N^Nu    @(#)xt.c 1.29 89/04/18          
&    n     x      {                               !            	       xtprobe: no iopb space
 xtc%d: unknown controller type
 xtc%d: self test error %x
 xtc%d: WARNING: 20 bit addresses
 xt%d: not online
 xt%d: no write ring
 xt: attempting reset
 xt%d: bad command synchronization
 xt: exceeded 20 bit address xt%d: stray interrupt
 xtintr: queuing error xtintr: queueing error 2 xt%d: soft error bn=%d
 xt%d: hard error bn=%d er=%x
 xtintr xt%d: lost interrupt
       xt xtc     "  @   :  IP   `  @     MP     }P     JP  4  P  H  pP  N  P  `  @  f  P    @    P    @    P    JP  L  @  R  P    P    bP    P    yP    @  :  @  @  
P  b  @  h  
P    dP    |P    @    @    @    @    @  (  @  B  @  h  @    @    @    @    @  &  @  .  @  4  P  >  @  V  JP  r  @    @    P    @  
  @  *  @  V  @    XP    >P    5P    ^P    @    >P    5P  $  ^P  .  -P  n  `P    P    YP    >P    5P    yP  B  @  N  ^P    yP    P    JP    @    @    P  	6  XP  	  /P  	  	P  	  /P  
n  P  &  	P  0  /P    	P    /P    JP     IP  @  @  p  yP    PP    @    1P  
  `P  
F  JP  
r  @  
x  oP  
  MP  .  @  8  JP  @  OP  H  mP  j  @    @    P    @    @    oP    @    oP    P  \  @    @    P    @  X   P  v  @  |  P    XP    @    oP  R  eP  \  @  v  JP    @    JP    P    1P  (  `P    bP    mP    P    bP    JP    @    P  "  >P  :  ^P  N  >P  |  IP    @    yP    MP  P  ^P  X  dP  j  |P    P    bP    JP    XP  h  }P    }P    @  8   P  D  BP  \  @     P    BP    yP    P  F  P    @     @     @      @   $  @   (  @   ,  @   4  @   8  yP   <  @   @  mP                                      &        /         8      8   B         K          R          X          a          i        q     h   y                                                                     x                                                                                       x                 &      @  0     `  9        =        F        O        W        `        i       s        }                                                                                                                        h  
                      "         (       3         ;        B         J        P       Y        d        i        r        z               4                                                          
&       J                       @       z       n                  
      x                 #        ,         2        7         ?       M        V        ^        b         j       r     L  {                                                                              $                                                      &                 "        ,         5         ?        I        Q_rxtbuf _nbuf _xtstrategy _rootvp _xtprobe _rootdev _xt_softc _desscan _peekc _imax _uprintf _printf _xtread _sccsid _xtslave _bclnlist _lbolt _rmalloc _qs _file _nproc _sum _xtcdriver _whichqs _avenrun _domainnamelen _hostnamelen _runin _freemem _xtminphys _blkclr _rate _dvmasize _xtintr _hostname _xtstart _tz _desfree _avefree _dumpvp _maxpgio _nchrdev _xtattach _boottime _panicstr _geterror _noproc _imin _physmem _biodone _saferss _maxslp _multprog _sleep _xtwait _fbobmemavail _avefree30 _boothowto _xtcommand _xtphys _xtclose _nfile _spl3 _xtdefdens _simple _nscan _physio _tick _xttimer _procNPROC _phz _deficit _runout _bzero _xtctlrs _pidhash _selwait _DVMA _nblkdev ldivt _mbgo _xtgo _xtcsrvalid _forkstat _xtdefspeed _domainname _xtseteof _xtpoll _cxtbuf _xtutab _cnt _runrun _bufhash _minfree _splx _cpu _wakeup _recurse_flag _xttoxtc _maxmem _hz _mbdone _xtdone _xtwrite _fileNFILE _freeproc _proc _xtopen _wantin _xtcinfo _time _panic _iopbmap _total _kernelmap _lotsfree _dumplo _allproc _zombproc _bfreelist _xtioctl _xtdinfo _xtthrot _bufalloc _timeout _cpudelay _bufchain _curpri fR J    Jl,R ` HHJo " Ё    g/. n/( $/Hy  7N    O  n~`  R `  "ށ    f   n ( (   g  g.  g&   g`f n ( ѫ `X n (  `JB `D n ( $lV'@ `:`8Hy  UN    XO` S|b@0; N \dB 6~ "J g
HTN    `HTN  XOp L<N^NuNV.*|    J- g(/- N  JXOJg m (  gHUa vXOp`K    4ep *nN^NuNVH< *n (m .&l 0+ r-@./share/sys/sun2/OBJ/xy.o                                                                              444       0      12        53067  4424712454  10265                                                                                                                                                                                                                                                                                                                                                                         3H                 NVH0*n "
    +n  (m Hl N    XOJf  HTN  $XOJf/. Hy  4N    POp ` \ g|  .<   "9    SJn gf,  gp ` *B.<   "9    SJnB, .<   "9    SJnJfJ, gp `  Hx /9    N    PO+@ &J &f/. Hy  5N    POp `  /- &N  $XO+M "BBBBBBHxBHm "N  O $@f m &p (   ~g/. Hy  5&N    POp `TBBBBBBHxHx Hm "N  O $@g/. Hy  5JN    POp `,  g -   -  pL0N^NuNVH0 *n B`$ .Ѐ" ЁЁA    0  gR .    m .    m"0m /Hy  5bN    POHy  5iN    XO(n"    BHTHUN  `L0 N^NuNVH8 *n (n      rJN    A    &p J g(,  f0k /Hy  5}N    PO k  h  `,  g0k /Hy  5N    POm ? fBr-A`0- H-@-@-n`b   lb .J g . t (   f6Hx /. BB/.BHxHx Hl "N  O $Jf
;n p`R .op L8 N^NuNV.*n BHUN  POp *nN^NuNVH< *n 0- HЀ" ЁЁ    (@0- HЀ" ЁЁ    &@B+  f  9     @  / N    XO-@Hx /9    N    PO'@ ./.N    XOJ .f0m /Hy  5N    PO`  +   9    R    Jf/9    BHz+N    O 0- H) 'M 'm $ Hx @N    XO&Hx &N    XO'@ Hx DN    XO'@ 
Hx D/+ 
N    POHx N    XO'@ /+ .N  $XO'L * -    g ,   9     @  / N    XO-@Hx /9    N    PO$@/.N    XO"
f0m /Hy  5N    PO`  +  HSN  XOB+ `  BjHx /. Hx B0m / 
    / HxHx Hk *N  O $JfBHR0m /N  POJg.HR0m /HSN  tO /. HSN  	POJfr-A`R+ +  e vJg  B/. Hx  k p 0 k r 2( Ё k r 2( N    S k r 2( 
N    / 0m / 
    / HxHx Hk *N  O $JgD     rRN    / Hy  5N    POB . k 1R   ~l>` k 0< "J Q`*     rRN    / Hy  6$N    POHSN  XO 9     @  / N    XO-@/
Hx /9    N    O /.N    XOL< N^NuNV.*n Hx HUN    PO         9  4-   - p *nN^NuNV n B(      ( p N^NuNVH *n Hx @/N    POHx &/- N    PO m 1|  "m 2  m 1|  
~   m 1Rr~mp L N^NuNV.*n mھgp `&HUN  HXOJf/. Hy  6@N    POp `p*nN^NuNV. n ~ 2< `0GQJGgp `p..N^NuNVH0 *n (n HT/. Hy  6UN     m 0 m 1l  m Bh  m 1l  m 1l 
 m 1l  m 1l  m 1l  m Jh f m 0(  m P m 1@ BA . ."@#h  "R   m m Jh m\ m p 0( -@o m p 0( 
br-A m p 0( 
" DЁ".N     m 2( HA    ! p L0 N^NuNVH<*n  m 0( HЀ" ЁЁ    (@$m B .-t g  g   n(   g  ( - f  &h p 0r 2* Ёr 2t 4+ ҂f0* k f0* 
k 
g p - /  .    rRN    /  
    rRN    / Hy  6aN    O Hy  6N    XOp`  R   m 8p 0r 2* Ёr 2* dp 0r 2* Ёr 2* N    `0*  r 2* 
N    S-@B/. B/  m 0( H/ BHxHx Hm *N  O $Jg$ 
    rRN    / Hy  6N    POp`p L<N^NuNV"n  i    p N^NuNVH<*n  - 4~g* - 4~g  - 4~f&m &E "  B ` ~  - ЇrJlDD`(u ,g , <|g , <|g
 , <|gR|m|l   - ЇRrJlDD`+@ &l .E *  B -  f   *   f~| `p - ІrJlDD`(u "gN , <   gD , <  g: , <  f0 , <  f& l .     @1@ &l .  )J 2E *RpSm.g*+J +y  4  
    rJN    / /- HSN  p L<N^NuNVH8*n (m  U&h +  g@+ HSN  $XOJf.     rJN    / Hy  6N    POHy  6N    XO+  g|  HSN  $XO+ ~`g| @ HSN  $XO         rJN    / HSHTN  O ,<H "9    SJnH`N+ HSN  $XOJf       rJN    / Hy  6N    POHy  6N    XO`  +  f+  g,   f  | & `f+  g,| @ HSN  $XO,  gJ, f@  | + `2+  g*| @ HSN  $XO,  gJ, f  | * p L8N^NuNVH8 *n (m  .  U&p B    $f `r Hx HUN    PO -    f . (   +@ B- B- 
B- n  ;n  ;n  $+n  ;n " "+n  B- & -   
g"gB+ #HTa 4XOp 0. ,   , n  "gp + ,?   툁, `,? . ,   , J gb k 0(  k  
"  . N    9@  k r 2( 
 . N     k r 2( N    @  k r 2( 
 . N    @ `B, B, p    9@ 9n " 
B@9n   U(  g .    r` .    9@ J $f*HUa XOHzHUN  PO-@nrí  .`  HUa XO UJ f/a XO    $fb`r  Hx HUN    PO -   g - r-@rí  -   grí HUN    `"gA *f
HSN  XOJgp`p L8 N^NuNVH< *n (n -U&m p -  n$p +  g p + / N  XO-@"
g  *   f-m B`  j 2( 0+ r + Ё j r 2( 
N    r + Ё-@ -@ -   
g0%n  nP "p +   Hr + A5@ $`BB nJ( g +     g+     f 6p + / p + / p 0+ / /* N    O -@m  -   g0 j 0( H/ Hy  6N    PO/.Hy  7N    PO`  .r	ѭ  .ѭ 0.m " j p 0 j r 2( Ё j r 2( N    S j r 2( 
N    S-@+@ r@ 09  4   gP -   	fFp + / p + / p 0+ /  j 0( H/ Hy  7%N    O /.Hy  7?N    POr-A` z -   
g|  & np (   3d-@ @- R- dn09  4  gB -   	f8 n(  g,/./( Hy  7P0m $/p +   / HRN  O  -   f Z-m p 0- "-@`  n- 
R- 
( dn09  4  g: -   	f0/. n/( Hy  7V0m $/p +   / HRN  O B- BB+  +  B+      ` X n- R- ( d  09  4  g: -   	f0/. n/( Hy  7^0m $/p +   / HRN  O B- 
B-  n h p ( -@ n/( N  $XOJf0 .    rJN    / Hy  7dN    POHy  7lN    XO -   g -m r-A` 09  4  g: -   	f0/. n/( Hy  70m $/p +   / HRN  O  n(  fL"
gH*   g@*   j Jh m j 0( HA    B  j 0( H/ Hy  7N    PO n(  f< -   f2BB+  +  B+ ?      |  &`  n(  fV n h p ( -@ n/( N  $XOJf0 .    rJN    / Hy  7N    POHy  7N    XO -   
g|  #p`  -   
g|  &|  #09  4  g: -   	f0/. n/( Hy  70m $/p +   / HRN  O  -   gNp 0- +   + m   -   g-m r-A`-m p 0- "-@ `p -   g,    R -m Sm "p 0- "-@rí Jn:J- &g. -   
gJ* #f -   g|  #`|  #p`  p `  Job j 0(  j  
"  .N    7@  j r 2( 
 .N     j r 2( N    @  j r 2( 
 .N    @ `B+ B+ p    7@ 7n 
- +   +  - @7@  n(  g -    r` -    7@ HSa XOHUNXOpL< N^NuNV.  |  3|`gPH f N^NuNV  n gH0. rJ@lD@AD@`AHraЁ/ 0. HrJlDD`/ Hy  7N    O `4J g  n  h 0( H/ Hy  7N    PO`Hy  7N    XO/. /. p . A  4/0 Hy  7N    O n gbJ g\0. rJ@lD@AD@`AH @"n  "i r 2) 
N     n  h r 2( N    ". /Hy  7N    PO/. Hy  7N    POp N^NuNVH0*n (n .
      ,    g /. Hy  7N    POHy  8N    XO @ ,<   "9    SJnp , "gJ @ ,<   "9    SJnp , "g /. Hy  8N    POHy  8$N    XO< @ ,<   "9    SJnp , r gN< @ ,<   "9    SJnp ,    g /. Hy  8AN    POHy  8IN    XO|  ,<   "9    SJn,    fV-   fP|  ,<   "9    SJn,    f(-   f"/. Hy  8fN    POHy  8nN    XOp L0N^NuNVH0 0. 
HrJlDD`-@찹    l *@"
    -   f n 9     @  / N    XO-@(|    ` 8  4tf *0, Hf l ? fB 9    S-@`0, H-@-@-n .n  Ѐ" ЁЁ    -@ @(   g  Hx / HTa O Jg  Jl  fj9|   9n  .A    )p  $ l $)h  ( l $)h  
 .A    ! Jl g       l9y    R    `9| 0l /0l /0l /Hy  8N    O Hx HTa HPO`R` I LJf /.N    XO-   gV0. 
rJ@lD@AD@`AH UJn20. 
H   " ЁA       f0.   gp `pL0 N^NuNV0. 
HrJlDD`    lX0. 
HrJlDD`Ѐ" ЁЁ    -@0. 
rJ@lD@AD@`AH nА-@(   fp` n ( N^NuNVH<*n 0-    .     l އ"ށށ    (G0- rJ@lD@AD@`AHД&@-m $,   g   . n  J g   f
+m  (`   l 0( 
 l  "  .N    Г l r 2( Ё+@ ( l p 0 (cb$l E ,BHU l /( (N    O  l  (  @  / N    XO, HUHRN    PO , <   f
HTN  XO/N    `~HUN    XOL<N^NuNVH8*n  m >( pF     - r,Ё(@&l "g4JGmp    HA    Rx )K ~+G </- N    XOp L8N^NuNVH< *n 0- HЀ" ЁЁ    (@$m 0"
f"0m /Hy  8N    POHy  8N    XO0*    2- Hg"0m /Hy  8N    POHy  8N    XO-m H0* rJ@lD@AD@`AHД&@ *   j  -@ +  $o .` +  $-@r	"* )A &    g=| `=| -j $ l r 2(  N     l r 2( 
N    Ѯ .r	Ю   o. l *(  f"0m /Hy  8N    POHy  8N    XO .r	Ю   o"0m /Hy  8N    POHy  8N    XO0- H-@mLp2.㠁     .A    R     g .A    R  . @     * ѐBHx /./.0m //.0*    / p 0./ Hl *a Tp L< N^NuNVH ~ *|    `4-   g(/- N  $XOJg m (  g~HUN  "XOK J 9    Ѐ" ЁЁ    e L N^NuNVH< *n B.-m  n(  f
/N  $XO n|  /.N  $XOJ g  n(  g| +` n(  g| *`J.g` n| @ (m ` l (  f(l "f"f,(m `" l    l n  l    (l "f/.N  $XO(m `   l (   g  p , $u "
g%y  4  j p2( F    HzfHTa (PO-@n   ,   g&rì fr r HTN    `Xrì l  gl  f"f j  h 0r/* N    XO ,   grì HTN    `HRa *XO&l B (K"f B B HUa XOp L< N^NuNVH  n ~(  f,<   "9    SJnSfp (  VD L N^NuNVH  n .<  '(  g,<   "9    SJnSf(    r JWD L N^NuNVH00. 
HrJlDD`. Ѐ" ЁЁ    *@    mp`$(m 
/. Hy    Hx 0n 
/HTHzN    L0N^NuNVH00. 
HrJlDD`. Ѐ" ЁЁ    *@    mp`"(m 
/. Hy    B0n 
/HTHz\N    L0N^NuNVH0 *n I ,-l  n)h   , fB 0- HЀ" ЁЁ @   &"n#P (/.N    XOB p L0 N^NuNVH0 0. 
HrJlDD`Ѐ" ЁЁ    *@0. 
rJ@lD@AD@`AHЕ(@BBB-m 
 . Ar
\f A0;N tN$2d 6 ^-n  m /( N    XO n  n"m 1i   n1|   n1|  ` r-n Hx /9  4/.N    O  n1|   n1|   n"m 1i   m /( N    XO n!@  n"m !i   n"m !i   m J g n"m "i !i  "` nB "Hx /9  4 .r&Ё/ N     n"m 1i  6 n"m 1i  8` -n  nm   m  (  @  / N    XO-@BHx BB m 0( H/ Bp . / Hx	 Hm *a O $-@ m .0( @  n0 n"m .0) 
H1@  n"m .0) 
@ /.N    XOJg p` -n  m  (  @  / N    XO-@ nh  Hx HUa PO-@/.N    XOJg p`  m "n 0< "Q2`  m  (  @  / N    XO-@ n "m 0< "Q2Hx HUa PO-@/.N    XOJg .p` * n !l   `  m  (  @  / N    XO-@ n )h  (/.N    XO` B . @ ."@ #h  "R   l ` m  (  @  / N    XO-@B . @  ."@#h  "R   l p`-n Hx  n//- N    -@` <-n  m  (  @  / N    XO-@Hx /-  n/N    O -@/.N    XO .` -n |  np 0   gD   g8   g     g     g>   gL  g Jr-A` B. n ( 
r	㠰 g `r-A`  nJ g Jr-A`  nJ f6 (  m r 2( 
N    Jf n ( 
 m r 2( 
N    Jg  r-A` hB. m  (  @  / N    XO-@Hx Hx BB m 0( H/ Bp . / Hx	 Hm *a O $-@ m .0(    -@/.N    XOJg
r-A`  n (  m r 2( 
N    Jf n ( ".偰gBr-A` B. n (  m r 2( 
N    Jf n    g
r-A` t n    cp`  nJ g N    -@` nr@Hx /.N    PO n   f/.N    XO nr  n"n!i    n"n!i   n!x;$ , x;$     0. fp`p/ Hx  n/( /(   x;$/( N    O -@g$p .rf .-@` r-A` /.N    XOJmB/. m /( (N    O -@-@ n (    g n  n (   g n  n (   g n  m  (  @  / N    XO-@/.Hx  n/( 
/(  m 0( H/ /.p . /  np 0/ Hm *a &O $-@r-A/.N    XOJgr-A nJ g  Hn m /( (N    POJf2. fp`p/ Hx  n/( /(   x;$/( N    O N     x;$ 0 n   g
/N    XO/.N    XO nrÐJf,Jg& n (   gB |  " n;P $|  # .`l-n  n!m   nm "  n0 $ nm # `<p`:@@dz@:d~@&d@
d@dt@d@d|@d{&ddwdd}dydxp L0 N^NuNVH8 R  4&|    ` r+   g d     rJN    A     p  (  @  / N    XO-@J g B(k `<p ,  T*p "
gJ fR` m p 0, " 
  RѮ(l "f 9  4萫 ".偰m  B(k `D l (   f4 k (  gr-A`( l    l | &  l    `(l "fJfb"fV k (  fR k p ( -@/+ a XOJf.     rJN    / Hy  9
N    POHy  9N    XOHSa pXO/.N    XOG J 9    Ѐ" ЁЁ    e t*|    `z-   gn m  (  @  / N    XO-@ 9  4萭 rm6 - <   f,BHx BB m 0( H/ BHxHx Hm *a ܪO $/.N    XOK R 9    Ѐ" ЁЁ    e j/9    BHzN    p L8 N^NuNVH0 0. 
HrJlDD`Ѐ" ЁЁ    *@0. 
rJ@lD@AD@`AHЕ(@ m 0( H-@-   fp`   .  l
Ю  op`l m p 0( Д m r 2( N     m r 2( 
N    Ѯ BB/. /. /. .     / p . / Hx Hm *a v-@gp`p L0 N^Nu    @(#)xy.c 1.92 89/02/13 SMI                         90    9?    9O     9_   9j   9{    9    9!    9    9   9&    9*    9+    :    :%    :,	    :=
    :O    :e    :y    :    :
    :    :    :    :    :    ;   ;     ;,    ;<        x     &   "\     ;J      ;M          >  ;Q  ;U  ;[  ;`  ;n  ;{  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;      xyc%d: controller reset failed
 xyc%d: no iopb space
 xyc%d: unsupported controller type
 xyc%d: self test error
 xy%d:  io address mismatch xyc%d: WARNING: 20 bit addresses
 xyc%d: WARNING: 24 bit addresses
 xy%d: no space for unit iopb
 xy%d: no space for disk label
 xy%d: unable to read bad sector info
 xy%d: unable to read label
 xy%d: corrupt label
 xy%d: <%s>
 xy%d and xy%d are of same type (%d)  with different geometries
 xy%d: initialization failed
 xyc%d:  controller reset failed xyc%d:  controller reset failed xy%d: recursive mapping --  block #%d
 xy%d: forwarding %d/%d/%d  to alt blk #%d
 retry restore reset xyc%d:  controller reset failed failed xy%d: offline
 xyc%d:  controller reset failed fixed xy%d%c:  xy%d:  xy:  %s %s (%s) --  blk #%d,  abs blk #%d
 xyc%d:  regs accessed while busy xyc%d:  iopboff[0] double miscompare xyc%d:  iopboff[1] double miscompare xyc%d:  csr double miscompare xy%d at xyc%d slave %d
 xy%d:  queueing error 1 xy%d:  queueing error 2 xy%d:  exceeded 20 bit address xy%d:  exceeded 24 bit address xyc%d:  controller reset failed       spurious error drive not ready fixed ecc error seek retry header not found hard ecc error drive fault operation timeout disk sequencer error memory addr error cylinder & head header error lost interrupt hard error double hard error write protect error drive seek error sector slip error last sector too small illegal sector size interrupt pending busy conflict cylinder addr error sector addr error unimplemented command zero sector count self test error a self test error b self test error c soft ecc error head addr error unknown error xy xyc nop write read write headers read headers seek drive reset format read all read status write all set drive size self test reserved buffer load buffer dump          eP   .  P   >  @   N  @   T  
P   r  P     P     P     P     P     @     
P  
  @  ,  @  V  @  \  
P    @    @    
P    eP     oP    oP    @     
P  (  @  .  P  F  eP  R  @  t  eP  |  [P    P    @    
P    @    
P  H  @    @    eP    /P    P    jP    P    P    lP  0  @  6  
P  H  P  N  P  X  sP  d  P    P    P    P    SP    P    @    P     jP    P    P  $  lP  6  @  <  
P  P  @  z  YP    @    @    @    @    P  .  P  >  YP  R  @  b  /P  j  [P  r  @  x  
P    /P    [P    @    
P    @    P    jP     P    .P    lP  6  SP  Z  @    SP    SP    @  .  @  4  
P    @    
P  	~  kP  	  0P  	  eP  
L  /P  
T  [P  
^  /P  
f  [P  
n  @  
t  
P  
~  @  
  
P  
  P  
  P    @     /P  (  [P  0  @  6  
P    YP    @    eP    [P    @  
  @  
&  eP  
.  [P  
6  @  
<  
P  
D  @  
J  P  
b  @  
|  @  
  eP  
  [P  
  @  
  P  
  @  
  eP  
  [P  
  @  
  
P  
  @     P  B  @  v  @    ?P    kP    kP    MP    MP  `  @    ?P    qP    @  P  @    P  2  pP  Z  @  `  
P  l  @  r  
P    P    P    @    @  $  
P  2  @  8  
P  f  @  ~  @    @    @    @     @  :  @    @    @    @    @    eP     [P    @    
P    @    P  @  @  b  @  |  @    0P    @    
P  L  @  \  eP  d  [P  l  @  r  
P  z  @    P    @    @    @    kP    kP    MP    MP    @    @    
P  4  @  :  
P  D  @  J  
P  b  @  l  @  r  
P    P    P    @    
P    @    
P    YP  ,  @  2  
P  :  @  @  P  V  P    P    @    
P    @    P    P    P    @     
P  (  @  .  P  B  P  p  P    @    
P    @    P    9P    /P  
  P    lP  $  P  .  @  R  oP    eP    P    P  
  P    P    P  :  @  @  
P  n  lP    \P    @    9P  (  /P    9P    /P  
  kP  D  uP  ^  lP  l  DP    @    lP    ;P    P    P    JP     4P   8  /P   N  @   T  
P   \  @   b  P     @     
P     @     P  !4  P  !D  P  !t  @  !z  
P  !  @  !  P  !  @  !  
P  !  @  !  P  !  P  !  EP  !  >P  "  P  "h  eP  "|  @  "  @  "  oP  "  eP  "  @  #  @  #  @  #  @  #  P  $"  qP  $Z  P  $t  qP  $  P  %  P  %r  /P  %z  9P  %  iP  %  KP  %  /P  %  9P  %  iP  &  KP  &d  /P  &v  ;P  &  /P  '8  P  'v  @  '  (P  '  P  (
  @  (  (P  (`  lP  (  lP  )  lP  ).  lP  )l  lP  )  lP  )  lP  )  lP  *B  lP  *  tP  *  lP  *  P  *  lP  +  MP  +  MP  +  lP  ,@  lP  ,j  MP  ,  MP  ,  IP  -  ?P  -  lP  -  AP  -  FP  -  #P  .6  lP  .  lP  .  ~P  .  AP  .  IP  /  qP  /*  lP  /  @  /  eP  0  eP  0  [P  0  P  02  lP  0  @  1,  eP  14  [P  1<  @  1B  
P  1J  @  1P  P  1d  lP  1p  oP  1  eP  1  /P  1  lP  1  @  2  lP  2  9P  2"  /P  2.  sP  2:  P  2x  /P  2  P  2  P  3  YP   8  @   @  @   H  @   P  @   X  @   `  @   h  @   p  @   x  @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @     @    @    @    @     @  (  @  ,  @  0  @  4  @  8  @  <  @  @  @  H  @  L  P  P  @  T  P  `  @  d  @  h  @  l  @  p  @  t  @  x  @  |  @    @    @    @    @    @    @    @    @            
     j                 &   '         0        :          C          J          S        \          d     3H   l     L   v                                                             h                  &         4                                                                        4                  &        3        :         C       K       V     /  _     3|  i         r       {              @                                                         $                                                                   
              4       %B  '        0         7     v  B         L        Z        e         o        x                      2J                                                                                                          "       x           	                         !         '         /     `  :     $  F       P       Y      @  e       o     	  x     4t                                                                                   $                                                                    t       3d          $        .        4     H  >       F        N         W        ]        g         n        w                                                             "\       %                4                                             	                         #        +_nbuf _xystrategy _rootvp _xyioctl _rootdev _doattach _xydinfo _peekc _mbdinit _islabel _printf _sccsid _xyasynch _bclnlist _lbolt _kmem_alloc _rmalloc _qs _cp_time _xychain _mbudone _xydone _xycmdnames _file _nproc _SPLMB _xyprobe _whichqs _xyopen ulmult _xyerrlvl _avenrun _domainnamelen _hostnamelen _runin _mbsetup _xyexec _initlabel _xywatch _xyerrors _strncpy _xyslave _dvmasize _hostname _dk_time _tz _rmfree _xyunits _dk_bps _dumpvp _initiopb _nchrdev _mbugo _boottime _panicstr _noproc _xysynch _nxy _physmem _biodone _xythrottle _xyread _dk_read _sleep _cleariopb _as_fault _fbobmemavail _boothowto _disksort _dk_xfer _buscheck _nfile _xydump _spl6 _dk_seek _physio _tick ulmodt _procNPROC _phz _tk_nout _runout _xyrecover _bzero _xygo _xyintr _xyattach _pidhash _selwait _DVMA _nblkdev ldivt _cdevsw _findslave _xycsrvalid _printerr _finderr _domainname _xyustart _usegeom _xycdriver _xyctlrs _tk_nin _runrun _bufhash _minphys _splr uldivt _splx _cpu _xywait _nxyc _isbad _wakeup _maxmem _hz _copyout _mbpresetup _uselabel _xyerracts _fileNFILE _freeproc _proc _ck_cksum _xysize _wantin _mbrelse _time _xywstart _panic _iopbmap _kernelmap _dumplo _allproc _zombproc _dkn _bfreelist _dk_busy _xypoll _xywrite _getdevaddr _xyticks _bufalloc _timeout _xycmd _cpudelay _xycinfo _copyin _bufchain _curpri _dk_wds   g n  m  (  @  / N    XO-@/.Hx  n/( 
/(  m 0( H/ /.p . /  np 0/ Hm *a &O $-@r-A/.N    XOJgr-A nJ g  Hn m /( (N    POJf2. fp`p/ Hx  n/( /(   x;$/( N    O N     x;$ 0 n   g
/N    XO/.N    XO nrÐJf,Jg& n (   gB |  " n;P $|  # .`l-n  n!m   nm "  n0 $ nm # `<p`:@@dz@:d~@&d@
d@dt@d@d|@d{&ddwdd}dydxp L0 ./share/sys/sun2/OBJ/zs_asm.o                                                                          444       0      12         1104  4424711257  11062                                                                                                                                                                                                                                                                                                                                                                                     l       H    /	/ y    "h  //   g   0@ @HP p  N _"h  8LR   NsNz <   N{  <   y    09    x  y    f N{Nu09       g  <Nz <   N{  <y    09    x  y    f N{ <   Nu"o  BNqNqNqNu"o  NqNqNqNqNq Nu  @(#)zs_asm.s 1.17 88/06/08           P   B  P   ^  P   d  P   p  P     P     P     P     P         ~         H            %          .         7          ?          D          N         X_clrzssoft _setzssoft ZSSOFTMASK zslevel6 _zszread _zscurr _cnt enablereg _zszwrite   P  >  YP  R  @  b  /P  j  [P  r  @  x  
P    /P    [P    @    
P    @    P    jP     P    .P    lP  6  SP  Z  @    SP    SP    @  .  @  4  
P    @    
P  	~  kP  	  0P  	  eP  
L  /P  
T  [P  
^  /P  
f  [P  
n  @  
t  
P  
~  @  
  
P  
  P  
  P    @     /P  (  [P  0  @  6  
P    YP    @    eP    [P    @  
  @  
&  eP  
.  [P  
6  @  
<  
P  
D  @  
J  P./share/sys/sun2/OBJ/zs_async.o                                                                        444       0      12        27517  4424712502  11451                                                                                                                                                                                                                                                                                                                                                                         (  (      0      H   NVH0*n 0- H" ЁЁ    (@)M 
0- A    J0  g~  y (~  y ,| 0- H* rl R`rlp ` S* gfBHx `J  rg
 ,   fBBHTN  p L0N^NuNV.. r" ЁЁ    *@J 
fp`n-m 
Hx  n/( N    PO-@Hx 
 n/( N    POခB .A  N00   f .`R   mp
*nN^NuNVH0*n . ~΀rl"ށށ    (G-l 
fp` 6N    -@ n!L Hy  /.N    PO/.N    XOJ  gB  /9  nBHzN    O N    -@   f  N    B, GB, FBl @N    0. y    gy    f0n /a XO-@`~
-GB  .r㠀 @)@ B ,Bl $Bl &Bl (Bl *9n  A    C 0#h  "HTN  jXO`@ ,    g x;$ h DJh f.  g    f/.N    XO ;p`  BHx HTN  O .  g~`$ ,   fHx BHTN  O   g~0.   fT ,   fJ   g   g`.  fX~HxHTN    POJg ~ϔ ;/.N    XOp`T   g.  f ;/.N    XOp`./.N    XO)M A $)H +L 8+L ~ϔ~0. HL0N^NuNVH8 *n (m "g 09    l f09    y    gN    N    -@&l 
   f`< ,   g  BHx `  Jl Ln
    gHxHy    N    POJgN    +  #g +  #p + #/ Hx /+ N    O rÔBl LN    0, y    gR0, y    gF rrf
 ,   
g0J  rf RBBHTN  O HxHy    N    POJf4 rf,N    +  p + / Hx /+ N    O N    BHl N    XOA    C 0#h  "HTN    XO/.N    XOB 8B p L8 N^NuNVH8*n (n &m  l p ( 
   b A r	Tf A0;N        .\Hk 0N    XOHTN    XO` N    . Hk 0N    XOJg( + 0  gBk LJk Lo
HSN  p`HSN  XO/N    XOHTN    XO` n l  Tg Tg"T
g"Tg  TfHTHUN    POHSN  XO` &HTHUHSN  `  l  g8N    .    gBk LN    BHUN    PO/N    XO l   l   g  N    . BHmN    PO/N    XOHTHUN    PO`  N    . k " NHSN  XO/N    XOHTN    XO`hN    . k # NHSN  XO/N    XOHTN    XO`: l p ~g~gHTN    XO`    ``䌋
 p L8N^NuNVH0  . " ЁЁ    *@-m g(m ,"gB ,HT/.HUN  p L0 N^NuNVH8*n  n J ,g/( ,N    XO n B ,(m HnHU/.  . ~Ї/ N    O . g$ n  h 
0( H/ HzPHx /N    ` tJf   TgxTgpTgh"T	g"T
g
"Tf  m /(  . ~0Ї/ N    POJg  n Jh Lo
/N  p`
/. N  XO/. N  jXO`  . ~Ї/  m /(  . ~0Ї/ N    O Jg  n Jh Lo
/N  p`
/. N  XO/. N  jXO` lJl dB tkg tlg tmg   Tg    t$g(  tzg D  t{g  @tjg ~-G`  n 09    h g 09    h f
N    `  n 0( ~~g0( ~~f
~-G`  n 0( H/ N    XO`  m  h Jf  n &h 
N    -@ +  #p + #/ Hx /+ N    O  9    lV/ /. HzN    O  n ~@/.N    XO` $ n &h 
N    -@ +  #p + #/ Hx /+ N    O /.N    XO`   n &h 
N    -@+  #p + #/ Hx /+ N    O /.N    XO`  B m  h /N  XO/ /. N  O `xHx  m  h /N  XO/ /. N  O `PHx  m  h /N  XO/ /. N  O `(Hx B/. N  O / N  ,XO m  h  Jg)n  m |  
HU/. N    POL8N^NuNV.. r  g   g    g   g   ..N^NuNV.. r  g  @ g    g   g   ..N^NuNVH0*n N    -@(m 
 - ~-@fBBHUN  O ` f~0- y    g0- y    g
 -   g|`| z@x , #        f4          @`v    @`0  @   `&    `` - v0gvgv gv0g -   g  -   g     -   	f   -   gp`p -   g   v , *r , +ցp , f:p , !f0p , "f&p , #f .A  N00   g 2    -|  `4SJo@/.N    XO$<  @"9    SJnN    -@Hx /, N    PO   gB, !p    / Hx /, N    O  l  t "9    SJn l  0t "9    SJn l h t "9    SJn l h t "9    SJn l h t "9    SJnG p / Hx /, N    O E "p / Hx /, N    O F !p / Hx /, N    O D #p / Hx /, N    O &.A  N608   | P )p , )/ Hx /, N    O |  ,p , ,/ Hx /, N    O C *p / Hx /, N    O C +   /Hx 
/, N    O |  ,p , ,/ Hx /, N    O Jm Lo
HUN  pXO/.N    XOL0N^NuNVH0 *n (m 
   g6N    -@,  #p , #/ Hx /, N    O /.N    XOrÕHUN  XOp L0 N^NuNVH<*n (m 
N    ,    f J- Ng4N     l  g z "9    SJn l m N B- N` x   f n&m .g d`  HRN    XO`   ,  #p , #/ Hx /, N    O  9    lV/ HUHzN    O ~@HRN    XO`  j p \/ HUHzN    O ~ HRN    XO`  HRHSHUa lO HSN    XO$@Jg   j p ( 
~g R~g~g - 0  f , *  . o  - 0  gHRHSN    PO`b+J -j $j *
gHRHSN    PON    +n H;G L l  g$z "9    SJn l "m HQ R HSm L    /N    XOL<N^NuNV.*n  m 
"h  g8p "9    SJnJ- Ngm N B- N`Jm Lo m HP R HSm L*nN^NuNVH  n *h 
`&  vl  /N    XOHx Hy    N    PON    * ~ - #    m  t "9    SJn m |(t "9    SJn, . xb*@0; N     .. ` ` . F΀``V(9     n & 8 F  g!D 8Ḟ f 2- } #< - #p - #/ Hx /- N    O /N    XO L N^NuNVH8*n (m &m  gnJ, Ng&~ "9    SJn    fHl N B, N`xJl Lo<~ "9    SJn    f , 0~f l HP R HSl L`< (`6~ "9    SJnRl D ( -  .J    f~#    N    p L8N^NuNVH8*n (m &m x "9    SJn, OG O  gp fjRl >x "9    SJn+ x "9    SJn 0x "9    SJn0, y    f" 9      gN   `/9 N    XORl DRl B -  .J    f~#    N    p L8N^NuNVH8*n (m &m + f,,  Og$B/- N    PO   f HUa XO` 
 ,   g@ , r$f6 f0p , Fr , G      d  p , F PR, F`dp / Hl 0N    PO-@. gBl L.  gJl LoHTa `HTa .XO. f2p , Fr , G      dp , FPR, F`|  ARl D   	fp , Fr , G   ~ e -  .J    f~#    N    p L8N^NuNVH8*n (m &m Hx /- N    PO z "9    SJn+ z "9    SJn g   ,   f   ,   gFp , Fr , G      dVp , F PR, Fp , FB4PR, Fp , FP`&p , Fr , G      dp , FB4PR, F`|  ARl DBl < -  .J    f|#    N     0z "9    SJn g&|  @Rl D -  .J    f~#    N    p L8N^NuNVH0 *n (m HTN  XOJgHx N  lXOp L0 N^NuNVH ~ *|    Jm Dg*Bm DN    , HUN  XOJgRm DRG/N    XOKP  eJGfJ f/9  nBHzN    p L N^NuNVH<*n  m 
(h Jm Bg  Bm B f -   f   g2   fHUN    XO~$m .
g  Hx /* N    PO`t   gh -   f^Hx Hx HUa `O N    -@   gBm LA    C 0#h  "/.N    XO$m .
gHx /* N    PO~ϕJm >g" fBm >$m .
gHx /* N    PO$m .
g  p - Fr - GA@ > o  G o~Hx 0H/ N    PO&@JgV/* N    XOJg.t - G k (PR- GR SGfHS/*  j  P PNPO`HRHm N    POHSN    XO- G`B- GB- FJm Ln"   g/- N    XOHUa XOJ- @g$   g0- ~/ Hy   N    POB- @J- Ag$   g0- ~/ Hy  N    POB- Ap - Fr - G   L<N^Nu  @(#)zs_async.c 1.71 89/04/18 SMI       rt  ~ S >                  8              T        z      p                  z      ;  B                                6       zs%d: silo overflow
 zs%d: ring buffer overflow
        zs ldterm ttcompat            PP   0  $P     @     @     PP     GP  
  GP  "  @  |  PP    JP    @    yP    WP    @    @    @    P    8P    JP    8P    dP    }P  p  @P    @    WP    @    @  J  1P  f  WP    WP    WP    *P    *P    dP     IP    8P  H  P  N  1P  Z  JP  ~  eP    8P    dP    }P    @    @    P    1P    JP    eP  "  8P  .  bP  6  P  J  \P  V  WP    <P    UP    JP    nP    @    @  $  WP  .  UP  l  P  v  @    @    JP    8P    jP    WP    8P    jP    WP    MP    JP     @  *  WP  4  UP  >  JP  N  @  X  WP  b  UP    UP    PP    @    UP  B  #P  j  qP    7P    @    @    @  	  OP  	4  @  	@  @  	L  @  	  *P  	  dP  	  IP  
  HP  
>  JP  
^  eP  
h  _P  
~  P  
  WP  
  JP  
  eP  
  WP  
  JP  
  eP    WP  0  @  >  @  X  @  f  @    @    @    @    @    MP  x  JP    @    dP    }P  
  @  
  WP    P    JP  (  GP  L  eP  `  P  x  P    P    P    P    eP    eP    eP  :  eP  J  @  p  eP    eP    eP    eP    eP    @    WP  :  JP  Z  eP  h  WP  v  @    8P    JP    P    UP  $  eP  .  _P  B  P  R  UP  p  P    UP    iP    P    P    JP  6  P  `  WP    P    @    WP    P    1P    JP     P  <  P    mP    eP    WP    P  :  P  v  P    P    P    
P    P    P    P  $  P  6  }P  >  4P  X  P  n  P  x  P  ~  
P    GP  *  ^P    P    P    
P    GP    P  $  P    P    P    
P    P    P     P  &  
P  J  @  Z  @  x  PP    6P    @    WP    PP    @    P  $  \P  B  {P  p  JP    P    WP    {P    {P    ZP  .  "P  n  -P  x  UP    |P    @    P    @    P   T  @   `  P   h  @   l  @   t  @   |  @     @     @     @     @     @     @     @     @     @     @     @     @            
               p        6   *        5        =         I         Q        \     T   d         m          u     (   }                                                                    ,                                                                                        @           !        %        -         5         F         Q        Z     r  f        p        z                                                                             J                                                            %     z  /        5         @        K        P        X         e       p         |                                                                         N                         @                       j                 !        +         4     n  =         C       K        P         X       c         k        s         ~                                    l                                                                                                              !         *        3        =       E       P       [       h     v  s         }     p                                                                               _nbuf _montrap _zsresume _zsa_softint _zsa_txint _zsstab _zssoftpend _rootvp _zsreioctl _zsopen _rootdev _printf _sccsid _setzssoft _bclnlist _lbolt _qs _zsstart _putbq _zswinit _zstodm _file _nproc _whichqs _fbdev _avenrun _domainnamelen _hostnamelen _runin _dvmasize _hostname _putq _tz _dumpvp _canput _ttycommon_ioctl _zssoftCAR _nchrdev _zsasoftdtr _boottime _panicstr _zsclose _consdev _noproc _zsmodlist _ttycommon_qfull _kbddevopen _consvp _physmem _sleep _nzs _fbobmemavail _boothowto _nfile _spl3 _flow_from_termios _spl5 _zsops_async _zsm_info _tick _flow_stop _procNPROC _phz _runout _flow_init_v _zsa_srint _zsa_attach _pidhash _selwait _zsrstrt _nblkdev _zszread _setcons _resetcons _splzs _zs_speeds _rconsvp _qreply _domainname _flow_from_termio _zsaline _zsparam _runrun _bufhash _mousedev _freemsg _zsticks _splx _zsmctl _cpu _allocb _zsa_xsint _wakeup _maxmem _flow_char _hz _zsioctl _zsrinit _ttycommon_close _zspoll _rconsdev _zszwrite _fileNFILE _freeproc _proc _getq _flushq _wantin _zsgetspeed _time _flow_start _iopbmap _dumplo _bufcall _allproc _zombproc _dmtozs _zsa_rxint _bfreelist _zsa_process _zsadtrlow _zsopinit _zswput _putctl _freeb _kbddev _bufalloc _timeout _cpudelay _flow_end_v _bufchain _curpri OHTN    XO`hN    . k # NHSN  XO/N    XOHTN    XO`: l p ~g~gHTN    XO`    ``䌋
 p L8N^NuNVH0  . " ЁЁ    *@-m g(m ,"g./share/sys/sun2/OBJ/zs_common.o                                                                       444       0      12        13371  4424712512  11616                                                                                                                                                                                                                                                                                                                                                                         
                 hNVH *n A-HN    HUN    XO. |fN    //. Hy  8N    ` &z "9    SJnHx HUN    POJgN    /. Hy  eN    PO` z "9    SJnHUN    XO. |fN    //. Hy  N    ` z "9    SJn|gN    //. Hy  N    ` v n!M A#    /9    N    XOJgN    /. Hy  N    PO` 0| Hx  n (    / N    PO   gxHx  n ( ~/ N    PO   gXB n (    / N    PO  g:B n ( / N    PO  g`>N    //. Hy  ,N    ` *<  >"9    SJn R  o HHx  n (    / N    PO=@Hx 
 n (    / N    POခnHx  n ( ~/ N    PO=@Hx 
 n ( / N    POခnHx Hx  n (    / N    O Hx Hx 
 n (    / N    O Hx Hx  n ( / N    O Hx %Hx 
 n ( / N    O Hx  n (    / N    PO. |f Hx 
 n (    / N    PO. |gN    //. Hy  ZN    ` Hx  n ( ~/ N    PO. |gN    //. Hy  N    `  Hx 
 n ( ~/ N    PO. |%gN    //. Hy  N    `  0n/Hx  n (    / N    O 0.H/ Hx 
 n (    / N    O 0n/Hx  n ( ~/ N    O 0.H/ Hx 
 n ( / N    O B    N    p`B    p L N^NuNVH8*n 0- H" ҁЁ    (@BnN    )m 
 BHx  ,    / N    PO   g  Hx  , ~/ N    PO   g  B ,    / N    PO  g  B , / N    PO  g  Hx  ,    / N    PO=@Hx 
 ,    / N    POခnHx  , ~/ N    PO=@Hx 
 , / N    POခn|  'p , '/ Hx 	/, N    O *<   "9    SJnB, '~ `.*<  >"9    SJn .R  o ` 2Jf - 
   )@ `I 0 - 
|)@ #  
0- HЇ9@ 0l     p | `$ A    &p  06H/ HT SNPOR A    J fR|m v| 	 'p , '/ Hx 	/, N    O Jng n  p ,  / Hx /, N    O *<   "9    SJnN    #  
    g(/- 0m /Hy  N    O Hy  N    XOp L8N^NuNVH *y  
| J gDHx  -    / N    POJg*#  
Hx /- N    PO   g(*y  
K`dK `  
c*|   0RFF m`v*y  
`@HU m  h NXO`RHU m  h NXO`BHU m  h NXO`2HU m  h NXO`"~b@0; N    #    -M p L N^NuNV"n  n " #h  #h   9    #|    #H p N^NuNV.N    Jg:B    *|    ` -   .g- .HU m  h NXOK 0  
cp`p *nN^NuNV.*n BHy  HUa `PO| F "p - "/ Hx /- N    O |  !p - !/ Hx /- N    O | P )p - )/ Hx /- N    O n  *p - */ Hx /- N    O  . @ +   / Hx 
/- N    O |  ,p - ,/ Hx /- N    O |  !p - !/ Hx /- N    O Jg| h #`|  #p - #/ Hx /- N    O |  ,p - ,/ Hx /- N    O m  gm  f|  -p - -/ Hx /- N     m  @p *nN^NuNV."n  i  (| "9    SJn | "9    SJn( | "9    SJn 0p ,.N^NuNV.*n 0m /Hy  
N    POp *nN^Nu      @(#)zs_common.c 4.58 89/03/17 Copyr 1985 Sun Micro     0              x          J     
(                      
*  
*  
*  
*  
  zsprobe on %d failed: sync read returned %d
 zsprobe on %d failed: control reg write lost
 zsprobe on %d failed: read on reg 15 returned %d
 zsprobe on %d failed: %d doesn't look like an SCC
 zsprobe on %d failed: caught a bus or parity error
 zsprobe on %d failed: reg 12 is %d (s.b. 17)
 zsprobe on %d failed: reg 13 is %d (s.b. 23)
 zsprobe on %d failed: reg 12 is %d (s.b. 29)
 zsprobe on %d failed: reg 12 is %d (s.b. 37)
 zs%d: priority %d
 bad zs priority zs%d: unexpected soft int
       zs           P     P   .  P   :  @   @  	P   L  ?P   `  P   l  P   v  @   |  	P     ?P     P     P     @     	P     ?P     P     @     	P    P    P    P    P  (  @  .  	P  N  )P  n  )P    )P    )P    P    @    	P    ?P    )P  &  )P  F  )P  b  )P    3P    3P    3P    3P    )P  "  )P  2  P  >  @  D  	P  `  )P  p  P  |  @    	P    )P    P    @    	P    3P    3P  *  3P  N  3P  X  P  ^  P  h  P    1P    P    )P    )P    )P    )P  0  )P  J  )P  f  )P  ~  )P    3P    ?P    ?P    @  ,  P  D  9P  h  9P    3P    3P    ?P    P    @    @    	P    @    6P  *  @  F  )P  R  @  `  )P  p  @    @    1P    @    P  4  /P  :  @  R  P  \  P  b  1P    @    @    3P    3P  	  3P  	2  3P  	V  3P  	v  3P  	  3P  	  3P  	  3P  
  3P  
@  ?P  
T  ?P  
h  ?P  
  @  
  	P   4  1P   8  1P   <  @   D  @   P  @   X  @   \  5P   n  @   r  @   v  @   z  @   ~  @     @            
     
            &         .     
   6         ?        N     x   X          _          g     
   o          z              
                                   
*                                                                             	                         $        ,        8        @        N        W     J  _        m        x                                                     
                                              @                                                            #         -         6       A       K        S        ]         g        q        y_nbuf _zsnull_softint _zssoftpend _rootvp _zslast _rootdev _zsnull_attach _zsattach _peekc _printf _sccsid _clrzssoft _bclnlist _zsdriver _fbdev _nofault _runin _zsnull_intr _zsNcurr _start_mon_clock _stop_mon_clock _dvmasize _pokec _dumpvp _zssoftCAR _nchrdev _setjmp _panicstr _consdev _noproc _kbddevopen _consvp _zslevel6intr _physmem _zsintr _fbobmemavail _boothowto _zsops_null _runout _selwait _nblkdev _zszread _rconsvp _zscurr _runrun _bufhash _mousedev _cpu _maxmem _zscom _rconsdev _zszwrite _wantin _zsinfo _panic _iopbmap _dumplo _zs_proto _zsprobe _bfreelist _zsopinit _kbddev _bufalloc _cpudelay _bufchain _curpri OB- @J- Ag$   g0- ~/ Hy  N    POB- Ap - Fr - G   L<N^Nu  @(#)zs_async.c 1.71 89/04/18 SMI       rt  ~ S >                  8              T        z      p                  z      ;  B                  ./share/sys/sun2/conf/                                                                                 775       0      12            0  4425704651   7645                                                                                                                                                                                                                                                                                                                                                                      ./share/sys/sun2/conf/DL                                                                               444       0      12         3616  4424742610  10152                                                                                                                                                                                                                                                                                                                                                                      #
# @(#)DL 1.7 89/03/27 SMI
#
# Diskless sun-2
#
machine		"sun2"
cpu		"SUN2_50"		# generic for machine type 2 (VMEbus)
cpu		"SUN2_120"		# generic for machine type 1 (Multibus)
ident		"DL"
maxusers	4
options		INET
options		NFSCLIENT
options		CRYPT			# Software encryption (if no DES chip)

config		vmunix		root on type nfs

pseudo-device	pty
pseudo-device	ether
pseudo-device	loop
pseudo-device	win128
pseudo-device	dtop4
pseudo-device	ms3
pseudo-device	kb3
pseudo-device	clone

# Streams NIT devices and modules
pseudo-device	snit
pseudo-device	pf
pseudo-device	nbuf

# connections for machine type 1 (SUN2_120)
controller	virtual 1 at nexus ?	# virtually addressed devices
controller	obmem 1 at nexus ?	# memory-like devices on the cpu board
controller	obio 1 at nexus ?	# I/O devices on the cpu board
controller	mbmem 1 at nexus ?	# Multibus memory space

# connections for machine type 2 (SUN2_50)
controller	virtual 2 at nexus ?	# virtual preset
controller	obmem 2 at nexus ?	# on board memory
controller	obio 2 at nexus ?	# on board io
controller	vme16 2 at nexus ?	# 16 bit address VMEbus (16 bit data)
controller	vme24 2 at nexus ?	# 24 bit address VMEbus (16 bit data)

#device		sky0 at mbio ? csr 0x2000 priority 2
#device		sky0 at vme16 ? csr 0x8000 priority 2 vector skyintr 0xb0
device		zs0 at obio 1 csr 0x2000 flags 3 priority 3
device		zs0 at obio 2 csr 0x7f2000 flags 3 priority 3
device		zs1 at obmem 1 csr 0x780000 flags 0x103 priority 3
device		zs1 at obio 2 csr 0x7f1800 flags 0x103 priority 3
device		ie0 at obio 2 csr 0x7f0800 priority 3
device		ie0 at mbmem ? csr 0x88000 priority 3
device		ec0 at mbmem ? csr 0xe0000 priority 3
device		bwtwo0 at obmem 1 csr 0x700000 priority 4
device		bwtwo0 at obio 2 csr 0x0 priority 4
device		bwone0 at mbmem ? csr 0xc0000 priority 3
device		pi0 at obio 1 csr 0x1800
#device		des0 at obio 1 csr 0x1000
#device		des0 at obio 2 csr 0x7f1000
device		tod0 at obio 1 csr 0x3800
28
pseudo-device	dtop4
pseudo-device	ms3
pseudo-device	kb3
pseudo-device	clone

# Streams NIT devices and modules
./share/sys/sun2/conf/DL120                                                                            444       0      12         2155  4424742611  10373                                                                                                                                                                                                                                                                                                                                                                      #
# @(#)DL120 1.9 89/03/27 SMI
#
# Diskless Model 120
#
machine		"sun2"
cpu		"SUN2_120"		# generic for machine type 1 (Multibus)
ident		"DL120"
maxusers	4
options		INET
options		NFSCLIENT
options		CRYPT			# Software encryption (if no DES chip)

config		vmunix		root on type nfs

pseudo-device	pty
pseudo-device	ether
pseudo-device	loop
pseudo-device	win128
pseudo-device	dtop1
pseudo-device	ms1
pseudo-device	kb1
pseudo-device	clone

# Streams NIT devices and modules
pseudo-device	snit
pseudo-device	pf
pseudo-device	nbuf

# connections for machine type 1 (SUN2_120)
controller	virtual 1 at nexus ?	# virtual preset
controller	obmem 1 at nexus ?	# on board memory
controller	obio 1 at nexus ?	# on board io
controller	mbmem 1 at nexus ?	# Multibus memory
controller	mbio 1 at nexus ?	# Multibus io

#device		sky0 at mbio ? csr 0x2000 priority 2
device		zs0 at obio 1 csr 0x2000 flags 3 priority 3
device		zs1 at obmem 1 csr 0x780000 flags 0x103 priority 3
device		ie0 at mbmem ? csr 0x88000 priority 3
device		ec0 at mbmem ? csr 0xe0000 priority 3
device		bwtwo0 at obmem 1 csr 0x700000 priority 4
device		tod0 at obio 1 csr 0x3800
xus ?	# 24 bit address VMEbus (16 bit data)

#device		sky0 at mbio ? csr 0x2000 priority 2
#device		sky0 at vme16 ? csr 0x8000 priority 2 vector skyintr 0xb0
device		zs0 at obio 1 csr 0x2000 flags 3 priority 3
device		zs0 at obio 2 csr 0x7f2000 flags 3 priority 3
device		zs1 at obmem 1 csr 0x780000 flags 0x103 priority 3
device		zs1 at obio 2 csr 0x7f1800 flags 0x103 priority 3
device		ie0 at obio 2 ./share/sys/sun2/conf/GENERIC                                                                          444       0      12        26153  4423622223  10744                                                                                                                                                                                                                                                                                                                                                                      #
# @(#)GENERIC 2.68 88/09/12 SMI
#
# This config file describes a generic Sun-2 kernel, including all
# possible standard devices and software options.
#
# The following lines include support for all Sun-2 cpu types.
# There is little to be gained by removing support for particular
# cpu's, so you may as well leave them all in.
#
machine		"sun2"
cpu		"SUN2_120"	# Sun-1/100U, Sun-1/150U, Sun-2/120, Sun-2/170
cpu		"SUN2_50"	# Sun-2/50, Sun-2/160
#
# Name this kernel "GENERIC".
#
ident		GENERIC
#
# This kernel supports about eight users.  Count one
# user for each timesharing user, one for each window
# that you typically use, and one for each diskless
# client you serve.  This is only an approximation
# used to control the size of various kernel data
# structures, not a hard limit.
#
maxusers	8

#
# Include all possible software options.
#
# The INET option is not really optional, every kernel must include it.
#
options		INET		# basic networking support - mandatory
#
# The following options are all filesystem related.  You only need
# QUOTA if you have UFS.  You only need UFS if you have a disk.
# Diskless machines can remove QUOTA, UFS, and NFSSERVER.  LOFS is
# only needed if you're using the Sun Network Software Environment.
#
options		QUOTA		# disk quotas for local disks
options		UFS		# filesystem code for local disks
options		NFSCLIENT	# NFS client side code
options		NFSSERVER	# NFS server side code
options		LOFS		# loopback filesystem - needed by NSE
#
# The following options are for accounting and auditing.  SYSAUDIT
# should be removed unless you are using the C2 security features.
#
options		SYSACCT		# process accounting, see acct(2) & sa(8)
options		SYSAUDIT	# C2 auditing for security
#
# The following options are for various System V IPC facilities.
# No standard software needs them, although some third party
# software relies on at least IPCSHMEM.
#
options		IPCMESSAGE	# System V IPC message facility
options		IPCSEMAPHORE	# System V IPC semaphore facility
options		IPCSHMEM	# System V IPC shared-memory facility
#
# The following option is only needed if you want to use the trpt
# command to debug TCP problems.
#
options		TCPDEBUG	# TCP debugging, see trpt(8)
#
# The following option includes the software DES support, needed if
# you're using secure NFS or secure RPC and you don't have a DES chip.
#
options		CRYPT		# software encryption (if no DES chip)

#
# Build one kernel based on this basic configuration.
# It will use the generic swap code so that you can have
# your root filesystem and swap space on any supported device.
# Put the kernel configured this way in a file named "vmunix".
#
config		vmunix		swap generic

#
# Include support for all possible pseudo-devices.
#
# The first few are mostly concerned with networking.
# You should probably always leave these in.
#
pseudo-device	pty		# pseudo-tty's, also needed for SunView
pseudo-device	ether		# basic Ethernet support
pseudo-device	loop		# loopback network - mandatory
#
# The next few are for SunWindows support, needed to run SunView 1.
#
pseudo-device	win128		# window devices, allow 128 windows
pseudo-device	dtop4		# desktops (screens), allow 4
pseudo-device	ms3		# mouse support, allow 3 mice
#
# The following is needed to support the Sun keyboard, with or
# without the window system.
#
pseudo-device	kb3		# keyboard support, allow 3 keyboards
#
# The following is needed to support the Sun dialbox.
#
pseudo-device   db              # dialbox support
#
# The following is for asynchronous tty support for the ALM-2 (aka MCP).
# If you have an ALM-2 (MCP) and it is being used to connect timesharing
# terminals, you will need this.
#
#pseudo-device	mcpa64
#
# The following is for the streams pipe device.  Currently nothing
# depends on this device so it is entirely optional.
#
pseudo-device	sp
#
# The following are for streams NIT support.  NIT is used by
# etherfind, traffic, rarpd, and ndbootd.  As a rule of thumb,
# NIT is almost always needed on a server and almost never
# needed on a diskless client.
#
pseudo-device	snit		# streams NIT
pseudo-device	pf		# packet filter
pseudo-device	nbuf		# NIT buffering module
#
# The following is for the "clone" device, used with streams devices.
# This is required if you include streams NIT support.
#
pseudo-device	clone

#
# The following sections describe what kinds of busses each
# cpu type supports.  You should never need to change this.
# (The word "nexus" is historical...)
#


# connections for machine type 1 (SUN2_120)
controller	virtual 1 at nexus ?	# virtually addressed devices
controller	obmem 1 at nexus ?	# memory-like devices on the cpu board
controller	obio 1 at nexus ?	# I/O devices on the cpu board
controller	mbmem 1 at nexus ?	# Multibus memory space
controller	mbio 1 at nexus ?	# Multibus I/O space

# connections for machine type 2 (SUN2_50)
controller	virtual 2 at nexus ?	# virtually addressed devices
controller	obmem 2 at nexus ?	# memory-like devices on the cpu board
controller	obio 2 at nexus ?	# I/O devices on the cpu board
controller	vme16 2 at nexus ?	# 16 bit address VMEbus (16 bit data)
controller	vme24 2 at nexus ?	# 24 bit address VMEbus (16 bit data)

#
# The following (large) section describes which standard devices this
# kernel supports.
#

#
# Support for 2 Xylogics 450/451 controllers with 2 drives each.
#
controller	xyc0 at mbio ? csr 0xee40 priority 2
controller	xyc0 at vme16 ? csr 0xee40 priority 2 vector xyintr 0x48
controller	xyc1 at mbio ? csr 0xee48 priority 2
controller	xyc1 at vme16 ? csr 0xee48 priority 2 vector xyintr 0x49
disk		xy0 at xyc0 drive 0
disk		xy1 at xyc0 drive 1
disk		xy2 at xyc1 drive 0
disk		xy3 at xyc1 drive 1
#
# Support for the SCSI-2 host adapter with 2 disks and 1 1/4" tape
# on the first SCSI controller and 1 disk and 1 1/4" tape on the
# second SCSI controller.
#
controller	sc0 at mbmem ? csr 0x80000 priority 2
controller	sc0 at vme24 ? csr 0x200000 priority 2 vector scintr 0x40
disk		sd0 at sc0 drive 0 flags 0
disk		sd1 at sc0 drive 1 flags 0
disk		sd2 at sc0 drive 8 flags 0
tape		st0 at sc0 drive 32 flags 1
tape		st1 at sc0 drive 40 flags 1
#disk		sf0 at sc0 drive 49 flags 2
#
# Support for the second SCSI-2 host adapter.
# Only supports one SCSI controller.
#
controller	sc1 at mbmem ? csr 0x84000 priority 2
disk		sd2 at sc1 drive 0 flags 0
disk		sd3 at sc1 drive 1 flags 0
tape		st1 at sc1 drive 32 flags 1
#disk		sf1 at sc1 drive 8 flags 2
#
# Support for the Sky floating point processor.
#
device		sky0 at mbio ? csr 0x2000 priority 2
device		sky0 at vme16 ? csr 0x8000 priority 2 vector skyintr 0xb0
#
# Support for the 2 tty lines (ttya, ttyb) on the cpu board.
# Needed when using a terminal for the console device.
# Flags=3 says to supply carrier in software for both lines.
#
device		zs0 at obio 1 csr 0x2000 flags 3 priority 3
device		zs0 at obio 2 csr 0x7f2000 flags 3 priority 3
#
# Support for the keyboard and mouse interface.  Needed when
# using a frame buffer as the console device or with SunView.
# You can remove this line if you don't use the standard Sun
# Workstation keyboard and mouse, but if you leave it in don't
# change it.
#
device		zs1 at obmem 1 csr 0x780000 flags 0x103 priority 3
device		zs1 at obio 2 csr 0x7f1800 flags 0x103 priority 3
#
# Support for tty lines on first Multibus SCSI-2 board.
#
device		zs2 at mbmem ? csr 0x80800 flags 3 priority 3
device		zs3 at mbmem ? csr 0x81000 flags 3 priority 3
#
# Support for tty lines on second Multibus SCSI-2 board.
#
device		zs4 at mbmem ? csr 0x84800 flags 3 priority 3
device		zs5 at mbmem ? csr 0x85000 flags 3 priority 3
#
# Support for 4 ALM's (Systech MTI-800/1600).  Flags set for
# all lines to be local, i.e., carrier supplied by software
# rather than by the device.
#
device		mti0 at mbio ? csr 0x620 flags 0xffff priority 4
device		mti1 at mbio ? csr 0x640 flags 0xffff priority 4
device		mti2 at mbio ? csr 0x660 flags 0xffff priority 4
device		mti3 at mbio ? csr 0x680 flags 0xffff priority 4
device		mti0 at vme16 ? csr 0x620 flags 0xffff priority 4
	vector mtiintr 0x88
device		mti1 at vme16 ? csr 0x640 flags 0xffff priority 4
	vector mtiintr 0x89
device		mti2 at vme16 ? csr 0x660 flags 0xffff priority 4
	vector mtiintr 0x8a
device		mti3 at vme16 ? csr 0x680 flags 0xffff priority 4
	vector mtiintr 0x8b
#
# Support for the on-board Intel 82586 Ethernet chip on the Sun-2/50.
#
device		ie0 at obio 2 csr 0x7f0800 priority 3
#
# Support for the first Multibus Intel Ethernet board.
#
device		ie0 at mbmem ? csr 0x88000 priority 3
#
# Support for the second Multibus Intel Ethernet board.
#
device		ie1 at mbmem ? csr 0x8c000 flags 2 priority 3
device		ie1 at vme24 ? csr 0xe88000 priority 3 vector ieintr 0x75
#
# Support for the first 3COM Ethernet board.
#
device		ec0 at mbmem ? csr 0xe0000 priority 3
#
# Support for the second 3COM Ethernet board.
#
device		ec1 at mbmem ? csr 0xe2000 priority 3
#
# Support for 2 Ciprico TapeMaster tape controllers with 1 tape drive each.
#
controller	tm0 at mbio ? csr 0xa0 priority 3
controller	tm0 at vme16 ? csr 0xa0 priority 3 vector tmintr 0x60
controller	tm1 at mbio ? csr 0xa2 priority 3
controller	tm1 at vme16 ? csr 0xa2 priority 3 vector tmintr 0x61
tape		mt0 at tm0 drive 0 flags 1
tape		mt1 at tm1 drive 0 flags 1
#
# Support for 2 Xylogics 472 tape controllers with 1 tape drive each.
#
controller	xtc0 at mbio ? csr 0xee60 priority 3
controller	xtc0 at vme16 ? csr 0xee60 priority 3 vector xtintr 0x64
controller	xtc1 at mbio ? csr 0xee68 priority 3
controller	xtc1 at vme16 ? csr 0xee68 priority 3 vector xtintr 0x65
tape		xt0 at xtc0 drive 0 flags 1
tape		xt1 at xtc1 drive 0 flags 1
#
# Support for 2 Sun Archive 1/4" tape controller boards.
#
device		ar0 at mbio ? csr 0x200 priority 3
device		ar1 at mbio ? csr 0x208 priority 3
#
# Support for the GP/GP+/GP2 graphics processors.
# Requires cgtwo as well.
#
device		gpone0 at vme24 ? csr 0x210000
#
# Support for either the Sun-2 color board, Sun-3 color board,
# or GP2 frame buffer.
#
device		cgtwo0 at vme24 ? csr 0x400000 priority 4 vector cgtwointr 0xa8
#
# Support for the Sun-1 color board.
#
device		cgone0 at mbmem ? csr 0xec000 priority 3
#
# Support for monochrome memory frame buffers on various machines.
#
device		bwtwo0 at obmem 1 csr 0x700000 priority 4	# 2/120
device		bwtwo0 at obio 2 csr 0x0 priority 4		# 2/50
device		bwone0 at mbmem ? csr 0xc0000 priority 3	# 1/100U
#
# Support for the Ikon Versatec printer controller.
#
device		vp0 at mbio ? csr 0x400 priority 2
#
# Support for 2 Systech VPC-2200 line printer controllers.
#
device		vpc0 at mbio ? csr 0x480 priority 2
device		vpc0 at vme16 ? csr 0x480 priority 2 vector vpcintr 0x80
device		vpc1 at mbio ? csr 0x500 priority 2
device		vpc1 at vme16 ? csr 0x500 priority 2 vector vpcintr 0x81
#
# Support for the parallel keyboard/mouse interface on the Sun-2/120
# cpu board.  Required if using the Sun-1 style parallel keyboard or
# mouse.
#
device		pi0 at obio 1 csr 0x1800
#
# Support for the hardware Data Ciphering Processor (aka the DES chip).
# Suggested if you make heavy use of secure RPC or secure NFS.
#
device		des0 at obio 1 csr 0x1000
device		des0 at obio 2 csr 0x7f1000
#
# Support for the time-of-day clock on the Sun-2/120 CPU board.
#
device		tod0 at obio 1 csr 0x3800
#
# Support for the time-of-day clock on the VME Sun-2 SCSI board.
#
device		tod0 at vme24 ? csr 0x200800
d with streams devices.
# This is required if you include streams NIT support.
#
pseudo-device	clone

#
# The following sections describe what kinds of busses each
# cpu type supports.  You should never need to change this.
# (The word "nexus" is historical...)
#


# connections for machine type 1 (SUN2_120)
controller	virtual 1 at nexus ?	# virtually addressed devices
controller	obmem 1 at nexus ?	# m./share/sys/sun2/conf/GENERIC_SMALL                                                                    444       0      12        13366  4423631130  11673                                                                                                                                                                                                                                                                                                                                                                      #
# @(#)GENERIC_SMALL 1.3 89/04/11 SMI
#
# This config file describes a generic Sun-2/50 kernel, 
# including software options and support for 
# 2 ESDI SCSI disks and 1 SCSI tape
#
machine		"sun2"
cpu		"SUN2_50"	# Sun-2/50
#
# Name this kernel "GENERIC_SMALL"
#
ident		GENERIC_SMALL
#
# This kernel supports about four users.  Count one
# user for each timesharing serial port, one for each window
# that you typically use, and one for each diskless
# client you serve.  This is only an approximation
# used to control the size of various kernel data
# structures, not a hard limit.
#
maxusers	4

#
# Include all possible software options.
#
# The INET option is not really optional, every kernel must include it.
#
options		INET		# basic networking support - mandatory
#
# The following options are all filesystem related.  You only need
# QUOTA if you have UFS.  You only need UFS if you have a disk.
# Diskless machines can remove QUOTA, UFS, and NFSSERVER.  
# LOFS is only needed if you're using the Sun Network Software Environment;
# It is commented out to generate a smaller kernel.
#
options		QUOTA		# disk quotas for local disks
options		UFS		# filesystem code for local disks
options		NFSCLIENT	# NFS client side code
options		NFSSERVER	# NFS server side code
#options	LOFS		# loopback filesystem - needed by NSE
#
# The following options are for accounting and auditing.  SYSAUDIT
# should be removed unless you are using the C2 security features.
#
options		SYSACCT		# process accounting, see acct(2) & sa(8)
options		SYSAUDIT	# C2 auditing for security
#
# The following options are for various System V IPC facilities.
# No standard software needs them, although some third party
# software relies on at least IPCSHMEM.  They are commented out
# to generate a smaller kernel.
#
#options		IPCMESSAGE	# System V IPC message facility
#options		IPCSEMAPHORE	# System V IPC semaphore facility
#options		IPCSHMEM	# System V IPC shared-memory facility
#
# The following option is only needed if you want to use the trpt
# command to debug TCP problems.  It is commented out to generate
# a smaller kernel.
#
#options         TCPDEBUG        # TCP debugging, see trpt(8)
#
# The following option includes the software DES support, needed if
# you're using secure NFS or secure RPC and you don't have a DES chip.
#
options		CRYPT		# software encryption (if no DES chip)

#
# Build one kernel based on this basic configuration.
# It will use the generic swap code so that you can have
# your root filesystem and swap space on any supported device.
# Put the kernel configured this way in a file named "vmunix".
#
config		vmunix		swap generic

#
# Include support for all possible pseudo-devices.
#
# The first few are mostly concerned with networking.
# You should probably always leave these in.
#
pseudo-device	pty		# pseudo-tty's, also needed for SunView
pseudo-device	ether		# basic Ethernet support
pseudo-device	loop		# loopback network - mandatory
#
# The next few are for SunWindows support, needed to run SunView 1.
#
pseudo-device	win128		# window devices, allow 128 windows
pseudo-device	dtop4		# desktops (screens), allow 4
pseudo-device	ms3		# mouse support, allow 3 mice
#
# The following is needed to support the Sun keyboard, with or
# without the window system.
#
pseudo-device	kb3		# keyboard support, allow 3 keyboards
#
# The following are for streams NIT support.  NIT is used by
# etherfind, traffic, rarpd, and ndbootd.  As a rule of thumb,
# NIT is almost always needed on a server and almost never
# needed on a diskless client.
#
pseudo-device	snit		# streams NIT
pseudo-device	pf		# packet filter
pseudo-device	nbuf		# NIT buffering module
#
# The following is for the "clone" device, used with streams devices.
# This is required if you include streams NIT support.
#
pseudo-device	clone

#
# The following sections describe what kinds of busses each
# cpu type supports.  You should never need to change this.
# (The word "nexus" is historical...)
#

# connections for machine type 2 (SUN2_50)
controller	virtual 2 at nexus ?	# virtually addressed devices
controller	obmem 2 at nexus ?	# memory-like devices on the cpu board
controller	obio 2 at nexus ?	# I/O devices on the cpu board
controller	vme16 2 at nexus ?	# 16 bit address VMEbus (16 bit data)
controller	vme24 2 at nexus ?	# 24 bit address VMEbus (16 bit data)

#
# The following section describes which standard devices this
# kernel supports.
#
#
# Support for 1 SCSI-2 host adapter with 2 disks and 1 1/4" tape
#
controller	sc0 at vme24 ? csr 0x200000 priority 2 vector scintr 0x40
disk		sd0 at sc0 drive 0 flags 0
disk            sd1 at sc0 drive 1 flags 0
tape		st0 at sc0 drive 32 flags 1
#
# Support for the Sky floating point processor.
#
#device		sky0 at vme16 ? csr 0x8000 priority 2 vector skyintr 0xb0
#
# Support for the 2 tty lines (ttya, ttyb) on the cpu board.
# Needed when using a terminal for the console device.
# Flags=3 says to supply carrier in software for both lines.
#
device		zs0 at obio 2 csr 0x7f2000 flags 3 priority 3
#
# Support for the keyboard and mouse interface.  Needed when
# using a frame buffer as the console device or with SunView.
# You can remove this line if you don't use the standard Sun
# Workstation keyboard and mouse, but if you leave it in don't
# change it.
#
device		zs1 at obio 2 csr 0x7f1800 flags 0x103 priority 3
#
#
# Support for the on-board Intel 82586 Ethernet chip on the Sun-2/50.
#
device		ie0 at obio 2 csr 0x7f0800 priority 3
#
# Support for monochrome memory frame buffer
#
device		bwtwo0 at obio 2 csr 0x0 priority 4		# 2/50
#
# Support for the hardware Data Ciphering Processor (aka the DES chip).
# Suggested if you make heavy use of secure RPC or secure NFS.
#
device          des0 at obio 2 csr 0x7f1000
#
# Support for the time-of-day clock on the VME Sun-2 SCSI board.
#
device		tod0 at vme24 ? csr 0x200800
 - mandatory
#
# The following options are all filesystem related.  You only need
# QUOTA if you have UFS.  You only need UFS if you have a disk.
# Diskless machines can remove QUOTA, UFS, and NFSSERVER.  
# LOFS is only needed if you're using the Sun Network Softwa./share/sys/sun2/conf/SDST120                                                                          444       0      12         2640  4424742612  10651                                                                                                                                                                                                                                                                                                                                                                      #
# @(#)SDST120 1.23 89/03/27 SMI
#
# Model 120 with one SCSI disk and tape
#
machine		"sun2"
cpu		"SUN2_120"		# generic for machine type 1 (Multibus)
ident		"SDST120"
maxusers	4
options		INET
options		SYSACCT
options		QUOTA
options		UFS
options		NFSCLIENT
options		NFSSERVER
options		CRYPT			# Software encryption (if no DES chip)

config		vmunix		root on sd

pseudo-device	pty
pseudo-device	ether
pseudo-device	loop
pseudo-device	win128
pseudo-device	dtop1
pseudo-device	ms1
pseudo-device	kb1
pseudo-device	clone

# Streams NIT devices and modules
pseudo-device	snit
pseudo-device	pf
pseudo-device	nbuf

# connections for machine type 1 (SUN2_120)
controller	virtual 1 at nexus ?	# virtual preset
controller	obmem 1 at nexus ?	# on board memory
controller	obio 1 at nexus ?	# on board io
controller	mbmem 1 at nexus ?	# Multibus memory
controller	mbio 1 at nexus ?	# Multibus io

controller	sc0 at mbmem ? csr 0x80000 priority 2
disk		sd0 at sc0 drive 0 flags 0
tape		st0 at sc0 drive 32 flags 1
# device		sky0 at mbio ? csr 0x2000 priority 2
device		zs0 at obio 1 csr 0x2000 flags 3 priority 3
device		zs1 at obmem 1 csr 0x780000 flags 0x103 priority 3
device		zs2 at mbmem ? csr 0x80800 flags 3 priority 3
device		zs3 at mbmem ? csr 0x81000 flags 3 priority 3
device		ie0 at mbmem ? csr 0x88000 priority 3
device		ec0 at mbmem ? csr 0xe0000 priority 3
device		bwtwo0 at obmem 1 csr 0x700000 priority 4
device		tod0 at obio 1 csr 0x3800
2 security features.
#
options		SYSACCT		# process accounting, see acct(2) & sa(8)
options		SYSA./share/sys/sun2/conf/SDST160                                                                          444       0      12         2747  4424742613  10666                                                                                                                                                                                                                                                                                                                                                                      #
# @(#)SDST160 1.29 89/03/27 SMI
#
# Model 160 with 1 or 2 SCSI disks and 1 SCSI tape
#
machine		"sun2"
cpu		"SUN2_50"		# generic for machine type 2 (VMEbus)
ident		"SDST160"
maxusers	4
options		INET
options		SYSACCT
options		QUOTA
options		UFS
options		NFSCLIENT
options		NFSSERVER
options		CRYPT			# Software encryption (if no DES chip)

config		vmunix		root on sd0 swap on sd0 and sd1

pseudo-device	pty
pseudo-device	ether
pseudo-device	loop
pseudo-device	win128
pseudo-device	dtop4
pseudo-device	ms3
pseudo-device	kb3
pseudo-device	clone

# Streams NIT devices and modules
pseudo-device	snit
pseudo-device	pf
pseudo-device	nbuf

# connections for machine type 2 (SUN2_50)
controller	virtual 2 at nexus ?	# virtual preset
controller	obmem 2 at nexus ?	# on board memory
controller	obio 2 at nexus ?	# on board io
controller	vme16 2 at nexus ?	# 16 bit address VMEbus (16 bit data)
controller	vme24 2 at nexus ?	# 24 bit address VMEbus (16 bit data)

controller	sc0 at vme24 ? csr 0x200000 priority 2 vector scintr 0x40
disk		sd0 at sc0 drive 0 flags 0
disk		sd1 at sc0 drive 1 flags 0
tape		st0 at sc0 drive 32 flags 1
# device          sky0 at vme16 ? csr 0x8000 priority 2 vector skyintr 0xb0
device		zs0 at obio 2 csr 0x7f2000 flags 3 priority 3
device		zs1 at obio 2 csr 0x7f1800 flags 0x103 priority 3
device		ie0 at obio 2 csr 0x7f0800 priority 3
device		cgtwo0 at vme24 ? csr 0x400000 priority 4 vector cgtwointr 0xa8
device		bwtwo0 at obio 2 csr 0x0 priority 4
device		tod0 at vme24 ? csr 0x200800
(2) & sa(8)
options		SYSA./share/sys/sun2/conf/XYMT150                                                                          444       0      12         3040  4424742615  10676                                                                                                                                                                                                                                                                                                                                                                      #
# @(#)XYMT150 1.22 89/03/27 SMI
#
# Model 150 server with two Xylogics disks and one 1/2" tape
#
machine		"sun2"
cpu		"SUN2_120"		# generic for machine type 1 (Multibus)
ident		"XYMT150"
maxusers	4
options		INET
options		SYSACCT
options		QUOTA
options		UFS
options		NFSCLIENT
options		NFSSERVER
options		CRYPT			# Software encryption (if no DES chip)

config		vmunix		root on xy

pseudo-device	pty
pseudo-device	ether
pseudo-device	loop
pseudo-device	win128
pseudo-device	dtop1
pseudo-device	ms1
pseudo-device	kb1
pseudo-device	clone

# Streams NIT devices and modules
pseudo-device	snit
pseudo-device	pf
pseudo-device	nbuf

# connections for machine type 1 (SUN2_120)
controller	virtual 1 at nexus ?	# virtual preset
controller	obmem 1 at nexus ?	# on board memory
controller	obio 1 at nexus ?	# on board io
controller	mbmem 1 at nexus ?	# Multibus memory
controller	mbio 1 at nexus ?	# Multibus io

controller	xyc0 at mbio ? csr 0xee40 priority 2
disk		xy0 at xyc0 drive 0
disk		xy1 at xyc0 drive 1
#device		sky0 at mbio ? csr 0x2000 priority 2
device		zs0 at obio 1 csr 0x2000 flags 3 priority 3
device		mti0 at mbio ? csr 0x620 flags 0xffff priority 4
device          ie0 at mbmem ? csr 0x88000 priority 3
device          ec0 at mbmem ? csr 0xe0000 priority 3
device          ec1 at mbmem ? csr 0xe2000 priority 3
controller      tm0 at mbio ? csr 0xa0 priority 3
tape		mt0 at tm0 drive 0 flags 1
device		cgone0 at mbmem ? csr 0xec000 priority 3
device		bwone0 at mbmem ? csr 0xc0000 priority 3
device		pi0 at obio 1 csr 0x1800
device		tod0 at obio 1 csr 0x3800
#
# The following options are for various System V IPC facilities.
# No standard software needs them, although some third party
# software relies on at least IPCSHMEM.  They are commented out
# to generate a smaller kernel.
#
#options		IPCMESSAGE	# System V IPC message facility
#options		IPCSEMAPHORE	# System V IPC semaphore facility
#options		IPCSHMEM	# System V IPC shared-memory facility
#
# The following option is only needed if you want to use the trpt
# command to debug ./share/sys/sun2/conf/XYMT160                                                                          444       0      12         4311  4424742616  10702                                                                                                                                                                                                                                                                                                                                                                      #
# @(#)XYMT160 1.31 89/03/27 SMI
#
# Model 160 with up to 2 Xylogics controllers and 1/2" tape
# plus 1 or 2 SCSI disks and 1 SCSI tape
#
machine		"sun2"
cpu		"SUN2_50"		# generic for machine type 2 (VMEbus)
ident		"XYMT160"
maxusers	4
options		INET
options		SYSACCT
options		QUOTA
options		UFS
options		NFSCLIENT
options		NFSSERVER
options		CRYPT			# Software encryption (if no DES chip)

config		vmunix		root on xy

pseudo-device	pty
pseudo-device	ether
pseudo-device	loop
pseudo-device	win128
pseudo-device	dtop4
pseudo-device	ms3
pseudo-device	kb3
pseudo-device	clone

# Streams NIT devices and modules
pseudo-device	snit
pseudo-device	pf
pseudo-device	nbuf

# connections for machine type 2 (SUN2_50)
controller	virtual 2 at nexus ?	# virtual preset
controller	obmem 2 at nexus ?	# on board memory
controller	obio 2 at nexus ?	# on board io
controller	vme16 2 at nexus ?	# 16 bit address VMEbus (16 bit data)
controller	vme24 2 at nexus ?	# 24 bit address VMEbus (16 bit data)

controller	xyc0 at vme16 ? csr 0xee40 priority 2 vector xyintr 0x48
controller	xyc1 at vme16 ? csr 0xee48 priority 2 vector xyintr 0x49
disk		xy0 at xyc0 drive 0
disk		xy1 at xyc0 drive 1
disk		xy2 at xyc1 drive 0
disk		xy3 at xyc1 drive 1
controller	sc0 at vme24 ? csr 0x200000 priority 2 vector scintr 0x40
disk		sd0 at sc0 drive 0 flags 0
disk		sd1 at sc0 drive 1 flags 0
tape		st0 at sc0 drive 32 flags 1
#device		sky0 at vme16 ? csr 0x8000 priority 2 vector skyintr 0xb0
device		zs0 at obio 2 csr 0x7f2000 flags 3 priority 3
device		zs1 at obio 2 csr 0x7f1800 flags 0x103 priority 3
device		mti0 at vme16 ? csr 0x620 flags 0xffff priority 4 vector mtiintr 0x88
device		ie0 at obio 2 csr 0x7f0800 priority 3
controller	tm0 at vme16 ? csr 0xa0 priority 3 vector tmintr 0x60
controller	tm1 at vme16 ? csr 0xa2 priority 3 vector tmintr 0x61
tape		mt0 at tm0 drive 0 flags 1
tape		mt1 at tm1 drive 0 flags 1
controller	xtc0 at vme16 ? csr 0xee60 priority 3 vector xtintr 0x64
controller	xtc1 at vme16 ? csr 0xee68 priority 3 vector xtintr 0x65
tape		xt0 at xtc0 drive 0 flags 1
tape		xt1 at xtc1 drive 0 flags 1
device		cgtwo0 at vme24 ? csr 0x400000 priority 4 vector cgtwointr 0xa8
device		bwtwo0 at obio 2 csr 0x0 priority 4
device		tod0 at vme24 ? csr 0x200800
VMEbus)
ident		"XYMT160"
maxusers	4
options		INET
options		SYSACCT
options		QUOTA
options		UFS
options		NFSCLIENT
options		NFSSERVER
options		CRYPT			# Software encryption (if no DES chip)

config		vmunix		root on xy

pseudo-device	pty
pseudo-device	ether
pseudo-device	loop
pseudo-device	win128
pseudo-device	d./share/sys/sun2/conf/files                                                                            664       0      12        15716  4424743042  11005                                                                                                                                                                                                                                                                                                                                                                      # @(#)files 2.70 88/11/15 SMI
#
include ../../conf.common/files.cmn
#
i386dev/fd.c		optional fd device-driver not-supported
i386dev/hd.c		optional hd device-driver not-supported
i386dev/pp.c		optional pp device-driver not-supported
i386dev/wds.c		optional wds device-driver not-supported
m68k/addupc.s		standard
m68k/mcount.s		optional profiling-routine
m68k/movc.s		standard
m68k/ocsum.s		standard
m68k/setjmp.s		standard
m68k/zs_asm.s		optional zs device-driver
pixrect/../bw1/bw1_colormap.c	optional bwone win device-driver
pixrect/../bw1/bw1_rop.c	optional bwone win device-driver
pixrect/../cg1/cg1_colormap.c	optional cgone win device-driver
pixrect/../cg1/cg1_rop.c	optional cgone win device-driver
pixrect/../cg2/cg2_colormap.c	optional cgtwo win device-driver
pixrect/../cg2/cg2_rop.c	optional cgtwo win device-driver
pixrect/../cg4/cg4_colormap.c	optional cgfour win not-supported
pixrect/../cg6/cg6_colormap.c	optional cgsix win not-supported
pixrect/../cg8/cg8_colormap.c   optional cgeight win not-supported
pixrect/../mem/mem_colormap.c	optional win device-driver
pixrect/../mem/mem_kern.c	optional win device-driver
pixrect/../mem/mem_prs.c	optional bwone win device-driver
pixrect/../mem/mem_prs.c	optional cgone win device-driver
pixrect/../mem/mem_rop.c	optional win device-driver
pixrect/../pr/pr_clip.c		optional win device-driver
pixrect/../pr/pr_dblbuf.c	optional win device-driver
pixrect/../pr/pr_plngrp.c	optional win device-driver
pixrect/../pr/pr_reverse.c	optional win device-driver
sun/conf.c		standard
sun/cons.c		standard
sun/consfb.c		standard device-driver
sun/conskbd.c		standard
sun/consms.c		optional ms
sun/dkbad.c		standard
sun/in_cksum.c		optional INET
sun/mb_machdep.c	standard device-driver
sun/probe.c		standard
sun/seg_kmem.c		standard
sun/seg_u.c		standard
sun/sqz.c               optional sqzd
sun/str_conf.c		standard
sun/ufs_machdep.c	standard
sun/vm_hat.c		standard
sun/wscons.c		standard
sun2/autoconf.c		standard device-driver
sun2/clock.c		standard device-driver
sun2/control.s		standard
sun2/dbx_machdep.c	optional dbx symbolic-info
sun2/kprof.s		optional profiling-routine
sun2/ldivt.s		standard
sun2/lmodt.s		standard
sun2/lmult.s		standard
sun2/locore.s		standard special
sun2/machdep.c		standard
sun2/mem.c		standard
sun2/mmu.c		standard
sun2/ptwo.s		standard
sun2/scb.s		standard
sun2/swapgeneric.c	standard
sun2/trap.c		standard
sun2/vax.s		standard
sun2/vm_machdep.c	standard
sunchat/chat.c		optional chat device-driver
sunchat/chatunit.c	optional chat device-driver
sundev/ar.c		optional ar device-driver
sundev/bwone.c		optional bwone device-driver
sundev/bwtwo.c		optional bwtwo device-driver
sundev/cgfour.c		optional cgfour not-supported
sundev/cgeight.c        optional cgeight not-supported
sundev/cgsix.c        	optional cgsix not-supported
sundev/cgone.c		optional cgone device-driver
sundev/cgthree.c	optional cgthree not-supported
sundev/cgtwo.c		optional cgtwo device-driver
sundev/db.c	 	optional db
sundev/dbx_sundev.c	optional dbx symbolic-info
sundev/des.c		optional des device-driver
sundev/fbutil.c		optional bwone device-driver
sundev/fbutil.c		optional bwtwo device-driver
sundev/fbutil.c		optional cgfour not-supported
sundev/fbutil.c         optional cgeight not-supported
sundev/fbutil.c         optional cgsix not-supported
sundev/fbutil.c		optional cgone device-driver
sundev/fbutil.c		optional cgtwo device-driver
sundev/fbutil.c		optional taac not-supported
sundev/fpa.c		optional fpa not-supported
sundev/ft.c		optional ft device-driver
sundev/gpone.c		optional gpone device-driver
sundev/hrc.c		optional hrc device-driver
sundev/hrc_kern.c	optional hrc device-driver
sundev/ip.c             optional ip not-supported
sundev/ip_conf.c        optional ip not-supported
sundev/kbd.c		optional kb
sundev/keytables.c	optional kb
sundev/kg.c		optional kg device-driver
sundev/mb.c		standard device-driver
sundev/mcp.c		optional mcp not-supported
sundev/mcp_async.c	optional mcpa not-supported
sundev/mcp_bsc.c	optional mcpb device-driver
sundev/mcp_bsctables.c	optional mcpb device-driver
sundev/mcp_conf.c	optional mcp not-supported
sundev/mcp_isdlc.c	optional mcps device-driver
sundev/mcp_proto.c	optional mcp not-supported
sundev/mcp_sdlc.c	optional mcph device-driver
sundev/ms.c		optional ms 
sundev/mti.c		optional mti device-driver
sundev/mti_conf.c	optional mti device-driver
sundev/ns.c		optional ns device-driver
sundev/pc.c		optional pc device-driver
sundev/pc_conf.c	optional pc device-driver
sundev/pi.c		optional pi device-driver
sundev/rd.c		optional rd device-driver
sundev/ropc.c		optional ropc device-driver
sundev/sc.c		optional sc device-driver
sundev/sc_conf.c	standard device-driver
sundev/sd.c		optional sd device-driver
sundev/se.c		optional se device-driver not-supported
sundev/sf.c		optional sf device-driver
sundev/si.c		optional si not-supported
sundev/sky.c		optional sky device-driver
sundev/st.c		optional st device-driver
sundev/sw.c		optional sw device-driver not-supported
sundev/sm.c		optional sm device-driver not-supported
sundev/taac.c		optional taac not-supported
sundev/tm.c		optional mt device-driver
sundev/tod.c		optional tod device-driver
sundev/vp.c		optional vp device-driver
sundev/vpc.c		optional vpc device-driver
sundev/vuid_queue.c	optional kb
sundev/vuid_store.c	optional win device-driver
sundev/xd.c		optional xd not-supported
sundev/xd_conf.c	optional xd not-supported
sundev/xt.c		optional xt device-driver
sundev/xy.c		optional xy device-driver
sundev/xy_conf.c	optional xy device-driver
sundev/zs_async.c	optional zs device-driver
sundev/zs_bsc.c		optional zsb device-driver
sundev/zs_bsctables.c	optional zsb device-driver
sundev/zs_common.c	optional zs device-driver
sundev/zs_isdlc.c	optional zsi device-driver
sundev/zs_proto.c	optional zs device-driver
sundev/zs_sdlc.c	optional zss device-driver
sunif/dbx_sunif.c	optional dbx INET symbolic-info
sunif/dcp.c		optional dcp device-driver
sunif/if_dcp.c		optional dcp device-driver
sunif/if_ec.c		optional ec INET device-driver
sunif/if_en.c		optional en INET device-driver
sunif/if_hy.c		optional hy not-supported
sunif/if_ie.c		optional ie INET device-driver
sunif/if_le.c		optional le INET not-supported
sunif/if_me.c		optional pc INET device-driver
sunif/if_subr.c		optional ether INET
sunif/tbi.c		optional tbi device-driver
sunwindow/rect/rect.c		optional win device-driver
sunwindow/rect/rect_data.c	optional win device-driver
sunwindow/rect/rectlist.c	optional win device-driver
sunwindowdev/dtopnub.c		optional dtop device-driver
sunwindowdev/win.c		optional win device-driver
sunwindowdev/win_syscall.c	optional win device-driver
sunwindowdev/wincms.c		optional win device-driver
sunwindowdev/windt.c		optional win device-driver
sunwindowdev/winioctl.c		optional win device-driver
sunwindowdev/winlock.c		optional win device-driver
sunwindowdev/winshared.c	optional win device-driver
sunwindowdev/wintree.c		optional win device-driver
sunwindowdev/ws.c		optional dtop device-driver
sunwindowdev/ws_dispense.c	optional win device-driver
sunwindowdev/ws_interrupt.c	optional win device-driver
sun/stubs.c	standard
it in don't
# change it.
#
device		zs1 at obmem 1 ./share/sys/net/                                                                                       775       0      12            0  4425704652   6620                                                                                                                                                                                                                                                                                                                                                                      ./share/sys/net/if.h                                                                                   444       0      12        21141  4423266672   7472                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)if.h 1.26 89/01/03 SMI; from UCB 7.1 6/4/86		*/

/*
 * Copyright (c) 1982, 1986 Regents of the University of California.
 * All rights reserved.  The Berkeley software License Agreement
 * specifies the terms and conditions for redistribution.
 */

#ifndef	net_if_h
#define	net_if_h

/*
 * Structures defining a network interface, providing a packet
 * transport mechanism (ala level 0 of the PUP protocols).
 *
 * Each interface accepts output datagrams of a specified maximum
 * length, and provides higher level routines with input datagrams
 * received from its medium.
 *
 * Output occurs when the routine if_output is called, with three parameters:
 *	(*ifp->if_output)(ifp, m, dst)
 * Here m is the mbuf chain to be sent and dst is the destination address.
 * The output routine encapsulates the supplied datagram if necessary,
 * and then transmits it on its medium.
 *
 * On input, each interface unwraps the data received by it, and either
 * places it on the input queue of a internetwork datagram routine
 * and posts the associated software interrupt, or passes the datagram to a raw
 * packet input routine.
 *
 * Routines exist for locating interfaces by their addresses
 * or for locating a interface on a certain network, as well as more general
 * routing and gateway routines maintaining information used to locate
 * interfaces.  These routines live in the files if.c and route.c
 */

/*
 * Structure defining a queue for a network interface.
 *
 * (Would like to call this struct ``if'', but C isn't PL/1.)
 */
struct ifnet {
	char	*if_name;		/* name, e.g. ``en'' or ``lo'' */
	short	if_unit;		/* sub-unit for lower level driver */
	short	if_mtu;			/* maximum transmission unit */
	short	if_flags;		/* up/down, broadcast, etc. */
	short	if_timer;		/* time 'til if_watchdog called */
	u_short	if_promisc;		/* net # of requests for promisc mode */
	int	if_metric;		/* routing metric (external only) */
	struct	ifaddr *if_addrlist;	/* linked list of addresses per if */
	struct	ifqueue {
		struct	mbuf *ifq_head;
		struct	mbuf *ifq_tail;
		int	ifq_len;
		int	ifq_maxlen;
		int	ifq_drops;
	} if_snd;			/* output queue */
/* procedure handles */
	int	(*if_init)();		/* init routine */
	int	(*if_output)();		/* output routine */
	int	(*if_ioctl)();		/* ioctl routine */
	int	(*if_reset)();		/* bus reset routine */
	int	(*if_watchdog)();	/* timer routine */
/* generic interface statistics */
	int	if_ipackets;		/* packets received on interface */
	int	if_ierrors;		/* input errors on interface */
	int	if_opackets;		/* packets sent on interface */
	int	if_oerrors;		/* output errors on interface */
	int	if_collisions;		/* collisions on csma interfaces */
/* end statistics */
	struct	ifnet *if_next;
	struct	ifnet *if_upper;	/* next layer up */
	struct	ifnet *if_lower;	/* next layer down */
	int	(*if_input)();		/* input routine */
	int	(*if_ctlin)();		/* control input routine */
	int	(*if_ctlout)();		/* control output routine */
#ifdef sun
	struct map *if_memmap;		/* rmap for interface specific memory */
#endif
};

#define	IFF_UP		0x1		/* interface is up */
#define	IFF_BROADCAST	0x2		/* broadcast address valid */
#define	IFF_DEBUG	0x4		/* turn on debugging */
#define	IFF_LOOPBACK	0x8		/* is a loopback net */
#define	IFF_POINTOPOINT	0x10		/* interface is point-to-point link */
#define	IFF_NOTRAILERS	0x20		/* avoid use of trailers */
#define	IFF_RUNNING	0x40		/* resources allocated */
#define	IFF_NOARP	0x80		/* no address resolution protocol */
#define	IFF_PROMISC	0x100		/* receive all packets */
#define	IFF_ALLMULTI	0x200		/* receive all multicast packets */
#define IFF_PRIVATE	0x8000		/* do not advertise */

/* flags set internally only: */
#define	IFF_CANTCHANGE \
		(IFF_BROADCAST | IFF_POINTOPOINT | IFF_RUNNING | IFF_PROMISC)

/*
 * Output queues (ifp->if_snd) and internetwork datagram level (pup level 1)
 * input routines have queues of messages stored on ifqueue structures
 * (defined above).  Entries are added to and deleted from these structures
 * by these macros, which should be called with ipl raised to splimp().
 */
#define	IF_QFULL(ifq)		((ifq)->ifq_len >= (ifq)->ifq_maxlen)
#define	IF_DROP(ifq)		((ifq)->ifq_drops++)
#define	IF_ENQUEUE(ifq, m) { \
	(m)->m_act = 0; \
	if ((ifq)->ifq_tail == 0) \
		(ifq)->ifq_head = m; \
	else \
		(ifq)->ifq_tail->m_act = m; \
	(ifq)->ifq_tail = m; \
	(ifq)->ifq_len++; \
}
#define	IF_PREPEND(ifq, m) { \
	(m)->m_act = (ifq)->ifq_head; \
	if ((ifq)->ifq_tail == 0) \
		(ifq)->ifq_tail = (m); \
	(ifq)->ifq_head = (m); \
	(ifq)->ifq_len++; \
}
/*
 * Packets destined for level-1 protocol input routines
 * have a pointer to the receiving interface prepended to the data.
 * IF_DEQUEUEIF extracts and returns this pointer when dequeueing the packet.
 * IF_ADJ should be used otherwise to adjust for its presence.
 */
#define	IF_ADJ(m) { \
	(m)->m_off += sizeof(struct ifnet *); \
	(m)->m_len -= sizeof(struct ifnet *); \
	if ((m)->m_len == 0) { \
		struct mbuf *n; \
		MFREE((m), n); \
		(m) = n; \
	} \
}
#define	IF_DEQUEUEIF(ifq, m, ifp) { \
	(m) = (ifq)->ifq_head; \
	if (m) { \
		if (((ifq)->ifq_head = (m)->m_act) == 0) \
			(ifq)->ifq_tail = 0; \
		(m)->m_act = 0; \
		(ifq)->ifq_len--; \
		(ifp) = *(mtod((m), struct ifnet **)); \
		IF_ADJ(m); \
	} \
}
#define	IF_DEQUEUE(ifq, m) { \
	(m) = (ifq)->ifq_head; \
	if (m) { \
		if (((ifq)->ifq_head = (m)->m_act) == 0) \
			(ifq)->ifq_tail = 0; \
		(m)->m_act = 0; \
		(ifq)->ifq_len--; \
	} \
}

#define	IFQ_MAXLEN	50
#define	IFNET_SLOWHZ	1		/* granularity is 1 second */

/*
 * The ifaddr structure contains information about one address
 * of an interface.  They are maintained by the different address families,
 * are allocated and attached when an address is set, and are linked
 * together so all addresses for an interface can be located.
 */
struct ifaddr {
	struct	sockaddr ifa_addr;	/* address of interface */
	union {
		struct	sockaddr ifu_broadaddr;
		struct	sockaddr ifu_dstaddr;
	} ifa_ifu;
#define	ifa_broadaddr	ifa_ifu.ifu_broadaddr	/* broadcast address */
#define	ifa_dstaddr	ifa_ifu.ifu_dstaddr	/* other end of p-to-p link */
	struct	ifnet *ifa_ifp;		/* back-pointer to interface */
	struct	ifaddr *ifa_next;	/* next address for interface */
};

/*
 * Interface request structure used for socket
 * ioctl's.  All interface ioctl's must have parameter
 * definitions which begin with ifr_name.  The
 * remainder may be interface specific.
 */
struct	ifreq {
#define	IFNAMSIZ	16
	char	ifr_name[IFNAMSIZ];		/* if name, e.g. "en0" */
	union {
		struct	sockaddr ifru_addr;
		struct	sockaddr ifru_dstaddr;
		char	ifru_oname[IFNAMSIZ];	/* other if name */
		struct	sockaddr ifru_broadaddr;
		short	ifru_flags;
		int	ifru_metric;
		char	ifru_data[1];		/* interface dependent data */

		/* Struct for FDDI ioctl's */
		struct ifr_dnld_reqs {
			caddr_t	v_addr;
			caddr_t	m_addr;
			caddr_t	ex_addr;
			u_int	size;
		} ifru_dnld_req;

		/* Struct for FDDI stats */
		struct ifr_fddi_stats {
			u_int	stat_size;
			caddr_t	fddi_stats;
		} ifru_fddi_stat;

		struct ifr_netmapents {
			u_int	map_ent_size,	/* size of netmap structure */
				entry_number;	/* index into netmap list */
			caddr_t	fddi_map_ent;	/* pointer to user structure */
		} ifru_netmapent;

		/* Field for generic ioctl for fddi */

		struct ifr_fddi_gen_struct {
			int	ifru_fddi_gioctl; /* field for gen ioctl */
			caddr_t ifru_fddi_gaddr ; /* Generic ptr to a field */
		} ifru_fddi_gstruct;

	} ifr_ifru;

#define	ifr_addr	ifr_ifru.ifru_addr	/* address */
#define	ifr_dstaddr	ifr_ifru.ifru_dstaddr	/* other end of p-to-p link */
#define	ifr_oname	ifr_ifru.ifru_oname	/* other if name */
#define	ifr_broadaddr	ifr_ifru.ifru_broadaddr	/* broadcast address */
#define	ifr_flags	ifr_ifru.ifru_flags	/* flags */
#define	ifr_metric	ifr_ifru.ifru_metric	/* metric */
#define	ifr_data	ifr_ifru.ifru_data	/* for use by interface */

/* FDDI specific */
#define ifr_dnld_req	ifr_ifru.ifru_dnld_req
#define ifr_fddi_stat	ifr_ifru.ifru_fddi_stat
#define ifr_fddi_netmap	ifr_ifru.ifru_netmapent	/* FDDI network map entries */
#define ifr_fddi_gstruct ifr_ifru.ifru_fddi_gstruct   

};

/*
 * Structure used in SIOCGIFCONF request.
 * Used to retrieve interface configuration
 * for machine (useful for programs which
 * must know all networks accessible).
 */
struct	ifconf {
	int	ifc_len;		/* size of associated buffer */
	union {
		caddr_t	ifcu_buf;
		struct	ifreq *ifcu_req;
	} ifc_ifcu;
#define	ifc_buf	ifc_ifcu.ifcu_buf	/* buffer address */
#define	ifc_req	ifc_ifcu.ifcu_req	/* array of structures returned */
};

#ifdef KERNEL
struct	ifqueue rawintrq;		/* raw packet input queue */
struct	ifnet *ifnet;
struct	ifaddr *ifa_ifwithaddr(), *ifa_ifwithnet();
struct	ifaddr *ifa_ifwithdstaddr();
struct	ifaddr *ifa_ifwithaf();
struct	ifnet *ifunit();
#endif KERNEL

#endif	net_if_h
 n  P  x  P  ~  
P    GP  *  ^P    P    P    
P    GP    P  $  P    P    P    
P    P    P     P  &  
P  J  @  Z  @  x  PP    6P    @    WP    PP    @    P  $  \P  B  {P  p  JP    P    WP    {P    {P    ZP  .  "P  n  -P  x  UP    |P    @    P    @    P   T  @   `  P   h  @   l  @   t  @   |  @     @     @     @./share/sys/netinet/                                                                                   775       0      12            0  4425704653   7501                                                                                                                                                                                                                                                                                                                                                                      ./share/sys/netinet/if_ether.h                                                                         444       0      12        12616  4423266710  11541                                                                                                                                                                                                                                                                                                                                                                      /*
 * Copyright (c) 1982, 1986 Regents of the University of California.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms are permitted
 * provided that this notice is preserved and that due credit is given
 * to the University of California at Berkeley. The name of the University
 * may not be used to endorse or promote products derived from this
 * software without specific prior written permission. This software
 * is provided ``as is'' without express or implied warranty.
 *
 *	@(#)if_ether.h 1.22 89/01/03 SMI; from UCB 7.2 12/7/87
 */

#ifndef _netinet_if_ether_h
#define _netinet_if_ether_h

/*
 * The following include is for compatibility with SunOS 3.x and
 * 4.3bsd.  Newly written programs should include it separately.
 */
#include <net/if_arp.h>

/*
 * Ethernet address - 6 octets
 */
struct ether_addr {
	u_char	ether_addr_octet[6];
};

/*
 * Structure of a 10Mb/s Ethernet header.
 */
struct	ether_header {
	struct	ether_addr ether_dhost;
	struct	ether_addr ether_shost;
	u_short	ether_type;
};

#define	ETHERTYPE_PUP		0x0200		/* PUP protocol */
#define	ETHERTYPE_IP		0x0800		/* IP protocol */
#define	ETHERTYPE_ARP		0x0806		/* Addr. resolution protocol */
#define	ETHERTYPE_REVARP	0x8035		/* Reverse ARP */

/*
 * The ETHERTYPE_NTRAILER packet types starting at ETHERTYPE_TRAIL have
 * (type-ETHERTYPE_TRAIL)*512 bytes of data followed
 * by an ETHER type (as given above) and then the (variable-length) header.
 */
#define	ETHERTYPE_TRAIL		0x1000		/* Trailer packet */
#define	ETHERTYPE_NTRAILER	16

#define	ETHERMTU	1500
#define	ETHERMIN	(60-14)

/*
 * Ethernet Address Resolution Protocol.
 *
 * See RFC 826 for protocol description.  Structure below is adapted
 * to resolving internet addresses.  Field names used correspond to
 * RFC 826.
 */
struct	ether_arp {
	struct	arphdr ea_hdr;		/* fixed-size header */
	struct	ether_addr arp_sha;	/* sender hardware address */
	u_char	arp_spa[4];		/* sender protocol address */
	struct	ether_addr arp_tha;	/* target hardware address */
	u_char	arp_tpa[4];		/* target protocol address */
};
#define	arp_hrd	ea_hdr.ar_hrd
#define	arp_pro	ea_hdr.ar_pro
#define	arp_hln	ea_hdr.ar_hln
#define	arp_pln	ea_hdr.ar_pln
#define	arp_op	ea_hdr.ar_op

/*
 * Structure shared between the ethernet driver modules and
 * the address resolution code.  For example, each ec_softc or il_softc
 * begins with this structure.
 *
 * The structure contains a pointer to an array of multicast addresses.
 * This pointer is NULL until the first successful SIOCADDMULTI ioctl
 * is issued for the interface.
 */
#define	MCADDRMAX	64		/* multicast addr table length */
struct	arpcom {
	struct	ifnet ac_if;		/* network-visible interface */
	struct	ether_addr ac_enaddr;	/* ethernet hardware address */
	struct	in_addr ac_ipaddr;	/* copy of ip address- XXX */
	struct	ether_addr *ac_mcaddr;	/* table of multicast addrs */
	u_short	ac_nmcaddr;		/* count of M/C addrs in use */
	struct  in_addr ac_lastip;	/* cache of last ARP lookup */
	struct	ether_addr ac_lastarp;	/* result of the last ARP */
};

/*
 * Internet to ethernet address resolution table.
 */
struct	arptab {
	struct	in_addr at_iaddr;	/* internet address */
	union {
	    struct ether_addr atu_enaddr;	/* ethernet address */
	    long   atu_tvsec;			/* timestamp if incomplete */
	} 	at_union;
	u_char	at_timer;		/* minutes since last reference */
	u_char	at_flags;		/* flags */
	struct	mbuf *at_hold;		/* last packet until resolved/timeout */
};

# define at_enaddr at_union.atu_enaddr
# define at_tvsec at_union.atu_tvsec

/*
 * Compare two Ethernet addresses - assumes that the two given
 * pointers can be referenced as shorts.  On architectures
 * where this is not the case, use bcmp instead.  Note that like
 * bcmp, we return zero if they are the SAME.
 */
#if defined(sun2) || defined(sun3) || defined(sun3x)
/*
 * On 680x0 machines, we can do a longword compare that is NOT
 * longword aligned, as long as it is even aligned.
 */
#define ether_cmp(a,b) ( ((short *)a)[2] != ((short *)b)[2] || \
  *((long *)a) != *((long *)b) )
#endif

/*
 * On a sparc, functions are FAST
 */
#if defined(sparc)
#define ether_cmp(a,b) (sparc_ether_cmp((short *)a, (short *)b))
#endif 

#ifndef ether_cmp
#define ether_cmp(a,b) (bcmp((caddr_t)a,(caddr_t)b, 6))
#endif

/*
 * Copy Ethernet addresses from a to b - assumes that the two given
 * pointers can be referenced as shorts.  On architectures
 * where this is not the case, use bcopy instead.
 */
#if defined(sun2) || defined(sun3) || defined(sun3x)
#define ether_copy(a,b) { ((long *)b)[0]=((long *)a)[0]; \
 ((short *)b)[2]=((short *)a)[2]; }
#endif

#if defined(sparc)
#define ether_copy(a,b) { ((short *)b)[0]=((short *)a)[0]; \
 ((short *)b)[1]=((short *)a)[1]; ((short *)b)[2]=((short *)a)[2]; }
#endif

#ifndef ether_copy
#define ether_copy(a,b) (bcopy((caddr_t)a,(caddr_t)b, 6))
#endif

/*
 * Copy IP addresses from a to b - assumes that the two given
 * pointers can be referenced as shorts.  On architectures
 * where this is not the case, use bcopy instead.
 */
#if defined(sun2) || defined(sun3) || defined(sun3x)
#define ip_copy(a,b) { *((long *)b) = *((long *)a); }
#endif

#if defined(sparc)
#define ip_copy(a,b) { ((short *)b)[0]=((short *)a)[0]; \
 ((short *)b)[1]=((short *)a)[1]; }
#endif

#ifndef ip_copy
#define ip_copy(a,b) (bcopy((caddr_t)a,(caddr_t)b, 4))
#endif

#ifdef	KERNEL
struct	ether_addr etherbroadcastaddr;
struct	arptab *arptnew();
char *ether_sprintf();
#endif	KERNEL

#endif /*!_netinet_if_ether_h*/
*/

/*
 * The ifaddr structure contains information about one address
 * of an interface.  They are maintained by ./share/sys/sun/                                                                                       775       0      12            0  4425704660   6636                                                                                                                                                                                                                                                                                                                                                                      ./share/sys/sun/conf.c                                                                                 444       0      12        51035  4423622566  10036                                                                                                                                                                                                                                                                                                                                                                      #ifndef lint
static	char sccsid[] = "@(#)conf.c 5.58 88/12/16";
#endif

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */

#include <sys/param.h>
#include <sys/systm.h>
#include <sys/buf.h>
#include <sys/conf.h>
#include <sys/user.h>
#include <sys/proc.h>
#include <sys/file.h>
#include <sys/vnode.h>
#include <sys/acct.h>
#include <sys/stream.h>

extern int nulldev();
extern int nodev();

#ifdef VDDRV
extern int vd_unuseddev();
extern vdopen(), vdclose(), vdioctl();
#else
#define vd_unuseddev nodev
#define vdopen  nodev
#define vdclose nodev
#define vdioctl nodev
#endif


#include "ip.h"
#if NIPI > 0
extern int ipiopen(), ipiclose(), ipiread(), ipistrategy(), ipiwrite();
extern int ipidump(), ipiioctl(), ipisize();
#else
#define ipiopen         nodev
#define ipiclose        nodev
#define ipistrategy     nodev
#define ipiread         nodev
#define ipiwrite        nodev
#define ipidump         nodev
#define ipiioctl        nodev
#define ipisize         0
#endif
 
#include "xy.h"
#if NXY > 0
extern int xyopen(), xystrategy(), xyread(), xywrite();
extern int xydump(), xyioctl(), xysize();
#else
#define	xyopen		nodev
#define	xystrategy	nodev
#define	xyread		nodev
#define	xywrite		nodev
#define	xydump		nodev
#define	xyioctl		nodev
#define	xysize		0
#endif

#include "hrc.h"
#if NHRC > 0
extern int hrcopen(), hrcclose(), hrcmmap();
#else
#define	hrcopen		nodev
#define hrcclose	nodev
#define hrcmmap		nodev
#endif

#include "xd.h"
#if NXD > 0
extern int xdopen(), xdstrategy(), xdread(), xdwrite();
extern int xddump(), xdioctl(), xdsize();
#else
#define	xdopen		nodev
#define	xdstrategy	nodev
#define	xdread		nodev
#define	xdwrite		nodev
#define	xddump		nodev
#define	xdioctl		nodev
#define	xdsize		0
#endif

#include "st.h"
#if NST > 0
extern int stopen(), stclose(), stread(), stwrite(), stioctl(), ststrategy();
#else
#define	stopen		nodev
#define	stclose		nodev
#define	stread		nodev
#define	stwrite		nodev
#define	stioctl		nodev
#define	ststrategy	nodev
#endif

#include "ns.h"
#if NNS > 0
extern int
	nsopen(),
	nsread(),
	nswrite(),
	nssize(),
	nsioctl(),
	nsstrategy();
#else
#define	nsopen		nodev
#define	nsclose		nodev
#define	nsread		nodev
#define	nswrite		nodev
#define	nssize		0
#define	nsioctl		nodev
#define	nsstrategy	nodev
#endif

#include "rd.h"
#if NRD > 0
extern int
	rdopen(),
	rdread(),
	rdwrite(),
	rdsize(),
	rdioctl(),
	rdstrategy();
#else
#define	rdopen		nodev
#define	rdclose		nodev
#define	rdread		nodev
#define	rdwrite		nodev
#define	rdsize		0
#define	rdioctl		nodev
#define	rdstrategy	nodev
#endif

#include "ft.h"
#if NFT > 0
extern int
	ftopen(),
	ftclose(),
	ftread(),
	ftwrite(),
	ftsize(),
	ftioctl(),
	ftstrategy();
#else
#define	ftopen		nodev
#define	ftclose		nodev
#define	ftread		nodev
#define	ftwrite		nodev
#define	ftsize		0
#define	ftioctl		nodev
#define	ftstrategy	nodev
#endif

#include "mt.h"
#if NMT > 0
extern int tmopen(), tmclose(), tmstrategy(), tmread(), tmwrite();
extern int tmdump(), tmioctl();
#else
#define	tmopen		nodev
#define	tmclose		nodev
#define	tmstrategy	nodev
#define	tmread		nodev
#define	tmwrite		nodev
#define	tmdump		nodev
#define	tmioctl		nodev
#endif

#include "xt.h"
#if NXT > 0
extern int xtopen(), xtclose(), xtstrategy(), xtread(), xtwrite(), xtioctl();
#else
#define	xtopen		nodev
#define	xtclose		nodev
#define	xtstrategy	nodev
#define	xtread		nodev
#define	xtwrite		nodev
#define	xtioctl		nodev
#endif

#include "ar.h"
#if NAR > 0
extern int aropen(), arclose(), arstrategy(), arread(), arwrite(), arioctl();
#else
#define	aropen		nodev
#define	arclose		nodev
#define	arstrategy	nodev
#define	arread		nodev
#define	arwrite		nodev
#define	arioctl		nodev
#endif

#include "sd.h"
#if NSD > 0
extern int sdopen(), sdstrategy(), sdread(), sdwrite();
extern int sddump(), sdioctl(), sdsize();
#else
#define	sdopen		nodev
#define	sdstrategy	nodev
#define	sdread		nodev
#define	sdwrite		nodev
#define	sddump		nodev
#define	sdioctl		nodev
#define	sdsize		0
#endif

#include "sf.h"
#if NSF > 0
extern int sfopen(), sfclose(), sfstrategy(), sfread(), sfwrite();
extern int sfioctl(), sfsize();
#else
#define	sfopen		nodev
#define	sfclose		nodev
#define	sfstrategy	nodev
#define	sfread		nodev
#define	sfwrite		nodev
#define	sfioctl		nodev
#define	sfsize		0
#endif

#include "hd.h"
#if NHD > 0
extern int hdopen(), hdstrategy(), hdread(), hdwrite();
extern int hddump(), hdioctl(), hdsize();
#else
#define hdopen		nodev
#define hdstrategy	nodev
#define hdread		nodev
#define hdwrite		nodev
#define hddump		nodev
#define hdioctl		nodev
#define hdsize		0
#endif

#include "fd.h"
#if NFD > 0
extern int fdopen(), fdclose(), fdread(), fdstrategy(), fdwrite();
extern int fddump(), fdioctl(), fdsize();
#else
#define fdopen		nodev
#define fdclose		nodev
#define fdstrategy	nodev
#define fdread		nodev
#define fdwrite		nodev
#define fddump		nodev
#define fdioctl		nodev
#define fdsize		0
#endif

struct bdevsw	bdevsw[] =
{
	{ nodev,	nodev,		nodev,		nodev,		/*0*/
	  0,		0 },					/* was ip */
	{ tmopen,	tmclose,	tmstrategy,	tmdump,		/*1*/
	  0,		B_TAPE },
	{ nodev,	nodev,		nodev,		nodev,		/*2*/
	  0,		B_TAPE },				/* was ar */
	{ xyopen,	nulldev,	xystrategy,	xydump,		/*3*/
	  xysize,	0 },
	{ nodev,	nodev,		nodev,		nodev,		/*4*/
	  0,		0 },					/* was sw */
	{ nodev,	nodev,		nodev,		nodev,		/*5*/
	  nodev,	0 },					/* was nd */
	{ nodev,	nodev,		nodev,		nodev,		/*6*/
	  0,		0 },
	{ sdopen,	nulldev,	sdstrategy,	sddump,		/*7*/
	  sdsize,	0 },
	{ xtopen,	xtclose,	xtstrategy,	nodev,		/*8*/
	  0,		B_TAPE },
	{ sfopen,	sfclose,	sfstrategy,	nodev,		/*9*/
	  sfsize,	0 },
	{ xdopen,	nulldev,	xdstrategy,	xddump,		/*10*/
	  xdsize,	0 },
	{ stopen,	stclose,	ststrategy,	nodev,		/*11*/
	  0,		B_TAPE },
	{ nsopen,	nodev,		nsstrategy,	nodev,		/*12*/
	  nssize,	0 },
	{ rdopen,	nodev,		rdstrategy,	nodev,		/*13*/
	  rdsize,	0 },
	{ ftopen,	ftclose,	ftstrategy,	nodev,		/*14*/
	  ftsize,	0 },
	{ hdopen,	nulldev,	hdstrategy,	hddump,		/*15*/
	  hdsize,	0 },
	{ fdopen,	fdclose,	fdstrategy,	fddump,		/*16*/
	  fdsize,	0 },
	{ vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	/*17*/
	  0,		0 },
	{ vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	/*18*/
	  0,		0 },
	{ vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	/*19*/
	  0,		0 },
	{ vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	/*20*/
	  0,		0 },
	{ vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	/*21*/
	  0,		0 },
        { ipiopen,      ipiclose,       ipistrategy,    ipidump,        /*22*/
          ipisize,      0 },
};
int	nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]);

extern int swread(), swwrite();

extern int cnopen(), cnclose(), cnread(), cnwrite(), cnioctl(), cnselect();

extern struct streamtab wcinfo;

extern struct streamtab conskbd_info;

extern int consfbopen(), consfbclose(), consfbioctl(), consfbmmap();

#include "ms.h"
#if NMS > 0
extern struct streamtab consms_info;
#define	consmstab	&consms_info
#else
#define	consmstab	0
#endif

extern int syopen(), syread(), sywrite(), syioctl(), syselect();

extern int mmopen(), mmread(), mmwrite(), mmmmap();
#define	mmselect	seltrue

#include "vp.h"
#if NVP > 0
extern int vpopen(), vpclose(), vpwrite(), vpioctl();
#else
#define	vpopen		nodev
#define	vpclose		nodev
#define	vpwrite		nodev
#define	vpioctl		nodev
#endif

#include "vpc.h"
#if NVPC > 0
extern int vpcopen(), vpcclose(), vpcwrite(), vpcioctl();
#else
#define	vpcopen		nodev
#define	vpcclose	nodev
#define	vpcwrite	nodev
#define	vpcioctl	nodev
#endif

#include "zs.h"
#if NZS > 0
extern struct streamtab zsstab;
#define	zstab	&zsstab
#else
#define	zstab	0
#endif

#include "pty.h"
#if NPTY > 0
extern struct streamtab ptsinfo;
extern int ptcopen(), ptcclose(), ptcread(), ptcwrite(), ptcioctl();
extern int ptcselect();
#define	ptstab	&ptsinfo
#else
#define	ptstab	0
#define	ptcopen		nodev
#define	ptcclose	nodev
#define	ptcread		nodev
#define	ptcwrite	nodev
#define	ptcioctl	nodev
#define	ptcselect	nodev
#endif

#include "ropc.h"
#if NROPC > 0
extern int ropcopen(), ropcmmap();
#else
#define	ropcopen	nodev
#define	ropcmmap	nodev
#endif

#include "mti.h"
#if NMTI > 0
extern int mtireset();
extern struct streamtab mtistab;
#define	mtitab		&mtistab
#else
#define	mtireset	nodev
#define	mtitab		0
#endif

#include "mcp.h"
#if NMCP > 0
extern struct streamtab mcpstab;
extern struct streamtab mcppstab;
#define mcptab          &mcpstab
#define mcpptab		&mcppstab
#else
#define mcptab          0
#define mcpptab		0
#endif

#include "cgone.h"
#if NCGONE > 0
extern int cgoneopen(), cgonemmap(), cgoneioctl();
extern int cgoneclose();
#else
#define	cgoneopen	nodev
#define	cgonemmap	nodev
#define	cgoneioctl	nodev
#define	cgoneclose	nodev
#endif

#include "cgtwo.h"
#if NCGTWO > 0
extern int cgtwoopen(), cgtwommap(), cgtwoioctl();
extern int cgtwoclose();
#else
#define	cgtwoopen	nodev
#define	cgtwommap	nodev
#define	cgtwoioctl	nodev
#define	cgtwoclose	nodev
#endif


#include "cgfour.h"
#if NCGFOUR > 0
extern int cgfouropen(), cgfourclose(), cgfourioctl(), cgfourmmap();
#else
#define	cgfouropen	nodev
#define	cgfourclose	nodev
#define	cgfourioctl	nodev
#define	cgfourmmap	nodev
#endif

#include "gpone.h"
#if NGPONE > 0
extern int gponeopen(), gponemmap(), gponeioctl();
extern int gponeclose();
#else
#define	gponeopen	nodev
#define	gponemmap	nodev
#define	gponeioctl	nodev
#define	gponeclose	nodev
#endif

#include "win.h"
#if NWIN > 0
extern int winopen(), winclose(), winread(), winioctl(), winmmap(), winselect();
#else
#define	winopen		nodev
#define	winclose	nodev
#define	winread		nodev
#define	winioctl	nodev
#define winmmap		nodev
#define	winselect	nodev
#endif

int	logopen(), logclose(), logread(), logioctl(), logselect();

#include "sky.h"
#if NSKY > 0
extern int skyopen(), skyclose(), skymmap(), skyioctl();
#else
#define	skyopen		nodev
#define	skyclose	nodev
#define	skymmap		nodev
#define	skyioctl	nodev
#endif

#include "pi.h"
#if NPI > 0
extern struct streamtab piinfo;
#define	pitab	&piinfo
#else
#define	pitab	0
#endif

#include "bwone.h"
#if NBWONE > 0
extern int bwoneopen(), bwonemmap(), bwoneioctl();
extern int bwoneclose();
#else
#define	bwoneopen	nodev
#define	bwonemmap	nodev
#define	bwoneioctl	nodev
#define	bwoneclose	nodev
#endif

#include "bwtwo.h"
#if NBWTWO > 0
extern int bwtwoopen(), bwtwommap(), bwtwoioctl();
extern int bwtwoclose();
#else
#define	bwtwoopen	nodev
#define	bwtwommap	nodev
#define	bwtwoioctl	nodev
#define	bwtwoclose	nodev
#endif

#include "des.h"
#if NDES > 0
extern int desopen(), desclose(), desioctl();
#else
#define	desopen		nodev
#define	desclose	nodev
#define	desioctl	nodev
#endif

#ifdef FPU
#include "fpa.h"
#endif FPU
#if NFPA > 0
extern int fpaopen(), fpaclose(), fpaioctl();
#else
#define fpaopen		nodev
#define fpaclose	nodev
#define fpaioctl	nodev
#endif

#include "sp.h"
#if NSP > 0
extern struct streamtab spinfo;
#define	sptab	&spinfo
#else
#define	sptab	0
#endif

#include "clone.h"
#if NCLONE > 0
extern int cloneopen();
#else
#define	cloneopen	nodev
#endif

#include "pc.h"
#if NPC > 0
extern int pcopen(), pcclose(), pcioctl(), pcselect(), pcmmap();
#else
#define	pcopen		nodev
#define	pcclose		nodev
#define	pcioctl		nodev
#define	pcselect	nodev
#define	pcmmap		nodev
#endif

extern int dumpread(), dumpwrite();

/* Sunlink device driver entries */
#include "ifd.h"
#if NIFD > 0
int ifdopen(), ifdclose(), ifdread(), ifdwrite(), ifdioctl(), ifdselect();
#else
#define ifdopen		nodev
#define ifdclose	nodev
#define ifdread		nodev
#define ifdwrite	nodev
#define ifdioctl	nodev
#define ifdselect	nodev
#endif

#include "dcp.h"
#if NDCP > 0
int dcpopen(), dcpclose(), dcpread(), dcpwrite(), dcpdioctl(), dcpselect();
#else
#define dcpopen		nodev
#define dcpclose	nodev
#define dcpread		nodev
#define dcpwrite	nodev
#define dcpdioctl	nodev
#define dcpselect	nodev
#endif

#include "dnalink.h"
#if NDNALINK > 0
int dnaopen(), dnaclose(), dnaread(), dnawrite(), dnaioctl(), dnaselect();
#else
#define dnaopen		nodev
#define dnaclose	nodev
#define dnaread		nodev
#define dnawrite	nodev
#define dnaioctl	nodev
#define dnaselect	nodev
#endif

#include "tbi.h"
#if NTBI > 0
int tbiopen(), tbiclose(), tbiread(), tbiwrite(), tbidioctl();
#else
#define tbiopen		nodev
#define tbiclose	nodev
#define tbiread		nodev
#define tbiwrite	nodev
#define tbidioctl	nodev
#endif

#include "chat.h"
#if NCHAT > 0
int chatopen(), chatclose(), chatread(), chatwrite();
int chatioctl(), chatselect();
int chutopen(), chutclose(), chutread(), chutwrite();
int chutioctl(), chutselect();
#else
#define chatopen	nodev
#define chatclose	nodev
#define chatread	nodev
#define chatwrite	nodev
#define chatioctl	nodev
#define chatselect	nodev
#define chutopen	nodev
#define chutclose	nodev
#define chutread	nodev
#define chutwrite	nodev
#define chutioctl	nodev
#define chutselect	nodev
#endif

#include "sqzd.h"
#if NSQZD > 0
extern int sqzopen(), sqzclose(), sqzioctl();
#else
#define sqzopen         nodev
#define sqzclose        nodev
#define sqzioctl        nodev
#endif

/* streams NIT device */
#include "snit.h"
#if	NSNIT > 0
extern struct streamtab	snit_info;
#define	snittab	&snit_info
#else	NSNIT > 0
#define	snittab	0
#endif	NSNIT > 0

#include "cgthree.h"
#if NCGTHREE > 0
extern int cgthreeopen(), cgthreeclose(), cgthreemmap(), cgthreeioctl();
#else
#define	cgthreeopen	nodev
#define	cgthreeclose	nodev
#define	cgthreeioctl	nodev
#define	cgthreemmap	nodev
#endif

#include "cgeight.h"
#if NCGEIGHT > 0
extern int cgeightopen(), cgeightclose(), cgeightmmap(), cgeightioctl();
#else
#define	cgeightopen	nodev
#define	cgeightclose	nodev
#define	cgeightioctl	nodev
#define	cgeightmmap	nodev
#endif

#include "cgsix.h"
#if NCGSIX > 0
extern int cgsixopen(), cgsixclose(), cgsixmmap(), cgsixioctl();
#else
#define	cgsixopen	nodev
#define	cgsixclose	nodev
#define	cgsixioctl	nodev
#define	cgsixmmap	nodev
#endif

#include "pp.h"
#if NPP > 0
extern int ppopen(), ppclose(), ppwrite(), ppioctl();
#else
#define ppopen		nodev
#define ppclose		nodev
#define ppwrite		nodev
#define ppioctl		nodev
#endif

#include "taac.h"
#if NTAAC > 0
extern int taacopen(), taacmmap();
#else
#define	taacopen	nodev
#define	taacmmap	nodev
#endif

extern int seltrue();

struct cdevsw	cdevsw[] =
{
    {
	cnopen,		cnclose,	cnread,		cnwrite,	/*0*/
	cnioctl,	nulldev,	cnselect,	0,
	0,
    },
    {
	nodev,		nodev,		nodev,		nodev,		/*1*/
	nodev,		nodev,		nodev,		0,
	&wcinfo,
    },
    {
	syopen,		nulldev,	syread,		sywrite,	/*2*/
	syioctl,	nulldev,	syselect,	0,
	0,
    },
    {
	mmopen,		nulldev,	mmread,		mmwrite,	/*3*/
	nodev,		nulldev,	mmselect,	mmmmap,
	0,
    },
    {
	nodev,		nodev,		nodev,		nodev,		/*4*/
	nodev,		nodev,		nodev,		0,	/* was ip */
	0,
    },
    {
	tmopen,		tmclose,	tmread,		tmwrite,	/*5*/
	tmioctl,	nulldev,	seltrue,	0,
	0,
    },
    {
	vpopen,		vpclose,	nodev,		vpwrite,	/*6*/
	vpioctl,	nulldev,	seltrue,	0,
	0,
    },
    {
	nulldev,	nulldev,	swread,		swwrite,	/*7*/
	nodev,		nulldev,	nodev,		0,
	0,
    },
    {
	aropen,		arclose,	arread,		arwrite,	/*8*/
	arioctl,	nulldev,	seltrue,	0,
	0,
    },
    {
	xyopen,		nulldev,	xyread,		xywrite,	/*9*/
	xyioctl,	nulldev,	seltrue,	0,
	0,
    },
    {
	nodev,		nodev,		nodev,		nodev,		/*10*/
	nodev,		mtireset,	nodev,		0,
	mtitab,
    },
    {
	desopen,	desclose,	nodev,		nodev,		/*11*/
	desioctl,	nulldev,	nodev,		0,
	0,
    },
    {
	nodev,		nodev,		nodev,		nodev,		/*12*/
	nodev,		nodev,		nodev,		0,
	zstab,
    },
    {
	nodev,		nodev,		nodev,		nodev,		/*13*/
	nodev,		nulldev,	nodev,		0,
	consmstab,
    },
    {
	cgoneopen,	cgoneclose,	nodev,		nodev,		/*14*/
	cgoneioctl,	nodev,		seltrue,	cgonemmap,
	0,
    },
    {
	winopen,	winclose,	winread,	nodev,		/*15*/
	winioctl,	nodev,		winselect,	winmmap,
	0,
    },
    {
	logopen,	logclose,	logread,	nodev,		/*16*/
	logioctl,	nulldev,	logselect,	0,
	0,
    },
    {
	sdopen,		nulldev,	sdread,		sdwrite,	/*17*/
	sdioctl,	nulldev,	seltrue,	0,
	0,
    },
    {
	stopen,		stclose,	stread,		stwrite,	/*18*/
	stioctl,	nodev,		nodev,		0,
	0,
    },
    {
	nodev,		nodev,		nodev,		nodev,		/*19*/
	nodev,		nodev,		nodev,		0,	/* was nd */
	0,
    },
    {
	nodev,		nodev,		nodev,		nodev,		/*20*/
	nodev,		nodev,		nodev,		0,
	ptstab,
    },
    {
	ptcopen,	ptcclose,	ptcread,	ptcwrite,	/*21*/
	ptcioctl,	nulldev,	ptcselect,	0,
	0,
    },
    {
	consfbopen,	consfbclose,	nodev,		nodev,		/*22*/
	consfbioctl,	nodev,		nodev,		consfbmmap,
	0,
    },
    {
	ropcopen,	nulldev,	nodev,		nodev,		/*23*/
	nodev,		nulldev,	nodev,		ropcmmap,
	0,
    },
    {
	skyopen,	skyclose,	nodev,		nodev,		/*24*/
	skyioctl,	nulldev,	nodev,		skymmap,
	0,
    },
    {
	nodev,		nodev,		nodev,		nodev,		/*25*/
	nodev,		nodev,		nodev,		0,
	pitab,
    },
    {
	bwoneopen,	bwoneclose,	nodev,		nodev,		/*26*/
	bwoneioctl,	nodev,		seltrue,	bwonemmap,
	0,
    },
    {
	bwtwoopen,	bwtwoclose,	nodev,		nodev,		/*27*/
	bwtwoioctl,	nodev,		seltrue,	bwtwommap,
	0,
    },
    { 
	vpcopen,	vpcclose,	nodev,		vpcwrite,	/*28*/
	vpcioctl,	nulldev,	seltrue,	0,
	0,
    },
    {
	nodev,		nodev,		nodev,		nodev,		/*29*/
	nodev,		nulldev,	nodev,		0,
	&conskbd_info,
    },
    {
	xtopen,		xtclose,	xtread,		xtwrite,	/*30*/
	xtioctl,	nulldev,	seltrue,	0,
	0,
    },
    { 
	cgtwoopen,	cgtwoclose,	nodev,		nodev,		/*31*/
	cgtwoioctl,	nodev,		seltrue,	cgtwommap,
	0,
    },
    { 
	gponeopen,	gponeclose,	nodev,		nodev,		/*32*/
	gponeioctl,	nodev,		seltrue,	gponemmap,
	0,
    },
    {
	sfopen,		sfclose,	sfread,		sfwrite,	/*33*/
	sfioctl,	nulldev,	seltrue,	0,
	0,
    },
    {	
	fpaopen,	fpaclose,	nodev,		nodev,		/*34*/
	fpaioctl,	nodev,		nodev,		0,
	0,
    },
    {
	nodev,		nodev,		nodev,		nodev,		/*35*/
	nodev,		nodev,		nodev,		0,
	sptab,
    },
    {
	nodev,		nodev,		nodev,		nodev,		/*36*/
	nodev,		nodev,		nodev,		0,
	0,
    },
    {
	cloneopen,	nodev,		nodev,		nodev,		/*37*/
	nodev,		nodev,		nodev,		0,
	0,
    },
    {
	pcopen,		pcclose,	nodev,		nodev,		/*38*/
	pcioctl,	nodev,		pcselect,	pcmmap,
	0,
    },
    {
	cgfouropen,	cgfourclose,	nodev,		nodev,		/*39*/
	cgfourioctl,	nodev,		seltrue,	cgfourmmap,
	0,
    },
    {
	nodev,		nodev,		nodev,		nodev,		/*40*/
	nodev,		nodev,		nodev,		0,
	snittab,
    },
    {
	nulldev,	nulldev,	dumpread,	dumpwrite,	/*41*/
	nodev,		nulldev,	nodev,		0,
	0,
    },
    {
	xdopen,		nulldev,	xdread,		xdwrite,	/*42*/
	xdioctl,	nulldev,	seltrue,	0,
	0,
    },
    {
	hrcopen,	hrcclose,	nodev,		nodev,		/*43*/
	nodev,		nulldev, 	nodev,		hrcmmap,
	0,
    },
    {
	nodev,		nodev,		nodev,		nodev,		/*44*/
	nodev,		nodev,		nodev,		0,
	mcptab,
    },
    {
	ifdopen,	ifdclose,	ifdread,	ifdwrite,       /*45*/
	ifdioctl,	nulldev,	ifdselect,	0,
	0,
    },  
    {
	dcpopen,	dcpclose,	dcpread,	dcpwrite,	/*46*/
	dcpdioctl,	nulldev,	dcpselect,	0,
	0,
    },
    { 
	dnaopen,	dnaclose,	dnaread,	dnawrite,	/*47*/
	dnaioctl,	nulldev,	dnaselect,	0,
	0,
    },
    {
	tbiopen,	tbiclose,	tbiread,	tbiwrite,	/*48*/
	tbidioctl,	nulldev,	nulldev,	0,
	0,
    },
    {
	chatopen,	chatclose,	chatread,	chatwrite,	/*49*/
	chatioctl,	nulldev,	chatselect,	0,
	0,
    },
    {
	chutopen,	chutclose,	chutread,	chutwrite,	/*50*/
	chutioctl,	nulldev,	chutselect,	0,
	0,
    },
    {
	chutopen,	chutclose,	chutread,	chutwrite,	/*51*/
	chutioctl,	nulldev,	chutselect,	0,
	0,
    },
    { 
        sqzopen,        sqzclose,       nodev,          nodev,		/*52*/
        sqzioctl,       nodev,          nodev,          nodev,
        0,
    },
    {
	hdopen,		nulldev,	hdread,		hdwrite,	/*53*/
	hdioctl,	nulldev,	seltrue, 	0,
	0,
    },
    {
	fdopen,		fdclose,	fdread,		fdwrite,	/*54*/
	fdioctl,	nulldev,	seltrue, 	0,
	0,
    },
    {
	cgthreeopen,	cgthreeclose,	nodev,		nodev,		/*55*/
	cgthreeioctl,	nodev,		seltrue,	cgthreemmap,
	0,
    },
    {
	ppopen,		ppclose,	nodev,		ppwrite,	/*56*/
	ppioctl,	nodev,		nodev, 		0,
	0,
    },
    {
	vdopen,		vdclose,	nodev,		nodev,		/*57*/
	vdioctl,	nodev,		nodev, 		0,
	0,
    },
    {
	vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	/*58*/
	vd_unuseddev,	vd_unuseddev,	vd_unuseddev, 	0,
	0,
    },
    {
	vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	/*59*/
	vd_unuseddev,	vd_unuseddev,	vd_unuseddev, 	0,
	0,
    },
    {
	vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	/*60*/
	vd_unuseddev,	vd_unuseddev,	vd_unuseddev, 	0,
	0,
    },
    {
	vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	vd_unuseddev,	/*61*/
	vd_unuseddev,	vd_unuseddev,	vd_unuseddev, 	0,
	0,
    },
    {
	taacopen,	nulldev,	nodev,		nodev,		/*62*/
	nodev,		nodev,		seltrue,	taacmmap,	
	0,
    },
    {
	nodev,		nodev,		nodev,		nodev,		/*63*/
	nodev,		nodev,		nodev,		0,
	0,
    },
    {
	cgeightopen,	cgeightclose,	nodev,		nodev,		/*64*/
	cgeightioctl,	nodev,		seltrue,	cgeightmmap,
	0,
    },
    { 
        ipiopen,        nulldev,        ipiread,        ipiwrite,       /*65*/
        ipiioctl,       nodev,          nodev,          0,
        0,
    },
    {
	nodev,		nodev,		nodev,		nodev,		/*66*/
	nodev,		nodev,		nodev,		0,
	mcpptab,
    },
    {
	cgsixopen,	cgsixclose,	nodev,		nodev,		/*67*/
	cgsixioctl,	nodev,		seltrue,	cgsixmmap,
	0,
    },
};
int	nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);

int	mem_no = 3;	/* major device number of memory special file */
b spinfo;
#define	sptab	&spinfo
#else
#define	sptab	0
#endif

#include "clone.h"
#if NCLONE > 0
extern int cloneopen();
#else
#define	cloneopen	nodev
#endif

#include "pc.h"
#if NPC > 0
extern int pcopen(), pcclose(), pcioctl(), pcselect(), pcmmap();
#else
#define	pcopen		nodev
#define	pcclose		nodev
#define	pcioctl		nodev
#define	pcselect	nodev
#define	pcmmap		nodev
#endif

extern int dumpread(), dumpwrite();

/* Sunlink device driver entries */
#include "ifd.h"
#if NIFD > 0
in./share/sys/sun/dkio.h                                                                                 444       0      12        15364  4423267117  10046                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)dkio.h 5.26 89/03/16 SMI	*/

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */
#ifndef _DKIO_
#define _DKIO_

#include <sys/ioctl.h>
#include <sun/dklabel.h>

/*
 * Structures and definitions for disk io control commands
 */

/*
 * Structures used as data by ioctl calls.
 */

/*
 * Used for controller info
 */
struct dk_info {
	int	dki_ctlr;		/* controller address */
	short	dki_unit;		/* unit (slave) address */
	short	dki_ctype;		/* controller type */
	short	dki_flags;		/* flags */
};

#define	DK_DEVLEN	16		/* device name max length, including */
					/* unit # & NULL (ie - "xyc1") */
/*
 * Used for configuration info
 */
struct dk_conf {
	char	dkc_cname[DK_DEVLEN];	/* controller name (no unit #) */
	u_short	dkc_ctype;		/* controller type */
	u_short	dkc_flags;		/* flags */
	short	dkc_cnum;		/* controller number */
	int	dkc_addr;		/* controller address */
	u_int	dkc_space;		/* controller bus type */
	int	dkc_prio;		/* interrupt priority */
	int	dkc_vec;		/* interrupt vector */
	char	dkc_dname[DK_DEVLEN];	/* drive name (no unit #) */
	short	dkc_unit;		/* unit number */
	short	dkc_slave;		/* slave number */
};

/*
 * Controller types
 */
#define	DKC_UNKNOWN	0
/* 1 used to be Interphase 2180 */
#define	DKC_WDC2880	2
/* 3 used to be Interphase 2181 */
/* 4 used to be Xylogics 440 */
#define	DKC_DSD5215	5
#define	DKC_XY450	6
#define	DKC_ACB4000	7
#define DKC_MD21	8
/* 9 used to be Xylogics 751 */
#define DKC_NCRFLOPPY	10
/* #define	DKC_XB1401	10 does not match dkinfo.c*/
#define	DKC_XD7053	11
#define DKC_SMSFLOPPY	12
#define DKC_SCSI_CCS	13
#define	DKC_INTEL82072	14
#define	DKC_PANTHER	15


/*
 * Flags
 */
#define	DKI_BAD144	0x01	/* use DEC std 144 bad sector fwding */
#define	DKI_MAPTRK	0x02	/* controller does track mapping */
#define	DKI_FMTTRK	0x04	/* formats only full track at a time */
#define	DKI_FMTVOL	0x08	/* formats only full volume at a time */
#define DKI_FMTCYL      0x10    /* formats only full cylinders at a time */


/*
 * Used for drive info
 */
struct dk_type {
	u_short dkt_hsect;		/* hard sector count (read only) */
	u_short dkt_promrev;		/* prom revision (read only) */
	u_char	dkt_drtype;		/* drive type (ctlr specific) */
	u_char	dkt_drstat;		/* drive status (ctlr specific, ro) */
};

/*
 * Used for all partitions
 */
struct dk_allmap {
	struct dk_map	dka_map[NDKMAP];
};

/*
 * Used for bad sector map
 */
struct dk_badmap {
	caddr_t dkb_bufaddr;		/* address of user's map buffer */
};

/*
 * Definition of a disk's geometry
 */
struct dk_geom {
	unsigned short	dkg_ncyl;	/* # of data cylinders */
	unsigned short	dkg_acyl;	/* # of alternate cylinders */
	unsigned short	dkg_bcyl;	/* cyl offset (for fixed head area) */
	unsigned short	dkg_nhead;	/* # of heads */
	unsigned short	dkg_obs1;	/* obsolete */
	unsigned short	dkg_nsect;	/* # of data sectors per track */
	unsigned short	dkg_intrlv;	/* interleave factor */
	unsigned short	dkg_obs2;	/* obsolete */
	unsigned short	dkg_obs3;	/* obsolete */
	unsigned short	dkg_apc;	/* alternates per cyl (SCSI only) */
	unsigned short	dkg_rpm;	/* revolutions per minute */
	unsigned short	dkg_pcyl;	/* # of physical cylinders */
	unsigned short	dkg_extra[7];	/* for compatible expansion */
};
/*
 * These defines are for historic compatibility with old drivers.
 */
#define	dkg_bhead	dkg_obs1	/* used to be head offset */
#define	dkg_gap1	dkg_obs2	/* used to be gap1 */
#define	dkg_gap2	dkg_obs3	/* used to be gap2 */

/*
 * Used for generic commands
 */
struct dk_cmd {
	u_short	dkc_cmd;		/* command to be executed */
	int	dkc_flags;		/* execution flags */
	daddr_t	dkc_blkno;		/* disk address for command */
	int	dkc_secnt;		/* sector count for command */
	caddr_t	dkc_bufaddr;		/* user's buffer address */
	u_int	dkc_buflen;		/* size of user's buffer */
};

/*
 * Execution flags.
 */
#define	DK_SILENT	0x01		/* no error messages */
#define	DK_DIAGNOSE	0x02		/* fail if any error occurs */
#define	DK_ISOLATE	0x04		/* isolate from normal commands */

/*
 * Used for disk diagnostics
 */
struct dk_diag {
	u_short	dkd_errcmd;		/* most recent command in error */
	daddr_t	dkd_errsect;		/* most recent sector in error */
	u_char	dkd_errno;		/* most recent error number */
	u_char	dkd_severe;		/* severity of most recent error */
};

/* 
 * Used for floppies
 */
struct fdk_char{
	u_char medium;		/* type of medium */
	int transfer_rate;	/* transfer rate */
	int ncyl;		/* number of cylinders */
	int nhead;		/* number of heads */
	int sec_size;		/* sector size */
	int secptrack;		/* sectors per track */
	int steps;              /* number of steps per  */
};
		
struct fdk_state {
	int	fkc_bsec;		/* bytes per sector */
	int 	fkc_strack;		/* sectors per track */
	int	fkc_step;		/* step rate */
	int	fkc_rate;		/* data rate */
	int	fkc_error;		/* error returned by controller */
};

struct fdk_cmd {		/* used by generic command */
	struct dk_cmd dcmd;	/* disk command info */
	struct fdk_state fstate;/* floppy state info */
};

/* 
 * Floppy commands
 */
#define FKWRITE 	1
#define FKREAD  	2
#define FKSEEK		3
#define FKREZERO 	4
#define FKFORMAT_UNIT 	5
#define FKFORMAT_TRACK 	6

/* 
 * Severity values
 */
#define	DK_NOERROR	0
#define	DK_CORRECTED	1
#define	DK_RECOVERED	2
#define	DK_FATAL	3

/*
 * Error types
 */
#define	DK_NONMEDIA	0		/* not caused by a media defect */
#define	DK_ISMEDIA	1		/* caused by a media defect */

/*
 * Disk io control commands
 */
#define	DKIOCGGEOM	_IOR(d, 2, struct dk_geom)	/* Get geometry */
#define	DKIOCSGEOM	_IOW(d, 3, struct dk_geom)	/* Set geometry */
#define	DKIOCGPART	_IOR(d, 4, struct dk_map)	/* Get partition info */
#define	DKIOCSPART	_IOW(d, 5, struct dk_map)	/* Set partition info */
#define	DKIOCINFO	_IOR(d, 8, struct dk_info)	/* Get info */
#define	DKIOCGCONF	_IOR(d, 126, struct dk_conf)	/* Get conf info */
#define DKIOCSTYPE	_IOW(d, 125, struct dk_type)	/* Set drive info */
#define DKIOCGTYPE	_IOR(d, 124, struct dk_type)	/* Get drive info */
#define DKIOCSAPART	_IOW(d, 123, struct dk_allmap)	/* Set all partitions */
#define DKIOCGAPART	_IOR(d, 122, struct dk_allmap)	/* Get all partitions */
#define DKIOCSBAD	_IOW(d, 121, struct dk_badmap)	/* Set bad sector map */
#define DKIOCGBAD	_IOW(d, 120, struct dk_badmap)	/* Get bad sector map */
#define	DKIOCSCMD	_IOW(d, 119, struct dk_cmd)	/* Set generic cmd */
#define	DKIOCGDIAG	_IOR(d, 116, struct dk_diag)	/* Get diagnostics */
#define DKIOCWCHK       _IOWR(d, 115, int)              /* Toggle write check */
#define	FDKIOGCHAR	_IOR(d, 114, struct fdk_char)	/* Get characteristics */
#define	FDKIOSCHAR	_IOW(d, 113, struct fdk_char)	/* Set characteristics */
#define FDKEJECT        _IO(d, 112)                     /* Eject floppy disk */
#define FDKIOGNEWCHAR   _IOWR(d, 111, struct fdk_char)	/* Get characteristics */
#define FDKGETCHANGE    _IOWR(d, 110, int)	/* Get characteristics */
#define	FDKIOCSCMD	_IOWR(d, 106, struct fdk_cmd)	/* Generic command */

#endif !_DKIO_

,	0,
	0,
    },
    {
	tbiopen,	tbiclose,	tbiread,	tbiwrite,	/*48*/
	tbidioctl,	nulldev,	nulldev,	0,
	0,
    },
    {
	chatopen,	chatclose,	chatread,	chatwrite,	/*49*/
	chatioctl,	nulldev,	chatselect,	0,
	0,
    },
    {
	chutopen,	chutclose,	chutread,	chutwrite,	/*50./share/sys/sun/dklabel.h                                                                              444       0      12         3641  4423267117  10471                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)dklabel.h 5.10 88/09/14 SMI	*/

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */
#ifndef _DKLABEL_
#define _DKLABEL_

/*
 * Miscellaneous defines
 */
#define	DKL_MAGIC	0xDABE	/* magic number */
#define FKL_MAGIC       0xff    /* magic number for DOS floppies */
#define	NDKMAP	8		/* # of logical partitions */

/*
 * Format of a Sun SMD disk label.
 * Resides in cylinder 0, head 0, sector 0.
 *
 * sizeof(struct dk_label) should be 512 (sector size)
 */
struct dk_label {
	char	dkl_asciilabel[128];	/* for compatibility */
	char	dkl_pad[512-(128+NDKMAP*8+14*2)];
	unsigned short	dkl_rpm;	/* rotations per minute */
	unsigned short	dkl_pcyl;	/* # physical cylinders */
	unsigned short	dkl_apc;	/* alternates per cylinder */
	unsigned short	dkl_obs1;	/* obsolete */
	unsigned short	dkl_obs2;	/* obsolete */
	unsigned short	dkl_intrlv;	/* interleave factor */
	unsigned short	dkl_ncyl;	/* # of data cylinders */
	unsigned short	dkl_acyl;	/* # of alternate cylinders */
	unsigned short	dkl_nhead;	/* # of heads in this partition */
	unsigned short	dkl_nsect;	/* # of 512 byte sectors per track */
	unsigned short	dkl_obs3;	/* obsolete */
	unsigned short	dkl_obs4;	/* obsolete */
	/* */
	struct dk_map {			/* logical partitions */
		daddr_t	dkl_cylno;	/* starting cylinder */
		daddr_t dkl_nblk;	/* number of blocks */
	} dkl_map[NDKMAP];
	unsigned short	dkl_magic;	/* identifies this label format */
	unsigned short	dkl_cksum;	/* xor checksum of sector */
};

/*
 * These defines are for historic compatibility with old drivers.
 */
#define	dkl_gap1	dkl_obs1	/* used to be gap1 */
#define	dkl_gap2	dkl_obs2	/* used to be gap2 */
#define	dkl_bhead	dkl_obs3	/* used to be label head offset */
#define	dkl_ppart	dkl_obs4	/* used to by physical partition */
 
struct fk_label {                       /* DOS floppy label */
        u_char fkl_type;
        u_char fkl_magich;
        u_char fkl_magicl;
        u_char filler;
};

#endif !_DKLABEL_
fine FKREZERO 	4
#define FKFORMAT_UNIT 	5
#define FKFORMAT_TRACK 	6

/* 
 * Severity values
 */./share/sys/sun/fbio.h                                                                                 444       0      12         7540  4423267121  10007                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)fbio.h 5.14 88/09/19 SMI	*/

/*
 * Copyright 1986 by Sun Microsystems, Inc.
 */

#ifndef	fbio_DEFINED
#define	fbio_DEFINED

#ifndef ASM
/*
 * Frame buffer descriptor.
 * Returned by FBIOGTYPE ioctl on frame buffer devices.
 */
struct	fbtype {
	int	fb_type;	/* as defined below */
	int	fb_height;	/* in pixels */
	int	fb_width;	/* in pixels */
	int	fb_depth;	/* bits per pixel */
	int	fb_cmsize;	/* size of color map (entries) */
	int	fb_size;	/* total size in bytes */
};

#define	FBIOGTYPE _IOR(F, 0, struct fbtype)

#ifdef  KERNEL
struct  fbpixrect {
	struct  pixrect *fbpr_pixrect;  /* Pixrect of dev returned here */
};
 
#define FBIOGPIXRECT _IOWR(F, 1, struct fbpixrect)
#endif	KERNEL

/*
 * General purpose structure for passing info in and out of frame buffers
 * (used for gp1)
 */
struct	fbinfo {
	int		fb_physaddr;	/* physical frame buffer address */
	int		fb_hwwidth;	/* fb board width */
	int		fb_hwheight;	/* fb board height */
	int		fb_addrdelta;	/* phys addr diff between boards */
	unsigned char	*fb_ropaddr;	/* fb va thru kernelmap */
	int		fb_unit;	/* minor devnum of fb */
};

#define FBIOGINFO _IOR(F, 2, struct fbinfo)

/*
 * Color map I/O
 */
struct	fbcmap {
	int		index;		/* first element (0 origin) */
	int		count;		/* number of elements */
	unsigned char	*red;		/* red color map elements */
	unsigned char	*green;		/* green color map elements */
	unsigned char	*blue;		/* blue color map elements */
};

#define FBIOPUTCMAP _IOW(F, 3, struct fbcmap)
#define FBIOGETCMAP _IOW(F, 4, struct fbcmap)

/* 
 * Set/Get attributes 
 */
#define	FB_ATTR_NDEVSPECIFIC	8	/* no. of device specific values */
#define	FB_ATTR_NEMUTYPES	4	/* no. of emulation types */

struct fbsattr {
	int	flags;			/* misc flags */
#define	FB_ATTR_AUTOINIT	1	/* emulation auto init flag */
#define	FB_ATTR_DEVSPECIFIC	2	/* dev. specific stuff valid flag */
	int	emu_type;		/* emulation type (-1 if unused) */
	int	dev_specific[FB_ATTR_NDEVSPECIFIC];	/* catchall */
};

struct fbgattr {
	int	real_type;		/* real device type */
	int	owner;			/* PID of owner, 0 if myself */
	struct fbtype fbtype;		/* fbtype info for real device */
	struct fbsattr sattr;		/* see above */
	int	emu_types[FB_ATTR_NEMUTYPES];	/* possible emulations */
						/* (-1 if unused) */
};

#define	FBIOSATTR	_IOW(F, 5, struct fbsattr)
#define	FBIOGATTR	_IOR(F, 6, struct fbgattr)


/* 
 * Video control 
 * (the unused bits are reserved for future use)
 */
#define	FBVIDEO_OFF	0
#define	FBVIDEO_ON	1

#define	FBIOSVIDEO	_IOW(F, 7, int)
#define	FBIOGVIDEO	_IOR(F, 8, int)

/* Vertical retrace support. */
#define FBIOVERTICAL	_IOW(F, 9, int)

#endif !ASM

/* frame buffer type codes */
#define	FBTYPE_SUN1BW		0	/* Multibus mono */
#define	FBTYPE_SUN1COLOR	1	/* Multibus color */
#define	FBTYPE_SUN2BW		2	/* memory mono */
#define	FBTYPE_SUN2COLOR	3	/* color w/rasterop chips */
#define	FBTYPE_SUN2GP		4	/* GP1/GP2 */
#define	FBTYPE_SUN5COLOR	5	/* RoadRunner accelerator */
#define	FBTYPE_SUN3COLOR	6	/* memory color */
#define	FBTYPE_MEMCOLOR		7	/* memory 24-bit */
#define	FBTYPE_SUN4COLOR	8	/* memory color w/overlay */

#define FBTYPE_NOTSUN1          9       /* reserved for customer */
#define FBTYPE_NOTSUN2          10      /* reserved for customer */
#define FBTYPE_NOTSUN3          11      /* reserved for customer */
 
#define FBTYPE_SUNFAST_COLOR    12      /* accelerated 8bit */
#define FBTYPE_SUNROP_COLOR     13      /* MEMCOLOR with rop h/w */
#define FBTYPE_SUNFB_VIDEO      14      /* Simple video mixing */
#define FBTYPE_RESERVED5        15      /* reserved, do not use */
#define FBTYPE_RESERVED4        16      /* reserved, do not use */
#define FBTYPE_RESERVED3        17      /* reserved, do not use */
#define FBTYPE_RESERVED2        18      /* reserved, do not use */
#define FBTYPE_RESERVED1        19      /* reserved, do not use */

#define FBTYPE_LASTPLUSONE      20      /* max number of fbs (change as add) */

#endif	!fbio_DEFINED
s */
	int		fb_hwwidth;	/* fb board width */
	int		fb_hwheight;	/* fb board height */
	int		fb_addrdelta;	/* phys addr diff between boards */
	unsigned char	*fb_./share/sys/sun/str_conf.c                                                                             444       0      12         2376  4423622600  10677                                                                                                                                                                                                                                                                                                                                                                      #ifndef lint
static	char sccsid[] = "@(#)str_conf.c 1.10 88/09/09 Copyr 1986 Sun Micro";
#endif

/*
 * Copyright (c) 1986 by Sun Microsystems, Inc.
 */

#include <sys/param.h>
#include <sys/systm.h>
#include <sys/conf.h>
#include <sys/stream.h>

#include "nbuf.h"
#include "pf.h"
#include "kb.h"
#include "ms.h"
#include "tim.h"
#include "tirw.h"
#include "db.h"

#if	NNBUF > 0
extern struct streamtab	nb_info;
#endif
#if	NPF > 0
extern struct streamtab	pf_info;
#endif
#if	NKB > 0
extern struct streamtab kbd_info;
#endif
#if	NMS > 0
extern struct streamtab ms_info;
#endif
#if	NTIM > 0
extern struct streamtab timinfo;
#endif
#if	NTIRW > 0
extern struct streamtab trwinfo;
#endif
#if     NDB > 0
extern struct streamtab dbinfo;
#endif
extern struct streamtab	ldtrinfo;
extern struct streamtab	ttycompatinfo;

struct	fmodsw fmodsw[] =
{
#if	NNBUF > 0
	{ "nbuf",	&nb_info },
#endif
#if	NPF > 0
	{ "pf",		&pf_info },
#endif
#if	NKB > 0
	{ "kb",		&kbd_info },
#endif
#if	NMS > 0
	{ "ms",		&ms_info },
#endif
#if	NTIM > 0
	{ "timod",	&timinfo },
#endif
#if	NTIRW > 0
	{ "tirdwr",	&trwinfo },
#endif
#if     NDB > 0
{ "db",         	&dbinfo },
#endif
	{ "ldterm",	&ldtrinfo },
	{ "ttcompat",	&ttycompatinfo },
	{ "",		0 }
};

int	fmodcnt = sizeof (fmodsw) / sizeof (fmodsw[0]) - 1;
gned char	*red;		/* red color map elements */
	unsigned char	*green;		/* green color map elements */
	unsigned char	*blue;		/* blue color map elements */
};

#define FBIOPUTCMAP _IOW(F, 3, struct fbcmap)
#define FBIOGETCMAP _IOW(F, 4, struct fbcmap)

/* 
 * ./share/sys/sun/stubs.c                                                                                444       0      12         7077  4424742621  10234                                                                                                                                                                                                                                                                                                                                                                      #ifndef lint
static	char sccsid[] = "@(#)stubs.c 5.27 88/11/09 SMI";
#endif

/*
 * Stubs for routines that can't be configured
 * out with binary-only distribution.
 */
#include <sys/errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/protosw.h>
#include <sys/domain.h>
#include <net/if.h>
#include <ufs/quota.h>

#ifndef GENERIC
setconf() { }
#endif !GENERIC

#ifndef SYSACCT
sysacct() { return (ENODEV); }
acct() { }
#endif !SYSACCT

#ifndef SYSAUDIT
auditsys() { return(0); }
au_sysaudit() { return(0) ; }
void au_pathbuild() { }
void cwfree() { }
void cwincr() { }
#endif !SYSAUDIT

#ifndef QUOTA
void qtinit() { }
struct dquot *getinoquota() { return ((struct dquot *)0); }
int chkdq() { return (0); }
int chkiq() { return (0); }
void dqrele() { }
int closedq() { return (0); }
#endif !QUOTA

#ifndef NIT
struct ifnet *nit_ifwithaddr() { return ((struct ifnet *)0); }
nit_tap() {}
struct domain nitdomain =
	{ AF_NIT, "nit", 0, 0, 0, (struct protosw *)0, (struct protosw *)0 };
#endif !NIT

#include "snit.h"
#if NSNIT == 0
snit_intr() {}
#endif NSNIT == 0

#include "ether.h"
#if NETHER == 0
int arpioctl() { return (ENOPROTOOPT); }
int localetheraddr() { return (0); }
#endif NETHER == 0

#include "kb.h"
#if NKB == 0
kbdreset() {}
kbdsettrans() {}
#endif NKB == 0

#include "ms.h"
#if NMS == 0
msintr() { }
#endif NMS == 0

#include "zs.h"
#if NZS == 0
zslevel6intr() { panic("level 6 interrupt and no ZS device configured"); }
#endif NZS == 0

#ifndef IPCSEMAPHORE
seminit() {}
semexit() {}
#endif !IPCSEMAPHORE

#ifndef IPCMESSAGE
msginit() {}
#endif !IPCMESSAGE

#ifndef IPCSHMEM
shmexec() {}
shmfork() {}
shmexit() {}
#endif !IPCSHMEM

#include "fpa.h"
#if NFPA == 0
int fpa_fork_context() { return (0); }
fpa_shutdown() {}
fpa_dorestore() {}
fpa_save() {}
fpa_restore() {}
#endif NFPA == 0

#ifndef UFS
int ilock() {}
int iunlock() {}
struct vnodeops *ufs_vnodeops;
int old_ufs_readdir() {}
#endif

/*
 * Sun2 stuff
 */
#ifdef sun2

#include "sky.h"
#if NSKY == 0
skysave() { }
skyrestore() { }
#endif NSKY == 0

#include "pi.h"
#if NPI == 0
short *piaddr, pilast;
piintr() {}
#endif NPI == 0

#endif sun2

#include "win.h"
#if NWIN > 0

/* stubs needed when some frame buffer drivers are configured out */

#include "cgtwo.h"
#if NCGTWO == 0
cg2_putcolormap() {}	/* for pixrect/pr_dblbuf.c */
cgtwo_wait() {}		/* for pixrect/pr_dblbuf.c */
#endif NCGTWO == 0

#include "gpone.h"
#if NGPONE == 0
gp1_sync() {}		/* for pixrect/cg2_{colormap,rop}.c */
#endif NGPONE == 0

#include "cgfour.h"
#if NCGFOUR == 0
cg4_putattributes() {}	/* for pixrect/pr_plngrp.c */
#endif NCGFOUR == 0

#include "cgeight.h"
#if NCGEIGHT == 0
cg8_putattributes() {}	/* for pixrect/pr_plngrp.c */
#endif NCGEIGHT == 0

#include "cgsix.h"
#if NCGSIX == 0
cg6_putattributes() {}	/* for pixrect/pr_plngrp.c */
#endif NCGSIX == 0

#else NWIN

/* stubs needed when windows are configured out */

#ifdef sun2

#include "bwone.h"
#if NBWONE > 0
bw1_rop() {}
bw1_putcolormap() {}
bw1_putattributes() {}
#endif NBWONE > 0

#include "cgone.h"
#if NCGONE > 0
cg1_rop() {}
cg1_putcolormap() {}
cg1_putattributes() {}
#endif NCGONE > 0

#endif sun2

#include "bwtwo.h"
#if NBWTWO > 0
mem_rop() {}
mem_putcolormap() {}
mem_putattributes() {}
#endif NBWTWO > 0

#include "cgtwo.h"
#if NCGTWO > 0
cg2_rop() {}
cg2_putcolormap() {}
cg2_putattributes() {}
#endif NCGTWO > 0

#include "cgfour.h"
#if NCGFOUR > 0
/* mem_rop(), mem_putcolormap() taken care of above */
cg4_putattributes() {}
#endif NCGFOUR > 0

#include "cgeight.h"
#if NCGEIGHT > 0
cg8_putattributes() {}
#endif NCGEIGHT > 0

#endif NWIN

#ifndef CRYPT
int _des_crypt() { return (0); }
#endif
 Get characteristics */
#define FDKGETCHANGE    _IOWR(d, 110, int)	/* Get characteristics */
#define	FDKIOCSCMD	_IOWR(d, 106, struct fdk_cmd)	/* Generic command */

#endif !_DKIO_

,	0,
	0,
    },
    {
	tbiopen,	tbiclose,	tbiread,	tbiwrite,	/*48*/
	tbidioctl,	nulldev,	nulldev,	0,
	0,
    },
    {
	chatopen,	chatclose,	chatread,	chatwrite,	/*49*/
	chatioctl,	nulldev,	chatselect,	0,
	0,
    },
    {
	chutopen,	chutclose,	chutread,	chutwrite,	/*50./share/sys/sun/swapgeneric.c                                                                          444       0      12        37107  4423266637  11427                                                                                                                                                                                                                                                                                                                                                                      #ifndef lint
static  char sccsid[] = "@(#)swapgeneric.c 5.45 89/02/25 SMI";
#endif

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 *
 * XXX - This stuff is no longer generic or swap related
 * and should probably be moved to autoconf.c.
 */
#include <sys/param.h>
#include <sys/conf.h>
#include <sys/buf.h>
#include <sys/vm.h>
#include <sys/systm.h>
#include <sys/reboot.h>
#include <sys/file.h>
#include <sys/vfs.h>
#undef NFSCLIENT
#include <sys/mount.h>

#include <machine/pte.h>
#include <sundev/mbvar.h>
#include <mon/sunromvec.h>

/*
 * Generic configuration;  all in one
 */
dev_t	rootdev;
struct vnode *rootvp;

#include "ip.h"
#if NIPI > 0
extern  struct mb_driver ipidriver;
#endif

#include "xd.h"
#if NXD > 0
extern	struct mb_driver xdcdriver;
#endif

#include "xy.h"
#if NXY > 0
extern	struct mb_driver xycdriver;
#endif

# include "xt.h"
#if NXT > 0
extern	struct mb_driver xtcdriver;
#endif

# include "mt.h"
#if NMT > 0
extern	struct mb_driver tmdriver;
#endif

#include "sc.h"
#if NSC > 0
extern	struct mb_driver scdriver;
#endif

#include "si.h"
#if NSI > 0
extern	struct mb_driver sidriver;
#endif

#include "se.h"
#if NSE > 0
extern	struct mb_driver sedriver;
#endif

#include "sw.h"
#if NSW > 0
extern	struct mb_driver swdriver;
#endif

#include "sm.h"
#if NSM > 0
extern	struct mb_driver smdriver;
#endif

#include "wds.h"
#if NWDS > 0
extern	struct mb_driver wdsdriver;
#endif

#include "ns.h"
#if NNS > 0
extern	struct mb_driver nsdriver;
#endif

#include "rd.h"
#if NRD > 0
extern	struct mb_driver rddriver;
#endif

#include "fd.h"
#if NFD > 0
extern	struct mb_driver fdcdriver;
#endif

#include "hd.h"
#if NHD > 0
extern	struct mb_driver hdcdriver;
#endif

#include "ft.h"
#if NFT > 0
extern	struct mb_driver ftdriver;
#endif

struct	bdevlist {
	char	*bl_name;
	struct mb_driver *bl_driver;
	dev_t	bl_root;
	int	bl_exists;
} bdevlist[] = {

#if NIPI > 0
        {"ip", &ipidriver, makedev(22, 0)},
#endif

#if NXD > 0
	{"xd", &xdcdriver, makedev(10, 0)},
#endif

#if NXY > 0
	{"xy", &xycdriver, makedev(3, 0)},
#endif

#if NSC > 0
	{"sd", &scdriver, makedev(7, 0)},
#endif

#if NSI > 0
	{"sd", &sidriver, makedev(7, 0)},
#endif

#if NSE > 0
	{"sd", &sedriver, makedev(7, 0)},
#endif

#if NSW > 0
	{"sd", &swdriver, makedev(7, 0)},
#endif

#if NSM > 0
	{"sd", &smdriver, makedev(7, 0)},
#endif

#if NWDS > 0
	{"sd", &wdsdriver, makedev(7, 0)},
#endif

#if NRD > 0
	{"rd", &rddriver, makedev(13, 0)},
#endif

#if NNS > 0
	{"ns", &nsdriver, makedev(12, 0)},
#endif

#if NHD > 0
	{"hd", &hdcdriver, makedev(15, 0)},
#endif

#ifdef ROOT_ON_FLOPPY
#if NFD > 0
	{"fd", &fdcdriver, makedev(16, 0)},
#endif
#endif ROOT_ON_FLOPPY

#ifdef ROOT_ON_TAPE
#include "st.h"
#if NST > 0
#   if NSC > 0
	{"st", &scdriver, makedev(11, 4)},
#   endif
#   if NSI > 0
	{"st", &sidriver, makedev(11, 4)},
#   endif
#   if NSE > 0
	{"st", &sedriver, makedev(11, 4)},
#   endif
#   if NSW > 0
	{"st", &swdriver, makedev(11, 4)},
#   endif
#   if NSM > 0
	{"st", &smdriver, makedev(11, 4)},
#   endif
#   if NWDS > 0
	{"st", &wdsdriver, makedev(11, 4)},
#   endif
#endif NST > 0

#if NXT > 0
	{"xt", &xtcdriver, makedev(8, 4)},
#endif

#if NMT > 0
	{"mt", &tmdriver, makedev(1, 4)},
#endif
#endif ROOT_ON_TAPE
	{0}
};

#include "sd.h"
#if NRD > 0
/*
 * If the ram disk is intialized from tape, it needs to
 * use the character device to skip to the right file.
 */
struct	cdevlist {
	char	*cl_name;
	struct mb_driver *cl_driver;
	dev_t	cl_croot;
	dev_t	cl_broot;
	int	cl_exists;
} cdevlist[] = {

#if NIPI > 0
        {"ip", &ipidriver, makedev(65, 0), makedev(22, 0)},
#endif
 
#include "st.h"
#if NST > 0
#  if NSC > 0
	{"st", &scdriver, makedev(18, 4), makedev(11, 4)},
#  endif
#  if NSI > 0
	{"st", &sidriver, makedev(18, 4), makedev(11, 4)},
#  endif
#  if NSE > 0
	{"st", &sedriver, makedev(18, 4), makedev(11, 4)},
#  endif
#  if NSM > 0
	{"st", &smdriver, makedev(18, 4), makedev(11, 4)},
#  endif
#  if NWDS > 0
	{"st", &wdsdriver, makedev(18, 4), makedev(11, 4)},
#  endif
#endif NST > 0

#if NXT > 0
	{"xt", &xtcdriver, makedev(30, 4), makedev(8, 4)},
#endif

#if NMT > 0
	{"mt", &tmdriver, makedev(5, 4), makedev(1, 4)},
#endif

#if NXD > 0
	{"xd", &xdcdriver, makedev(42, 0), makedev(10, 0)},
#endif

#if NXY > 0
	{"xy", &xycdriver, makedev(9, 0), makedev(3, 0)},
#endif

#if NSC > 0
	{"sd", &scdriver, makedev(17, 0), makedev(7, 0)},
#endif

#if NSI > 0
	{"sd", &sidriver, makedev(17, 0), makedev(7, 0)},
#endif

#if NSE > 0
	{"sd", &sedriver, makedev(17, 0), makedev(7, 0)},
#endif

#if NSW > 0
	{"sd", &swdriver, makedev(17, 0), makedev(7, 0)},
#endif

#if NSM > 0
	{"sd", &smdriver, makedev(17, 0), makedev(7, 0)},
#endif

#if NWDS > 0
	{"sd", &wdsdriver, makedev(17, 0), makedev(7, 0)},
#endif

#if NFT > 0
	{"ft", &ftdriver, -1, makedev(14, 0)},
#endif

	{0}
};
#endif NRD > 0

struct vfssw *
getfstype(askfor, fsname)
	char *askfor;
	char *fsname;
{
	int fstype;
	extern char *strcpy();

#ifdef notdef
	return (&vfssw[MOUNT_NFS]);
#endif
	if (boothowto & RB_ASKNAME) {

		for (fsname[0] = '\0'; fsname[0] == '\0'; ) {
			printf("%s filesystem type ( ", askfor);
			for (fstype = 0; fstype < MOUNT_MAXTYPE; fstype++) {
				if (vfssw[fstype].vsw_name)
					printf("%s ", vfssw[fstype].vsw_name);
			}
			printf(" ): ");
			gets(fsname);
			for (fstype = 0; fstype < MOUNT_MAXTYPE; fstype++) {
				if (vfssw[fstype].vsw_name == 0) {
					continue;
				}
				if (*fsname == '\0') {
					(void) strcpy(fsname,
					    vfssw[fstype].vsw_name);
					return (&vfssw[fstype]);
				}
				if (strcmp(vfssw[fstype].vsw_name, fsname)==0) {
					return (&vfssw[fstype]);
				}
			}
			printf("Unknown filesystem type '%s'\n", fsname);
			*fsname = '\0';
		}
	} else if (*fsname) {
		for (fstype = 0; fstype < MOUNT_MAXTYPE; fstype++) {
			if (vfssw[fstype].vsw_name == 0) {
				continue;
			}
			if (strcmp(vfssw[fstype].vsw_name, fsname) == 0) {
				return (&vfssw[fstype]);
			}
		}
	}
	return ((struct vfssw *)0);
}

/*
 * If booted with ASKNAME, prompt on the console for a filesystem
 * name and return it.
 */
getfsname(askfor, name)
	char *askfor;
	char *name;
{

	if (boothowto & RB_ASKNAME) {
		printf("%s name: ", askfor);
		gets(name);
	}
}

/*
 * Return the device number and name of the first
 * block device in the bdevlist that can be opened.
 * If booted with the -a flag, ask user for device name.
 * Name must be at least 128 bytes long.
 * askfor is one of "root" or "swap".
 */
dev_t
getblockdev(askfor, name)
	char *askfor;
	char *name;
{
	register struct bdevlist *bl;
	int unit, part, i;
	static int first_time = 0;

	if (boothowto & RB_ASKNAME) {
		for (bl = bdevlist; bl->bl_name; bl++) {
			if (first_time)
				break;

			if ((bl->bl_exists = chkroot(bl)) > 0)  {
				continue;		/* Found one */
			} else if (bl->bl_exists < 0) {
				bl->bl_exists = 0;	/* Nobody home */
				continue;
			}
			/* We don't check for extra tape units.  */
			if ((bdevsw[major(bl->bl_root)].d_flags & B_TAPE))
				continue;
			/*
			 * Controller present; unit 0 is not.  Check for
			 * additional units 1-6.
			 */
			for (i = 1; i <= 6; i++) {
				register int root;

				root = bl->bl_root;
				bl->bl_root = makedev(major(bl->bl_root), i<<3);
				bl->bl_exists = chkroot(bl);
				bl->bl_root = root;
				if (bl->bl_exists > 0)
					break;
			}
		}
		first_time = 1;

		for (unit = -1; unit == -1; ) {
			/*
			 * SCSI makes things complicated since disks, tapes,
			 * and other devices are hung off the same controller.
			 * Thus, we have to use the bdev table name.
			 */
			printf("%s device ( ", askfor);
			for (bl = bdevlist; bl->bl_name; bl++) {
				if (bl->bl_exists)
					printf("%s%%d[a-h] ", bl->bl_name);
			}
			printf("): ");
			gets(name);
			if (*name == '\0') {
				bl = bdevlist;
				unit = 0;
				if (strcmp (askfor, "swap") == 0)
					part = 1;
				else 
					part = 0;
				break;
			}
			for (bl = bdevlist; bl->bl_name; bl++) {
				if (bl->bl_name[0] == name[0]  &&
				    bl->bl_name[1] == name[1])
					break;
			}
			if (!bl->bl_name) {
				printf("unknown device name %c%c\n",
				    name[0], name[1]);
				continue;
			}
			if (strcmp (askfor, "swap") == 0)
				part = 1;
			else 
				part = 0;

			/* Get unit number */
			if (name[2] < '0'  ||  name[2] > '9') {
				printf("bad/missing unit number\n");
				continue;
			}
			unit = name[2] - '0';
			if (name[3] >= '0'  &&  name[3] <= '9') {
				unit = (unit *10) + (name[3] - '0');

				/* Get partition, if unit > 10 */
				if (name[4] >= 'a'  &&  name[4] <= 'h') {
					part = name[4] - 'a';
				} else if (name[4] != '\0') {
					printf("bad partition (use a-h)\n");
					continue;
				}

			/* Get partition, if unit < 10 */
			} else if (name[3] >= 'a'  &&  name[3] <= 'h') {
				part = name[3] - 'a';
			} else if (name[3] != '\0') {
				printf("bad partition (use a-h)\n");
				continue;
			}
		}
	} else {
		unit = 0;
		part = 0;
		/*
		 * If a name was given, find that block device and use it.
		 */
		if (*name != '\0') {
			for (bl = bdevlist; bl->bl_name; bl++) {
				if (bl->bl_name[0] == name[0]  &&
				    bl->bl_name[1] == name[1]) {
					if (name[2] != '\0')
						unit = name[2] - '0';
					if (name[3] != '\0')
						part = name[3] - 'a';
					bl->bl_root = makedev(major(bl->bl_root),
					      minor(bl->bl_root) | unit <<3);
					if (chkroot(bl) > 0)
						goto found;
				}
			}
			return ((dev_t)0);
		}
		/*
		 * Look for device we booted from and use it if found.
		 */
		for (bl = bdevlist; bl->bl_name; bl++) {
			register struct bootparam *bp = (*romp->v_bootparam);

			if (!((*bl->bl_name == bp->bp_dev[0])  &&
				(*(bl->bl_name+1) == bp->bp_dev[1])))
				continue;
			/*
			 * FIXME: We need something like a conf table
			 * to track kernel conf file changes.
			 */
			if (name[0] == 's'  &&  name[1] == 'd')
				unit = (unit & 0xF8) >>2 | (unit & 0x01);
			else
				unit = bp->bp_unit >> 2;
			part = bp->bp_part;
			bl->bl_root = makedev(major(bl->bl_root),
				      minor(bl->bl_root) | unit <<3);
			if (chkroot(bl) > 0)
				goto found;
		}

		/*
		 * Last chance, use the first device that can be opened
		 */
		unit = 0;
		part = 0;
		if (strcmp (askfor, "swap") == 0)
			part = 1;
		for (bl = bdevlist; bl->bl_name; bl++) {
			if (chkroot(bl) > 0)
				goto found;
		}
		return ((dev_t)0);
	}

found:
	name[0] = bl->bl_name[0];
	name[1] = bl->bl_name[1];
	if (unit > 9) {
		name[2] = '0' + (unit / 10);
		name[3] = '0' + (unit % 10);
		name[4] = 'a' + part;
		name[5] = '\0';
	} else {
		name[2] = '0' + unit;
		name[3] = 'a' + part;
		name[4] = '\0';
	}
	return (makedev(major(bl->bl_root), minor(bl->bl_root)|(unit*8+part)));
}

#if NRD > 0
/*
 * The ram disk driver is initialized from another device
 * that contains the image of a 4.2 file system.
 *
 * Return the device number and name of the first
 * char device in the cdevlist that can be opened.
 * Name must be at least 128 bytes long.
 */
int
getchardev(askfor, name, fileno, cdev, bdev)
	char	*askfor, *name;
	int	*fileno;	/* -1 or file number on tape */
	dev_t	*cdev, *bdev;
{
	register struct cdevlist *cl;
	int	unit, part;

	for (cl = cdevlist; cl->cl_name; cl++) {
		if ((cl->cl_exists = chkcdev(cl)) > 0) {
			continue;		/* Found it */
		} else if (cl->cl_exists < 0) {
			cl->cl_exists = 0;	/* Nobody home */
			continue;
		}
		/*
		 * If st0 failed, check second host adapter for st2.
		 * Note, we use the block device so we don't confuse
		 * the ram disk driver.
		 */
		if (cl->cl_name[0] == 's'  &&  cl->cl_name[1] == 't') {
			register int root;

			root = cl->cl_croot;
			cl->cl_croot = makedev(major(cl->cl_croot), 2 +4);
			cl->cl_exists = chkcdev(cl);
			cl->cl_croot = root;
		}
	}

	for (unit = -1; unit == -1; ) {
		printf("%s device ( ", askfor);
		for (cl = cdevlist; cl->cl_name; cl++) {
			if (cl->cl_exists)
				printf("%s%%d[a-h] ", cl->cl_name);
		}
		printf("): ");
		gets(name);
		if (*name == '\0') {
			cl = cdevlist;
			unit = 0;
			part = 0;
			break;
		}
		for (cl = cdevlist; cl->cl_name; cl++) {
			if (cl->cl_name[0] == name[0]  &&
			    cl->cl_name[1] == name[1])
				break;
		}
		if (!cl->cl_name) {
			printf("unknown device name %c%c\n",
			    name[0], name[1]);
			continue;
		}

		/* Get unit number */
		if (name[2] < '0'  ||  name[2] > '9') {
			printf("bad/missing unit number\n");
			continue;
		}
		unit = name[2] - '0';
		part = 0;
		if (name[3] >= '0'  &&  name[3] <= '9') {
			unit = (unit *10) + (name[3] - '0');

			/* Get partition, if unit > 10 */
			if (name[4] >= 'a'  &&  name[4] <= 'h') {
				part = name[4] - 'a';
			} else if (name[4] != '\0') {
				printf("bad partition (use a-h)\n");
				continue;
			}

		/* Get partition, if unit < 10 */
		} else if (name[3] >= 'a'  &&  name[3] <= 'h') {
			part = name[3] - 'a';
		} else if (name[3] != '\0') {
			printf("bad partition (use a-h)\n");
			continue;
		}
	}

found:
	name[0] = cl->cl_name[0];
	name[1] = cl->cl_name[1];
	if (unit > 9) {
		name[2] = '0' + (unit / 10);
		name[3] = '0' + (unit % 10);
		name[4] = 'a' + part;
		name[5] = '\0';
	} else {
		name[2] = '0' + unit;
		name[3] = 'a' + part;
		name[4] = '\0';
	}

	/* If the device is a tape, prompt for the file number */
	if ((bdevsw[major(cl->cl_broot)].d_flags & B_TAPE) != 0) {
		char	buf[40];
		register char	*p = buf;
		register int	num;

		p = buf;
		do {
			printf("Tape file number? ");
			gets(p);
		} while (!*p  ||  *p < '0'  ||  *p > '9');

		for (num = 0; *p  &&  *p >= '0'  &&  *p <= '9'; ++p)
			num = (num * 10) + *p - '0';

		*fileno = num;

		*bdev = makedev(major(cl->cl_broot),
		    minor(cl->cl_broot) | unit);
		*cdev = makedev(major(cl->cl_croot),
		    minor(cl->cl_croot) | unit);

	} else {
		*fileno = -1;

		*bdev = makedev(major(cl->cl_broot),
		    minor(cl->cl_broot) | (unit*8+part));
		*cdev = makedev(major(cl->cl_croot),
		    minor(cl->cl_croot) | (unit*8+part));
	}
}

chkcdev(cl)
	register struct cdevlist *cl;
{
	register struct mb_device *md;
	register int status = -1;

	for (md = mbdinit; md->md_driver; md++) {
		short	maj;

		/* looking for correct driver and unit number */
		if (md->md_alive == 0  ||  md->md_driver != cl->cl_driver)
			continue;
#ifdef		not
		/*
		 * If want things exact; but slow...
		 * Then reverse this ifdef.
		 */
		status = 0;
		maj = major(cl->cl_croot);
		if ((*cdevsw[maj].d_open)(cl->cl_croot, FREAD) == 0) {
			(void)(*cdevsw[maj].d_close)(cl->cl_croot, FREAD);
			return (1);
		}
#else		not
		return (1);
#endif		not
	}
	/*
	 * The device was not in the system maintained list of mainbus devices.
	 * Check for a pseudo device that is usable as a root or swap device.
	 */
	if ((cl->cl_driver->mdr_flags & MDR_PSEUDO) != 0)
		return (1);
	return (status);
}
#endif NRD > 0

/*
 * Check for block device presence.  Returns -1 (no controller),
 * 0 (controller present but no unit), or 1 (controller and unit present).
 */
chkroot(bl)
	register struct bdevlist *bl;
{
	register struct mb_device *md;
	register int status = -1;

	for (md = mbdinit; md->md_driver; md++) {
		short	maj;

		if (md->md_alive == 0  ||  md->md_driver != bl->bl_driver)
			continue;
		status = 0;
		maj = major(bl->bl_root);
		if ((*bdevsw[maj].d_open)(bl->bl_root, FREAD) == 0) {
			(void)(*bdevsw[maj].d_close)(bl->bl_root, FREAD);
			return (1);
		}
	}
	/*
	 * The device was not in the system maintained list of mainbus devices.
	 * Check for a pseudo device that is usable as a root or swap device.
	 */
	if ((bl->bl_driver->mdr_flags & MDR_PSEUDO) != 0)
		return (1);
	return (status);
}

getchar()
{
	register c;

	c = cngetc();
	if (c == '\r')
		c = '\n';
	cnputc(c);
	return (c);
}

gets(cp)
	char *cp;
{
	register char *lp;
	register c;

	lp = cp;
	for (;;) {
		c = getchar() & 0177;
		switch (c) {

		case '\n':
			*lp++ = '\0';
			return;

		case 0177:
			cnputc('\b');
		case '\b':
			cnputc(' ');
			cnputc('\b');
		case '#':
			lp--;
			if (lp < cp)
				lp = cp;
			continue;

		case '@':
		case 'u'&037:
			lp = cp;
			cnputc('\n');
			continue;

		default:
			*lp++ = c;
		}
	}
}
ype = 0; fstype < MOUNT_MAXTYPE; fstype++) {
			if (vfssw[fstype].vsw_name == 0) {
				continue;
			}
			if (strcmp(vfssw[fstype].vsw_name, fsname) == 0) {
				return (&vfssw[fstype]);
			}
		}
	}
	return ((struct vfssw *)0);
}

/*
 * If booted with ASKNAME, prompt on the console for a filesystem
 * name and return it.
 */
getfsname(askfor, name)
	char *askfor;
	char *name;
{

	if (boothowto & RB_ASKNAME) {
		printf("%s name: ", askfor);./share/sys/sun/vm_hat.h                                                                               444       0      12        12705  4423267124  10370                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)vm_hat.h  1.28 89/01/12 SMI	*/

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */

/*
 * VM - Hardware Address Translation management.
 *
 * This file describes the contents of the machine specific
 * hat data structures and the machine specific hat procedures.
 * The machine independent interface is described in <vm/hat.h>.
 */

struct ctx {
	u_char	c_lock: 1;
	u_char	c_clean: 1;		/* this ctx has no lines in cache */
	u_char	: 6;
	u_char	c_num;			/* hardware info (context number) */
	u_short	c_time;			/* pseudo-time for ctx lru */
	struct	as *c_as;		/* back pointer to address space */
};

struct smgrp {
	u_int	smg_lock: 1;
	u_int	smg_num: 15;		/* hardware info (smgrp #) */
	u_short	smg_keepcnt;		/* `keep' count */
	struct	as *smg_as;		/* address space using this smgrp */
	addr_t	smg_base;		/* base address within address space */
	struct	smgrp *smg_next;	/* next smgrp for this as */
	struct	smgrp *smg_prev;	/* previous smgrp for this as */
	struct	sment *smg_sme;		/* ptr to sment array for this smgrp */
};

struct sment {
	struct	pmgrp *sme_pmg;		/* what pmeg this maps */
	int	sme_valid;
};

struct pmgrp {
	u_int	pmg_lock: 1;
	u_int	pmg_num: 15;		/* hardware info (pmgrp #) */
	u_short	pmg_keepcnt;		/* `keep' count */
	struct	as *pmg_as;		/* address space using this pmgrp */
	addr_t	pmg_base;		/* base address within address space */
	struct	pmgrp *pmg_next;	/* next pmgrp for this as */
	struct	pmgrp *pmg_prev;	/* previous pmgrp for this as */
	struct	pment *pmg_pme;		/* ptr to pment array for this pmgrp */
};

struct pment {
	struct	page *pme_page;		/* what page this maps */
	u_short	pme_next;		/* other pments mapping same page */
	u_short	pme_intrep : 1;		/* interrupt replaceable flag */
	u_short	pme_nosync : 1;		/* ghost unload flag */
	u_short	pme_valid : 1;		/* pme loaded flag */
};

/*
 * These macros manipulate the next index of the pme struct.
 */
#define	PMENXT_PTR(x)		((x) == PMENXT_NULL ? \
				(struct pment *)NULL : &pments[(x)])
#define	PMENXT_INDEX(x)		((struct pment *)(x) == (struct pment *)NULL ? \
				PMENXT_NULL : (struct pment *)(x) - pments)
#define	PMENXT_NULL		0xFFFF

/*
 * The hat structure is the machine dependent hardware address translation
 * structure kept in the address space structure to show the translation.
 *
 * We maintain that any time an ctx structure exists,
 * that all pmgrps on the hat are loaded into the hardware.
 */
struct hat {
	struct	ctx *hat_ctx;		/* hardware ctx info (if any) */
	struct	smgrp *hat_smgrps;	/* smgrps belonging to this hat */
	struct	pmgrp *hat_pmgrps;	/* pmgrps belonging to this hat */
};

/*
 * Flags to pass to hat_pteunload() and hat_ptesync().
 */
#define HAT_NOSYNC	0x00
#define	HAT_RMSYNC	0x01
#define	HAT_NCSYNC	0x02
#define	HAT_INVSYNC	0x04
#define	HAT_VADDR	0x08

/*
 * Flags to pass to hat_pteload() and segkmem_mapin().
 */
#define	PTELD_LOCK	0x01
#define	PTELD_INTREP	0x02
#define PTELD_NOSYNC	0x04
#define PTELD_IOCACHE 	0x08

#ifdef KERNEL
/*
 * For the Sun MMU hat code, we don't need to do any initialization at
 * hat creation time since we know that the structure is guaranteed to be
 * all zeros.  So we can define the machine independent interface routine
 * hat_alloc() to be a nop here (<vm/hat.h> is set up to deal with this).
 */
#define	hat_alloc(as)

/*
 * These routines are all MACHINE-SPECIFIC interfaces to the hat routines.
 * These routines are called from machine specific places to do the
 * dirty work for things like boot initialization, mapin/mapout and
 * first level fault handling.
 */

/*
 * Boot time pmgrp initialization routines
 */

void	hat_pmginit();
void	hat_pmgreserve(/* seg, addr */);

#ifdef sun4
#ifdef SUN4_460
void	hat_smginit();
void	hat_smgreserve(/* seg, addr */);
#endif

#else

#define		hat_smginit()
#define		hat_smgreserve(seg, addr)
#define		hat_smgalloc(as, addr, pmg)

#endif

/*
 * Allocate a ctx for the specified as.
 */
void	hat_getctx(/* as */);

/*
 * Reserve hat resources for the address range. In this implementation, this
 * means allocating and locking the pmegs. This currently only works with
 * kernel addresses.
 */
void	hat_reserve(/* seg, addr, len */);

/*
 * Called by UNIX during pagefault to insure a context is allocated
 * for this address space and that the ctx time is updated.  Also
 * used internally before all operations involving the translation
 * hardware if you need to be in the correct context for the operation.
 * Done inline for performance reasons.
 */
#ifndef sun2
#define hat_setup(x)	{ register struct ctx *ctx = x->a_hat.hat_ctx; \
			  extern u_short ctx_time; \
			  if (ctx != kctx) { \
			      if (ctx == NULL) { \
				  hat_getctx(x); \
			      } else { \
				  ctx->c_time = ctx_time++; \
				  mmu_setctx(ctx); \
			      } \
			  } \
			}
#else sun2
#define hat_setup(x)	{ register struct ctx *ctx = x->a_hat.hat_ctx; \
			  extern u_short ctx_time; \
			      if (ctx == NULL) { \
				  hat_getctx(x); \
			      } else { \
				  ctx->c_time = ctx_time++; \
				  mmu_setctx(ctx); \
			      } \
			}
#endif sun2

/*
 * Load up a particular translation
 */
void	hat_pteload(/* seg, addr, pp, pte, lock */);

/*
 * Convert from mman protections to a protection value to be loaded in a pte
 */
u_int	hat_vtop_prot(/* vprot */);

/*
 * Construct a memory pte using the page pointer and mman protections specified
 */
void	hat_mempte(/* pp, vprot, ppte */);

#ifdef sun4c
/*
 * Flush all translations to a given physical page from the cache.
 */
void	hat_vacsync(/* pfnum */);
#endif sun4c

extern	struct pmgrp *pmgrp_invalid;
#endif KERNEL
a-h] ", bl->bl_name);
			}
			printf("): ");
			gets(name);./share/sys/sundev/                                                                                    775       0      12            0  4425704714   7335                                                                                                                                                                                                                                                                                                                                                                      ./share/sys/sundev/cg4reg.h                                                                            444       0      12         5356  4423267247  10756                                                                                                                                                                                                                                                                                                                                                                      /* @(#)cg4reg.h 1.7 88/06/09 SMI */

/*
 * Copyright 1986 by Sun Microsystems, Inc.
 */

#ifndef	cg4reg_DEFINED
#define	cg4reg_DEFINED

/*
 * Prism frame buffer hardware definitions.
 *
 * The cg4 device has an overlay plane, enable plane and eight planes
 * of color/grayscale pixel read/write memory.  There are no rasterop chips 
 * or planes register.  All memory is on board memory.
 *
 * There are two flavors of cg4.  The A type has AMD DACS in the I/O space
 * and a status register.  The B type has a Brooktree BT458 DAC in the
 * memory space.
 */

/* number of colormap entries */
#define CG4_CMAP_ENTRIES	256

#ifdef sun3

/* number of known cg4 types */
#define	CG4_NTYPES		2

/* A type (AMD DAC) definitions */
#define	CG4A			0

/* frame buffer and color map addresses */
#define CG4A_ADDR_OVERLAY	0xFF000000
#define CG4A_ADDR_ENABLE	0xFE400000
#define CG4A_ADDR_COLOR		0xFE800000
#define CG4A_ADDR_CMAP		0x000E0000

/* frame buffer and color map address spaces */
#define CG4A_PGT_FB		PGT_OBMEM
#define CG4A_PGT_CMAP		PGT_OBIO

/* colormap/status register structure */
struct cg4a_cmap {
	u_char red[CG4_CMAP_ENTRIES];
	u_char green[CG4_CMAP_ENTRIES];
	u_char blue[CG4_CMAP_ENTRIES];
	u_char status;
#define CG4A_STATUS_FIRSTHALF	0x80
#define CG4A_STATUS_TOOLATE	0x40
};

/* B type (Brooktree DAC) definitions */

/* frame buffer and color map addresses */
#define CG4B_ADDR_OVERLAY	0xFF400000
#define CG4B_ADDR_ENABLE	0xFF600000
#define CG4B_ADDR_COLOR		0xFF800000
#define CG4B_ADDR_CMAP		0xFF200000

/* frame buffer and color map address spaces */
#define CG4B_PGT_FB		PGT_OBMEM
#define CG4B_PGT_CMAP		PGT_OBMEM

#endif sun3
#ifdef sun4

/* number of known cg4 types */
#define	CG4_NTYPES		1

/* B type (Brooktree DAC) definitions */

/* frame buffer and color map addresses */
#define CG4B_ADDR_OVERLAY	0xFB400000
#define CG4B_ADDR_ENABLE	0xFB600000
#define CG4B_ADDR_COLOR		0xFB800000
#define CG4B_ADDR_CMAP		0xFB200000

/* frame buffer and color map address spaces */
#define CG4B_PGT_FB		PGT_OBIO
#define CG4B_PGT_CMAP		PGT_OBIO

#endif sun4
#ifdef sun3x

/* number of known cg4 types */
#define	CG4_NTYPES		1

/* B type (Brooktree DAC) definitions */

/* frame buffer and color map addresses */
#define CG4B_ADDR_OVERLAY	0x50400000
#define CG4B_ADDR_ENABLE	0x50600000
#define CG4B_ADDR_COLOR		0x50800000
#define CG4B_ADDR_CMAP		0x50200000

/* frame buffer and color map address spaces -- not used on sun3x */
#define CG4B_PGT_FB		0
#define CG4B_PGT_CMAP		0

#endif sun3x


/* colormap structure */
struct cg4b_cmap {
	u_char	addr;		/* address register */
	char	fill0[3];
	u_char	cmap;		/* color map data register */
	char	fill1[3];
	u_char	ctrl;		/* control register */
	char	fill2[3];
	u_char	omap;		/* overlay map data register */
	char	fill3[3];
};

#endif	!cg4reg_DEFINED
ags to pass to hat_pteload() and segkmem_mapin().
 */
#define	PTELD_LOCK	0x01
#define	PTELD_INTREP	0x02
#define PTELD_NOSYNC	0x04
#define PTELD_IOCACHE 	0x08

#ifdef KERNEL
/*
 * For the Sun MMU hat code, we don't need to do any initialization at
 * hat creation time since ./share/sys/sundev/cg6reg.h                                                                            444       0      12         6115  4423267250  10744                                                                                                                                                                                                                                                                                                                                                                      /* @(#)cg6reg.h	1.6 88/12/22 SMI */

/*
 * Copyright 1983, 1987 by Sun Microsystems, Inc.
 */

#ifndef	cg6reg_DEFINED
#define	cg6reg_DEFINED

#include <sys/param.h>

/*
 * CG6 frame buffer hardware definitions.
 */


/* Physical frame buffer and color map addresses */
/*
 * The base address is defined in the configuration file, e.g. GENERIC.
 * These constants are the offset from that address.
 *
 * For sun3, the base address is 	0xFF000000
 * For sun4, it is			0xFB000000
 */

#ifdef sparc
#define CG6_P4BASE		0xFB000000
#else
#define CG6_P4BASE		0xFF000000
#endif

#define CG6_ADDR_CMAP		0x200000
#define CG6_ADDR_FBC		0x700000
#define	CG6_ADDR_TEC		0x701000
#define CG6_ADDR_P4REG		0x300000
#define CG6_ADDR_ROM		0x380000
#define CG6_ADDR_OVERLAY	0x400000	/* FAKE */
#define CG6_ADDR_FHC		0x300000
#define CG6_ADDR_THC		0x301000
#define CG6_ADDR_ENABLE		0x600000
#define CG6_ADDR_COLOR		0x800000

#define CG6_ADDR_FBCTEC		CG6_ADDR_FBC
#define CG6_ADDR_FHCTHC		CG6_ADDR_FHC	

#define CG6_CMAP_SZ		ctob(1)
#define CG6_FBCTEC_SZ		ctob(1)
#define CG6_FBC_SZ		ctob(1)		/* a relic of 1.0 CG6 */
#define CG6_TEC_SZ		ctob(1)		/* a relic of 1.0 CG6 */
#define CG6_FHCTHC_SZ		ctob(1)
#define CG6_FHC_SZ		ctob(1)		/* a relic of 1.0 CG6 */
#define CG6_THC_SZ		ctob(1)		/* a relic of 1.0 CG6 */
#define CG6_ROM_SZ		ctob(8)
#define CG6_FB_SZ		(1024*1024)

/*
 * Offsets of TEC/FHC into page
 */
#define CG6_TEC_POFF		0x1000
#define CG6_THC_POFF		0x1000

/*
 * Virtual (mmap offsets) addresses
 */ 
#define CG6_VBASE		0x70000000
#define CG6_VADDR(x)		(CG6_VBASE+ctob(x))

/*
 * CG6 Virtual object addresses
 */
#define CG6_VADDR_FBC		CG6_VADDR(0)
#define	CG6_VADDR_TEC		(CG6_VADDR_FBC + CG6_TEC_POFF)
#define CG6_VADDR_CMAP		CG6_VADDR(1)
#define CG6_VADDR_FHC		CG6_VADDR(2)
#define CG6_VADDR_THC		(CG6_VADDR_FHC + CG6_THC_POFF)
#define CG6_VADDR_ROM		CG6_VADDR(3)
#define CG6_VADDR_COLOR		CG6_VADDR(3+btoc(CG6_ROM_SZ))

#define CG6_VADDR_FBCTEC	CG6_VADDR_FBC
#define CG6_VADDR_FHCTHC	CG6_VADDR_FHC
/*
 * to map in all of lego, use mmapsize below, and offset CG6_VBASE
 */
#define MMAPSIZE(dfbsize)	(CG6_VADDR_COLOR-CG6_VBASE+dfbsize)

/*
 * convert from address returned by pr_makefromfd (eg. mmap) 
 * to CG6 register set.
 */
#define CG6VA_TO_FBC(base) \
	((struct fbc*)  (((char*)base)+(CG6_VADDR_FBC-CG6_VBASE)))
#define CG6VA_TO_TEC(base)  \
	((struct tec*)  (((char*)base)+(CG6_VADDR_TEC-CG6_VBASE)))
#define CG6VA_TO_FHC(base)  \
	((u_int*) 	(((char*)base)+(CG6_VADDR_FHC-CG6_VBASE)))
#define CG6VA_TO_THC(base)  \
	((struct thc*)  (((char*)base)+(CG6_VADDR_THC-CG6_VBASE)))
#define CG6VA_TO_DFB(base)  \
	((short*) 	(((char*)base)+(CG6_VADDR_COLOR-CG6_VBASE)))
#define CG6VA_TO_ROM(base)  \
	((u_int*)	(((char*)base)+(CG6_VADDR_ROM-CG6_VBASE)))
#define CG6VA_TO_CMAP(base) \
	((struct cg6_cmap*) (((char*)base)+(CG6_VADDR_CMAP-CG6_VBASE)))


/* (Brooktree DAC) definitions */

/* number of colormap entries */
#define CG6_CMAP_ENTRIES	256

struct cg6_cmap {
	u_int	addr;		/* address register */
	u_int	cmap;		/* color map data register */
	u_int	ctrl;		/* control register */
	u_int	omap;		/* overlay map data register */
};

#endif	!cg6reg_DEFINED
e the machine independent interface routine
 * hat_alloc() to be a nop here (<vm/hat.h> is set up to deal with this).
 */
#define	hat_alloc(as)

/*
 * These routines are all MACHINE-SPECIFIC interfaces to the hat routines.
 * These routines are called from machine specific places to do the
 * dirty work for things like boot initialization, mapin/mapout and
 * first level fault handling.
 */

/*
 * Boot time pmgrp initialization rou./share/sys/sundev/cg8reg.h                                                                            444       0      12        10125  4423267317  10766                                                                                                                                                                                                                                                                                                                                                                      /*  @(#)cg8reg.h	1.3 of 12/8/88, SMI */

/* Board layout of Ibis 24-bit frame buffer */

#ifndef CG8REG_INCLUDED
#define CG8REG_INCLUDED

#ifdef CG8REG_DEBUG
#include <sys/types.h>
#include <stdio.h>
#include <pixrect/pixrect.h>
#define P4BASE	    0xfb000000	       /* not for 3/60 */
#endif	CG8REG_DEBUG

#include <machine/param.h>
#include <sundev/p4reg.h>
#include <sundev/ramdac.h>

/*
 * These are the physical offset from the beginning of the P4.
 */
#define P4IDREG	    0x300000
/* constants define in p4reg.h */
#define DACBASE	    (P4IDREG + P4_COLOR_OFF_LUT)
#define OVLBASE	    (P4IDREG + P4_COLOR_OFF_OVERLAY)
#define ENABASE	    (P4IDREG + P4_COLOR_OFF_ENABLE)
#define FBMEMBASE   (P4IDREG + P4_COLOR_OFF_COLOR)
#define PROMBASE    (P4IDREG + 0x8000)

/*
 * The device as presented by the "mmap" system call.  It seems to the mmap
 * user that the board begins, at its 0 offset, with the overlay plane,
 * followed by the enable plane and the color framebuffer.  At 8MB, there
 * is the ramdac followed by the p4 register and the boot prom.
 */
#define CG8_VADDR_FB	0
#define CG8_VADDR_DAC	0x800000
#define CG8_VADDR_P4REG	(CG8_VADDR_DAC + ctob(1))
#define CG8_VADDR_PROM	(CG8_VADDR_P4REG + ctob(1))
#define PROMSIZE	0x40000

/*
 * Some sizes constants for reference only.  No one actually use them.
 */
#define CG8_WIDTH   1152	       /* default width */
#define CG8_HEIGHT  900		/* default height */
#define PIXEL_SIZE  4		       /* # of bytes per pixel in frame
				        * buffer */
#define BITPERBYTE  8
#define FBSCAN_SIZE (CG8_WIDTH * PIXEL_SIZE)
#define OVLSCAN_SIZE (CG8_WIDTH / BITPERBYTE)

/* screen size in bytes */
#define FBMEM_SIZE  (FBSCAN_SIZE * CG8_HEIGHT)
#define OVL_SIZE    (OVLSCAN_SIZE * CG8_HEIGHT)
#define CG8_RAMDAC_OMAPSIZE		4
#define CG8_RAMDAC_CMAPSIZE		256

/*
 * Constants from <sundev/ramdac.h> which define the structure of 3
 * Brooktree 458 ramdac packed into one 32-bit register.
*/
#define CG8_RAMDAC_READMASK		RAMDAC_READMASK
#define CG8_RAMDAC_BLINKMASK		RAMDAC_BLINKMASK
#define CG8_RAMDAC_COMMAND		RAMDAC_COMMAND
#define CG8_RAMDAC_CTRLTEST		RAMDAC_CTRLTEST

/*
 * The following sessions describe the physical device.  No software
 * actually uses this model which for initial board bring-up and debugging
 * only.  Since the definitions of the structure take no space, we leave
 * them here for future references.
 */
union ovlplane {
    u_short         pixel[OVLSCAN_SIZE / sizeof (u_short)][CG8_HEIGHT];
    u_short         bitplane[OVL_SIZE / sizeof (u_short)];
};


struct overlay {
    union ovlplane  color;
    u_char          pad[ENABASE - OVLBASE - OVL_SIZE];
    union ovlplane  enable;
};


/* The whole board.  We defined fb to be linearly addressable, instead of a
two dimensional array.  Maybe we should use union? */
struct cg8_board {
    struct ramdac   lut;	       /* start at P4BASE + DACBASE */
    u_char          pad1[P4IDREG - DACBASE - sizeof (struct ramdac)];
    u_int           p4reg;	       /* p4 bus register */
    u_char          pad2[OVLBASE - P4IDREG - sizeof (u_int)];
    struct overlay  ovl;	       /* overlay planes */
    u_char          pad3[FBMEMBASE - OVLBASE - sizeof (struct overlay)];
    union fbunit    fb[FBMEM_SIZE / sizeof (union fbunit)];
};



/*
 * Some codes to verify if the definition is really working.  These codes
 * are mostly obsolete.
 */
#ifdef CG8REG_DEBUG

/* ln -s cg8reg.h cg8reg.c; cc -o cg8reg cg8reg.c */
#define PADDR(which) printf("%-15s = 0x%06x\n", \
    "which", (caddr_t) &dummy.which - base + DACBASE)
#define PARRAY_ADDR(which) printf("%-15s = 0x%06x\n", \
    "which", (caddr_t) dummy.which - base + DACBASE)
#define PSIZE(which) printf("\tsize = 0x%06x\n", sizeof(dummy.which))

main ()
{
    static struct cg8_board dummy;
    caddr_t         base;

    base = (caddr_t) & dummy;
    PADDR (lut);
    PADDR (lut.addr_reg);
    PADDR (lut.lut_data);
    PADDR (lut.command);
    PADDR (lut.overlay);
    PADDR (p4reg);
    PADDR (ovl);
    PARRAY_ADDR (ovl.color.bitplane);
    PSIZE (ovl.color);
    PARRAY_ADDR (ovl.enable.bitplane);
    PSIZE (ovl.enable);
    PARRAY_ADDR (fb);
    PSIZE (fb);
}

#endif	CG8REG_DEBUG
#endif	CG8REG_INCLUDED
OR-CG6_VBASE)))
#define CG6VA_TO_ROM(base)  \
	((u_int*)	(((char*)base)+(CG6_VADDR_ROM-CG6_VBASE)))
#define CG6VA_TO_CMAP(base) \
	((struct cg6_cmap*) (((char*)base)+(CG6_VADDR_CMAP-CG6_VBASE)))


/* (Brooktree DAC) definitions */

/* number of colormap entries */
#define CG6_CMAP_ENTRIES	256

struct cg6_cmap {
	u_int	addr;		/* address register */
	u_int	cmap;		/* color map data register */
	u_int	ctrl;		/* control register./share/sys/sundev/dbio.h                                                                              444       0      12         1312  4423267316  10501                                                                                                                                                                                                                                                                                                                                                                      /*      @(#)dbio.h 1.1 88/07/29 SMI      */

/*
 * Copyright (c) 1988 by Sun Microsystems, Inc.
 */

/* Dialbox related macros. See also <sundev/vuid_event.h> */
#ifndef DIAL_DEVID
#define DIAL_DEVID 0x7b
#endif

#ifndef _sundev_dbio_h
#define _sundev_dbio_h

/* DELTA event for a particular dial */
#define DIAL_DELTA(dialnum)     (vuid_first(DIAL_DEVID) + (dialnum))

/* Macro to extract dial number from event */
#define DIAL_NUMBER(event_code)	(event_code & 0xFF)

#define	event_is_dial(event)	(vuid_in_range(DIAL_DEVID, event->ie_code))

/* Dial deltas are in 64ths of degrees, convert to degrees */
#define DIAL_TO_DEGREES(n)	((float)(n) / 64.0)

#define DIAL_UNITS_PER_CYCLE (64*360)

#endif _sundev_dbio_h
d debugging
 * only.  Since the definitions of the structure take no space, we leave
 * them here for future references.
 */
union ovlplane {
    u_short         pixel[OVLSCAN_SIZE / sizeof (u_short)][CG8_HEIGHT];
    u_short         bitplane[OVL_SIZE / sizeof (u_short)];
};


struct overlay {
    union ovlpl./share/sys/sundev/fdreg.h                                                                             444       0      12        23562  4423267252  10705                                                                                                                                                                                                                                                                                                                                                                      /*
 * @(#)fdreg.h 1.6 89/03/27 Copyright (c) 1988 by Sun Microsystems, Inc.
 *
 */

/*
 * Parameters for PC AT floppy disk driver.
 */


#ident "@(#)fd.h	1.2 - 86/12/16"
/* @(#)fdreg.h	1.4	87/10/22 */

/*
 * the floppy disk minor device number is interpreted as follows:
 *     bits:
 *	 765 43 210
 * 	+---+--+---+
 * 	|RRR|uu|PPP|
 * 	+---+--+---+
 *     codes:
 *	R - Reserved, currently must be 0
 *	u - unit no.
 *	P - partition no.
 */

/* Minor number fields */
#define UNIT(x)		((minor(x) & 0x18) >> 3)
#define	PARTITION(x)	(minor(x) & 0x07)

/* Defines for controller access.  */
#define FD0BSY	0x01    /* drive is seeking */
#define FD1BSY	0x02
#define FD2BSY	0x04
#define FD3BSY	0x08
#define	FCBUSY	0x10	/* controller busy bit */
#define NODMA	0x20    /* controller in non-DMA mode */
#define	IODIR	0x40	/* data reg I/O direction, 1 = read, 0 = write */
#define	IORDY	0x80	/* data register ready to xfer bit */

/* Datarate select register bits */
#define	SWRESET 	0x80	/* Software reset */
#define	PWRDOWN		0x40	/* Power down */
#define	ENAPLL		0x20	/* Enable PLL */
#define	PRECOMP		0x1C	/* Pre-compensation */
#define	DRATESEL	0x03	/* Data rate select */

/* timeout and retry defines */
#define	FCRETRY		2000	/* this many ten microseconds equals 20ms. */
#define	CTIMOUT		0x02	/* Timed out waiting for IORDY in fdcmd */
#define	RTIMOUT		0x03	/* Timed out waiting for IORDY in fdresult*/
#define	NECERR		0x04	/* Controller wont go idle error flag */
#define OPEN_EMAX	1       /* max number of retries during open processing */
#define FORM_EMAX	3       /* max number of retries during format */
#define TRYRESET	3       /* try a reset after this many errrors */
#define NORM_EMAX	5      /* normal max number of retries */
#define OVERUNLIMIT	5	/* normal max number of retries */
#define RUNTIM		4
#define WAITTIM		8
#define LOADTIM		10

/* time defines */
#define MTIME   100	/* no. of clock ticks in one second */
#define ETIMOUT 50	/* no. of clock ticks in 1/2 second */
#define T25MS   3	/* no. of clock ticks in 25 milliseconds */
#define T500MS  50	/* no. of clock ticks in 50 milliseconds */
#define T50MS   5	/* no. of clock ticks in 50 milliseconds */
#define T750MS  75	/* no. of clock ticks in 750 milliseconds */

/* fdd_status flags */
#define OPEN    0x01
#define RECAL   0x02
#define EXCLUSV 0x04

/* fd_state flags */
#define CHK_RECAL   2
#define RECAL_DONE  3
#define CHK_SEEK    4
#define SEEK_DONE   5
#define XFER_BEG    6
#define XFER_DONE   7
#define FDERROR     0xD
#define RESTART     0xF

/* fd_cstat flags */
#define WINTR   0x01
#define WWRITE	0x02
#define WREAD	0x04
#define	WTIMER	0x08
#define	WBUF	0x10
#define WFMT	0x20
#define WWERR	0x40

/* Floppy controller commands */
#define SPECIFY     0x03	/* specify command */
#define SENSE_DRV   0x04        /* read status register 3 */
#define WRCMD       0x05	/* write data */
#define RDCMD       0x26	/* read data with skip */
#define	CMD_RD	    0x06	/* read data */
#define REZERO      0x07	/* move head to track 0 */
#define SENSE_INT   0x08	/* sense interrupt status */
#define WRITEDEL    0x09	/* write deleted data */
#define READID      0x0A	/* read id */
#define	CMD_MTR	    0x0B	/* motor on/off */
#define READDEL     0x0C	/* read deleted data */
#define FORMAT      0x0D	/* format track */
#define SEEK        0x0F	/* seek to track */
#define READTRACK   0x02	/* read entire track */
#define CONFIG	    0x13	/* configure */
#define	CMD_RSEEK   0x8f	/* relative seek */

/* Command set tuneable bits */
#define	CMD_MT		0x80	/* multi-track */
#define CMD_MFM		0x40	/* MFM/FM mode */
#define	CMD_SK		0x20	/* skip flag */
#define	MTR_ON		0x80	/* motor on */
#define	MTRU_SHFT	0x05	/* motor unit shift place */

/* Control register bits */
#define TC		0x1
#define EJECT		0x2
#define	MTRON		0x4
#define	DSEL1		0x8
#define	DSEL0		0x10

#define	SELSHIFT	0x4

/* command for raw controller command tru ioctl */
#define RAWCMD      0x7F

#define INVALID     0x80        /* status register 0 */
#define ABNRMTERM   0x40
#define SEEKEND     0x20
#define EQCHK       0x10
#define NOTRDY      0x08

#define EOCYL       0x80        /* status register 1 */
#define CRCERR      0x20
#define OVRRUN      0x10
#define NODATA      0x04
#define MADR        0x01

#define FAULT       0x80        /* status register 3 */
#define WPROT       0x40
#define RDY         0x20
#define TWOSIDE     0x08

/* NEW_HARDWARE CMOS drive descriptions */
#define DRV_NONE    0x00
#define DRV_DBL     0x01
#define DRV_QUAD    0x02
#define DRV_80QUAD  0x04
#define DRV_80DBL   0x08

/* encodings for the 'fdf_den' field in structure 'fdparam' */
#define DEN_MFM 0x40        /* double density disks */
#define DEN_FM  0x00        /* single density disks */


/* driver ioctl() commands */
#define V_FORMAT   _IOW(V, 5, union io_arg)     /* Format track(s) */
#define F_RAW      _IOWR(F, 1, struct fdexec)	 /* general raw controller interface */

/* format defines */
#define SS8SPT          0xFE    /* single sided 8 sectors per track */
#define DS8SPT          0xFF    /* double sided 8 sectors per track */
#define SS9SPT          0xFC    /* single sided 9 sectors per track */
#define DS9SPT          0xFD    /* double sided 9 sectors per track */
#define DSHSPT          0xF9    /* High density */

/* misc defines */
#define	TRK80	80
#define	TRK40	40
#define GPLN	0x1b
#define	GPLF	0x54
#define	GETLABEL    0xff	/* get format label */
#define CMDWAIT	   -1
#define b_fdcmd b_error
#define NBPSCTR         512     /* Bytes per LOGICAL disk sector. */
#define SCTRSHFT        9       /* Shift for BPSECT.            */
#define SECPCYL		18 * 2
#define TRUE 1

/*
 * partition table for floppy disks
 * we support, 3 different partitions:
 *	a - the first cylinder on the disk
 * 	c - the whole disk;
 *	g - the whole disk minus the first cylinder
 */
#define	FDNPART	8	/* number of partitions supported */
struct fdpartab {
	int	startcyl;	/* cylinder no. where partition starts */
	int	numcyls;	/* number of cylinders in partition */
};

#define	FDNSECT	6	/* no. of sector size/count types supported */

struct fdcstat
{
        unsigned char	fd_curdrv;
        unsigned char	fd_state;
        unsigned char	fd_cstat;
	unsigned char	fd_ctl;
        ushort		fd_overrun;
        ushort		fd_blkno;
        ushort		fd_bpart;
        ushort		fd_btot;
	int		fd_pri;
	struct buf	*fd_buf;
        u_long		fd_addr;
        u_long		fd_curcnt;
        caddr_t		fd_curaddr;
};

struct  unit {
        struct  mb_device *un_md;       /* generic unit */
        struct  mb_ctlr *un_mc;         /* generic controller */
        struct  buf un_rtab;            /* for raw I/O */
};

struct fdstate {
	unsigned char  fdd_status;
	unsigned char  fdd_mtimer;
	unsigned char  fdd_den;
	unsigned char  fdd_trnsfr;

	unsigned char  fdd_hst;
	unsigned char  fdd_mst;
	unsigned char  fdd_dstep;
	unsigned char  fdd_secsft;

	unsigned char  fdd_nsides;
	unsigned char  fdd_nsects;
	unsigned char  fdd_cylsiz;
	unsigned char  fdd_curcyl;

	unsigned char  fdd_bps;
	unsigned char  fdd_gpln;
	unsigned char  fdd_gplf;
	unsigned char  fdd_dtl;

	unsigned char  fdd_fil;
	unsigned char  fdd_lsterr;
	unsigned char  fdd_maxerr;
	unsigned char  fdd_errcnt;

	struct fk_label fdd_l;

	unsigned short fdd_cylskp;
	unsigned short fdd_ncyls;

	unsigned short fdd_secsiz;
	unsigned short fdd_secmsk;

	unsigned short fdd_n512b;
	dev_t	       fdd_device;
	struct   proc *fdd_proc;
};

struct fdformid {
	char    fdf_track;
	char    fdf_head;
	char    fdf_sec;
	char    fdf_secsiz;
};

union   io_arg {
	struct  {
		ushort  ncyl;           /* number of cylinders on drive */
		unsigned char nhead;    /* number of heads/cyl */
		unsigned char nsec;     /* number of sectors/track */
		ushort  secsiz;         /* number of bytes/sector */
		} ia_cd;                /* used for Configure Drive cmd */
	struct  {
		ushort  flags;          /* flags (see below) */
		daddr_t bad_sector;     /* absolute sector number */
		daddr_t new_sector;     /* RETURNED alternate sect assigned */
		} ia_abs;               /* used for Add Bad Sector cmd */
	struct  {
		ushort  start_trk;      /* first track # */
		ushort  num_trks;       /* number of tracks to format */
		ushort  intlv;          /* interleave factor */
		} ia_fmt;               /* used for Format Tracks cmd */
} ;


/* controller command structure */
struct fdexec {
	u_char	fd_cmd[9];	/* user-supplied command bytes */
	u_char	fd_result[7];	/* controller-supplied result bytes */
	short	fd_cnum;	/* number of command bytes */
	short	fd_nbytes;	/* number to transfer if read/write command */
	char   *fd_addr;	/* where to transfer if read/write command */
};

/* descriptive names for command fields */
#define	fd_cmdb1	fd_cmd[0]
#define	fd_cmdb2	fd_cmd[1]
#define	fd_track	fd_cmd[2]
#define	fd_head		fd_cmd[3]
#define	fd_sector	fd_cmd[4]
#define	fd_ssiz		fd_cmd[5]
#define	fd_lstsec	fd_cmd[6]
#define	fd_gpl		fd_cmd[7]
#define	fd_dtl		fd_cmd[8]
#define fd_bps		fd_cmd[2]
#define fd_spt		fd_cmd[3]
#define fd_gap		fd_cmd[4]
#define fd_fil		fd_cmd[5]

/* descriptive names for result fields */
#define	fd_st0		fd_result[0]
#define	fd_st1		fd_result[1]
#define	fd_st2		fd_result[2]
#define	fd_strack	fd_result[3]
#define	fd_shead	fd_result[4]
#define	fd_ssector	fd_result[5]
#define	fd_ssecsiz	fd_result[6]

/* control register offset */
#define CTLREGOFF       0x400
#define INTREGOFF	0x800

/* registers */
struct fdc_reg {
	unsigned char	fdc_control;			/* Controller register */
	unsigned char	fdc_fifo;			/* FIFO register */
	unsigned char	f1[CTLREGOFF-2];		/* filler */
	unsigned char	fdc_ctl;			/* Control register */
	unsigned char	f2[INTREGOFF-CTLREGOFF-1];	/* filler */
	unsigned char	fdc_int;			/* Interrupt vector */
};

/* Data rate select bits for MFM */
#define	MFM_R1M		3	/* 1 Mbps */
#define MFM_R500K	0	/* 500 Kbps */
#define MFM_R300K	1	/* 300 Kbps */
#define MFM_R250K	2	/* 250 Kbps */

/* Data rate select bits for FM */
#define FM_R250K	0	/* 250 Kbps */
#define FM_R150K	1	/* 150 Kbps */
#define FM_R125K	2	/* 125 Kbps */

/* Debugging define for ioctl */
#define FAKETO  0xffe
#define FAKEINT  0xfff
ectors per track */
#define DS8SPT          0xFF    /* double sided 8 sectors per track */
#define SS9SPT          0xFC    /* single sided 9 s./share/sys/sundev/fpareg.h                                                                            444       0      12        15412  4423267253  11056                                                                                                                                                                                                                                                                                                                                                                      /*      @(#)fpareg.h 1.11 88/12/14 SMI      */
 
/*
 * Copyright (c) 1986 by Sun Microsystems, Inc.
 */

/*
 * This file contains definitions related to the Floating Point
 * Accelerator used for the Sun-3 machines.
 */

#include <machine/reg.h>

/*
 * open("/dev/fpa", filemode, createmode) returns ENXIO if there is
 * no FPA attached, it returns ENOENT if there is no 68881 attached,
 * it returns EBUSY if there is no FPA context available, it returns
 * EEXIST if /dev/fpa is opened by this process already, it returns
 * ENETDOWN if the FPA is disabled due to FPA hardware problems.
 */

/* ioctl commands */
#define FPA_ACCESS_ON		_IO(p, 1)
#define FPA_ACCESS_OFF		_IO(p, 2)
#define FPA_LOAD_ON		_IO(p, 3)
#define FPA_LOAD_OFF		_IO(p, 4)
/*
 * Next ioctl is used by gcore(1).  It gets FPA_QTR_SIZE FPA data
 * registers on every ioctl(2) call.  This is because of the maximum
 * copy size in ioctl(2).
 */
#define FPA_QTR_SIZE		8
union fpa_qtr_dregs {
	fpa_long	fq_dregs[FPA_QTR_SIZE];
	struct		fq_params {
		u_int	fqp_state;
		u_int	fqp_count;
	} fq_params;
};
#define FPA_GET_DATAREGS	_IOWR(p, 6, union fpa_qtr_dregs)
/*
 * The next ioctl is used by a diagnostic program which disables
 * the FPA when an FPA hardware problem is found.  It passes a
 * character string of maximum size FPA_LINESIZE through the ioctl.
 */
#define FPA_LINESIZE		120
struct fpa_line {
	char fl_line[FPA_LINESIZE];
};
#define FPA_FAIL		_IOW(p, 7, struct fpa_line)
/*
 * FPA_INIT_DONE is ONLY called by the download program after
 * the microcode has been loaded correctly.
 */
#define FPA_INIT_DONE		_IO(p, 8)

/*
 * These two ioctls are included only for diagnostics.
 */
#ifdef FPA_DIAGNOSTICS_ONLY
# define FPA_WRITE_STATE	_IO(p, 9)	/* State Register */
# define FPA_WRITE_HCP		_IO(p, 10)	/* Hardware Clear Pipe */
#endif FPA_DIAGNOSTICS_ONLY

#define FPA_NSHAD_REGS 8

/*
 * Struct fpa_device defines the control registers in the FPA.
 * The base address of this struct is set to 0xE0000000 at boot time.
 * Since FPA control registers can ONLY be accessed in whole 32 bits,
 * accessing their fields is via "masks" instead of "field".
 * E.g., to check the load enable bit of the STATE register, we use
 * 	if (fpa.state & FPA_LOAD_BIT)
 * to turn on this bit, we use
 * 	fpa.state |= FPA_LOAD_BIT;
 */
struct fpa_device {
	/* 0x000 */
	u_char	fp_filler1[0x8D0];

	/*
	 * Restore MODE3_0 instr: 1000,1101,0000(8D0) in the address line.
	 * Data line is u.u_fpa_status.fpas_mode3_0.
	 */
	u_int	fp_restore_mode3_0;
#define FPA_MODE3_INITVAL	2
#define FPA_MODE_BITS		0x0f

	/* 0x8D4 */
	u_char	fp_filler2[0x84];

	/* 0x958, write back address of WSTATUS */
	u_int	fp_restore_wstatus;

	/*
	 * Turn on unimplemented instr bit in WSTATUS reg: 1001,0101,1100(95C)
	 * on the address line. Data line is "dont care".
	 */
	u_int	fp_unimplemented;

	/* 0x960 */
	u_char	fp_filler3[0x18];

	/*
	 * Initialize: 1001,0111,1000(978) in the address line.
	 * Data line is "dont care".
	 */
	u_int	fp_initialize;

	/* 0x97C */
	u_char	fp_filler4[0x48];

	/*
	 * Restore shadow regs: 1001,0111,1100(9C4) in the address line.
	 * Data line is "dont care".
	 */
	u_int	fp_restore_shadow;

	/* Destructive RAM test (0x9C8) */
	u_int   fp_destructive_test;

	/* Nondestructive RAM test (0x9CC) */
	u_int	fp_nondestructive_test;

	/* 0x9D0 */
	u_char fp_filler6[0x230];

	/* 0xC00, data reg[0] */
	fpa_long	fp_data[FPA_NDATA_REGS];

	/* 0xD00 */
	u_char	fp_filler7[0x100];

	/* 0xE00, shadow registers */
	fpa_long	fp_shad[FPA_NSHAD_REGS];

	/* 0xE40 */
	u_char  fp_filler8[0xD0];

	/* 0xF10, STATE register */
	u_int	fp_state;
#define FPA_LOAD_BIT		0x80
#define FPA_ACCESS_BIT		0x40
#define FPA_PBITS		0xC0
#define FPA_CONTEXT		0x1F
#define FPA_STATE_BITS		0xFF

	/* 0xF14, IMASK/VERSION register */
	u_int	fp_imask;
#define FPA_INEXACT		0x01
#define FPA_VERSION		0x0E

	/* 0xF18, LOAD_PTR register */
	u_int	fp_load_ptr;
#define FPA_RAM_ADDR		0x3FFC
#define FPA_SEG_SELECT		0x03
	/*
	 * Microstore bit segment select, e.g.
	 * if ((fpa.load_ptr & FPA_SEG_SELECT) == FPA_BIT_71_64)
	 */
#define FPA_BIT_71_64		0x00
#define FPA_BIT_63_32		0x01
#define FPA_BIT_31_0		0x02
#define FPA_BIT_23_0		0x03

#define FPA_PLUS_BIT_63_32	0x00
#define FPA_PLUS_BIT_31_0	0x01

	/* 0xF1C, IERR register */
	u_int	fp_ierr;
#define FPA_ILLE_CTL_ADDR	0x800000
#define FPA_RETRY		0x400000
#define FPA_HUNG_PIPE		0x200000
#define FPA_ILLEGAL_SEQ		0x100000
#define FPA_EXEC_UCODE		0x080000
#define FPA_ILLEGAL_ACCESS	0x040000
#define FPA_PROTECTION		0x020000
#define FPA_NON32_ACCESS	0x010000

	/* 0xF20, PIPE_ACT_INS register */
	u_int	fp_pipe_act_instr;
	/* 0xF24, PIPE_NXT_INS register */
	u_int	fp_pipe_nxt_instr;
#define FPA_FIRST_V		0x80000000
#define FPA_FIRST_HALF		0x1FFC0000
#define FPA_SECOND_V		0x00008000
#define FPA_SECOND_HALF		0x00001FFC
#define FPA_ADDR_SHIFT		16

	/* 0xF28, 0xF2C, 0xF30, 0xF34, PIPE_XXX_DX registers */
	u_int	fp_pipe_act_d1half;
	u_int	fp_pipe_act_d2half;
	u_int	fp_pipe_nxt_d1half;
	u_int	fp_pipe_nxt_d2half;
	
	/* 0xF38, MODE register */
	u_int	fp_mode_stable;
#define FPA_WEITEK_MODE		0x0F

	/* 0xF3C, WSTATUS register */
	u_int	fp_wstatus_stable;
#define FPA_WEITEK_ERROR	0x08000
#define FPA_NONEXIST_INSTR	0x04000
#define FPA_STATUS_VALID	0x02000
#define FPA_WEITEK_STATUS	0x00F00
#define FPA_DECODED_STATUS	0x0001F
#define FPA_STATUS_SHIFT	8
	/*
	 * Weitek comparison conditions e.g. 
	 * if ((fpa.wstatus_stable & FPA_DECODED_STATUS) == FPA_LT)
	 */
#define FPA_EQ			0x00004
#define FPA_LT			0x00019
#define FPA_GT			0x00000
#define FPA_UNORDERED		0x00002
#define FPA_OTHERS		0x00000

	/* 0xF40 */
	u_char fp_filler9[0x8];

	/* 0xF48, PIPE_STATUS register */
	u_int	fp_pipe_status;
#define FPA_SECOND_V_NXT	0x800000
#define FPA_FIRST_V_NXT		0x400000
#define FPA_SECOND_V_ACT	0x200000
#define FPA_FIRST_V_ACT		0x100000
#define FPA_IDLE2		0x080000
#define FPA_WAIT2		0x040000
#define FPA_HUNG		0x020000
#define FPA_STABLE		0x010000
#define FPA_PIPE_MASK		0xFF0000
/* The bit pattern when the pipe is clear */
#define FPA_PIPE_CLEAR		0x010000

	/* 0xF4C */
	u_char fp_filler10[0x14];

	/* 0xF60, READ_REG register */
	u_int	fp_read_reg;

	/* 0xF64, REG_UST_ADDR register */
	u_int	fp_reg_ust_addr;
#define FPA_MUX_SELECT		0xE0000000
#define FPA_REGRAM_ADDR		0x0FFF0000
#define FPA_USTORE_ADDR		0x00003FFF

	/* 0xF68 */
	u_char fp_filler11[0x18];

	/* 0xF80, hard CLEAR_PIPE register, only used by diagnostic routines */
	u_int	fp_hard_clear_pipe;

	/* 0xF84, CLEAR_PIPE register, used by Unix */
	u_int	fp_clear_pipe;

	/* 0xF88 */
	u_char	fp_filler12[0x30];

	/* 0xFB8, MODE read clear, fields same as fp_mode3_0_stable (0xF38) */
	u_int	fp_mode3_0_clear;

	/* 0xFBC, WSTATUS read clear, fields same as fp_wstatus_stable(0xF3C) */
	u_int	fp_wstatus_clear;

	/* 0xFC0, LD_RAM register */
	u_int	fp_ld_ram;
} *fpa; /* fpa gets address from fpaprobe() in fpa.c */

enum	fpa_state	{ FPA_SINGLE_USER, FPA_MULTI_USER, FPA_DISABLED };
{
	/* 0x000 */
	u_char	fp_filler1[0x8D0];

	/*
	 * Restore MODE3_0 instr: 1000,1101,0000(8D0) in the address line.
	 * Data line is u.u_fpa_status.fpas_mode3_0.
	 */
	u_int	fp_restore_mode3_0;
#define FPA_MODE3_INITVAL	2
#define FPA_MODE_BITS		0x./share/sys/sundev/ip_conf.c                                                                           444       0      12         1045  4424742626  11202                                                                                                                                                                                                                                                                                                                                                                      /*
 * @(#)ip_conf.c 1.1 88/09/13 Copyright (c) 1988 by Sun Microsystems, Inc.
 *
 */
#include "ip.h"

#include <sys/param.h>
#include <sys/buf.h>
#include <sundev/mbvar.h>
#include <sundev/ipdev.h>
#include <sundev/ipvar.h>

int nip	    = NIP ;
int nipi    = NIPI;

#if	NIPI > 0
struct	ipictlr	    ipictlrs[NIPI];		/* one per controller */
#endif	NIPI

#if NIP > 0
struct ipiunit ipiunits[NIP];			/* one per unit	      */
#endif NIP

#if NIPI > 0
struct	mb_ctlr *ipicinfo[NIPI];
#endif NIPI

#if NIP > 0
struct	mb_device *ipidinfo[NIP];
#endif NIP

treg.h      N  xycom.h _NONEXIST_INSTR	0x04000
#define FPA_STATUS_VALID	0x02000
#define FPA_WEITEK_STATUS	0x00F00
#define FPA_DECODED_STATUS	0x0001F
#define FPA_STATUS_SHIFT	8
	/*
	 * Weitek comparison conditions e.g. 
	 * if ((fpa.wstatus_stable & FPA_DECODED_STATUS) == FPA_LT)
	 */
#define FPA_EQ			0x00004
#define FPA_LT			0x00019
#define FPA_GT			0x00000
#define FPA_UNORDERED		0x00002
#define FPA_OTHERS		0x00000

	/* 0xF40 */
	u_char fp_filler9[0x8];

	/* 0xF48, P./share/sys/sundev/ipdev.h                                                                             444       0      12        43601  4423267315  10721                                                                                                                                                                                                                                                                                                                                                                      /*
 * @(#)ipdev.h 1.2 88/09/23 Copyright (c) 1988 by Sun Microsystems, Inc.
 *
 */
#ifndef	    _IPIPKT
#define	    _IPIPKT_

#define IPI3PKTLEN  64
/*
 * Define all the IPI-3 commands and parameters
 * (EVERYTHING HARDWARE SPECIFIC COMES HERE)
 */

/*****************************************
 * I P I - 3    P A C K E T   I N F O    
 *****************************************/


/************************  
 * P A R A M E T E R S  
 ************************/

/* 
 * NOTE:
 * Substatus parameters can have one of two parameter IDs, depending
 * on whether a controller or a facility is being referred to. The form
 * for the ID is 'xN' where x is 1 if the status refers to a controller, 
 * 2 if it refers to a facility. For example, the intervention required 
 * parameter ID is 0x12 if a command couldn't be completed because 
 * the controller needs help, or 0x22 if the facility was at fault.
 */

/*
 * Diagnostic Exception (0x12 or 0x22). An error has occured during
 * on-board diagnostics. Bit defs below.
 */
struct diag_excep_parm {
	u_char	len;
	u_char	id;
	u_char	status[2];
	u_char	reservd[2];
};

/*
 * Intervention Required (0x14 or 0x24). The controller is unable to
 * respond and intervention is required before it will be able to.
 */
struct interv_rqd_parm {
	u_char	len;
	u_char	id;
	u_char	status;
	u_char	reservd[3];
};

/*
 * Alternate Port Exception (0x15 or 0x25). The slave or facility 
 * has detected an event from an alternate port.
 */
struct altport_parm {
	u_char	len;
	u_char	id;
	u_char	status;
	u_char	reservd[2];
};

/*
 * Machine Exception (0x16 or 0x26). An unusual hardware condition
 * has been detected on a controller or facility.
 */
struct machexcp_parm {
	u_char	len;
	u_char	id;
	u_char	status[4];
	u_char	ext_status;
	u_char	reservd;
};

/*
 * Command Exception (0x17 or 0x27). Exceptions relating to command
 * processing.
 */
struct cmdexcep_parm {
	u_char len;
	u_char id;
	u_char status[4];
	u_char ext_status;
	u_char reservd;
};

/*
 * Conditional Success (0x17 or 0x27). The command succeeded, but
 * additional information is available (e.g. retries were done).
 */
struct condsucc_parm {
	short	pad;
	u_char	len;
	u_char	id;
	u_char	status[4];
	u_char	ext_status;
	u_char	reservd;
};

/* 
 * Transfer Notification Parm (0x30). Holds the read/write
 * buffer address in DVMA space.
 */
struct xnote_parm {
	short	pad;
	u_char  len;	
	u_char  id;
	caddr_t bufadr;		/* DVMA buffer address */
};	

/* 
 * Command Extent Parm (0x31). Defines the tranfer count and start address  
 * (expressed as a logical block offset from the start of the disk)
 * for the transfer.
 */
struct cmdx_parm {
	short	pad;
	u_char	len;
	u_char	id;		
	u_long	blk_cnt;		/* # of Blocks (sectors) to read */
	daddr_t lbn;		/* start address for transfer */ 
};

/* 
 * Transfer Parm (0x3c). Options for data transfer commands.
 * Currently used only by WRITE to do a "write with verify".
 */
struct xfer_parm {
	u_char len;
	u_char id;		
	u_char xferopt;	/* see bits below */
};

/*
 * Disk Modes parameter (0x51). Allows the host to change the operating
 * characteristics of the slave or facility. Bit defs for mode field are 
 * described below. 
 */
struct dkmode_parm {
	u_char len;
	u_char id;
	u_short modes; 
};

/*
 * Vendor ID parameter (0x50). Supply vendor specific info.
 * Extra fields are supplied for future expansion. This parameter
 * is read-only.
 */
struct vendor_parm {
	u_char	len;
	u_char	id;
	char	manuf[0x10];	/* Manufacturer's ID (SUNMICRO) */
	char	model[8];	/* Model # (PANTHER) */
	u_char	hdwr_rev;	/* Hardware Revision Level */
	u_char	artw_rev;	/* Artwork Revision Level */
	u_char	firm_rev;	/* Firmware Revision Level */
	u_char	resrvd;		/* Reserved */
	char	uniq_id[8];	/* Unique ID */
	u_char	switset[4];	/* Switch Settings */
	u_char	extra[8];	/* extra space */
};
/*
 * Size of DataBlocks parameter (0x51). Default is 512. 
 */
struct datbsize_parm {
	u_char	len;
	u_char	id;
	int	dblksize;
};

/*
 * Size of Physical Blocks parameter (0x52).  Always the same as DataBlocks.
 */
struct physbsize_parm {
	u_char	len;
	u_char	id;
	int	pblksize;
};

/*
 * Total Number of Disk Data Blocks parameter (0x53). 
 * The starting address field is always zero.
 */
struct numdatblks_parm {
	u_char len;
	u_char id;
	int bperpart;			/* Blocks per Partition */
	int bpercyl;			/* Blocks per Cylinder */
	int bpertrk;			/* Blocks per Track */
	int strtadr;			/* Starting Address */
}; 

/*
 * Total Number of Disk Physical Blocks parameter (0x54). 
 * The starting address field is always zero.
 */
struct numphyblks_parm {
	u_char len;
	u_char id;
	int bperpart;			/* Blocks per Partition */
	int bpercyl;			/* Blocks per Cylinder */
	int bpertrk;			/* Blocks per Track */
	int strtadr;			/* Starting Address */
}; 

/*
 * Data Block Sizes Supported parameter (0x55). Define the 
 * size (in bytes) of a data block. Default is 512.
 */
struct datbss_parm {
	u_char len;
	u_char id;
	int mindatbs;			/* Min data block size. Default = 512 */
	int maxdatbs;			/* Max data block size. Default = 2048 */
	int incsize;			/* Increment size. Default = 512 */
};

/*
 * Physical Block Sizes Supported parameter (0x56). Define the 
 * size (in bytes) of a physical block. Default is 512.
 */
struct phybss_parm {
	u_char len;
	u_char id;
	int mindatbs;			/* Min data block size. Default = 512 */
	int maxdatbs;			/* Max data block size. Default = 2048 */
	int incsize;			/* Increment size. Default = 512 */
};

/*
 * Pad with Fill Characters parameter (0x5a). The slave uses the value 
 * in this field when it needs to pad data. The default is 0xfb87. 
 */
struct pad_parm {
	u_char len;
	u_char id;
	char filler[4];			/* Fill characters */
};

/*
 * Physical Disk Configuration parameter (0x5f).
 */
struct physdk_parm {
	u_char len;
	u_char id;
	int ncyls;  			/* Number of Cylinders */
	int nheads;  			/* Number of Heads */
	int nsects;  			/* Sectors per Track */
	int nbytes;   			/* Bytes per Track */
	int sinseek;			/* Single Cylinder Seek Time (usec) */
	int avgseek;			/* Average Cylinder Seek Time (usec) */
	int maxseek;			/* Maximum Cylinder Seek Time (usec) */
	int hdswit;				/* Head Switch Time (usec) */
	int rotper;				/* Rotational period (usec) */ 
	char modno[4];			/* ASCII Model Number */
};
/*
 * Addressee Configuration parameter (0x65). Define the operating 
 * characteristics of the addressee (controller). 
 */
struct addrconf_parm {
	u_char len;
	u_char id;
	int bufrsize;    	/* size of slave buffer (256K default) */
	int cmdbufsize;     	/* Command buffer size (4352 default)!? */
	short maxbcmdpkt;      	/* Max len of cmd packet (64 bytes default) */
	short maxbrsppkt;      	/* Max len of response packet (64 bytes default) */
	u_char resrvd;         	/* Reserved */
	u_char minqued;     	/* Min # of cmds we can queue (8 default) */
	u_char maxqued;     	/* Max # of cmds we can queue (64 default) */
	u_char stksiz;       	/* Min # of cmds we can stack (68 default) */
};
/*
 * Slave Configuration (bit significant) parameter (0x66). Define the 
 * operating characteristics of the slave (facility) using bit fields.
 */
struct slavconf_bs_parm {
	u_char len;
	u_char id;
	u_char slavebits[4];	/* slave config bit fields (defines below) */
};
/*
 * Slave Configuration (Fields) parameter (0x67). Define the 
 * operating characteristics of the slave (facility) using fields.
 */
struct slavconf_fld_parm {
	u_char len;
	u_char id;
	u_char spare1[3];
	u_char nparts;		/* number of data partitions per facility (1) */
	u_char spare2[4];
	u_char maxextent;	/* max number of extents */
	u_char spare3[5];
	char fattched[8];	/* number of facitilies attached */
};
/*
 * Facilities Attached to Slave parameter (0x68). Identify the facilities
 * (disks) attached to the slave. Leave room for the maximum  possible.
 */
struct fatt_parm {      	/* no, not fat farm... */ 
	u_char len;
	u_char id;
	struct facil {
		u_char fadr;	/* Facility Address */
		u_char fclass;	/* Facility Class */
		u_char ftype;	/* Facility Type */
	} facil[8];		/* declare max possible */
};

/*
 * Request Parm parameter (0x6c). This parameter is used two ways: first, 
 * the response parameter is passed back as data (i.e. DMA'ed like a
 * normal data operation). We need to specify the length in such a case 
 * because the data comes back with no header. We always set the length
 * (via the Parm Length parameter) to be 8k to be sure that we never 
 * have a buffer overrun. The ID of the requested parameter is also needed
 * this case because a parameter sent back as data has no identifier fields.
 * The other method for obtaining a response is to ask for the response to 
 * be sent back as an IPI-3 response packet. In this case, we actually get 
 * the packet from Panther's shared memory area. The parameter ID is used
 * to tell Panther which parameter we want. 
 */

struct reqparm_parm {
	u_char len;
	u_char id;
	u_char howto;			/* specify how to respond - see bitdefs below */
	u_char whichparm;		/* ID of requested parameter */
};

/*
 * Parm Length parameter (0x6d). This is used with the Request Parm
 * parameter to specify how long a response transferred as data will 
 * be. This is always set to 8k - probably overkill, but it doesn't hurt. 
 */
struct parmlen_parm {
	u_short	pad;
	u_char	len;
	u_char	id;
	u_long	 parmlen;		/* Length of parameter in bytes */
};

/*
 * Slave Reconfiguration parameter - Bit Significant (0x6e). Define the 
 * reconfigurable attributes of the slave. Bit fields are described below.
 */
struct reconf_bs_parm {
	u_char len;
	u_char id;
	u_char conf1; 
	u_char conf2; 
	u_char conf3; 
	u_char resrvd;
};

/*
 * Slave Reconfiguration parameter - Fields (0x6f). Define the 
 * reconfigurable attributes of the slave.
 */
struct reconf_fld_parm {
	u_char len;
	u_char id;
	u_char resrv1[8];		/* Reserved */
	short maxbincmd;		/* Maximum bytes in command packet */
	short maxbinrsp;		/* Maximum bytes in response packet */
	u_char resrv2[8];
	int burstsize;			/* DMA burst length in bytes (128) */
	u_char resrv3[8];
};

/* 
 * Panther Reconfiguration parameter (0xD0). Put vendor unique stuff here.
 */

struct panreconf_parm	{
	u_char	len;
	u_char	id;
	u_char	rahead;		/* Read-Ahead enabled flag */
	u_char	burstlate;    	/* Inter-Burst latency */
	short	breqlevl;     	/* VME Bus Request level */ 
	short	vecnum;        	/* Interrupt Vector Number */
	short	shmemoff;     	/* Offset from base I/O addr for shared mem */
	char	resrv1[14];    	/* Reserved */
};

/* 
 * Common header for all IPI-3 packets. The reference number 
 * is the unique ID for a command.
 */

typedef long    Align;

union ipi3header {
        struct  {
                short   hdr_pktlen;     /* cmd packet length */
                u_short hdr_refno;      /* cmd reference number */
                u_char  hdr_opcode;     /* cmd Op Code */
                u_char  hdr_mods;               /* Common and OpCode modifiers */
                u_char  hdr_ctlr;               /* slave address (ctlr number) */
                u_char  hdr_unit;               /* facility address (unit number) */
        } hdr;
        Align   x;
};

/* 
 * Command Packet. The structure is a generic preamble followed by  
 * the parameters for this command. The parameters are broken out 
 * and reused by many different commands. The padding in many of the 
 * commands is to ensure correct longword alignment on SPARC machines.
 */

struct ipi3pkt {

	union ipi3header   pkt_hdr;
	union ipi_parms {
		/*
		 *******************
		 * CONTROL COMMANDS
		 *******************
		 */
		struct attributes {
			/* 
			 * This is a union because we only report or load 
			 * parameters one at a time.
			 */
			union {
				struct vendor_parm vendor;
				struct datbsize_parm datbs;
				struct physbsize_parm phybs;
				struct numdatblks_parm ndblks;
				struct numphyblks_parm npblks;
				struct datbss_parm dbss;
				struct phybss_parm pbss;
				struct pad_parm pad;
				struct addrconf_parm addrconf;
				struct physdk_parm physdk;
				struct slavconf_bs_parm slavconf_bit;
				struct slavconf_fld_parm slavconf_fld;
				struct fatt_parm fatt;
				struct reqparm_parm reqparm;
				struct parmlen_parm parmlen;
				struct reconf_bs_parm reconbit;
				struct reconf_fld_parm reconfld;
				struct panreconf_parm panther;
			} parm;
		} attrib;

		struct nop {
			char foo[IPI3PKTLEN - (sizeof (union ipi3header))];
		} nop;

		struct operating_mode {
			struct dkmode_parm dkmode; 
		} opermode;

		struct report_addressee_status {
			struct dkmode_parm dkstat;
		} status;

		/*
		 *******************
		 * POSITION COMMANDS
		 *******************
		 */
		struct position_control {
			struct cmdx_parm cxp;
		} posctl;

		struct report_position {
			struct cmdx_parm cxp;
		} rptpos;
		/*
		 *********************
	 	 * TRANSFER  COMMANDS
	 	 *********************
		 */
		struct format {
			struct cmdx_parm cxp;
		} format;

		struct read_write {
			struct xnote_parm xnp;
			struct cmdx_parm cxp;
		} rdwr;

		/*
		 ***********************
		 * COMBINATION COMMANDS
		 ***********************
		 */
		struct allocate_restore {
			struct cmdx_parm cxp;
		} allocrest;

		struct reallocate {
			struct cmdx_parm cxp;
		} realloc;
		/*
		 **********************
		 * DIAGNOSTIC COMMANDS
		 **********************
		 */
		
		/* XXX - these are still undefined */ 

		/* 
		struct ctlr_diag {
		} cdiag;

		struct facil_diag {
		} fdiag; 
		*/

		/*
		 * The following is for the READ DEFECT LIST and 
		 * READ ERROR LOG commands.
		 */
		struct spec_read {
			struct xnote_parm xnp;
			struct reqparm_parm reqparm;
			struct parmlen_parm plenparm;
		} rdspec;

	} p_cmd;

};

/*
 * IPI-3 response/error packet. Each controller is assigned one 
 * statically, since Panther posts only one response packet at a time.
 */
struct ipi3rsp {
	union ipi3header   res_hdr;
	u_short r_stat;
	union {
		/* 
		 * Substatus.
		 */
		struct diag_excep_parm diag_excep;
		struct interv_rqd_parm interv_rqd;
		struct altport_parm altport;
		struct machexcp_parm mach_excep;
		struct cmdexcep_parm cmd_excep;
		struct condsucc_parm cond_succ;
		/*
		 * Response parameters. The commands that currently send these
		 * are Report Addressee Status, Report Position, and Report 
		 * Attributes.
		 */
		union ipi_parms r_resp;
	} r_parm;
};


#define XFER_NOTIFY		0x30    /* transfer notification (VME addr) */
#define CMD_EXTENT		0x31    /* command extent (count + block addr ) */



/* Bitdefs for Opcode Modifier in ATTRIBUTES header */

#define	REPT_ATTRIB		0           /* Report (read) an Attribute */
#define	INIT_ATTRIB		1           /* Initialize Attributes */
#define	LOAD_ATTRIB		9           /* Load (write) an Attribute */
#define	SAVE_ATTRIB		0xa         /* Save the attribute in EEPROM */

/* ATTRIBUTES Parameters */

#define	ATTR_VENDOR		0x50    /* vendor specific information */
#define	LOG_BLK_SIZ		0x51    /* logical data block size */
#define	PHYS_BLK_SIZ		0x52    /* physical data block size */
#define	LOG_BLK_LAYOUT		0x53    /* layout of blocks on disk */
#define	PHYS_BLK_LAYOUT		0x54    /* layout of blocks on disk */
#define	LOG_BLOCK_SUP		0x55    /* logical block sizes supported */
#define	PHYS_BLOCK_SUP		0x56    /* physical block sizes supported */
#define	ATTR_FILL_PAT		0x5a
#define	ATTR_PHYSDK		0x5f
#define	ATTR_CTLR_CONF		0x65
#define	ATTR_FAC_ATTACH		0x68
#define	ATTR_REQPARM		0x6c
#define	ATTR_PARMLEN		0x6d
#define	ATTR_SLVCNF_BIT		0x6e
#define	ATTR_SLVCNF_FLD		0x6f
#define	ATTR_PANTHER		0xd0

/* Bitdefs for REQUEST PARM parameter */

#define	RESP_AS_PKT		0x10       /* Send back as a response packet */
#define	RESP_AS_DATA		0x30       /* Send back as data */

/*
 * defs for response type in major status.
 */

#define	RTYP_NRML		0x01    /* normal cmd completion */
#define	RTYP_COMBO		0x03    /* combination cmd completion */
#define	RTYP_ASYNC		0x04    /* asychronous response */

/*
 * Bitdefs for the rp_spec field in the Request Parm parameter
 */

#define	RP_PASD			0x8     /* Naked Parm as Data (yow) */
#define	RP_LEN			0x10    /* Len of data returned (used w RP_PASD) */
#define	RP_PINR			0x20    /* Send back parameter in response pkt */

/*
 * Bitdefs for the Disk Mode parameter
 */
 
#define	REZERO			0x0     /* Set Heads to initial position */
#define	LOCKCRG			0x1     /* Lock Carriage */
#define	UNLDHEADS   		0x2     /* Unload read/write Heads */
#define	LDHEADS			0x4     /* Load read/write Heads */
#define	ULOCKCART   		0x8     /* Unlock Cartridge */
#define	LOCKCART    		0x10    /* Lock Cartridge */
#define	SPINDOWN    		0x20    /* Spin Down the disk */
#define	SPINUP			0x40    /* Spin Up the disk */
 

struct	ipidevice {
	u_long		dev_bir;	    /* Board id. reg	    */
	u_long		dev_csr;	    /* rw - CSR		    */
	u_long		dev_cmdreg;	    /* w - command register */ 
	u_long		dev_resp;	    /* r - response register */ 
	u_long		dev_vector;	    /* VME interrupt vector */
	u_long		dev_aux[3];	    /* Aux. registers	    */
	struct ipi3pkt	dev_cmd_pkt;	    /* IPI-3 command packet */
	struct ipi3rsp	dev_resp_pkt;	    /* IPI-3 response packet */
};

/* CSR Bit Definitions */

#define	CSR_RESET		(u_long)0x01    /* reset */
#define	CSR_EICRNB		(u_long)0x02    /* enable int on cmd register not busy */
#define	CSR_EIRRV		(u_long)0x04    /* enable int on response register valid */
#define	CSR_CRBUSY		(u_long)0x08    /* Command Register Busy */ 
#define	CSR_RRVLID		(u_long)0x10    /* Response Register Valid */ 
#define	CSR_RESERVE1		(u_long)0x20    /* Spare bit 1 */ 
#define	CSR_RESERVE2		(u_long)0x40    /* Spare bit 1 */ 
#define	CSR_RESERVE3		(u_long)0x80    /* Spare bit 1 */
#define	CSR_ERROR		(u_long)0x100    /* Response Register Valid */ 
#define	CSR_MRINFO		(u_long)0x200    /* Response Register Valid */ 
#define	CSR_LED0		(u_long)0x01000000	/* LED 0 */
#define	CSR_LED1		(u_long)0x02000000
#define	CSR_LED2		(u_long)0x04000000
#define	CSR_LED3		(u_long)0x08000000
#define	CSR_LED4		(u_long)0x10000000
#define	CSR_LED5		(u_long)0x20000000
#define	CSR_LED6		(u_long)0x40000000
#define	CSR_LED7		(u_long)0x80000000	/* LED 7 */

#define	BOARDD(x)	x->c_io->dev_bir
#define	STATUS(x)	x->c_io->dev_csr
#define	CMDREG(x)	x->c_io->dev_cmdreg
#define	RSPREG(x)	x->c_io->dev_resp
#define	INTVEC(x)	x->c_io->dev_vector

#define IP_NOTOPER  0x40000000
#define	IP_NOTREADY 0x10000000

#endif	    _IPIPKT_
parameter (0x6c). This parameter is used two ways: first, 
 * the response parameter is passed back as data (i.e. DMA'ed like a./share/sys/sundev/ipvar.h                                                                             444       0      12         7463  4423267316  10722                                                                                                                                                                                                                                                                                                                                                                      /*
 * @(#)ipvar.h 1.1 88/09/12 Copyright (c) 1988 by Sun Microsystems, Inc.
 *
 */

#ifndef _IPIVAR_
#define _IPIVAR_


/* controller structure */
#define	NLPART		NDKMAP
#define LPART(dev)	(dev & 07)
#define MAXUNITS	16

/*
 * Packet control Block
 */
struct ippcb  {
	struct	ipictlr	    *pcb_c;		    /* pointer to controller struct */
	struct	ipiunit	    *pcb_un;		    /* ptr to unit struct	    */

	struct	buf	    *pcb_bp;		    /* know my buffer		    */
	struct	ippcb	    *pcb_prev;		    /* prev pcb			    */
	struct	ippcb	    *pcb_next;
	int		    pcb_retry;

	int		    pcb_mbcookie;

	u_char		    pcb_flags;
	u_char		    pcb_mode;
	u_char		    pcb_inuse;
	u_char		    pcb_busy;

	short		    pcb_timecount;
	short		    pcb_errcnt;

	struct	ipi3pkt	    *pcb_ppkt;		/* pointer to pkt		*/
};

/*
 * Controller structure One per controller
 */
struct ipictlr {
	struct	mb_ctlr		*c_mc;	/* Back pointer to mb_ctlr structure	*/
	struct	ipiunit 	*c_units[MAXUNITS];/* max units on controller	*/
	struct	ipidevice 	*c_io;		/* ptr to I/O space data	*/
	struct	ipi3pkt		*c_commandpkts;
	int			 c_busy;	/* controller is busy		*/
	int			 c_pend;	/* set - pending for DVMA alloc */
	int			 c_intpri;	/* interrupt priority		*/
	int			 c_intvec;	/* interrupt vector		*/
	u_long			 c_flags;	/* state information		*/
	struct	ippcb		 c_pcbhdr;	/* pcb header link list manip	*/
	struct	buf		 c_bufhdr;	/* buf hdr link list manip	*/
	struct	ippcb		*c_ppcbsent;	/* pcbs sent this far		*/
};


/*
 * Unit structure One per drive
 */
struct ipiunit {
	struct	ipictlr	    *c;		/* controller				*/
	struct	dk_map	    *un_map;	/* logical partitions			*/
	struct	dk_geom	    *un_g;	/* disk geometry			*/
	struct	buf	    *un_rtab;	/* for physio				*/
	int		     un_ltick;	/* last time active			*/
	struct	mb_device   *un_md;	/* generic unit				*/
	struct	mb_ctlr	    *un_mc;	/* generic controller			*/
	struct	dkbad	    *un_bad;	/* bad sector info			*/
	int		     un_errsect;/* sector in error			*/
	u_char		     un_errno;	/* error number				*/
	u_char		     un_errsevere; /* error severity			*/
	u_short		     un_errcmd;	/* command in error			*/
	u_char		     un_flags;	/* state information			*/
};


#define	IATTACHED	0x10
#define	ISLAVED 	0x20
#define IOPEN		0x40

/* OPCODES */
#define	IP_ATTRIBUTES	0x02	    /* Initialize, report, or load slave attribute  */
#define	IP_ALLOC_RESTOR	0x34	    /* Allocate restore				    */
#define	IP_SLAVE_DIAG	0x80	    /* Perform Slave Diagnostics		    */
#define	IP_FACIL_DIAG	0x81	    /* Perform Facility Diagnostics		    */
#define	IP_FORMAT	0x28	    /* Format					    */
#define	IP_NOP		0x00	    /* Nop					    */
#define	IP_OPER_MODE	0x07	    /* Set Operating mode of facility		    */
#define	IP_PORT_ADDR	0x04	    /* Port Address				    */
#define	IP_POS_CTL	0x41	    /* Position Control				    */
#define	IP_READ		0x10	    /* Read					    */
#define	IP_READ_BUF	0x52	    /* Read Buffer				    */
#define	IP_WRITE_BUF	0x62	    /* Write Buffer				    */
#define	IP_READ_DEFLIST	0x82	    /* Read Defect List				    */
#define	IP_WRITE_DEFLIST 0x83	    /* Read Defect List				    */
#define	IP_READ_ERRLOG	0x84	    /* Read Error Log				    */
#define	IP_REALLOC	0x33	    /* Reallocate Defect			    */
#define	IP_REPORT_STAT	0x03	    /* Report Addressee Status			    */
#define	IP_REPORT_POS	0x42	    /* Report Position				    */
#define	IP_WRITE	0x20	    /* Write					    */
#define	IP_STAT		0x91	    /* Read Statistics				    */

/* Bitdefs for Opcode Modifiers */

#define RWMOD 1         /* read: only read good data. write: */

#define	IP_SYNC         0x1
#define	IP_ASYNC        0x2
#define	IP_SLEEP        0x3

#define IP_IN		0x1
#define IP_OUT		0x2

/* opcodes for ioctl */
#define IP_DIAG_ENTER	0x77
#define IP_DIAG_EXIT	0x78
#define IP_MAPDVMA	0x79
#define	IP_MAPREGS	0x7a

#define PCB_GOT_DVMA	0x4
#define PCB_FAKEBP	0x8		/* pcb carries a fake bp */
#endif _IPIVAR_
	u_char len;
	u_char id;
	u_char conf1; 
	u_char conf2; 
	u_char conf3; 
	u_char resrvd;
};

/*
 * Slave Reconfiguration parameter - Fields (0x6f). Define the 
 * reconfigurable attributes of the slave.
 *./share/sys/sundev/kbd.h                                                                               444       0      12        30303  4423267254  10347                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)kbd.h 1.14 89/02/21 SMI	*/

/* (C) Copyright 1983 by Sun Microsystems, Inc. */

/*
 * Header file for Sun Microsystems keyboard routines
 * which is disgustingly similar to ../mon/keyboard.h.
 * Since the Sun kernel uses these constants to decode
 * at least the keybid passed by the monitor, these files
 * must be kept in sync, or merged.
 *
 * The keyboard is a standard Micro Switch, or otherwise, keyboard,
 * with an 8048/8748 on the board.  This has been modified to produce
 * up/down keycodes.
 *
 * On Sun-1 keyboards these keycodes are output on 8 parallel output lines.
 * Each keycode is held stable on these lines for a minimum of 2.5 ms in
 * order that the main processor can read it during its refresh
 * routine, which executes every 2 ms or so.  
 *
 * On Sun-2 keyboards, the keycodes are transmitted on a serial line
 * at 1200 baud.
 *
 * When no physical keys are depressed, the keyboard transmits a keycode of
 * "IDLE" (7F hex), to indicate that.  Thus, when the last key is released,
 * a keycode for its release is sent, then an IDLE.  Note that virtual
 * keys on the VT100 kbd (eg CAPS LOCK) can be down when the IDLE code
 * is received.
 *
 * The Sun-1 VT100 keyboard will follow each of its IDLE's with a
 * keyboard id code, identifying the key layout or other factors
 * which host programs might want to automatically determine.
 *
 * The low 4 bits of the id byte contain the keyboard ID (currently
 * 1 for VT100 keyboard); the high order bit is set (to make sure
 * there's a transition between the IDLE (7F) and the identification
 * byte); the -XXX---- bits contain state information about the keyboard.
 * These bits are allocated from opposite ends in case we need to shift
 * the boundary.  The only state bit currently defined is 0x40, which is
 * the current state of the CAPS LOCK LED.
 *
 * The Sun-2 keyboard also transmits two other "special" keycodes:
 *
 *	RESETKEY	upon power-up, when no errors are detected,
 *			this code is sent and followed by the keyboard id,
 *			a byte containing 0x02.
 *
 *	ERRORKEY	upon power-up, when errors are detected, 
 *			this code is sent and followed by a "cause" byte
 *			giving more details.  There is only one cause byte
 *			defined so far -- checksum error on PROM.
 */

/*
 * Various special characters that might show up on the port
 */
/* Both of these are followed by 1 byte of parameters. */
#define	RESETKEY	0xFF		/* Keyboard was just reset */
#define	ERRORKEY	0x7E		/* Keyboard detected an error */
#define	NOTPRESENT	0xFF		/* Keyboard is not plugged in */

#define	IDLEKEY		0x7F		/* Keyboard is idle; no keys down */
#define	PRESSED		0x00		/* 0x80 bit off: key was pressed */
#define	RELEASED	0x80		/* 0x80 bit on : key was released */

/*
 * Keyboard ID codes...transmitted by the various keyboards
 * after the IDLEKEY code.  See top of file for more details.
 * The value of KB_UNKNOWN above must not match any of these,
 * if KBDID is set.
 */
#define	KB_KLUNK	0x00		/* Micro Switch 103SD32-2 */
#define	KB_VT100	0x01		/* Keytronics VT100 compatible */
#define	KB_SUN2		0x02		/* Sun-2 custom keyboard */
#define	KB_SUN3		0x03		/* Sun-3 custom keyboard */
#define	KB_SUN4		0x04		/* Sun-4 custom keyboard */
#define	KB_VT220	0x05		/* VT220 Style keyboard */
#define	KB_ASCII	0x0F		/* Ascii terminal masquerading as kbd */

/*
 * Commands to the Sun-2 keyboard.
 */
#define	KBD_CMD_RESET	0x01		/* Reset keyboard as if power-up */
#define	KBD_CMD_BELL	0x02		/* Turn on the bell */
#define	KBD_CMD_NOBELL	0x03		/* Turn off the bell */
#define	KBD_CMD_LED1	0x04		/* Turn on LED 1 */
#define	KBD_CMD_NOLED1	0x05		/* Turn off LED 1 */
#define	KBD_CMD_LED2	0x06		/* Turn on LED 2 */
#define	KBD_CMD_NOLED2	0x07		/* Turn off LED 2 */

/*
 * Commands to the Sun-3 keyboard.  KBD_CMD_BELL & KBD_CMD_NOBELL work
 * as well.
 */
#define	KBD_CMD_CLICK	0x0A		/* Turn on the click annunciator */
#define	KBD_CMD_NOCLICK	0x0B		/* Turn off the click annunciator */

/*
 * Software related definitions
 */
/*
 * These are the states that the keyboard scanner can be in.
 *
 * It starts out in NORMAL state.
 */
#define	NORMAL		0		/* The usual (ho, hum) */
#define	ABORT1		1		/* Got KEYABORT1 */
#define	IDLE1		2		/* Got IDLE */
#define	IDLE2		3		/* Got id byte, IDLE probably follows */

/*
 * These are how you can have your input translated.
 * TR_EVENT means that each keystroke is sent as a firm event.
 * TR_UNTRANS_EVENT also sends a firm event for each up / down transition,
 * but the value is untranslated: the event id is the key station; the
 * value indicates whether the transition was up or down; the value of the
 * shift-mask is undefined.
 */
#define	TR_NONE		  0
#define	TR_ASCII	  1
#define	TR_EVENT	  2
#define	TR_UNTRANS_EVENT  3

/*
 * These bits can appear in the result of TR_NONE & TR_UNTRANS_EVENT getkey()s.
 */
#define	STATEOF(key)	((key) & 0x80)	/* 0 = key down, 0x80 = key up */
#define	KEYOF(key)	((key) & 0x7F)	/* The key number that moved */
#define	NOKEY		(-1)		/* The argument was 0, and no key was
					   depressed.  They were all elated. */

/*
 * These bits can appear in the result of TR_ASCII getkey()s.
 * (NOKEY can also appear if no keypress was queued up.)
 */
#define	METABIT		0		/* Meta key depressed with key */
#define	METAMASK	0x000080
#define	SYSTEMBIT	1		/* Upper left key was down w/key */
#define	SYSTEMMASK	0x000100
/* other "bucky" bits can be defined at will.  See "BUCKYBITS" below. */

/*
 * This defines the bit positions used within "shiftmask" to
 * indicate the "pressed" (1) or "released" (0) state of shift keys.
 * Both the bit numbers, and the aggregate masks, are defined.
 *
 * The "UPMASK" is a minor kludge.  Since whether the key is going
 * up or down determines the translation table (just as the shift
 * keys' positions do), we OR it with "shiftmask" to get "tempmask",
 * which is the mask which is actually used to determine the 
 * translation table to use.  Don't reassign 0x0080 for anything
 * else, or we'll have to shift and such to squeeze in UPMASK,
 * since it comes in from the hardware as 0x80.
 */
#ifndef	CAPSLOCK	/* Same as sunwindow/win_input.h */
#define	CAPSLOCK	0		/* Caps Lock key */
#define	CAPSMASK	0x0001
#define	SHIFTLOCK	1		/* Shift Lock key */
#define	LEFTSHIFT	2		/* Left-hand shift key */
#define	RIGHTSHIFT	3		/* Right-hand shift key */
#define	SHIFTMASK	0x000E
#define	LEFTCTRL	4		/* Left-hand (or only) control key */
#define	RIGHTCTRL	5		/* Right-hand control key */
#define	CTRLMASK	0x0030
#endif	CAPSLOCK
/* unused...		0x0040 */
#define	UPMASK	0x0080
#define	CTLSMASK	0x0100  	/* Set if ^S was last keyed of ^S, ^Q;
					   determines which NOSCOLL sends. */
#define ALT		6		/* ALT key on Sun-3 keyboard */

/*
 * This defines the format of translation tables.
 *
 * A translation table is 128 bytes of "entries", which are bytes
 * (unsigned chars).  The top 4 bits of each entry are decoded by
 * a case statement in getkey.c.  If the entry is less than 0x80, it
 * is sent out as an ASCII character (possibly with bucky bits
 * OR-ed in).  "Special" entries are 0x80 or greater, and
 * invoke more complicated actions.
 */
struct keymap {
	unsigned char	keymap[128];	/* maps keycodes to actions */
};

/*
 * A keyboard is defined by its keymaps and what state it resets at idle.
 *
 * The masks k_idleshifts and k_idlebuckys are AND-ed with the current
 * state of  shiftmask  and  buckybits  when a "keyboard idle" code
 * is received.  This ensures that where we "think" the shift & bucky
 * keys are, more accurately reflects where they really are, since the
 * keyboard knows better than us.  However, some keyboards don't know
 * about shift states that should be remembered across idles.  Such
 * shifts are described by k_toggleshifts.  k_toggleshifts are used to
 * identify such shifts.  A toggle shift state is maintained separately
 * from the general shift state.  The toggle shift state is OR-ed
 * with the state general shift state when an idle is received.
 * k_toggleshifts should not appear in the k_up table.
 */
struct keyboard {
	struct keymap	*k_normal;	/* Unshifted */
	struct keymap	*k_shifted;	/* Shifted */
	struct keymap	*k_caps;	/* Caps locked */
	struct keymap	*k_control;	/* Controlled */
	struct keymap	*k_up;		/* Key went up */
	int		k_idleshifts;	/* Shifts that keep across idle */
	int		k_idlebuckys;	/* Bucky bits that keep across idle */
	unsigned char	k_abort1;	/* 1st key of abort sequence */
	unsigned char	k_abort2;	/* 2nd key of abort sequence */
	int		k_toggleshifts;	/* Shifts that toggle on down from kbd
					 * and keep across idle */
};


/*
 * The "special" entries' top 4 bits are defined below.  Generally they are
 * used with a 4-bit parameter (such as a bit number) in the low 4 bits.
 * The bytes whose top 4 bits are 0x0 thru 0x7 happen to be ascii 
 * characters.  They are not special cased, but just normal cased.
 */

#define	SHIFTKEYS	0x80	/* thru 0x8F.  This key helps to determine the
				   translation table used.  The bit
				   position of its bit in "shiftmask"
				   is added to the entry, eg
				   SHIFTKEYS+LEFTCTRL.  When this entry is
				   invoked, the bit in "shiftmask" is
				   toggled.  Depending which tables you put
				   it in, this works well for hold-down
				   keys or press-on, press-off keys.  */
#define	BUCKYBITS	0x90	/* thru 0x9F.  This key determines the state of
				   one of the "bucky" bits above the
				   returned ASCII character.  This is
				   basically a way to pass mode-key-up/down
				   information back to the caller with each
				   "real" key depressed.  The concept, and
				   name "bucky" (derivation unknown) comes
				   from the MIT/SAIL "TV" system...they had
				   TOP, META, CTRL, and a few other bucky
				   bits.  The bit position of its bit in
				   "buckybits", minus 7, is added to the
				   entry; eg bit 0x00000400 is BUCKYBITS+3.
				   The "-7" prevents us from messing up the
				   ASCII char, and gives us 16 useful bucky
				   bits.  When this entry is invoked,
				   the designated bit in "buckybits" is
				   toggled.  Depending which tables you put
				   it in, this works well for hold-down
				   keys or press-on, press-off keys.  */
#define	FUNNY		0xA0	/* thru 0xAF.  This key does one of 16 funny
				   things based on the low 4 bits: */
#define	NOP		0xA0	/* This key does nothing. */
#define	OOPS		0xA1	/* This key exists but is undefined. */
#define	HOLE		0xA2	/* This key does not exist on the keyboard.
				   Its position code should never be
				   generated.  This indicates a software/
				   hardware mismatch, or bugs. */
#define	NOSCROLL	0xA3	/* This key alternately sends ^S or ^Q */
#define	CTRLS		0xA4	/* This sends ^S and lets NOSCROLL know */
#define	CTRLQ		0xA5	/* This sends ^Q and lets NOSCROLL know */
#define	RESET		0xA6	/* Kbd was just reset */
#define	ERROR		0xA7	/* Kbd just detected an internal error */
#define	IDLE		0xA8	/* Kbd is idle (no keys down) */
/* Combinations 0xA9 to 0xAF are reserved for non-parameterized functions */

#define	STRING		0xB0	/* thru 0xBF.  The low-order 4 bits index
				   a table select a string to be returned,
				   char by char.  Each entry the table is
				   null terminated. */
#define	KTAB_STRLEN	10	/* Maximum string length (including null) */
/* Definitions for the individual string numbers: */
#define	HOMEARROW	0x00
#define	UPARROW		0x01
#define	DOWNARROW	0x02
#define	LEFTARROW	0x03
#define	RIGHTARROW	0x04
/* string numbers 5 thru F are available to users making custom entries */

/* In the following function key groupings, the low-order 4 bits indicate
   the function key number with in the group. */
#define	LEFTFUNC	0xC0	/* thru 0xCF.  The "left" group. */
#define	RIGHTFUNC	0xD0	/* thru 0xDF.  The "right" group. */
#define	TOPFUNC		0xE0	/* thru 0xEF.  The "top" group. */
#define	BOTTOMFUNC	0xF0	/* thru 0xFF.  The "bottom" group. */
#define LF(n)		(LEFTFUNC+(n)-1)
#define RF(n)		(RIGHTFUNC+(n)-1)
#define TF(n)		(TOPFUNC+(n)-1)
#define BF(n)		(BOTTOMFUNC+(n)-1)
/* The actual keyboard positions may not be on the left/right/top/bottom
   of the physical keyboard (although they usually are).
   What is important is that we have reserved 64 keys for function keys.

   Normally, striking a function key will cause the following escape sequence
   to be sent through the character stream:
	ESC[0..9z
   where ESC is a single escape character and 0..9 indicate some number of
   digits needed to encode the function key as a decimal number. */
back as a response packet */
#define	RESP_AS_DATA		0x30       /* Send back as data */

/*
 * defs for response type in major status.
 */

#define	RTYP_NRML		0x01    /* normal cmd completion */
#define	RTYP_COMBO		0x03    /* combination cmd completion */
#define	RTYP_ASYNC		0x04    /* asychronous response */

/*
 * B./share/sys/sundev/mbvar.h                                                                             444       0      12        25046  4423267257  10731                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)mbvar.h 4.31 88/09/29 SMI	*/

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */

#ifndef _sundev_mbvar_h
#define _sundev_mbvar_h

/*
 * This file contains definitions related to the kernel structures
 * for dealing with the Mainbus.
 *
 * The Mainbus has an mb_hd structure.
 * Each Mainbus controller which is not a device has an mb_ctlr structure.
 * Each Mainbus device has an mb_device structure.
 */

/*
 * The Mainbus structure.
 *
 * At boot time we determine the devices attached to the Mainbus.
 *
 * During normal operation, resources are allocated and returned
 * to the structures here. 
 * 
 * When Mainbus resources are needed and not available, or if a device
 * which can tolerate no other Mainbus activity gets on the bus,
 * then device drivers may have to wait to get to the bus and are
 * queued here.
 */
struct	mb_hd {
	struct	mb_ctlr *mh_actf;	/* head of queue to transfer */
	struct	mb_ctlr *mh_actl;	/* tail of queue to transfer */
	struct	map *mh_map;		/* DVMA resource map */
	short	mh_users;		/* transient use count */
	short	mh_xclu;		/* a bus hog is using the Mainbus */
};

/*
 * Per-controller structure.
 * (E.g. one for each disk and tape controller)
 *
 * If a controller has devices attached, then there are
 * cross-referenced mb_device structures.
 * This structure is the one which is queued in Mainbus resource wait,
 * and saves the information about Mainbus resources which are used.
 * The queue of devices waiting to transfer is also attached here.
 */
struct mb_ctlr {
	struct	mb_driver *mc_driver;
	short	mc_ctlr;	/* controller index in driver */
	short	mc_alive;	/* controller exists */
	caddr_t	mc_addr;	/* address of device in i/o space */
	int	mc_intpri;	/* interrupt priority level */
#ifdef	sun386
	int	mc_intr;	/* interrupt request channel */
#else
	struct	vec *mc_intr;	/* if vectored interrupts used */
#endif	sun386
	u_int	mc_space;	/* encode bits for addr device space */
#ifdef	sun386
	int mc_dmachan;		/* dma channel */
#endif	sun386
	struct	mb_hd *mc_mh;
	int	mc_mbinfo;	/* Mainbus resource allocation info */
	char	mc_rw;		/* READ or WRITE */
	struct	buf mc_tab;	/* queue of devices for this controller */
	struct	mb_ctlr	*mc_forw;	/* link in transfer queue */
};

/*
 * Per ``device'' structure.
 * (A controller has devices or uses and releases Mainbus memory).
 * (Everything else is a ``device''.)
 *
 * If a controller has many drives attached, then there will
 * be several mb_device structures associated with a single mb_ctlr
 * structure.  Some of the new drivers use this structure in conjunction
 * with the mb_ctlr structure to queue for Mainbus resources.
 *
 * This structure contains all the information necessary to run a Mainbus
 * device such as a serial line interface.  It also contains information
 * for slaves of Mainbus controllers as to which device on the slave
 * this is.  A flags field here can also be given in the system specification
 * and is used to tell which mux lines are hard wired or other device
 * specific parameters.
 */
struct mb_device {
	struct	mb_driver *md_driver;
	short	md_unit;	/* unit number on the system */
	short	md_ctlr;	/* mass ctlr number; -1 if none */
	short	md_slave;	/* slave on controller */
	caddr_t	md_addr;	/* address of device in i/o space */
	int	md_intpri;	/* interrupt priority */
	short	md_dk;		/* if init 1 set to number for iostat */
	int	md_flags;	/* parameter from system specification */
#ifdef	sun386
	int	md_intr;	/* interrupt request channel */
#else
	struct	vec *md_intr;	/* if vectored interrupts used */
#endif	sun386
	u_int	md_space;	/* encode bits for addr device space */
#ifdef	sun386
	short	md_dmachan;	/* dma channel */
#endif	sun386
	short	md_alive;	/* device exists */
	short	md_type;	/* driver specific type information */
/* if the device is connected to a controller, this is the controller */
	struct	mb_ctlr *md_mc;
	struct	mb_hd *md_hd;
	struct	diskhd md_utab;		/* queueing per unit */
	struct	mb_device *md_forw;	/* link in transfer queue */
	int 	md_mbinfo;		/* Mainbus resource allocation info */
};

/*
 * Per-driver structure.
 *
 * Each Mainbus driver defines entries for a set of routines
 * as well as an array of types which are acceptable to it.
 * These are used at boot time by the configuration program.
 */
struct mb_driver {
	int	(*mdr_probe)();		/* see if a driver is really there */
	int	(*mdr_slave)();		/* see if a slave is there */
	int	(*mdr_attach)();	/* setup driver for a slave */
	int	(*mdr_go)();		/* routine to start transfer */
	int	(*mdr_done)();		/* routine to finish transfer */
	int	(*mdr_intr)();		/* polling interrupt routine */
	int	mdr_size;		/* amount of memory space needed */
	char	*mdr_dname;		/* name of a device */
	struct	mb_device **mdr_dinfo;	/* backpointers to mbdinit structs */
	char	*mdr_cname;		/* name of a controller */
	struct	mb_ctlr **mdr_cinfo;	/* backpointers to mbcinit structs */
	short	mdr_flags;		/* Mainbus usage flags */
	struct	mb_driver *mdr_link;	/* interrupt routine linked list */
};

/* Driver flags */
#define	MDR_XCLU	0x01		/* needs exclusive use of bus */
#define	MDR_BIODMA	0x02		/* (block device) does Mainbus DMA */
#define	MDR_SWAB	0x04		/* Mainbus buffer must be swabbed */
#define	MDR_OBIO	0x08		/* device in on-board I/O space */
#define	MDR_DMA		0x10		/* (nonblock device) does Mainbus DMA */
#define MDR_PSEUDO	0x20		/* pseudo device flag */

/* Flags to mbsetup */
#define	MB_CANTWAIT	0x01		/* don't block me */

/*
 * The drivers that use the new mb interface (mb_mapalloc) directly 
 * will have a "callback routine", a pointer to which is passed to 
 * mb_mapalloc(). When invoked, this routine returns DVMA_RUNOUT if 
 * there is not enough space for its request. 
 */
#define DVMA_RUNOUT (-1)

/*
 * If mbcookie.mbi_mapreg < dvmasize, then mbi_mapreg is the
 * starting map register within DVMA space which is mapped
 * in mbsetup() and unmapped in mbrelse().  Otherwise
 * mbi_mapreg is the starting page of contigously mapped
 * region within an external "mainbus" mapping region
 * (e.g. Multibus Memory or VMEbus) as checked and
 * approved by buscheck().
 */
struct mbcookie {
#ifdef sun386
unsigned int	mbi_offset:PGSHIFT,	/* byte offset */
		mbi_mapreg:(32-PGSHIFT);/* starting map register (page) */
#else
unsigned int	mbi_mapreg:(32-PGSHIFT),/* starting map register (page) */
		mbi_offset:PGSHIFT;	/* byte offset */
#endif sun386
};

/*
 * Macros to bust return word from map allocation routines.
 */
#ifdef sun386
/* MBI_MR() and MBI_OFFSET() are valid iff i >= DVMA */
#define MBI_MR(i)	((int)(((unsigned)(i)-(unsigned)DVMA)>>PGSHIFT))
#define MBI_ADDR(i)	((int)(i))
#define MBI_OFFSET(i)	((int)(((unsigned)(i)-(unsigned)DVMA)&PGOFSET))
#else
#define	MBI_MR(i)	((int)((unsigned)(i)>>PGSHIFT))
#define	MBI_ADDR(i)	((int)(i))
#define MBI_OFFSET(i)   ((int)((unsigned)(i)&PGOFSET))
#endif	sun386

struct vec {
	int	(*v_func)();		/* interrupt function to call */
	int	v_vec;			/* vector number (64-255) */
	int	*v_vptr;		/* pointer to value passed */
};

/*
 * Convert interrupt prio to SR 
 */
#ifdef	sun386

#ifdef	SUN386
#define pritospl(n)	(n)
#define spltopri(n)	(n)
#else	SUN386
extern u_char splmasks[];
#define pritospl(n)	(splmasks[n] | ((n) << 8))
#define spltopri(n)	(((n) & 0xff00) >> 8)
#endif	SUN386

#endif	sun386

#ifdef KERNEL

int mbgo(/* mc */);
int mbugo(/* md */);
int mbsetup(/* mh, bp, flags */);
int mballoc(/* mh, addr, bcnt, flags */);
int mbuwrap(/* mc */);
int mb_mapalloc(/* map, bp, flags, waitfp */);
/*
 * The tag for this ifdef will probably have to be changed, when
 * this code is merged back into the 4.1 base.  This was needed
 * to fix a lint error
 */
#ifdef CAMPUS
int mb_nbmapalloc(/* map, addr, bcnt, flags, waitfp */);
#endif CAMPUS
void swab (/* pf, pt, n */);
void mbdone(/* mc */);
void mbudone(/* md */);
void mbrelse(/* mh, amr */);
void mb_mapfree(/* map, amr */);
void mbpresetup(/* mh, bp, flags */);
 
/*
 * Maximum interrupt priority used by Mainbus DMA.
 * This value is now a variable determined by auto configuration code by
 * taking the max of the m[cd]_intpri field from the mb_{cltr,device}
 * structures which are found to exist and have the MDR_BIODMA or
 * MDR_DMA flags on in their corresponding mb_driver structure.
 */
extern	int SPLMB;

/*
 * Mainbus related kernel variables
 */
extern	struct	mb_hd mb_hd;

/*
 * Mbcinit and mbdinit initialize the mass storage controller and
 * device tables specifying possible devices.
 */
extern	struct	mb_ctlr mbcinit[];
extern	struct	mb_device mbdinit[];

#ifdef sun2
extern	char mbio[];			/* mb device addr space */
#endif

/*
 * NOTE: the xy and xd drivers assume that the IOPBMAP is wholly 
 * contained in the first 64K of DVMA space.
 */

struct	map *iopbmap;
#define IOPBMEM		(0x2000/NBPG)	/* 8k's worth of pages for IOPB crud */
#define IOPBMAPSIZE	64

/*
 * Most of the DVMA space is controlled by a resource map.
 * We want to define the number of dvma map entries so that
 * we have enough entries to handle the largest number of
 * MAXBSIZE'd transfers at one time.  The extra page is
 * for the ``redzone'' which is set up for each mapping.
 */
#define NDVMAMAPS(ndvmapages)   ((ndvmapages)/(MAXBSIZE/MMU_PAGESIZE + 1))
extern	char DVMA[];

#endif KERNEL

#ifdef sun4c
/*
 * These structures represent the configuration info that is passed to
 * the kernel by the PROMs.
 */
struct dev_info {
	struct dev_info *devi_parent;	/* parent of this device */
	int devi_slaveno;		/* slave # of this device */
	struct dev_info *devi_next;	/* next sibling device */
	struct dev_info *devi_slaves;	/* list of child devices */
	int devi_bustype;		/* cookie for bus type it's on */
	char *devi_name;		/* name of this device */
	int devi_flags;			/* random flags */
	struct reglist *devi_regs;	/* list of regs for this device */
	struct intrlist *devi_intrs;	/* possible interrupts from it */
	int devi_rev;			/* revision level of device */
	char *devi_env;			/* misc. info passed to driver */
};

struct reglist {
	addr_t reg_addr;		/* address of reg relative to bus */
	u_int reg_size;			/* size of this register set */
	struct reglist *reg_next;	/* next reg set for this device */
};

struct intrlist {
	int int_pri;			/* interrupt priority */
	int int_vec;			/* vector # (0 if none) */
	struct intrlist *int_next;	/* next intr for this device */
};

/*
 * These are flags associated with a device.
 */
#define DEV_ATTACHED 0x0001		/* device is attached */

/*
 * This structure identifies the driver entry points related to
 * autoconfig. All drivers must declare on of these.
 */
struct dev_vector {
	int (*devv_identify)();		/* confirm device id */
	void (*devv_attach)();		/* attach routine of driver */
	struct dev_vector *devv_next;	/* system-wide list of drivers */
};
#endif sun4c

#endif /*!_sundev_mbvar_h*/
ort	mh_xclu;		/* a bus hog is using the Mainbus */
};

/*
 * Per-controller structure.
 * (E.g. one for each disk and tape controller)
 *
 * If a controller has devices attached, then there are
 * cross-referenced mb_device structures.
 * This structure is the one which is queued in Mainbus resource wait,
 * and saves the information about Mainbus resources which are used.
 * The queue of devices waiting to transfer is also attached here.
 */
struct mb_ctlr {
	struct	mb./share/sys/sundev/mcpcmd.h                                                                            444       0      12         1505  4423267257  11037                                                                                                                                                                                                                                                                                                                                                                      /* @(#)mcpcmd.h 1.6 88/09/03 SMI      */

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */

/*
 * Sun MCP Multiprotocol Communication Processor
 * Sun ALM-2 Asynchronous Line Multiplexer
 */

#ifndef	_IOCTL_
#define	_IOCTL_
#include <sys/ioctl.h>
#endif _IOCTL_

#define MCPIOSPR	_IOWR(M, 1, u_char)	/* ioctl to set printer diag
						 * mode */
#define MCPIOGPR	_IOWR(M, 2, u_char)	/* ioctl to set printer diag
						 * mode */
#define MCPRIGNSLCT	0x02	/* set = ignore hardware slct sig */
#define MCPRDIAG	0x04	/* set = activate diag mode */
#define MCPRVMEINT	0x08	/* set = VME interrupts enabled */
#define MCPRINTPE	0x10	/* set = interrupt on pe false */
#define MCPRINTSLCT	0x20	/* set = interrupt on slct false */
#define MCPRPE		0x40	/* set = printer ok, clr = paper out */
#define MCPRSLCT	0x80	/* set = printer online */
vector {
	int (*devv_identify)();		/* confirm device id */
	void (*devv_attach)();		/* attach routine of driver */
	struct dev_vector *devv_next;	/* system-wide list of drivers */
};
#end./share/sys/sundev/mcpcom.h                                                                            444       0      12        14340  4423267260  11065                                                                                                                                                                                                                                                                                                                                                                      /* @(#)mcpcom.h 1.7 88/09/12 SMI      */

#include <sys/ttyflow.h>

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */

/*
 * Sun MCP Multiprotocol Communication Processor
 * Sun ALM-2 Asynchronous Line Multiplexer
 */

struct mcpops {
	int             (*mcpop_attach) ();	/* attach protocol */
	int             (*mcpop_txint) ();	/* xmit buffer empty */
	int             (*mcpop_xsint) ();	/* external/status */
	int             (*mcpop_rxint) ();	/* receive char available */
	int             (*mcpop_srint) ();	/* special receive condition */
	int             (*mcpop_txend) ();	/* transmit DMA done */
	int             (*mcpop_rxend) ();	/* receive DMA done */
	int             (*mcpop_rxchar) ();	/* fifo receive char
						 * available */
	int             (*mcpop_dsr) ();	/* DSR/DM */
	int             (*mcpop_pe) ();		/* PE: printer out of paper */
	int             (*mcpop_slct) ();	/* SLCT: printer is on-line */
};


/* data struct used to store last character of receive fifo */

struct last_char {
	u_char          rchar;	/* character just received from fifo */
	u_char          hold;	/* indicate the status(full/empty) of the
				 * rchar */
};

/*
 * Common data
 */

struct mcpcom {
	struct mcp_device *mcp_addr;	/* address of mcp register set */
	struct zscc_device *zs_addr;	/* address of half zs chip */
	short           zs_unit;	/* which port (0:15) */
	short           mc_unit;	/* which MCP board */
	caddr_t         zs_priv;	/* protocol private data */
	struct last_char lc;		/* last receive char from MCP fifo */
	struct mcpops  *mcp_ops;	/* interrupt op vector */
	struct dma_chan *mcp_rxdma;	/* receive DMA channel */
	struct dma_chan *mcp_txdma;	/* transmit DMA channel */
	u_char          zs_wreg[16];	/* shadow of write registers */
	char            zs_flags;	/* random flags */
	short           zs_rerror;	/* receive err, must throw away char */
};

#define	RINGBITS	8		/* # of bits in ring ptrs */
#define	RINGSIZE	(1<<RINGBITS)	/* size of ring */
#define	RINGMASK	(RINGSIZE-1)
#define	RINGFRAC	2		/* fraction of ring to force flush */

#define	RING_INIT(zap)	((zap)->za_rput = (zap)->za_rget = 0)
#define	RING_CNT(zap)	(((zap)->za_rput - (zap)->za_rget) & RINGMASK)
#define	RING_FRAC(zap)	(RING_CNT(zap) >= (RINGSIZE/RINGFRAC))
#define	RING_POK(zap,n)	(RING_CNT(zap) < (RINGSIZE-(n)))
#define	RING_PUT(zap,c)	((zap)->za_ring[(zap)->za_rput++ & RINGMASK] = (u_char)(c))
#define	RING_GOK(zap,n)	(RING_CNT(zap) >= (n))
#define	RING_GET(zap)	((zap)->za_ring[(zap)->za_rget++ & RINGMASK])
#define	RING_EAT(zap,n)	((zap)->za_rget += (n))

/*
 * Communication between H/W level 4 interrupts and driver
 */
struct mcpaline {
	int             za_flags;	/* random flags */
	dev_t           za_dev;		/* major/minor for this device */
	struct mcpcom  *za_common;	/* address of zs common data struct */
	tty_common_t    za_ttycommon;	/* data common to all tty drivers */
	flow_t		za_flow;	/* flow control machine */
	time_t		za_dtrlow;	/* time dtr last went low */
	u_char          za_rr0;		/* for break detection */
	char            za_xactive;	/* txmit active    */
	u_char         *za_xoff;	/* xoff char in h/w XOFF buffer */
	u_char          za_flowc;	/* xoff char to transmit */
	u_char          za_lnext;	/* literal-next character from termio */
	u_char         *za_devctl;	/* device control reg for this port */
	u_char         *za_dmabuf;	/* dma ram buffer for this port */
	u_char         *za_optr;	/* output ptr */
	short           za_ocnt;	/* output count */
	char            za_done;	/* dma is done */
	u_char		za_rput;	/* producing ptr for input */
	u_char		za_rget;	/* consuming ptr for input */
	u_char          za_ring[RINGSIZE];	/* circular queue for input
						 * buf */
};

struct zs_dmabuf {
	u_char         *d_baddr;	/* base addr of the buf */
	short           d_wc;		/* current word count */
};

#define MCP_WAIT_DMA   0x1
#define TXENABLE       0x1

/* interrupt vector value */
#define CIO_PBD0_TXEND    0x11
#define CIO_PBD1_TXEND    0x13
#define CIO_PBD2_TXEND    0x15
#define CIO_PBD3_TXEND    0x17
#define CIO_PBD4_RXEND    0x19
#define CIO_PBD5_PPTX     0x1b
#define CIO_PBD6_PE       0x1d
#define CIO_PBD7_SLCT     0x1f

#define CIO_PAD0_DSRDM    0x1
#define CIO_PAD1_DSRDM    0x3
#define CIO_PAD2_DSRDM    0x5
#define CIO_PAD3_DSRDM    0x7
#define CIO_PAD4_FIFO_E   0x9
#define CIO_PAD5_FIFO_HF  0xb
#define CIO_PAD6_FIFO_F   0xd

#define SCC0_TXINT        0x0
#define SCC0_XSINT        0x2
#define SCC0_RXINT        0x4
#define SCC0_SRINT        0x6
#define SCC1_TXINT        0x8
#define SCC1_XSINT        0xa
#define SCC1_RXINT        0xc
#define SCC1_SRINT        0xe

#define SCC2_TXINT        0x10
#define SCC2_XSINT        0x12
#define SCC2_RXINT        0x14
#define SCC2_SRINT        0x16
#define SCC3_TXINT        0x18
#define SCC3_XSINT        0x1a
#define SCC3_RXINT        0x1c
#define SCC3_SRINT        0x1e

#define SCC4_TXINT        0x20
#define SCC4_XSINT        0x22
#define SCC4_RXINT        0x24
#define SCC4_SRINT        0x26
#define SCC5_TXINT        0x28
#define SCC5_XSINT        0x2a
#define SCC5_RXINT        0x2c
#define SCC5_SRINT        0x2e

#define SCC6_TXINT        0x30
#define SCC6_XSINT        0x32
#define SCC6_RXINT        0x34
#define SCC6_SRINT        0x36
#define SCC7_TXINT        0x38
#define SCC7_XSINT        0x3a
#define SCC7_RXINT        0x3c
#define SCC7_SRINT        0x3e

#define SCC8_TXINT        0x40
#define SCC8_XSINT        0x42
#define SCC8_RXINT        0x44
#define SCC8_SRINT        0x46
#define SCC9_TXINT        0x48
#define SCC9_XSINT        0x4a
#define SCC9_RXINT        0x4c
#define SCC9_SRINT        0x4e

#define SCC10_TXINT       0x50
#define SCC10_XSINT       0x52
#define SCC10_RXINT       0x54
#define SCC10_SRINT       0x56
#define SCC11_TXINT       0x58
#define SCC11_XSINT       0x5a
#define SCC11_RXINT       0x5c
#define SCC11_SRINT       0x5e

#define SCC12_TXINT       0x60
#define SCC12_XSINT       0x62
#define SCC12_RXINT       0x64
#define SCC12_SRINT       0x66
#define SCC13_TXINT       0x68
#define SCC13_XSINT       0x6a
#define SCC13_RXINT       0x6c
#define SCC13_SRINT       0x6e

#define SCC14_TXINT       0x70
#define SCC14_XSINT       0x72
#define SCC14_RXINT       0x74
#define SCC14_SRINT       0x76
#define SCC15_TXINT       0x78
#define SCC15_XSINT       0x7a
#define SCC15_RXINT       0x7c
#define SCC15_SRINT       0x7e
yte offset */
#endif sun386
};

/*
 * Macros to bust return word from map allocation routines.
 */
#ifdef sun386
/* MBI_MR() and MBI_OFFSET() are valid iff i >= DVMA */
#define MBI_MR(i)	((int)(((unsigned)(i)-(unsigned)DVMA)>>PGSHIFT))
#define MBI_ADDR(i)	((int)(i))
#define MBI_OFFSET(i)./share/sys/sundev/mtivar.h                                                                            444       0      12         5433  4423267263  11077                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)mtivar.h 1.11 89/02/13 SMI	*/

#include <sys/ttyflow.h>

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */

/*
 * Systech MTI-800/1600 Multiple Terminal Interface driver
 */

/*
 * Per-board data structures.
 */
struct	mti_softc {
	int	msc_have;	/* number of response chars accumulated */
	u_char	msc_rbuf[8];	/* buffer for responses */
	struct	clist msc_cmdq;	/* queue of commands if cmd fifo is busy */
};

#define	RINGBITS	8		/* # of bits in ring ptrs */
#define	RINGSIZE	(1<<RINGBITS)	/* size of ring */
#define	RINGMASK	(RINGSIZE-1)
#define	RINGFRAC	2		/* fraction of ring to force flush */

#define	RING_INIT(mtp)	((mtp)->mt_rput = (mtp)->mt_rget = 0)
#define	RING_CNT(mtp)	(((mtp)->mt_rput - (mtp)->mt_rget) & RINGMASK)
#define	RING_FRAC(mtp)	(RING_CNT(mtp) >= (RINGSIZE/RINGFRAC))
#define	RING_POK(mtp,n)	(RING_CNT(mtp) < (RINGSIZE-(n)))
#define	RING_PUT(mtp,c)	((mtp)->mt_ring[(mtp)->mt_rput++ & RINGMASK] = (u_char)(c))
#define	RING_GOK(mtp,n)	(RING_CNT(mtp) >= (n))
#define	RING_GET(mtp)	((mtp)->mt_ring[(mtp)->mt_rget++ & RINGMASK])
#define	RING_EAT(mtp,n)	((mtp)->mt_rget += (n))

/*
 * Per-line data structures.
 */
struct mtiline {
	int	mt_flags;		/* random flags */
	dev_t	mt_dev;			/* device number */
	tty_common_t mt_ttycommon;	/* data common to all tty drivers */
	flow_t	mt_flow;		/* flow control machine state */
	time_t	mt_dtrlow;		/* time dtr last went low */
	u_char	mt_wbits;		/* copy of writable modem control bits */
	u_char	mt_rbits;		/* copy of readable modem control bits */
	char	*mt_buf;		/* pointer to DMA buffer */
	int	mt_dmaoffs;		/* offset into DMA buffer to start */
	int	mt_dmacount;		/* number of bytes to transmit */
	u_char	mt_flowc;		/* startc or stopc to transmit */
	u_char	mt_rput;		/* producing ptr for input */
	u_char	mt_rget;		/* consuming ptr for input */
	u_char	mt_ring[RINGSIZE];	/* input ring */
};

#define	MTS_WOPEN	0x00000001	/* waiting for open to complete */
#define	MTS_ISOPEN	0x00000002	/* open is complete */
#define	MTS_OUT		0x00000004	/* line being used for dialout */
#define	MTS_CARR_ON	0x00000008	/* carrier on last time we looked */
#define	MTS_XCLUDE	0x00000010	/* device is open for exclusive use */
/* #define MTS_STOPPED	0x00000020	   output is stopped OBSELETE */
#define	MTS_DELAY	0x00000040	/* waiting for delay to finish */
#define	MTS_BREAK	0x00000080	/* waiting for break to finish */
#define	MTS_BUSY	0x00000100	/* waiting for transmission to finish */
#define	MTS_FCXMIT	0x00000200	/* waiting for flow control char transmission to finish */
#define	MTS_DRAINING	0x00000400	/* waiting for output to drain */
#define	MTS_FLUSH	0x00000800	/* flushing output being transmitted */
#define	MTS_DRAINPEND	0x00001000	/* ring-drain pending */
#define	MTS_OVERRUN	0x00002000	/* hardware silo overflow */
#define	MTS_SUSPD	0x00004000	/* output is suspended */
a_ttycommon;	/* data common to all tty drivers */
	flow_t		za_flow;	/* flow control machine */
	time_t		za_dtrlow;	/* time dtr last went low */
	u_char          za_rr0;		/* for break detection */
	char            za_xactive;	/* t./share/sys/sundev/p4reg.h                                                                             444       0      12         4140  4423267264  10611                                                                                                                                                                                                                                                                                                                                                                      /* @(#)p4reg.h	1.5 10/30/88 SMI */

/*
 * Copyright 1987 by Sun Microsystems, Inc.
 */

#ifndef	p4reg_DEFINED
#define	p4reg_DEFINED

/*
 * P4 frame buffer hardware definitions.
 */

/* P4 register bit definitions */
/*
 * P4_REG_DIAG is the bit 31 read back
 * P4_REG_READBACK_CLR is bit 2 reak back
 * This means writing to bit 32/2 and read them back at 7/2
 *
 * P4_REG_SYNC synchronize the ramdac, we should write 1 to it
 * followed by writing 0 immediately.  It obsoletes P4_REG_RESET.
 *
 * Bit 0 reads back as P4_REG_FIRSTHALF which is asserted during the
 * first half of the vertical retrace and zero otherwise.
 *
 * P4_REG_INTCLR clear the current interrupt so that we won't get
 * interrrupt immediately after we enable it.
 */
#define P4_REG_DIAG		0x80	/* diagnosis bit */
#define P4_REG_READBACKCLR	0x40
#define P4_REG_VIDEO		0x20	/* video enable */
#define P4_REG_SYNC		0x10	/* ramdac sync */
#define P4_REG_VTRACE		0x08	/* vtrace period */
#define	P4_REG_INT		0x04	/* interrupt detect */
#define	P4_REG_INTCLR		0x04	/* interrupt clear */
#define	P4_REG_INTEN		0x02	/* interrupt enable */
#define P4_REG_FIRSTHALF	0x01	/* first half of vtrace */
#define P4_REG_RESET		0x01	/* device reset */

/* frame buffer type mask (allows 16 types, 16 resolutions) */
#define	P4_ID_MASK		0xf0

/* base frame buffer type codes */
#define	P4_ID_BW		0	/* memory monochrome */

#define P4_ID_FASTCOLOR		0x60	/* accelerated 8-bit color */
#define P4_ID_COLOR8P1		0x40	/* 8-bit color + overlay */
#define P4_ID_COLOR24		0x45	/* 24-bit color + overlay */

/* resolution codes -- added to base types above */
#define	P4_ID_640X480		5
#define	P4_ID_1152X900		1
#define	P4_ID_1024X1024		2
#define	P4_ID_1280X1024		3
#define	P4_ID_1600X1280		0
#define	P4_ID_1440X1440		4

#define	P4_ID_RESCODES		7

/* offset from P4 register to monochrome memory plane */
#define	P4_BW_OFF		0x100000

/* offsets from P4 register to color f.b. pieces */
#define P4_COLOR_OFF_OVERLAY	0x00100000
#define P4_COLOR_OFF_ENABLE	0x00300000
#define P4_COLOR_OFF_COLOR	0x00500000
#define P4_COLOR_OFF_CMAP	0xfff00000
#define P4_COLOR_OFF_LUT	(-0x100000)

#endif	!p4reg_DEFINED
	/* device is open for exclusive use */
/* #define MTS_STOPPED	0x00000020	   output is stopped OBSELETE */
#define	MTS_DELAY	0x00000040	/* waiting for delay to finish */
#define	MTS_BREAK	0x00000080	/* waiting for break to finish */
#define	MTS_BUSY	0x00000100	/* waiting for transmission to finish */
#define	MTS_FCXMIT	0x00000200	/* waiting for flow control char transmission to finish */
#define	MTS_DRAINING	0x00./share/sys/sundev/ppreg.h                                                                             444       0      12         2717  4423267317  10714                                                                                                                                                                                                                                                                                                                                                                      /* @(#)ppreg.h	1.3 88/12/14 Copyr 1988 Sun Micro*/

/*
 * (ppreg.h) Sun-3x Parallel Port Registers
 * Copyright (c) 1988 by Sun Microsystems, Inc.
 */

#ident "TBD"

struct pp_reg {
	unsigned char filler1[0x30];
	unsigned char pp_intr;
	unsigned char filler2[0xb];
	unsigned char pp_data;	/* 00:Data Register */
	unsigned char pp_stat;	/* 01:Status Register */
	unsigned char pp_cntrl;	/* 10:Control Register */
	unsigned char pp_inval;	/* 11:Invalid Register */
};

/* Printer Control Reg bits */
/* #define	PC_INTENABLE	0x10	*/
#define	PC_INTENABLE	0x10	/* +IRQ ENABLE: enable ACK interrupts */
#define	PC_SELECT	0x08	/* +SLCT IN: select printer */
#define	PC_INIT		0x04	/* -INIT: init printer */
#define	PC_LINEFEED	0x02	/* +AUTO FD XT: set auto linefeed */
#define	PC_STROBE	0x01	/* +STROBE: strobe data */

#define	PC_NORM		(PC_INTENABLE|PC_SELECT|PC_INIT)
#define	PC_OFF		(PC_SELECT|PC_INIT)
#define	PC_RESET	(PC_SELECT)

/* Printer Status Reg bits */
#define	PS_READY	0x80	/* -BUSY: printer not busy */
#define	PS_NOTACK	0x40	/* -ACK: ACK state */
#define	PS_NOPAPER	0x20	/* +PE: printer out of paper */
#define	PS_SELECT	0x10	/* +SLCT: printer is selected */
#define	PS_NOERROR	0x08	/* -ERROR: printer error condition */

#define	PSREADY(s)	((s)&PS_READY)
#define	PSSELECT(s)	((s)&PS_SELECT)
#define	PSNOPAPER(s)	((s)&PS_NOPAPER)
#define	PSERROR(s)	(((s)&PS_NOERROR) == 0)

#define PPIOCGETS	_IOR(p, 0, char)
#define PPIOCGETC	_IOR(p, 1, char)
#define PPIOCSETC	_IOW(p, 2, char)
rlay */
#define P4_ID_COLOR24		0x45	/* 24-bit col./share/sys/sundev/ramdac.h                                                                            444       0      12         2333  4423267320  11012                                                                                                                                                                                                                                                                                                                                                                      /* @(#)ramdac.h	1.1 88/11/15 */
#ifndef	_ramdac_DEFINED_
#define _ramdac_DEFINED_

#include <pixrect/pixrect.h>

#define RAMDAC_READMASK		04
#define RAMDAC_BLINKMASK	05
#define RAMDAC_COMMAND		06
#define RAMDAC_CTRLTEST		07

/* 3 Brooktree ramdac 457 or 458 packed in a 32-bit register */
/* fbunit defined in <pixrect/pixrect.h> */
struct ramdac {
    union fbunit    addr_reg,	       /* address register */
                    lut_data,	       /* lut data port */
                    command,	       /* command/control port */
                    overlay;	       /* overlay lut port */
};

#define ASSIGN_LUT(lut, value) (lut).packed = (value & 0xff) | \
	((value & 0xff) << 8) | ((value & 0xff) << 16)
/*
 * To initialize do this:
        struct ramdac  *lut;

        lut->addr_reg.packed = 0;
        ASSIGN_LUT (lut->addr_reg, CG8_RAMDAC_CTRLTEST);
	ASSIGN_LUT(lut->command, 04);
	ASSIGN_LUT (lut->addr_reg, CG8_RAMDAC_COMMAND);
        ASSIGN_LUT (lut->command, 0x43);
        ASSIGN_LUT (lut->addr_reg, CG8_RAMDAC_READMASK);
        ASSIGN_LUT (lut->command, 0xff);
        ASSIGN_LUT (lut->addr_reg, CG8_RAMDAC_BLINKMASK);
        ASSIGN_LUT (lut->command, 0);
 * followed by the colormap initialization.
 */

#endif	_ramdac_DEFINED_
		07

/* 3 Brooktree ramdac 457 or 458 packed in a 32-bit register */
/* fbunit defined in <pixrect/pixrect.h> */
struct ramdac {
    union fbunit    addr_reg,	       /* address register */
                    lut_data,	       /* lut data port */
                    command,	       /* command./share/sys/sundev/sc_conf.c                                                                           444       0      12         6726  4423622704  11203                                                                                                                                                                                                                                                                                                                                                                      #ifndef lint
static	char sccsid[] = "@(#)sc_conf.c 1.22 88/09/12 SMI";
#endif

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */

#define REL4		/* Enable Release 4.0 mods */

#include "sc.h"
#include "si.h"
#include "se.h"
#ifndef REL4
#ifdef SYS4
#include "sm.h"		/* Sun 3x/80 and Sun4/330 support */
#include "sw.h"         /* Sun 4/110 support */
#endif SYS4
#else REL4
#include "sm.h"		/* Sun 3x/80 and Sun4/330 support */
#include "sw.h"         /* Sun 4/110 support */
#include "wds.h"        /* Sun ECD support */
#endif REL4

#if ((NSC > 0) || (NSI > 0) || (NSE > 0) || (NSW > 0) || (NWDS > 0) || (NSM >0))

#ifndef REL4
#include "../h/types.h"
#include "../h/buf.h"
#include "../sun/dklabel.h"
#include "../sun/dkio.h"
#include "../sundev/screg.h"
#include "../sundev/sireg.h"
#include "../sundev/scsi.h"

#else REL4

#include <sys/types.h>
#include <sys/buf.h>
#include <sun/dklabel.h>
#include <sun/dkio.h>
#include <sundev/screg.h>
#include <sundev/sireg.h>
#include <sundev/scsi.h>
#endif REL4

/* generic scsi debug flag */
int scsi_debug = 0;

/* scsi disconnect/reconnect global enable flag */
int scsi_disre_enable = 1;

#include "sd.h"
#include "st.h"
#include "sf.h"

/*
 * If host adaptors exist, declare structures for them here.
 */
#if NSC > 0
int nsc = NSC;
struct scsi_ctlr scctlrs[NSC];
struct mb_ctlr *scinfo[NSC];
#endif NSC

#if NSI > 0
int nsi = NSI;
struct scsi_ctlr sictlrs[NSI];
struct mb_ctlr *siinfo[NSI];
#endif NSI

#if NSE > 0
int nse = NSE;
struct scsi_ctlr se_ctlrs[NSE];
struct mb_ctlr *se_info[NSE];
#endif NSE

#if NSW > 0
int nsw = NSW;
struct scsi_ctlr swctlrs[NSW];
struct mb_ctlr *swinfo[NSW];
#endif NSW

#if NWDS > 0
int nwds = NWDS;
struct scsi_ctlr wdsctlrs[NWDS];
struct mb_ctlr *wdsinfo[NWDS];
#endif NWDS

#if NSM > 0
int nsm = NSM;
struct scsi_ctlr smctlrs[NSM];
struct mb_ctlr *sminfo[NSM];
#endif NSM

/*
 * If disks exist, declare unit structures for them.
 */
#if NSD > 0
int nsdisk = NSD;
struct scsi_unit sdunits[NSD];
struct scsi_disk sdisk[NSD];
#endif NSD

/*
 * Same thing for tapes.
 */
#if NST > 0
int nstape = NST;
struct scsi_unit stunits[NST];
struct scsi_tape stape[NST];
#endif NST

/*
 * Same thing for floppy disks.
 */
#if NSF > 0
int nsfdisk = NSF;
struct scsi_unit sfunits[NSF];
struct scsi_floppy sfdisk[NSF];
#endif NSF

struct	mb_device *sdinfo[NSD + NST + NSF];


/*
 * Device specific subroutines.
 * Indexed by "flag" from the configuration file,
 * which is in mc_flag.
 * Disk is 0, tape is 1.
 */
#if NSD > 0
int	sdattach(), sdstart(), sdmkcdb(), sdintr(), sdunitptr();
#endif NSD > 0

#if NST > 0
int	stattach(), ststart(), stmkcdb(), stintr(), stunitptr();
#endif NST > 0

#if NSF > 0
int	sfattach(), sfstart(), sfmkcdb(), sfintr(), sfunitptr();
#endif NSF > 0

struct	scsi_unit_subr scsi_unit_subr[] = {
#if NSD > 0
	{ sdattach, sdstart, sdmkcdb, sdintr, sdunitptr, "sd", },
#else
	{ (int (*)())0, (int (*)())0, (int (*)())0, (int (*)())0, (int (*)())0,
	(char *)0},
#endif NSD > 0

#if NST > 0
	{ stattach, ststart, stmkcdb, stintr, stunitptr, "st", },
#else
	{ (int (*)())0, (int (*)())0, (int (*)())0, (int (*)())0, (int (*)())0,
	(char *)0},
#endif NST > 0

#if NSF > 0
	{ sfattach, sfstart, sfmkcdb, sfintr, sfunitptr, "sf", },
#else
	{ (int (*)())0, (int (*)())0, (int (*)())0, (int (*)())0, (int (*)())0,
	(char *)0},
#endif NSF > 0
};

/*
 * Number of SCSI device driver types.
 */
int scsi_ntype = sizeof scsi_unit_subr / sizeof (struct scsi_unit_subr);

#endif ((NSC > 0) || (NSI > 0) || (NSE > 0) || (NSW > 0) || (NWDS > 0) || (NSM >0))
r		za_rput;	/* producing ptr for input */
./share/sys/sundev/screg.h                                                                             444       0      12         5174  4423267265  10704                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)screg.h 4.21 89/03/30 SMI	*/

#define	HOST_ADDR	0x00	/* 0x80 is right but Sysgen violates spec */

#define SC_RESET_DELAY		4000000	/*  1 us  ( 4 Sec.) */
#define SC_LONG_WAIT		3000000	/* 10 us  (30 Sec.) */
#define SC_WAIT_COUNT		1000000	/* 10 us  (10 Sec.) */
#define SC_SHORT_WAIT		25000	/* 10 us  (.25 Sec.) */


#if	defined(sun2)  ||  defined(sun3) || defined(sun3x)
/* 
 * SCSI Sun host adapter control registers for Sun-2 and Sun-3.
 */
#define	SET_DMA_ADDR(har,val)	(har)->dma_addr = val;
#define	GET_DMA_ADDR(har)	(har)->dma_addr;

struct	scsi_ha_reg {		/* host adapter (I/O space) registers */
	u_char	data;		/* data register */
	u_char	unused;
	u_char	cmd_stat;	/* command/status register */
	u_char	unused2;
	u_short	icr;		/* interface control register */
	u_short	unused3;
	u_long	dma_addr;	/* dma base address */
	u_short	dma_count;	/* dma count register */
	u_char	unused4;
	u_char	intvec;		/* interrupt vector for VMEbus versions */
};
#endif	defined(sun2)  ||  defined(sun3) || defined(sun3x)


#ifdef	sun4
/* 
 * SCSI Sun host adapter control registers for Sun-4.
 */
#define	SET_DMA_ADDR(har,val)	(har)->dma_addrh = (val >> 16);\
				(har)->dma_addrl = (val & 0xffff);
#define	GET_DMA_ADDR(har)	(((har)->dma_addrh  << 16) | ((har)->dma_addrl))

struct	scsi_ha_reg {		/* host adapter (I/O space) registers */
	u_char	data;		/* data register */
	u_char	unused;
	u_char	cmd_stat;	/* command/status register */
	u_char	unused2;
	u_short	icr;		/* interface control register */
	u_short	unused3;
	u_short	dma_addrh;	/* dma base address */
	u_short	dma_addrl;
	u_short	dma_count;	/* dma count register */
	u_char	unused4;
	u_char	intvec;		/* interrupt vector for VMEbus versions */
};
#endif	sun4


/*
 * bits in the interface control register 
 */
#define	ICR_PARITY_ERROR	0x8000
#define	ICR_BUS_ERROR		0x4000
#define	ICR_ODD_LENGTH		0x2000
#define	ICR_INTERRUPT_REQUEST	0x1000
#define	ICR_REQUEST		0x0800
#define	ICR_MESSAGE		0x0400
#define	ICR_COMMAND_DATA	0x0200	/* command=1, data=0 */
#define	ICR_INPUT_OUTPUT	0x0100	/* input=1, output=0 */
#define	ICR_PARITY		0x0080
#define	ICR_BUSY		0x0040
/* Only the following bits may usefully be set by the CPU */
#define	ICR_SELECT		0x0020
#define	ICR_RESET		0x0010
#define	ICR_PARITY_ENABLE	0x0008
#define	ICR_WORD_MODE		0x0004
#define	ICR_DMA_ENABLE		0x0002
#define	ICR_INTERRUPT_ENABLE	0x0001

/*
 * Compound conditions of icr bits message, command/data and input/output.
 */
#define	ICR_COMMAND	(ICR_COMMAND_DATA)
#define	ICR_STATUS	(ICR_COMMAND_DATA | ICR_INPUT_OUTPUT)
#define	ICR_MESSAGE_IN	(ICR_MESSAGE | ICR_COMMAND_DATA | ICR_INPUT_OUTPUT)
#define	ICR_BITS	(ICR_MESSAGE | ICR_COMMAND_DATA | ICR_INPUT_OUTPUT)
attach(), sfstart(), sfmkcdb(), sfintr(), sfunitptr();
#endif NSF > 0

struct	scsi_unit_subr scsi_unit_subr[] = {
#if NSD > 0
	{ sdattach, sdstart, sdmkcdb, sdintr, sdunitptr, "sd", },
#else
	{ (int (*)())0, (int (*)())0, (int (*)())0, (int (*)())0, (int (*)())0,
	(char *)0},
#endif NSD > 0

#if NST > 0
	{ stattach, ststart, stmkcdb, stintr, stunitptr, "st", },
#else
	{ (int (*)())0, (./share/sys/sundev/scsi.h                                                                              444       0      12        56170  4424704654  10563                                                                                                                                                                                                                                                                                                                                                                      /* @(#)scsi.h	1.40 89/03/27 Copyr 1987 Sun Micro */

/*
 * Copyright (c) 1987, 1987 by Sun Microsystems, Inc.
 */

/*
 * Standard SCSI control blocks and definitions.
 * These go in or out over the SCSI bus.
 */
#define CDB_GROUPID(cmd)	((cmd >> 5) & 0x7)
#define CDB_GROUP0	6	/*  6-byte cdb's */
#define CDB_GROUP1	10	/* 10-byte cdb's */
#define CDB_GROUP2	0	/* reserved */
#define CDB_GROUP3	0	/* reserved */
#define CDB_GROUP4	0	/* reserved */
#define CDB_GROUP5	0	/* reserved */
#define CDB_GROUP6	0	/* reserved */
#define CDB_GROUP7	0	/* reserved */

/*
 * Standard SCSI control blocks.
 * These go in or out over the SCSI bus.
 * The first 11 bits of the command block are the same for all
 * three defined command groups.  The first byte is an operation code
 * which consists of a command code component and a group code 
 * component.   The first 3 bits of the second byte are the unit
 * number.
 *
 * The group code determines the length of the rest of
 * the command. Group 0 commands are 6 bytes, Group 1 are 10 bytes, 
 * and Group 5 are 12 bytes.  Groups 2-4 are reserved.  
 * Groups 6 and 7 are vendor unique.
 */
struct	scsi_cdb {			/* scsi command description block */
	u_char cmd;			/* cmd code (byte 0) */
	u_char lun	:3;		/* lun (byte 1) */
	u_char tag	:5;		/* rest of byte 1 */
	union {				 /* bytes 2 - 12 */
		u_char	scsi[22];	/* allow space for 24-byte cdb */


		/* 
	 	 *	G R O U P   0   F O R M A T (6 bytes)
		 */
#define		scc_cmd		cmd
#define		scc_lun		lun
#define		g0_addr2	tag
#define		g0_addr1	sg.g0.addr1
#define		g0_addr0	sg.g0.addr0
#define		g0_count0	sg.g0.count0
#define 	g0_vu_1		sg.g0.vu_57
#define 	g0_vu_0		sg.g0.vu_56
#define 	g0_flag		sg.g0.flag
#define 	g0_link		sg.g0.link
	/*
	 * defines for SCSI tape cdb (standalone boot).
	 */
#define		t_code		tag
#define		high_count	sg.g0.addr1
#define		mid_count	sg.g0.addr0
#define		low_count	sg.g0.count0
		struct scsi_g0 {
			u_char addr1;		/* middle part of address */
			u_char addr0;		/* low part of address */
			u_char count0;		/* usually block count */
			u_char vu_57	:1;	/* vendor unique (byte 5 bit 7*/
			u_char vu_56	:1;	/* vendor unique (byte 5 bit 6*/
			u_char rsvd	:4;	/* reserved */
			u_char flag	:1;	/* interrupt when done */
			u_char link	:1;	/* another command follows */
		} g0;


		/*
		 *	G R O U P   1   F O R M A T  (10 byte)
		 */
#define		g1_reladdr	tag
#define		g1_rsvd0	sg.g1.rsvd1
#define		g1_addr3	sg.g1.addr3	/* msb */
#define		g1_addr2	sg.g1.addr2
#define		g1_addr1	sg.g1.addr1
#define		g1_addr0	sg.g1.addr0	/* lsb */
#define		g1_count1	sg.g1.count1	/* msb */
#define		g1_count0	sg.g1.count0	/* lsb */
#define 	g1_vu_1		sg.g1.vu_97
#define 	g1_vu_0		sg.g1.vu_96
#define 	g1_flag		sg.g1.flag
#define 	g1_link		sg.g1.link
		struct scsi_g1 {
			u_char addr3;		/* most sig. byte of address*/
			u_char addr2;
			u_char addr1;
			u_char addr0;
			u_char rsvd1;		/* reserved (byte 6) */
			u_char count1;		/* transfer length (msb) */
			u_char count0;		/* transfer length (lsb) */
			u_char vu_97	:1;	/* vendor unique (byte 9 bit 7*/
			u_char vu_96	:1;	/* vendor unique (byte 9 bit 6*/
			u_char rsvd0	:4;	/* reserved */
			u_char flag	:1;	/* interrupt when done */
			u_char link	:1;	/* another command follows */
		} g1;


		/*
		 *	G R O U P   5   F O R M A T  (12 byte)
		 */
#define		scc5_reladdr	tag
#define		scc5_addr3	sg.g5.addr3	/* msb */
#define		scc5_addr2	sg.g5,addr2
#define		scc5_addr1	sg.g5.addr1
#define		scc5_addr0	sg.g5.addr0	/* lsb */
#define		scc5_count1	sg.g5.count1	/* msb */
#define		scc5_count0	sg.g5.count0	/* lsb */
#define		scc5_vu_1	sg.g5.v1
#define		scc5_vu_0	sg.g5.v0
#define		scc5_flag	sg.g5.flag
		struct scsi_g5 {
			u_char addr3;	/* most sig. byte of address*/
			u_char addr2;
			u_char addr1;
			u_char addr0;
			u_char rsvd3;		/* reserved */
			u_char rsvd2;		/* reserved */
			u_char rsvd1;		/* reserved */
			u_char count1;		/* transfer length (msb) */
			u_char count0;		/* transfer length (lsb) */
			u_char vu_117	:1;	/* vendor unique (byte 11 bit 7*/
			u_char vu_116	:1;	/* vendor unique (byte 11 bit 6*/
			u_char rsvd0	:4;	/* reserved */
			u_char flag	:1;	/* interrupt when done */
			u_char link	:1;	/* another command follows */
		} g5;
	}sg;
};


/*
 * defines for setting fields within the various command groups
 */
#define FORMG0COUNT(cdb, cnt)	(cdb)->g0_count0  = (cnt)
#define FORMG0ADDR(cdb, addr) 	(cdb)->g0_addr2  = (addr) >> 16;\
				(cdb)->g0_addr1  = ((addr) >> 8) & 0xFF;\
				(cdb)->g0_addr0  = (addr) & 0xFF

#define FORMG1COUNT(cdb, cnt)	(cdb)->g1_count1 = ((cnt) >> 8);\
				(cdb)->g1_count0 = (cnt) & 0xFF
#define FORMG1ADDR(cdb, addr)	(cdb)->g1_addr3  = (addr) >> 24;\
				(cdb)->g1_addr2  = ((addr) >> 16) & 0xFF;\
				(cdb)->g1_addr1  = ((addr) >> 8) & 0xFF;\
				(cdb)->g1_addr0  = (addr) & 0xFF

#define FORMG5COUNT(cdb, cnt)	(cdb)->g5_count1 = ((cnt) >> 8);\
				(cdb)->g5_count0 = (cnt) & 0xFF
#define FORMG5ADDR(cdb, addr)	(cdb)->g5_addr3  = (addr) >> 24;\
				(cdb)->g5_addr2  = ((addr) >> 16) & 0xFF;\
				(cdb)->g5_addr1  = ((addr) >> 8) & 0xFF;\
				(cdb)->g5_addr0  = (addr) & 0xFF


/*
 * Definition of direction of data flow for commands.
 */
#define	SCSI_RECV_DATA_CMD(cmd)	(((cmd) == SC_READ) || \
				 ((cmd) == SC_REQUEST_SENSE) || \
				 ((cmd) == SC_INQUIRY) || \
				 ((cmd) == SC_READ_DEFECT_LIST) || \
				 ((cmd) == SC_MODE_SENSE) || \
				 ((cmd) == SC_READ_BUFFER))

#define	SCSI_SEND_DATA_CMD(cmd)	(((cmd) == SC_WRITE) || \
				 ((cmd) == SC_MODE_SELECT) || \
				 ((cmd) == SC_REASSIGN_BLOCK) || \
				 ((cmd) == SC_WRITE_FILE_MARK) || \
				 ((cmd) == SC_FORMAT))

/*
 * SCSI status completion block.
 */
#define SCB_STATUS_MASK		0x0e

struct	scsi_scb {		/* scsi status completion block */
	/* byte 0 */
	u_char	ext_st1	: 1;	/* extended status (next byte valid) */
	u_char	vu_06	: 1;	/* vendor unique */
	u_char	vu_05	: 1;	/* vendor unique */
	u_char	is	: 1;	/* intermediate status sent */
	u_char	busy	: 1;	/* device busy or reserved */
	u_char	cm	: 1;	/* condition met */
	u_char	chk	: 1;	/* check condition: sense data available */
	u_char	vu_00	: 1;	/* vendor unique */
	/* byte 1 */
	u_char	ext_st2	: 1;	/* extended status (next byte valid) */
	u_char	reserved: 6;	/* reserved */
	u_char	ha_er	: 1;	/* host adapter detected error */
	/* byte 2 */
	u_char	byte2;		/* third byte */
};

	/*
	 * Standard (Non Extended) SCSI Sense. Used mainly by the
  	 * Adaptec ACB 4000 which is the only controller that
	 * does not support the Extended sense format.
	 */
struct	scsi_sense {		/* scsi sense for error classes 0-6 */
	u_char	adr_val	: 1;	/* sense data is valid */
	u_char	code	: 7;	/* error class/code */
	u_char	high_addr;	/* high byte of block addr */
	u_char	mid_addr;	/* middle byte of block addr */
	u_char	low_addr;	/* low byte of block addr */
	u_char	extra[14];	/* pad this struct so it can hold max num */
				/* of sense bytes used by any of the SCSI */
				/* controllers. */

};

/*
 * SCSI tape REQUEST SENSE parameter block.  Note,
 * this structure should have an even number of bytes to
 * eliminate any byte packing problems with our host adapters.
 */
#define SC_CLASS_EXTENDED_SENSE 0x7     /* indicates extended sense */

struct	scsi_ext_sense {	/* scsi extended sense for error class 7 */
	/* byte 0 */
	u_char	adr_val	: 1;	/* sense data is valid */
	u_char	type	: 7;	/* fixed at 0x70 */
	/* byte 1 */
	u_char	seg_num;	/* segment number, applies to copy cmd only */
	/* byte 2 */
	u_char	fil_mk	: 1;	/* file mark on device */
	u_char	eom	: 1;	/* end of media */
	u_char	ili	: 1;	/* incorrect length indicator */
	u_char		: 1;	/* reserved */
	u_char	key	: 4;	/* sense key, see below */
	/* bytes 3 through 7 */
	u_char	info_1;		/* information byte 1 */
	u_char	info_2;		/* information byte 2 */
	u_char	info_3;		/* information byte 3 */
	u_char	info_4;		/* information byte 4 */
	u_char	add_len;	/* number of additional bytes */
	/* bytes 8 through 13, CCS additions */
	u_char	optional_8;	/* CCS search and copy only */
	u_char	optional_9;	/* CCS search and copy only */
	u_char	optional_10;	/* CCS search and copy only */
	u_char	optional_11;	/* CCS search and copy only */
	u_char 	error_code;	/* error class & code */
	u_char			/* reserved */
};

/*
 * Returned status particular to Adaptec 4520 only
 */
#define dev_stat_1	 optional_10;	/* device status */
#define dev_stat_2	 optional_11;
#define dev_uniq_1	 addit_sense;	/* device vendor unique status */
#define dev_uniq_2	 reserved;

/*
 * Defines for Emulex MD21 SCSI/ESDI Controller. Extended sense for Format
 * command only.
 */
#define cyl_msb		info_1
#define cyl_lsb		info_2
#define head_num	info_3
#define sect_num	info_4

/* 
 * Sense key values for extended sense.  Note,
 * values 0-0xf are standard sense key values.
 * Value 0x10+ are driver supplied.
 */
#define SC_NO_SENSE		0x00
#define SC_RECOVERABLE_ERROR	0x01
#define SC_NOT_READY		0x02
#define SC_MEDIUM_ERROR		0x03	/* parity error */
#define SC_HARDWARE_ERROR	0x04
#define SC_ILLEGAL_REQUEST	0x05
#define SC_UNIT_ATTENTION	0x06
#define SC_WRITE_PROTECT	0x07
#define SC_BLANK_CHECK		0x08
#define SC_VENDOR_UNIQUE	0x09
#define SC_COPY_ABORTED		0x0A
#define SC_ABORTED_COMMAND	0x0B
#define SC_EQUAL		0x0C
#define SC_VOLUME_OVERFLOW	0x0D
#define SC_MISCOMPARE		0x0E
#define SC_RESERVED		0x0F
#define SC_FATAL		0x10	/* driver, scsi handshake failure */
#define SC_TIMEOUT		0x11	/* driver, command timeout */
#define SC_EOF			0x12	/* driver, eof hit */
#define SC_EOT			0x13	/* driver, eot hit */
#define SC_LENGTH		0x14	/* driver, length error */
#define SC_BOT			0x15	/* driver, bot hit */
#define SC_MEDIA		0x16	/* driver, wrong media error */

#define SENSE_KEY_INFO  {\
	"no sense",			/* 0x00 */ \
	"soft error",			/* 0x01 */ \
	"not ready",			/* 0x02 */ \
	"media error",			/* 0x03 */ \
	"hardware error",		/* 0x04 */ \
	"illegal request",		/* 0x05 */ \
	"unit attention",		/* 0x06 */ \
	"write protected",		/* 0x07 */ \
	"blank check",			/* 0x08 */ \
	"vendor unique",		/* 0x09 */ \
	"copy aborted",			/* 0x0a */ \
	"aborted command",		/* 0x0b */ \
	"equal error",			/* 0x0c */ \
	"volume overflow",		/* 0x0d */ \
	"miscompare error",		/* 0x0e */ \
	"reserved",			/* 0x0f */ \
	"fatal",			/* 0x10 */ \
	"timeout",			/* 0x11 */ \
	"EOF",				/* 0x12 */ \
	"EOT",				/* 0x13 */ \
	"length error",			/* 0x14 */ \
	"BOT",				/* 0x15 */ \
	"wrong tape media",		/* 0x16 */ \
	0					   \
}


struct	scsi_inquiry_data {	/* data returned as a result of CCS inquiry */
	/* byte 0 */
	u_char	dtype;		/* device type */
	/* byte 1 */
	u_char	rmb	: 1;	/* removable media */
	u_char	dtype_qual : 7;	/* device type qualifier */
	/* byte 2 */
	u_char	iso	: 2;	/* ISO version */
	u_char	ecma	: 3;	/* ECMA version */
	u_char	ansi	: 3;	/* ANSI version */
	/* byte 3 */
	u_char	reserv1	: 4;	/* reserved */
	u_char	rdf	: 4;	/* response data format */
	/* bytes 4-7 */
	u_char	add_len;	/* additional length */
	u_char	reserv2;	/* reserved */
	u_char	reserv3;	/* reserved */
	u_char	reserv4;	/* reserved */
	/* bytes 8-35 */
	char	vid[8];		/* vendor ID */
	char	pid[16];	/* product ID */
	char	revision[4];	/* revision level */
};

/*
 * SCSI Operation codes. 
 */
#define SC_TEST_UNIT_READY	0x00
#define SC_REZERO_UNIT		0x01
#define SC_REQUEST_SENSE	0x03
#define SC_FORMAT		0x04
#define SC_FORMAT_TRACK		0x06
#define SC_REASSIGN_BLOCK	0x07		/* CCS only */
#define SC_SEEK			0x0b
#define SC_TRANSLATE		0x0f		/* ACB4000 only */
#define SC_INQUIRY		0x12		/* CCS only */
#define SC_MODE_SELECT		0x15
#define SC_RESERVE		0x16
#define SC_RELEASE		0x17
#define SC_MODE_SENSE		0x1a
#define SC_START		0x1b
#define SC_READ_DEFECT_LIST	0x37		/* CCS only, group 1 */
#define SC_READ_BUFFER          0x3c            /* CCS only, group 1 */
	/*
	 * Note, these two commands use identical command blocks for all
 	 * controllers except the Adaptec ACB 4000 which sets bit 1 of byte 1.
	 */
#define SC_READ			0x08
#define SC_WRITE		0x0a
#define SC_WRITE_VERIFY		0x2e            /* 10 byte write+verify */
#define SC_WRITE_FILE_MARK	0x10
#define SC_UNKNOWN		0xff		/* cmd list terminator */


/*
 * Messages that SCSI can send.
 */
#define SC_COMMAND_COMPLETE	0x00
#define SC_SYNCHRONOUS		0x01
#define SC_SAVE_DATA_PTR	0x02
#define SC_RESTORE_PTRS		0x03
#define SC_DISCONNECT		0x04
#define SC_ABORT		0x06
#define SC_MSG_REJECT		0x07
#define SC_NO_OP		0x08
#define SC_PARITY		0x09
#define SC_IDENTIFY		0x80
#define SC_DR_IDENTIFY		0xc0
#define SC_DEVICE_RESET		0x0c

#define MORE_STATUS		0x80		/* More status flag */
#define STATUS_LEN		3		/* Max status len for SCSI */

#define NLPART			NDKMAP	/* number of logical partitions (8) */

/*
 * SCSI device unit block.  Warning, must be even-byte aligned.
 */
struct scsi_unit {
	char	un_target;		/* scsi bus address of controller */
	char	un_lun;			/* logical unit number of device */
	char	un_present;		/* unit is present */
	u_char	un_scmd;		/* special command */
	u_short	un_unit;		/* real unit number of device */
	u_short	un_flags;		/* misc flags relating to cur xfer */
	struct	scsi_unit_subr *un_ss;	/* scsi device subroutines */
	struct	scsi_ctlr *un_c;	/* scsi ctlr */
	struct	mb_device *un_md;	/* mb device */
	struct	mb_ctlr *un_mc;		/* mb controller */
	struct	buf un_sbuf;		/* fake buffer for special commands */
	struct	buf un_rbuf;		/* buffer for raw i/o */
	struct	scsi_cdb un_cdb;	/* command description block */
	struct	scsi_scb un_scb;	/* status completion block */
	/* current transfer: */
	int	un_baddr;		/* virtual buffer address */
	int	un_blkno;		/* current block */
	int	un_count;		/* num sectors to xfer (for cdb) */
	short	un_cmd;			/* command (for cdb) */
	int	un_dma_addr;		/* dma address */
	u_short	un_dma_count;		/* byte count expected */
	u_char	un_wantint;		/* expecting interrupt */
	u_char	un_cmd_len;		/* cdb length (special cdb's)
	/* the following save current dma information in case of disconnect */
	int	un_dma_curaddr;		/* current addr to start dma to/from */
	u_short	un_dma_curcnt;		/* current dma count */
	u_short	un_dma_curdir;		/* direction of dma transfer */
	u_short	un_dma_curbcr;		/* bcr, saved at head of intr routine */
	/* the following is a copy of current unit command info */
	struct un_saved_cmd_info {
		short	saved_cmd; 		/* saved cmd */
		struct	scsi_cdb saved_cdb; 	/* saved cdb */
		struct	scsi_scb saved_scb; 	/* saved scb */
		int	saved_resid;		/* saved amt untransferred */
		int	saved_dma_addr;		
		u_short	saved_dma_count;
	} un_saved_cmd;
	caddr_t	un_scratch_addr;	/* scratch buffer */
	struct	scsi_unit *un_forw;	/* next unit on device queue */
};

/* 
 * bits in the scsi unit flags field
 */
#define SC_UNF_DVMA		0x0001	/* set if cur xfer requires dvma */
#define SC_UNF_SPECIAL_DVMA	0x0002	/* set if xfer requires special dvma */
#define SC_UNF_PREEMPT		0x0004	/* cur xfer was preempted by recon */
#define SC_UNF_DMA_ACTIVE	0x0008	/* DMA active on this unit */
#define SC_UNF_RECV_DATA	0x0010	/* direction of data xfer is recieve */
#define SC_UNF_GET_SENSE	0x0020	/* run get sense cmd for failed cmd */
#define SC_UNF_DMA_INITIALIZED	0x0040	/* initialized DMA hardware */
#define SC_UNF_NO_DISCON	0x0080  /* disable disconnects */
#define SC_UNF_WORD_XFER	0x0100  /* Unaligned word transfer */

#define	NPHASE		8		/* phase history */
struct sc_phases {
	short phase;
	short arg;
	int target;
	int lun;
};

struct scsi_ctlr {
	int	c_flags;		/* misc state flags */
	int	c_reg;			/* controller registers in I/O space */
	int	c_intpri;		/* controller interrupt priority */
	struct 	scsi_unit *c_un;	/* scsi unit using the bus */
	struct	scsi_ctlr_subr *c_ss;	/* scsi device subroutines */
	struct	udc_table *c_udct;	/* scsi dma info for Sun3/50 */
	struct	buf c_tab;		/* queue of pending devices */
	struct  buf c_disqtab;		/* disconnect queue of devices */
	struct	buf *c_flush;		/* ptr to last element to flush */
	char    *c_name;                /* host adaptor name */
	short	c_recon_target;		/* reconnecting target */
	short	c_last_phase;		/* last SCSI bus phase */
	short	c_phase_index;		/* next entry in c_phases table */
	struct	sc_phases c_phases[NPHASE];
};

/* misc controller flags */
#define SCSI_PRESENT	0x0001		/* scsi bus is alive */
#define SCSI_ONBOARD	0x0002		/* scsi logic is onboard SCSI-3 */
#define SCSI_EN_RECON	0x0004		/* reconnect attempts are enabled */
#define SCSI_EN_DISCON	0x0008		/* disconnect attempts are enabled */
#define SCSI_FLUSH_DISQ	0x0010		/* flush disconnected tasks */
#define SCSI_FLUSHING	0x0020		/* flushing in progress */
#define SCSI_VME	0x0040		/* is a VME SCSI-3 */
#define SCSI_COBRA	0x0080		/* is a COBRA SCSI */

#define IS_ONBOARD(c)	(c->c_flags & SCSI_ONBOARD)
#define IS_VME(c)	(c->c_flags & SCSI_VME)
#define IS_SCSI3(c)	(IS_ONBOARD(c) || IS_VME(c))

/* 
 * Unit specific subroutines called from controllers.
 */
struct	scsi_unit_subr {
	int	(*ss_attach)();
	int	(*ss_start)();
	int	(*ss_mkcdb)();
	int	(*ss_intr)();
	int	(*ss_unit_ptr)();
	char	*ss_devname;
};

/* 
 * Controller specific subroutines called from units.
 */
struct	scsi_ctlr_subr {
	int	(*scs_ustart)();
	int	(*scs_start)();
	int	(*scs_done)();
	int	(*scs_cmd)();
	int	(*scs_getstat)();
	int	(*scs_cmd_wait)();
	int	(*scs_off)();
	int	(*scs_reset)();
	int	(*scs_dmacount)();
	int	(*scs_go)();
	int	(*scs_deque)();
};

/*
 * Defines for getting configuration parameters out of mb_device.
 */
#define TYPE(flags)	(flags & 0xFF)
#define TARGET(slave)	((slave >> 3) & 07)
#define LUN(slave)	(slave & 07)
#define NUNIT		8	/* max nubmer of units per controller */

#define SCSI_DISK	0
#define SCSI_TAPE	1
#define SCSI_FLOPPY	2
#define SCSI_OPTICAL	3


/*
 * SCSI Error codes passed to device routines.
 * The codes refer to SCSI general errors, not to device
 * specific errors.  Device specific errors are discovered
 * by checking the sense data.
 * The distinction between retryable and fatal is somewhat ad hoc.
 */
#define SE_NO_ERROR	0
#define SE_RETRYABLE	1
#define SE_FATAL	2
#define SE_TIMEOUT	3		/* driver timed out */

#define	NBAD		16		/* maximum number of bad blocks
					 * really should be even value
					 */
struct	dk_bad {
	int	block;			/* Absolute location of marginal block */
	short	retries;		/* Number of times block failed
					 * (recoverable errors).
					 */
};


/*
 * SCSI disk device driver structure.  Warning, must be even-byte aligned.
 */
struct scsi_disk {
	struct	dk_map un_map[NLPART];	/* logical partitions */
	struct	dk_geom un_g;		/* disk geometry */
	struct	dk_bad un_bad[NBAD];	/* bad block table (for reassigns) */
	short	un_bad_index;		/* next entry in un_bad table */
	u_int	un_cyl_size;		/* blocks (sectors) per cyl */
	daddr_t	un_cyl_start;		/* first block of cyl */
	daddr_t	un_cyl_end;		/* last  block of cyl */
	u_short	un_cylin_last;		/* last cyl accessed */
	int	un_lp1;			/* last partiton accessed */
	int	un_lp2;			/* last partiton accessed */
	int	un_last_cyl_size;	/* last cylinder size accessed */
	u_int	un_sense;		/* ptr to request sense buffer */
	u_int	un_timeout;		/* timeout time (in minutes.) */
	u_int	un_total_errors;	/* total errors to date */
	int	un_err_resid;		/* resid from last error */
	int	un_err_blkno;		/* disk block where error occurred */
	short	un_retries;		/* retry count */
	short	un_restores;		/* restore count */
	u_short	un_sec_left;		/* sector count for single sectors */
	u_short	un_timer;		/* timer is on */
	u_short	un_status;		/* sense key from last error */
	u_short	un_flags;		/* special global unit flags,      */
					/*   disables disconnect/reconnect */
	u_char	un_err_severe;		/* error severity */
	u_char	un_err_code;		/* vendor unique error code  */
	u_char	un_last_cmd;		/* last scsi command issued */
	u_char	un_openf;		/* disk open state */
	u_char	un_ctype;		/* disk controller type */
	u_char	un_options;		/* driver options, bit encoded */
					/*   disables disconnect/reconnect */
	/*u_char;			/* reserved  */
};


/*
 * SCSI tape device driver structure.  Warning, must be even-byte aligned.
 */
struct scsi_tape {
	int	*un_mspl;		/* ptr to mode select param list */
	int	*un_dtab;		/* ptr to drive table list */
	int	un_bufcnt;		/* number of buffers in use */
	int	un_timeout;		/* timeout time (in minutes.) */
	int	un_offset;		/* byte offset into file */
	int	un_iovlen;		/* last transfer request size (bytes) */
	int	un_next_block;		/* next record on tape */
	int	un_last_block;		/* last record of file, if known */
	int	un_fileno;		/* current file number on tape */
	int	un_dev_bsize;		/* device unit block size (bytes) */
	int	un_err_fileno;		/* file where error occurred */
	int	un_err_blkno;		/* block in file where error occurred */
	int	un_err_resid;		/* resid from last error */
	u_int	un_options;		/* driver options, bit options */
					/*   0 = variable block-length */
					/*   1 = supports BSF */
					/*   2 = supports BSR */
	u_short	un_flags;		/* special global unit flags,      */
					/*   disables disconnect/reconnect */
	short	un_status;		/* status from last sense */
	short	un_retry_ct;		/* retry count */
	short	un_retry_limit;		/* retry limit */
	short	un_underruns;		/* number of underruns */
	u_short	un_last_count;		/* last num blocks xfered */
	u_short	un_last_bcount;		/* last num blocks xfered (for cdb) */
	char	un_openf;		/* tape open state */
	u_char	un_ctype;		/* controller type */
	u_char	un_read_only;		/* tape is read only */
	u_char	un_lastiow;		/* last I/O was write */
	u_char	un_lastior;		/* last I/O was read */
	u_char	un_reten_rewind;	/* retension on next rewind */
	u_char	un_density;		/* current tape density or qic format */
	u_char	un_reset_occurred;	/* reset occured since last command */
	u_char	un_last_cmd;		/* last scsi command issued */
	u_char	un_eof;			/* eof = 0, not found */
					/*     = 1, eof hit */
					/*     = 2, eof pending */
/*	u_char;				/* for even-byte alignment */
};

/*
 * SCSI floppy driver structure.  Warning, must be even-byte aligned.
 */
struct scsi_floppy {
	u_char	sf_flags;		/* various flags */
	u_char	sf_mdb;			/* media descriptor byte */
	u_short	sf_rate;		/* controller specific rate */
	int	sf_nhead;		/* number of heads */
	int	sf_nblk;		/* number of blocks on the disk */
	int	sf_ncyl;		/* number of tracks */
/* below is the stateful information about the floppy */
	int	sf_spt;			/* sectors per track */
	int	sf_xrate;		/* transfer rate */
	int	sf_bsec;		/* bytes per sector */
	int	sf_step;		/* step rate */
/* above is the stateful information about the floppy */
	struct	dk_map un_map[NLPART];	/* logical partitions */
	struct	dk_geom un_g;		/* disk geometry */
	u_int	un_cyl_size;		/* blocks (sectors) per cyl */
	daddr_t	un_cyl_start;		/* first block of cyl */
	daddr_t	un_cyl_end;		/* last  block of cyl */
	u_short	un_cylin_last;		/* last cyl accessed */
	int	un_lp1;			/* last partiton accessed */
	int	un_lp2;			/* last partiton accessed */
	int	un_last_cyl_size;	/* last cylinder size accessed */
	u_int	un_sense;		/* ptr to request sense buffer */
	u_int	un_timeout;		/* timeout time (in minutes.) */
	u_int	un_total_errors;	/* total errors to date */
	u_int	un_err_resid;		/* resid from last error */
	u_int	un_err_blkno;		/* disk block where error occurred */
	u_short	un_flags;		/* special global unit flags,      */
					/*   disables disconnect/reconnect */
	u_short	un_retries;		/* retry count */
	u_short	un_restores;		/* restore count */
	u_short	un_sec_left;		/* sector count for single sectors */
	u_short	un_timer;		/* timer is on */
	u_short	un_status;		/* sense key from last error */
	char	un_openf;		/* disk open state */
	u_char	un_err_severe;		/* error severity */
	u_char	un_err_code;		/* vendor unique error code  */
	u_char	un_last_cmd;		/* last scsi command issued */
	u_char	un_ctype;		/* disk controller type */
	u_char	un_options;		/* driver options, bit encoded */
};
nt	un_blkno;		/* current block */
	int	un_count;		/* num sectors to xfer (for cdb) */
	short	un_cmd;			/* command (for cdb) */
	int	un_dma_addr;		/* dma address */
	u_short	un_dma_count;		/* byte count expected */
	u_char	un_wantint;		/* expecting interrupt */
	u_char	un_cmd_len;		/* cdb length (special cdb's)
	/* the following save current dma information in case of disconnect */
	int	un_./share/sys/sundev/sdreg.h                                                                             444       0      12        24546  4423267267  10733                                                                                                                                                                                                                                                                                                                                                                      /* @(#)sdreg.h       1.12 89/02/25 Copyr 1987 Sun Micro */

/*
 * Defines for SCSI disk drives.
 */
#define SD_TIMEOUT		/* Enable command timeouts */
#define SD_FORMAT  		/* Enable on-line formatting mods */
#define SD_REASSIGN	1	/* Enable auto disk repair */

/*
 * Driver state machine codes -- Do not change order!
 * Opening states:
 *	closed -> open 
 *
 *	closed -> opening         ||   -> open
 *
 *	closed -> opening         ||   -> open
 *                opening_delay   ||
 *
 * Closing states:
 *	open   -> closed
 *
 * Open states:
 *	open   -> open (passed command)
 *
 *	open   -> sensing -> open (failed command)
 *
 *	open   -> sensing -> retrying_cmd -> open
 */
#define CLOSED			0
#define OPEN_FAILED		1
#define OPENING_DELAY		2
#define OPENING			3
#define MAPPING_BAD		4
#define MAPPING			5
#define SENSING			6
#define RETRYING		7
#define OPEN			8

/*
 * SCSI disk controller specific stuff.
 */
#define CTYPE_UNKNOWN		0
#define CTYPE_MD21		1
#define CTYPE_ACB4000		2
#define CTYPE_CCS		3

#ifndef SD_FORMAT
#define DK_NOERROR		0
#define DK_CORRECTED		1
#define DK_RECOVERED		2
#define DK_FATAL		3
#endif SD_FORMAT

/*
 * Special commands for internal use only.
 */
#define SC_READ_LABEL		0x80	/* phony - for int use only */
#define SC_SPECIAL_READ		0x81	/* phony - for int use only */
#define SC_SPECIAL_WRITE	0x82	/* phony - for int use only */

/*
 * Define various buffer and I/O block sizes
 */
#define SECSIZE			512		/* Bytes/sector */
#define SECDIV			9		/* log2 (SECSIZE) */
#define MAXBUFSIZE		(63 * 1024)	/* 63 KB max size of buffer */

/*
 * Defines for SCSI disk format cdb.
 */
#define b_cylin			b_resid
#define fmt_parm_bits		g0_addr2	/* for format options */
#define fmt_interleave		g0_count0	/* for encode interleave */
#define defect_list_descrip	g1_addr3	/* list description bits */

/*
 * Bits in the special command flags field.
 */
#define SD_SILENT		0x0001	/* don't print error messages */
#define SD_DVMA_RD		0x0002	/* enable DVMA memory reads */
#define SD_DVMA_WR		0x0004	/* enable DVMA memory writes */
#define SD_NORETRY		0x0008	/* disable driver error recovery */
#define SC_SBF_SILENT		0x0001	/* don't print error messages */
#define SC_SBF_DIAGNOSE		0x0002	/* collect stats for diagnostic */
#define SC_SBF_DIR_IN		0x0004	/* need to copyin info */
#define SC_SBF_IOCTL		0x8000	/* cmd being run on behalf of ioctl */
#define SC_NOMSG		0x01	/* don't print error messages */
#define SC_DIAG			0x02	/* collect diagnostic info ??? */
#define SC_IOCTL		0x04	/* running cmd for ioctl */

/*
 * Error code fields for MD21 extended sense struct.
 * Not exhaustive - just those we treat specially.
 */
#define SC_ERR_READ_RECOV_RETRIES	0x17	/* ctlr fixed error w/retry */
#define SC_ERR_READ_RECOV_ECC		0x18	/* ctlr fixed error w/ECC */


/*
 * ACB4000 error codes.  
 * They are the concatenation of the class and code info.
 */

/* Class 0 - drive errors */
#define SC_ERR_ACB_NO_SENSE	0x00	/* no error or sense info */
#define SC_ERR_ACB_NO_INDEX	0x01	/* no index or sector pulse */
#define SC_ERR_ACB_NO_SEEK_CMPL	0x02	/* no seek complete signal */
#define SC_ERR_ACB_WRT_FAULT	0x03	/* write fault */
#define SC_ERR_ACB_NOT_READY	0x04	/* drive not ready */
#define SC_ERR_ACB_NO_TRACK_0	0x06	/* no track 0 */

/* Class 1 - target errors */
#define SC_ERR_ACB_ID_CRC	0x10	/* ID field not found after retry */
#define SC_ERR_ACB_UNCOR_DATA	0x11	/* uncorrectable data error */
#define SC_ERR_ACB_ID_ADDR_MK	0x12	/* missing ID address mark */
#define SC_ERR_ACB_REC_NOT_FND	0x14	/* record not found */
#define SC_ERR_ACB_SEEK		0x15	/* seek error */
#define SC_ERR_ACB_DATA_CHECK	0x18	/* data check */

/* Class 2 - system-related errors */
#define SC_ERR_ACB_ECC_VERIFY	0x19	/* ECC error detected during verify */
#define SC_ERR_ACB_INTERLEAVE	0x1A	/* specified interleave too large */
#define SC_ERR_ACB_BAD_FORMAT	0x1C	/* drive not properly formatted */
#define SC_ERR_ACB_ILLEGAL_CMD	0x20	/* illegal command */
#define SC_ERR_ACB_ILLEGAL_BLK	0x21	/* illegal block address */
#define SC_ERR_ACB_VOL_OVERFLOW	0x23	/* illegal block addr after 1st blk */
#define SC_ERR_ACB_BAD_ARG	0x24	/* bad argument */
#define SC_ERR_ACB_ILLEGAL_LUN	0x25	/* invalid logical unit number */
#define SC_ERR_ACB_CART_CHANGE	0x28	/* new cartridge inserted */
#define SC_ERR_ACB_ERR_OVERFLOW	0x2C	/* too many errors */

/* Unknown psuedo error - used for convenience */
#define SC_ERR_ACB_ERR_UNKNOWN	0xFF	/* unknown psuedo error */


/*
 * defines for value of fmt_parm_bits.
 */
#define FPB_BFI			0x04		/* bytes-from-index fmt */
#define FPB_CMPLT		0x08		/* full defect list provided */
#define FPB_DATA		0x10		/* defect list data provided */

/*
 * Defines for value of defect_list_descrip.
 */
#define	DLD_MAN_DEF_LIST	0x10		/* manufacturer's defect list */
#define	DLD_GROWN_DEF_LIST	0x08		/* grown defect list */
#define	DLD_BLOCK_FORMAT	0x00		/* block format */
#define	DLD_BFI_FORMAT		0x04		/* bytes-from-index format */
#define	DLD_PS_FORMAT		0x05		/* physical sector format */


/*
 * Disk defect list - used by format command.
 */
/******************** NOTE: this should be cleaned up! ***********************/
#define ST506_NDEFECT	127     /* must fit in 1K controller buffer... */
#define ESDI_NDEFECT	ST506_NDEFECT	/* hack??? */

#define RDEF_ALL	0	/* read all defects */
#define RDEF_MANUF	1	/* read manufacturer's defects */
#define RDEF_CKLEN	2	/* check length of manufacturer's list */

struct scsi_bfi_defect {	/* defect in bytes from index format */
	unsigned cyl  : 24;
	unsigned head : 8;
	long   	 bytes_from_index;
};

struct scsi_format_params {	/* BFI format list */
	u_short reserved;
	u_short length;
	struct  scsi_bfi_defect list[ESDI_NDEFECT];
};

/*
 * Defect list returned by READ_DEFECT_LIST command.
 */
struct scsi_defect_hdr {	/* For getting defect list size */
	u_char	reserved;
	u_char	descriptor;
	u_short	length;
};
struct scsi_defect_list {	/* BFI format list */
	u_char	reserved;
	u_char	descriptor;
	u_short	length;
	struct	scsi_bfi_defect list[ESDI_NDEFECT];
};

/*
 * Defect list format used by reassign block command (logical block format).
 * This defect list is limited to 1 defect, as that is the only way
 * we use it.
 */
struct scsi_reassign_blk {
	u_short	reserved;
	u_short length;		/* defect length in bytes ( defects * 4) */
	u_int 	defect;		/* Logical block address of defect */
};
/*
 * Mode Select Page Codes
 */
#define ERR_RECOVERY_PARMS	0x01
#define DISCO_RECO_PARMS	0x02
#define FORMAT_PARMS		0x03
#define GEOMETRY_PARMS		0x04
#define CERTIFICATION_PARMS	0x06
#define CACHE_PARMS		0x38

/*
 * Mode select header
 */
struct ccs_modesel_head {
	u_char	reserved1;
	u_char	medium;			/* medium type */
	u_char 	reserved2;
	u_char	block_desc_length;	/* block descriptor length */
	u_char	density;		/* density code */
	u_char	number_blocks_hi;
	u_char	number_blocks_med;
	u_char	number_blocks_lo;
	u_char	reserved3;
	u_char	block_length_hi;
	u_short	block_length;
}; 

/*
 * Page 1 - Error Recovery Parameters 
 */
struct ccs_err_recovery {
	u_char	reserved	: 2;
	u_char	page_code	: 6;	/* define page function */
	u_char	page_length;		/* length of current page */
	u_char	awre		: 1;	/* auto write realloc enabled */
	u_char	arre		: 1;	/* auto read realloc enabled */
	u_char	tb		: 1;	/* transfer block */
	u_char 	rc		: 1;	/* read continuous */
	u_char	eec		: 1;	/* enable early correction */
	u_char	per		: 1;	/* post error */
	u_char	dte		: 1;	/* disable transfer on error */
	u_char	dcr		: 1;	/* disable correction */
	u_char	retry_count;
	u_char	correction_span;
	u_char	head_offset_count;
	u_char	strobe_offset_count;
	u_char	recovery_time_limit;
};

/*
 * Page 2 - Disconnect / Reconnect Control Parameters
 */
struct ccs_disco_reco {
	u_char	reserved	: 2;
	u_char	page_code	: 6;	/* define page function */
	u_char	page_length;		/* length of current page */
	u_char	buffer_full_ratio;	/* write, how full before reconnect? */
	u_char	buffer_empty_ratio;	/* read, how full before reconnect? */

	u_short	bus_inactivity_limit;	/* how much bus time for busy */
	u_short	disconnect_time_limit;	/* min to remain disconnected */
	u_short	connect_time_limit;	/* min to remain connected */
	u_short	reserved_1;
};

/*
 * Page 3 - Direct Access Device Format Parameters
 */
struct ccs_format {
	u_char	reserved	: 2;
	u_char	page_code	: 6;	/* define page function */
	u_char	page_length;		/* length of current page */
	u_short	tracks_per_zone;	/*  Handling of Defects Fields */
	u_short	alt_sect_zone;
	u_short alt_tracks_zone;
	u_short	alt_tracks_vol;
	u_short	sect_track;		/* Track Format Field */
	u_short data_sect;		/* Sector Format Fields */
	u_short	interleave;
	u_short	track_skew;
	u_short	cylinder_skew;
	u_char	ssec		: 1;	/* Drive Type Field */
	u_char	hsec		: 1;
	u_char	rmb		: 1;
	u_char	surf		: 1;
	u_char	ins		: 1;
	u_char	reserved_1	: 3;
	u_char	reserved_2;
	u_char	reserved_3;
	u_char	reserved_4;
};

/*
 * Page 4 - Rigid Disk Drive Geometry Parameters 
 */
struct ccs_geometry {
	u_char	reserved	: 2;
	u_char	page_code	: 6;	/* define page function */
	u_char	page_length;		/* length of current page */
	u_char	cyl_ub;			/* number of cylinders */
	u_char	cyl_mb;
	u_char	cyl_lb;
	u_char	heads;			/* number of heads */
	u_char	precomp_cyl_ub;		/* cylinder to start precomp */
	u_char	precomp_cyl_mb;
	u_char	precomp_cyl_lb;
	u_char	current_cyl_ub;		/* cyl to start reduced current */
	u_char	current_cyl_mb;
	u_char	current_cyl_lb;
	u_short	step_rate;		/* drive step rate */
	u_char	landing_cyl_ub;		/* landing zone cylinder */
	u_char	landing_cyl_mb;
	u_char	landing_cyl_lb;
	u_char	reserved_1;
	u_char	reserved_2;
	u_char	reserved_3;
};

/*
 * Page 38 - Cache Parameters 
 */
struct ccs_cache {
	u_char	reserved	: 2;
	u_char	page_code	: 6;	/* define page function */
	u_char	page_length;		/* length of current page */
	u_char	mode;			/* Cache control and size */
	u_char	threshold;		/* Prefetch threshold */
	u_char	max_prefetch;		/* Max. prefetch */
	u_char	max_multiplier;		/* Max. prefetch multiplier */
	u_char	min_prefetch;		/* Min. prefetch */
	u_char	min_multiplier;		/* Min. prefetch multiplier */
	u_char	rsvd2[8];
};
	
struct ccs_mode_select_parms {
	long	edl_len;
	long	reserved;
	long	bsize;
	unsigned fmt_code :8;
	unsigned ncyl	  :16;
	unsigned nhead    :8;
	u_short	rwc_cyl;
	u_short	wprc_cyl;
	u_char	ls_pos;
	u_char	sporc;
};

#define	SIZEOF_ACB4000_MODE_SELECT_PARMS	0x16
struct acb4000_mode_select_parms {
	long	edl_len;
	long	reserved;
	long	bsize;
	unsigned fmt_code :8;
	unsigned ncyl     :16;
	unsigned nhead    :8;
	u_short	rwc_cyl;
	u_short	wprc_cyl;
	u_char	ls_pos;
	u_char	sporc;
};
NO_SENSE	0x00	/* no error or sense info */
#define SC_ERR_ACB_NO_INDEX	0x01	/* no index or sector pulse */
#define SC_ERR_ACB_NO_SEEK_CMPL	0x02	/* no seek./share/sys/sundev/sereg.h                                                                             444       0      12        17267  4423267271  10731                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)sereg.h 1.6 89/03/31 SMI	*/

/*
 * Register definitions for the Sun3 32-bit VME version 
 * of the SCSI control logic interface. Both of these interfaces use the
 * NCR 5380 SBC (SCSI Bus Controller). The main difference between these
 * two interfaces is the dma interface.
 * Since the NCR 5380 SBC chip is used, both interfaces support the SCSI
 * disconnect/reconnect capability thus implying support for the scsi
 * arbitration phase.
 */

/*
 * NCR 5380 SBC (SCSI Bus Controller) Registers.
 */

/* read of sbc registers yields the following: */
struct sbc_read_reg {
	u_char		cdr;	/* current data register */
	u_char		icr;	/* initiator command register */
	u_char		mr;	/* mode register */
	u_char		tcr;	/* target command register */
	u_char		cbsr;	/* current bus status register */
	u_char		bsr;	/* bus and status register */
	u_char		idr;	/* input data register */
	u_char		clr;	/* read to clear parity error, */
				/* interrupt request, and busy */
				/* failure bits in the bsr */
};

/* write of sbc registers yields the following: */
struct sbc_write_reg {
	u_char		odr;	/* output data register */
	u_char		icr;	/* initiator command register */
	u_char		mr;	/* mode register */
	u_char		tcr;	/* target command register */
	u_char		ser;	/* select/reselect enable register */
	u_char		send;	/* start dma for target/initiator send xfer */
	u_char		trcv;	/* start dma for target receive transfer */
	u_char		ircv;	/* start dma for initiator receive transfer */
};

/* bits in the sbc initiator command register */
#define	SBC_ICR_RST	0x80	/* (r/w) assert reset */
#define SBC_ICR_AIP	0x40	/* (r)   arbitration in progress */
#define SBC_ICR_TEST	0x40	/* (w)   test mode, disables output */
#define SBC_ICR_LA	0x20	/* (r)   lost arbitration */
#define SBC_ICR_DE	0x20	/* (w)   differential enable */
#define SBC_ICR_ACK	0x10	/* (r/w) assert acknowledge */
#define SBC_ICR_BUSY	0x08	/* (r/w) assert busy */
#define SBC_ICR_SEL	0x04	/* (r/w) assert select */
#define SBC_ICR_ATN	0x02	/* (r/w) assert attention */
#define SBC_ICR_DATA	0x01	/* (r/w) assert data bus */

/* bits in the sbc mode register (same on read or write) */
#define SBC_MR_BDMA	0x80	/* block mode dma */
#define SBC_MR_TRG	0x40	/* target mode */
#define SBC_MR_EPC	0x20	/* enable parity check */
#define SBC_MR_EPI	0x10	/* enable parity interrupt */
#define SBC_MR_EEI	0x08	/* enable eop interrupt */
#define SBC_MR_MBSY	0x04	/* monitor busy */
#define SBC_MR_DMA	0x02	/* dma mode */
#define SBC_MR_ARB	0x01	/* arbitration mode */

/* bits in the sbc target command register */
#define SBC_TCR_REQ	0x08	/* assert request */
#define SBC_TCR_MSG	0x04	/* assert message */
#define SBC_TCR_CD	0x02	/* assert command/data */
#define SBC_TCR_IO	0x01	/* assert input/output */

/* settings of tcr to reflect different information transfer phases */
#define TCR_COMMAND	(SBC_TCR_CD)
#define TCR_MSG_OUT	(SBC_TCR_MSG | SBC_TCR_CD)
#define TCR_DATA_OUT	0
#define TCR_STATUS	(SBC_TCR_CD | SBC_TCR_IO)
#define TCR_MSG_IN	(SBC_TCR_MSG | SBC_TCR_CD | SBC_TCR_IO)
#define TCR_DATA_IN	(SBC_TCR_IO)
#define TCR_UNSPECIFIED	(SBC_TCR_MSG)

/* bits in the sbc current bus status register */
#define SBC_CBSR_RST	0x80	/* reset */
#define SBC_CBSR_BSY	0x40	/* busy */
#define SBC_CBSR_REQ	0x20	/* request */
#define SBC_CBSR_MSG	0x10	/* message */
#define SBC_CBSR_CD	0x08	/* command/data */
#define SBC_CBSR_IO	0x04	/* input/output */
#define SBC_CBSR_SEL	0x02	/* select */
#define SBC_CBSR_DBP	0x01	/* data bus parity */

/* scsi bus signals reflecting different information transfer phases */
#define CBSR_PHASE_BITS	(SBC_CBSR_CD | SBC_CBSR_MSG | SBC_CBSR_IO)
#define PHASE_COMMAND	(SBC_CBSR_CD)
#define PHASE_MSG_OUT	(SBC_CBSR_MSG | SBC_CBSR_CD)
#define PHASE_DATA_OUT	0
#define PHASE_STATUS	(SBC_CBSR_CD | SBC_CBSR_IO)
#define PHASE_MSG_IN	(SBC_CBSR_MSG | SBC_CBSR_CD | SBC_CBSR_IO)
#define PHASE_DATA_IN	(SBC_CBSR_IO)

#define PHASE_SPURIOUS          0x80    /* for driver use only */
#define PHASE_ARBITRATION       0x81    /* for driver use only */
#define PHASE_IDENTIFY          0x82    /* for driver use only */
#define PHASE_SAVE_PTR          0x83    /* for driver use only */
#define PHASE_RESTORE_PTR       0x84    /* for driver use only */
#define PHASE_DISCONNECT        0x85    /* for driver use only */
#define PHASE_RECONNECT         0x86    /* for driver use only */
#define PHASE_CMD_CPLT          0x87    /* for driver use only */

/* bits in the sbc bus and status register */
#define SBC_BSR_EDMA	0x80	/* end of dma */
#define SBC_BSR_RDMA	0x40	/* dma request */
#define SBC_BSR_PERR	0x20	/* parity error */
#define SBC_BSR_INTR	0x10	/* interrupt request */
#define SBC_BSR_PMTCH	0x08	/* phase match */
#define SBC_BSR_BERR	0x04	/* busy error */
#define SBC_BSR_ATN	0x02	/* attention */
#define SBC_BSR_ACK	0x01	/* acknowledge */


struct udc_table {
    u_short rsel;
    u_short haddr;
    u_short laddr;
    u_short count;
    u_short hcmr;
    u_short lcmr;
};

/*
 * Misc defines 
 */

/* arbitrate retry count */
#define SE_ARB_RETRIES		20
#define SE_SEL_RETRIES		5

/* scsi timer values, units as specified to the right  */
#define SE_ARBITRATION_DELAY	3	/*  1 us */
#define SE_BUS_CLEAR_DELAY	1	/*  1 us */
#define SE_BUS_SETTLE_DELAY	1	/*  1 us */
#define SE_UDC_WAIT		1	/*  1 us */
#define SE_ARB_WAIT		5	/* 10 us */
#define SE_RESET_DELAY		4000000	/*  1 us  ( 4 Sec.) */
#define SE_LONG_WAIT		3000000	/* 10 us  (30 Sec.) */
#define SE_WAIT_COUNT		1000000	/* 10 us  (10 Sec.) */
#define SE_SHORT_WAIT		25000	/* 10 us  (.25 Sec.) */
#define SE_PHASE_WAIT		20	/* 10 us */

/* directions for dma transfers */
#define SE_RECV_DATA		0
#define SE_SEND_DATA		1
#define SE_NO_DATA		2

/* initiator's scsi device id */
#define	SE_HOST_ID		0x80

/* possible values for the address modifier, sun3 vme version only */
#define VME_SUPV_DATA_24	0x3d00

/* must massage dvma addresses for Sun3/50 hardware */
#define DVMA_OFFSET	(int)(DVMA - (char *)KERNELBASE)

/* 
 * Register layout for the SCSI control logic interface.
 * Some of these registers apply to only one interface and some
 * apply to both. The registers which apply to the Sun3/50 onboard 
 * version only are udc_rdata and udc_raddr. The registers which
 * apply to the Sun3 vme version only are dma_addr, dma_count, bpr,
 * iv_am, and bcrh. Thus, the sbc registers, fifo_data, bcr, and csr 
 * apply to both interfaces.
 * One other feature of the vme interface: a write to the dma count 
 * register also causes a write to the fifo byte count register and
 * vis versa.
 */
#define SBC_RD	ser->sbc_rreg	/* SBC read regs, ser points to HA */
#define SBC_WR	ser->sbc_wreg	/* SMC write regs */
#define sbc_rreg sbc.read
#define sbc_wreg sbc.write

struct scsi_si_reg {
	u_char			dma_buf[65536];	/* DMA buffer		*/
	union {
		struct sbc_read_reg	read;	/* scsi bus ctlr, read reg */
		struct sbc_write_reg	write;	/* scsi bus ctlr, write reg */
	} sbc;
	u_short			unused1;
	u_short			dma_addr;	/* DMA offset register	*/
	u_short			unused2;
	u_short			dma_cntr;	/* DMA count down register */
	u_short			unused3;
	u_short			unused4;
	u_short			unused5;
	u_short			unused6;
	u_short			unused7;
	u_short			csr;		/* control/status register */
	u_short			unused8;
	u_char			unused9;
	u_char			ivec2;		/* interrupt vector	*/
	u_short			unused10;
};

/*
 * Status Register.
 * Note:
 *	(r)	indicates bit is read only.
 *	(rw)	indicates bit is read or write.
 *	(v)	vme host adaptor interface only.
 *	(o)	sun3/50 onboard host adaptor interface only.
 *	(b)	both vme and sun3/50 host adaptor interfaces.
 */
#define SE_CSR_SBC_IP		0x0200	/* (r,b) sbc interrupt pending */
#define SE_CSR_SEND		0x0008	/* (rw,b) dma dir, 1=to device */
#define SE_CSR_INTR_EN		0x0004	/* (rw,b) interrupts enable */
#define	SE_SR_VCC		0x0002	/* (r) power signal to the chip	*/
#define SE_CSR_SCSI_RES		0x0001	/* (rw,b) reset sbc and udc, 0=reset */
	tcr;	/* target command register */
	u_char		ser;	/* select/reselect enable register */
	u_char		send;	/* start dma for target/initiator send xfer */
	u_char		trcv;	/* start dma for target receive transfer */
	u_char		ircv;	/* start dma for initiator receive transfer */
};

/* bits in the sbc initiator command register */
#defi./share/sys/sundev/sfreg.h                                                                             444       0      12         4240  4423267271  10675                                                                                                                                                                                                                                                                                                                                                                      /* @(#)sfreg.h       1.1 88/09/12 Copyr 1988 Sun Micro */

#include <sundev/sdreg.h>

/*
 * Defines for SCSI disk drives.
 */
#define SF_TIMEOUT		/* Enable command timeouts */
#define SF_FORMAT  		/* Enable on-line formatting mods */

/*
 * SCSI disk controller specific stuff.
 */
#define CTYPE_NCRFLOP		4
#define CTYPE_SMSFLOP		5

/*
 * Mode Select Page Codes
 */
struct ccs_modesel_head_fl {
	u_char	reserved1;
	u_char	medium;			/* medium type */
	u_char 	reserved2;
	u_char 	reserved3;
}; 

struct ccs_sms_block {		/* SMS block descriptor block */
	char blocks[8];
};

struct ccs_modesel_medium {
	u_char page_code;
	u_char page_length;	/* length of page */
	u_short xfer_rate;	/* transfer rate */
	u_char nhead;		/* number of heads */
	u_char sec_trk;		/* sectors per track */
	u_short data_bytes;	/* date bytes per sector */
	u_short ncyl;
	u_short start_cyl;
	u_short start_cyl1;
	u_short step;		/* drive step rate */
	u_char  pulse;
	u_char  head_settle;
	u_char  head_settle1;
	u_char	motor_on_delay;
	u_char	motor_off_delay;
	u_char	true_ready	:1;	/* actually a bit field */
	u_char	ssn		:1;	/* actually a bit field */
	u_char	mo		:1;	/* actually a bit field */
	u_char	dummy		:5;	/* actually a bit field */
	u_char  step_pulse;
	u_char  write_precomp;
	u_char  hload_delay;
	u_char  huload_delay;
	u_char	pins;		/* how pins on the interface are used */
	u_char  pins1;
	u_char  reserved1;
	u_char  reserved2;
	u_char  reserved3;
	u_char  reserved4;
};

struct ms_med_parms_sms {
	struct ccs_modesel_head_fl header;
	struct ccs_sms_block blkdesc;
	struct ccs_modesel_medium page5;
};

struct ms_med_parms_ncr {
	struct ccs_modesel_head_fl header;
	struct ccs_modesel_medium page5;
};

/* 
 * Vendor specific stuff
  */
struct ccs_modesel_vendor {
	u_char  reserved;
};

#define SS8SPT		0xFE	/* single sided 8 sectors per track */
#define DS8SPT		0xFF	/* double sided 8 sectors per track */
#define SS9SPT		0xFC	/* single sided 9 sectors per track */
#define DS9SPT		0xFD	/* double sided 9 sectors per track */
#define DSHSPT		0xF9	/* High density */

/*
 * sf specific SCSI commands (KSS should go in scsi.h someday)
 */
#define SC_INIT_CHARACTERISTICS 0x0c	/* initialize drive characteristics */

x40	/* target mode */
#define SBC_MR_EPC	0x20	/* enable parity check */
#define SBC_MR_EPI	0x10	/* enable parity interrupt */
#define SBC_MR_EEI	0x08	/* enable eop interrupt */
#define SBC_MR_MBSY	0x04	/* monitor busy */
#define SBC_MR_DMA	0x02	/* dma mode */
#define SBC_MR_ARB	0x01	/* arbitration mode */

/* bits in the sbc target command register *./share/sys/sundev/sireg.h                                                                             444       0      12        32215  4423267272  10724                                                                                                                                                                                                                                                                                                                                                                      /* @(#)sireg.h       1.21 89/03/30 Copyr 1987 Sun Micro */


/*
 * Register definitions for the Sun3/50 onboard and Sun3 32-bit VME version 
 * of the SCSI control logic interface. Both of these interfaces use the
 * NCR 5380 SBC (SCSI Bus Controller). The main difference between these
 * two interfaces is the dma interface. The Sun3/50 onboard version uses
 * the AMD 9516 UDC (Universal DMA Controller).
 * Since the NCR 5380 SBC chip is used, both interfaces support the SCSI
 * disconnect/reconnect capability thus implying support for the scsi
 * arbitration phase.
 */

/*
 * NCR 5380 SBC (SCSI Bus Controller) Registers.
 */

/* read of sbc registers yields the following: */
struct sbc_read_reg {
	u_char		cdr;	/* current data register */
	u_char		icr;	/* initiator command register */
	u_char		mr;	/* mode register */
	u_char		tcr;	/* target command register */
	u_char		cbsr;	/* current bus status register */
	u_char		bsr;	/* bus and status register */
	u_char		idr;	/* input data register */
	u_char		clr;	/* read to clear parity error, */
				/* interrupt request, and busy */
				/* failure bits in the bsr */
};

/* write of sbc registers yields the following: */
struct sbc_write_reg {
	u_char		odr;	/* output data register */
	u_char		icr;	/* initiator command register */
	u_char		mr;	/* mode register */
	u_char		tcr;	/* target command register */
	u_char		ser;	/* select/reselect enable register */
	u_char		send;	/* start dma for target/initiator send xfer */
	u_char		trcv;	/* start dma for target receive transfer */
	u_char		ircv;	/* start dma for initiator receive transfer */
};

/* bits in the sbc initiator command register */
#define SBC_ICR_RST	0x80	/* (r/w) assert reset */
#define SBC_ICR_AIP	0x40	/* (r)   arbitration in progress */
#define SBC_ICR_TEST	0x40	/* (w)   test mode, disables output */
#define SBC_ICR_LA	0x20	/* (r)   lost arbitration */
#define SBC_ICR_DE	0x20	/* (w)   differential enable */
#define SBC_ICR_ACK	0x10	/* (r/w) assert acknowledge */
#define SBC_ICR_BUSY	0x08	/* (r/w) assert busy */
#define SBC_ICR_SEL	0x04	/* (r/w) assert select */
#define SBC_ICR_ATN	0x02	/* (r/w) assert attention */
#define SBC_ICR_DATA	0x01	/* (r/w) assert data bus */

/* bits in the sbc mode register (same on read or write) */
#define SBC_MR_BDMA	0x80	/* block mode dma */
#define SBC_MR_TRG	0x40	/* target mode */
#define SBC_MR_EPC	0x20	/* enable parity check */
#define SBC_MR_EPI	0x10	/* enable parity interrupt */
#define SBC_MR_EEI	0x08	/* enable eop interrupt */
#define SBC_MR_MBSY	0x04	/* monitor busy */
#define SBC_MR_DMA	0x02	/* dma mode */
#define SBC_MR_ARB	0x01	/* arbitration mode */

/* bits in the sbc target command register */
#define SBC_TCR_REQ	0x08	/* assert request */
#define SBC_TCR_MSG	0x04	/* assert message */
#define SBC_TCR_CD	0x02	/* assert command/data */
#define SBC_TCR_IO	0x01	/* assert input/output */

/* settings of tcr to reflect different information transfer phases */
#define TCR_COMMAND	(SBC_TCR_CD)
#define TCR_MSG_OUT	(SBC_TCR_MSG | SBC_TCR_CD)
#define TCR_DATA_OUT	0
#define TCR_STATUS	(SBC_TCR_CD | SBC_TCR_IO)
#define TCR_MSG_IN	(SBC_TCR_MSG | SBC_TCR_CD | SBC_TCR_IO)
#define TCR_DATA_IN	(SBC_TCR_IO)
#define TCR_UNSPECIFIED	(SBC_TCR_MSG)

/* bits in the sbc current bus status register */
#define SBC_CBSR_RST	0x80	/* reset */
#define SBC_CBSR_BSY	0x40	/* busy */
#define SBC_CBSR_REQ	0x20	/* request */
#define SBC_CBSR_MSG	0x10	/* message */
#define SBC_CBSR_CD	0x08	/* command/data */
#define SBC_CBSR_IO	0x04	/* input/output */
#define SBC_CBSR_SEL	0x02	/* select */
#define SBC_CBSR_DBP	0x01	/* data bus parity */
#define SBC_CBSR_RESEL	(SBC_CBSR_SEL |  SBC_CBSR_IO)


/* scsi bus signals reflecting different information transfer phases */
#define CBSR_PHASE_BITS	(SBC_CBSR_CD | SBC_CBSR_MSG | SBC_CBSR_IO)
#define PHASE_COMMAND	(SBC_CBSR_CD)
#define PHASE_MSG_OUT	(SBC_CBSR_MSG | SBC_CBSR_CD)
#define PHASE_DATA_OUT	0
#define PHASE_STATUS	(SBC_CBSR_CD | SBC_CBSR_IO)
#define PHASE_MSG_IN	(SBC_CBSR_MSG | SBC_CBSR_CD | SBC_CBSR_IO)
#define PHASE_DATA_IN	(SBC_CBSR_IO)

#define PHASE_SPURIOUS		0x80	/* for driver use only */
#define PHASE_ARBITRATION	0x81	/* for driver use only */
#define PHASE_IDENTIFY		0x82	/* for driver use only */
#define PHASE_SAVE_PTR		0x83	/* for driver use only */
#define PHASE_RESTORE_PTR	0x84	/* for driver use only */
#define PHASE_DISCONNECT	0x85	/* for driver use only */
#define PHASE_RECONNECT		0x86	/* for driver use only */
#define PHASE_CMD_CPLT		0x87	/* for driver use only */


/* bits in the sbc bus and status register */
#define SBC_BSR_EDMA	0x80	/* end of dma */
#define SBC_BSR_RDMA	0x40	/* dma request */
#define SBC_BSR_PERR	0x20	/* parity error */
#define SBC_BSR_INTR	0x10	/* interrupt request */
#define SBC_BSR_PMTCH	0x08	/* phase match */
#define SBC_BSR_BERR	0x04	/* busy error */
#define SBC_BSR_ATN	0x02	/* attention */
#define SBC_BSR_ACK	0x01	/* acknowledge */

/*
 * AMD 9516 UDC (Universal DMA Controller) Registers.
 * Sun3/50 only.
 */

/* addresses of the udc registers accessed directly by driver */
#define UDC_ADR_MODE		0x38	/* master mode register */
#define UDC_ADR_COMMAND		0x2e	/* command register (write only) */
#define UDC_ADR_STATUS		0x2e	/* status register (read only) */
#define UDC_ADR_CAR_HIGH	0x26	/* chain addr reg, high word */
#define UDC_ADR_CAR_LOW		0x22	/* chain addr reg, low word */
#define UDC_ADR_CARA_HIGH	0x1a	/* cur addr reg A, high word */
#define UDC_ADR_CARA_LOW	0x0a	/* cur addr reg A, low word */
#define UDC_ADR_CARB_HIGH	0x12	/* cur addr reg B, high word */
#define UDC_ADR_CARB_LOW	0x02	/* cur addr reg B, low word */
#define UDC_ADR_CMR_HIGH	0x56	/* channel mode reg, high word */
#define UDC_ADR_CMR_LOW		0x52	/* channel mode reg, low word */
#define UDC_ADR_COUNT		0x32	/* number of words to transfer */

/* 
 * For a dma transfer, the appropriate udc registers are loaded from a 
 * table in memory pointed to by the chain address register.
 */
struct udc_table {
	u_short			rsel;	/* tells udc which regs to load */
	u_short			haddr;	/* high word of main mem dma address */
	u_short			laddr;	/* low word of main mem dma address */
	u_short			count;	/* num words to transfer */
	u_short			hcmr;	/* high word of channel mode reg */
	u_short			lcmr;	/* low word of channel mode reg */
};

/* indicates which udc registers are to be set based on info in above table */
#define UDC_RSEL_RECV		0x0182
#define UDC_RSEL_SEND		0x0282

/* setting of chain mode reg: selects how the dma op is to be executed */
#define UDC_CMR_HIGH		0x0040	/* high word of channel mode reg */
#define UDC_CMR_LSEND		0x00c2	/* low word of cmr when send */
#define UDC_CMR_LRECV		0x00d2	/* low word of cmr when receiving */

/* setting for the master mode register */
#define UDC_MODE		0xd	/* enables udc chip */

/* setting for the low byte in the high word of an address */
#define UDC_ADDR_INFO		0x40	/* inc addr after each word is dma'd */

/* udc commands */
#define UDC_CMD_STRT_CHN	0xa0	/* start chaining */
#define UDC_CMD_CIE		0x32	/* channel 1 interrupt enable */
#define UDC_CMD_RESET		0x00	/* reset udc, same as hdw reset */

/* bits in the udc status register */
#define UDC_SR_CIE		0x8000	/* channel interrupt enable */
#define UDC_SR_IP		0x2000	/* interrupt pending */
#define UDC_SR_CA		0x1000	/* channel abort */
#define UDC_SR_NAC		0x0800	/* no auto reload or chaining*/
#define UDC_SR_WFB		0x0400	/* waiting for bus */
#define UDC_SR_SIP		0x0200	/* second interrupt pending */
#define UDC_SR_HM		0x0040	/* hardware mask */
#define UDC_SR_HRQ		0x0020	/* hardware request */
#define UDC_SR_MCH		0x0010	/* match on upper comparator byte */
#define UDC_SR_MCL		0x0008	/* match on lower comparator byte */
#define UDC_SR_MC		0x0004	/* match condition ended dma */
#define UDC_SR_EOP		0x0002	/* eop condition ended dma */
#define UDC_SR_TC		0x0001	/* termination of count ended dma */

/*
 * Misc defines 
 */

/* arbitrate retry count */
#define SI_ARB_RETRIES		10
#define SI_SEL_RETRIES		4

/* scsi timer values, units as specified to the right  */
#define SI_ARBITRATION_DELAY	3	/*  1 us */
#define SI_BUS_CLEAR_DELAY	1	/*  1 us */
#define SI_BUS_SETTLE_DELAY	1	/*  1 us */
#define SI_UDC_WAIT		1	/*  1 us */
#define SI_ARB_WAIT		5	/* 10 us  */
#define SI_RESET_DELAY		4000000	/*  1 us  ( 4  Sec.) */
#define SI_LONG_WAIT		3000000	/* 10 us  (30  Sec.) */
#define SI_WAIT_COUNT		1000000	/* 10 us  (10  Sec.) */
#define SI_SHORT_WAIT		25000	/* 10 us  (.25 Sec.) */
#define SI_PHASE_WAIT		10	/* 10 us */

/* directions for dma transfers */
#define SI_RECV_DATA		0
#define SI_SEND_DATA		1
#define SI_NO_DATA		2

/* initiator's scsi device id */
#define SI_HOST_ID		0x80

/* possible values for the address modifier, sun3 vme version only */
#define VME_SUPV_DATA_24	0x3d00

/* must massage dvma addresses for Sun3/50 hardware */
#define DVMA_OFFSET		(int)(DVMA - (char *)KERNELBASE)

/* 
 * Register layout for the SCSI control logic interface.
 * Some of these registers apply to only one interface and some
 * apply to both. The registers which apply to the Sun3/50 onboard 
 * version only are udc_rdata and udc_raddr. The registers which
 * apply to the Sun3 vme version only are dma_addr, dma_count, bpr,
 * iv_am, and bcrh. Thus, the sbc registers, fifo_data, bcr, and csr 
 * apply to both interfaces.
 * One other feature of the vme interface: a write to the dma count 
 * register also causes a write to the fifo byte count register and
 * vis versa.
 */

/* Shorthand, to make the code look a bit cleaner. */
#define sbc_rreg	sbc.read	/* SBC read regs. */
#define SBC_RD		sir->sbc.read	/* sir points to SCSI ha regs */

#define sbc_wreg	sbc.write	/* SBC write regs. */
#define SBC_WR		sir->sbc.write	/* sir points to SCSI ha regs */


#if	defined(sun3) || defined(sun3x)
#define	SET_DMA_ADDR(sir,val)	(sir)->dma_addr = val;
#define	GET_DMA_ADDR(sir)	(sir)->dma_addr;
#define	SET_DMA_COUNT(sir,val)	(sir)->dma_count = val;
#define	GET_DMA_COUNT(sir)	(sir)->dma_count;

struct scsi_si_reg {
	union {
		struct sbc_read_reg	read;	/* scsi bus ctlr, read reg */
		struct sbc_write_reg	write;	/* scsi bus ctlr, write reg */
	} sbc;

	u_int			dma_addr;	/* dma address register */
	u_int			dma_count;	/* dma count register */
	u_short			udc_rdata;	/* univ dma ctlr, reg data */
	u_short			udc_raddr;	/* univ dma ctlr, reg addr */
	u_short			fifo_data;	/* fifo data register */
						/* holds extra byte on odd */
						/* byte dma read */
	u_short			bcr;		/* fifo byte count reg */
	u_short			csr;		/* control/status register */
	u_short			bprh;		/* byte pack register */
	u_short			bprl;
	u_short			iv_am;		/* bits 0-7: addr modifier */
						/* bits 8-13: intr vector */
						/* bits 14-15: unused */
	u_short			bcrh;		/* high portion of bcr */
};
#endif	defined(sun3) || defined(sun3x)
#ifdef	sun4
#define	SET_DMA_ADDR(sir,val)	(sir)->dma_addrh = (val >> 16);\
				(sir)->dma_addrl = (val & 0xffff);
#define	GET_DMA_ADDR(sir)	(((sir)->dma_addrh  << 16) | ((sir)->dma_addrl))
#define	SET_DMA_COUNT(sir,val)	(sir)->dma_counth = (val >> 16);\
				(sir)->dma_countl = (val & 0xffff);
#define	GET_DMA_COUNT(sir)	(((sir)->dma_counth  << 16) | ((sir)->dma_countl))

struct scsi_si_reg {
	union {
		struct sbc_read_reg	read;	/* scsi bus ctlr, read reg */
		struct sbc_write_reg	write;	/* scsi bus ctlr, write reg */
	} sbc;

	u_short			dma_addrh;	/* dma address register */
	u_short			dma_addrl;
	u_short			dma_counth;	/* dma count register */
	u_short			dma_countl;
	u_short			udc_rdata;	/* univ dma ctlr, reg data */
	u_short			udc_raddr;	/* univ dma ctlr, reg addr */
	u_short			fifo_data;	/* fifo data register */
						/* holds extra byte on odd */
						/* byte dma read */
	u_short			bcr;		/* fifo byte count reg */
	u_short			csr;		/* control/status register */
	u_short			bprh;		/* byte pack register */
	u_short			bprl;
	u_short			iv_am;		/* bits 0-7: addr modifier */
						/* bits 8-13: intr vector */
						/* bits 14-15: unused */
	u_short			bcrh;		/* high portion of bcr */
};
#endif	sun4

/*
 * Status Register.
 * Note:
 *	(r)	indicates bit is read only.
 *	(rw)	indicates bit is read or write.
 *	(v)	vme host adaptor interface only.
 *	(o)	sun3/50 onboard host adaptor interface only.
 *	(b)	both vme and sun3/50 host adaptor interfaces.
 */
#define SI_CSR_DMA_ACTIVE	0x8000	/* (r,o) dma transfer active */
#define SI_CSR_DMA_CONFLICT	0x4000	/* (r,b) reg accessed while dmaing */
#define SI_CSR_DMA_BUS_ERR	0x2000	/* (r,b) bus error during dma */
#define SI_CSR_ID		0x1000	/* (r,b) 0 for 3/50, 1 for SCSI-3, */
					/* 0 if SCSI-3 unmodified */
#define SI_CSR_FIFO_FULL	0x0800	/* (r,b) fifo full */
#define SI_CSR_FIFO_EMPTY	0x0400	/* (r,b) fifo empty */
#define SI_CSR_SBC_IP		0x0200	/* (r,b) sbc interrupt pending */
#define SI_CSR_DMA_IP		0x0100	/* (r,b) dma interrupt pending */
#define SI_CSR_LOB		0x00c0	/* (r,v) number of leftover bytes */
#define SI_CSR_LOB_THREE	0x00c0	/* (r,v) three leftover bytes */
#define SI_CSR_LOB_TWO		0x0080	/* (r,v) two leftover bytes */
#define SI_CSR_LOB_ONE		0x0040	/* (r,v) one leftover byte */
#define SI_CSR_BPCON		0x0020	/* (rw,v) byte packing control */
					/* dma is in 0=longwords, 1=words */
#define SI_CSR_DMA_EN		0x0010	/* (rw,v) dma enable */
#define SI_CSR_SEND		0x0008	/* (rw,b) dma dir, 1=to device */
#define SI_CSR_INTR_EN		0x0004	/* (rw,b) interrupts enable */
#define SI_CSR_FIFO_RES		0x0002	/* (rw,b) inits fifo, 0=reset */
#define SI_CSR_SCSI_RES		0x0001	/* (rw,b) reset sbc and udc, 0=reset */
offset into file */
	int	un_iovlen;		/* last transfer request size (bytes) */
	int	un_next_block;		/* next record on tape */
	int	un_last_block;		/* last record of file, if known */
	int	un_fileno;		/* current file number on tape */
	int	un_dev_bsize;		/* device unit block size (bytes) */
	int	un_err_fileno;		/* file where error occurred */
	int	un_err_blkno;		/* block./share/sys/sundev/smreg.h                                                                             444       0      12        42122  4423267315  10724                                                                                                                                                                                                                                                                                                                                                                      /*
 * @(#)smreg.h       1.5 89/04/19 Copyright (c) 1988 by Sun Microsystems, Inc.
 *
 *	Emulex ESP SCSI (low-level) driver header file
 *
 *	2/89	KSAM	Add in synchronous supports (Billie beta-2 rel)
 *	12/88	KSAM	Billie beta release
 *	5/88	KSAM	Add in supports for Hydra, Campus, and P4-ESP
 *	2/88	KSAM	initial written for Stingray
 *
 */
#if (defined sun3x) || (defined sun4)

/* must be byte accesses in Campus */
/*
 * Emules ESP (Enhanced SCSM Controller) Registers.
 */
/* read of ESP's registers yields the following: */
struct esp_read_reg {	/* for P4 card, it is always 32 bit access */
	u_char	xcnt_lo;	/* transfer counter (low byte)*/
	u_char	pad1;
	u_char	pad2;
	u_char	pad3;
	u_char	xcnt_hi;	/* transfer counter (high byte)*/
	u_char	pad5;
	u_char	pad6;
	u_char	pad7;
	u_char	fifo_data;	/* fifo data buffer */
	u_char	pad9;
	u_char	pad10;
	u_char	pad11;
	u_char	cmd;		/* command register */
	u_char	pad12;
	u_char	pad13;
	u_char	pad14;
	u_char	stat;		/* status register */
	u_char	pad16;
	u_char	pad17;
	u_char	pad18;
	u_char	intr;		/* interrupt status register */
	u_char	pad19;
	u_char	pad20;
	u_char	pad21;
	u_char	step;		/* sequence step register */
	u_char	pad22;
	u_char	pad23;
	u_char	pad24;
	u_char	fifo_flag;	/* fifo flag register */
	u_char	pad25;
	u_char	pad26;
	u_char	pad27;
	u_char	conf;		/* configuration register, */
	u_char	pad28;
	u_char	pad29;
	u_char	pad30;
	u_char	reserved1;	/* reservered */
	u_char	pad31;
	u_char	pad32;
	u_char	pad33;
	u_char	reserved2;	/* reservered */
	u_char	pad34;
	u_char	pad35;
	u_char	pad36;
	u_char	conf2;		/* ESP-II configuration register */
};

/* write of ESP's registers yields the following: */
struct esp_write_reg {	/* for P4 card, it is always 32 bit access */
	u_char	xcnt_lo;	/* transfer counter (low byte)*/
	u_char	pad1;
	u_char	pad2;
	u_char	pad3;
	u_char	xcnt_hi;	/* transfer counter (high byte)*/
	u_char	pad5;
	u_char	pad6;
	u_char	pad7;
	u_char	fifo_data;	/* fifo data buffer */
	u_char	pad9;
	u_char	pad10;
	u_char	pad11;
	u_char	cmd;		/* command register */
	u_char	pad13;
	u_char	pad14;
	u_char	pad15;
	u_char	busid;		/* bus_id register */
	u_char	pad16;
	u_char	pad17;
	u_char	pad18;
	u_char	timeout;	/* timeout limit register */
	u_char	pad19;
	u_char	pad20;
	u_char	pad21;
	u_char	sync_period;	/* sync period register */
	u_char	pad22;
	u_char	pad23;
	u_char	pad24;
	u_char	sync_offset;	/* sync offset register */
	u_char	pad25;
	u_char	pad26;
	u_char	pad27;
	u_char	conf;		/* configuration register, */
	u_char	pad28;
	u_char	pad29;
	u_char	pad30;
	u_char	clock_conv;	/* clock convertion register */
	u_char	pad31;
	u_char	pad32;
	u_char	pad33;
	u_char	test;		/* test register */
	u_char	pad34;
	u_char	pad35;
	u_char	pad36;
	u_char	conf2;		/* ESP-II configuration register */
	u_char	pad38;
	u_char	pad39;
	u_char	pad40;
};

/* DMA GATE-ARRAY registers */
struct udc_table {
	u_long	scsi_ctlstat;	/* 32 bit for HYDRA */
	u_long	scsi_dmaaddr;	/* 32 bit dor hydra */
};

#define STINGRAY 		1		/* boot ID_PROM type */
#define HYDRA 			2
#define CAMPUS 			3

#define STINGRAY_BUSID 		0		/* bit 31-28 in DVMA status reg */
#define CAMPUS_BUSID		1
#define HYDRA_BUSID		2
#define SM_SIZE			0x2000		/* ESP and DVMA space */	

#define P4DVMA_SCSI_BASE	0xff600000
#define STINGRAY_SCSI_BASE	0xfa000000
#define STINGRAY_DMA_OFFSET	0x1000		/* SCSI_BASE + OFFSET */

#define CAMPUS_SCSI_BASE	0xf8800000
#define CAMPUS_DMA_OFFSET	0x400000	/* SCSI_BASE - OFFSET */

#define HYDRA_SCSI_BASE		0x66000000
#define HYDRA_DMA_OFFSET	0x1000		/* SCSI_BASE + OFFSET */

#define P4ESP_SCSI_BASE		0xff200200
#define P4ESP_DMA_OFFSET	0x103		/* SCSI_BASE + OFFSET */

/* bits in the ESP's initiator command register */
#define CMD_DMA		0x80	/* =1= enable DMA */

/* Several common Initiator cammand */
#define	CMD_NOP		0x0	/* misc cammand */	/* NO INT */
#define	CMD_FLUSH	0x1				/* NO INT */
#define	CMD_RESET_ESP	0x2				/* NO INT */
#define	CMD_RESET_SCSI	0x3				/* NO INT */
#define	CMD_RESEL_SEQ	0x40	/* disconnect cammand */	
#define	CMD_SEL_NOATN	0x41
#define	CMD_SEL_ATN	0x42
#define	CMD_SEL_STOP 	0x43
#define	CMD_EN_RESEL	0x44				/* NO INT */
#define	CMD_DIS_RESEL	0x45
#define	CMD_TRAN_INFO	0x10	/* initiator cmd */
#define	CMD_COMP_SEQ	0x11
#define	CMD_MSG_ACPT	0x12
#define	CMD_TRAN_PAD	0x18
#define	CMD_SET_ATN	0x1a				/* NO INT */


/* bits in the ESP's status register (read only) 	*/
#define ESP_STAT_RES	0x80	/* reserved */
#define ESP_STAT_GERR	0x40	/* gross error */
#define ESP_STAT_PERR	0x20	/* parity error */
#define ESP_STAT_XZERO	0x10	/* transfer counter zero */
#define ESP_STAT_XCMP	0x8	/* transfer completed */
#define ESP_STAT_MSG	0x4	/* scsi phase bit: MSG */
#define ESP_STAT_CD	0x2	/* scsi phase bit: CD */
#define ESP_STAT_IO	0x1	/* scsi phase bit: IO */
#define STAT_ERR_MASK	(ESP_STAT_GERR | ESP_STAT_PERR)

/* settings of status to reflect different information transfer phases */
#define ESP_PHASE_MASK		(ESP_STAT_MSG | ESP_STAT_CD | ESP_STAT_IO)
#define ESP_PHASE_DATA		(ESP_PHASE_DATA_IN | ESP_PHASE_DATA_OUT)
#define ESP_PHASE_DATA_OUT	0
#define ESP_PHASE_DATA_IN	(ESP_STAT_IO)
#define ESP_PHASE_COMMAND	(ESP_STAT_CD)
#define ESP_PHASE_STATUS	(ESP_STAT_CD | ESP_STAT_IO)
#define ESP_PHASE_MSG_OUT	(ESP_STAT_MSG | ESP_STAT_CD)
#define ESP_PHASE_MSG_IN	(ESP_STAT_MSG | ESP_STAT_CD | ESP_STAT_IO)

#define ESP_PHASE_SMURIOUS	0x80	/* for driver use only */
#define ESP_PHASE_ARBITRATION	0x81	/* for driver use only */
#define ESP_PHASE_IDENTIFY	0x82	/* for driver use only */
#define ESP_PHASE_SAVE_PTR	0x83	/* for driver use only */
#define ESP_PHASE_RESTORE_PTR	0x84	/* for driver use only */
#define ESP_PHASE_DISCONNECT	0x85	/* for driver use only */
#define ESP_PHASE_CMD_CPLT	0x86	/* for driver use only */


/* bits in the ESP's interrupt status register */
#define ESP_INT_RESET	0x80	/* SCSI reset detected */
#define ESP_INT_ILLCMD	0x40	/* illegal cmd */
#define ESP_INT_DISCON	0x20	/* disconnect */
#define ESP_INT_BUS	0x10	/* bus service */
#define ESP_INT_FCMP	0x8	/* function completed */
#define ESP_INT_RESEL	0x4	/* reselected */
#define ESP_INT_SELATN	0x2	/* selected with ATN */
#define ESP_INT_SEL	0x1	/* selected without ATN */
#define ESP_INT_MASK	0xfc	/* all execpt least 2 bits */

#define INT_OK_MASK	(ESP_INT_BUS | ESP_INT_FCMP)
#define INT_RESEL_OK	(ESP_INT_RESEL | ESP_INT_FCMP)
#define INT_RESEL_OK1	(ESP_INT_RESEL | ESP_INT_BUS)
#define INT_DISCON_OK	(ESP_INT_DISCON | ESP_INT_FCMP)
#define INT_DISCON_OK1	(ESP_INT_DISCON | ESP_INT_BUS)
#define INT_ILL_BUS		(ESP_INT_ILLCMD | ESP_INT_BUS)
#define INT_ILL_FCMP		(ESP_INT_ILLCMD | ESP_INT_FCMP)
#define INT_ILL_DISCON		(ESP_INT_ILLCMD | ESP_INT_DISCON)
#define INT_ILL_DISCON_OK	(ESP_INT_ILLCMD | INT_DISCON_OK)
#define INT_ILL_DISCON_OK1	(ESP_INT_ILLCMD | INT_DISCON_OK1)
#define INT_ILL_RESEL		(ESP_INT_ILLCMD | ESP_INT_RESEL)
#define INT_ILL_RESEL_OK	(ESP_INT_ILLCMD | INT_RESEL_OK)
#define INT_ILL_RESEL_OK1	(ESP_INT_ILLCMD | INT_RESEL_OK1)

/* bits in the ESP's step sequnce register */
#define ESP_SEQ_STEP		0x7	/* last 3 bits */

/* bits in the ESP's configuration register */
#define ESP_CONF_SLOWMODE	0x80	/* slow cable mode */
#define ESP_CONF_DISRINT	0x40	/* disable reset int */
#define ESP_CONF_PARTEST	0x20	/* parity test mode */
#define ESP_CONF_PAREN		0x10	/* enable parity */
#define ESP_CONF_CHIPTEST	0x8	/* chip test mode */
#define ESP_CONF_BUSID		0x7	/* last 3 bits to be host id 7 */
#define DEF_ESP_HOSTID		0x7	/* higher priority */

/* bits in the DVMA status register */
#define DVMA_INTPEND	0x1	/* (r) interrupt pending, clear when ESP stops INT */
#define DVMA_ERRPEND	0x2	/* (r) error pendinf on meory exception */
#define DVMA_PACKCNT	0xc	/* (r) number of bytes in reg_pack */
#define DVMA_INTEN	0x10	/* (r/w) interrupt enable */
#define DVMA_FLUSH	0x20	/* (w) =1= clears PACKCNT and ERRPEND */
#define DVMA_DRAIN	0x40	/* (r/w) =1= pushes PACKCNT bytes to memory */
#define DVMA_RESET	0x80	/* (r/w) =1= reset ESP */
#define DVMA_WRITE	0x100	/* (r/w) DVMA direction, 1 to SCSI, 0 from SCSI */
#define DVMA_ENDVMA	0x200	/* (r/w) =1= responds to ESP's dma requests */
#define DVMA_REQPEND	0x400	/* (r) =1= active, NO reset and flush allowed */
#define DVMA_BYTEADR	0x1800	/* (r) next byte to be accessed by ESP */
#define DVMA_DIAG	0x3fff8000	/* (r/w) resevered for diagnostics */
#define DVMA_BUSID	0xf0000000	/* (r) device ID (bit 31-28) */
					/* STINGRAY= 0, CAMPUS= 1, HYDRA= 2 */
#define DVMA_CHK_MASK	(DVMA_ERRPEND | DVMA_REQPEND)
#define DVMA_INT_MASK	(DVMA_INTPEND | DVMA_ERRPEND)
/*
 * Misc defines 
 */
/* arbitrate retry count */
#define SM_NUM_RETRIES		20

/* scsi timer values, units as specified to the right  */
#define SM_ARBITRATION_DELAY	3	/*  1 us */
#define SM_BUS_CLEAR_DELAY	1	/*  1 us */
#define SM_BUS_SETTLE_DELAY	1	/*  1 us */
#define SM_UDC_WAIT		1	/*  1 us */
#define SM_ARB_WAIT		5	/* 10 us  */
#define SM_RESET_DELAY		4000000	/*  1 us  ( 4  Sec.) */
#define SM_LONG_WAIT		3000000	/* 10 us  (30  Sec.) */
#define SM_WAIT_COUNT		400000	/* 10 us  ( 4  Sec.) */
#define SM_SHORT_WAIT		25000	/* 10 us  (.25 Sec.) */
#define SM_PHASE_WAIT		30	/* 10 us */

/* directions for dma transfers */
#define SM_RECV_DATA		0
#define SM_SEND_DATA		1
#define SM_NO_DATA		2
#define MAX_SCSI_TARGET		8

struct scsi_sm_reg {
	union {
		struct esp_read_reg	read;	/* scsi bus ctlr, read reg */
		struct esp_write_reg	write;	/* scsi bus ctlr, write reg */
	} esp;
};

/* Shorthand, to make the code look a bit cleaner. */
#define esp_rreg	esp.read	/* ESP read regs. */
#define ESP_RD		smr->esp.read	/* smr points to SCSM ha regs */

#define esp_wreg	esp.write	/* ESP write regs. */
#define ESP_WR		smr->esp.write	/* smr points to SCSM ha regs */

#define	SET_ESP_COUNT(smr, val)	ESP_WR.xcnt_lo = val & 0xff;\
				ESP_WR.xcnt_hi = ((val >> 8) & 0xff)
#define	GET_ESP_COUNT(smr) 	((int)ESP_RD.xcnt_hi << 8) & 0xff | \
					 ((int)ESP_RD.xcnt_lo & 0xff)
struct sm_snap {
	u_char		cur_state;	/* ESP software state */
	u_char		cur_err;	/* error status */
	u_char		cur_retry;	/* retry counter */
	u_char		cur_target;	/* current target */
	u_char		esp_step;	/* ESP step sequence reg */
	u_char		esp_stat;	/* ESP status reg */
	u_char		esp_intr;	/* ESP interrupt reg */
	u_char		sub_state;	/* ESP internal sub_state */
	u_char		scsi_status;	/* target status */
	u_char		scsi_message;	/* target message */
	u_char		num_dis_target;	/* number of discon-targets */
	u_char		sync_known;	/* synchronous check */
};

/* accumlated state=path (target_accstate) */
#define TAR_START       0x1
#define TAR_SELECT      0x2
#define TAR_DATA        0x4
#define TAR_STATUS      0x8
#define TAR_MSGIN       0x10
#define TAR_DISCON      0x20
#define TAR_RESELECT    0x40
#define TAR_JOBDONE     0x80

#define TAR_SAVE_MSG    0x100
#define TAR_EXT_MSG     0x200
#define TAR_COMP_MSG    0x400
#define TAR_DIS_MSG     0x800

#define TAR_COMMAND     0x1000
#define TAR_MSGOUT      0x2000
#define TAR_CHK_COND    0x4000
#define TAR_BUSY        0x8000


#define STATE_FREE		0
#define STATE_RESET		1
#define STATE_DVMA_STUCK	2  /* DVMA req_pend stuck, send reset manually */
#define STATE_SPEC_RESTORE	0x3

#define STATE_SEL_REQ		0x10
#define STATE_COMP_REQ		0x11
#define STATE_DATA_REQ		0x12
#define STATE_MSGOUT_REQ	0x13
#define STATE_STAT_REQ		0x14
#define STATE_ATN_REQ		0x15
#define STATE_DSRSEL_REQ	0x16
#define STATE_ENRSEL_REQ	0x17
#define STATE_CMD_DONE		0x18
#define STATE_MSGIN_REQ		0x19
#define STATE_DATA_DONE		0x1a
#define STATE_DSRSEL_DONE	0x1b
#define STATE_SYNCHK_REQ	0x1c
#define STATE_SYNC_DONE		0x1d
#define STATE_RESEL_ACPT	0x1e
#define STATE_RESEL_DONE	0x1f

#define STATE_MSG_CMPT		0x20
#define STATE_MSG_EXTEND	0x21
#define STATE_MSG_SAVEPTR	0x22
#define STATE_MSG_DISCON	0x24
#define STATE_MSG_ERROR		0x25
#define STATE_MSG_ABORT		0x26
#define STATE_MSG_REJECT	0x27
#define STATE_MSG_NOP		0x28
#define STATE_MSG_PARITY	0x29
#define STATE_MSG_IDENT		0x2a
#define STATE_MSG_RESET		0x2b
#define STATE_MSG_SYNC		0x2c
#define STATE_MSG_LINKCMD	0x2d
#define STATE_MSG_UNKNOWN	0x2e
#define STATE_MSGOUT_DONE	0x2f

/* sm.c (esp driver's error defines), */
/* leave alone thean standard RETRYABLE (1), FATAL (2) */
/* retryable/fatal error: (reset internal ESP and DVMA only) */
#define	SE_SELTOUT	0x3	/* selection timeout */

/* retryable errors: */
#define	SE_RESET	0x4	/* reset */
#define	SE_TOUTERR	0x5	/* DMA timed out error */
#define	SE_ILLCMD	0x6	/* illegal command detected */
#define	SE_PARITY	0x7	/* Parity error */
#define	SE_FIFOVER	0x8	/* ESP status error, fifo overflown */
#define	SE_CMDOVER	0x9	/* ESP status error, command overflown */ 

/* fatal errors: (reset ESP, DVMA, and SCSI bus) */
#define SE_MEMERR	0xa	/* memory exception error during DMA */
#define	SE_DIRERR	0xb	/* WRONG DMA direction, could trash mem-data */
#define	SE_DVMAERR	0xc	/* drain bit stuck */
#define	SE_RECONNECT	0xd	/* failed to reconnect job */	
#define	SE_MSGERR	0xe	/* ESP has un-expected message */
#define	SE_PHASERR	0xf	/* ESP has un-expected phase */

/* fatal errors: (panic system) */
#define	SE_REQPEND	0x10	/* DMA stuck busy even after a long wait */

/* NON-error: (ignore and clear cur_err) */
#define	SE_SPURINT	0x11	/* spurious int */
/*all other others: (ignore and leave alone cur_err) */


#ifdef SUN4_330                 
/* stingray is 24 MHz clock (40ns clock period) */
#define DEF_CLK_CONV    5	/* 200/40ns (input clock rate) */
#define DEF_SYNC_CONV   10      /* 40 nsec */
#define DEF_TIMEOUT     0x93
#define MIN_SYNC_PERIOD 0x32    /* 50= 5 (min cycle)*40ns/4nsec */
#define MAX_SYNC_PERIOD 0x168   /* 350= 35 (max cycle)*40ns/4nsec */
#define DEF_SYNC_PERIOD 0x32    /* 50= 5 (min cycle)*40ns/4nsec */
#else				
/* hydra and Campus is 20Mhz clock (50ns clock period) */
#define DEF_CLK_CONV    4	/* 200/50ns (input clock rate) */
#define DEF_SYNC_CONV   12      /* 50 % 4 nsec */
#define DEF_TIMEOUT     0x98    /* 250ms*20*1000hz/8192*4 */
#define MIN_SYNC_PERIOD 0x3e    /* 62= 8 (min cycle)*50ns/4(modifier) */
#define MAX_SYNC_PERIOD 0x1b6   /* 438= 35 (max cycle)*50ns/4 */
#define DEF_SYNC_PERIOD 0x3e    /* 62= 8 (min cycle)*50ns/4(modifier) */
#endif SUN4_330

#define DEF_SYNC_OFFSET	15	/* Max # of allowable outstanding REQ */
#define MIN_SYNC_CYL	5
#define MAX_SYNC_CYL	35

#define KEEP_LBYTE	0x000000ff
#define KEEP_LWORD	0x0000ffff
#define MASK_LBYTE	0x0000ff00
#define MASK_LWORD	0xffff0000
#define KEEP_24BITS	0x00ffffff

#define NO_DISCON_MSG	0x0080
#define DISCON_MSG	0x00c0
#define KEEP_3BITS	0x7	/* sync_offset, bus_id */
#define MAXID(x)        (x & KEEP_3BITS)
#define KEEP_4BITS	0xf	/* sync_period */
#define KEEP_5BITS	0x1f	/* fifo_flag */
#define ESP_TPATTERN	0x55aa	/* data test pattern */
#define DVMA_TPATTERN	0x3355aacc	/* data test pattern */
#define LOOP_1USEC	10	/* 1msec / 10 inst per 5 cyl (1/25Mhz) */
#define LOOP_1MSEC	250	/* 1msec / 10 inst per 5 cyl (1/25Mhz) */
#define LOOP_2MSEC	500	/* 2msec / 20 inst per 5 cyl (1/25Mhz) */
#define LOOP_4MSEC	1000	/* 2msec / 20 inst per 5 cyl (1/25Mhz) */
#define LOOP_8MSEC	4000	/* 2msec / 20 inst per 5 cyl (1/25Mhz) */
#define LOOP_100MSEC	25000	/* 100msec / 20 inst per 5 cyl (1/25Mhz) */
#define LOOP_1SEC	250000	/* 1 sec */
#define LOOP_2SEC	500000
#define LOOP_4SEC	1000000	
#define LOOP_8SEC	2000000
#define LOOP_10SEC	2500000
#define LOOP_CMDTOUT	LOOP_10SEC  /* for worst-case Quantum 105's recal */
#define MAX_FIFO_FLAG	15
#define SC_EXT_LENGTH	3
#define SC_EXT_TOTALEN	5
#define ZERO		0
#define ONE		1
#define TWO		2
#define THREE		3
#define FOUR		4
#define SC_ACTIVE	0x1
#define SC_RECONNECT	0x2
#define SCSI_BUSY_MASK	0x1e	/* scsi bus bit 4=res conf, 3= busy, 1= chk */
#define MAX_RETRY	30

/* reset condition */
#define RESET_ALL_SCSI	0x80
#define RESET_INT_ONLY	0x81
#define RESET_EXT_ONLY	0x82

/* some defines that should be in scsi.h, but rather is in here for simpilitcy  */
#define SC_EXTENDED_MESSAGE   	SC_SYNCHRONOUS
#define SC_LINK_CMD_CPLT       	0x0a
#define SC_FLAG_LINK_CMD_CPLT   0x0b
#define SCSI_DEVID_MASK       	0x0300          /* DMA gate array type */
#define SCSI_ESP    		0x0400          /* ESP or ESP 2 */
#define SCSI_ESP2     		0x0800          /* ESP or ESP 2 */
#define SCSI_POLLING  		0x1000          
#define SC_SYNC_CHKING        	0x2000          

#ifdef notdef
/* scsi.h has all these defines, but it is duplicated here just for reference only */
#define SC_INQUIRY		0x12		/* CCS only */
#define SC_MODE_SELECT		0x15
#define SC_MODE_SENSE		0x1a
#define SC_READ_DEFECT_LIST	0x37		/* CCS only, group 1 */
#define SC_WRITE_VERIFY		0x2e            /* 10 byte write+verify */
#define SC_WRITE_FILE_MARK	0x10

#define SC_EXTENDED_MESSAGE	0x01
#define SC_ABORT		0x06
#define SC_MSG_REJECT		0x07
#define SC_NO_OP		0x08
#define SC_PARITY		0x09
#define SC_LINK_CMD_CPLT	0x0a
#define	SC_FLAG_LINK_CMD_CPLT	0x0b
#define SC_DEVICE_RESET		0x0c
#endif notdef

/* add here for future deletes */
#define SMNUM(sm)	(sm - smctlrs)
#define SMUNIT(dev)     (minor(dev) & 0x03)

#define INTERREG	0x0ffe6000	/* virtual addr for OBIO_int reg */
#define ENABLE_P4INT	0x10		/* bit 4 */

/* for debug trace */
#define MARK_PROBE	0x11
#define MARK_SLAVE	0x22
#define MARK_ATTACH	0x33

#define MARK_USTART	0x11
#define MARK_START	0x22
#define MARK_GO		0x33
#define MARK_CMD	0x44
#define MARK_SETUP	0x55
#define MARK_CLEANUP	0x66
#define MARK_INTR	0x77
#define MARK_DONE	0x88
#define MARK_IDLE	0x99
#define MARK_DISCON	0xaa
#define MARK_RECON	0xbb
#define MARK_OFF	0xcc
#define MARK_DEQUEUE	0xdd
#define MARK_RESET	0xee

#endif (defined sun3x) || (defined sun4)
/* end of smreg.h */
able parity */
#define ESP_CONF_CHIPTEST	0x8	/* chip test mode */
#define ESP_CONF_BUSID		0x7	/* last 3 bits to be host id 7 */
#define DEF_ESP_HOSTID		0x7	/* higher priority */

/* bits in the DVMA status register */
#define DVMA_INTPEND	0x1	/* (r) interrupt pending, clear when ESP stops INT */
#define DVMA_ERRPEND	0x2	/* (r) error pendinf on meory exception */
#define DVMA_PACKCNT	0xc	/* (r) number of bytes in reg_pack */
#d./share/sys/sundev/streg.h                                                                             444       0      12        37401  4424704642  10737                                                                                                                                                                                                                                                                                                                                                                      /* @(#)streg.h       1.37 89/04/21 Copyr 1987 Sun Micro */

/*
 * Defines for SCSI tape drives.
 */
#define ST_SYSGEN   			/* Enable Sysgen controller support */
#define ST_TIMEOUT			/* Enable command timeouts */
#define ST_EOF_READTHRU  		/* Enable reading thru eof */
#define ST_AUTOPOSITION		0	/* Enable seek support */
					/* = 0, limited to 2 KB reads */
					/* = 1, any size reads */

#define MAX_ST_DEV_SIZE		65534	/* 64KB -2 for variable length I/O */
#define MAX_AUTOLOAD_DELAY	60	/* 120 Sec. Auto-load maximum delay */
#define ST_AUTODEN_LIMIT	1	/* Auto density file limit */

#ifdef  lint
#define ST_SYSGEN   			/* Enable Sysgen controller support */
#define ST_TIMEOUT			/* Enable command timeouts */
#define ST_EOF_READTHRU  		/* Enable reading thru eof */
/*#define ST_AUTOPOSITION 	1	/* Enable seek support */
#define ST_TIMEOUT			/* Enable command timeouts */
/*#define sun2				/* Enable sun2 support */
/*#define CPU_SUN2_120		2	/*   "     "     "     */
#endif  lint

/*
 * Driver state machine codes -- Do not change order!
 * Opening states:
 *	closed -> opening         ||   -> open  (no tape change, no error)
 *		  opening_sysgen
 *
 *	closed -> opening         ||   -> open  (tape change, no error)
 *                opening_delay   ||
 *
 *	closed -> opening         ||   -> opening_sysgen  -> open  (sysgen)
 *                opening_delay   ||
 *
 *	closed -> opening         ||   -> open_failed_loading ||  -> closed
 *                opening_delay	          open_failed_tape    ||     (error)
 *			     	          open_failed
 *
 * Closing states:
 *	open   -> closing -> closed
 *
 * Open states:
 *	open   -> open (passed command)
 *
 *	open   -> sensing -> open (failed command)
 *
 *	open   -> sensing -> append_testing -> open  (failed write append)
 *
 *	open   -> sensing -> append_testing -> retrying_cmd -> sensing_retry
 *					       (failed write append)
 *
 *	open   -> sensing -> append_testing -> retrying_cmd -> open
 *
 *					       (passed write append)
 * Open states (auto-density):
 *	open   -> sensing -> density_changing -> open
 *					       (failed density change)
 *
 *	open   -> sensing -> density_changing ->
 *	          retrying_cmd -> sensing_retry -> open
 *					       (failed density change)
 *
 *	open   -> sensing -> density_changing -> retrying_cmd -> open
 *					       (passed density change)
 */
#define CLOSED			 0
#define CLOSING			 1
#define OPEN_FAILED_LOADING	 2
#define OPEN_FAILED_TAPE	 3
#define OPEN_FAILED		 4
#define OPENING_SYSGEN		 5
#define OPENING_DELAY		 6
#define OPENING			 7
#define APPEND_TESTING		 8
#define DENSITY_CHANGING	 9
#define RETRYING_CMD		10
#define SENSING_RETRY		11
#define SENSING			12
#define OPEN			13

/*
 * Eof codes.
 */
#define ST_NO_EOF		0x00
#define ST_EOF			0x01
#define ST_EOF_LOG		0x02
#define ST_EOF_PENDING		0x03
#define ST_EOT			ST_EOF

/*
 * Operation codes.
 */
#define SC_REWIND		0x01
#define SC_QIC02		0x0D
#define SC_READ_XSTATUS_CIPHER	0xe0		/* Sun-2, Cipher tape only */
#define SC_SPACE_REC		0x11
#define SC_ERASE_TAPE		0x19
#define SC_LOAD			0x1B
#define SC_READ_LOG 		0x1F
#define SC_UNLOAD		0x80		/* phony - for int use only */
#define SC_BSPACE_FILE		0x81		/* phony - for int use only */
#define SC_SPACE_FILE		0x82		/* phony - for int use only */
#define SC_RETENSION		0x83		/* phony - for int use only */
#define SC_READ_APPEND		0x84		/* phony - for int use only */
#define SC_DENSITY1		0x85		/* phony - for int use only */
#define SC_DENSITY2		0x86		/* phony - for int use only */
#define SC_DENSITY3		0x87		/* phony - for int use only */
#define SC_DENSITY4		0x88		/* phony - for int use only */

/*
 * Supported tape device types plus default type for opening.
 * Types 10 - 13, are special (ancient too) drives.
 * Types 14 - 1f, are 1/4-inch cartridge drives.
 * Types 20 - 28, are 1/2-inch cartridge or reel drives.
 * Types 28+, are rdat (vcr) drives.
 */
#define ST_TYPE_INVALID		0x00
#define ST_TYPE_SYSGEN1		0x10	/* Sysgen with QIC-11 only */
#define ST_TYPE_SYSGEN		0x11	/* Sysgen with QIC-24 and QIC-11 */
#define ST_TYPE_DEFAULT		0x12	/* Who knows ? */
#define ST_TYPE_ADAPTEC		0x13	/* Adaptec */

#define ST_TYPE_EMULEX		0x14	/* Emulex MT-02 */
#define ST_TYPE_ARCHIVE		0x15	/* Archive QIC-150 */
#define ST_TYPE_WANGTEK		0x16	/* Wangtek QIC-150 */
#define ST_TYPE_ADSI		0x17	/* ADSI */

#define ST_TYPE_CDC		0x20	/* CDC */
#define ST_TYPE_FUJI		0x21	/* Fujitsu */
#define ST_TYPE_KENNEDY		0x22	/* Kennedy */
#define ST_TYPE_HP		0x23	/* HP */

#define ST_TYPE_EXABYTE		0x28	/* Exabyte */
#define ST_TYPE_SPARE		0x29	/* Spare */


/* Defines for supported drive options */
#define ST_VARIABLE		0x001	/* supports variable length I/O */
#define ST_QIC			0x002	/* QIC tape drive */
#define ST_REEL			0x004	/* 1/2-inch reel tape drive */
#define ST_BSF			0x008	/* Supports backspace file */
#define ST_BSR			0x010	/* Supports backspace record */
#define ST_NO_FSR		0x020	/* No forwardspace record */
#define ST_LONG_ERASE		0x040	/* Long Erase tape timeout required */
#define ST_NODISCON		0x080	/* No disconnect/reconnect support */
#define ST_NO_QIC24		0x100	/* No QIC-24 (for Sysgen) */
#define ST_AUTODEN_OVERRIDE	0x200	/* Auto-Density override flag */
#define ST_NO_POSITION		0x400	/* Inhibit seeks flag */


struct st_drive_table {
	char	name[16];		/* Name, for debug */
	char	length;			/* Length of vendor id */
	char	vid[24];		/* Vendor id and model */
	char	type;			/* Drive type for driver */
	short	bsize;			/* Block size */
	int	options;		/* Drive options */
	int	max_rretries;		/* Max read retries  */
	int	max_wretries;		/* Max write retries */
	u_char	density1;		/* density code (Low)  */
	u_char	density2;		/*   "      "          */
	u_char	density3;		/*   "      "          */
	u_char	density4;		/*   "      "   (High) */
	u_char	speed1;			/* speed code  */
	u_char	speed2;			/*   "     "   */
	u_char	speed3;			/*   "     "   */
	u_char	speed4;			/*   "     "   */
};
struct st_drive_table st_drivetab1[] = {
/* Emulex MT-02 controller for 1/4" cartridge */
	"Emulex", 2, "\000\000", ST_TYPE_EMULEX,
	512, ST_QIC,
	130, 130,
	0x84, 0x05, 0x05, 0x05,		0, 0, 0, 0,
/* Wangtek QIC-150 1/4" cartridge */
	"Wangtek", 7, "WANGTEK", ST_TYPE_WANGTEK,
	512, ST_QIC,
	400, 400,
	0x00, 0x00, 0x00, 0x00,		0, 0, 0, 0,
/* Archive QIC-150 1/4" cartridge */
	"Archive", 7, "ARCHIVE", ST_TYPE_ARCHIVE,
	512, ST_QIC,
	400, 400,
	0x00, 0x00, 0x00, 0x00,		0, 0, 0, 0,
/* ADSI T-100 controller for 1/4" cartridge */
	"Adsi", 4, "ADSI", ST_TYPE_ADSI,
	512, ST_QIC,
	400, 400,
	0x00, 0x00, 0x00, 0x00,		0, 0, 0, 0,

/* CDC 1/2" cartridge */
	"CDC", 3, "LMS", ST_TYPE_CDC,
	1024, (ST_QIC | ST_VARIABLE | ST_BSF | ST_LONG_ERASE),
	300, 300,
	0x00, 0x00, 0x00, 0x00,		0, 0, 0, 0,
/* Fujitsu 1/2" cartridge */
	"Fujitsu", 2, "\076\000", ST_TYPE_FUJI,
	1024, (ST_QIC | ST_VARIABLE | ST_BSF | ST_BSR | ST_LONG_ERASE),
	300, 300,
	0x00, 0x00, 0x00, 0x00,		0, 0, 0, 0,
/* Exabyte 8mm cartridge */
	"Exabyte", 7, "EXABYTE", ST_TYPE_EXABYTE,
	1024, (ST_VARIABLE | ST_BSF | ST_BSR | ST_LONG_ERASE),
	5000, 5000,
	0x00, 0x00, 0x00, 0x00,		0, 0, 0, 0,

/* Kennedy 1/2" reel */
	"Kennedy", 4, "KENNEDY", ST_TYPE_KENNEDY,
	10240, (ST_REEL | ST_VARIABLE | ST_BSF | ST_BSR),
	400, 400,
	0x01, 0x02, 0x03, 0x03,		0, 0, 0, 0,
/* HP 1/2" reel */
	"HP-88780", 13, "HP      88780", ST_TYPE_HP,
	10240, (ST_REEL | ST_VARIABLE | ST_BSF | ST_BSR),
	400, 400,
	0x01, 0x02, 0x03, 0xC3,		0, 0, 0, 0,
/* Spare */
	"Spare", 5, "SPARE", ST_TYPE_SPARE,
	1024, (ST_REEL | ST_VARIABLE),
	400, 400,
	0x00, 0x00, 0x00, 0x00,		0, 0, 0, 0,
};
#define MAX_TAPE_DEVICES \
	(sizeof(st_drivetab1)/sizeof(st_drivetab1[0]))

/*
 * Exceptions to the above drive table.  These drives/controllers
 * require special processing.  Note, do not change the order of
 * this table!
 */
#define IS_DEFAULT(dsi)		(dsi->un_ctype == ST_TYPE_DEFAULT)
#define IS_SYSGEN(dsi)		(dsi->un_ctype == ST_TYPE_SYSGEN)
#define IS_EMULEX(dsi)		(dsi->un_ctype == ST_TYPE_EMULEX)
#define IS_EXABYTE(dsi)		(dsi->un_ctype == ST_TYPE_EXABYTE)

struct st_drive_table st_drivetab2[] = {
/* Sysgen controller for 1/4" cartridge (QIC-24 and QIC-11) */
	"Sysgen", 0, "\000", ST_TYPE_SYSGEN,
	512, (ST_QIC | ST_NO_FSR | ST_NODISCON),
	130, 130,
	0x26, 0x27, 0x27, 0x27,		0, 0, 0, 0,
/* Sysgen controller for 1/4" cartridge (QIC-11 only) */
	"Sysgen11", 0, "\000", ST_TYPE_SYSGEN,
	512, (ST_QIC | ST_NODISCON | ST_NO_QIC24),
	130, 130,
	0x00, 0x00, 0x00, 0x00,		0, 0, 0, 0,

/* Adaptec ACB-3530A controller for 1/4" cartridge */
	"Adaptec", 5, "ADAPTEC", ST_TYPE_ADAPTEC,
	512, (ST_QIC | ST_NO_FSR),
	130, 130,
	0x04, 0x00, 0x00, 0x00,		0, 0, 0, 0,

/* Default values for unknown fixed-length tape drive/controller */
	"Unknown", 0, " ", ST_TYPE_DEFAULT,
	512, (ST_QIC | ST_LONG_ERASE),
	400, 400,
	0x00, 0x00, 0x00, 0x00,		0, 0, 0, 0,
/* Default values for unknown variable-length tape drive/controller */
	"Var. Unknown", 0, " ", ST_TYPE_DEFAULT,
	1024, (ST_VARIABLE | ST_LONG_ERASE),
	400, 400,
	0x00, 0x00, 0x00, 0x00,		0, 0, 0, 0,
};

/*
 * defines for SCSI tape CDB.
 */
#undef	t_code
#undef	high_count
#undef	mid_count
#undef	low_count
struct	scsi_cdb6 {		/* scsi command description block */
	u_char	cmd;		/* command code */
	u_char	lun	: 3;	/* logical unit number */
	u_char	t_code	: 5;	/* high part of address */
	u_char	high_count;	/* middle part of address */
	u_char	mid_count;	/* low part of address */
	u_char	low_count;	/* block count */
	u_char	vu_57	: 1;	/* vendor unique (byte 5 bit 7) */
	u_char	vu_56	: 1;	/* vendor unique (byte 5 bit 6) */
	u_char		: 4;	/* reserved */
	u_char	fr	: 1;	/* flag request (interrupt at completion) */
	u_char	link	: 1;	/* link (another command follows) */
};


/*
 * Tape error rate log (HP-88780).
 * This is needed for collecting soft error rate info.
 */
struct st_log {
	u_char	page_code;	/* Page code */
	u_char	length[2];	/* Page length */
	u_char	entry_num;	/* Current entry number */
	u_char	log_entries;	/* Number of log entries */
	u_char	rsvd1;		/* Currently displayed log */
	u_char	density;	/* Density */
	u_char	wr_hard[2];	/* Write hard errors */
	u_char	wr_soft[2];	/* Write soft errors */
	u_char	wr_data[6];	/* Data bytes written */
	u_char	rd_hard[2];	/* Read hard errors */
	u_char	rd_soft[2];	/* Read soft errors */
	u_char	rd_data[6];	/* Data bytes read */
	u_char	rsvd2;		/* For even byte alignment */
};

/*
 * Parameter list for the MODE_SELECT and MODE_SENSE commands.
 * The parameter list contains a header, followed by zero or more
 * block descriptors, followed by vendor unique parameters, if any.
 * Note, only one 8-byte block descriptor is used for 1/2-inch SCSI
 * tape devices (e.g. CDC HI/TC, HP SCSI-2, and Kennedy).
 */
#define MS_BD_LEN	8
struct st_ms_mspl {
	u_char	reserved1;	/* reserved, sense data length */
	u_char	reserved2;	/* reserved, medium type */
	u_char	wp	:1;	/* write protected */
	u_char	bufm	:3;	/* buffered mode */
	u_char	speed	:4;	/* speed */
	u_char	bd_len;		/* block length in bytes */
	u_char	density;	/* density code */
	u_char	high_nb;	/* number of logical blocks on the medium */
	u_char	mid_nb;		/* that are to be formatted with the density */
	u_char	low_nb;		/* code and block length in block descriptor */
	u_char	reserved;	/* reserved */
	u_char	high_bl;	/* block length */
	u_char	mid_bl;		/*   "      "   */
	u_char	low_bl;		/*   "      "   */
};
struct st_ms_exabyte {
	u_char	reserved1;	/* reserved, sense data length */
	u_char	reserved2;	/* reserved, medium type */
	u_char	wp	:1;	/* write protected */
	u_char	bufm	:3;	/* buffered mode */
	u_char	speed	:4;	/* speed */
	u_char	bd_len;		/* block length in bytes */
	u_char	density;	/* density code */
	u_char	high_nb;	/* number of logical blocks on the medium */
	u_char	mid_nb;		/* that are to be formatted with the density */
	u_char	low_nb;		/* code and block length in block descriptor */
	u_char	reserved;	/* reserved */
	u_char	high_bl;	/* block length */
	u_char	mid_bl;		/*   "      "   */
	u_char	low_bl;		/*   "      "   */
	u_char	optional1;	/* optional vendor unique byte */
};


/*
 * SCSI tape REQUEST SENSE parameter block.  Note,
 * this structure should have an even number of bytes to
 * eliminate any byte packing problems with our host adapters.
 */
struct	st_sense {		/* scsi tape extended sense for error class 7 */
	/* byte 0 */
	u_char	adr_val	: 1;	/* sense data is valid */
	u_char		: 7;	/* fixed at binary 1110000 */
	/* byte 1 */
	u_char	seg_num;	/* segment number, applies to copy cmd only */
	/* byte 2 */
	u_char	fil_mk	: 1;	/* file mark on device */
	u_char	eom	: 1;	/* end of media */
	u_char	ili	: 1;	/* incorrect length indicator */
	u_char		: 1;	/* reserved */
	u_char	key	: 4;	/* sense key, see below */
	/* bytes 3 through 6 */
	u_char	info_0;		/* sense information byte 1 */
	u_char	info_1;		/* sense information byte 2 */
	u_char	info_2;		/* sense information byte 3 */
	u_char	info_3;		/* sense information byte 4 */
	/* bytes 7 through 13 */
	u_char	add_len;	/* number of additional bytes */
	u_char	optional_8;	/* search/copy src sense only */
	u_char	optional_9;	/* search/copy dst sense only */
	u_char	optional_10;	/* search/copy only */
	u_char	optional_11;	/* search/copy only */
	u_char	error;		/* error code */
	u_char	error1;		/* error code qualifier */
	/* bytes 14 through 27 */
	u_char	optional_14;	/* reserved */
	u_char	optional_15;	/* reserved */
	u_char	optional_16;	/* reserved */
	u_char	optional_17;	/* reserved */
	u_char	optional_18;	/* reserved */
	u_char	optional_19;	/* reserved */
	u_char	optional_20;	/* reserved */
	u_char	optional_21;	/* reserved */
	u_char	optional_22;	/* reserved */
	u_char	optional_23;	/* reserved */
	u_char	optional_24;	/* reserved */
	u_char	optional_25;	/* reserved */
	u_char  optional_26;	/* reserved */
	u_char  optional_27;	/* reserved */

};

#ifdef	ST_SYSGEN
/*
 * Sense info returned by sysgen controllers.  Note,
 * this structure should always be 16 bytes or the controller
 * will not clear it's error condition.  Also, you must
 * always follow an error condition with a request sense cmd.
 */
struct  sysgen_sense {
	/* Bytes 0 - 3  */
	u_char  disk_sense[4];		/* sense data from disk */
	/* byte 4 */
	u_char  valid4		:1;	/* some other bit set in this byte */
	u_char  no_cart		:1;	/* no cartrige, or removed */
	u_char  not_ready	:1;	/* drive not present */
	u_char  write_prot	:1;	/* write protected */
	u_char  eot		:1;	/* end of last track */
	u_char  data_err	:1;	/* unrecoverable data error */
	u_char  no_err		:1;	/* data transmitted not in error */
	u_char file_mark	:1;	/* file mark detected */
	/* byte 5 */
	u_char  valid5		:1;	/* some other bit set in this byte */
	u_char  illegal		:1;	/* illegal command */
	u_char  no_data		:1;	/* unable to find data */
	u_char  retries		:1;	/* 8 or more retries needed */
	u_char  bot		:1;	/* beginning of tape */
	u_char			:2;	/* reserved */
	u_char  reset		:1;	/* power-on or reset since last op */
	/* bytes 6 through 9 */
	short   retry_ct;		/* retry count */
	short   underruns;		/* number of underruns */
	/* bytes 10 through 15 */
	u_char   disk_xfer[3];		/* no. blks in last disk operation */
	u_char   tape_xfer[3];		/* no. blks in last tape operation */
};
#endif	ST_SYSGEN

/* structure for MTIOCGET - obsolete version */
#define	STIOCGET	_IOR(m, 2, struct st_mtget)
struct	st_mtget {
	short	mt_type;	/* type of magtape device */
	short	mt_dsreg;	/* drive status register */
	short	mt_erreg;	/* error register */
	short	mt_resid;	/* residual count */
	daddr_t	mt_fileno;	/* file number of current position */
	daddr_t	mt_blkno;	/* block number of current position */
};

/*
 * Macros for getting information from the sense data returned
 * by the various SCSI 1/2-inch tape controllers.  Note, this
 * use byte 2 of the extended sense descriptor block to mimimize
 * SCSI controller dependencies.
 */
#define ST_FILE_MARK(dsi, sense) \
	(dsi->un_ctype != 0  && \
	 (((struct st_sense *)sense)->fil_mk) ? 1 : 0)

#define ST_END_OF_TAPE(dsi, sense) \
	(dsi->un_ctype != 0  && \
	 (((struct st_sense *)sense)->eom) ? 1 : 0)

#define ST_LENGTH(dsi, sense) \
	(dsi->un_ctype != 0  && \
	 (((struct st_sense *)sense)->ili) ? 1 : 0)
u_char	speed4;			/*   "     "   */
};
struct st_drive_table st_drivetab1[] = {
/* Emulex MT-02 controller for 1/4" cartridge */
	"Emulex", 2, "\000\000", ST_TYPE_EMULEX,
	512, ST_QIC,
	130, 130,
	0x84, 0x05, 0x05, 0x05,		0, 0, 0, 0,
/* Wangtek QIC-150 1/4./share/sys/sundev/swreg.h                                                                             444       0      12        26622  4423267275  10752                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)swreg.h 1.8 89/03/30 SMI	*/

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */

/*
 * Register definitions for the Sun3/50 onboard and Sun3 32-bit VME version 
 * of the SCSI control logic interface. Both of these interfaces use the
 * NCR 5380 SBC (SCSI Bus Controller). The main difference between these
 * two interfaces is the dma interface. The Sun3/50 onboard version uses
 * the AMD 9516 UDC (Universal DMA Controller).
 * Since the NCR 5380 SBC chip is used, both interfaces support the SCSI
 * disconnect/reconnect capability thus implying support for the scsi
 * arbitration phase.
 */

/*
 * NCR 5380 SBC (SCSI Bus Controller) Registers.
 */

/* read of sbc registers yields the following: */
struct sbc_read_reg {
	u_char		cdr;	/* current data register */
	u_char		icr;	/* initiator command register */
	u_char		mr;	/* mode register */
	u_char		tcr;	/* target command register */
	u_char		cbsr;	/* current bus status register */
	u_char		bsr;	/* bus and status register */
	u_char		idr;	/* input data register */
	u_char		clr;	/* read to clear parity error, */
				/* interrupt request, and busy */
				/* failure bits in the bsr */
};

/* write of sbc registers yields the following: */
struct sbc_write_reg {
	u_char		odr;	/* output data register */
	u_char		icr;	/* initiator command register */
	u_char		mr;	/* mode register */
	u_char		tcr;	/* target command register */
	u_char		ser;	/* select/reselect enable register */
	u_char		send;	/* start dma for target/initiator send xfer */
	u_char		trcv;	/* start dma for target receive transfer */
	u_char		ircv;	/* start dma for initiator receive transfer */
};

/* bits in the sbc initiator command register */
#define	SBC_ICR_RST	0x80	/* (r/w) assert reset */
#define SBC_ICR_AIP	0x40	/* (r)   arbitration in progress */
#define SBC_ICR_TEST	0x40	/* (w)   test mode, disables output */
#define SBC_ICR_LA	0x20	/* (r)   lost arbitration */
#define SBC_ICR_DE	0x20	/* (w)   differential enable */
#define SBC_ICR_ACK	0x10	/* (r/w) assert acknowledge */
#define SBC_ICR_BUSY	0x08	/* (r/w) assert busy */
#define SBC_ICR_SEL	0x04	/* (r/w) assert select */
#define SBC_ICR_ATN	0x02	/* (r/w) assert attention */
#define SBC_ICR_DATA	0x01	/* (r/w) assert data bus */

/* bits in the sbc mode register (same on read or write) */
#define SBC_MR_BDMA	0x80	/* block mode dma */
#define SBC_MR_TRG	0x40	/* target mode */
#define SBC_MR_EPC	0x20	/* enable parity check */
#define SBC_MR_EPI	0x10	/* enable parity interrupt */
#define SBC_MR_EEI	0x08	/* enable eop interrupt */
#define SBC_MR_MBSY	0x04	/* monitor busy */
#define SBC_MR_DMA	0x02	/* dma mode */
#define SBC_MR_ARB	0x01	/* arbitration mode */

/* bits in the sbc target command register */
#define SBC_TCR_LAST	0x80	/* Last byte sent */
#define SBC_TCR_REQ	0x08	/* assert request */
#define SBC_TCR_MSG	0x04	/* assert message */
#define SBC_TCR_CD	0x02	/* assert command/data */
#define SBC_TCR_IO	0x01	/* assert input/output */

/* settings of tcr to reflect different information transfer phases */
#define TCR_COMMAND	(SBC_TCR_CD)
#define TCR_MSG_OUT	(SBC_TCR_MSG | SBC_TCR_CD)
#define TCR_DATA_OUT	0
#define TCR_STATUS	(SBC_TCR_CD | SBC_TCR_IO)
#define TCR_MSG_IN	(SBC_TCR_MSG | SBC_TCR_CD | SBC_TCR_IO)
#define TCR_DATA_IN	(SBC_TCR_IO)
#define TCR_UNSPECIFIED	(SBC_TCR_MSG)

/* bits in the sbc current bus status register */
#define SBC_CBSR_RST	0x80	/* reset */
#define SBC_CBSR_BSY	0x40	/* busy */
#define SBC_CBSR_REQ	0x20	/* request */
#define SBC_CBSR_MSG	0x10	/* message */
#define SBC_CBSR_CD	0x08	/* command/data */
#define SBC_CBSR_IO	0x04	/* input/output */
#define SBC_CBSR_SEL	0x02	/* select */
#define SBC_CBSR_DBP	0x01	/* data bus parity */
#define SBC_CBSR_RESEL	(SBC_CBSR_SEL | SBC_CBSR_IO)

/* scsi bus signals reflecting different information transfer phases */
#define CBSR_PHASE_BITS	(SBC_CBSR_CD | SBC_CBSR_MSG | SBC_CBSR_IO)
#define PHASE_COMMAND	(SBC_CBSR_CD)
#define PHASE_MSG_OUT	(SBC_CBSR_MSG | SBC_CBSR_CD)
#define PHASE_DATA_OUT	0
#define PHASE_STATUS	(SBC_CBSR_CD | SBC_CBSR_IO)
#define PHASE_MSG_IN	(SBC_CBSR_MSG | SBC_CBSR_CD | SBC_CBSR_IO)
#define PHASE_DATA_IN	(SBC_CBSR_IO)

#define PHASE_SPURIOUS		0x80	/* for driver use only */
#define PHASE_ARBITRATION	0x81	/* for driver use only */
#define PHASE_IDENTIFY		0x82	/* for driver use only */
#define PHASE_SAVE_PTR		0x83	/* for driver use only */
#define PHASE_RESTORE_PTR	0x84	/* for driver use only */
#define PHASE_DISCONNECT	0x85	/* for driver use only */
#define PHASE_RECONNECT		0x86	/* for driver use only */
#define PHASE_CMD_CPLT		0x87	/* for driver use only */

/* bits in the sbc bus and status register */
#define SBC_BSR_EDMA	0x80	/* end of dma */
#define SBC_BSR_RDMA	0x40	/* dma request */
#define SBC_BSR_PERR	0x20	/* parity error */
#define SBC_BSR_INTR	0x10	/* interrupt request */
#define SBC_BSR_PMTCH	0x08	/* phase match */
#define SBC_BSR_BERR	0x04	/* busy error */
#define SBC_BSR_ATN	0x02	/* attention */
#define SBC_BSR_ACK	0x01	/* acknowledge */

/*
 * AMD 9516 UDC (Universal DMA Controller) Registers.
 * Sun3/50 only.
 */

/* addresses of the udc registers accessed directly by driver */
#define UDC_ADR_MODE		0x38	/* master mode register */
#define UDC_ADR_COMMAND		0x2e	/* command register (write only) */
#define UDC_ADR_STATUS		0x2e	/* status register (read only) */
#define UDC_ADR_CAR_HIGH	0x26	/* chain addr reg, high word */
#define UDC_ADR_CAR_LOW		0x22	/* chain addr reg, low word */
#define UDC_ADR_CARA_HIGH	0x1a	/* cur addr reg A, high word */
#define UDC_ADR_CARA_LOW	0x0a	/* cur addr reg A, low word */
#define UDC_ADR_CARB_HIGH	0x12	/* cur addr reg B, high word */
#define UDC_ADR_CARB_LOW	0x02	/* cur addr reg B, low word */
#define UDC_ADR_CMR_HIGH	0x56	/* channel mode reg, high word */
#define UDC_ADR_CMR_LOW		0x52	/* channel mode reg, low word */
#define UDC_ADR_COUNT		0x32	/* number of words to transfer */

/* 
 * For a dma transfer, the appropriate udc registers are loaded from a 
 * table in memory pointed to by the chain address register.
 */
struct udc_table {
	u_short			rsel;	/* tells udc which regs to load */
	u_short			haddr;	/* high word of main mem dma address */
	u_short			laddr;	/* low word of main mem dma address */
	u_short			count;	/* num words to transfer */
	u_short			hcmr;	/* high word of channel mode reg */
	u_short			lcmr;	/* low word of channel mode reg */
};

/* indicates which udc registers are to be set based on info in above table */
#define UDC_RSEL_RECV		0x0182
#define UDC_RSEL_SEND		0x0282

/* setting of chain mode reg: selects how the dma op is to be executed */
#define UDC_CMR_HIGH		0x0040	/* high word of channel mode reg */
#define UDC_CMR_LSEND		0x00c2	/* low word of cmr when send */
#define UDC_CMR_LRECV		0x00d2	/* low word of cmr when receiving */

/* setting for the master mode register */
#define UDC_MODE		0xd	/* enables udc chip */

/* setting for the low byte in the high word of an address */
#define UDC_ADDR_INFO		0x40	/* inc addr after each word is dma'd */

/* udc commands */
#define UDC_CMD_STRT_CHN	0xa0	/* start chaining */
#define UDC_CMD_CIE		0x32	/* channel 1 interrupt enable */
#define UDC_CMD_RESET		0x00	/* reset udc, same as hdw reset */

/* bits in the udc status register */
#define UDC_SR_CIE		0x8000	/* channel interrupt enable */
#define UDC_SR_IP		0x2000	/* interrupt pending */
#define UDC_SR_CA		0x1000	/* channel abort */
#define UDC_SR_NAC		0x0800	/* no auto reload or chaining*/
#define UDC_SR_WFB		0x0400	/* waiting for bus */
#define UDC_SR_SIP		0x0200	/* second interrupt pending */
#define UDC_SR_HM		0x0040	/* hardware mask */
#define UDC_SR_HRQ		0x0020	/* hardware request */
#define UDC_SR_MCH		0x0010	/* match on upper comparator byte */
#define UDC_SR_MCL		0x0008	/* match on lower comparator byte */
#define UDC_SR_MC		0x0004	/* match condition ended dma */
#define UDC_SR_EOP		0x0002	/* eop condition ended dma */
#define UDC_SR_TC		0x0001	/* termination of count ended dma */

/*
 * Misc defines 
 */

/* arbitraty retry count */
#define SI_ARB_RETRIES		10
#define SI_SEL_RETRIES		4

/* scsi timer values, all in microseconds */
#define SI_ARBITRATION_DELAY	3	/*  1 us */
#define SI_BUS_CLEAR_DELAY	1	/*  1 us */
#define SI_BUS_SETTLE_DELAY	1	/*  1 us */
#define SI_UDC_WAIT		1	/*  1 us */
#define SI_ARB_WAIT		5	/* 10 us */
#define SI_RESET_DELAY		4000000	/*  1 us  ( 4  Sec.) */
#define SI_LONG_WAIT		3000000	/* 10 us  (30  Sec.) */
#define SI_WAIT_COUNT		1000000	/* 10 us  (10  Sec.) */
#define SI_SHORT_WAIT		25000	/* 10 us  (.25 Sec.) */
#define SI_PHASE_WAIT		10	/* 10 us */

/* directions for dma transfers */
#define SI_RECV_DATA		0
#define SI_SEND_DATA		1
#define SI_NO_DATA		2

/* initiator's scsi device id */
#define	SI_HOST_ID		0x80

/* possible values for the address modifier, sun3 vme version only */
#define VME_SUPV_DATA_24	0x3d00

/* must massage dvma addresses for Sun3/50 hardware */
#define DVMA_OFFSET	(int)(DVMA - (char *)KERNELBASE)

/* 
 * Register layout for the SCSI control logic interface.
 * Some of these registers apply to only one interface and some
 * apply to both. The registers which apply to the Sun3/50 onboard 
 * version only are udc_rdata and udc_raddr. The registers which
 * apply to the Sun3 vme version only are dma_addr, dma_count, bpr,
 * iv_am, and bcrh. Thus, the sbc registers, fifo_data, bcr, and csr 
 * apply to both interfaces.
 * One other feature of the vme interface: a write to the dma count 
 * register also causes a write to the fifo byte count register and
 * vis versa.
 */

#define	SET_DMA_ADDR(swr,val)	(swr)->dma_addr = val;
#define	GET_DMA_ADDR(swr)	(swr)->dma_addr;
#define	SET_DMA_COUNT(swr,val)	(swr)->dma_count = val;
#define	GET_DMA_COUNT(swr)	(swr)->dma_count;


struct scsi_sw_reg {
	union {
		struct sbc_read_reg	read;	/* scsi bus ctlr, read reg */
		struct sbc_write_reg	write;	/* scsi bus ctlr, write reg */
	} sbc;
#define sbc_rreg sbc.read
#define SBC_RD swr -> sbc.read
#define sbc_wreg sbc.write
#define SBC_WR swr -> sbc.write
	u_int			dma_addr;	/* dma address register */
	u_int			dma_count;	/* dma count register */
	u_int			bcr;		/* not really there */
	u_int			csr;		/* control/status register */
	u_int			bpr;		/* byte pack register */
};

/*
 * Status Register.
 * Note:
 *	(r)	indicates bit is read only.
 *	(rw)	indicates bit is read or write.
 *	(v)	vme host adaptor interface only.
 *	(o)	sun3/50 onboard host adaptor interface only.
 *	(b)	both vme and sun3/50 host adaptor interfaces.
 */
#define SI_CSR_DMA_ACTIVE	0x8000	/* (r,o) dma transfer active */
#define SI_CSR_DMA_CONFLICT	0x4000	/* (r,b) reg accessed while dmaing */
#define SI_CSR_DMA_BUS_ERR	0x2000	/* (r,b) bus error during dma */
#define SI_CSR_ID		0x1000	/* (r,b) 0 for 3/50, 1 for SCSI-3, */
					/* 0 if SCSI-3 unmodified */
#define SI_CSR_FIFO_FULL	0x0800	/* (r,b) fifo full */
#define SI_CSR_FIFO_EMPTY	0x0400	/* (r,b) fifo empty */
#define SI_CSR_SBC_IP		0x0200	/* (r,b) sbc interrupt pending */
#define SI_CSR_DMA_IP		0x0100	/* (r,b) dma interrupt pending */
#define SI_CSR_LOB		0x00c0	/* (r,v) number of leftover bytes */
#define SI_CSR_LOB_THREE	0x00c0	/* (r,v) three leftover bytes */
#define SI_CSR_LOB_TWO		0x0080	/* (r,v) two leftover bytes */
#define SI_CSR_LOB_ONE		0x0040	/* (r,v) one leftover byte */
#define SI_CSR_BPCON		0x0020	/* (rw,v) byte packing control */
					/* dma is in 0=longwords, 1=words */
#define SI_CSR_DMA_EN		0x0010	/* (rw,v) dma enable */
#define SI_CSR_SEND		0x0008	/* (rw,b) dma dir, 1=to device */
#define SI_CSR_INTR_EN		0x0004	/* (rw,b) interrupts enable */
#define SI_CSR_FIFO_RES		0x0002	/* (rw,b) inits fifo, 0=reset */
#define SI_CSR_SCSI_RES		0x0001	/* (rw,b) reset sbc and udc, 0=reset */

(Universal DMA Controller) Registers.
 * Sun3/50 only.
 */

/* addresses of the udc registers accessed directl./share/sys/sundev/xdreg.h                                                                             444       0      12        12714  4423267305  10723                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)xdreg.h 1.14 88/09/22 SMI	*/

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */
#ifndef _XDREG_
#define _XDREG_

/*
 * Xylogics 7053 declarations
 */

/*
 * IOPB - in real memory so we can use bit fields
 */
struct xdiopb {
		/* BYTE 0 */
	u_char	xd_iserr	:1;	/* error indicator */
	u_char	xd_complete	:1;	/* completion code valid */
	u_char	xd_chain	:1;	/* command chaining */
	u_char	xd_sgm		:1;	/* scatter/gather mode */
	u_char	xd_cmd		:4;	/* command */
		/* BYTE 1 */
	u_char	xd_errno;		/* error number */
		/* BYTE 2 */
	u_char	xd_dstat;		/* drive status */
		/* BYTE 3 */
	u_char	xd_resvd;		/* reserved */
		/* BYTE 4 */
	u_char	xd_subfunc;		/* subfunction code */
		/* BYTE 5 */
	u_char	xd_fixd		:1;	/* fixed/removable media */
	u_char	xd_hdp		:1;	/* hold dual-port drive */
	u_char	xd_psel		:1;	/* priority select (dual-port) */
	u_char	xd_bht		:1;	/* black hole transfer */
	u_char			:1;
	u_char	xd_unit		:3;	/* unit number */
		/* BYTE 6 */
	u_char	xd_llength	:5;	/* link length (scatter/gather) */
#define xd_drparam xd_llength		/* used for set drive params */
#define xd_interleave xd_llength	/* used for set format params */
	u_char	xd_intpri	:3;	/* interrupt priority */
		/* BYTE 7 */
	u_char	xd_intvec;		/* interrupt vector */
	u_short	xd_nsect;		/* 8,9: sector count */
	u_short	xd_cylinder;		/* a,b: cylinder number */
#define xd_throttle xd_cylinder		/* used for write ctlr params */
	u_char	xd_head;		/* c: head number */
	u_char	xd_sector;		/* d: sector number */
	u_char	xd_bufmod;		/* e: buffer address modifier */
#define xd_hsect xd_bufmod		/* used for read drive status */
#define xd_ctype xd_bufmod		/* used for read ctlr params */
		/* BYTE F */
	u_char	xd_prio		:1;	/* high priority iopb */
	u_char			:1;
	u_char	xd_nxtmod 	:6;	/* next iopb addr modifier */
	u_int	xd_bufaddr;		/* 10-13: buffer address */
#define xd_promrev xd_bufaddr		/* used for read ctlr params */
	struct xdiopb *xd_nxtaddr;	/* 14-17: next iopb address */
	u_short	xd_cksum;		/* 18,19: iopb checksum */
	u_short	xd_eccpat;		/* 1a,1b: ECC pattern */
	u_short	xd_eccaddr;		/* 1c,1d: ECC address */
};

/*
 * Commands -- the values are shifted by a byte so they can be folded
 * with the subcommands into a single variable.
 */
#define XD_NOP		0x000	/* nop */
#define XD_WRITE	0x100	/* write */
#define XD_READ		0x200	/* read */
#define XD_SEEK		0x300	/* seek */
#define XD_RESTORE	0x400	/* drive reset */
#define XD_WPAR		0x500	/* write params */
#define XD_RPAR		0x600	/* read params */
#define XD_WEXT		0x700	/* extended write */
#define XD_REXT		0x800	/* extended read */
#define XD_DIAG		0x900	/* diagnostics */
#define XD_ABORT	0xa00	/* abort */

/*
 * Subcommands
 */
	/*
	 * seek
	 */
#define XD_RCA		0x00	/* report current address */
#define XD_SRCA		0x01	/* seek and report current address */
#define XD_SSRCI	0x02	/* start seek and report completion */
	/*
	 * read and write parameters
	 */
#define XD_CTLR		0x00	/* controller parameters */
#define XD_DRIVE	0x80	/* drive parameters */
#define XD_FORMAT	0x81	/* format parameters */
#define XD_DSTAT	0xa0	/* drive status (read only) */
	/*
	 * extended read and write
	 */
#define XD_THEAD	0x80	/* track headers */
#define XD_FORMVER	0x81	/* format (write), verify (read) */
#define XD_HDE		0x82	/* header, data and ecc */
#define XD_DEFECT	0xa0	/* defect map */
#define XD_EXTDEF	0xa1	/* extended defect map */

/*
 * drive status bits
 */
#define XD_READY	0x01
#define XD_ONCYL	0x02
#define XD_SKERR	0x04
#define XD_DFAULT	0x08
#define XD_WPROT	0x10
#define XD_DPBUSY	0x80

/*
 * Miscellaneous defines.
 */
#define XD_THROTTLE	32		/* 32 words/transfer */
#define XDUNPERC	4		/* max # of units per controller */

/*
 * Structure definition and macros used for a sector header.
 */
#define XD_HDRSIZE	4		/* bytes/sector header */

struct xdhdr {
	/* Byte 0 */
	u_char	xdh_cyl_lo;
	/* Byte 1 */
	u_char	xdh_cyl_hi;
	/* Byte 2 */
	u_char	xdh_head;
	/* Byte 3 */
	u_char	xdh_sec;
};

#define	XD_CYL_LO(n)	((int)(n) & 0xff)
#define	XD_CYL_HI(n)	(((int)(n) & 0xff00) >> 8)
#define	XD_GET_CYL(h)	(((h)->xdh_cyl_hi << 8) | (h)->xdh_cyl_lo)


/*
 * Bits that are to be used for setting controller parameters
 *
 * iopb bytes 0x8 and 0x9 are mushed together here as one short.
 *
 */

	/* iopb byte 0x8 */
#define	XD_AUD	0x8000	/* auto update mode. If false, update still */
			/* occurs on error                          */
#define	XD_LWRD	0x4000	/* 32bit xfer mode if on */
#define	XD_DACF	0x2000	/* disable VMEbus ACFAIL* recognition */
#define	XD_ICS	0x1000	/* IOPB checksum done by 7053 */
#define	XD_EDT	0x0800	/* Enable DMA timeout */
#define	XD_NPRM	0x0400	/* Non-privileged register access mode */
/*		0x0200	   Reserved */
/*		0x0100	   Reserved */
	/* iopb byte 0x9 */
#define	XD_TDTM	0x00c0	/* Mask for throttle dead time value - 2 bits */
#define	xd_tdtv(x)	(((x)&0x3)<<6)
/*		0x0020	   Reserved */
#define	XD_ROR	0x0010	/* enable VMEbus Release-On-Request */
/*		0x0008	   Reserved */
/*		0x0004	   Reserved */
/*		0x0002	   Reserved */
#define	XD_DRA	0x0001	/* Disable Read-Ahead on 7053 */


	/* iopb byte 0xa */
#define	XD_OVS	0x80	/* Enable overlapped seeks */
#define	XD_ESWO	0x40	/* (undocumented feature) enable elevator seeks */
			/* and write optimization                       */
#define XD_NOQD	0x20	/* if set disables queue delays */   
#define	XD_ASR	0x10	/* Automatic Seek Retry */
/*		0x08	   Reserved */
#define	XD_RBC	0x04	/* Retry Before Correction */
#define	XD_ECC2	0x02	/* ECC Mode 2 */
#define	XD_ECC1	0x01	/* ECC Mode 1 */	
#define	XD_ECC0	0x00	/* ECC Mode 0 */

#endif _XDREG_
xd_llength	:5;	/* link length (scatter/gather) */
#d./share/sys/sundev/vuid_event.h                                                                        444       0      12        30374  4423267301  11760                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)vuid_event.h 1.9 89/03/17 SMI	*/

/*
 * Copyright (c) 1985 by Sun Microsystems, Inc.
 */

#ifndef	__VUID_EVENT_H__
#define	__VUID_EVENT_H__

#ifdef	COMMENT
This file describes a virtual user input device (vuid) interface.  This
is an interface between input devices and their clients.  The interface
defines an idealized user input device that may not correspond to any
existing physical collection of input devices.

It is targeted to input devices that gather command data from humans,
e.g., mice, keyboards, tablets, joysticks, light pens, knobs, sliders,
buttons, ascii terminals, etc.  The vuid interface is specifically not
designed to support input devices that produce voluminous amounts of
data, e.g., input scanners, disk drives, voice packets.

Here are some of the properties that are expected of a typical client
of vuid:

	The client has a richer user interface than can be supported by
	a simple ascii terminal.

	The client serializes multiple input devices being used
	by the user into a single stream of events.

	The client preserves the entire state of its input so that
	it may query this state.

Here are some features that viud provides to its clients:

	A client may extend the capabilities of the predefined vuid by
	adding input devices.  A client wants to be able to do this in
	a way that fits smoothly with its existing input paradigm.

	A client can write its code to be input device independent.  A
	client can replace the underlaying physical devices and not
	have to be concerned.  In fact, the vuid interface doesn't
	really care about physical devices.  One physical device can
	masquerade a many logical devices and many physical devices can
	look like a single logical device.

This file defines the protocol that makes up the virtual user input
device.  This includes:

	The vuid station codes and there meanings.

	The form by which changes to vuid stations, i.e., firm events,
	are communicated to clients (typically via the read system
	call).

	The form by which clients send commands to input devices that
	support the vuid (typically via an ioctl system call to send
	vuid instead of a native byte stream).
	
Explicitly, this file does not define:

	How to store the state of the vuid
	(see ../sunwindowdev/vuid_state.h).
	
	How to dynamically allocate additional vuid segments in order
	to extend the vuid (one could statically allocate additional
	vuid segments by treating this file as the central registry
	of vuid segments).
	
#endif	COMMENT

/*
 * VUID_SEG_SIZE is the size of a virtual user input "device" address space
 * segment.
 */
#define	VUID_SEG_SIZE	(256)

/*
 * This is the central registry of vuitual user input devices.
 * To allocate a new vuid:
 * 
 *	o Choose an unused portion of the address space.
 *	  Vuids from 0x00 to 0x7F are reserved for Sun implementers.
 *	  Vuids from 0x80 to 0xFF are reserved for Sun customers.
 *
 *	o Note the new device with a *_DEVID define.  Breifly describe
 *	  the purpose/usage of the device.  Point to the place where
 *	  more information can be found.
 *
 *	o Note the new device with a VUID_* entry in the Vuid_device
 *	  enumeration.
 *
 *	o List the specific event codes in another header file that is
 *	  specific to the new device (ASCII_DEVID, TOP_DEVID &
 *	  WORKSTATION_DEVID events are listing here for historical
 *	  reasons).
 */

#define	ASCII_DEVID		0x00
	/* Ascii codes, which include META codes (see below) */
#define	TOP_DEVID		0x01
	/* Top codes, which is ASCII with the 9th bit on (see below) */
/* ... Sun implementers add new device ids here ... */
#define DIAL_DEVID              0x7B 
        /* Dial events from Sun dial box */ 
#define SUNVIEW_DEVID           0x7C 
	/* Sunview Semantic events */ 
#define	PANEL_DEVID		0x7D
	/* Panel subwindow package event codes passed around internal
	   to the panel package (see <suntool/panel.h>) */
#define	SCROLL_DEVID		0x7E
	/* Scrollbar package event codes passed to scrollbar clients on
	   interesting scrollbar activity (see <suntool/scrollbar.h>) */
#define	WORKSTATION_DEVID	0x7F
	/* Virtual keyboard and locator (mouse) related event codes
	   that describe a basic "workstation" device collection (see below).
	   This device is a bit of a hodge podge for historical reasons;
	   the middle of the address space has SunWindows related events
	   in it (see <sunwindow/win_input.h>), and the virtual keyboard
	   and virtual locator are thrown together. */
/* ... Sun customers add new device ids here ... */
#define	LAST_DEVID		0xFF
	/* No more device ids beyond LAST_DEVID */

typedef	enum vuid_device {
	VUID_ASCII = ASCII_DEVID,
	VUID_TOP = TOP_DEVID,
	VUID_DIAL = DIAL_DEVID,
        VUID_SUNVIEW = SUNVIEW_DEVID,
	VUID_PANEL = PANEL_DEVID,
	VUID_SCROLL = SCROLL_DEVID,
	VUID_WORKSTATION = WORKSTATION_DEVID,
	VUID_LAST = LAST_DEVID,
} Vuid_device;

#define	vuid_first(devid)	((devid) << 8)
#define	vuid_last(devid)	(((devid) << 8)+VUID_SEG_SIZE-1)
#define	vuid_in_range(devid, id) \
	    ((id >= vuid_first(devid)) && (id <= vuid_last(devid)))

/*
 * Ascii device related definitions:
 */
#define	ASCII_FIRST	(0)
#define	ASCII_LAST	(127)
#define	META_FIRST	(128)
#define	META_LAST	(255)

/*
 * Top device related definitions:
 */
#define	TOP_FIRST	(256)
#define	TOP_LAST	(511)

/*
 * Workstation device related definitions.  First are virtual keyboard
 * assignments.  All events for the virtual keyboard have 0 (went up) or
 * 1 (went down) values.
 */

#define	VKEY_FIRST	vuid_first(WORKSTATION_DEVID)
#define	VKEY_UP		0
#define	VKEY_DOWN	1

#define	VKEY_KBD_CODES	(128)	/* The number of event codes in a subset of the
				   workstation device's address space
				   that belong to the virtual keyboard */

#define	VKEY_FIRSTPSEUDO	(VKEY_FIRST)			/* 32512 */
/*
 * VKEY_FIRSTPSEUDO thru VKEY_LASTPSEUDO are taken (for historical
 * reasons) by SunWindows related codes (see <sunwindow/win_input.h>).
 */
#define	VKEY_LASTPSEUDO		(VKEY_FIRSTPSEUDO+15)		/* 32527 */

#define	VKEY_FIRSTSHIFT		(VKEY_LASTPSEUDO+1)		/* 32528 */
#define	SHIFT_CAPSLOCK		(VKEY_FIRSTSHIFT+0)		/* 32528 */
#define	SHIFT_LOCK		(VKEY_FIRSTSHIFT+1)		/* 32529 */
#define	SHIFT_LEFT		(VKEY_FIRSTSHIFT+2)		/* 32530 */
#define	SHIFT_RIGHT		(VKEY_FIRSTSHIFT+3)		/* 32531 */
#define	SHIFT_LEFTCTRL		(VKEY_FIRSTSHIFT+4)		/* 32532 */
/* SHIFT_CTRL is for compatability with previous releases */	/* 32532 */
#define	SHIFT_CTRL		SHIFT_LEFTCTRL			/* 32532 */
#define	SHIFT_RIGHTCTRL		(VKEY_FIRSTSHIFT+5)		/* 32533 */
#define	SHIFT_META		(VKEY_FIRSTSHIFT+6)		/* 32534 */
#define	SHIFT_TOP		(VKEY_FIRSTSHIFT+7)		/* 32535 */
#define	SHIFT_CMD		(VKEY_FIRSTSHIFT+8)		/* 32536 */
#define	VKEY_LASTSHIFT		(VKEY_FIRSTSHIFT+15)		/* 32543 */

#define	VKEY_FIRSTFUNC		(VKEY_LASTSHIFT+1)		/* 32544 */

#define BUT_FIRST		(VKEY_FIRSTFUNC)		/* 32544 */
#define BUT(i)			((BUT_FIRST)+(i)-1)		/* 32544+i-1 */
#define BUT_LAST		(BUT_FIRST+9)			/* 32553 */

#define KEY_LEFTFIRST		((BUT_LAST)+1)			/* 32554 */
#define KEY_LEFT(i)		((KEY_LEFTFIRST)+(i)-1)		/* 32554+i-1 */
#define KEY_LEFTLAST		((KEY_LEFTFIRST)+15)		/* 32569 */

#define KEY_RIGHTFIRST		((KEY_LEFTLAST)+1)		/* 32570 */
#define KEY_RIGHT(i)		((KEY_RIGHTFIRST)+(i)-1)	/* 32570+i-1 */
#define KEY_RIGHTLAST		((KEY_RIGHTFIRST)+15)		/* 32585 */

#define KEY_TOPFIRST		((KEY_RIGHTLAST)+1)		/* 32586 */
#define KEY_TOP(i)		((KEY_TOPFIRST)+(i)-1)		/* 32586+i-1 */
#define KEY_TOPLAST		((KEY_TOPFIRST)+15)		/* 32601 */

#define KEY_BOTTOMLEFT		((KEY_TOPLAST)+1)		/* 32602 */
#define KEY_BOTTOMRIGHT		((KEY_BOTTOMLEFT)+1)		/* 32603 */

#define	VKEY_LASTFUNC		(VKEY_FIRSTFUNC+101)		/* 32605 */

#define	VKEY_LAST		(VKEY_FIRST+VKEY_KBD_CODES-1)	/* 32639 */

/*
 * More workstation device definitions.  These are virtual locator
 * related event code assignments.  Values for these events are int.
 * VLOC_BATCH's value is a u_int that describes the number of events
 * that follow that should be treated as a batch.
 */
#define	MOUSE_DEVID	WORKSTATION_DEVID	/* Backward compatibility */

#define	VLOC_FIRST		(VKEY_LAST+1)			/* 32640 */
#define	LOC_FIRST_DELTA		(VLOC_FIRST+0)			/* 32640 */
#define	LOC_X_DELTA		(VLOC_FIRST+0)			/* 32640 */
#define	LOC_Y_DELTA		(VLOC_FIRST+1)			/* 32641 */
#define	LOC_LAST_DELTA		(VLOC_FIRST+1)			/* 32641 */

#define	LOC_FIRST_ABSOLUTE	(VLOC_FIRST+2)			/* 32642 */
#define	LOC_X_ABSOLUTE		(VLOC_FIRST+2)			/* 32642 */
#define	LOC_Y_ABSOLUTE		(VLOC_FIRST+3)			/* 32643 */
#define	LOC_LAST_ABSOLUTE	(VLOC_FIRST+3)			/* 32643 */

#define	VLOC_BATCH		(VLOC_FIRST+4)			/* 32644 */
#define	VLOC_LAST		(VLOC_BATCH+1)			/* 32645 */

/*
 * Common names for certain input codes.  The buttons on the physical
 * mouse are thought to actually belong to the virtual keyboard.
 */
#define	MS_LEFT		BUT(1)					/* 32544 */
#define	MS_MIDDLE	BUT(2)					/* 32545 */
#define	MS_RIGHT	BUT(3)					/* 32546 */

/*
 * A firm_event structure is encoded in the byte stream of a device
 * when the device has been asked to format its byte stream so.
 * The time stamp is not defined to be meaningful except to compare
 * with other Firm_event time stamps.
 *
 * The pair field is critical for a state maintainence package
 * (such as vuid_state.h), one that is designed to not know anything
 * about the semantics of particular events, to maintain correct data
 * for corresponding absolute, delta and paired state variables.
 *
 * pair, when defined (as indicated by pair_type), is the associated
 * state variable that should be updated due to this events generation.
 * This is used to maintain a correspondence between an event that is a
 * delta and a state that is an absolute value (with a known delta event
 * defined) and visa versa, e.g., LOC_X_DELTA & LOC_X_ABSOLUTE.
 * pair is also used to indicate another state variable that
 * should be updated with the occurrence of this event, e.g., if id is
 * '^G' then pair could be 'g' or 'G' depending on the state of the shift
 * key.
 */
typedef	struct firm_event {
	u_short		id;	/* Event's unique id */
	u_char		pair_type;	/* Event pair's type */
#define	FE_PAIR_NONE		0	/* pair is not defined */
#define	FE_PAIR_SET		1	/* pair is accompanying id to set to
					   this events value */
#define	FE_PAIR_DELTA		2	/* pair is accompanying id that should
					   be set to the delta of id's current
					   value and the new value indicated by
					   this event */
#define	FE_PAIR_ABSOLUTE	3	/* pair is accompanying id that should
					   be set to the sum of its current
					   value and the delta indicated by
					   this event's value */
	u_char		pair;	/* Event id's associated delta|absolute|pair
				   offset within id's segment (minus id's
				   address) */
	int		value;	/* Event's value */
	struct timeval	time;	/* Event's time stamp */
} Firm_event;
#define	FIRM_EVENT_NULL	((Firm_event *)0)
#define	vuid_id_addr(id)		((id) & 0xFF00)
#define	vuid_id_offset(id)		((id) & 0xFF)
#define	vuid_boolean_value(value)	(((value) == 0) || ((value) == 1))
#define	vuid_int_value(value)		(!(vuid_boolean_value((value))))

/*
 * Ioctls to input devices that support vuid.
 */

/*
 * VUID*FORMAT ioctls are used to control which byte stream format that
 * a input device should use.  An errno of ENOTTY or EINVAL indicates that
 * a device can't speak Firm_events.
 */
#define VUIDSFORMAT   _IOW(v, 1, int) /* Set input device byte stream format */
#define VUIDGFORMAT   _IOR(v, 2, int) /* Get input device byte stream format */
#define VUID_NATIVE	0	/* Native byte stream format */
#define VUID_FIRM_EVENT	1	/* struct firm_event byte stream format */
/*
 * VUID*ADDR ioctls are used to control which address a particular
 * virtual input device segment has.  This is used to have an instancing
 * capability, e.g., a second mouse.  An errno of ENOTTY indicates that
 * a device can't deal with these commands.  An errno of ENODEV indicates
 * that the requested virtual device has no events generated for it by
 * this physical device.
 *
 * VUIDSADDR sets the virtual input device segment address indicated by
 * default to next.
 *
 * VUIDGADDR gets the in force address of the virtual input device segment
 * indicated by default into current.
 */
typedef	struct	vuid_addr_probe {
	short	base;		/* default vuid device addr directed too */
	union	{
		short	next;	/* next addr for default when VUIDSADDR */
		short	current;/* current addr of default when VUIDGADDR */
	} data;
} Vuid_addr_probe;
#define VUIDSADDR   _IOW(v, 3, struct  vuid_addr_probe)	/* Set vuid address */
#define VUIDGADDR   _IOWR(v, 4, struct  vuid_addr_probe)/* Get vuid address */

#endif	__VUID_EVENT_H__
the panel package (see <suntool/panel.h>) */
#define	SCROLL_DEVID		0x7E
	/* Scrollbar package event codes passed to scrollbar clients on
	   interesting scrollbar activity (see <suntool/scrollbar.h>) */
#define	WORKSTATION_DEVID	0x7F
	/* Virtual keyboard and l./share/sys/sundev/xd_conf.c                                                                           444       0      12         3106  4424742625  11204                                                                                                                                                                                                                                                                                                                                                                      #ifndef lint
static	char sccsid[] = "@(#)xd_conf.c 1.7 88/10/24 SMI";
#endif

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */
#include "xd.h"

/*
 * Config dependent data structures for the Xylogics 751 driver.
 */
#include <sys/param.h>
#include <sys/buf.h>
#include <sundev/mbvar.h>
#include <sundev/xdvar.h>

int nxd = NXD;			/* So the driver can use these defines */
int nxdc = NXDC;

/*
 * Declare relevant structures if the devices exist
 */

/*
 * Unit structures.
 */
#if NXD > 0
struct xdunit xdunits[NXD];
#endif NXD

/*
 * Controller structures.
 */
#if NXDC > 0
struct xdctlr xdctlrs[NXDC];
struct xd_w_info xd_watch_info[NXDC];
#endif NXDC

/*
 * Generic structures.
 */
#if NXDC > 0
struct	mb_ctlr *xdcinfo[NXDC];
#endif NXDC

#if NXD > 0
struct	mb_device *xddinfo[NXD];
#endif NXD

/*
 * These shorts define the controller parameters the 7053 will get set with.
 *
 * xd_ctlrpar0 is a short containing the bits for iopb bytes 0x8 and 0x9
 * (which is the sector count field under normal operations)
 *
 * xd_ctlrpar1 is a short containing the bits for iopb byte 0xa. The driver
 * will shift this by 8, and or it into the xd_throttle field of the iopb
 * (also the cylinder field).
 *
 * see the file xdreg.h for the definitions of these bits.
 */
u_short xd_ctlrpar0 = XD_LWRD|XD_DACF|(xd_tdtv(1))|XD_ROR;
/*
 * This *must* be a short, as it will be shifted by 8 to be folded into the
 * iopb throttle variable.
 */
u_short xd_ctlrpar1 = XD_OVS|XD_ASR|XD_RBC|XD_ECC2;
/*
 * This *must* be a short.
 */
#ifdef sun3
u_short xd_ctlrpar2 = 20;
#else
u_short xd_ctlrpar2 = 0;
#endif sun3
  this event */
#define	FE_PAIR_ABSOLUTE	3	/* pair is accompanying id that should
					   be set to the sum of its current
					   value and the delta indicated by
					   this event's value */
	u_char		pair;	/* Event id's associated delta|absolute|pair
				   offset within id's segment (minus id's
				   address) */
	int		value;	/* Event's value */
	struct timeval	time;	/* Event's time stamp */
} Firm_event;
#define	FIRM_EVENT_NULL	((Fir./share/sys/sundev/xdvar.h                                                                             444       0      12         5607  4423267306  10722                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)xdvar.h 1.14 88/12/12 SMI	*/

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */
#ifndef _XDVAR_
#define _XDVAR_

/*
 * Structure definitions for Xylogics 7053 disk driver.
 */
#include <sundev/xdcreg.h>
#include <sundev/xdreg.h>
#include <sundev/xycom.h>

/*
 * Structure needed to execute a command.  Contains controller & iopb ptrs
 * and some error recovery information.  The link is used to identify
 * chained iopbs.
 */
struct xdcmdblock {
	struct	xdctlr *c;		/* ptr to controller */
	struct	xdunit *un;		/* ptr to unit */
	struct	xdiopb *iopb;		/* ptr to IOPB */
	struct	xdcmdblock *next;	/* next iopb in queue */
	struct	buf *breq;		/* */
	caddr_t	mbaddr;			/* */
	u_char	retries;		/* retry count */
	u_char	restores;		/* restore count */
	u_char	resets;			/* reset count */
	u_char  slave;			/* current drive no. */
	u_short	cmd;			/* current command */
	int	flags;			/* state information */
	caddr_t	baddr;			/* physical buffer address */
	daddr_t	blkno;			/* current block */
	daddr_t	altblkno;		/* alternate block (forwarding) */
	u_short	nsect;			/* sector count active */
	short	device;			/* current minor device */
	u_char	failed;			/* command failure */
};

/*
 * Data per unit
 */
struct xdunit {
	struct	xdctlr *c;		/* controller */
	struct	dk_map *un_map;		/* logical partitions */
	struct	dk_geom *un_g;		/* disk geometry */
	struct	buf *un_rtab;		/* for physio */
	int	un_ltick;		/* last time active */
	struct	mb_device *un_md;	/* generic unit */
	struct	mb_ctlr *un_mc;		/* generic controller */
	struct	dkbad *un_bad;		/* bad sector info */
	int	un_errsect;		/* sector in error */
	u_char	un_errno;		/* error number */
	u_char	un_errsevere;		/* error severity */
	u_short	un_errcmd;		/* command in error */
	u_char	un_flags;		/* state information */
};

/*
 * Data per controller
 */
struct xdctlr {
	struct	xdunit *c_units[XDUNPERC];	/* units on controller */
	struct	xddevice *c_io;			/* ptr to I/O space data */
	struct	xdcmdblock *actvcmdq; 		/* current command queue */
	struct	xdiopb *rdyiopbq;		/* ready iopbs */
	struct	xdiopb *lrdy;			/* last ready iopb */
	int	c_wantint;			/* controller is busy */
	int	c_intpri;			/* interrupt priority */
	int	c_intvec;			/* interrupt vector */
	u_char	c_flags;			/* state information */
};

/*
 * after RIO is found to be set, this is the number of
 * seconds to wait for the interrupt handler to get invoked
 * before timing out and invoking xdintr via the
 * watch-dog handler.  This value was originally set to
 * 1, but this resulted in recovery messages being printed
 * out constantly under conditions of heavy I/O.
 */
#define MAX_RIO_TICKS 10	 
				

struct xd_w_info {
	u_int curr_timeout;     /* remaining ticks in interval */
        u_int next_timeout;     /* ticks for next interval */
	u_int got_interrupt;    /* got an interrupt in interval */
	u_int got_rio;		/* number of seconds XD_RIO */
				/* has been set, but not serviced */
};

#endif _XDVAR_

* capability, e.g., a second mouse.  An errno of ENOTTY indicates that
 * a device can't deal with these commands.  An er./share/sys/sundev/xtreg.h                                                                             444       0      12         5634  4423267306  10727                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)xtreg.h 1.9 89/02/24 SMI	*/

/*
 * Copyright (c) 1984 by Sun Microsystems, Inc.
 */

/*
 * Xylogics 472 multibus tape controller
 * IOPB definition.
 */
struct xtiopb {
	/* Byte 1 */
	u_char	xt_swab    : 1;	/* do byte swapping */
	u_char	xt_retry   : 1;	/* enable retries */
	u_char	xt_subfunc : 6;	/* sub-function code */
	/* Byte 0 */
	u_char	xt_autoup  : 1;	/* auto update of IOPB */
	u_char	xt_reloc   : 1;	/* use relocation */
	u_char	xt_chain   : 1;	/* command chaining */
	u_char	xt_ie      : 1;	/* interrupt enable */
	u_char	xt_cmd     : 4;	/* command */
	/* Byte 3 */
	u_char	xt_errno;	/* error number */
	/* Byte 2 */	
	u_char	xt_iserr   : 1;	/* error indicator */
	u_char		   : 2;
	u_char	xt_ctype   : 3;	/* controller type */
	u_char		   : 1;
	u_char	xt_complete: 1;	/* completion code valid  */
	u_short	xt_status;	/* 5,4: various status bits */
	/* Byte 7 */
	u_char		   : 5;
	u_char	xt_unit    : 3;	/* unit number */
	/* Byte 6 */
	u_char	xt_bytebus : 1;	/* use byte transfers */
	u_char		   : 4;
	u_char	xt_throttle: 3;	/* throttle control */
	u_short	xt_cnt;		/* 9,8: requested count */
	u_short	xt_bufoff;	/* b,a: buffer offset */
	u_short	xt_bufrel;	/* d,c: buffer offset */
	u_short	xt_nxtoff;	/* f,e: next iopb offset */
	u_short	xt_acnt;	/* 11,10: actual count */
};

/* commands */
#define	XT_NOP		0x00	/* no operation */
#define	XT_WRITE	0x01	/* write */
#define	XT_READ		0x02	/* read */
#define	XT_SEEK		0x05	/* position */
#define	XT_DRESET	0x06	/* drive reset */
#define	XT_FMARK	0x07	/* write file mark / erase */
#define	XT_DSTAT	0x09	/* read drive status */
#define	XT_PARAM	0x0B	/* set drive parameters */
#define	XT_TEST		0x0C	/* self test */

/* Subfunction codes */
#define	XT_REVERSE	0x20	/* reverse tape motion */
#define	XT_REC		0	/* search for record marks */
#define	XT_FILE		1	/* search for file marks */
#define	XT_REW		2	/* rewind */
#define	XT_UNLOAD	3	/* unload */
#define	XT_ERASE	1	/* erase, when used with FMARK */
#define	XT_LODENS	0	/* low density */
#define	XT_HIDENS	1	/* high density */
#define	XT_LOW		2	/* low speed */
#define	XT_HIGH		3	/* high speed */
#define	XT_FDEOM	0x11	/* find EOM */

/* status codes */
#define	XTS_IEI		0x4000		/* interrupt on each iopb */
#define	XTS_EOT		0x80		/* end of tape */
#define	XTS_BOT		0x40		/* beginning of tape */
#define	XTS_FPT		0x20		/* write protected */
#define	XTS_REW		0x10		/* rewinding */
#define	XTS_ONL		0x08		/* on line */
#define	XTS_RDY		0x04		/* drive ready */
#define	XTS_DBY		0x02		/* data busy */
#define	XTS_FBY		0x01		/* formatter busy */
#define XTS_BITS "\1FBSY\2DBSY\3RDY\4ONL\5REW\6PROT\7BOT\10EOT"

/* error codes */
#define	XTE_NOERROR	0x00
#define XTE_TIMEOUT     0x04            /* Hardware or Software timeout */
#define	XTE_EOF		0x1E
#define	XTE_SOFTERR	0x1F		/* corrected data err */
#define	XTE_SHORTREC	0x22
#define	XTE_LONGREC	0x23
#define	XTE_BOT		0x30
#define	XTE_EOT		0x31
#define	XTE_DLATE	0x33		/* r: fifo overrun w: data late */	
 second mouse.  An errno of ENOTTY indicates that
 * a device can't deal with these commands.  An er./share/sys/sundev/xycom.h                                                                             444       0      12         7116  4423267307  10733                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)xycom.h 1.11 88/11/01 SMI	*/

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */
#ifndef _XYCOM_
#define _XYCOM_

/*
 * Common definitions for Xylogics disk drivers.  Names are prefixed
 * with 'xy', but these definitions also apply to the xd driver.
 */

/*
 * States for the command block flags
 */
#define XY_FBSY		0x0001		/* cmdblock in use */
#define XY_FRDY		0x0002		/* cmdblock ready for execution */
#define XY_DONE		0x0004		/* operation completed */
#define	XY_FAILED	0x0008		/* command failed */
#define XY_WANTED	0x0010		/* process waiting for iopb */
#define XY_WAIT		0x0020		/* process waiting for completion */
#define XY_INFRD	0x0040		/* in bad block forwarding */
#define XY_INRST	0x0080		/* in a restore */
#define	XY_FNLRST	0x0100		/* in final restore (cmd failed) */
#define XY_NOMSG	0x0200		/* suppress error messages */
#define	XY_DIAG		0x0400		/* diagnostic mode */
#define	XY_NOCHN	0x0800		/* don't chain this command */

/*
 * States for the ctlr structure flags
 */
#define	XY_C_PRESENT	0x01		/* ctlr exists */
#define	XY_C_24BIT	0x02		/* 24 bit addressing mode */
#define	XY_C_NOCHN	0x04		/* no chaining of iopbs */

/*
 * States for the unit structure flags
 */
#define	XY_UN_PRESENT	0x01		/* unit is online */
#define	XY_UN_ATTACHED	0x02		/* unit has been attached */

/*
 * Modes to execute a command
 */
#define XY_SYNCH	0		/* synchronous */
#define XY_ASYNCH	1		/* interrupt, no wait on iopb */
#define XY_ASYNCHWAIT	2		/* interrupt, wait on iopb */

/*
 * Error message control -- if a given bit is set, those errors are
 * printed. All others are suppressed.
 */
#define EL_FORWARD	0x0001		/* block forwarding message */
#define EL_FIXED	0x0002		/* fixed error message */
#define EL_RETRY	0x0004		/* retry message */
#define EL_RESTR	0x0008		/* restore message */
#define EL_RESET	0x0010		/* reset message */
#define EL_FAIL		0x0020		/* failure message */

/*
 * Miscellaneous defines.
 */
#define b_cylin b_resid			/* used for disksort */
#define XYNUNIT		32		/* max # of units on system */
#define	XYNLPART	NDKMAP		/* # of logical partitions (8) */
#define	UNIT(dev)	((dev>>3) % XYNUNIT)
#define	LPART(dev)	(dev % XYNLPART)
#define NOLPART		(-1)		/* used for 'non-partition commands */
#define	SECSIZE		512
#define XYWATCHTIMO	20		/* seconds till disk check */
#define XYLOSTINTTIMO	4		/* seconds till lost interrupt */
#define	XY_IN		0		/* command reads data */
#define	XY_OUT		1		/* command writes data */

/*
 * Structure definition and macros for manufacturer's list.
 */
#define	XY_MANDEFSIZE	24

struct xydefinfo {
	u_char	info[XY_MANDEFSIZE];
};

#define	XY_MAN_SYNC(x)		(x[0])
#define	XY_MAN_CYL(x)		(((x[1] & 0x7f) << 8) + x[2])
#define	XY_MAN_HEAD(x)		(x[3])
#define	XY_MAN_BFI(x,y)		((x[5 + 4 * y] << 8) + x[6 + 4 * y])
#define	XY_MAN_LEN(x,y)		((x[7 + 4 * y] << 8) + x[8 + 4 * y])
#define	XY_MAN_LAST(x)		(x[21])

#define XY_TRK_BAD(x)           (x[1] & 0x80)

#define	XY_SYNCBYTE		0x19
#define	XY_LASTBYTE		0xf0

#define XY_MAN_CYL_HI(x)        (x[1])
#define XY_MAN_CYL_LO(x)        (x[2])
#define XY_MAN_ZERO(x)          (x[4])
#define XY_MAN_WR_BFI(x,y,z)    x[5 + 4*y] = z>>8;x[6 + 4*y] = z;
#define XY_MAN_WR_LEN(x,y,z)    x[7 + 4*y] = z>>8;x[8 + 4*y] = z;
#define XY_MAN_MRK_TRK_BAD(x)   x[1] |= 0x80
#define XY_MAN_DEFECT_BEGIN     10
#define XY_MAN_DEFECT_END       55


/*
 * Macros for sector headers that don't hold data.
 */
#define	XY_HDR_SPARE	0xdddddddd		/* header for spare sector */
#define	XY_HDR_RUNT	0xeeeeeeee		/* header for runt sector */
#define	XY_HDR_SLIP	0xfefefefe		/* header for slipped sector */
#define	XY_HDR_ZAP	0xffffffff		/* header for zapped sector */

#endif _XYCOM_
UIDSADDR   _IOW(v, 3, struct  vuid_addr_probe)	/* Set vuid address */
#define VUIDGADDR   _IOWR(v, 4, struct  vuid_addr_probe)/* Get vuid address */

#endif	__VUID_EVENT_H__
the panel package (see <suntool/panel.h>) */
#define	SCROLL_DEVID		0x7E
	/* Scrollbar package event codes passed to scrollbar clients on
	   interesting scrollbar activity (see <suntool/scrollbar.h>) */
#define	WORKSTATION_DEVID	0x7F
	/* Virtual keyboard and l./share/sys/sunif/                                                                                     775       0      12            0  4425704717   7160                                                                                                                                                                                                                                                                                                                                                                      ./share/sys/sunif/if_ievar.h                                                                           444       0      12        14112  4423267347  11216                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)if_ievar.h 1.11 88/06/09 SMI	*/

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */

#ifndef	_IF_IEVAR_
#define	_IF_IEVAR_

/*
 * Definitions for data structures that the
 * Intel 82586 Ethernet driver uses internally.
 *
 * This file exists primarily  to allow network monitoring
 * programs easy access to the definition of ie_softc.
 */

/*
 * Input error counters
 */
struct ieierr {
	u_int	crc;
	u_int	aln;
	u_int	rsc;
	u_int	ovr;
};


#ifdef	IE_FDADDR
#define	IE_BUFSZ	ETHERMTU
#else	IF_FDADDR
#define	IE_BUFSZ	(sizeof (struct ether_header) + ETHERMTU)
#endif	IE_FDADDR

/*
 * Transmit buffers
 */
union ietbuf {
	union ietbuf	*ietbuf_next;
#ifdef IOC
	u_char		ietbuf_data[ioc_sizealign(IE_BUFSZ)];
#else IOC
	u_char		ietbuf_data[IE_BUFSZ];
#endif IOC
};

/*
 * Receive buffers
 *	The ierbuf_next field links rbufs into the free and loan-out
 *	lists.  When loaned, the ierbuf_es field links back to the
 *	governing softc structure.
 *
 *	The ierbuf_pad field compensates for Ethernet header length
 *	so that the portion of a given packet that remains after
 *	stripping off the Ethernet header is int aligned.
 *	NOTE: The padding is used with sparc to make sure that the packet
 *	after the ethernet header is int aligned.
 *	If the IO Cache is used, the data and all packets must start at
 *	16-byte boundaries.
 */
struct ierbuf {
	struct ierbuf	*ierbuf_next;
	struct ie_softc	*ierbuf_es;
#if defined(sparc) && !defined(IE_FDADDR)
	u_short		ierbuf_pad;
#endif sparc && !IE_FDADDR
#ifdef sun3x
#ifdef IOC
	int		ierbuf_pad[2];	/* pad to 16 byte boundary */
#endif IOC
#endif sun3x
	u_char		ierbuf_data[IE_BUFSZ];
#ifdef IOC
#if defined(sparc) && !defined(IE_FDADDR)
	u_char		ioc_pad[ioc_padalign(IE_BUFSZ + 10)];
#else sparc && !IE_FDADDR
#ifdef sun3x
	u_char		ioc_pad[ioc_padalign(IE_BUFSZ + 16)];
#else
	u_char		ioc_pad[ioc_padalign(IE_BUFSZ + 8)];
#endif sun3x
#endif sparc && !IE_FDADDR
#endif IOC
};

/*
 * Each interface is referenced by a network interface structure,
 * es_if, which the routing code uses to locate the interface.
 * This structure contains the output queue for the interface, its address,
 * etc.  "es" is an artifact and indicates Ethernet Software status.
 */
struct	ie_softc {
	struct	arpcom es_ac;		/* common Ethernet structures */
#define	es_if		es_ac.ac_if	/* network-visible interface */
#define	es_enaddr	es_ac.ac_enaddr	/* hardware ethernet address */
#define	es_mcaddr	es_ac.ac_mcaddr	/* multicast address vector */
#define	es_nmcaddr	es_ac.ac_nmcaddr
					/* count of multicast addrs */
	union {				/* device registers... */
	    struct mie_device	*esr_mie;
	    struct obie_device	*esr_obie;
	    struct tie_device	*esr_tie;
	} es_r;
#define	es_mie		es_r.esr_mie	/* IE_MB: Multibus board registers */
#define	es_obie		es_r.esr_obie	/* IE_OB: on-board registers */
#define	es_tie		es_r.esr_tie	/* IE_TE: 3E registers */
	caddr_t		es_memspace;	/* + chip addr = kernel addr */
	int		es_paddr;	/* starting page number for board */
	int		es_memsize;	/* size of memory consumed for buffers,
					   CBs, etc. */
	caddr_t		es_base;	/* our addr of control block base */
	struct map	*es_rmap;	/* rmap for chip-visible data */
	struct timeval	es_latest;	/* latest packet arrival time */

	char		es_type;	/* type of controller */
	char		es_synccmd;	/* doing synchronous command */
	char		es_pendreque;	/* requeued packet being transmitted */

	/* Control block info */
	struct iecb	*es_cbhead;	/* CBL head */
	struct iecb	*es_cbtail;	/* CBL tail */

	/* Dedicated control blocks */
	struct iescp	*es_scp;	/* SCP ptr */
	struct ieiscp	*es_iscp;	/* ISCP ptr */
	struct iescb	*es_scb;	/* SCB ptr */
	struct iecb	*es_cbnop;	/* no-op CB for use by iedog */
	struct iecb	*es_cbsync;	/* used by iesynccmd callers */

	/* Transmit Frame Descriptors */
	u_short		es_tfds;	/* total number of tfds */
	struct ietfd	*es_tfdpool;	/* tfd pool */
	struct ietfd	*es_tfd_free;	/* free list head */

	/* Transmit Buffer Descriptors */
	u_short		es_tbds;	/* total number of tbds */
	u_short		es_ftbds;	/* number of free tbds */
	struct ietbd	*es_tbdring;	/* tbd ring start */
	struct ietbd	*es_tbdlim;	/* one past end of ring */
	struct ietbd	*es_utbd;	/* queue head for in-use tbds */
	struct ietbd	*es_ftbd;	/* queue head for free tbds */

	/* Transmit Buffers */
	u_short		es_tbufs;	/* total number of tbufs */
	union ietbuf	*es_tbufpool;	/* tbuf pool */
	union ietbuf	*es_tbuf_free;	/* free list head */

	/* Receive Frame Descriptors */
	u_short		es_rfds;	/* total number of rfds */
	struct ierfd	*es_rfdring;	/* rfd ring start */
	struct ierfd	*es_rfdlim;	/* one past end of ring */
	struct ierfd	*es_rfdhd;	/* rfd list head */
	struct ierfd	*es_rfdtl;	/* rfd list tail */

	/* Receive Buffer Descriptors */
	u_short		es_rbds;	/* total number of rbds */
	struct ierbd	*es_rbdring;	/* rbd ring start */
	struct ierbd	*es_rbdlim;	/* one past end of ring */
	struct ierbd	*es_rbdhd;	/* rbd list head */
	struct ierbd	*es_rbdtl;	/* rbd list tail */

	/* Receive Buffers */
	u_short		es_rbufs;	/* total number of rbufs */
	u_short		es_loaned;	/* loan-out list length */
	struct ierbuf	*es_rbufpool;	/* rbuf pool */
	struct ierbuf	*es_rbuf_free;	/* free list head */
	struct ierbuf	*es_rbuf_loan;	/* loan-out list head;

	/* Error Counters */
	u_int		es_xmiturun;	/* xmit DMA underruns */
	u_int		es_dogreset;	/* iedog resets */
	u_int		es_trtry;	/* transmit collisions (net jams) */
	u_int		es_tnocar;	/* lost carrier on output */
	u_int		es_noCTS;	/* lost CTS on output */
	struct ieierr	es_ierr;	/* input errors of various sorts */

	/* Statistics Counters */
	u_int		es_runotready;	/* RU not ready occurrences */
	u_int		es_ieheart;	/* heartbeat counter */
	u_int		es_iedefer;	/* deferred transmission counter */
	u_int		es_started;	/* times into iestartout with > 0
					   packets on queue */
	u_int		es_started2;	/* times into iestartout with > 1
					   packet on queue */
	u_int		es_outcpy;	/* output copy operations */
	u_int		es_notbds;	/* output resource exhaustion (tbds) */
	u_int		es_prloans;	/* potential receive buffer loanouts */
	u_int		es_arloans;	/* actual receive buffer loanouts */
	u_int		es_requeues;	/* requeues after failed xmit attempts */
};

#endif	_IF_IEVAR_
 device related definitions:
 */
#define	TOP_FIRST	(256)
#define	TOP_LAST	(511)

/*
 * Workstation device related definitions.  First are virtual keyboard
 * assignments.  All events for the virtual keyboard have 0 (went up) or
 * 1 (went down) values.
 */

#define	VKEY_FIRST	vuid_first(WORKSTATION_DEVID)
#define	VKEY_UP		0
#define	VKEY_DOWN	1

#define	VKEY_KBD_CODES	(128)	/* The number of event codes in a subset of the
				   worksta./share/sys/sunif/if_lereg.h                                                                           444       0      12        14436  4423267350  11211                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)if_lereg.h 1.14 88/09/14 SMI	*/

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */

/*
 * AMD 7990 LANCE Ethernet controller registers.
 *
 * The LANCE chip saves address pins by accessing
 * several registers with one address pin by first writing the
 * register address to an internal address register, then reading
 * or writing a data register.  To use this safely, care must be
 * taken that the driver isn't reentered between the writing
 * of the address register and the access to the data register,
 * lest the reentered code try to touch the registers and
 * screw up the sequence.
 *
 * There are 4 registers accessible with this scheme, CSR0, CSR1,
 * CSR2, and CSR3.  In normal operation, only CSR0 can be or
 * needs to be accessed, so the driver normally leaves a 0 in the
 * Register Address Port, allowing CSR0 to be accessed simply by
 * accessing the Register Data Port.  During the initialization
 * sequence, when the other CSRs need to be accessed, the appropriate
 * CSR address is written into the address port, and afterwards
 * the 0 is put back in the address port.
 */


/*
 * Buffer size is chosen to give room for:
 *  -	the Ethernet maximum transmission unit,		1536
 *  -	the CRC,					   4
 *  -	and an overrun consisting of the entire
 *	fifo contents,					  48
 */
#define MAXBUF	1588

#define ETHER_MIN_TU	 60	/* minimum output packet length */
#define LANCE_MIN_TU	100	/* minimum length of first buffer of
				   multi-buffer output packet */

struct le_device {
	u_short	le_rdp;			/* Register Data Port */
	u_short	le_rap;		/* Register Address Port */
};
#define le_csr le_rdp

#define	LE_CSR0		0
#define	LE_CSR1		1
#define	LE_CSR2		2
#define	LE_CSR3		3

/*
 * Control and status bits for CSR0.
 * These behave somewhat strangely, but the net effect is that
 * bit masks may be written to the register which affect only
 * those functions for which there is a one bit in the mask.
 * The exception is the interrupt enable, which must be explicitly
 * set to the correct value in each mask that is used.
 *
 * RO - Read Only, writing has no effect
 * RC - Read, Clear.  Writing 1 clears, writing 0 has no effect
 * RW - Read, Write.
 * W1 - Write with 1 only.  Writing 1 sets, writing 0 has no effect.
 *	Reading gives unpredictable data but doesn't hurt anything.
 * RW1 - Read, Write with 1 only.  Writing 1 sets, writing 0 has no effect.
 */

#define	LE_ERR		0x8000		/* RO BABL | CERR | MISS | MERR */
#define	LE_BABL		0x4000		/* RC transmitted too many bits */
#define	LE_CERR		0x2000		/* RC No Heartbeat */
#define	LE_MISS		0x1000		/* RC Missed an incoming packet */
#define	LE_MERR		0x0800		/* RC Memory Error; no acknowledge */
#define	LE_RINT		0x0400		/* RC Received packet Interrupt */
#define	LE_TINT		0x0200		/* RC Transmitted packet Interrupt */
#define	LE_IDON		0x0100		/* RC Initialization Done */
#define	LE_INTR		0x0080		/* RO BABL|MISS|MERR|RINT|TINT|IDON */
#define	LE_INEA		0x0040		/* RW Interrupt Enable */
#define	LE_RXON		0x0020		/* RO Receiver On */
#define	LE_TXON		0x0010		/* RO Transmitter On */
#define	LE_TDMD		0x0008		/* W1 Transmit Demand (send it now) */
#define	LE_STOP		0x0004		/* RW1 Stop */
#define	LE_STRT		0x0002		/* RW1 Start */
#define	LE_INIT		0x0001		/* RW1 Initialize */

/*
 * CSR1  is   the low 16 bits of the address of the initialization block
 * CSR2  is   the high 8 bits of the address of the initialization block
 *	      the high 8 bits of the register must be 0
 * CSR3 mode bits:
 *
 */
#define	LE_BSWP		0x4	/* Byte Swap (on for 68000 byte order) */
#define	LE_ACON		0x2	/* ALE Control (on for active low ALE) */
#define	LE_BCON		0x1	/* Byte Control (see the manual) */

/* The address contained in this structure must be longword aligned */
struct le_drp {			/* Descriptor Ring Pointer */
	u_short	drp_laddr;	/* Low 16 bits of ring address */
	u_char	drp_len	: 3;	/* Binary exponent of no. of ring entries */
	u_char		: 5;	/* Reserved */
	u_char	drp_haddr;	/* High 16 bits of ring address */
};

/*
 * Initialization Block.  This structure is constructed in memory,
 * and it's address is written into the chip during initialization.
 * The chip then fetches it's initialization info from the structure.
 */
struct le_init_block {
	/* In the normal mode, these 16 bits are all 0 */
	u_short	ib_prom	: 1;	/* Promiscuous Mode */
	u_short		: 8;	/* Reserved */
	u_short	ib_intl	: 1;	/* Internal Loopback */
	u_short	ib_drty	: 1;	/* Disable Retry */
	u_short	ib_coll	: 1;	/* Force Collision */
	u_short	ib_dtcr	: 1;	/* Disable Transmit CRC */
	u_short	ib_loop	: 1;	/* Loopback */
	u_short	ib_dtx	: 1;	/* Disable Transmitter */
	u_short	ib_drx	: 1;	/* Disable Receiver */

	/*
	 * The bytes must be swapped within the word, so that, for example,
	 * the address 8:0:20:1:25:5a is written in the order
	 *             0 8 1 20 5a 25
	 */
	u_char	ib_padr[6];

	u_short	ib_ladrf[4];	/* Multicast logical address filter */

	struct	le_drp ib_rdrp;	/* Receive Descriptor Ring Pointer */
	struct	le_drp ib_tdrp;	/* Transmit Descriptor Ring Pointer */
};

struct	le_md {			/* Message Descriptor */
	u_short	lmd_ladr;	/* Low Order 16 Address Bits */
	u_char	lmd_flags;
	u_char	lmd_hadr: 8;	/* High Order 8 Address Bits */
	u_short	lmd_bcnt;	/* Buffer Byte Count (maximum length) */
	u_short	lmd_mcnt;	/* Message Byte Count (actual length) */
};
#define lmd_flags3 lmd_mcnt	/* for Transmit message descriptor */

/* Bits common to both rmds and tmds */
#define	LMD_OWN		0x80	/* Chip owns the descriptor */
#define	LMD_ERR		0x40	/* Error occurred */
#define	LMD_STP		0x02	/* Start of Packet */
#define	LMD_ENP		0x01	/* End of Packet */

/* Bits in rmd flags */
#define	RMD_FRAM	0x20	/* Framing error */
#define	RMD_OFLO	0x10	/* Internal Silo Overflowed. Valid if !ENP */
#define	RMD_CRC		0x08	/* CRC Error */
#define	RMD_BUFF	0x04	/* Didn't have a buffer for the packet */
/* bits in tmd flags */
#define	TMD_MORE	0x10	/* More than one retry was needed */
#define	TMD_ONE  	0x08	/* Exactly One Retry, valid only if !LCOL */
#define	TMD_DEF  	0x04	/* Deferred (net was initially busy) */

/* Bits for lmd_errflags */
#define	TMD_BUFF 0x8000		/* Buffer Error (imples underflow too) */
#define	TMD_UFLO 0x4000		/* Underflow Error */
#define	TMD_LCOL 0x1000		/* Late Collision */
#define	TMD_LCAR 0x0800		/* Loss of Carrier */
#define	TMD_RTRY 0x0400		/* More than 16 Retry's */
#define	TMD_TDR	 0x003f		/* Time Domain Reflectometry counter mask */
ith 1 only.  Writing 1 sets, writing 0 has no effect.
 */

#define	LE_ERR		0x8000		/* RO BABL | CERR | MISS | MERR */
#define	LE_BABL		0x4000		/* RC transmitted too many bits */
#define	LE_CERR		0x2000		/* RC No Heartbeat */
#./share/sys/sunif/if_levar.h                                                                           444       0      12        12470  4423267350  11220                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)if_levar.h 1.5 88/09/14 SMI	*/

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */

#ifndef	_IF_LEVAR_
#define	_IF_LEVAR_


/*
 * Definitions for data structures that the
 * AMD 7990 LANCE driver uses internally.
 *
 * This file exists primarily to allow network monitoring
 * programs easy access to the definition of le_softc.
 */


/*
 * Transmit and receive buffer layout.
 *	The chip sees only the fields from lb_ehdr onwards; the
 *	preceding fields are for the driver's benefit. The e_to_lb
 *	and b_to_lb macros defined below convert the address of the
 *	start of a lb_ehdr or lb_buffer field to the address of the
 *	start of the containing le_buf structure.
 *
 *	The buffer size is chosen to give room for the maximum ether
 *	transmission unit, an overrun consisting of the entire fifo
 *	contents, and slop that experience indicates is necessary.
 *	(The exact amount of slop required is still unknown.)
 */
struct le_buf {
	/* Fields used only by driver: */
	struct le_buf	*lb_next;		/* Link to next buffer */
	struct le_softc	*lb_es;			/* Link back to sw status */
#ifdef sun4
        char dummy[2];                          /* pad for alignment on sun4 */
#endif sun4
	/* Fields seen by LANCE chip: */
	struct ether_header	lb_ehdr;	/* Packet's ether header */
	u_char		lb_buffer[MAXBUF];	/* Packet's data */
};

/*
 * Bookkeeping structure for packet(s) under transmission.  Each such
 * packet is represented by an initial mbuf chain (possibly null) and
 * a trailing buffer/length pair.  This arrangement corresponds to the
 * way we set tmds up for an outgoing packet.  All tmds (except possibly
 * the last) point to successive mbufs of the chain representing the packet.
 * The last points to a statically allocated buffer containing the rest
 * of the packet.  (This case arises when the driver is about to run out
 * of tmds.)
 */
struct tdesc {
	struct mbuf	*td_mb;		/* mbuf chain head */
	u_char		*td_tail;	/* buffer for rest of packet... */
	u_int		td_tlen;	/* ... and its length */
};


/*
 * Ethernet software status per interface.
 *
 * Each interface is referenced by a network interface structure,
 * es_if, which the routing code uses to locate the interface.
 * This structure contains the output queue for the interface, its address, ...
 * "es" indicates Ethernet Software status.
 *
 * The buffer-related declarations allow for more than one packet to
 * be transmitted at a time, although the driver (and other declarations)
 * currently allows for only one at a time.
 */
struct	le_softc {
	struct	arpcom es_ac;		/* common ethernet structures */
#define	es_if		es_ac.ac_if	/* network-visible interface */
#define	es_enaddr	es_ac.ac_enaddr	/* hardware ethernet address */
#define	es_mcaddr	es_ac.ac_mcaddr	/* multicast address vector */
#define	es_nmcaddr	es_ac.ac_nmcaddr
					/* count of multicast addrs */

	struct	le_init_block *es_ib;	/* Initialization block */

	/* LANCE message descriptor info */
	struct	le_md *es_rdrp;		/* Receive Descriptor Ring Ptr */
	struct	le_md *es_rdrend;	/* Receive Descriptor Ring End */
	int	es_nrmdp2;		/* log(2) Num. Rcv. Msg. Descs. */
	int	es_nrmds;		/* Num. Rcv. Msg. Descs. */
	struct	le_md *es_tdrp;		/* Transmit Descriptor Ring Ptr */
	struct	le_md *es_tdrend;	/* Receive Descriptor Ring End */
	int	es_ntmdp2;		/* log(2) Num. Tran. Msg. Descs. */
	int	es_ntmds;		/* Num. Xmit. Msg. Descs. */
	struct	le_md *es_his_rmd;	/* Next descriptor in ring */
	struct	le_md *es_cur_tmd;	/* Tmd for start of current packet */
	struct	le_md *es_nxt_tmd;	/* Tmd for start of next packet */

	/* Buffer info */
	struct	le_buf *es_rbufs;	/* Receive Buffers */
	int	es_nrbufs;		/* Number of Receive Buffers */
	struct	le_buf *es_tbufs;	/* Transmit Buffers */
	int	es_ntbufs;		/* Number of Transmit Buffers */
	struct	le_buf *es_rbuf_free;	/* Head of free list */
	struct	le_buf *es_rbuf_loaned;	/* Head of loan-out list */
#ifdef notdef				/* Unused field... */
	struct	le_buf *es_tbuf_free;	/* Head of free list */
#endif notdef

	struct	tdesc es_tpack;		/* Packet being transmitted */

	u_int	es_flags;		/* State info: see below */

	/* Error counters */
	int	es_extrabyte;		/* Rev C,D LANCE extra byte problem */
	int	es_fram;		/* Receive Framing Errors (dribble) */
	int	es_crc;			/* Receive CRC Errors */
	int	es_oflo;		/* Receive overruns */
	int	es_uflo;		/* Transmit underruns */
	int	es_retries;		/* Transmit retries */
	int	es_missed;		/* Number of missed packets */
	int	es_noheartbeat;		/* Number of nonexistent heartbeats */
	int	es_tBUFF;		/* BUFF bit in tmd occurrences */
	int	es_tlcol;		/* Transmit late collisions */
	int	es_trtry;		/* Transmit retry errors */
	int	es_tnocar;		/* No carrier errors */

	/* Performance statistics counters */
	int	es_started;		/* Times through lestart with > 0
					   packets ready to go out */
	int	es_started2;		/* Times through lestart with > 1
					   packet ready to go out */
	int	es_potential_rloans;	/* Number of opportunities to loan
					   out a receive buffer */
	int	es_actual_rloans;	/* Cumulative number of receive buffers
					   loaned to protocol layers */
	int	es_no_tmds;		/* Number of resource exhaustion
					   instances on output */
	int	es_requeues;		/* Number of output packets requeued */
};

/*
 * Bit definitions for es_flags field:
 */
#define LE_TBUSY	0x01	/* Packet transmission in progress */
#define LE_TOPENDING	0x02	/* Transmit timeout pending */

#endif	_IF_LEVAR_
 down) values.
 */

#define	VKEY_FIRST	vuid_first(WORKSTATION_DEVID)
#define	VKEY_UP		0
#define	VKEY_DOWN	1

#define	VKEY_KBD_CODES	(128)	/* The number of event codes in a subset of the
				   worksta./share/sys/sunif/if_llc.h                                                                             444       0      12         4060  4423267351  10636                                                                                                                                                                                                                                                                                                                                                                      /*      @(#)if_llc.h 1.3 88/11/04 SMI      */

/*
 * Copyright (c) 1988 by Sun Microsystems, Inc.
 */

/* 
 * Structure of a IEEE 802.2 LLC header
 */
struct llc_hdr1 {
	u_char	d_lsap;		/* destination link service access point */
	u_char	s_lsap;		/* source link service access point */
	u_char	control;	/* short control field */
};

#define LLC_HDR1_LEN	3	/* DON'T use sizeof(struct llc_hdr1) */

struct llc_hdr2 {
	u_char	d_lsap;		/* destination link service access point */
	u_char	s_lsap;		/* source link service access point */
	u_short	control;	/* long control field */
};

#define LLC_HDR2_LEN	4	/* DON'T use sizeof(struct llc_hdr2) */

struct llc_snap_hdr {
	u_char	d_lsap;		/* destination link service access point */
	u_char	s_lsap;		/* source link service access point */
	u_char	control;	/* short control field */
	u_char	org[3];		/* Ethernet style organization field */
	u_short	type;		/* Ethernet style type field */
};

struct llc_xid {
	u_char	d_lsap;		/* destination link service access point */
	u_char	s_lsap;		/* source link service access point */
	u_char	control;	/* short control field */
	u_char	xid_formatid;	/* usually 0x81 for IEEE */
	u_char	supported_class;/* 1 for llc.1, 3 for llc.2 */
	u_char	llc2_window;	/* window size, *2 */
};

#define LLC_XID_LEN	6	/* DON'T use sizeof(struct llc_hdr1) */

#define LLC_SNAP_HDR_LEN	8	/* DON'T use sizeof(struct foo) */

struct llc_softc {		/* llc per instance data */
	struct ifnet llc_if;		/* MUST BE FIRST */
	int	llc_st_state;		/* current station state of llc FSM */
#define 	LLC_DOWN	0
#define 	LLC_UP 		1
#define 	LLC_CHECK	2
	int	llc_setmtu		/* maximum transport unit allowed */
};

#define CNTL_LLC_UI	0x03	/* un-numbered information packet */
#define CNTL_LLC_XID	0xaf	/* XID packet */
#define CNTL_LLC_TST	0xe3	/* TEST packet */

#define LLC_RESP	0x01	/* Response bit - add to the SSAP */
#define CNTL_LLC_PF_BIT	0x10	/* position of the Poll / Final bit */

#define LLC_XID_FORMAT	0x81	/* IEEE format */
/*
 * Useful macros.
 */

#define m_802addr(m)	mtod(m, struct sockaddr *)
#define llcprintf 	if(llc_debug)printf

ack to sw status */
#ifdef sun4
        char dummy[2];                          /* pad for alignment on sun4 */
#endif sun4
	/* Fields seen by LANCE chip: */
	struct ether_header	lb_ehdr;	/* Packet's ether header */
	u_char		lb_buffer[MAXBUF];	/* Packet's data */
};

/*
 * Bookkeeping structure for packet(s) under transmission.  Each such
 * packet is represented by an initial mbuf chain (possibly null) and
 * a trailing buffer/length pair.  This arrangement c./share/sys/sunif/llcp.h                                                                               444       0      12        13554  4423267353  10372                                                                                                                                                                                                                                                                                                                                                                      /*      @(#)llcp.h 1.3 88/11/04 SMI      */

/*
 * Copyright (c) 1988 by Sun Microsystems, Inc.
 */

/*
 * header file for Low Level Command Protocol (llcp) 
 */


typedef enum {
		HIO_HLCP,
		HIO_LLCP
}hostio_t;	/* can either be in hlcp mode or llcp mode */

/*
 * llcp command set: commands issued by host to controller
 */
typedef enum {
	/* 
	 * controller independent commands
	 */
	LLCP_CMD_COM = 0x0,		/* command complete */
	LLCP_RESET,			/* software reset of controller */
	LLCP_STRT_INIT,			/* initiate intialization sequence */
	LLCP_GET_INFO,			/* get info structure from controller */
	LLCP_SEND_INFO,			/* send host struct to controller */
	LLCP_GET_PKT,			/* get packet of data from controller */
	LLCP_SEND_PKT,			/* send packet of data to controller */
	LLCP_ERROR,			/* force controller to error state */
	LLCP_ENA_NET,			/* initiate execution from second prom*/

	/*
 	 * controller specific commands (ie. for NARYA)
 	 */
	LLCP_DWNLOAD = 0x10000000,	/* initiate download to controller */
	LLCP_EX_USER,			/* controller to execute in user mode */
	LLCP_EX_SUPER,			/* cntrlr to execute in super mode */
	LLCP_GOTO_HLCP,			/* controller to goto hlcp */
	LLCP_SET_VBR,			/* set vector base register */

	/*
 	 * diagnostic controller specific commands (ie. for NARYA)
 	 */
	 LLCP_WARM_START= 0x80000000,	/** WARM start NP **/

         LLCP_RAMTEST,			/** puts NP in RAM test state  **/
         LLCP_NP_SLEEP			/** puts NP to sleep           **/	
} cmd_t;


/*
 * controller states
 */
typedef enum {
	LLCP_NOT_RDY = 0x5678,	/* controller not ready state */
	LLCP_INIT1,		/* initialization state - xfer addr */
	LLCP_INIT2,		/* initialization state - get cntrlr info */
	LLCP_INIT3,		/* initialization state - send host info */
	LLCP_RDY,		/* ready to accept commands state */
	LLCP_BUSY,		/* busy executing command state */
	LLCP_HLCP,		/* finished setting HLCP transition */
	LLCP_ERR,		/* h/w error or error in protocol */
	LLCP_ANY_STATE		/* any of the above states */
} state_t;


/* 
 * fault codes: indicate particular fault in error state or command
 *		succeed, fail, or invalid command from other states
 */
typedef enum {
	LLCP_FC_OK = 0x0,	/* command succeeded */
	LLCP_FC_NO_COM,		/* command did not complete */
	LLCP_FC_INV_CMD,	/* command not implemented or not valid */

	/*
	 * codes 256 and up reserved for diagnostics
	 */
	LLCP_FC_FATAL = 0x100,	/* fatal hardware failure  */
	LLCP_FC_NOPROM2         /* no second prom available  */
} fault_t;

/* 
 * memory type - indicates use of dma or shared memory
 */
typedef enum {
	DMA_MEM,		/* controller uses dma for data transfers */
	SHARED_MEM		/* controller used shared mem for data xfers */
} mem_t;


/* 
 * address type - indicates use of long or short network addresses 
 */
typedef enum {
	SHORT_ADDR,		/* short 16 bit MAC address */
	LONG_ADDR		/* long 48 bit MAC address */
} llcpaddr_t;


/*
 * llcp struct: shared memory interface between intelligent network 
 *              controllers and main host.
 */
typedef struct {
	cmd_t	cmd;		/* reg for commands and synchronization  */
				/* writes !0 cmd, waits for response of 0 */
	state_t	state;		/* reg indicating current state of controller */
	unsigned char	*addr;	/* reg to transfer either host or cntr addr */
	long	len;		/* reg to transfer length of data transferred */
	fault_t	fault;		/* indicates fail. fault code on err state */
} llcp_reg_t;


#define	LLCP_VERSION 	1	/* llcp version number which should be bumped */
				/* when the interface changes */
#define	VER_STR		20	/* length of version strings */
#define	LLCP_FAIL	0	/* llcp routine failed */
#define	LLCP_SUCC	1	/* llcp routine succeeded */
#define	LLCP_T_RESET	4000000	/* 4 second reset cmd timeout */
#define	LLCP_RST_TIME	20000000 /* 20 seconds max time for LLCP_NOT_RDY */
				/* additional 20 sec max time for LLCP_INIT1 */
#define LLCP_BUF_SIZ	1600	/* XXX DO NOT INCREASE as there are */ 
				/* hardwired dependencies in the nd code */
#define LLCP_OFFBUS	2000	/* time for host cpu to stay off bus */ 
				/* while accessing llcp shared memory regs*/

/* 
 * controller information sent to Host
 */
typedef struct {
	int len;		/* length of structure */
	int llcp_ver;		/* version of llcp */
	llcpaddr_t addrtyp;	/* type of netword address that follows */
	char net_laddr[6];	/* network long 48 bit MAC address */
	char net_saddr[2];	/* network short 16 bit MAC address */
	unsigned char *buf;	/* address of llcp buffer */
	mem_t memtyp;		/* indicates dma or shared memory */
	unsigned char *phys_addr;	/* physical address of shared mem */
	long mem_size;		/* size of shared memory */
	unsigned char *strtadr;	/* firmware start address */
	unsigned timeout;	/* timeout value for commands */
	int fw_ver;		/* firmware version */
	int hw_ver;		/* hardware version */
	int max_pkt;		/* maximum packet size */
} llcp_cntrlr_info_t;

/* 
 * host information sent to controller
 */
typedef struct {
	int len;		/* length of structure */
	int llcp_ver;		/* version of llcp */
	llcpaddr_t addrtyp;	/* type of netword address that follows */
	char net_laddr[6];	/* network long 48 bit MAC address */
	char net_saddr[2];	/* network short 16 bit MAC address */
	unsigned char *buf;	/* addr of llcp buffer */
	mem_t memtyp;		/* indicates dma or shared memory */
	char host_arch[VER_STR];/* host machine type */
	int prom_rev;		/* host prom revision */
		/* from boot (contrlr, unit, partition */
	int	ctlr;		/* Controller number or address */
	int	unit;		/* Unit number within controller */
	long    partition;	/* Partition number within unit */
} llcp_host_info_t;


/*
 * complete state of all llcp information
 */

typedef struct {
	llcp_reg_t *regp;
	llcp_cntrlr_info_t *cinfop;
	llcp_host_info_t *hinfop;
} llcp_info_t;


/*
 * LLCP Error Message Defines
 */
#define E_LLCP_DMA 	0	/* cntrl mem type (dma/shared) set incorrectly*/
#define E_LLCP_RDY 	1	/* controller not responding */
#define E_LLCP_INV 	2	/* invalid controller command */
#define E_LLCP_EST 	3	/* error string */

LASTPSEUDO+1)		/* 32528 */
#define	SHIFT_CAPSLOCK		(VKEY_FIRSTSHIFT+0)		/* 32528 */
#define	SHIFT_LOCK		(VKEY_FIRSTSHIFT+1)		/* 32529 */
#define	SHI./share/sys/sys/                                                                                       775       0      12            0  4425704724   6650                                                                                                                                                                                                                                                                                                                                                                      ./share/sys/sys/buf.h                                                                                  444       0      12        15641  4423266747   7713                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)buf.h 2.21 88/06/09 SMI; from UCB 4.22 83/07/01	*/

#ifndef _BUF_
#define _BUF_

/*
 * The header for buffers in the buffer pool and otherwise used
 * to describe a block i/o request is given here.  The routines
 * which manipulate these things are given in vfs_bio.c.
 *
 * Buffers are used for control (superblocks, cylinder groups,
 * indirect blocks, inodes), and pages.
 *
 * Each control cache buffer in the pool is usually doubly linked into 2 lists:
 * hashed into a chain by <vp,blkno> so it can be located in the cache,
 * and (usually) on (one of several) queues.  These lists are circular and
 * doubly linked for easy removal.
 *
 * There are currently three queues for control cache buffers:
 * 	one for buffers containing ``useful'' information (the cache)
 *	one for buffers containing ``non-useful'' information
 *	one for empty buffers
 *
 * Buffers are kept in lru order.  When not on one of these queues,
 * the buffers are ``checked out'' to drivers which use the available list
 * pointers to keep track of them in their i/o active queues.
 */

/*
 * Bufhd structures used at the head of the hashed buffer queues.
 * We only need three words for these, so this abbreviated
 * definition saves some space.
 */
struct bufhd {
	long	b_flags;		/* see defines below */
	struct	buf *b_forw, *b_back;	/* fwd/bkwd pointer in chain */
};

/*
 * Diskhd structures used at the head of the disk unit queues.
 * We only need a few elements for these, so this abbreviated
 * definition saves some space.
 */
struct diskhd {
	long b_flags;			/* not used, needed for consistency */
	struct	buf *b_forw, *b_back;	/* queue of unit queues */
	struct	buf *av_forw, *av_back;	/* queue of bufs for this unit */
	long	b_bcount;		/* active flag */
};

struct buf {
	long	b_flags;		/* too much goes here to describe */
	struct	buf *b_forw, *b_back;	/* hash chain (2 way street) */
	struct	buf *av_forw, *av_back;	/* position on free list if not BUSY */
#define	b_actf	av_forw			/* alternate names for driver queue */
#define	b_actl	av_back			/*    head - isn't history wonderful */
	long	b_bcount;		/* transfer count */
	long	b_bufsize;		/* size of allocated buffer */
#define	b_active b_bcount		/* driver queue head: drive active */
	short	b_error;		/* returned after I/O */
	dev_t	b_dev;			/* major+minor device name */
	union {
	    caddr_t b_addr;		/* low order core address */
	    int	*b_words;		/* words for clearing */
	    struct fs *b_fs;		/* superblocks */
	    struct csum *b_cs;		/* superblock summary information */
	    struct cg *b_cg;		/* cylinder group block */
	    struct dinode *b_dino;	/* ilist */
	    daddr_t *b_daddr;		/* indirect block */
	} b_un;
	daddr_t	b_blkno;		/* block # on device */
	long	b_resid;		/* bytes not transferred after error */
#define	b_errcnt b_resid		/* while i/o in progress: # retries */
	struct  proc *b_proc;		/* proc doing physical or swap I/O */
	int	(*b_iodone)();		/* function called by iodone */
	struct	vnode *b_vp;		/* vnode associated with block */
	struct	page *b_pages;		/* page list for PAGEIO */
	struct buf *b_chain;		/* chain together all buffers here */
	int	b_mbinfo;		/* mb resources from mbpresetup() */
};

struct bstats {
	int	n_bread;		/* total bread requests */
	int	n_bread_hits;		/* hits in cache (no strategy needed) */
	int	n_ages;			/* times an aged buf was allocated */
	int	n_lrus;			/* times an lru buf was allocated */
	int	n_sleeps;		/* times had to sleep for a buf */
};

#define	BQUEUES		4	/* number of free buffer queues */

#define	BQ_SLEEP	0	/* address to sleep on if no bufs available */
#define	BQ_LRU		1	/* lru, useful buffers */
#define	BQ_AGE		2	/* rubbish */
#define	BQ_EMPTY	3	/* buffer headers with no memory */

#ifdef	KERNEL
#define	BUFHSZ	63
#define RND	(MAXBSIZE/DEV_BSIZE)
#define	BUFHASH(dvp, dblkno)	\
	((struct buf *)&bufhash[((u_int)(dvp)+(((int)(dblkno))/RND)) % BUFHSZ])

int	nbuf;			/* min number of buffer headers to allocate */
int	bufalloc;		/* number of allocated buffers */
struct	bufhd bufhash[BUFHSZ];	/* heads of hash lists */
struct	buf bfreelist[BQUEUES];	/* heads of available lists */
struct	buf *bufchain;		/* head of chain of all buffers in the system */
struct	buf *bclnlist;		/* head of cleaned page list */

struct	buf *getblk();
struct	buf *geteblk();
struct	buf *getpermeblk();
struct	buf *getnewbuf();
struct	buf *bread();
struct	buf *pageio_setup();
struct	vnode *bdevvp();

void	minphys();
#endif

/*
 * These flags are kept in b_flags.
 */
#define	B_WRITE		0x00000000	/* non-read pseudo-flag */
#define	B_READ		0x00000001	/* read when I/O occurs */
#define	B_DONE		0x00000002	/* transaction finished */
#define	B_ERROR		0x00000004	/* transaction aborted */
#define	B_BUSY		0x00000008	/* not on av_forw/back list */
#define	B_PHYS		0x00000010	/* physical IO */
#define	B_PAGEIO	0x00000020	/* do I/O to pages on bp->p_pages */
#define	B_WANTED	0x00000040	/* issue wakeup when BUSY goes off */
#define	B_DONTNEED	0x00000080	/* after write, need not be cached */
#define	B_ASYNC		0x00000100	/* don't wait for I/O completion */
#define	B_DELWRI	0x00000200	/* write at exit of avail list */
#define	B_TAPE		0x00000400	/* this is a magtape (no bdwrite) */
#define	B_UAREA		0x00000800	/* add u-area to a swap operation */
#define	B_REMAPPED	0x00001000	/* buffer is kernel addressable */
#define	B_FREE		0x00002000	/* free page when done */
#define	B_PGIN		0x00004000	/* pagein op, so swap() can count it */
#define	B_CACHE		0x00008000	/* did bread find us in the cache ? */
#define	B_INVAL		0x00010000	/* does not contain valid info  */
#define	B_FORCE		0x00020000	/* semi-permanent removal from cache */
#define	B_HEAD		0x00040000	/* a buffer header, not a buffer */
#define	B_NOCACHE	0x00080000	/* don't cache block when released */
#define	B_BAD		0x00100000	/* bad block revectoring in progress */
#define	B_IOCACHE	0x00200000	/* buf is I/O cacheable - mach dep. */

/*
 * Insq/Remq for the buffer hash lists.
 */
#define	bremhash(bp) { \
	(bp)->b_back->b_forw = (bp)->b_forw; \
	(bp)->b_forw->b_back = (bp)->b_back; \
}
#define	binshash(bp, dp) { \
	(bp)->b_forw = (dp)->b_forw; \
	(bp)->b_back = (dp); \
	(dp)->b_forw->b_back = (bp); \
	(dp)->b_forw = (bp); \
}

/*
 * Insq/Remq for the buffer free lists.
 */
#define	bremfree(bp) { \
	(bp)->av_back->av_forw = (bp)->av_forw; \
	(bp)->av_forw->av_back = (bp)->av_back; \
}
#define	binsheadfree(bp, dp) { \
	(dp)->av_forw->av_back = (bp); \
	(bp)->av_forw = (dp)->av_forw; \
	(dp)->av_forw = (bp); \
	(bp)->av_back = (dp); \
}
#define	binstailfree(bp, dp) { \
	(dp)->av_back->av_forw = (bp); \
	(bp)->av_back = (dp)->av_back; \
	(dp)->av_back = (bp); \
	(bp)->av_forw = (dp); \
}

/*
 * Take a buffer off the free list it's on and
 * mark it as being use (B_BUSY) by a device.
 */
#define	notavail(bp) { \
	int x = spl6(); \
	bremfree(bp); \
	(bp)->b_flags |= B_BUSY; \
	(void) splx(x); \
}

#define	iodone	biodone
#define	iowait	biowait

/*
 * Zero out a buffer's data portion.
 */
#define	clrbuf(bp) { \
	blkclr(bp->b_un.b_addr, (u_int)bp->b_bcount); \
	bp->b_resid = 0; \
}

#endif _BUF_
KEY_FIRSTSHIFT+0)		/* 32528 */
#define	SHIFT_LOCK		(VKEY_FIRSTSHIFT+1)		/* 32529 */
#define	SHI./share/sys/sys/core.h                                                                                 444       0      12         3130  4423266752  10031                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)core.h 1.17 88/06/09 SMI	*/

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */

#ifndef _CORE_
#define _CORE_

#include <sys/exec.h>
#include <machine/reg.h>

#define CORE_MAGIC	0x080456
#define CORE_NAMELEN	16		/* Related to MAXCOMLEN in user.h */

#if defined(sun2) || defined(sun3) || defined(sun3x)
/*
 * The size of struct fpa_regs is changed from 141 ints in 3.0 to
 * 77 ints in 3.x.  A pad of this size difference is added to struct core.
 */
#define CORE_PADLEN	64
#endif

/*
 * Format of the beginning of a `new' core file.
 * The `old' core file consisted of dumping the u area.
 * In the `new' core format, this structure is followed
 * copies of the data and  stack segments.  Finally the user
 * struct is dumped at the end of the core file for programs
 * which really need to know this kind of stuff.  The length
 * of this struct in the core file can be found in the
 * c_len field.  When struct core is changed, c_fpstatus
 * and c_fparegs should start at long word boundaries (to
 * make the floating pointing signal handler run more efficiently).
 */
struct core {
	int	c_magic;		/* Corefile magic number */
	int	c_len;			/* Sizeof (struct core) */
	struct	regs c_regs;		/* General purpose registers */
	struct 	exec c_aouthdr;		/* A.out header */
	int	c_signo;		/* Killing signal, if any */
	int	c_tsize;		/* Text size (bytes) */
	int	c_dsize;		/* Data size (bytes) */
	int	c_ssize;		/* Stack size (bytes) */
	char	c_cmdname[CORE_NAMELEN + 1]; /* Command name */
#ifdef FPU
	struct	fpu c_fpu;		/* external FPU state */
#endif
	int	c_ucode;		/* Exception no. from u_code */
};
#endif !_CORE_
/* indirect block */
	} b_un;
	daddr_t	b_blkno;		/* block # on device */
	long	b_resid;		/* bytes not transferred after error */
#define	b_errcnt b_resid		/* while i/o in progress: # retries */
	struct  proc *b_proc;		/* proc doing physical or swap I/O */
	int	(*b_iodone)();		/* function called by iodone */
	struct	vnode *b_vp;		/* vnode associated with block */
	struct	page *b_pages;		/* page list for PAGEIO */
	struct ./share/sys/sys/mtio.h                                                                                 444       0      12        14010  4423266774  10074                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)mtio.h 2.11 89/02/13 SMI; from UCB 4.10 83/01/17	*/

/*
 * Structures and definitions for mag tape io control commands
 */

/* structure for MTIOCTOP - mag tape op command */
struct	mtop	{
	short	mt_op;		/* operations defined below */
	daddr_t	mt_count;	/* how many of them */
};

/* operations */
#define MTWEOF		0	/* write an end-of-file record */
#define MTFSF		1	/* forward space file */
#define MTBSF		2	/* backward space file */
#define MTFSR		3	/* forward space record */
#define MTBSR		4	/* backward space record */
#define MTREW		5	/* rewind */
#define MTOFFL		6	/* rewind and put the drive offline */
#define MTNOP		7	/* no operation, sets status only */
#define MTRETEN		8	/* retension the tape */
#define MTERASE		9	/* erase the entire tape */
#define MTEOM		10	/* position to end of media (SCSI only) */
#define MTBSFM		11	/* backspace filemark */


/* structure for MTIOCGET - mag tape get status command */
struct	mtget	{
	short	mt_type;	/* type of magtape device */
/* the following two registers are grossly device dependent */
	short	mt_dsreg;	/* ``drive status'' register */
	short	mt_erreg;	/* ``error'' register */
/* optional error info. */
	daddr_t	mt_resid;	/* residual count */
	daddr_t	mt_fileno;	/* file number of current position */
	daddr_t	mt_blkno;	/* block number of current position */
};

/*
 * Constants for mt_type byte
 */
#define	MT_ISTS		0x01		/* vax: unibus ts-11 */
#define	MT_ISHT		0x02		/* vax: massbus tu77, etc */
#define	MT_ISTM		0x03		/* vax: unibus tm-11 */
#define	MT_ISMT		0x04		/* vax: massbus tu78 */
#define	MT_ISUT		0x05		/* vax: unibus gcr */
#define	MT_ISCPC	0x06		/* sun: multibus cpc */
#define	MT_ISAR		0x07		/* sun: multibus archive */
#define	MT_ISSC		0x08		/* sun: SCSI archive */
#define	MT_ISXY		0x09		/* sun: Xylogics 472 */
#define	MT_ISSYSGEN11	0x10		/* sun: SCSI Sysgen, QIC-11 only */
#define	MT_ISSYSGEN	0x11		/* sun: SCSI Sysgen QIC-24/11 */
#define	MT_ISDEFAULT	0x12		/* sun: SCSI default CCS */
#define	MT_ISCCS3	0x13		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISMT02	0x14		/* sun: SCSI Emulex MT02 */
#define	MT_ISVIPER1	0x15		/* sun: SCSI Archive QIC-150 Viper */
#define	MT_ISWANGTEK1	0x16		/* sun: SCSI Wangtek QIC-150 */
#define	MT_ISCCS7	0x17		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS8	0x18		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS9	0x19		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS11	0x1a		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS12	0x1b		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS13	0x1c		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS14	0x1d		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS15	0x1e		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS16	0x1f		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCDC	0x20		/* sun: SCSI CDC 1/2" cartridge */
#define	MT_ISFUJI	0x21		/* sun: SCSI Fujitsu 1/2" cartridge */
#define	MT_ISKENNEDY	0x22		/* sun: SCSI Kennedy 1/2" reel */
#define	MT_ISHP		0x23		/* sun: SCSI HP 1/2" reel */
#define	MT_ISCCS21	0x24		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS22	0x25		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS23	0x26		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS24	0x27		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISEXABYTE	0x28		/* sun: SCSI Exabyte 8mm cartridge */
#define	MT_ISCCS26	0x29		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS27	0x2a		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS28	0x2b		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS29	0x2c		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS30	0x2d		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS31	0x2e		/* sun: SCSI generic (unknown) CCS */
#define	MT_ISCCS32	0x2f		/* sun: SCSI generic (unknown) CCS */

/*
 * Device table structure and data for looking tape name from
 * tape id number.  Used by mt.c.
 */
struct mt_tape_info {
	short	t_type;		/* type of magtape device */
	char	*t_name;	/* printing name */
	char	*t_dsbits;	/* "drive status" register */
	char	*t_erbits;	/* "error" register */
};
#define MT_TAPE_INFO  {\
{ MT_ISCPC,		"TapeMaster",		TMS_BITS, 0 }, \
{ MT_ISXY,		"Xylogics 472",		XTS_BITS, 0 }, \
{ MT_ISAR,		"Archive",		ARCH_CTRL_BITS,	ARCH_BITS }, \
{ MT_ISSYSGEN11,	"Sysgen QIC-11",	0, 0 }, \
{ MT_ISSYSGEN,		"Sysgen",		0, 0 }, \
{ MT_ISMT02,		"Emulex MT-02",		0, 0 }, \
{ MT_ISVIPER1,		"Archive QIC-150",	0, 0 }, \
{ MT_ISWANGTEK1,	"Wangtek QIC-150",	0, 0 }, \
{ MT_ISCDC,		"CDC",			0, 0 }, \
{ MT_ISKENNEDY,		"Kennedy",		0, 0 }, \
{ MT_ISHP,		"HP-88780",		0, 0 }, \
{ MT_ISEXABYTE,		"Exabyte",		0, 0 }, \
{ 0 } \
}


/*
 * Constants for mt_type byte
 */

/*
 * Check if mt_type is one of the SCSI tape devices.
 */
#define MT_TYPE_SCSI(mt_type) \
	((mt_type >= MT_ISSYSGEN11)  &&  (mt_type <= MT_ISCCS32))

/*
 * Older 1/4-inch cartridge tapes devices.
 * A blocking factor of 126 is recommended for compatibility.
 * A larger blocking factor may be used for improved streaming
 * performance.
 */
#define MT_TYPE_OLD_CARTRIDGE(mt_type) \
	((mt_type == MT_ISSYSGEN11)  ||  (mt_type == MT_ISSYSGEN)  || \
	 (mt_type == MT_ISAR))

/*
 * Current 1/4-inch cartridge tape devices.
 * A blocking factor of 40 (to 60) is recommended for
 * optimal streaming performance.
 */
#define MT_TYPE_NEW_CARTRIDGE(mt_type) \
	(mt_type >= MT_ISDEFAULT  &&  mt_type <= MT_ISCCS16) 

/*
 * All 1/4-inch cartridge tape devices.
 * A blocking factor of 126 is recommended for compatibility
 * (during writes).  See above for specific recommendations for
 * reading.
 */
#define MT_TYPE_CARTRIDGE(mt_type) \
	((mt_type >= MT_ISSYSGEN11  &&  mt_type <= MT_ISCCS16)  || \
	 (mt_type == MT_ISAR))

/*
 * All 1/2-inch reel tape devices.
 * A blocking factor of 20 is recommended for compatibility.
 */
#define MT_TYPE_REEL(mt_type) \
	((mt_type >= MT_ISCDC  &&  mt_type <= MT_ISCCS32)  || \
	 (mt_type >= MT_ISTS   &&  mt_type <= MT_ISCPC)    || \
	 (mt_type == MT_ISXY))

/* mag tape io control commands */
#define	MTIOCTOP	_IOW(m, 1, struct mtop)		/* do a mag tape op */
#define	MTIOCGET	_IOR(m, 2, struct mtget)	/* get tape status */

#ifndef KERNEL
#define	DEFTAPE	"/dev/rmt12"
#endif
b_back = (bp); \
	(dp)->b_forw = (bp); \
}

/*
 * Insq/Remq for the buffer free lists.
 */
#define	bremfree(bp) { \
	(bp)->av_back->av_forw = (bp)->av_forw; \
	(bp)->av_forw->av_back = (bp)->av_back; \
}
#define	binsheadfree(bp, dp) { \
	(dp)->av_forw->av_back = (bp); \
	(bp)->av_forw = (dp)->av_forw; \
	(dp)->av_forw = (bp); \
	(bp)->av_back = (dp); \
}
#define	binstailfree(bp, dp) { \
	(dp)->av_back->av_forw = (bp); \
	(bp)->av_back = (dp)->av_back; \
	(dp)->av_back = (bp); \
	(bp)->av_forw = (dp)./share/sys/sys/protosw.h                                                                              444       0      12        16407  4423267000  10634                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)protosw.h 2.10 89/01/09 SMI; from UCB 7.1 6/4/86	*/

/*
 * Copyright (c) 1982, 1986 Regents of the University of California.
 * All rights reserved.  The Berkeley software License Agreement
 * specifies the terms and conditions for redistribution.
 */

#ifndef	_PROTOSW_
#define	_PROTOSW_

/*
 * Protocol switch table.
 *
 * Each protocol has a handle initializing one of these structures,
 * which is used for protocol-protocol and system-protocol communication.
 *
 * A protocol is called through the pr_init entry before any other.
 * Thereafter it is called every 200ms through the pr_fasttimo entry and
 * every 500ms through the pr_slowtimo for timer based actions.
 * The system will call the pr_drain entry if it is low on space and
 * this should throw away any non-critical data.
 *
 * Protocols pass data between themselves as chains of mbufs using
 * the pr_input and pr_output hooks.  Pr_input passes data up (towards
 * UNIX) and pr_output passes it down (towards the imps); control
 * information passes up and down on pr_ctlinput and pr_ctloutput.
 * The protocol is responsible for the space occupied by any the
 * arguments to these entries and must dispose it.
 *
 * The userreq routine interfaces protocols to the system and is
 * described below.
 */
struct protosw {
	short	pr_type;		/* socket type used for */
	struct	domain *pr_domain;	/* domain protocol a member of */
	short	pr_protocol;		/* protocol number */
	short	pr_flags;		/* see below */
/* protocol-protocol hooks */
	int	(*pr_input)();		/* input to protocol (from below) */
	int	(*pr_output)();		/* output to protocol (from above) */
	int	(*pr_ctlinput)();	/* control input (from below) */
	int	(*pr_ctloutput)();	/* control output (from above) */
/* user-protocol hook */
	int	(*pr_usrreq)();		/* user request: see list below */
/* utility hooks */
	int	(*pr_init)();		/* initialization hook */
	int	(*pr_fasttimo)();	/* fast timeout (200ms) */
	int	(*pr_slowtimo)();	/* slow timeout (500ms) */
	int	(*pr_drain)();		/* flush any excess space possible */
};

#define	PR_SLOWHZ	2		/* 2 slow timeouts per second */
#define	PR_FASTHZ	5		/* 5 fast timeouts per second */

/*
 * Values for pr_flags
 */
#define	PR_ATOMIC	0x01		/* exchange atomic messages only */
#define	PR_ADDR		0x02		/* addresses given with messages */
/* in the current implementation, PR_ADDR needs PR_ATOMIC to work */
#define	PR_CONNREQUIRED	0x04		/* connection required by protocol */
#define	PR_WANTRCVD	0x08		/* want PRU_RCVD calls */
#define	PR_RIGHTS	0x10		/* passes capabilities */
#define PR_OOB_ADDR     0x20            /* addresses given with OOB data */

/*
 * The arguments to usrreq are:
 *	(*protosw[].pr_usrreq)(up, req, m, nam, opt);
 * where up is a (struct socket *), req is one of these requests,
 * m is a optional mbuf chain containing a message,
 * nam is an optional mbuf chain containing an address,
 * and opt is a pointer to a socketopt structure or nil.
 * The protocol is responsible for disposal of the mbuf chain m,
 * the caller is responsible for any space held by nam and opt.
 * A non-zero return from usrreq gives an
 * UNIX error number which should be passed to higher level software.
 */
#define	PRU_ATTACH		0	/* attach protocol to up */
#define	PRU_DETACH		1	/* detach protocol from up */
#define	PRU_BIND		2	/* bind socket to address */
#define	PRU_LISTEN		3	/* listen for connection */
#define	PRU_CONNECT		4	/* establish connection to peer */
#define	PRU_ACCEPT		5	/* accept connection from peer */
#define	PRU_DISCONNECT		6	/* disconnect from peer */
#define	PRU_SHUTDOWN		7	/* won't send any more data */
#define	PRU_RCVD		8	/* have taken data; more room now */
#define	PRU_SEND		9	/* send this data */
#define	PRU_ABORT		10	/* abort (fast DISCONNECT, DETATCH) */
#define	PRU_CONTROL		11	/* control operations on protocol */
#define	PRU_SENSE		12	/* return status into m */
#define	PRU_RCVOOB		13	/* retrieve out of band data */
#define	PRU_SENDOOB		14	/* send out of band data */
#define	PRU_SOCKADDR		15	/* fetch socket's address */
#define	PRU_PEERADDR		16	/* fetch peer's address */
#define	PRU_CONNECT2		17	/* connect two sockets */
/* begin for protocols internal use */
#define	PRU_FASTTIMO		18	/* 200ms timeout */
#define	PRU_SLOWTIMO		19	/* 500ms timeout */
#define	PRU_PROTORCV		20	/* receive from below */
#define	PRU_PROTOSEND		21	/* send to below */

#define	PRU_NREQ		21

#ifdef PRUREQUESTS
char *prurequests[] = {
	"ATTACH",	"DETACH",	"BIND",		"LISTEN",
	"CONNECT",	"ACCEPT",	"DISCONNECT",	"SHUTDOWN",
	"RCVD",		"SEND",		"ABORT",	"CONTROL",
	"SENSE",	"RCVOOB",	"SENDOOB",	"SOCKADDR",
	"PEERADDR",	"CONNECT2",	"FASTTIMO",	"SLOWTIMO",
	"PROTORCV",	"PROTOSEND",
};
#endif

/*
 * The arguments to the ctlinput routine are
 *	(*protosw[].pr_ctlinput)(cmd, arg);
 * where cmd is one of the commands below, and arg is
 * an optional argument (caddr_t).
 *
 * N.B. The IMP code, in particular, pressumes the values
 *      of some of the commands; change with extreme care.
 * TODO:
 *	spread out codes so new ICMP codes can be
 *	accomodated more easily
 */
#define	PRC_IFDOWN		0	/* interface transition */
#define	PRC_ROUTEDEAD		1	/* select new route if possible */
#define	PRC_QUENCH		4	/* some said to slow down */
#define	PRC_MSGSIZE		5	/* message size forced drop */
#define	PRC_HOSTDEAD		6	/* normally from IMP */
#define	PRC_HOSTUNREACH		7	/* ditto */
#define	PRC_UNREACH_NET		8	/* no route to network */
#define	PRC_UNREACH_HOST	9	/* no route to host */
#define	PRC_UNREACH_PROTOCOL	10	/* dst says bad protocol */
#define	PRC_UNREACH_PORT	11	/* bad port # */
#define	PRC_UNREACH_NEEDFRAG	12	/* IP_DF caused drop */
#define	PRC_UNREACH_SRCFAIL	13	/* source route failed */
#define	PRC_REDIRECT_NET	14	/* net routing redirect */
#define	PRC_REDIRECT_HOST	15	/* host routing redirect */
#define	PRC_REDIRECT_TOSNET	16	/* redirect for type of service & net */
#define	PRC_REDIRECT_TOSHOST	17	/* redirect for tos & host */
#define	PRC_TIMXCEED_INTRANS	18	/* packet lifetime expired in transit */
#define	PRC_TIMXCEED_REASS	19	/* lifetime expired on reass q */
#define	PRC_PARAMPROB		20	/* header incorrect */
#define	PRC_GWDOWN		21	/* gateway down */

#define	PRC_NCMDS		22

#ifdef PRCREQUESTS
char	*prcrequests[] = {
	"IFDOWN", "ROUTEDEAD", "#2", "#3",
	"QUENCH", "MSGSIZE", "HOSTDEAD", "HOSTUNREACH",
	"NET-UNREACH", "HOST-UNREACH", "PROTO-UNREACH", "PORT-UNREACH",
	"FRAG-UNREACH", "SRCFAIL-UNREACH", "NET-REDIRECT", "HOST-REDIRECT",
	"TOSNET-REDIRECT", "TOSHOST-REDIRECT", "TX-INTRANS", "TX-REASS",
	"PARAMPROB"
};
#endif

/*
 * The arguments to ctloutput are:
 *	(*protosw[].pr_ctloutput)(req, so, level, optname, optval);
 * req is one of the actions listed below, so is a (struct socket *),
 * level is an indication of which protocol layer the option is intended.
 * optname is a protocol dependent socket option request,
 * optval is a pointer to a mbuf-chain pointer, for value-return results.
 * The protocol is responsible for disposal of the mbuf chain *optval
 * if supplied,
 * the caller is responsible for any space held by *optval, when returned.
 * A non-zero return from usrreq gives an
 * UNIX error number which should be passed to higher level software.
 */
#define	PRCO_GETOPT	0
#define	PRCO_SETOPT	1

#define	PRCO_NCMDS	2

#ifdef PRCOREQUESTS
char	*prcorequests[] = {
	"GETOPT", "SETOPT",
};
#endif

#ifdef KERNEL
extern	struct protosw *pffindproto(), *pffindtype();
#endif

#endif	_PROTOSW_

#define	PRU_LISTEN		3	/* listen for connection */
#define	PRU_CONNECT		4	/* establish connection to peer */
#define	PRU_ACCEPT		5	/* accept connection from peer */
#define	PRU_DISCONNECT		6	/* disconnect from peer */
#define	PRU_SHUTDOWN		7	/* won'./share/sys/sys/ptrace.h                                                                               444       0      12         5536  4423267001  10357                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)ptrace.h 1.14 89/03/24 SMI	*/

/*
 * Copyright (c) 1985 by Sun Microsystems, Inc.
 */

#ifndef _PTRACE_
#define _PTRACE_

/*
 * Request values for the ptrace system call
 */
enum ptracereq {
	PTRACE_TRACEME = 0,		/* 0, by tracee to begin tracing */
	PTRACE_CHILDDONE = 0,		/* 0, tracee is done with his half */
	PTRACE_PEEKTEXT,		/* 1, read word from text segment */
	PTRACE_PEEKDATA,		/* 2, read word from data segment */
	PTRACE_PEEKUSER,		/* 3, read word from user struct */
	PTRACE_POKETEXT,		/* 4, write word into text segment */
	PTRACE_POKEDATA,		/* 5, write word into data segment */
	PTRACE_POKEUSER,		/* 6, write word into user struct */
	PTRACE_CONT,			/* 7, continue process */
	PTRACE_KILL,			/* 8, terminate process */
	PTRACE_SINGLESTEP,		/* 9, single step process */
	PTRACE_ATTACH,			/* 10, attach to an existing process */
	PTRACE_DETACH,			/* 11, detach from a process */
	PTRACE_GETREGS,			/* 12, get all registers */
	PTRACE_SETREGS,			/* 13, set all registers */
	PTRACE_GETFPREGS,		/* 14, get all floating point regs */
	PTRACE_SETFPREGS,		/* 15, set all floating point regs */
	PTRACE_READDATA,		/* 16, read data segment */
	PTRACE_WRITEDATA,		/* 17, write data segment */
	PTRACE_READTEXT,		/* 18, read text segment */
	PTRACE_WRITETEXT,		/* 19, write text segment */
	PTRACE_GETFPAREGS,		/* 20, get all fpa regs */
	PTRACE_SETFPAREGS,		/* 21, set all fpa regs */
#ifdef sparc
	PTRACE_GETWINDOW,		/* 22, get register window n */
	PTRACE_SETWINDOW,		/* 23, set register window n */
#else !sparc
	PTRACE_22,			/* 22, filler */
	PTRACE_23,			/* 23, filler */
#endif !sparc
	PTRACE_SYSCALL,                 /* 24, trap next sys call */
	PTRACE_DUMPCORE,                /* 25, dump process core */
#ifdef  i386
	PTRACE_SETWRBKPT,		/* 26, set write breakpoint */
	PTRACE_SETACBKPT,		/* 27, set access breakpoint */
	PTRACE_CLRDR7,			/* 28, clear debug register 7 */
#else
	PTRACE_26,			/* 26, filler */
	PTRACE_27,			/* 27, filler */
	PTRACE_28,			/* 28, filler */
#endif
};

#ifdef KERNEL
/*
 * Tracing variables.
 * Used to pass trace command from
 * parent to child being traced.
 * This data base cannot be
 * shared and is locked
 * per user.
 */
struct ipc{
	int	ip_lock;		/* Locking between processes */
	u_int	ip_error;		/* The child encountered an error? */
	enum	ptracereq ip_req;	/* The type of request */
	caddr_t	ip_addr;		/* The address in the child */
	caddr_t	ip_addr2;		/* The address in the parent */
	int	ip_data;		/* Data or number of bytes */
	struct	regs ip_regs;		/* The regs, psw and pc */
	int	ip_nbytes;		/* # of bytes being moved in bigbuf */
	caddr_t	ip_bigbuf;		/* Dynamic buffer for large transfers */
#ifdef FPU
	struct	fpu ip_fpu;		/* Floating point processor info */
#endif FPU
#ifdef sparc
	struct	rwindow	ip_rwindow;	/* RISC register window */
#endif sparc
	struct  vnode *ip_vp;           /* vnode for core dump */
};
#endif KERNEL
#endif !_PTRACE
 the caller is responsible for any space held by *optval, when returned.
 * A non-zero return from usrreq gives an
 * UNIX error number which should be passed to ./share/sys/sys/sockio.h                                                                               444       0      12         7421  4423267010  10363                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)sockio.h 1.7 88/11/04 SMI; from UCB ioctl.h 7.1 6/4/86	*/

/*
 * Copyright (c) 1982, 1986 Regents of the University of California.
 * All rights reserved.  The Berkeley software License Agreement
 * specifies the terms and conditions for redistribution.
 */

/*
 * General socket ioctl definitions.
 */
#ifndef	_sockio_h
#define	_sockio_h

#include <sys/ioccom.h>

/* socket i/o controls */
#define	SIOCSHIWAT	_IOW(s,  0, int)		/* set high watermark */
#define	SIOCGHIWAT	_IOR(s,  1, int)		/* get high watermark */
#define	SIOCSLOWAT	_IOW(s,  2, int)		/* set low watermark */
#define	SIOCGLOWAT	_IOR(s,  3, int)		/* get low watermark */
#define	SIOCATMARK	_IOR(s,  7, int)		/* at oob mark? */
#define	SIOCSPGRP	_IOW(s,  8, int)		/* set process group */
#define	SIOCGPGRP	_IOR(s,  9, int)		/* get process group */

#define	SIOCADDRT	_IOW(r, 10, struct rtentry)	/* add route */
#define	SIOCDELRT	_IOW(r, 11, struct rtentry)	/* delete route */

#define	SIOCSIFADDR	_IOW(i, 12, struct ifreq)	/* set ifnet address */
#define	SIOCGIFADDR	_IOWR(i,13, struct ifreq)	/* get ifnet address */
#define	SIOCSIFDSTADDR	_IOW(i, 14, struct ifreq)	/* set p-p address */
#define	SIOCGIFDSTADDR	_IOWR(i,15, struct ifreq)	/* get p-p address */
#define	SIOCSIFFLAGS	_IOW(i, 16, struct ifreq)	/* set ifnet flags */
#define	SIOCGIFFLAGS	_IOWR(i,17, struct ifreq)	/* get ifnet flags */
#define	SIOCSIFMEM	_IOW(i, 18, struct ifreq)	/* set interface mem */
#define	SIOCGIFMEM	_IOWR(i,19, struct ifreq)	/* get interface mem */
#define	SIOCGIFCONF	_IOWR(i,20, struct ifconf)	/* get ifnet list */
#define	SIOCSIFMTU	_IOW(i, 21, struct ifreq)	/* set if_mtu */
#define	SIOCGIFMTU	_IOWR(i,22, struct ifreq)	/* get if_mtu */

	/* from 4.3BSD */
#define	SIOCGIFBRDADDR	_IOWR(i,23, struct ifreq)	/* get broadcast addr */
#define	SIOCSIFBRDADDR	_IOW(i,24, struct ifreq)	/* set broadcast addr */
#define	SIOCGIFNETMASK	_IOWR(i,25, struct ifreq)	/* get net addr mask */
#define	SIOCSIFNETMASK	_IOW(i,26, struct ifreq)	/* set net addr mask */
#define	SIOCGIFMETRIC	_IOWR(i,27, struct ifreq)	/* get IF metric */
#define	SIOCSIFMETRIC	_IOW(i,28, struct ifreq)	/* set IF metric */

#define	SIOCSARP	_IOW(i, 30, struct arpreq)	/* set arp entry */
#define	SIOCGARP	_IOWR(i,31, struct arpreq)	/* get arp entry */
#define	SIOCDARP	_IOW(i, 32, struct arpreq)	/* delete arp entry */
#define	SIOCUPPER	_IOW(i, 40, struct ifreq)       /* attach upper layer */
#define	SIOCLOWER	_IOW(i, 41, struct ifreq)       /* attach lower layer */
#define	SIOCSETSYNC	_IOW(i,  44, struct ifreq)	/* set syncmode */
#define	SIOCGETSYNC	_IOWR(i, 45, struct ifreq)	/* get syncmode */
#define	SIOCSSDSTATS	_IOWR(i, 46, struct ifreq)	/* sync data stats */
#define	SIOCSSESTATS	_IOWR(i, 47, struct ifreq)	/* sync error stats */

#define	SIOCSPROMISC	_IOW(i, 48, int)		/* request promisc mode
							   on/off */
#define	SIOCADDMULTI	_IOW(i, 49, struct ifreq)	/* set m/c address */
#define	SIOCDELMULTI	_IOW(i, 50, struct ifreq)	/* clr m/c address */

/* FDDI controls */
#define SIOCFDRESET	_IOW(i, 51, struct ifreq)	/* Reset FDDI */
#define SIOCFDSLEEP	_IOW(i, 52, struct ifreq)	/* Sleep until next dnld req */
#define SIOCSTRTFMWAR	_IOW(i, 53, struct ifreq)	/* Start FW at an addr */
#define SIOCLDNSTRTFW	_IOW(i, 54, struct ifreq)	/* Load the shared memory */
#define SIOCGETFDSTAT	_IOW(i, 55, struct ifreq)	/* Get FDDI stats */
#define SIOCFDNMIINT	_IOW(i, 56, struct ifreq)        /* NMI to fddi */
#define SIOCFDEXUSER	_IOW(i, 57, struct ifreq)        /* Exec in user mode */
#define SIOCFDGNETMAP	_IOW(i, 58, struct ifreq)        /* Get a netmap entry */
#define SIOCFDGIOCTL    _IOW(i, 59, struct ifreq)	 /* Generic ioctl for fddi */

/* protocol i/o controls */
#define	SIOCSNIT	_IOW(p,  0, struct nit_ioc)	/* set nit modes */
#define	SIOCGNIT	_IOWR(p, 1, struct nit_ioc)	/* get nit modes */

#endif	!_sockio_h
*/
#define	SIOCGIFFLAGS	_IOWR(i,17, struct ifreq)	/* get ifnet flags */
#define	SIOCSIFMEM	_IOW(i, 18, struct ifreq)	/* set interface mem */
#define	SIOCGIFMEM	_IOWR(i,19, struct ifreq)	/* get interface mem */
#define	SIOCGIFCONF	_IOWR(i,2./share/sys/sys/tty.h                                                                                  444       0      12         2456  4423267023   7723                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)tty.h 2.14 88/09/06 SMI	*/

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */

#ifndef _TTY_
#define _TTY_

typedef struct {
	int	t_flags;
	queue_t	*t_readq;	/* stream's read queue */
	queue_t	*t_writeq;	/* stream's write queue */
	unsigned long t_iflag;	/* copy of iflag from tty modes */
	unsigned long t_cflag;	/* copy of cflag from tty modes */
	u_char	t_stopc;	/* copy of c_cc[VSTOP] from tty modes */
	u_char	t_startc;	/* copy of c_cc[VSTART] from tty modes */
	struct winsize t_size;	/* screen/page size */
	mblk_t	*t_iocpending;	/* ioctl reply pending successful allocation */
} tty_common_t;

#define	TS_XCLUDE	0x00000001	/* tty is open for exclusive use */
#define	TS_SOFTCAR	0x00000002	/* force carrier on */

extern void	ttycommon_close(/*tty_common_t *tc*/);
extern void	ttycommon_qfull(/*tty_common_t *tc, queue_t *q*/);
extern unsigned	ttycommon_ioctl(/*tty_common_t *tc, queue_t *q, mblk_t *mp*/);

/*
 * M_CTL message types.
 */
#define	MC_NOCANON	0	/* module below saying it will canonicalize */
#define	MC_DOCANON	1	/* module below saying it won't canonicalize */
#define	MC_CANONQUERY	2	/* module above asking whether module below canonicalizes */
#define	MC_SERVICEIMM	3	/* tell the ZS driver to return input immediately */
#define	MC_SERVICEDEF	4	/* tell the ZS driver it can wait */

#endif
(i,17, struct ifreq)	/* get ifnet flags */
#define	SIOCSIFMEM	_IOW(i, 18, struct ifreq)	/* set interface mem */
#define	SIOCGIFMEM	_IOWR(i,19, struct ifreq)	/* get interface mem */
#define	SIOCGIFCONF	_IOWR(i,2./share/sys/sys/ttyflow.h                                                                              444       0      12         2351  4423267026  10610                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)ttyflow.h 1.4 89/02/23 SMI	*/

/*
 * Copyright (c) 1988 by Sun Microsystems, Inc.
 */

#ifndef	_TTYFLOW_
#define	_TTYFLOW_

#include <sys/types.h>
#include <sys/termios.h>
#include <sys/termio.h>

typedef struct {
	u_int		fl_flags;
	u_char		fl_stopc;
	u_char		fl_startc;
	u_char		fl_lnextc;
	u_char		fl_flushc;
}		flow_t;

#define	FL_STRIPF	0x0001
#define	FL_LITF		0x0002
#define	FL_STOPF	0x0004
#define	FL_FLUSHF	0x0008

#define	FR_CHMASK	0x00FF
#define	FR_START	0x0100
#define	FR_STOP		0x0200
#define	FR_FLUSH	0x0400
#define	FR_EATME	0x0800

#define	FL_IFLAGS	(FL_STRIPF)
#define	FL_ISTOPC	(31&'S')
#define	FL_ISTARTC	(31&'Q')
#define	FL_ILNEXTC	(31&'V')
#define	FL_IFLUSHC	(31&'O')

#define	FL_OFF		('\0')		/* value for "function turned off" */

#define	flow_stopf(fs)	((fs).fl_flags & FL_STOPF)
#define	flow_flushf(fs)	((fs).fl_flags & FL_FLUSHF)

extern char	flow_flbits[];
extern char	flow_fcbits[];
extern flow_t	flow_init_v;
extern flow_t	flow_end_v;

extern int	flow_from_termios(/*flow_t *fp, struct termios *tp*/);
extern int	flow_from_termio(/*flow_t *fp, struct termios *tp, tty_common_t *tc*/);
extern int	flow_char(/*flow_t *fp, int ch*/);
extern int	flow_start(/*flow_t *fp*/);
extern int	flow_stop(/*flow_t *fp*/);

#endif	_TTYFLOW_
#define	MC_SERVICEDEF	4	/* tell the ZS driver it can wait */

#endif
(i,17, struct ifreq)	/* get ifnet flags */
#define	SIOCSIFMEM	_IOW(i, 18, struct ifreq)	/* set interface mem */
#define	SIOCGIFMEM	_IOWR(i,19, struct ifreq)	/* get interface mem */
#define	SIOCGIFCONF	_IOWR(i,2./share/sys/sys/vmmeter.h                                                                              444       0      12        11250  4423267040  10571                                                                                                                                                                                                                                                                                                                                                                      /*      @(#)vmmeter.h 2.14 88/09/19 SMI; from UCB 4.7 5/30/83        */

/*
 * Virtual memory related instrumentation
 */

/*
 * Note that all the vmmeter entries between v_first and v_last
 *  must be unsigned [int], as they are used as such in vmmeter().
 */
struct vmmeter {
#define	v_first	v_swtch
	unsigned v_swtch;	/* context switches */
	unsigned v_trap;	/* calls to trap */
	unsigned v_syscall;	/* calls to syscall() */
	unsigned v_intr;	/* device interrupts */
	unsigned v_pdma;	/* pseudo-dma interrupts XXX: VAX only */
	unsigned v_pswpin;	/* pages swapped in */
	unsigned v_pswpout;	/* pages swapped out */
	unsigned v_pgin;	/* pageins */
	unsigned v_pgout;	/* pageouts */
	unsigned v_pgpgin;	/* pages paged in */
	unsigned v_pgpgout;	/* pages paged out */
	unsigned v_intrans;	/* intransit blocking page faults */
	unsigned v_pgrec;	/* total page reclaims (includes pageout) */
	unsigned v_xsfrec;	/* found in free list rather than on swapdev */
	unsigned v_xifrec;	/* found in free list rather than in filsys */
	unsigned v_exfod;	/* pages filled on demand from executables */
			/* XXX: above entry currently unused */
	unsigned v_zfod;	/* pages zero filled on demand */
	unsigned v_vrfod;	/* fills of pages mapped by vread() */
			/* XXX: above entry currently unused */
	unsigned v_nexfod;	/* number of exfod's created */
			/* XXX: above entry currently unused */
	unsigned v_nzfod;	/* number of zfod's created */
			/* XXX: above entry currently unused */
	unsigned v_nvrfod;	/* number of vrfod's created */
			/* XXX: above entry currently unused */
	unsigned v_pgfrec;	/* page reclaims from free list */
	unsigned v_faults;	/* total page faults taken */
	unsigned v_scan;	/* page examinations in page out daemon */
	unsigned v_rev;		/* revolutions of the paging daemon hand */
	unsigned v_seqfree;	/* pages taken from sequential programs */
			/* XXX: above entry currently unused */
	unsigned v_dfree;	/* pages freed by daemon */
	unsigned v_fastpgrec;	/* fast reclaims in locore XXX: VAX only */
#define	v_last v_fastpgrec
	unsigned v_swpin;	/* swapins */
	unsigned v_swpout;	/* swapouts */
};
#ifdef KERNEL
/*
 *	struct	v_first to v_last		v_swp*
 *	------	-----------------		------
 *	cnt	1 second interval accum		5 second interval accum
 *	rate	5 second average		previous interval
 *	sum			free running counter
 */
struct	vmmeter cnt, rate, sum;
#endif

/*
 * Systemwide totals computed every five seconds.
 * All these are snapshots, except for t_free.
 */
struct vmtotal {
	short	t_rq;		/* length of the run queue */
	short	t_dw;		/* jobs in ``disk wait'' (neg priority) */
	short	t_pw;		/* jobs in page wait */
	short	t_sl;		/* ``active'' jobs sleeping in core */
	short	t_sw;		/* swapped out ``active'' jobs */
	int	t_vm;		/* total virtual memory */
			/* XXX: above entry currently unused */
	int	t_avm;		/* active virtual memory */
			/* XXX: above entry currently unused */
	short	t_rm;		/* total real memory in use */
	short	t_arm;		/* active real memory */
	int	t_vmtxt;	/* virtual memory used by text */
			/* XXX: above entry currently unused */
	int	t_avmtxt;	/* active virtual memory used by text */
			/* XXX: above entry currently unused */
	short	t_rmtxt;	/* real memory used by text */
			/* XXX: above entry currently unused */
	short	t_armtxt;	/* active real memory used by text */
			/* XXX: above entry currently unused */
	short	t_free;		/* free memory pages (60 second average) */
};
#ifdef KERNEL
struct	vmtotal total;
#endif

/*
 * Optional instrumentation.
 */
#ifdef PGINPROF

#define	NDMON	128
#define	NSMON	128

#define	DRES	20
#define	SRES	5

#define	PMONMIN	20
#define	PRES	50
#define	NPMON	64

#define	RMONMIN	130
#define	RRES	5
#define	NRMON	64

/* data and stack size distribution counters */
unsigned int	dmon[NDMON+1];
unsigned int	smon[NSMON+1];

/* page in time distribution counters */
unsigned int	pmon[NPMON+2];

/* reclaim time distribution counters */
unsigned int	rmon[NRMON+2];

int	pmonmin;
int	pres;
int	rmonmin;
int	rres;

unsigned rectime;		/* accumulator for reclaim times */
unsigned pgintime;		/* accumulator for page in times */
#endif

/*
 * Virtual Address Cache flush instrumentation.
 *
 * Everything from f_first to f_last must be unsigned [int].
 */
struct flushmeter {
#define f_first f_ctx
	unsigned f_ctx;		/* No. of context flushes */
	unsigned f_segment;	/* No. of segment flushes */
	unsigned f_page;	/* No. of complete page flushes */
	unsigned f_partial;	/* No. of partial page flushes */
	unsigned f_usr;		/* No. of non-supervisor flushes */
	unsigned f_region;	/* No. of region flushes */
#define f_last	f_region
};

#ifdef KERNEL
#ifdef VAC
/* cnt is 1 sec accum; rate is 5 sec avg; sum is grand total */
struct flushmeter	flush_cnt, flush_rate, flush_sum;
#endif VAC
#endif KERNEL
 */
	unsigned v_pgpgin;	/* pages paged in */
	unsigned v_pgpgout;	/* pages paged out */
	unsigned v_intrans;	/* intransit blocking page faults */
	unsigned v_pgrec;	/* total page reclaims (includes pageout) */
	unsigned v_xsfrec;	/* found in free list rather than on swapdev */
	unsigned v_xifrec;	/* found in free list rather than in filsys */./share/sys/vm/                                                                                        775       0      12            0  4425704725   6455                                                                                                                                                                                                                                                                                                                                                                      ./share/sys/vm/page.h                                                                                  444       0      12        10511  4423267102   7630                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)page.h	1.32 89/01/11 SMI	*/

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */

#ifndef _vm_page_h
#define _vm_page_h
/*
 * VM - Ram pages.
 *
 * Each physical page has a page structure, which is used to maintain
 * these pages as a cache.  A page can be found via a hashed lookup
 * based on the [vp, offset].  If a page has an [vp, offset] identity,
 * then it is entered on a doubly linked circular list off the
 * vnode using the vpnext/vpprev pointers.   If the p_free bit
 * is on, then the page is also on a doubly linked circular free
 * list using next/prev pointers.  If the p_intrans bit is on,
 * then the page is currently being read in or written back.
 * In this case, the next/prev pointers are used to link the
 * pages together for a consecutive IO request.  If the page
 * is in transit and the the page is coming in (pagein), then you
 * must wait for the IO to complete before you can attach to the page.
 * 
 */
struct page {
	u_int	p_lock: 1,		/* locked for name manipulation */
		p_want: 1,		/* page wanted */
		p_free: 1,		/* on free list */
		p_intrans: 1,		/* data for [vp, offset] intransit */
		p_gone: 1,		/* page has been released */
		p_mod: 1,		/* software copy of modified bit */
		p_ref: 1,		/* software copy of reference bit */
		p_pagein: 1,		/* being paged in, data not valid */
		p_nc: 1,		/* do not cache page */
		p_age: 1;		/* on age free list */
	u_int	p_nio : 6;		/* # of outstanding io reqs needed */
	u_short	p_keepcnt;		/* number of page `keeps' */
	struct	vnode *p_vnode;		/* logical vnode this page is from */
	u_int	p_offset;		/* offset into vnode for this page */
	struct	page *p_hash;		/* hash by [vnode, offset] */
	struct	page *p_next;		/* next page in free/intrans lists */
	struct	page *p_prev;		/* prev page in free/intrans lists */
	struct	page *p_vpnext;		/* next page in vnode list */
	struct	page *p_vpprev;		/* prev page in vnode list */
	caddr_t	p_mapping;		/* hat specific translation info */
};


/*
 * Each segment of physical memory is described by a memseg struct. Within
 * a segment, memory is considered contiguous. The segments from a linked
 * list to describe all of physical memory. The list is ordered by increasing
 * physical addresses.
 */
struct memseg {
        struct page *pages, *epages;    /* [from, to) in page array */
        u_int pages_base, pages_end;    /* [from, to) in page numbers */
        struct memseg *next;            /* next segment in list */
};


#ifdef KERNEL
#define PAGE_HOLD(pp)	(pp)->p_keepcnt++
#define PAGE_RELE(pp)	page_rele(pp)

#define	PAGE_HASHSZ	page_hashsz

extern	int page_hashsz;
extern	struct page **page_hash;

/*
 * In the long term, we should generalize the next three values to
 * a tuple controlled at a higher level to allow for non-contiguous
 * memory layout.
 */
extern	struct	page *pages;		/* array of all page structures */
extern	struct	page *epages;		/* end of all pages */
#ifndef sun3x
extern	u_int	pages_base;		/* page # for pages[0] */
#endif !sun3x

#ifdef sun386
extern	struct	page *epages2;		/* end of absolutely all pages */
extern	u_int	pages_base2;		/* page # for compaq expanded mem */
#endif

void	page_init(/* pp, num, base */);
void	page_reclaim(/* pp */);
struct	page *page_find(/* vp, off */);
struct	page *page_lookup(/* vp, off */);
int	page_enter(/* pp, vp, off */);
void	page_abort(/* pp */);
void	page_free(/* pp */);
void	page_unfree(/* pp */);
struct	page *page_get();
void	page_rele(/* pp */);
void	page_lock(/* pp */);
void	page_unlock(/* pp */);
void	page_hashout(/* pp */);
void	page_add(/* ppp, pp */);
void	page_sub(/* ppp, pp */);
void	page_sortadd(/* ppp, pp */);
void	page_wait(/* pp */);
u_int	page_pptonum(/* pp */);
struct	page *page_numtopp(/* pfnum */);
struct	page *page_numtookpp(/* pfnum */);
#endif KERNEL

/*
 * Page hash table is a power-of-two in size, externally chained
 * through the hash field.  PAGE_HASHAVELEN is the average length
 * desired for this chain, from which the size of the page_hash
 * table is derived at boot time and stored in the kernel variable
 * page_hashsz.  In the hash function it is given by PAGE_HASHSZ.
 * PAGE_HASHVPSHIFT is defined so that 1 << PAGE_HASHVPSHIFT is
 * the approximate size of a vnode struct.
 */
#define	PAGE_HASHAVELEN		4
#define	PAGE_HASHVPSHIFT	6
#define	PAGE_HASHFUNC(vp, off) \
	((((off) >> PAGESHIFT) + ((int)(vp) >> PAGE_HASHVPSHIFT)) & \
		(PAGE_HASHSZ - 1))
#endif !_vm_page_h
tibility
 * (during writes).  See above for specific recommendations for
 * reading.
 */
#define MT_TYPE_CARTRIDGE(mt_type) \
	((mt_type >= MT_ISSYSGEN11  &&  mt_type <= MT_ISCCS16)  ./share/sys/m68k/                                                                                      775       0      12            0  4425704727   6622                                                                                                                                                                                                                                                                                                                                                                      ./share/sys/m68k/excframe.h                                                                            444       0      12         7161  4423266732  10650                                                                                                                                                                                                                                                                                                                                                                      /*       @(#)excframe.h 1.1 88/03/31 SMI    */
/* syncd to sun3/buserr.h 1.7 */

/*
 * Copyright (c) 1988 by Sun Microsystems, Inc.
 */

/*
 * Definitions and structures related to 68xxx bus error handling.
 */

#ifndef LOCORE
/*
 * 68010/020/030 "type 0" normal four word stack.
 */
#define	SF_NORMAL	0x0

/*
 * 68020/030 "type 1" throwaway four word stack.
 */
#define	SF_THROWAWAY	0x1

/*
 * 68020/030 "type 2" normal six word stack frame.
 */
#define	SF_NORMAL6	0x2
struct	bei_normal6 {
	int	bei_pc;		/* pc where error occurred */
};

/*
 * 68010 "type 8" long bus error stack frame.
 */
#define	SF_LONG8	0x8
struct	bei_long8 {
	u_int	bei_rerun : 1;	/* rerun bus cycle */
	u_int		  : 1;
	u_int	bei_ifetch: 1;	/* inst fetch (1=true) */
	u_int	bei_dfetch: 1;	/* data fetch */
	u_int	bei_rmw	  : 1;	/* read/modify/write */
	u_int	bei_hibyte: 1;	/* high byte transfer */
	u_int	bei_bytex : 1;	/* byte transfer */
	u_int	bei_rw	  : 1;	/* read=1,write=0 */
	u_int		  : 4;
	u_int	bei_fcode : 4;	/* function code */
	int	bei_accaddr;	/* access address */
	u_int		  : 16;	/* undefined */
	short	bei_dob;		/* data output buffer */
	u_int		  : 16;	/* undefined */
	short	bei_dib;		/* data input buffer */
	u_int		  : 16;	/* undefined */
	short	bei_irc;		/* inst buffer */
	short	bei_maskpc;	/* chip mask # & micropc */
	short	bei_undef[15];	/* undefined */
};

/*
 * 68020/030 "type 9" co-processor mid-instruction exception stack frame.
 */
#define	SF_COPROC	0x9
struct	bei_coproc {
	int	bei_pc;		/* pc where error occured */
	int	bei_internal;	/* an internal register */
	int	bei_eea;	/* evaluated effective address */
};

/*
 * 68020/030 "type A" medium bus cycle fault stack frame.
 */
#define	SF_MEDIUM	0xA
struct	bei_medium {
	short	bei_internal;	/* an internal register */
	u_int	bei_faultc: 1;	/* fault on stage c of instruction pipe */
	u_int	bei_faultb: 1;	/* fault on stage b of instruction pipe */
	u_int	bei_rerunc: 1;	/* rerun stage c */
	u_int	bei_rerunb: 1;	/* rerun stage b */
	u_int		  : 3;
	u_int	bei_dfault: 1;	/* fault/rerun on data */
	u_int	bei_rmw	  : 1;	/* read/modify/write */
	u_int	bei_rw	  : 1;	/* read=1,write=0 */
	u_int	bei_size  : 2;	/* size code for data cycle */
	u_int		  : 1;
	u_int	bei_fcode : 3;	/* function code */
	short	bei_ipsc;	/* instruction pipe stage c */
	short	bei_ipsb;	/* instruction pipe stage b */
	int	bei_fault;	/* fault address */
	int	bei_internal2;	/* another internal register */
	int	bei_dob;	/* data output buffer */
	int	bei_internal3;	/* yet another internal register */
};

/*
 * 68020/030 "type B" long bus cycle fault stack frame.
 */
#define	SF_LONGB	0xB
struct	bei_longb {
	short	bei_internal;	/* an internal register */
	u_int	bei_faultc: 1;	/* fault on stage c of instruction pipe */
	u_int	bei_faultb: 1;	/* fault on stage b of instruction pipe */
	u_int	bei_rerunc: 1;	/* rerun stage c */
	u_int	bei_rerunb: 1;	/* rerun stage b */
	u_int		  : 3;
	u_int	bei_dfault: 1;	/* fault/rerun on data */
	u_int	bei_rmw	  : 1;	/* read/modify/write */
	u_int	bei_rw	  : 1;	/* read=1,write=0 */
	u_int	bei_size  : 2;	/* size code for data cycle */
	u_int		  : 1;
	u_int	bei_fcode : 3;	/* function code */
	short	bei_ipsc;	/* instruction pipe stage c */
	short	bei_ipsb;	/* instruction pipe stage b */
	int	bei_fault;	/* fault address */
	int	bei_internal2;	/* another internal register */
	int	bei_dob;	/* data output buffer */
	int	bei_internal3;	/* yet another internal register */
	int	bei_internal4;	/* yet another internal register */
	int	bei_stageb;	/* stage B address */
	int	bei_internal5;	/* yet another internal register */
	int	bei_dib;	/* data input buffer */
	int	bei_internal6[11];/* more internal registers */
};
#endif !LOCORE

16;	/* undefined */
	short	bei_dib;		/* data input buffer */
	u_int		  : 16;	/* undefined */
	short	bei_irc;		/* inst buffer */
	short	bei_maskpc;	/* chip mask # & micropc */
	short	bei_undef[15];	/* undefined */
};

/*
 * 68020/030 "type 9" co-processor mid-instruction exception stack frame.
 */
#define	SF_COPROC	0x9
struct	bei_coproc {
	int	bei_pc;		/* pc where error occured */
	int	bei_interna./share/sys/m68k/scb.h                                                                                 444       0      12         3403  4423266654   7623                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)scb.h 5.10 88/06/08 SMI	*/

/*
 * Copyright (c) 1985 by Sun Microsystems, Inc.
 */

/*
 * Sun System control block layout
 * [] denoted 68020 particulars
 * <> denotes 68030 particulars.
 */

struct scb {
	int	scb_issp;		/* 00 - initial SSP */
	int	(*scb_ipc)();		/* 04 - initial PC */
	int	(*scb_buserr)();	/* 08 - bus error */
	int	(*scb_addrerr)();	/* 0c - address error */
	int	(*scb_illinst)();	/* 10 - illegal instruction */
	int	(*scb_zerodiv)();	/* 14 - zero divide */
	int	(*scb_chk)();		/* 18 - CHK [CHK2] instruction */
	int	(*scb_trapv)();		/* 1c - TRAPV [cpTRAPcc TRAPcc] instr */
	int	(*scb_priv)();		/* 20 - privilege violation */
	int	(*scb_trace)();		/* 24 - trace trap */
	int	(*scb_e1010)();		/* 28 - line 1010 emulator */
	int	(*scb_e1111)();		/* 2c - line 1111 emulator */
	int	(*scb_res30)();		/* 30 - reserved */
	int	(*scb_coprocerr)();	/* 34 - [coprocessor protocol error] */
	int	(*scb_fmterr)();	/* 38 - RTE format error */
	int	(*scb_uninit)();	/* 3c - uninitialized interrupt */
	int	(*scb_res1[8])();	/* 40-5c - reserved */
	int	(*scb_stray)();		/* 60 - spurious interrupt */
	int	(*scb_autovec[7])();	/* 64-7c - level 1-7 autovectors */
	int	(*scb_trap[16])();	/* 80-bc - trap instruction vectors */
	int	(*scb_flterr[7])();	/* c0-d8 - [floating cop errors] */
	int	(*scb_resdc)();		/* dc - reserved */
	int	(*scb_mmuerr[3])();	/* e0-e8 - <mmu errors> */
	int	(*scb_res2[5])();	/* ec-fc - reserved */
	int	(*scb_user[192])();	/* 100-3fc - user interrupt vectors */
};

#define	AUTOBASE (0x60 / sizeof (int))	/* autovector base vector number */
#define	VEC_MIN	(0x100 / sizeof (int))	/* minimum vectored interrupt number */
#define	VEC_MAX	(0x3fc / sizeof (int))	/* maximum vectored interrupt number */

#ifdef KERNEL
extern	struct scb scb, protoscb;
#endif
/* fault on stage c of instruction pipe */
	u_int	bei_faultb: 1;	/* fault on stage b of instruction pipe */
	u_int	bei_rerunc: 1;	/* rerun stage c */
	u_int	bei_rerunb: 1;	/* rerun stage b */
	u_int		  : 3;
	u_int	bei_dfault: 1;	/* fault/rerun on data *./share/sys/m68k/trap.h                                                                                444       0      12         1623  4423266656  10026                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)trap.h 5.9 88/06/08 SMI	*/

/*
 * Copyright (c) 1985 by Sun Microsystems, Inc.
 */

#ifndef _TRAP_
#define	_TRAP_
/*
 * Trap type values
 */

#define	T_M_ERRORVEC	0x00	/* magic number for any uninitialized vectors */
#define	T_BUSERR	0x08
#define	T_ADDRERR	0x0c
#define	T_ILLINST	0x10
#define	T_ZERODIV	0x14
#define	T_CHKINST	0x18
#define	T_TRAPV		0x1c
#define	T_PRIVVIO	0x20
#define	T_TRACE		0x24
#define	T_EMU1010	0x28
#define	T_EMU1111	0x2c
#define	T_COPROCERR	0x34
#define	T_FMTERR	0x38
#define	T_SPURIOUS	0x60
#define	T_LEVEL1	0x64
#define	T_LEVEL2	0x68
#define	T_LEVEL3	0x6c
#define	T_LEVEL4	0x70
#define	T_LEVEL5	0x74
#define	T_LEVEL6	0x78
#define	T_LEVEL7	0x7c
#define	T_SYSCALL	0x80
#define	T_M_BADTRAP	0x84	/* magic number for traps 1-14 */
#define	T_BRKPT		0xbc
#define	T_M_FLOATERR	0xc0	/* magic number for float traps */
#define	T_M_MMUERR	0xe0	/* magic number for mmu errors */

#endif !_TRAP_
scb_fmterr)();	/* 38 - RTE format error */
	int	(*scb_uninit)();	/* 3c - uninitialized interrupt */
	int	(*sc./share/sys/mon/                                                                                       775       0      12            0  4425704730   6620                                                                                                                                                                                                                                                                                                                                                                      ./share/sys/mon/sunromvec.h                                                                            444       0      12        46305  4423267550  11125                                                                                                                                                                                                                                                                                                                                                                      /*
 * sunromvec.h
 *
 * @(#)sunromvec.h 1.17 88/11/16 SMI
 * Copyright (c) 1986 by Sun Microsystems, Inc.
 */

#ifndef _mon_sunromvec_h
#define _mon_sunromvec_h

#if defined(sun4c) || defined(sun3x)
/*
 * This structure defines a segment of physical memory. To support
 * sparse physical memory, the PROMs construct a list of these structures
 * representing what memory is present. On other machines, the kernel will
 * fake up the physical memory list without this structure.
 */
struct physmemory {
	unsigned int address;
	unsigned int size;
	struct physmemory *next;
};
#endif sun4c || sun3x

/*
 * This file defines the entire interface between the ROM 
 * Monitor and the programs (or kernels) that run under it.  
 * 
 * The main Sun-2 and Sun-3 interface consists of
 * the VECTOR TABLE at the front of the Boot PROM.
 * 
 * The main Sun-4 interface consists of (1) the VECTOR TABLE and (2) the 
 * TRAP VECTOR TABLE, near the front of the Boot PROM.  Beginning at address
 * "0x00000000", there is a 4K-byte TRAP TABLE containing 256 16-byte entries.
 * Each 16-byte TRAP TABLE entry contains the executable code associated with
 * that trap.  The initial 128 TRAP TABLE entries are dedicated to hardware
 * traps while, the final 128 TRAP TABLE entries are reserved for programmer-
 * initiated traps.  With a few exceptions, the VECTOR TABLE, which appeared
 * in Sun-2 and Sun-3 firmware, follows the TRAP TABLE.  Finally, the TRAP 
 * VECTOR TABLE follows the VECTOR TABLE.  Each TRAP VECTOR TABLE entry 
 * contains the address of the trap handler, which is eventually called to 
 * handle the trap condition.
 *
 * These tables are the ONLY knowledge the outside world has of this rom.
 * They are referenced by hardware and software.  Once located, NO ENTRY CAN
 * BE ADDED, DELETED or RE-LOCATED UNLESS YOU CHANGE THE ENTIRE WORLD THAT
 * DEPENDS ON IT!  Notice that, for Sun-4, EACH ENTRY IN STRUCTURE "sunromvec"
 * MUST HAVE A CORRESPONDING ENTRY IN VECTOR TABLE "vector_table", which 
 * resides in file "../sun4/traptable.s".
 * 
 * The easiest way to reference elements of these TABLEs is to say:
 *      *romp->xxx
 * as in:
 *      (*romp->v_putchar)(c);
 *
 * Various entries have been added at various times.  As of the Rev N, the
 * VECTOR TABLE includes an entry "v_romvec_version" which is an integer 
 * defining which entries in the table are valid.  The "V1:" type comments 
 * on each entry state which version the entry first appeared in.  In order
 * to determine if the Monitor your program is running under contains the 
 * entry, you can simply compare the value of "v_romvec_version" to the 
 * constant in the comment field.  For example,
 *      if (romp->v_romvec_version >= 1) {
 *        reference *romp->v_memorybitmap...
 *      } else {
 *        running under older version of the Monitor...
 *      }
 * Entries which do not contain a "Vn:" comment are in all versions.
 */
struct sunromvec {
  char               *v_initsp;        /* Initial Stack Pointer for hardware.*/
  void               (*v_startmon)();  /* Initial PC for hardware.           */
  int                *v_diagberr;      /* Bus error handler for diagnostics. */
  /* 
   * Configuration information passed to standalone code and UNIX. 
   */
  struct   bootparam **v_bootparam;    /* Information for boot-strapped pgm. */
  unsigned int       *v_memorysize;    /* Total physical memory in bytes.    */
  /* 
   * Single character input and output.
   */
  unsigned char      (*v_getchar)();   /* Get a character from input source. */
  void               (*v_putchar)();   /* Put a character to output sink.    */
  int                (*v_mayget)();    /* Maybe get a character, or "-1".    */
  int                (*v_mayput)();    /* Maybe put a character, or "-1".    */
  unsigned char      *v_echo;          /* Should "getchar" echo input?       */
  unsigned char      *v_insource;      /* Current source of input.           */
  unsigned char      *v_outsink;       /* Currrent output sink.              */
  /* 
   * Keyboard input and frame buffer output.
   */
  int                (*v_getkey)();    /* Get next key if one is available.  */
  void               (*v_initgetkey)();/* Initialization for "getkey".       */
  unsigned int       *v_translation;   /* Keyboard translation selector.     */
  unsigned char      *v_keybid;        /* Keyboard ID byte.                  */
  int                *v_screen_x;      /* V2: Screen x pos (R/O).            */
  int                *v_screen_y;      /* V2: Screen y pos (R/O).            */
  struct keybuf      *v_keybuf;        /* Up/down keycode buffer.            */

  char               *v_mon_id;        /* Revision level of the monitor.     */
  /* 
   * Frame buffer output and terminal emulation.
   */
  void               (*v_fwritechar)();/* Write a character to frame buffer. */
  int                *v_fbaddr;        /* Address of frame buffer.           */
  char               **v_font;         /* Font table for frame buffer.       */
  void               (*v_fwritestr)(); /* Quickly write a string to frame    *
                                        * buffer.                            */
  /* 
   * Re-boot interface routine.  Resets and re-boots system.  No return. 
   */
  void               (*v_boot_me)();   /* For example, boot_me("xy()vmunix").*/
  /* 
   * Command line input and parsing.
   */
  unsigned char      *v_linebuf;       /* The command line buffer.           */
  unsigned char      **v_lineptr;      /* Current pointer into "linebuf".    */
  int                *v_linesize;      /* Length of current command line.    */
  void               (*v_getline)();   /* Get a command line from user.      */
  unsigned char      (*v_getone)();    /* Get next character from "linebuf". */
  unsigned char      (*v_peekchar)();  /* Peek at next character without     *
                                        * advancing pointer.                 */
  int                *v_fbthere;       /* Is there a frame buffer or not?    *
                                        * 1=yes.                             */
  int                (*v_getnum)();    /* Grab hex number from command line. */
  /* 
   * Phrase output to current output sink.
   */
  int                (*v_printf)();    /* Similar to Kernel's "printf".      */
  void               (*v_printhex)();  /* Format N digits in hexadecimal.    */

  unsigned char      *v_leds;          /* RAM copy of LED register value.    */
  void               (*v_set_leds)();  /* Sets LEDs and RAM copy             */
  /* 
   * The nmi related information. 
   */
  void               (*v_nmi)();       /* Address for the Sun-4 level 14     *
                                        * interrupt vector.                  */
  void               (*v_abortent)();  /* Entry for keyboard abort.          */
  int                *v_nmiclock;      /* Counts in milliseconds.            */

  int                *v_fbtype;        /* Frame buffer type: see <sun/fbio.h>*/
  /* 
   * Assorted other things.
   */
  unsigned int       v_romvec_version; /* Version number of "romvec".        */
  struct   globram   *v_gp;            /* Monitor's global variables.        */
  struct zscc_device *v_keybzscc;      /* Address of keyboard in use.        */
  int                *v_keyrinit;      /* Millisecs before keyboard repeat.  */
  unsigned char      *v_keyrtick;      /* Millisecs between repetitions.     */
  unsigned int       *v_memoryavail;   /* V1: Size of usable main memory.    */
  long               *v_resetaddr;     /* where to jump on a RESET trap.     */
  long               *v_resetmap;      /* Page map entry for "resetaddr".    */
  void               (*v_exit_to_mon)();/* Exit from user program.           */
  unsigned char      **v_memorybitmap; /* V1: Bit map of main memory or NULL.*/
#ifndef sun3x
  void               (*v_setcxsegmap)();/* Set segment in any context.       */
#endif sun3x
  void               (**v_vector_cmd)();/* V2: Handler for the 'w' (vector)  *
                                        * command.                           */
#if defined(sun4) || defined(sun4c)
  unsigned long      *v_exp_trap_signal;/* V3: Location of the expected trap *
                                        * signal.  Was trap expected or not? */
  unsigned long      *v_trap_vector_table_base; /* V3: Address of the TRAP   *
                                        * VECTOR TABLE which exists in RAM.  */
#endif sun4 || sun4c

#ifdef sun3x
  int                **v_lomemptaddr;    /* address of low memory ptes      */
  int                **v_monptaddr;      /* address of debug/mon ptes       */
  int                **v_dvmaptaddr;     /* address of dvma ptes            */
  int		         **v_monptphysaddr;  /* Physical Addr of the KADB PTE's */
  int                **v_shadowpteaddr;  /* addr of shadow cp of DVMA pte's */
  struct physmemory  *v_physmemory;      /* Ptr to memory list for Hydra    */
#endif sun3x
#ifdef sun4c
  struct physmemory  *v_physmemory;	/* ptr to memory list */
  unsigned int       *v_monmemory;	/* memory taken by monitor */
  int		     *v_config_info;	/* config info (struct dev_info *) */
#endif sun4c
  int                dummy1z;
  int                dummy2z;
  int                dummy3z;
  int                dummy4z;
};

/*
 * THE FOLLOWING CONSTANT, "romp" MUST BE CHANGED ANYTIME THE VALUE OF 
 * "PROM_BASE" IN file "../sun2/cpu.addrs.h" (for Sun-2), file 
 * "../sun3/cpu.addrs.h" (for Sun-3) or file "../sun4/cpu.addrs.h" (for Sun-4)
 * IS CHANGED.  IT IS CONSTANT HERE SO THAT EVERY MODULE WHICH NEEDS AN ADDRESS
 * OUT OF STRUCTURE "sunromvec" DOES NOT HAVE TO INCLUDE the appropriate
 * "cpu.addrs.h" file.
 *
 * Since Sun-4 supports 32-bit addressing, rather than 28-bit addressing as is
 * supported by Sun-3, the value of "romp" had to be increased.  Furthermore, 
 * since the VECTOR TABLE, which appeared at the beginning of Sun-3 firmware,
 * now appears after the 4K-byte TRAP TABLE in Sun-4 firmware, the value of
 * "romp" was incresed by an additional 4K.
 *
 * If the value of "romp" is changed, several other changes are required.
 * A complete list of required changes is given below.
 *    (1) Makefile:             RELOC=
 *    (2) ../sun2/cpu.addrs.h:  #define PROM_BASE (for Sun-2)
 * or
 *    (2) ../sun3/cpu.addrs.h:  #define PROM_BASE (for Sun-3)
 * or
 *    (2) ../sun3x/cpu.addrs.h:  #define PROM_BASE (for Sun-3x)
 * or
 *    (2) ../sun4/cpu.addrs.h:  #define PROM_BASE (for Sun-4)
 *
 */
#if defined(sun4) || defined(sun4c)
#define romp ((struct sunromvec *) 0xFFE81000) /* Used when running the  *
                                                * firmware out of ROM.   */
#else
/*
 * Notce that the value of "romp" will be 
 * truncated based on the running hardware:
 *   Sun-2   0x00EF0000
 *   Sun-3   0x0FEF0000
 *   Sun-3x  0xFEFE00000
 * This was deliberately done for Sun-3 so that programs using this header
 * file (with the Sun-3 support) would continue to run on Sun-2 systems.
 */
#ifdef sun3x
#define romp ((struct sunromvec *) 0xFEFE0000)	/* Pegasus romp-> */
#else sun3x
#define romp ((struct sunromvec *) 0x0FEF0000)
#endif sun3x
#endif sun4 

/*
 * The possible values for "*romp->v_insource" and "*romp->v_outsink" are 
 * listed below.  These may be extended in the future.  Your program should
 * cope with this gracefully (e.g. by continuing to vector through the ROM
 * I/O routines if these are set in a way you don't understand).
 */
#define INKEYB    0 /* Input from parallel keyboard. */
#define INUARTA   1 /* Input or output to Uart A.    */
#define INUARTB   2 /* Input or output to Uart B.    */
#define INUARTC   3 /* Input or output to Uart C.    */
#define INUARTD   4 /* Input or output to Uart D.    */
#define OUTSCREEN 0 /* Output to frame buffer.       */
#define OUTUARTA  1 /* Input or output to Uart A.    */
#define OUTUARTB  2 /* Input or output to Uart B.    */
#define OUTUARTC  3 /* Input or output to Uart C.    */
#define OUTUARTD  4 /* Input or output to Uart D.    */

/*
 * Structure set up by the boot command to pass arguments to the booted program.
 */
struct bootparam {
  char            *bp_argv[8];     /* String arguments.                     */
  char            bp_strings[100]; /* String table for string arguments.    */
  char            bp_dev[2];       /* Device name.                          */
  int             bp_ctlr;         /* Controller Number.                    */
  int             bp_unit;         /* Unit Number.                          */
  int             bp_part;         /* Partition/file Number.                */
  char            *bp_name;        /* File name.  Points into "bp_strings". */
  struct boottab  *bp_boottab;     /* Points to table entry for device.     */
};

/*
 * This table entry describes a device.  It exists in the PROM.  A pointer to
 * it is passed in "bootparam".  It can be used to locate ROM subroutines for 
 * opening, reading, and writing the device.  NOTE: When using this interface, 
 * only ONE device can be open at any given time.  In other words, it is not
 * possible to open a tape and a disk at the same time.
 */
struct boottab {
  char           b_dev[2];        /* Two character device name.          */
  int            (*b_probe)();    /* probe(): "-1" or controller number. */
  int            (*b_boot)();     /* boot(bp): "-1" or start address.    */
  int            (*b_open)();     /* open(iobp): "-"1 or "0".            */
  int            (*b_close)();    /* close(iobp): "-"1 or "0".           */
  int            (*b_strategy)(); /* strategy(iobp, rw): "-1" or "0".    */
  char           *b_desc;         /* Printable string describing device. */
  struct devinfo *b_devinfo;      /* Information to configure device.    */
};

enum MAPTYPES { /* Page map entry types. */
  MAP_MAINMEM, 
  MAP_OBIO, 
  MAP_MBMEM, 
  MAP_MBIO,
  MAP_VME16A16D, 
  MAP_VME16A32D,
  MAP_VME24A16D, 
  MAP_VME24A32D,
  MAP_VME32A16D, 
  MAP_VME32A32D
};

/*
 * This table gives information about the resources needed by a device.  
 */
struct devinfo {
  unsigned int      d_devbytes;   /* Bytes occupied by device in IO space.  */
  unsigned int      d_dmabytes;   /* Bytes needed by device in DMA memory.  */
  unsigned int      d_localbytes; /* Bytes needed by device for local info. */
  unsigned int      d_stdcount;   /* How many standard addresses.           */
  unsigned long     *d_stdaddrs;  /* The vector of standard addresses.      */
  enum     MAPTYPES d_devtype;    /* What map space device is in.           */
  unsigned int      d_maxiobytes; /* Size to break big I/O's into.          */
};

/*
 * This following defines the memory map interface
 * between the ROM Monitor and the Unix kernel.
 *
 * The ROM Monitor requires that nobody mess with parts of virtual memory if 
 * they expect any ROM Monitor services.  The following rules apply to all of
 * the virtual addresses between MONSTART and MONEND.
 *   (1) Do not write to these addresses.
 *   (2) Do not read from (depend on the contents of) these addresses, except
 *       as documented here or in <mon/sunromvec.h>.
 *   (3) Do not re-map these addresses.
 *   (4) Do not change or double-map the pmegs that these addresses map through.
 *   (5) Do not change or double-map the main memory that these addresses map 
 *       to.
 *   (6) You are free to change or double-map I/O devices which these addresses
 *       map to.
 *   (7) These rules apply in all map contexts.
 */
#ifdef sun2 
#define MONSTART 0x00E00000
#define MONEND   0x00F00000
#endif sun2

#ifdef sun3 
#define MONSTART 0x0FE00000
#define MONEND   0x0FF00000
#endif sun3 

#ifdef sun3x
#define MONSTART 0xFEF00000
#define MONEND   0xFF000000
#endif sun3x

#if defined(sun4) || defined(sun4c)
#define MONSTART 0xFFD00000
#define MONEND   0xFFF00000
#endif sun4 || sun4c

#if !defined(sun4) && !defined(sun4c)
/*
 * The one page at MONSHORTPAGE must remain mapped to the same piece
 * of main memory.  The pmeg used to map it there can be changed if so
 * desired.  This page should not be read from or written in.  It is
 * used for ROM Monitor globals, since it is addressable with short
 * absolute instructions.  (We give a 32-bit value below so the
 * compiler/assembler will use absolute short addressing.  The hardware
 * will accept either 0 or 0xF as the top 4 bits.)
 */
#define MONSHORTPAGE 0xFFFFE000
#define MONSHORTSEG  0xFFFE0000
#endif !sun4 && !sun4c

#if defined(sun4) || defined(sun4c)
/*
 * The one page at GLOBAL_PAGE must remain mapped to the same piece of main 
 * memory.  The pmeg used to map it there can be changed if desired.  This page
 * should not be read from or written into.  It is used for Monitor globals.
 */
#define GLOBAL_PAGE 0xFFEFE000
#endif sun4 
#ifdef sun3x
#define GLOBAL_PAGE 0xFEF72000
#endif sun3x

/*
 * For virtual addresses outside the above range, you can re-map the addresses 
 * as desired (but see MONSHORTPAGE).  Any pmeg not referenced by segments 
 * between MONSTART and MONEND can be used freely (but see MONSHORTPAGE).  
 * When a stand-alone program is booted, available main memory will be mapped
 * contiguously, using ascending physical page addresses, starting at virtual
 * address "0x00000000".  The complete set of available memory  may not be  
 * mapped due to a lack of pmegs.  The complete set is defined by globals 
 * "v_memorysize", "v_memoryavail" and "v_memorybitmap".  For non-Sun-4
 * machines, we guarantee that at least MAINMEM_MAP_SIZE page map entries
 * will be available for mapping starting from location "0x0".  For Sun-4, 
 * (at least at the time of Sunrise and Cobra), we guarantee that at least
 * 4 megabytes will be mapped beginning with location "0x0".  When a 
 * stand-alone program is booted, the number of segment table entries required
 * to map DVMA_MAP_SIZE bytes will be allocated.  The corresponding pages will 
 * be mapped into DVMA space.
 */
#ifdef sun2 
#define MAINMEM_MAP_SIZE 0x00600000
#define DVMA_MAP_SIZE    0x00080000
#endif sun2 
 
#ifdef sun3 
#define MAINMEM_MAP_SIZE 0x00800000
#define DVMA_MAP_SIZE    0x00080000
#endif sun3 

#ifdef sun3x
#define MAINMEM_MAP_SIZE 0x00800000	/* Eight Megabytes */
#define DVMA_MAP_SIZE    0x00100000	/* One Megabyte */
#endif

#ifdef sun4
#ifdef sunray
#define MAINMEM_MAP_SIZE 0x02000000
#else sunray
#define MAINMEM_MAP_SIZE 0x00800000
#endif sunray
#define DVMA_MAP_SIZE    0x00080000
#endif

#ifdef sun4c
#define MAINMEM_MAP_SIZE 0x00400000
#define DVMA_MAP_SIZE    0x00080000
#endif

/*
 * The following are included for compatability with previous versions
 * of this header file.  Names containing capital letters have been
 * changed to conform with "Bill Joy Normal Form".  This section provides
 * the translation between the old and new names.  It can go away once
 * Sun-1 applications have been converted over.
 */
#define RomVecPtr       romp
#define v_SunRev        v_mon_id
#define v_MemorySize    v_memorysize
#define v_EchoOn        v_echo
#define v_InSource      v_insource
#define v_OutSink       v_outsink
#define v_InitGetkey    v_initgetkey
#define v_KeybId        v_keybid
#define v_Keybuf        v_keybuf
#define v_FBAddr        v_fbaddr
#define v_FontTable     v_font
#define v_message       v_printf
#define v_KeyFrsh       v_nmi
#define AbortEnt        v_abortent
#define v_RefrCnt       v_nmiclock
#define v_GlobPtr       v_gp
#define v_KRptInitial   v_keyrinit
#define v_KRptTick      v_keyrtick
#define v_ExitOp        v_exit_to_mon
#define v_fwrstr        v_fwritestr
#define v_linbuf        v_linebuf

#endif /*!_mon_sunromvec_h*/
VALUE OF 
 * "PROM_BASE" IN file "../sun2/cpu.addrs.h" (for Sun-2), file 
 * "../sun3/cpu.addrs.h" (for Sun-3) or file "../sun4/cpu.addrs.h" (for Sun-4)
 * IS CHANGED.  IT IS CONSTANT HERE SO THAT EVERY MODULE WHICH NEEDS AN ADDRESS
 * OUT OF STRUCTURE "sunromvec" DOES NOT HAVE TO INCLUDE the appropriate
 * "cpu.a./share/sys/debug/                                                                                     775       0      12            0  4425704731   7116                                                                                                                                                                                                                                                                                                                                                                      ./share/sys/debug/debug.h                                                                              444       0      12        12307  4423266664  10467                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)debug.h 1.15 88/09/26 SMI	*/

/*
 * Copyright (c) 1987 by Sun Microsystems, Inc.
 */

#ifndef _debug_debug_h
#define _debug_debug_h
/*
 * This file describes the interface between the kernel their debuggers.
 * Actually, the term ``kernel'' here is too restrictive - it actually
 * applies to any standalone program which is to be run under a debugger.
 * The term ``debugger'' here applies to any debugger service which
 * uses this interface.
 *
 * The debugger requires that nobody mess with parts of virtual
 * memory if they expect any debugger services.  These rules
 * apply to all the virtual memory between DEBUGSTART and DEBUGEND:
 *
 *   *	Do not write to these addresses.
 *   *	Do not read from (depend on the contents of) these addresses,
 *	except as documented in the debugvec structure.
 *   *	Do not remap these addresses.
 *   *	Do not change or double-map the pmegs that these addresses
 *	map through.
 *   *	Do not change or double-map the main memory that these
 *	addresses map to.
 *   *	These rules apply in
 *		all map contexts (Sun-3, Sun-4, Sun-386i)
 *		the kernel context 0 (Sun-2)
 *
 * Besides the rules for virtual memory cooperation, the following
 * debugger/debuggee interface is defined:
 *
 *   *	If a debugger is present, it will pass in a '-d' flag
 *	to the program being debugged (although the program being
 *	debugged might want to verify that the debugger is actually
 *	present before taking it as the truth to avoid problems
 *	with users using the wrong flags in the wrong places).
 *	The '-d' flag being passed into the debugger itself will
 *	cause the debugger to prompt for debuggee program name and
 *	allow debugger commands before debuggee is started.
 *   *	The top *dvec->dv_pages tell the number of pages
 *	taken from the end of memory.  If the debuggee is
 *	managing all memory, the amount of usable memory is:
 *	  *romp->v_memorysize  - mmu_ptob(*dvec->dv_pages) [earlier PROMs]
 *	  *romp->v_memoryavail - mmu_ptob(*dvec->dv_pages) [later PROMs]
 *   *	If the debuggee changes the trace exception handler or
 *	the trap exception handler for TRAPBRKNO, it MUST call
 *	(*dvec->dv_scbsync)() after all exception handler changes
 *	are made.  Other exception handlers can be changed
 *	without any special provisions.
 *   *	If the debuggee is going to relocate itself, it is very
 *	desirable to have it call (*dvec->dv_scbsync)() soon
 *	AFTER the relocation to the correct virtual address.
 *   *	The debuggee can call the debugger at any time by
 *	an explicit call using the CALL_DEBUG() macro,
 *	a ``trap #TRAPBRKNO'' (68000), ``t TRAPBRKNO'' (sparc),
 *	``int 3'' (i386), or by jumping to *dvec->dv_trap.
 *   *	The debuggee is expected not to try and trace itself
 *	under the debugger - the only way the trace bit can
 *	be turned on in the debuggee is via the ``rte''
 *	instruction.  This case is detected and handled
 *	correctly by the debugger when single stepping,
 *	except in the case were the rte is returning to
 *	another rte which is returning to user land
 *	(welcome to the real world of 680x0 processors).
 */

#if defined(sun2) || defined(sun3) || defined(sun386) || defined(sun3x)
#define DVEC		DEBUGSTART		/* location of vector table */
#define	TRAPBRKNO	10			/* breakpoint trap no */
#endif sun2 || sun3 || sun386 || sun3x

#if defined(sun4) || defined(sun4c)
#define DVEC		(DEBUGSTART + 4096)	/* location of vector table */
#define	TRAPBRKNO	127			/* breakpoint trap no */
#endif sun4 || sun4c

/*
 * The debugger gets a one megabyte virtual address range in which it
 * can reside.  It is hoped that this space is large enough to accommodate
 * the largest kernel debugger that would be needed but not too large to
 * cramp the kernel's virtual address space.  We locate the debugger
 * in the megabyte before the PROM monitor, except on the 386, where we
 * locate it 16 megabytes (minus 20k) in front of the monitor.
 */
#define	DEBUGSIZE	0x100000

#ifndef LOCORE
#include <mon/sunromvec.h>

#ifdef  sun386
#define DEBUGSTART	(MONSTART - 0x1000000 + 0x5000)	/*  16 megs virtual */
#else
#define	DEBUGSTART	(MONSTART - DEBUGSIZE)
#endif
#define	DEBUGEND	(MONSTART)

typedef int (*func_t)();

struct debugvec {
	int	dv_entry;	/* entry point into debugger */
	func_t	dv_trap;	/* function to trap to enter debugger */
	int	*dv_pages;	/* ptr to # of pages stolen */
	func_t	dv_scbsync;	/* function to call after scb is changed */
#ifdef	sun386
	long    *dv_vstart;	/* start of virtual memory (default 0) */
	char    *dv_kbflag;	/* pointer to keyboard state flag */
#endif
};
#define dvec		((struct debugvec *)DVEC)

/*
 * Use the CALL_DEBUG macro to generate a synchronous call to the debugger.
 *
 * Because of a bug in some old versions of /bin/as, using this macro
 * can crash the assembler as doing (*(func_t)DVEC)() generates a call to
 * an absolute address which is not handled correctly by the buggy assemblers.
 */
#if defined (sparc) || defined(sun386)
/* current sparc assemblers cannot handle a call to fixed virtual address */
#define	CALL_DEBUG()	{ func_t callit = (func_t)DVEC; (*callit)(); }
#else
#define	CALL_DEBUG()	(*(func_t)DVEC)()
#endif
#endif !LOCORE

#if	defined(sun386) && !defined(COFF)
#define	COFF	1
#endif

#define	KADBBASE	0xfe000000		/* DEBUGSTART - 0x5000 */

#endif /*!_debug_debug_h*/
anged
 *	without any special provisions.
 *   *	If the debuggee is going to relocate itself, it is very
 *	desirable to have it call (*dvec->dv_scbsync)() soon
 *	AFTER the relocation to the correct virtual address.
 *   *	The debuggee can call the debugger at any time by
 *	an explicit call using the CALL_DEBUG./share/sys/conf.common/                                                                               775       0      12            0  4425704733  10246                                                                                                                                                                                                                                                                                                                                                                      ./share/sys/conf.common/RELEASE                                                                        444       0      12            6  4423265701  11241                                                                                                                                                                                                                                                                                                                                                                      4.0.3
Q,  . nf     E  ..    (  Q-  RELEASE    <  Q.  	files.cmn om   P  Q/  
newvers.sh +     Q0  param.c DEBUGSTART		/* location of vector table */
#define	TRAPBRKNO	10			/* breakpoint trap no */
#endif sun2 || sun3 || sun386 || sun3x

#if defined(sun4) || defined(sun4c)
#define DVEC		(DEBUGSTART + 4096)	/* location of vector table */
#define	TRAPBRKNO	127			/* breakpoint trap no */
#endif sun4 || sun4c

/*
 * The debugger gets a one megabyte virtual address range in which it
 * can reside.  ./share/sys/conf.common/files.cmn                                                                      444       0      12        15705  4423266621  12155                                                                                                                                                                                                                                                                                                                                                                      # @(#)files.cmn 2.65 88/09/12 SMI
#
des/des_crypt.c		optional NFSSERVER
des/des_crypt.c		optional NFSCLIENT
des/des_soft.c		optional NFSSERVER CRYPT
des/des_soft.c		optional NFSCLIENT CRYPT
krpc/klm_kprot.c	standard
krpc/klm_lockmgr.c	standard
lofs/lo_subr.c		optional LOFS
lofs/lo_vfsops.c	optional LOFS
lofs/lo_vnodeops.c	optional LOFS
net/af.c		standard
net/if.c		standard
net/nit.c		optional NIT
net/nit_buf.c		optional nbuf
net/nit_if.c		optional snit
net/nit_pf.c		optional pf
net/packetfilt.c	optional pf
net/raw_cb.c		standard
net/raw_usrreq.c	standard
net/route.c		standard
net/ifdev.c		optional ifd
netat/aarp.c		optional atalk
netat/at_proto.c	optional atalk
netat/ddp_usrreq.c	optional atalk
netdna/dna.c		optional dnalink device-driver
netinet/if_ether.c	optional ether INET
netinet/if_loop.c	optional loop INET
netinet/in.c		optional INET
netinet/in_pcb.c	optional INET
netinet/in_proto.c	optional INET
netinet/ip_icmp.c	optional INET
netinet/ip_input.c	optional INET
netinet/ip_output.c	optional INET
netinet/raw_ip.c	optional INET
netinet/tcp_debug.c	optional INET
netinet/tcp_input.c	optional INET
netinet/tcp_output.c	optional INET
netinet/tcp_subr.c	optional INET
netinet/tcp_timer.c	optional INET
netinet/tcp_usrreq.c	optional INET
netinet/udp_usrreq.c	optional INET
netns/idp_usrreq.c	optional xns
netns/ns_error.c	optional xns
netns/ns_ether.c	optional xns
netns/ns_input.c	optional xns
netns/ns_ip.c		optional xns
netns/ns_output.c	optional xns
netns/ns_pcb.c		optional xns
netns/ns_proto.c	optional xns
netns/spp_debug.c	optional xns
netns/spp_usrreq.c	optional xns
netns/xns.c		optional xns
nettli/ti_mod.c		optional tim
nettli/ti_rdwr.c	optional tirw
nfs/dbx_nfs.c		optional dbx NFSCLIENT symbolic-info
nfs/dbx_nfs.c		optional dbx NFSSERVER symbolic-info
nfs/nfs_dump.c		optional NFSCLIENT
nfs/nfs_client.c	optional NFSCLIENT
nfs/nfs_common.c	optional NFSSERVER
nfs/nfs_common.c	optional NFSCLIENT
nfs/nfs_export.c	optional NFSSERVER
nfs/nfs_server.c	optional NFSSERVER
nfs/nfs_subr.c		optional NFSCLIENT
nfs/nfs_vfsops.c	optional NFSCLIENT
nfs/nfs_vnodeops.c	optional NFSCLIENT
nfs/nfs_xdr.c		optional NFSSERVER
nfs/nfs_xdr.c		optional NFSCLIENT
os/au_wrappers.c	optional SYSAUDIT
os/au_msg_wrappers.c	optional SYSAUDIT IPCMESSAGE
os/au_sem_wrappers.c	optional SYSAUDIT IPCSEMAPHORE
os/au_shm_wrappers.c	optional SYSAUDIT IPCSHMEM
os/dbx_sys.c		optional dbx symbolic-info
os/heap_kmem.c		standard
os/init_dbx.c		standard symbolic-info
os/init_main.c		standard
os/init_sysent.c	standard
os/ipc_msg.c		optional IPCMESSAGE
os/ipc_sem.c		optional IPCSEMAPHORE
os/ipc_shm.c		optional IPCSHMEM
os/ipc_subr.c		optional IPCMESSAGE
os/ipc_subr.c		optional IPCSEMAPHORE
os/ipc_subr.c		optional IPCSHMEM
os/kern_acct.c		optional SYSACCT
os/kern_audit.c		optional SYSAUDIT
os/kern_clock.c		standard
os/kern_descrip.c	standard
os/kern_exec.c		standard
os/kern_exit.c		standard
os/kern_fork.c		standard
os/kern_mman.c		standard
os/kern_proc.c		standard
os/kern_prot.c		standard
os/kern_resource.c	standard
os/kern_sig.c		standard
os/kern_softint.c	standard
os/kern_subr.c		standard
os/kern_synch.c		standard
os/kern_time.c		standard
os/kern_trace.c		optional TRACE
os/kern_xxx.c		standard
os/str_buf.c		standard
os/str_io.c		standard
os/str_sp.c		optional sp
os/str_syscalls.c	standard
os/subr_dump.c		standard
os/subr_log.c		standard
os/subr_mcount.c	optional profiling-routine
os/subr_prf.c		standard
os/subr_rmap.c		standard
os/subr_xxx.c		standard
os/syscalls.c		optional SYSCALLTRACE
os/sys_generic.c	standard
os/sys_process.c	standard
os/sys_socket.c		standard
os/tty.c		standard
os/tty_bk.c		optional bk
os/tty_flow.c		standard
os/tty_ldterm.c		standard
os/tty_pty.c		optional pty
os/tty_ptyconf.c	optional pty
os/tty_subr.c		standard
os/tty_tb.c		optional tb
os/tty_ttcompat.c	standard
os/tty_tty.c		standard
os/uipc_domain.c	standard
os/uipc_mbuf.c		standard
os/uipc_proto.c		standard
os/uipc_socket.c	standard
os/uipc_socket2.c	standard
os/uipc_syscalls.c	standard
os/uipc_usrreq.c	standard
os/vfs.c		standard
os/vfs_bio.c		standard
os/vfs_conf.c		standard
os/vfs_dnlc.c		standard
os/vfs_io.c		standard
os/vfs_lookup.c		standard
os/vfs_pathname.c	standard
os/vfs_syscalls.c	standard
os/vfs_vnode.c		standard
os/vfs_xxx.c		standard
os/vm_meter.c		standard
os/vm_pageout.c		standard
os/vm_sched.c		standard
os/vm_subr.c		standard
pcfs/dbx_pcfs.c		optional dbx PCFS symbolic-info
pcfs/pc_alloc.c		optional PCFS
pcfs/pc_dir.c		optional PCFS
pcfs/pc_node.c		optional PCFS
pcfs/pc_subr.c		optional PCFS
pcfs/pc_vfsops.c	optional PCFS
pcfs/pc_vnodeops.c	optional PCFS
rfs/adv.c		optional RFS
rfs/auth.c		optional RFS
rfs/canon.c		optional RFS
rfs/cirmgr.c		optional RFS
rfs/comm.c		optional RFS
rfs/fumount.c		optional RFS
rfs/netboot.c		optional RFS
rfs/que.c		optional RFS
rfs/queue.c		optional RFS
rfs/recover.c		optional RFS
rfs/rfadmin.c		optional RFS
rfs/rfcanon.c		optional RFS
rfs/rfs_misc.c		optional RFS
rfs/rfs_param.c		optional RFS
rfs/rfs_serve.c		optional RFS
rfs/rfs_syscalls.c	optional RFS
rfs/rfs_vfsops.c	optional RFS
rfs/rfs_vnodeops.c	optional RFS
rfs/rfs_xdr.c		optional RFS
rfs/rfsys.c		optional RFS
rfs/rsc.c		optional RFS
rpc/auth_des.c		optional NFSCLIENT
rpc/auth_kern.c		standard
rpc/authdes_prot.c	optional NFSCLIENT
rpc/authdes_subr.c	optional NFSCLIENT
rpc/authunix_prot.c	standard
rpc/clnt_kudp.c		standard
rpc/clnt_perror.c	standard
rpc/dbx_rpc.c		optional dbx symbolic-info
rpc/key_call.c		optional NFSSERVER
rpc/key_call.c		optional NFSCLIENT
rpc/key_prot.c		optional NFSSERVER
rpc/key_prot.c		optional NFSCLIENT
rpc/kudp_fastsend.c	standard
rpc/pmap_kgetport.c	standard
rpc/pmap_prot.c		standard
rpc/pmap_rmt.c		standard
rpc/rpc_callmsg.c	optional NFSSERVER
rpc/rpc_callmsg.c	optional NFSCLIENT
rpc/rpc_prot.c		standard
rpc/subr_kudp.c		standard
rpc/svc.c		optional NFSSERVER
rpc/svc_auth.c		optional NFSSERVER
rpc/svc_auth_unix.c	optional NFSSERVER
rpc/svc_kudp.c		optional NFSSERVER
rpc/svcauth_des.c	optional NFSSERVER
rpc/xdr.c		standard
rpc/xdr_array.c		standard
rpc/xdr_mbuf.c		standard
rpc/xdr_mem.c		standard
rpc/xdr_reference.c	standard
rpcsvc/bootparam_xdr.c	optional NFSCLIENT
rpcsvc/mountxdr.c	optional NFSCLIENT
specfs/fifo_vnodeops.c	standard
specfs/spec_clone.c	optional clone
specfs/spec_subr.c	standard
specfs/spec_vfsops.c	standard
specfs/spec_vnodeops.c	standard
ufs/dbx_ufs.c		optional dbx UFS symbolic-info
ufs/quota.c		optional QUOTA UFS
ufs/quota_syscalls.c	optional QUOTA UFS
ufs/quota_ufs.c		optional QUOTA UFS
ufs/ufs_alloc.c		optional UFS
ufs/ufs_bmap.c		optional UFS
ufs/ufs_dir.c		optional UFS
ufs/ufs_dsort.c		optional UFS
ufs/ufs_efs.c		optional UFS efs device-driver
ufs/ufs_inode.c		optional UFS
ufs/ufs_subr.c		optional UFS
ufs/ufs_tables.c	optional UFS
ufs/ufs_vfsops.c	optional UFS
ufs/ufs_vnodeops.c	optional UFS
vm/dbx_vm.c		optional dbx symbolic-info
vm/seg_dev.c		standard
vm/seg_map.c		standard
vm/seg_vn.c		standard
vm/vm_anon.c		standard
vm/vm_as.c		standard
vm/vm_mp.c		standard
vm/vm_page.c		standard
vm/vm_pvn.c		standard
vm/vm_rm.c		standard
vm/vm_seg.c		standard
vm/vm_swap.c		standard
vm/vm_vpage.c		standard
pcb.c		optional xns
netns/ns_proto.c	optional xns
netns/spp./share/sys/conf.common/newvers.sh                                                                     444       0      12          663  4424704160  12332                                                                                                                                                                                                                                                                                                                                                                      PATH=/usr/ucb:/bin:/usr/bin
/bin/sync; /bin/sync
if [ ! -r version ]; then echo 0 > version; fi
touch version
echo `cat version` `basename \`pwd\`` `cat $1` | \
awk ' 	{	version = $1 + 1; system = $2; release = $3; }\
END	{	printf "char version[] = \"SunOS Release %s (%s) #%d: ", release, system, version > "vers.c";\
		printf "%d\n", version > "version"; }' 
echo `date`'\nCopyright (c) 1989 by Sun Microsystems, Inc.\n";' >> vers.c

rpc/xdr_reference.c	standard
rpcsvc/bootparam_xdr.c	optional NFSCLIENT
rpcsv./share/sys/conf.common/param.c                                                                        444       0      12        10522  4423266623  11612                                                                                                                                                                                                                                                                                                                                                                      /*	@(#)param.c 2.36 88/09/08 SMI; from UCB 6.1 83/07/29	*/

#include <sys/param.h>
#include <sys/systm.h>
#include <sys/socket.h>
#include <sys/user.h>
#include <sys/proc.h>
#include <sys/vnode.h>
#include <sys/file.h>
#include <sys/callout.h>
#include <sys/clist.h>
#include <sys/mbuf.h>
#include <sys/stream.h>
#include <sys/kernel.h>
#include <ufs/inode.h>
#include <ufs/quota.h>
#include <specfs/fifo.h>
#include <machine/seg_u.h>

#if defined(IPCSEMAPHORE) || defined(IPCMESSAGE) || defined(IPCSHMEM)
#include <sys/map.h>
#include <sys/ipc.h>
#endif IPCSEMAPHORE || IPCMESSAGE || IPCSHMEM

#ifdef IPCSEMAPHORE
#include <sys/sem.h>
#endif IPCSEMAPHORE

#ifdef IPCMESSAGE
#include <sys/msg.h>
#endif IPCMESSAGE

#ifdef IPCSHMEM
#include <sys/shm.h>
#endif IPCSHMEM

/*
 * System parameter formulae.
 *
 * This file is copied into each directory where we compile
 * the kernel; it should be modified there to suit local taste
 * if necessary.
 *
 * Compiled with -DMAXUSERS=xx
 */

#ifdef sparc
#define	HZ 100
#else
#define	HZ 50
#endif sparc
int	hz = HZ;
int	tick = 1000000 / HZ;
int	tickadj = 1000000 / HZ / 10;
#ifdef sun
#define	NPROC (10 + 16 * MAXUSERS)
#undef MAXUPRC
#define	MAXUPRC	(NPROC - 5)
#else
#define	NPROC (10 + 8 * MAXUSERS)
#endif
int	nproc = NPROC;
int	maxuprc = MAXUPRC;
int	ninode = (NPROC + 16 + MAXUSERS) + 64;
#ifdef sun3x
int	minpts = 16 * MAXUSERS;
#endif
#include "win.h"
#if NWIN > 0
/* if using the window system, will need more open files */
int	nfile = 16 * (NPROC + 16 + MAXUSERS) / 5 + 64;
#else
int	nfile = 16 * (NPROC + 16 + MAXUSERS) / 10 + 64;
#endif
int	ncallout = 16 + NPROC;
int	nclist = 100 + 16 * MAXUSERS;
#ifdef QUOTA
int	ndquot = (MAXUSERS*NMOUNT)/4 + NPROC;
#else
int	ndquot = 0;
#endif

/*
 * These have to be allocated somewhere; allocating
 * them here forces loader errors if this file is omitted.
 */
struct	proc *proc, *procNPROC;
struct	inode *inode, *inodeNINODE;
struct	file *file, *fileNFILE;
struct	segu_data *segudata;
struct 	callout *callout;
struct	cblock *cfree;
#ifdef QUOTA
struct	dquot *dquot, *dquotNDQUOT;
#endif

/* initialize SystemV named-pipe (and pipe()) information structure */
struct fifoinfo fifoinfo = {
	FIFOBUF,
	FIFOMAX,
	FIFOBSZ,
	FIFOMNB
};

#ifdef IPCMESSAGE
/* initialize SystemV IPC information structures */
struct msginfo msginfo = {
	MSGMAP,
	MSGMAX,
	MSGMNB,
	MSGMNI,
	MSGSSZ,
	MSGTQL,
	MSGSEG,
};
#endif IPCMESSAGE

#ifdef IPCSEMAPHORE
struct seminfo seminfo = {
	SEMMAP,
	SEMMNI,
	SEMMNS,
	SEMMNU,
	SEMMSL,
	SEMOPM,
	SEMUME,
	SEMUSZ,
	SEMVMX,
	SEMAEM,
};
#endif IPCSEMAPHORE

#ifdef IPCSHMEM
struct shminfo shminfo = {
	SHMMAX,
	SHMMIN,
	SHMMNI,
	0,	/* (obsolete entry) */
	0,	/* (obsolete entry) */
};
#endif IPCSHMEM

/*
 * Stream data structures.
 * XXX - should be dynamically allocated.
 *
 * Certain constants are now based on MAXUSERS instead of hard coded.
 * This makes configuring for a large number of serial lines easier.
 * When MAXUSERS is the default value of 4 the constants evaluate to
 * their previous value.
 */

#define NBLK4096	0
#define NBLK2048 	32
#define NBLK1024	12
#define NBLK512		8
#define NBLK256		(24 + 2 * MAXUSERS)
#define NBLK128		(72 + 6 * MAXUSERS)
#define NBLK64		(200 + 10 * MAXUSERS)
#define NBLK16		(300 + 25 * MAXUSERS)
#define NBLK4		(96 + 8 * MAXUSERS)
#define NBLK (NBLK4096 + NBLK2048 + NBLK1024 + NBLK512 + NBLK256 + NBLK128 + \
	NBLK64 + NBLK16 + NBLK4)
 
#define NSTREAM		(24 + 2 * MAXUSERS)
#define NMUXLINK	87
#define NSTRPUSH	9
#define NSTREVENT	256
#define MAXSEPGCNT	1
#define STRLOFRAC	80
#define STRMEDFRAC	90
#define STRMSGSZ	4096
#define STRCTLSZ	1024

/*
 * Number of STREAMs queue pairs to allocate:
 * initial amount and subsequent increment(s).
 */
#ifndef	QUEUE_INIT
#define	QUEUE_INIT	100
#endif	QUEUE_INIT
#ifndef	QUEUE_INCR
#define	QUEUE_INCR	 10
#endif	QUEUE_INCR
int	queue_init = QUEUE_INIT;
int	queue_incr = QUEUE_INCR;

struct	stdata streams[NSTREAM];
struct	stdata *streamsNSTREAMS = &streams[NSTREAM];
mblk_t	mblock[NBLK];
dblk_t	dblock[NBLK];			/* XXX */
struct	linkblk linkblk[NMUXLINK];
struct	strevent strevent[NSTREVENT];
int	strmsgsz = STRMSGSZ;
int	strctlsz = STRCTLSZ;
int	nmblock = NBLK;
int	nmuxlink = NMUXLINK;
int	nstrpush = NSTRPUSH;
int	nstrevent = NSTREVENT;
int	maxsepgcnt = MAXSEPGCNT;
char	strlofrac = STRLOFRAC;
char	strmedfrac = STRMEDFRAC;

u_short	ndblks[] = {
	NBLK4, NBLK16, NBLK64, NBLK128,
	NBLK256, NBLK512, NBLK1024, NBLK2048,
	NBLK4096
};
s/pc_dir.c		optional PCFS
pcfs/pc_node.c		optional PCFS
pcfs/pc_subr.c		optional PCFS
pcfs/pc_vfsops.c	optional PCFS
pcfs/pc_vnodeops.c	optional PCFS
rfs/adv.c		optional RFS
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                tandard
os/vfs_io.c		standard
os/vfs_lookup.c		standard
os/vfs_pathname.c	standard
os/vfs_syscalls.c	standard
os/vfs_vnode.c		standard
os/vfs_xxx.c		standard
os/vm_meter.c		standard
os/vm_pageout.c		standard
os/vm_sched.c		standard
os/vm_subr.c		standard
pcfs/dbx_pcfs.c		optional dbx PCFS symbolic-info
pcfs/pc_alloc.c		optional PCFS
pcfs/pc_dir.c		optional PCFS
pcfs/pc_node.c		optional PCFS
pcfs/pc_subr.c		optional PCFS
pcfs/pc_vfsops.c	optional PCFS
pcfs/pc_vnodeops.c	optional PCFS
rfs/adv.c		optional RFS
rfs/auth.c		optional RFS
rfs/canon.c		optional RFS
rfs/cirmgr.c		optional RFS
rfs/comm.c		optional RFS
rfs/fumount.c		optional RFS
rfs/netboot.c		optional RFS
rfs/que.c		optional RFS
rfs/queue.c		optional RFS
rfs/recover.c		optional RFS
rfs/rfadmin.c		optional RFS
rfs/rfcanon.c		optional RFS
rfs/rfs_misc.c		optional RFS
rfs/rfs_param.c		optional RFS
rfs/rfs_serve.c		optional RFS
rfs/rfs_syscalls.c	optional RFS
rfs/rfs_vfsops.c	optional RFS
rfs/rfs_vnodeops.c	optional RFS
rfs/rfs_xdr.c		optional RFS
rfs/rfsys.c		optional RFS
rfs/rsc.c		optional RFS
rpc/auth_des.c		optional NFSCLIENT
rpc/auth_kern.c		standard
rpc/authdes_prot.c	optional NFSCLIENT
rpc/authdes_subr.c	optional NFSCLIENT
rpc/authunix_prot.c	standard
rpc/clnt_kudp.c		standard
rpc/clnt_perror.c	standard
rpc/dbx_rpc.c		optional dbx symbolic-info
rpc/key_call.c		optional NFSSERVER
rpc/key_call.c		optional NFSCLIENT
rpc/key_prot.c		optional NFSSERVER
rpc/key_prot.c		optional NFSCLIENT
rpc/kudp_fastsend.c	standard
rpc/pmap_kgetport.c	standard
rpc/pmap_pr