;;-*-Lisp-*-
(in-package goal)

;; definition of type vif-stat
(deftype vif-stat (uint32)
  ((vps uint8 :offset   0 :size   2)
   (vew uint8 :offset   2 :size   1)
   (mrk uint8 :offset   6 :size   1)
   (vss uint8 :offset   8 :size   1)
   (vfs uint8 :offset   9 :size   1)
   (vis uint8 :offset  10 :size   1)
   (int uint8 :offset  11 :size   1)
   (er0 uint8 :offset  12 :size   1)
   (er1 uint8 :offset  13 :size   1)
   (fqc uint8 :offset  24 :size   4)
   )
  :method-count-assert 9
  :size-assert         #x4
  :flag-assert         #x900000004
  )

;; definition for method 3 of type vif-stat
(defmethod inspect vif-stat ((obj vif-stat))
  (format #t "[~8x] ~A~%" obj 'vif-stat)
  (format #t "~Tvps: ~D~%" (-> obj vps))
  (format #t "~Tvew: ~D~%" (-> obj vew))
  (format #t "~Tmrk: ~D~%" (-> obj mrk))
  (format #t "~Tvss: ~D~%" (-> obj vss))
  (format #t "~Tvfs: ~D~%" (-> obj vfs))
  (format #t "~Tvis: ~D~%" (-> obj vis))
  (format #t "~Tint: ~D~%" (-> obj int))
  (format #t "~Ter0: ~D~%" (-> obj er0))
  (format #t "~Ter1: ~D~%" (-> obj er1))
  (format #t "~Tfqc: ~D~%" (-> obj fqc))
  obj
  )

;; definition of type vif-fbrst
(deftype vif-fbrst (uint32)
  ((rst uint8 :offset   0 :size   1)
   (fbk uint8 :offset   1 :size   1)
   (stp uint8 :offset   2 :size   1)
   (stc uint8 :offset   3 :size   1)
   )
  :method-count-assert 9
  :size-assert         #x4
  :flag-assert         #x900000004
  )

;; definition of type vif-err
(deftype vif-err (uint32)
  ((mii uint8 :offset   0 :size   1)
   (me0 uint8 :offset   1 :size   1)
   (me1 uint8 :offset   2 :size   1)
   )
  :method-count-assert 9
  :size-assert         #x4
  :flag-assert         #x900000004
  )

;; definition of type vif-bank
(deftype vif-bank (structure)
  ((stat   uint32   :offset-assert   0)
   (fbrst  uint32   :offset         16)
   (err    vif-err  :offset         32)
   (mark   uint32   :offset         48)
   (cycle  uint32   :offset         64)
   (mode   uint32   :offset         80)
   (num    uint32   :offset         96)
   (mask   uint32   :offset        112)
   (code   uint32   :offset        128)
   (itops  uint32   :offset        144)
   (base   uint32   :offset        160)
   (offset uint32   :offset        176)
   (tops   uint32   :offset        192)
   (itop   uint32   :offset        208)
   (top    uint32   :offset        224)
   (r0     uint32   :offset        256)
   (r1     uint32   :offset        272)
   (r2     uint32   :offset        288)
   (r3     uint32   :offset        304)
   (c0     uint32   :offset        320)
   (c1     uint32   :offset        336)
   (c2     uint32   :offset        352)
   (c3     uint32   :offset        368)
   )
  :method-count-assert 9
  :size-assert         #x174
  :flag-assert         #x900000174
  )

;; definition for method 3 of type vif-bank
(defmethod inspect vif-bank ((obj vif-bank))
  (format #t "[~8x] ~A~%" obj 'vif-bank)
  (format #t "~Tstat: #x~X~%" (-> obj stat))
  (format #t "~Tfbrst: #x~X~%" (-> obj fbrst))
  (format #t "~Terr: #x~X~%" (-> obj err))
  (format #t "~Tmark: #x~X~%" (-> obj mark))
  (format #t "~Tcycle: #x~X~%" (-> obj cycle))
  (format #t "~Tmode: #x~X~%" (-> obj mode))
  (format #t "~Tnum: #x~X~%" (-> obj num))
  (format #t "~Tmask: #x~X~%" (-> obj mask))
  (format #t "~Tcode: #x~X~%" (-> obj code))
  (format #t "~Titops: #x~X~%" (-> obj itops))
  (format #t "~Tbase: #x~X~%" (-> obj base))
  (format #t "~Toffset: #x~X~%" (-> obj offset))
  (format #t "~Ttops: #x~X~%" (-> obj tops))
  (format #t "~Titop: #x~X~%" (-> obj itop))
  (format #t "~Ttop: #x~X~%" (-> obj top))
  (format #t "~Tr0: #x~X~%" (-> obj r0))
  (format #t "~Tr1: #x~X~%" (-> obj r1))
  (format #t "~Tr2: #x~X~%" (-> obj r2))
  (format #t "~Tr3: #x~X~%" (-> obj r3))
  (format #t "~Tc0: #x~X~%" (-> obj c0))
  (format #t "~Tc1: #x~X~%" (-> obj c1))
  (format #t "~Tc2: #x~X~%" (-> obj c2))
  (format #t "~Tc3: #x~X~%" (-> obj c3))
  obj
  )

;; failed to figure out what this is:
0
