2008-04-28 11:47:20 +04:00
/ * % o0 : devhandle
* % o1 : devino
*
* returns % o 0 : s y s i n o
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ d e v i n o _ t o _ s y s i n o )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ I N T R _ D E V I N O 2 S Y S I N O , % o 5
ta H V _ F A S T _ T R A P
retl
mov % o 1 , % o 0
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ d e v i n o _ t o _ s y s i n o )
2008-04-28 11:47:20 +04:00
/ * % o0 : sysino
*
* returns % o 0 : i n t r _ e n a b l e d ( H V _ I N T R _ { D I S A B L E D ,E N A B L E D } )
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ i n t r _ g e t e n a b l e d )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ I N T R _ G E T E N A B L E D , % o 5
ta H V _ F A S T _ T R A P
retl
mov % o 1 , % o 0
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ i n t r _ g e t e n a b l e d )
2008-04-28 11:47:20 +04:00
/ * % o0 : sysino
* % o1 : intr_ e n a b l e d ( H V _ I N T R _ { D I S A B L E D ,E N A B L E D } )
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ i n t r _ s e t e n a b l e d )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ I N T R _ S E T E N A B L E D , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ i n t r _ s e t e n a b l e d )
2008-04-28 11:47:20 +04:00
/ * % o0 : sysino
*
* returns % o 0 : i n t r _ s t a t e ( H V _ I N T R _ S T A T E _ * )
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ i n t r _ g e t s t a t e )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ I N T R _ G E T S T A T E , % o 5
ta H V _ F A S T _ T R A P
retl
mov % o 1 , % o 0
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ i n t r _ g e t s t a t e )
2008-04-28 11:47:20 +04:00
/ * % o0 : sysino
* % o1 : intr_ s t a t e ( H V _ I N T R _ S T A T E _ * )
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ i n t r _ s e t s t a t e )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ I N T R _ S E T S T A T E , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ i n t r _ s e t s t a t e )
2008-04-28 11:47:20 +04:00
/ * % o0 : sysino
*
* returns % o 0 : c p u i d
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ i n t r _ g e t t a r g e t )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ I N T R _ G E T T A R G E T , % o 5
ta H V _ F A S T _ T R A P
retl
mov % o 1 , % o 0
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ i n t r _ g e t t a r g e t )
2008-04-28 11:47:20 +04:00
/ * % o0 : sysino
* % o1 : cpuid
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ i n t r _ s e t t a r g e t )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ I N T R _ S E T T A R G E T , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ i n t r _ s e t t a r g e t )
2008-04-28 11:47:20 +04:00
/ * % o0 : cpuid
* % o1 : pc
* % o2 : rtba
* % o3 : arg0
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ c p u _ s t a r t )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ C P U _ S T A R T , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ c p u _ s t a r t )
2008-04-28 11:47:20 +04:00
/ * % o0 : cpuid
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ c p u _ s t o p )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ C P U _ S T O P , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ c p u _ s t o p )
2008-04-28 11:47:20 +04:00
/* returns %o0: status */
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ c p u _ y i e l d )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ C P U _ Y I E L D , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ c p u _ y i e l d )
2008-04-28 11:47:20 +04:00
/ * % o0 : type
* % o1 : queue p a d d r
* % o2 : num q u e u e e n t r i e s
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ c p u _ q c o n f )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ C P U _ Q C O N F , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ c p u _ q c o n f )
2008-04-28 11:47:20 +04:00
/ * % o0 : num c p u s i n c p u l i s t
* % o1 : cpu l i s t p a d d r
* % o2 : mondo b l o c k p a d d r
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ c p u _ m o n d o _ s e n d )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ C P U _ M O N D O _ S E N D , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ c p u _ m o n d o _ s e n d )
2008-04-28 11:47:20 +04:00
/ * % o0 : CPU I D
*
* returns % o 0 : - s t a t u s i f s t a t u s n o n - z e r o , e l s e
* % o0 : cpu s t a t e a s H V _ C P U _ S T A T E _ *
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ c p u _ s t a t e )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ C P U _ S T A T E , % o 5
ta H V _ F A S T _ T R A P
brnz,p n % o 0 , 1 f
sub % g 0 , % o 0 , % o 0
mov % o 1 , % o 0
1 : retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ c p u _ s t a t e )
2008-04-28 11:47:20 +04:00
/ * % o0 : virtual a d d r e s s
* % o1 : must b e z e r o
* % o2 : TTE
* % o3 : HV_ M M U _ * f l a g s
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ m m u _ m a p _ p e r m _ a d d r )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ M M U _ M A P _ P E R M _ A D D R , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ m m u _ m a p _ p e r m _ a d d r )
2008-04-28 11:47:20 +04:00
/ * % o0 : number o f T S B d e s c r i p t i o n s
* % o1 : TSB d e s c r i p t i o n s r e a l a d d r e s s
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ m m u _ t s b _ c t x0 )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ M M U _ T S B _ C T X 0 , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ m m u _ t s b _ c t x0 )
2008-04-28 11:47:20 +04:00
/ * % o0 : API g r o u p n u m b e r
* % o1 : pointer t o u n s i g n e d l o n g m a j o r n u m b e r s t o r a g e
* % o2 : pointer t o u n s i g n e d l o n g m i n o r n u m b e r s t o r a g e
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ g e t _ v e r s i o n )
2008-04-28 11:47:20 +04:00
mov H V _ C O R E _ G E T _ V E R , % o 5
mov % o 1 , % o 3
mov % o 2 , % o 4
ta H V _ C O R E _ T R A P
stx % o 1 , [ % o 3 ]
retl
stx % o 2 , [ % o 4 ]
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ g e t _ v e r s i o n )
2008-04-28 11:47:20 +04:00
/ * % o0 : API g r o u p n u m b e r
* % o1 : desired m a j o r n u m b e r
* % o2 : desired m i n o r n u m b e r
* % o3 : pointer t o u n s i g n e d l o n g a c t u a l m i n o r n u m b e r s t o r a g e
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ s e t _ v e r s i o n )
2008-04-28 11:47:20 +04:00
mov H V _ C O R E _ S E T _ V E R , % o 5
mov % o 3 , % o 4
ta H V _ C O R E _ T R A P
retl
stx % o 1 , [ % o 4 ]
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ s e t _ v e r s i o n )
2008-04-28 11:47:20 +04:00
/ * % o0 : pointer t o u n s i g n e d l o n g t i m e
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ t o d _ g e t )
2008-04-28 11:47:20 +04:00
mov % o 0 , % o 4
mov H V _ F A S T _ T O D _ G E T , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % o 4 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ t o d _ g e t )
2008-04-28 11:47:20 +04:00
/ * % o0 : time
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ t o d _ s e t )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ T O D _ S E T , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ t o d _ s e t )
2008-04-28 11:47:20 +04:00
/ * % o0 : pointer t o u n s i g n e d l o n g s t a t u s
*
* returns % o 0 : s i g n e d c h a r a c t e r
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ c o n _ g e t c h a r )
2008-04-28 11:47:20 +04:00
mov % o 0 , % o 4
mov H V _ F A S T _ C O N S _ G E T C H A R , % o 5
clr % o 0
clr % o 1
ta H V _ F A S T _ T R A P
stx % o 0 , [ % o 4 ]
retl
sra % o 1 , 0 , % o 0
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ c o n _ g e t c h a r )
2008-04-28 11:47:20 +04:00
/ * % o0 : signed l o n g c h a r a c t e r
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ c o n _ p u t c h a r )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ C O N S _ P U T C H A R , % o 5
ta H V _ F A S T _ T R A P
retl
sra % o 0 , 0 , % o 0
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ c o n _ p u t c h a r )
2008-04-28 11:47:20 +04:00
/ * % o0 : buffer r e a l a d d r e s s
* % o1 : buffer s i z e
* % o2 : pointer t o u n s i g n e d l o n g b y t e s _ r e a d
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ c o n _ r e a d )
2008-04-28 11:47:20 +04:00
mov % o 2 , % o 4
mov H V _ F A S T _ C O N S _ R E A D , % o 5
ta H V _ F A S T _ T R A P
brnz % o 0 , 1 f
cmp % o 1 , - 1 / * b r e a k * /
be,a ,p n % i c c , 1 f
mov % o 1 , % o 0
cmp % o 1 , - 2 / * h u p * /
be,a ,p n % i c c , 1 f
mov % o 1 , % o 0
stx % o 1 , [ % o 4 ]
1 : retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ c o n _ r e a d )
2008-04-28 11:47:20 +04:00
/ * % o0 : buffer r e a l a d d r e s s
* % o1 : buffer s i z e
* % o2 : pointer t o u n s i g n e d l o n g b y t e s _ w r i t t e n
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ c o n _ w r i t e )
2008-04-28 11:47:20 +04:00
mov % o 2 , % o 4
mov H V _ F A S T _ C O N S _ W R I T E , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % o 4 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ c o n _ w r i t e )
2008-04-28 11:47:20 +04:00
/ * % o0 : soft s t a t e
* % o1 : address o f d e s c r i p t i o n s t r i n g
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ m a c h _ s e t _ s o f t _ s t a t e )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ M A C H _ S E T _ S O F T _ S T A T E , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ m a c h _ s e t _ s o f t _ s t a t e )
2008-04-28 11:47:20 +04:00
/ * % o0 : exit c o d e
*
* Does n o t r e t u r n .
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ m a c h _ e x i t )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ M A C H _ E X I T , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ m a c h _ e x i t )
2008-04-28 11:47:20 +04:00
/ * % o0 : buffer r e a l a d d r e s s
* % o1 : buffer l e n g t h
* % o2 : pointer t o u n s i g n e d l o n g r e a l _ b u f _ l e n
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ m a c h _ d e s c )
2008-04-28 11:47:20 +04:00
mov % o 2 , % o 4
mov H V _ F A S T _ M A C H _ D E S C , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % o 4 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ m a c h _ d e s c )
2008-04-28 11:47:20 +04:00
/ * % o0 : new t i m e o u t i n m i l l i s e c o n d s
* % o1 : pointer t o u n s i g n e d l o n g o r i g _ t i m e o u t
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ m a c h _ s e t _ w a t c h d o g )
2008-04-28 11:47:20 +04:00
mov % o 1 , % o 4
mov H V _ F A S T _ M A C H _ S E T _ W A T C H D O G , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % o 4 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ m a c h _ s e t _ w a t c h d o g )
2008-04-28 11:47:20 +04:00
/* No inputs and does not return. */
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ m a c h _ s i r )
2008-04-28 11:47:20 +04:00
mov % o 1 , % o 4
mov H V _ F A S T _ M A C H _ S I R , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % o 4 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ m a c h _ s i r )
2008-04-28 11:47:20 +04:00
/ * % o0 : channel
* % o1 : ra
* % o2 : num_ e n t r i e s
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ l d c _ t x _ q c o n f )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ L D C _ T X _ Q C O N F , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ l d c _ t x _ q c o n f )
2008-04-28 11:47:20 +04:00
/ * % o0 : channel
* % o1 : pointer t o u n s i g n e d l o n g r a
* % o2 : pointer t o u n s i g n e d l o n g n u m _ e n t r i e s
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ l d c _ t x _ q i n f o )
2008-04-28 11:47:20 +04:00
mov % o 1 , % g 1
mov % o 2 , % g 2
mov H V _ F A S T _ L D C _ T X _ Q I N F O , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % g 1 ]
stx % o 2 , [ % g 2 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ l d c _ t x _ q i n f o )
2008-04-28 11:47:20 +04:00
/ * % o0 : channel
* % o1 : pointer t o u n s i g n e d l o n g h e a d _ o f f
* % o2 : pointer t o u n s i g n e d l o n g t a i l _ o f f
* % o2 : pointer t o u n s i g n e d l o n g c h a n _ s t a t e
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ l d c _ t x _ g e t _ s t a t e )
2008-04-28 11:47:20 +04:00
mov % o 1 , % g 1
mov % o 2 , % g 2
mov % o 3 , % g 3
mov H V _ F A S T _ L D C _ T X _ G E T _ S T A T E , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % g 1 ]
stx % o 2 , [ % g 2 ]
stx % o 3 , [ % g 3 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ l d c _ t x _ g e t _ s t a t e )
2008-04-28 11:47:20 +04:00
/ * % o0 : channel
* % o1 : tail_ o f f
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ l d c _ t x _ s e t _ q t a i l )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ L D C _ T X _ S E T _ Q T A I L , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ l d c _ t x _ s e t _ q t a i l )
2008-04-28 11:47:20 +04:00
/ * % o0 : channel
* % o1 : ra
* % o2 : num_ e n t r i e s
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ l d c _ r x _ q c o n f )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ L D C _ R X _ Q C O N F , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ l d c _ r x _ q c o n f )
2008-04-28 11:47:20 +04:00
/ * % o0 : channel
* % o1 : pointer t o u n s i g n e d l o n g r a
* % o2 : pointer t o u n s i g n e d l o n g n u m _ e n t r i e s
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ l d c _ r x _ q i n f o )
2008-04-28 11:47:20 +04:00
mov % o 1 , % g 1
mov % o 2 , % g 2
mov H V _ F A S T _ L D C _ R X _ Q I N F O , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % g 1 ]
stx % o 2 , [ % g 2 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ l d c _ r x _ q i n f o )
2008-04-28 11:47:20 +04:00
/ * % o0 : channel
* % o1 : pointer t o u n s i g n e d l o n g h e a d _ o f f
* % o2 : pointer t o u n s i g n e d l o n g t a i l _ o f f
* % o2 : pointer t o u n s i g n e d l o n g c h a n _ s t a t e
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ l d c _ r x _ g e t _ s t a t e )
2008-04-28 11:47:20 +04:00
mov % o 1 , % g 1
mov % o 2 , % g 2
mov % o 3 , % g 3
mov H V _ F A S T _ L D C _ R X _ G E T _ S T A T E , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % g 1 ]
stx % o 2 , [ % g 2 ]
stx % o 3 , [ % g 3 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ l d c _ r x _ g e t _ s t a t e )
2008-04-28 11:47:20 +04:00
/ * % o0 : channel
* % o1 : head_ o f f
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ l d c _ r x _ s e t _ q h e a d )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ L D C _ R X _ S E T _ Q H E A D , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ l d c _ r x _ s e t _ q h e a d )
2008-04-28 11:47:20 +04:00
/ * % o0 : channel
* % o1 : ra
* % o2 : num_ e n t r i e s
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ l d c _ s e t _ m a p _ t a b l e )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ L D C _ S E T _ M A P _ T A B L E , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ l d c _ s e t _ m a p _ t a b l e )
2008-04-28 11:47:20 +04:00
/ * % o0 : channel
* % o1 : pointer t o u n s i g n e d l o n g r a
* % o2 : pointer t o u n s i g n e d l o n g n u m _ e n t r i e s
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ l d c _ g e t _ m a p _ t a b l e )
2008-04-28 11:47:20 +04:00
mov % o 1 , % g 1
mov % o 2 , % g 2
mov H V _ F A S T _ L D C _ G E T _ M A P _ T A B L E , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % g 1 ]
stx % o 2 , [ % g 2 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ l d c _ g e t _ m a p _ t a b l e )
2008-04-28 11:47:20 +04:00
/ * % o0 : channel
* % o1 : dir_ c o d e
* % o2 : tgt_ r a d d r
* % o3 : lcl_ r a d d r
* % o4 : len
* % o5 : pointer t o u n s i g n e d l o n g a c t u a l _ l e n
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ l d c _ c o p y )
2008-04-28 11:47:20 +04:00
mov % o 5 , % g 1
mov H V _ F A S T _ L D C _ C O P Y , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % g 1 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ l d c _ c o p y )
2008-04-28 11:47:20 +04:00
/ * % o0 : channel
* % o1 : cookie
* % o2 : pointer t o u n s i g n e d l o n g r a
* % o3 : pointer t o u n s i g n e d l o n g p e r m
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ l d c _ m a p i n )
2008-04-28 11:47:20 +04:00
mov % o 2 , % g 1
mov % o 3 , % g 2
mov H V _ F A S T _ L D C _ M A P I N , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % g 1 ]
stx % o 2 , [ % g 2 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ l d c _ m a p i n )
2008-04-28 11:47:20 +04:00
/ * % o0 : ra
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ l d c _ u n m a p )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ L D C _ U N M A P , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ l d c _ u n m a p )
2008-04-28 11:47:20 +04:00
/ * % o0 : channel
* % o1 : cookie
* % o2 : mte_ c o o k i e
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ l d c _ r e v o k e )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ L D C _ R E V O K E , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ l d c _ r e v o k e )
2008-04-28 11:47:20 +04:00
/ * % o0 : device h a n d l e
* % o1 : device I N O
* % o2 : pointer t o u n s i g n e d l o n g c o o k i e
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ v i n t r _ g e t _ c o o k i e )
2008-04-28 11:47:20 +04:00
mov % o 2 , % g 1
mov H V _ F A S T _ V I N T R _ G E T _ C O O K I E , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % g 1 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ v i n t r _ g e t _ c o o k i e )
2008-04-28 11:47:20 +04:00
/ * % o0 : device h a n d l e
* % o1 : device I N O
* % o2 : cookie
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ v i n t r _ s e t _ c o o k i e )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ V I N T R _ S E T _ C O O K I E , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ v i n t r _ s e t _ c o o k i e )
2008-04-28 11:47:20 +04:00
/ * % o0 : device h a n d l e
* % o1 : device I N O
* % o2 : pointer t o u n s i g n e d l o n g v a l i d _ s t a t e
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ v i n t r _ g e t _ v a l i d )
2008-04-28 11:47:20 +04:00
mov % o 2 , % g 1
mov H V _ F A S T _ V I N T R _ G E T _ V A L I D , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % g 1 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ v i n t r _ g e t _ v a l i d )
2008-04-28 11:47:20 +04:00
/ * % o0 : device h a n d l e
* % o1 : device I N O
* % o2 : valid_ s t a t e
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ v i n t r _ s e t _ v a l i d )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ V I N T R _ S E T _ V A L I D , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ v i n t r _ s e t _ v a l i d )
2008-04-28 11:47:20 +04:00
/ * % o0 : device h a n d l e
* % o1 : device I N O
* % o2 : pointer t o u n s i g n e d l o n g s t a t e
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ v i n t r _ g e t _ s t a t e )
2008-04-28 11:47:20 +04:00
mov % o 2 , % g 1
mov H V _ F A S T _ V I N T R _ G E T _ S T A T E , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % g 1 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ v i n t r _ g e t _ s t a t e )
2008-04-28 11:47:20 +04:00
/ * % o0 : device h a n d l e
* % o1 : device I N O
* % o2 : state
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ v i n t r _ s e t _ s t a t e )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ V I N T R _ S E T _ S T A T E , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ v i n t r _ s e t _ s t a t e )
2008-04-28 11:47:20 +04:00
/ * % o0 : device h a n d l e
* % o1 : device I N O
* % o2 : pointer t o u n s i g n e d l o n g c p u i d
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ v i n t r _ g e t _ t a r g e t )
2008-04-28 11:47:20 +04:00
mov % o 2 , % g 1
mov H V _ F A S T _ V I N T R _ G E T _ T A R G E T , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % g 1 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ v i n t r _ g e t _ t a r g e t )
2008-04-28 11:47:20 +04:00
/ * % o0 : device h a n d l e
* % o1 : device I N O
* % o2 : cpuid
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ v i n t r _ s e t _ t a r g e t )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ V I N T R _ S E T _ T A R G E T , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ v i n t r _ s e t _ t a r g e t )
2008-04-28 11:47:20 +04:00
/ * % o0 : NCS s u b - f u n c t i o n
* % o1 : sub- f u n c t i o n a r g r e a l - a d d r e s s
* % o2 : sub- f u n c t i o n a r g s i z e
*
* returns % o 0 : s t a t u s
* /
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ n c s _ r e q u e s t )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ N C S _ R E Q U E S T , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ n c s _ r e q u e s t )
2008-04-28 11:47:20 +04:00
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ s v c _ s e n d )
2008-04-28 11:47:20 +04:00
save % s p , - 1 9 2 , % s p
mov % i 0 , % o 0
mov % i 1 , % o 1
mov % i 2 , % o 2
mov H V _ F A S T _ S V C _ S E N D , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % i 3 ]
ret
restore
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ s v c _ s e n d )
2008-04-28 11:47:20 +04:00
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ s v c _ r e c v )
2008-04-28 11:47:20 +04:00
save % s p , - 1 9 2 , % s p
mov % i 0 , % o 0
mov % i 1 , % o 1
mov % i 2 , % o 2
mov H V _ F A S T _ S V C _ R E C V , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % i 3 ]
ret
restore
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ s v c _ r e c v )
2008-04-28 11:47:20 +04:00
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ s v c _ g e t s t a t u s )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ S V C _ G E T S T A T U S , % o 5
mov % o 1 , % o 4
ta H V _ F A S T _ T R A P
stx % o 1 , [ % o 4 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ s v c _ g e t s t a t u s )
2008-04-28 11:47:20 +04:00
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ s v c _ s e t s t a t u s )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ S V C _ S E T S T A T U S , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ s v c _ s e t s t a t u s )
2008-04-28 11:47:20 +04:00
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ s v c _ c l r s t a t u s )
2008-04-28 11:47:20 +04:00
mov H V _ F A S T _ S V C _ C L R S T A T U S , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ s v c _ c l r s t a t u s )
2008-04-28 11:47:20 +04:00
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ m m u s t a t _ c o n f )
2008-04-28 11:47:20 +04:00
mov % o 1 , % o 4
mov H V _ F A S T _ M M U S T A T _ C O N F , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % o 4 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ m m u s t a t _ c o n f )
2008-04-28 11:47:20 +04:00
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ m m u s t a t _ i n f o )
2008-04-28 11:47:20 +04:00
mov % o 0 , % o 4
mov H V _ F A S T _ M M U S T A T _ I N F O , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % o 4 ]
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ m m u s t a t _ i n f o )
2008-04-28 11:47:20 +04:00
2008-09-01 14:13:17 +04:00
ENTRY( s u n 4 v _ m m u _ d e m a p _ a l l )
2008-04-28 11:47:20 +04:00
clr % o 0
clr % o 1
mov H V _ M M U _ A L L , % o 2
mov H V _ F A S T _ M M U _ D E M A P _ A L L , % o 5
ta H V _ F A S T _ T R A P
retl
nop
2008-09-01 14:13:17 +04:00
ENDPROC( s u n 4 v _ m m u _ d e m a p _ a l l )
2008-11-28 13:26:55 +03:00
ENTRY( s u n 4 v _ n i a g a r a _ g e t p e r f )
mov % o 0 , % o 4
mov H V _ F A S T _ G E T _ P E R F R E G , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % o 4 ]
retl
nop
ENDPROC( s u n 4 v _ n i a g a r a _ g e t p e r f )
ENTRY( s u n 4 v _ n i a g a r a _ s e t p e r f )
mov H V _ F A S T _ S E T _ P E R F R E G , % o 5
ta H V _ F A S T _ T R A P
retl
nop
ENDPROC( s u n 4 v _ n i a g a r a _ s e t p e r f )
ENTRY( s u n 4 v _ n i a g a r a2 _ g e t p e r f )
mov % o 0 , % o 4
mov H V _ F A S T _ N 2 _ G E T _ P E R F R E G , % o 5
ta H V _ F A S T _ T R A P
stx % o 1 , [ % o 4 ]
retl
nop
ENDPROC( s u n 4 v _ n i a g a r a2 _ g e t p e r f )
ENTRY( s u n 4 v _ n i a g a r a2 _ s e t p e r f )
mov H V _ F A S T _ N 2 _ S E T _ P E R F R E G , % o 5
ta H V _ F A S T _ T R A P
retl
nop
ENDPROC( s u n 4 v _ n i a g a r a2 _ s e t p e r f )