2005-04-17 02:20:36 +04:00
/ * $ Id : sys3 2 . S ,v 1 . 1 2 2 0 0 0 / 0 3 / 2 4 0 4 : 1 7 : 3 7 d a v e m E x p $
* sys3 2 . S : I - c a c h e t r i c k s f o r 3 2 - b i t c o m p a t i b i l i t y l a y e r s i m p l e
* conversions.
*
* Copyright ( C ) 1 9 9 7 D a v i d S . M i l l e r ( d a v e m @caip.rutgers.edu)
* Copyright ( C ) 1 9 9 8 J a k u b J e l i n e k ( j j @ultra.linux.cz)
* /
# include < l i n u x / c o n f i g . h >
# include < a s m / e r r n o . h >
/* NOTE: call as jump breaks return stack, we have to avoid that */
.text
# define S I G N 1 ( S T U B ,S Y S C A L L ,R E G 1 ) \
.align 3 2 ; \
.globl STUB; \
STUB : sethi % h i ( S Y S C A L L ) , % g 1 ; \
jmpl % g 1 + % l o ( S Y S C A L L ) , % g 0 ; \
sra R E G 1 , 0 , R E G 1
# define S I G N 2 ( S T U B ,S Y S C A L L ,R E G 1 ,R E G 2 ) \
.align 3 2 ; \
.globl STUB; \
STUB : sethi % h i ( S Y S C A L L ) , % g 1 ; \
sra R E G 1 , 0 , R E G 1 ; \
jmpl % g 1 + % l o ( S Y S C A L L ) , % g 0 ; \
sra R E G 2 , 0 , R E G 2
# define S I G N 3 ( S T U B ,S Y S C A L L ,R E G 1 ,R E G 2 ,R E G 3 ) \
.align 3 2 ; \
.globl STUB; \
STUB : sra R E G 1 , 0 , R E G 1 ; \
sethi % h i ( S Y S C A L L ) , % g 1 ; \
sra R E G 2 , 0 , R E G 2 ; \
jmpl % g 1 + % l o ( S Y S C A L L ) , % g 0 ; \
sra R E G 3 , 0 , R E G 3
# define S I G N 4 ( S T U B ,S Y S C A L L ,R E G 1 ,R E G 2 ,R E G 3 ,R E G 4 ) \
.align 3 2 ; \
.globl STUB; \
STUB : sra R E G 1 , 0 , R E G 1 ; \
sethi % h i ( S Y S C A L L ) , % g 1 ; \
sra R E G 2 , 0 , R E G 2 ; \
sra R E G 3 , 0 , R E G 3 ; \
jmpl % g 1 + % l o ( S Y S C A L L ) , % g 0 ; \
sra R E G 4 , 0 , R E G 4
SIGN1 ( s y s32 _ e x i t , s p a r c _ e x i t , % o 0 )
SIGN1 ( s y s32 _ e x i t _ g r o u p , s y s _ e x i t _ g r o u p , % o 0 )
SIGN1 ( s y s32 _ w a i t 4 , c o m p a t _ s y s _ w a i t 4 , % o 2 )
SIGN1 ( s y s32 _ c r e a t , s y s _ c r e a t , % o 1 )
SIGN1 ( s y s32 _ m k n o d , s y s _ m k n o d , % o 1 )
SIGN1 ( s y s32 _ p e r f c t r , s y s _ p e r f c t r , % o 0 )
SIGN1 ( s y s32 _ u m o u n t , s y s _ u m o u n t , % o 1 )
SIGN1 ( s y s32 _ s i g n a l , s y s _ s i g n a l , % o 0 )
SIGN1 ( s y s32 _ a c c e s s , s y s _ a c c e s s , % o 1 )
SIGN1 ( s y s32 _ m s y n c , s y s _ m s y n c , % o 2 )
SIGN2 ( s y s32 _ r e b o o t , s y s _ r e b o o t , % o 0 , % o 1 )
SIGN1 ( s y s32 _ s e t i t i m e r , c o m p a t _ s y s _ s e t i t i m e r , % o 0 )
SIGN1 ( s y s32 _ g e t i t i m e r , c o m p a t _ s y s _ g e t i t i m e r , % o 0 )
SIGN1 ( s y s32 _ s e t h o s t n a m e , s y s _ s e t h o s t n a m e , % o 1 )
SIGN1 ( s y s32 _ s w a p o n , s y s _ s w a p o n , % o 1 )
SIGN1 ( s y s32 _ s i g a c t i o n , c o m p a t _ s y s _ s i g a c t i o n , % o 0 )
SIGN1 ( s y s32 _ r t _ s i g a c t i o n , c o m p a t _ s y s _ r t _ s i g a c t i o n , % o 0 )
SIGN1 ( s y s32 _ s i g p r o c m a s k , c o m p a t _ s y s _ s i g p r o c m a s k , % o 0 )
SIGN1 ( s y s32 _ r t _ s i g p r o c m a s k , c o m p a t _ s y s _ r t _ s i g p r o c m a s k , % o 0 )
SIGN2 ( s y s32 _ r t _ s i g q u e u e i n f o , c o m p a t _ s y s _ r t _ s i g q u e u e i n f o , % o 0 , % o 1 )
SIGN1 ( s y s32 _ g e t r u s a g e , c o m p a t _ s y s _ g e t r u s a g e , % o 0 )
SIGN1 ( s y s32 _ s e t x a t t r , s y s _ s e t x a t t r , % o 4 )
SIGN1 ( s y s32 _ l s e t x a t t r , s y s _ l s e t x a t t r , % o 4 )
SIGN1 ( s y s32 _ f s e t x a t t r , s y s _ f s e t x a t t r , % o 4 )
SIGN1 ( s y s32 _ f g e t x a t t r , s y s _ f g e t x a t t r , % o 0 )
SIGN1 ( s y s32 _ f l i s t x a t t r , s y s _ f l i s t x a t t r , % o 0 )
SIGN1 ( s y s32 _ f r e m o v e x a t t r , s y s _ f r e m o v e x a t t r , % o 0 )
SIGN2 ( s y s32 _ t k i l l , s y s _ t k i l l , % o 0 , % o 1 )
SIGN1 ( s y s32 _ e p o l l _ c r e a t e , s y s _ e p o l l _ c r e a t e , % o 0 )
SIGN3 ( s y s32 _ e p o l l _ c t l , s y s _ e p o l l _ c t l , % o 0 , % o 1 , % o 2 )
SIGN3 ( s y s32 _ e p o l l _ w a i t , s y s _ e p o l l _ w a i t , % o 0 , % o 2 , % o 3 )
SIGN1 ( s y s32 _ r e a d a h e a d , c o m p a t _ s y s _ r e a d a h e a d , % o 0 )
SIGN2 ( s y s32 _ f a d v i s e 6 4 , c o m p a t _ s y s _ f a d v i s e 6 4 , % o 0 , % o 4 )
SIGN2 ( s y s32 _ f a d v i s e 6 4 _ 6 4 , c o m p a t _ s y s _ f a d v i s e 6 4 _ 6 4 , % o 0 , % o 5 )
SIGN2 ( s y s32 _ b d f l u s h , s y s _ b d f l u s h , % o 0 , % o 1 )
SIGN1 ( s y s32 _ m l o c k a l l , s y s _ m l o c k a l l , % o 0 )
SIGN1 ( s y s32 _ n f s s e r v c t l , c o m p a t _ s y s _ n f s s e r v c t l , % o 0 )
SIGN1 ( s y s32 _ c l o c k _ s e t t i m e , c o m p a t _ s y s _ c l o c k _ s e t t i m e , % o 1 )
SIGN1 ( s y s32 _ c l o c k _ n a n o s l e e p , c o m p a t _ s y s _ c l o c k _ n a n o s l e e p , % o 1 )
SIGN1 ( s y s32 _ t i m e r _ s e t t i m e , c o m p a t _ s y s _ t i m e r _ s e t t i m e , % o 1 )
SIGN1 ( s y s32 _ i o _ s u b m i t , c o m p a t _ s y s _ i o _ s u b m i t , % o 1 )
SIGN1 ( s y s32 _ m q _ o p e n , c o m p a t _ s y s _ m q _ o p e n , % o 1 )
SIGN1 ( s y s32 _ s e l e c t , c o m p a t _ s y s _ s e l e c t , % o 0 )
SIGN1 ( s y s32 _ m k d i r , s y s _ m k d i r , % o 1 )
SIGN3 ( s y s32 _ f u t e x , c o m p a t _ s y s _ f u t e x , % o 1 , % o 2 , % o 5 )
SIGN1 ( s y s32 _ s y s f s , c o m p a t _ s y s _ s y s f s , % o 0 )
SIGN3 ( s y s32 _ i p c , c o m p a t _ s y s _ i p c , % o 1 , % o 2 , % o 3 )
SIGN2 ( s y s32 _ s e n d f i l e , c o m p a t _ s y s _ s e n d f i l e , % o 0 , % o 1 )
SIGN2 ( s y s32 _ s e n d f i l e 6 4 , c o m p a t _ s y s _ s e n d f i l e 6 4 , % o 0 , % o 1 )
SIGN1 ( s y s32 _ p r c t l , s y s _ p r c t l , % o 0 )
SIGN1 ( s y s32 _ s c h e d _ r r _ g e t _ i n t e r v a l , c o m p a t _ s y s _ s c h e d _ r r _ g e t _ i n t e r v a l , % o 0 )
SIGN2 ( s y s32 _ w a i t p i d , s y s _ w a i t p i d , % o 0 , % o 2 )
SIGN1 ( s y s32 _ g e t g r o u p s , s y s _ g e t g r o u p s , % o 0 )
SIGN1 ( s y s32 _ g e t p g i d , s y s _ g e t p g i d , % o 0 )
SIGN2 ( s y s32 _ g e t p r i o r i t y , s y s _ g e t p r i o r i t y , % o 0 , % o 1 )
SIGN1 ( s y s32 _ g e t s i d , s y s _ g e t s i d , % o 0 )
SIGN2 ( s y s32 _ k i l l , s y s _ k i l l , % o 0 , % o 1 )
SIGN1 ( s y s32 _ n i c e , s y s _ n i c e , % o 0 )
SIGN1 ( s y s32 _ l s e e k , s y s _ l s e e k , % o 1 )
SIGN2 ( s y s32 _ o p e n , s p a r c32 _ o p e n , % o 1 , % o 2 )
SIGN1 ( s y s32 _ r e a d l i n k , s y s _ r e a d l i n k , % o 2 )
SIGN1 ( s y s32 _ s c h e d _ g e t _ p r i o r i t y _ m a x , s y s _ s c h e d _ g e t _ p r i o r i t y _ m a x , % o 0 )
SIGN1 ( s y s32 _ s c h e d _ g e t _ p r i o r i t y _ m i n , s y s _ s c h e d _ g e t _ p r i o r i t y _ m i n , % o 0 )
SIGN1 ( s y s32 _ s c h e d _ g e t p a r a m , s y s _ s c h e d _ g e t p a r a m , % o 0 )
SIGN1 ( s y s32 _ s c h e d _ g e t s c h e d u l e r , s y s _ s c h e d _ g e t s c h e d u l e r , % o 0 )
SIGN1 ( s y s32 _ s c h e d _ s e t p a r a m , s y s _ s c h e d _ s e t p a r a m , % o 0 )
SIGN2 ( s y s32 _ s c h e d _ s e t s c h e d u l e r , s y s _ s c h e d _ s e t s c h e d u l e r , % o 0 , % o 1 )
SIGN1 ( s y s32 _ g e t d o m a i n n a m e , s y s _ g e t d o m a i n n a m e , % o 1 )
SIGN1 ( s y s32 _ s e t d o m a i n n a m e , s y s _ s e t d o m a i n n a m e , % o 1 )
SIGN1 ( s y s32 _ s e t g r o u p s , s y s _ s e t g r o u p s , % o 0 )
SIGN2 ( s y s32 _ s e t p g i d , s y s _ s e t p g i d , % o 0 , % o 1 )
SIGN3 ( s y s32 _ s e t p r i o r i t y , s y s _ s e t p r i o r i t y , % o 0 , % o 1 , % o 2 )
SIGN1 ( s y s32 _ s s e t m a s k , s y s _ s s e t m a s k , % o 0 )
SIGN2 ( s y s32 _ s y s l o g , s y s _ s y s l o g , % o 0 , % o 2 )
SIGN1 ( s y s32 _ u m a s k , s y s _ u m a s k , % o 0 )
SIGN3 ( s y s32 _ t g k i l l , s y s _ t g k i l l , % o 0 , % o 1 , % o 2 )
SIGN1 ( s y s32 _ s e n d t o , s y s _ s e n d t o , % o 0 )
SIGN1 ( s y s32 _ r e c v f r o m , s y s _ r e c v f r o m , % o 0 )
SIGN3 ( s y s32 _ s o c k e t , s y s _ s o c k e t , % o 0 , % o 1 , % o 2 )
SIGN2 ( s y s32 _ c o n n e c t , s y s _ c o n n e c t , % o 0 , % o 2 )
SIGN2 ( s y s32 _ b i n d , s y s _ b i n d , % o 0 , % o 2 )
SIGN2 ( s y s32 _ l i s t e n , s y s _ l i s t e n , % o 0 , % o 1 )
SIGN1 ( s y s32 _ r e c v m s g , c o m p a t _ s y s _ r e c v m s g , % o 0 )
SIGN1 ( s y s32 _ s e n d m s g , c o m p a t _ s y s _ s e n d m s g , % o 0 )
SIGN2 ( s y s32 _ s h u t d o w n , s y s _ s h u t d o w n , % o 0 , % o 1 )
SIGN3 ( s y s32 _ s o c k e t p a i r , s y s _ s o c k e t p a i r , % o 0 , % o 1 , % o 2 )
SIGN1 ( s y s32 _ g e t p e e r n a m e , s y s _ g e t p e e r n a m e , % o 0 )
SIGN1 ( s y s32 _ g e t s o c k n a m e , s y s _ g e t s o c k n a m e , % o 0 )
2005-07-11 02:11:45 +04:00
SIGN2 ( s y s32 _ i o p r i o _ g e t , s y s _ i o p r i o _ g e t , % o 0 , % o 1 )
SIGN3 ( s y s32 _ i o p r i o _ s e t , s y s _ i o p r i o _ s e t , % o 0 , % o 1 , % o 2 )
2005-04-17 02:20:36 +04:00
.globl sys32_mmap2
sys32_mmap2 :
sethi % h i ( s y s _ m m a p ) , % g 1
jmpl % g 1 + % l o ( s y s _ m m a p ) , % g 0
sllx % o 5 , 1 2 , % o 5
.align 32
.globl sys32_socketcall
sys32_socketcall : /* %o0=call, %o1=args */
cmp % o 0 , 1
bl,p n % x c c , d o _ e i n v a l
cmp % o 0 , 1 7
bg,p n % x c c , d o _ e i n v a l
sub % o 0 , 1 , % o 0
sllx % o 0 , 5 , % o 0
sethi % h i ( _ _ s o c k e t c a l l _ t a b l e _ b e g i n ) , % g 2
or % g 2 , % l o ( _ _ s o c k e t c a l l _ t a b l e _ b e g i n ) , % g 2
jmpl % g 2 + % o 0 , % g 0
nop
2005-09-29 07:41:45 +04:00
do_einval :
retl
mov - E I N V A L , % o 0
2005-04-17 02:20:36 +04:00
.align 32
__socketcall_table_begin :
2005-09-29 07:21:11 +04:00
/* Each entry is exactly 32 bytes. */
2005-04-17 02:20:36 +04:00
do_sys_socket : /* sys_socket(int, int, int) */
2005-09-29 07:21:11 +04:00
1 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( s y s _ s o c k e t ) , % g 1
2005-09-29 07:21:11 +04:00
2 : ldswa [ % o 1 + 0 x8 ] % a s i , % o 2
2005-04-17 02:20:36 +04:00
jmpl % g 1 + % l o ( s y s _ s o c k e t ) , % g 0
2005-09-29 07:21:11 +04:00
3 : ldswa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
nop
nop
nop
do_sys_bind : /* sys_bind(int fd, struct sockaddr *, int) */
2005-09-29 07:21:11 +04:00
4 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( s y s _ b i n d ) , % g 1
2005-09-29 07:21:11 +04:00
5 : ldswa [ % o 1 + 0 x8 ] % a s i , % o 2
2005-04-17 02:20:36 +04:00
jmpl % g 1 + % l o ( s y s _ b i n d ) , % g 0
2005-09-29 07:21:11 +04:00
6 : lduwa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
nop
nop
nop
do_sys_connect : /* sys_connect(int, struct sockaddr *, int) */
2005-09-29 07:21:11 +04:00
7 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( s y s _ c o n n e c t ) , % g 1
2005-09-29 07:21:11 +04:00
8 : ldswa [ % o 1 + 0 x8 ] % a s i , % o 2
2005-04-17 02:20:36 +04:00
jmpl % g 1 + % l o ( s y s _ c o n n e c t ) , % g 0
2005-09-29 07:21:11 +04:00
9 : lduwa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
nop
nop
nop
do_sys_listen : /* sys_listen(int, int) */
2005-09-29 07:21:11 +04:00
10 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( s y s _ l i s t e n ) , % g 1
jmpl % g 1 + % l o ( s y s _ l i s t e n ) , % g 0
2005-09-29 07:21:11 +04:00
11 : ldswa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
nop
nop
nop
nop
do_sys_accept : /* sys_accept(int, struct sockaddr *, int *) */
2005-09-29 07:21:11 +04:00
12 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( s y s _ a c c e p t ) , % g 1
2005-09-29 07:21:11 +04:00
13 : lduwa [ % o 1 + 0 x8 ] % a s i , % o 2
2005-04-17 02:20:36 +04:00
jmpl % g 1 + % l o ( s y s _ a c c e p t ) , % g 0
2005-09-29 07:21:11 +04:00
14 : lduwa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
nop
nop
nop
do_sys_getsockname : /* sys_getsockname(int, struct sockaddr *, int *) */
2005-09-29 07:21:11 +04:00
15 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( s y s _ g e t s o c k n a m e ) , % g 1
2005-09-29 07:21:11 +04:00
16 : lduwa [ % o 1 + 0 x8 ] % a s i , % o 2
2005-04-17 02:20:36 +04:00
jmpl % g 1 + % l o ( s y s _ g e t s o c k n a m e ) , % g 0
2005-09-29 07:21:11 +04:00
17 : lduwa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
nop
nop
nop
do_sys_getpeername : /* sys_getpeername(int, struct sockaddr *, int *) */
2005-09-29 07:21:11 +04:00
18 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( s y s _ g e t p e e r n a m e ) , % g 1
2005-09-29 07:21:11 +04:00
19 : lduwa [ % o 1 + 0 x8 ] % a s i , % o 2
2005-04-17 02:20:36 +04:00
jmpl % g 1 + % l o ( s y s _ g e t p e e r n a m e ) , % g 0
2005-09-29 07:21:11 +04:00
20 : lduwa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
nop
nop
nop
do_sys_socketpair : /* sys_socketpair(int, int, int, int *) */
2005-09-29 07:21:11 +04:00
21 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( s y s _ s o c k e t p a i r ) , % g 1
2005-09-29 07:21:11 +04:00
22 : ldswa [ % o 1 + 0 x8 ] % a s i , % o 2
23 : lduwa [ % o 1 + 0 x c ] % a s i , % o 3
2005-04-17 02:20:36 +04:00
jmpl % g 1 + % l o ( s y s _ s o c k e t p a i r ) , % g 0
2005-09-29 07:21:11 +04:00
24 : ldswa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
nop
nop
do_sys_send : /* sys_send(int, void *, size_t, unsigned int) */
2005-09-29 07:21:11 +04:00
25 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( s y s _ s e n d ) , % g 1
2005-09-29 07:21:11 +04:00
26 : lduwa [ % o 1 + 0 x8 ] % a s i , % o 2
27 : lduwa [ % o 1 + 0 x c ] % a s i , % o 3
2005-04-17 02:20:36 +04:00
jmpl % g 1 + % l o ( s y s _ s e n d ) , % g 0
2005-09-29 07:21:11 +04:00
28 : lduwa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
nop
nop
do_sys_recv : /* sys_recv(int, void *, size_t, unsigned int) */
2005-09-29 07:21:11 +04:00
29 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( s y s _ r e c v ) , % g 1
2005-09-29 07:21:11 +04:00
30 : lduwa [ % o 1 + 0 x8 ] % a s i , % o 2
31 : lduwa [ % o 1 + 0 x c ] % a s i , % o 3
2005-04-17 02:20:36 +04:00
jmpl % g 1 + % l o ( s y s _ r e c v ) , % g 0
2005-09-29 07:21:11 +04:00
32 : lduwa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
nop
nop
do_sys_sendto : /* sys_sendto(int, u32, compat_size_t, unsigned int, u32, int) */
2005-09-29 07:21:11 +04:00
33 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( s y s _ s e n d t o ) , % g 1
2005-09-29 07:21:11 +04:00
34 : lduwa [ % o 1 + 0 x8 ] % a s i , % o 2
35 : lduwa [ % o 1 + 0 x c ] % a s i , % o 3
36 : lduwa [ % o 1 + 0 x10 ] % a s i , % o 4
37 : ldswa [ % o 1 + 0 x14 ] % a s i , % o 5
2005-04-17 02:20:36 +04:00
jmpl % g 1 + % l o ( s y s _ s e n d t o ) , % g 0
2005-09-29 07:21:11 +04:00
38 : lduwa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
do_sys_recvfrom : /* sys_recvfrom(int, u32, compat_size_t, unsigned int, u32, u32) */
2005-09-29 07:21:11 +04:00
39 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( s y s _ r e c v f r o m ) , % g 1
2005-09-29 07:21:11 +04:00
40 : lduwa [ % o 1 + 0 x8 ] % a s i , % o 2
41 : lduwa [ % o 1 + 0 x c ] % a s i , % o 3
42 : lduwa [ % o 1 + 0 x10 ] % a s i , % o 4
43 : lduwa [ % o 1 + 0 x14 ] % a s i , % o 5
2005-04-17 02:20:36 +04:00
jmpl % g 1 + % l o ( s y s _ r e c v f r o m ) , % g 0
2005-09-29 07:21:11 +04:00
44 : lduwa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
do_sys_shutdown : /* sys_shutdown(int, int) */
2005-09-29 07:21:11 +04:00
45 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( s y s _ s h u t d o w n ) , % g 1
jmpl % g 1 + % l o ( s y s _ s h u t d o w n ) , % g 0
2005-09-29 07:21:11 +04:00
46 : ldswa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
nop
nop
nop
nop
do_sys_setsockopt : /* compat_sys_setsockopt(int, int, int, char *, int) */
2005-09-29 07:21:11 +04:00
47 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( c o m p a t _ s y s _ s e t s o c k o p t ) , % g 1
2005-09-29 07:21:11 +04:00
48 : ldswa [ % o 1 + 0 x8 ] % a s i , % o 2
49 : lduwa [ % o 1 + 0 x c ] % a s i , % o 3
50 : ldswa [ % o 1 + 0 x10 ] % a s i , % o 4
2005-04-17 02:20:36 +04:00
jmpl % g 1 + % l o ( c o m p a t _ s y s _ s e t s o c k o p t ) , % g 0
2005-09-29 07:21:11 +04:00
51 : ldswa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
nop
do_sys_getsockopt : /* compat_sys_getsockopt(int, int, int, u32, u32) */
2005-09-29 07:21:11 +04:00
52 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( c o m p a t _ s y s _ g e t s o c k o p t ) , % g 1
2005-09-29 07:21:11 +04:00
53 : ldswa [ % o 1 + 0 x8 ] % a s i , % o 2
54 : lduwa [ % o 1 + 0 x c ] % a s i , % o 3
55 : lduwa [ % o 1 + 0 x10 ] % a s i , % o 4
2005-04-17 02:20:36 +04:00
jmpl % g 1 + % l o ( c o m p a t _ s y s _ g e t s o c k o p t ) , % g 0
2005-09-29 07:21:11 +04:00
56 : ldswa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
nop
do_sys_sendmsg : /* compat_sys_sendmsg(int, struct compat_msghdr *, unsigned int) */
2005-09-29 07:21:11 +04:00
57 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( c o m p a t _ s y s _ s e n d m s g ) , % g 1
2005-09-29 07:21:11 +04:00
58 : lduwa [ % o 1 + 0 x8 ] % a s i , % o 2
2005-04-17 02:20:36 +04:00
jmpl % g 1 + % l o ( c o m p a t _ s y s _ s e n d m s g ) , % g 0
2005-09-29 07:21:11 +04:00
59 : lduwa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
nop
nop
nop
do_sys_recvmsg : /* compat_sys_recvmsg(int, struct compat_msghdr *, unsigned int) */
2005-09-29 07:21:11 +04:00
60 : ldswa [ % o 1 + 0 x0 ] % a s i , % o 0
2005-04-17 02:20:36 +04:00
sethi % h i ( c o m p a t _ s y s _ r e c v m s g ) , % g 1
2005-09-29 07:21:11 +04:00
61 : lduwa [ % o 1 + 0 x8 ] % a s i , % o 2
2005-04-17 02:20:36 +04:00
jmpl % g 1 + % l o ( c o m p a t _ s y s _ r e c v m s g ) , % g 0
2005-09-29 07:21:11 +04:00
62 : lduwa [ % o 1 + 0 x4 ] % a s i , % o 1
2005-04-17 02:20:36 +04:00
nop
nop
nop
.section __ex_table
.align 4
2005-09-29 07:41:45 +04:00
.word 1 b, _ _ r e t l _ e f a u l t , 2 b , _ _ r e t l _ e f a u l t
.word 3 b, _ _ r e t l _ e f a u l t , 4 b , _ _ r e t l _ e f a u l t
.word 5 b, _ _ r e t l _ e f a u l t , 6 b , _ _ r e t l _ e f a u l t
.word 7 b, _ _ r e t l _ e f a u l t , 8 b , _ _ r e t l _ e f a u l t
.word 9 b, _ _ r e t l _ e f a u l t , 1 0 b , _ _ r e t l _ e f a u l t
.word 1 1 b, _ _ r e t l _ e f a u l t , 1 2 b , _ _ r e t l _ e f a u l t
.word 1 3 b, _ _ r e t l _ e f a u l t , 1 4 b , _ _ r e t l _ e f a u l t
.word 1 5 b, _ _ r e t l _ e f a u l t , 1 6 b , _ _ r e t l _ e f a u l t
.word 1 7 b, _ _ r e t l _ e f a u l t , 1 8 b , _ _ r e t l _ e f a u l t
.word 1 9 b, _ _ r e t l _ e f a u l t , 2 0 b , _ _ r e t l _ e f a u l t
.word 2 1 b, _ _ r e t l _ e f a u l t , 2 2 b , _ _ r e t l _ e f a u l t
.word 2 3 b, _ _ r e t l _ e f a u l t , 2 4 b , _ _ r e t l _ e f a u l t
.word 2 5 b, _ _ r e t l _ e f a u l t , 2 6 b , _ _ r e t l _ e f a u l t
.word 2 7 b, _ _ r e t l _ e f a u l t , 2 8 b , _ _ r e t l _ e f a u l t
.word 2 9 b, _ _ r e t l _ e f a u l t , 3 0 b , _ _ r e t l _ e f a u l t
.word 3 1 b, _ _ r e t l _ e f a u l t , 3 2 b , _ _ r e t l _ e f a u l t
.word 3 3 b, _ _ r e t l _ e f a u l t , 3 4 b , _ _ r e t l _ e f a u l t
.word 3 5 b, _ _ r e t l _ e f a u l t , 3 6 b , _ _ r e t l _ e f a u l t
.word 3 7 b, _ _ r e t l _ e f a u l t , 3 8 b , _ _ r e t l _ e f a u l t
.word 3 9 b, _ _ r e t l _ e f a u l t , 4 0 b , _ _ r e t l _ e f a u l t
.word 4 1 b, _ _ r e t l _ e f a u l t , 4 2 b , _ _ r e t l _ e f a u l t
.word 4 3 b, _ _ r e t l _ e f a u l t , 4 4 b , _ _ r e t l _ e f a u l t
.word 4 5 b, _ _ r e t l _ e f a u l t , 4 6 b , _ _ r e t l _ e f a u l t
.word 4 7 b, _ _ r e t l _ e f a u l t , 4 8 b , _ _ r e t l _ e f a u l t
.word 4 9 b, _ _ r e t l _ e f a u l t , 5 0 b , _ _ r e t l _ e f a u l t
.word 5 1 b, _ _ r e t l _ e f a u l t , 5 2 b , _ _ r e t l _ e f a u l t
.word 5 3 b, _ _ r e t l _ e f a u l t , 5 4 b , _ _ r e t l _ e f a u l t
.word 5 5 b, _ _ r e t l _ e f a u l t , 5 6 b , _ _ r e t l _ e f a u l t
.word 5 7 b, _ _ r e t l _ e f a u l t , 5 8 b , _ _ r e t l _ e f a u l t
.word 5 9 b, _ _ r e t l _ e f a u l t , 6 0 b , _ _ r e t l _ e f a u l t
.word 6 1 b, _ _ r e t l _ e f a u l t , 6 2 b , _ _ r e t l _ e f a u l t
2005-04-17 02:20:36 +04:00
.previous