2008-02-08 04:19:31 -08:00
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# MN1 0 3 0 0 E x c e p t i o n a n d i n t e r r u p t e n t r y p o i n t s
#
# Copyright ( C ) 2 0 0 7 M a t s u s h i t a E l e c t r i c I n d u s t r i a l C o . , L t d .
# Copyright ( C ) 2 0 0 7 R e d H a t , I n c . A l l R i g h t s R e s e r v e d .
# Modified b y D a v i d H o w e l l s ( d h o w e l l s @redhat.com)
#
# This p r o g r a m i s f r e e s o f t w a r e ; you can redistribute it and/or
# modify i t u n d e r t h e t e r m s o f t h e G N U G e n e r a l P u b l i c L i c e n c e
# as p u b l i s h e d b y t h e F r e e S o f t w a r e F o u n d a t i o n ; either version
# 2 of t h e L i c e n c e , o r ( a t y o u r o p t i o n ) a n y l a t e r v e r s i o n .
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# include < l i n u x / s y s . h >
# include < l i n u x / l i n k a g e . h >
# include < a s m / s m p . h >
# include < a s m / s y s t e m . h >
# include < a s m / t h r e a d _ i n f o . h >
# include < a s m / i n t c t l - r e g s . h >
# include < a s m / b u s c t l - r e g s . h >
# include < a s m / t i m e r - r e g s . h >
# include < a s m / u n i t / l e d s . h >
# include < a s m / p a g e . h >
# include < a s m / p g t a b l e . h >
# include < a s m / e r r n o . h >
# include < a s m / a s m - o f f s e t s . h >
# include < a s m / f r a m e . i n c >
# ifdef C O N F I G _ P R E E M P T
# define p r e e m p t _ s t o p _ _ c l i
# else
# define p r e e m p t _ s t o p
# define r e s u m e _ k e r n e l r e s t o r e _ a l l
# endif
.macro __cli
and ~ E P S W _ I M ,e p s w
or E P S W _ I E | M N 1 0 3 0 0 _ C L I _ L E V E L ,e p s w
nop
nop
nop
.endm
.macro __sti
or E P S W _ I E | E P S W _ I M _ 7 ,e p s w
.endm
.am33_2
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# the r e t u r n p a t h f o r a f o r k e d c h i l d
# - on e n t r y , D 0 h o l d s t h e a d d r e s s o f t h e p r e v i o u s t a s k t o r u n
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
ENTRY( r e t _ f r o m _ f o r k )
call s c h e d u l e _ t a i l [ ] ,0
GET_ T H R E A D _ I N F O a2
# return 0 t o i n d i c a t e c h i l d p r o c e s s
clr d0
mov d0 ,( R E G _ D 0 ,f p )
jmp s y s c a l l _ e x i t
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# system c a l l h a n d l e r
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
ENTRY( s y s t e m _ c a l l )
add - 4 ,s p
SAVE_ A L L
mov d0 ,( R E G _ O R I G _ D 0 ,f p )
GET_ T H R E A D _ I N F O a2
cmp n r _ s y s c a l l s ,d0
bcc s y s c a l l _ b a d s y s
btst _ T I F _ S Y S C A L L _ T R A C E ,( T I _ f l a g s ,a2 )
bne s y s c a l l _ t r a c e _ e n t r y
syscall_call :
add d0 ,d0 ,a1
add a1 ,a1
mov ( R E G _ A 0 ,f p ) ,d0
mov ( s y s _ c a l l _ t a b l e ,a1 ) ,a0
calls ( a0 )
mov d0 ,( R E G _ D 0 ,f p )
syscall_exit :
# make s u r e w e d o n ' t m i s s a n i n t e r r u p t s e t t i n g n e e d _ r e s c h e d o r
# sigpending b e t w e e n s a m p l i n g a n d t h e r t i
_ _ cli
mov ( T I _ f l a g s ,a2 ) ,d2
btst _ T I F _ A L L W O R K _ M A S K ,d2
bne s y s c a l l _ e x i t _ w o r k
restore_all :
RESTORE_ A L L
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# perform w o r k t h a t n e e d s t o b e d o n e i m m e d i a t e l y b e f o r e r e s u m p t i o n a n d s y s c a l l
# tracing
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
ALIGN
syscall_exit_work :
btst _ T I F _ S Y S C A L L _ T R A C E ,d2
beq w o r k _ p e n d i n g
_ _ sti # c o u l d l e t d o _ s y s c a l l _ t r a c e ( ) c a l l
# schedule( ) i n s t e a d
mov f p ,d0
mov 1 ,d1
call d o _ s y s c a l l _ t r a c e [ ] ,0 # d o _ s y s c a l l _ t r a c e ( r e g s , e n t r y e x i t )
jmp r e s u m e _ u s e r s p a c e
ALIGN
work_pending :
btst _ T I F _ N E E D _ R E S C H E D ,d2
beq w o r k _ n o t i f y s i g
work_resched :
call s c h e d u l e [ ] ,0
# make s u r e w e d o n ' t m i s s a n i n t e r r u p t s e t t i n g n e e d _ r e s c h e d o r
# sigpending b e t w e e n s a m p l i n g a n d t h e r t i
_ _ cli
# is t h e r e a n y w o r k t o b e d o n e o t h e r t h a n s y s c a l l t r a c i n g ?
mov ( T I _ f l a g s ,a2 ) ,d2
btst _ T I F _ W O R K _ M A S K ,d2
beq r e s t o r e _ a l l
btst _ T I F _ N E E D _ R E S C H E D ,d2
bne w o r k _ r e s c h e d
# deal w i t h p e n d i n g s i g n a l s a n d n o t i f y - r e s u m e r e q u e s t s
work_notifysig :
mov f p ,d0
mov d2 ,d1
call d o _ n o t i f y _ r e s u m e [ ] ,0
jmp r e s u m e _ u s e r s p a c e
# perform s y s c a l l e n t r y t r a c i n g
syscall_trace_entry :
mov - E N O S Y S ,d0
mov d0 ,( R E G _ D 0 ,f p )
mov f p ,d0
clr d1
call d o _ s y s c a l l _ t r a c e [ ] ,0
mov ( R E G _ O R I G _ D 0 ,f p ) ,d0
mov ( R E G _ D 1 ,f p ) ,d1
cmp n r _ s y s c a l l s ,d0
bcs s y s c a l l _ c a l l
jmp s y s c a l l _ e x i t
syscall_badsys :
mov - E N O S Y S ,d0
mov d0 ,( R E G _ D 0 ,f p )
jmp r e s u m e _ u s e r s p a c e
# userspace r e s u m p t i o n s t u b b y p a s s i n g s y s c a l l e x i t t r a c i n g
.globl ret_ f r o m _ e x c e p t i o n , r e t _ f r o m _ i n t r
ALIGN
ret_from_exception :
preempt_ s t o p
ret_from_intr :
GET_ T H R E A D _ I N F O a2
mov ( R E G _ E P S W ,f p ) ,d0 # n e e d t o d e l i v e r s i g n a l s b e f o r e
# returning t o u s e r s p a c e
and E P S W _ n S L ,d0
beq r e s u m e _ k e r n e l # r e t u r n i n g t o s u p e r v i s o r m o d e
ENTRY( r e s u m e _ u s e r s p a c e )
# make s u r e w e d o n ' t m i s s a n i n t e r r u p t s e t t i n g n e e d _ r e s c h e d o r
# sigpending b e t w e e n s a m p l i n g a n d t h e r t i
_ _ cli
# is t h e r e a n y w o r k t o b e d o n e o n i n t / e x c e p t i o n r e t u r n ?
mov ( T I _ f l a g s ,a2 ) ,d2
btst _ T I F _ W O R K _ M A S K ,d2
bne w o r k _ p e n d i n g
jmp r e s t o r e _ a l l
# ifdef C O N F I G _ P R E E M P T
ENTRY( r e s u m e _ k e r n e l )
2008-12-10 12:43:29 +00:00
_ _ cli
2008-02-08 04:19:31 -08:00
mov ( T I _ p r e e m p t _ c o u n t ,a2 ) ,d0 # n o n - z e r o p r e e m p t _ c o u n t ?
cmp 0 ,d0
bne r e s t o r e _ a l l
need_resched :
btst _ T I F _ N E E D _ R E S C H E D ,( T I _ f l a g s ,a2 )
beq r e s t o r e _ a l l
mov ( R E G _ E P S W ,f p ) ,d0
and E P S W _ I M ,d0
cmp E P S W _ I M _ 7 ,d0 # i n t e r r u p t s o f f ( e x c e p t i o n p a t h ) ?
2008-12-10 12:43:29 +00:00
bne r e s t o r e _ a l l
2008-02-08 04:19:31 -08:00
call p r e e m p t _ s c h e d u l e _ i r q [ ] ,0
jmp n e e d _ r e s c h e d
# endif
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# IRQ h a n d l e r e n t r y p o i n t
# - intended t o b e e n t e r e d a t m u l t i p l e p r i o r i t i e s
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
ENTRY( i r q _ h a n d l e r )
add - 4 ,s p
SAVE_ A L L
# it' s n o t a s y s c a l l
mov 0 x f f f f f f f f ,d0
mov d0 ,( R E G _ O R I G _ D 0 ,f p )
mov f p ,d0
call d o _ I R Q [ ] ,0 # d o _ I R Q ( r e g s )
jmp r e t _ f r o m _ i n t r
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# Monitor S i g n a l h a n d l e r e n t r y p o i n t
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
ENTRY( m o n i t o r _ s i g n a l )
movbu ( 0 x a e 0 0 0 0 0 1 ) ,d1
cmp 1 ,d1
beq m o n s i g n a l
ret [ ] ,0
monsignal :
or E P S W _ N M I D ,e p s w
mov d0 ,a0
mov a0 ,s p
mov ( R E G _ E P S W ,f p ) ,d1
and ~ E P S W _ n S L ,d1
mov d1 ,( R E G _ E P S W ,f p )
movm ( s p ) ,[ d2 ,d3 ,a2 ,a3 ,e x r e g 0 ,e x r e g 1 ,e x o t h e r ]
mov ( s p ) ,a1
mov a1 ,u s p
movm ( s p ) ,[ o t h e r ]
add 4 ,s p
here : jmp 0 x8 e 0 0 0 0 0 8 - h e r e + 0 x8 e 0 0 0 0 0 8
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# Double F a u l t h a n d l e r e n t r y p o i n t
# - note t h a t t h e r e w i l l n o t b e a s t a c k , D 0 / A 0 w i l l h o l d E P S W / P C a s w e r e
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
.section .bss
.balign THREAD_SIZE
.space THREAD_SIZE
__df_stack :
.previous
ENTRY( d o u b l e _ f a u l t )
mov a0 ,( _ _ d f _ s t a c k - 4 ) # P C a s w a s
mov d0 ,( _ _ d f _ s t a c k - 8 ) # E P S W a s w a s
mn1 0 3 0 0 _ s e t _ d b f l e d s # d i s p l a y ' d b - f ' o n t h e L E D s
mov 0 x a a55 a a55 ,d0
mov d0 ,( _ _ d f _ s t a c k - 1 2 ) # n o O R I G _ D 0
mov s p ,a0 # s a v e c o r r u p t e d S P
mov _ _ d f _ s t a c k - 1 2 ,s p # e m e r g e n c y s u p e r v i s o r s t a c k
SAVE_ A L L
mov a0 ,( R E G _ A 0 ,f p ) # s a v e c o r r u p t e d S P a s A 0 ( w h i c h g o t
# clobbered b y t h e C P U )
mov f p ,d0
calls d o _ d o u b l e _ f a u l t
double_fault_loop :
bra d o u b l e _ f a u l t _ l o o p
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# Bus E r r o r h a n d l e r e n t r y p o i n t
# - handle e x t e r n a l ( a s y n c ) b u s e r r o r s s e p a r a t e l y
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
ENTRY( r a w _ b u s _ e r r o r )
add - 4 ,s p
mov d0 ,( s p )
mov ( B C B E R R ) ,d0 # w h a t
btst B C B E R R _ B E M R _ D M A ,d0 # s e e i f i t w a s a n e x t e r n a l b u s e r r o r
beq _ _ c o m m o n _ e x c e p t i o n _ a u x # i t w a s n ' t
SAVE_ A L L
mov ( B C B E A R ) ,d1 # d e s t i n a t i o n o f e r r o n e o u s a c c e s s
mov ( R E G _ O R I G _ D 0 ,f p ) ,d2
mov d2 ,( R E G _ D 0 ,f p )
mov - 1 ,d2
mov d2 ,( R E G _ O R I G _ D 0 ,f p )
add - 4 ,s p
mov f p ,( 1 2 ,s p ) # f r a m e p o i n t e r
call i o _ b u s _ e r r o r [ ] ,0
jmp r e s t o r e _ a l l
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# Miscellaneous e x c e p t i o n e n t r y p o i n t s
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
ENTRY( n m i _ h a n d l e r )
add - 4 ,s p
mov d0 ,( s p )
mov ( T B R ) ,d0
bra _ _ c o m m o n _ e x c e p t i o n _ n o n m i
ENTRY( _ _ c o m m o n _ e x c e p t i o n )
add - 4 ,s p
mov d0 ,( s p )
__common_exception_aux :
mov ( T B R ) ,d0
and ~ E P S W _ N M I D ,e p s w # t u r n N M I s b a c k o n i f n o t N M I
or E P S W _ I E ,e p s w
__common_exception_nonmi :
and 0 x00 0 0 F F F F ,d0 # t u r n t h e e x c e p t i o n c o d e i n t o a v e c t o r
# table i n d e x
btst 0 x00 0 0 0 0 0 7 ,d0
bne 1 f
cmp 0 x00 0 0 0 4 0 0 ,d0
bge 1 f
SAVE_ A L L # b u i l d t h e s t a c k f r a m e
mov ( R E G _ D 0 ,f p ) ,a2 # g e t t h e e x c e p t i o n n u m b e r
mov ( R E G _ O R I G _ D 0 ,f p ) ,d0
mov d0 ,( R E G _ D 0 ,f p )
mov - 1 ,d0
mov d0 ,( R E G _ O R I G _ D 0 ,f p )
# ifdef C O N F I G _ G D B S T U B
btst 0 x01 ,( g d b s t u b _ b u s y )
beq 2 f
and ~ E P S W _ I E ,e p s w
mov f p ,d0
mov a2 ,d1
call g d b s t u b _ e x c e p t i o n [ ] ,0 # g d b s t u b i t s e l f c a u s e d a n e x c e p t i o n
bra r e s t o r e _ a l l
2 :
# endif
mov f p ,d0 # a r g 0 : s t a c k e d r e g i s t e r f i l e
mov a2 ,d1 # a r g 1 : e x c e p t i o n n u m b e r
lsr 1 ,a2
mov ( e x c e p t i o n _ t a b l e ,a2 ) ,a2
calls ( a2 )
jmp r e t _ f r o m _ e x c e p t i o n
1 : pi # B U G ( ) e q u i v a l e n t
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# Exception h a n d l e r f u n c t i o n s t a b l e
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
.data
ENTRY( e x c e p t i o n _ t a b l e )
.rept 0 x4 0 0 > > 1
.long uninitialised_exception
.endr
.previous
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# Change a n e n t r y i n t h e e x c e p t i o n t a b l e
# - D0 e x c e p t i o n c o d e , D 1 h a n d l e r
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
ENTRY( s e t _ e x c p _ v e c t o r )
lsr 1 ,d0
add e x c e p t i o n _ t a b l e ,d0
mov d1 ,( d0 )
mov 4 ,d1
# if d e f i n e d ( C O N F I G _ M N 1 0 3 0 0 _ C A C H E _ W B A C K )
jmp m n 1 0 3 0 0 _ d c a c h e _ f l u s h _ i n v _ r a n g e 2
# else
ret [ ] ,0
# endif
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# System c a l l t a b l e
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
.data
ENTRY( s y s _ c a l l _ t a b l e )
.long sys_restart_syscall /* 0 */
.long sys_exit
.long sys_fork
.long sys_read
.long sys_write
.long sys_open /* 5 */
.long sys_close
.long sys_waitpid
.long sys_creat
.long sys_link
.long sys_unlink /* 10 */
.long sys_execve
.long sys_chdir
.long sys_time
.long sys_mknod
.long sys_chmod /* 15 */
.long sys_lchown16
.long sys_ni_syscall /* old break syscall holder */
.long sys_stat
.long sys_lseek
.long sys_getpid /* 20 */
.long sys_mount
.long sys_oldumount
.long sys_setuid16
.long sys_getuid16
.long sys_stime /* 25 */
.long sys_ptrace
.long sys_alarm
.long sys_fstat
.long sys_pause
.long sys_utime /* 30 */
.long sys_ni_syscall /* old stty syscall holder */
.long sys_ni_syscall /* old gtty syscall holder */
.long sys_access
.long sys_nice
.long sys_ni_syscall /* 35 - old ftime syscall holder */
.long sys_sync
.long sys_kill
.long sys_rename
.long sys_mkdir
.long sys_rmdir /* 40 */
.long sys_dup
.long sys_pipe
.long sys_times
.long sys_ni_syscall /* old prof syscall holder */
.long sys_brk /* 45 */
.long sys_setgid16
.long sys_getgid16
.long sys_signal
.long sys_geteuid16
.long sys_getegid16 /* 50 */
.long sys_acct
.long sys_umount /* recycled never used phys() */
.long sys_ni_syscall /* old lock syscall holder */
.long sys_ioctl
.long sys_fcntl /* 55 */
.long sys_ni_syscall /* old mpx syscall holder */
.long sys_setpgid
.long sys_ni_syscall /* old ulimit syscall holder */
.long sys_ni_syscall /* old sys_olduname */
.long sys_umask /* 60 */
.long sys_chroot
.long sys_ustat
.long sys_dup2
.long sys_getppid
.long sys_getpgrp /* 65 */
.long sys_setsid
.long sys_sigaction
.long sys_sgetmask
.long sys_ssetmask
.long sys_setreuid16 /* 70 */
.long sys_setregid16
.long sys_sigsuspend
.long sys_sigpending
.long sys_sethostname
.long sys_setrlimit /* 75 */
.long sys_old_getrlimit
.long sys_getrusage
.long sys_gettimeofday
.long sys_settimeofday
.long sys_getgroups16 /* 80 */
.long sys_setgroups16
.long old_select
.long sys_symlink
.long sys_lstat
.long sys_readlink /* 85 */
.long sys_uselib
.long sys_swapon
.long sys_reboot
2009-01-14 14:13:55 +01:00
.long sys_old_readdir
2008-02-08 04:19:31 -08:00
.long old_mmap /* 90 */
.long sys_munmap
.long sys_truncate
.long sys_ftruncate
.long sys_fchmod
.long sys_fchown16 /* 95 */
.long sys_getpriority
.long sys_setpriority
.long sys_ni_syscall /* old profil syscall holder */
.long sys_statfs
.long sys_fstatfs /* 100 */
.long sys_ni_syscall /* ioperm */
.long sys_socketcall
.long sys_syslog
.long sys_setitimer
.long sys_getitimer /* 105 */
.long sys_newstat
.long sys_newlstat
.long sys_newfstat
.long sys_ni_syscall /* old sys_uname */
.long sys_ni_syscall /* 110 - iopl */
.long sys_vhangup
.long sys_ni_syscall /* old "idle" system call */
.long sys_ni_syscall /* vm86old */
.long sys_wait4
.long sys_swapoff /* 115 */
.long sys_sysinfo
.long sys_ipc
.long sys_fsync
.long sys_sigreturn
.long sys_clone /* 120 */
.long sys_setdomainname
.long sys_newuname
.long sys_ni_syscall /* modify_ldt */
.long sys_adjtimex
.long sys_mprotect /* 125 */
.long sys_sigprocmask
.long sys_ni_syscall /* old "create_module" */
.long sys_init_module
.long sys_delete_module
.long sys_ni_syscall /* 130: old "get_kernel_syms" */
.long sys_quotactl
.long sys_getpgid
.long sys_fchdir
.long sys_bdflush
.long sys_sysfs /* 135 */
.long sys_personality
.long sys_ni_syscall /* reserved for afs_syscall */
.long sys_setfsuid16
.long sys_setfsgid16
.long sys_llseek /* 140 */
.long sys_getdents
.long sys_select
.long sys_flock
.long sys_msync
.long sys_readv /* 145 */
.long sys_writev
.long sys_getsid
.long sys_fdatasync
.long sys_sysctl
.long sys_mlock /* 150 */
.long sys_munlock
.long sys_mlockall
.long sys_munlockall
.long sys_sched_setparam
.long sys_sched_getparam /* 155 */
.long sys_sched_setscheduler
.long sys_sched_getscheduler
.long sys_sched_yield
.long sys_sched_get_priority_max
.long sys_sched_get_priority_min /* 160 */
.long sys_sched_rr_get_interval
.long sys_nanosleep
.long sys_mremap
.long sys_setresuid16
.long sys_getresuid16 /* 165 */
.long sys_ni_syscall /* vm86 */
.long sys_ni_syscall /* Old sys_query_module */
.long sys_poll
.long sys_nfsservctl
.long sys_setresgid16 /* 170 */
.long sys_getresgid16
.long sys_prctl
.long sys_rt_sigreturn
.long sys_rt_sigaction
.long sys_rt_sigprocmask /* 175 */
.long sys_rt_sigpending
.long sys_rt_sigtimedwait
.long sys_rt_sigqueueinfo
.long sys_rt_sigsuspend
.long sys_pread64 /* 180 */
.long sys_pwrite64
.long sys_chown16
.long sys_getcwd
.long sys_capget
.long sys_capset /* 185 */
.long sys_sigaltstack
.long sys_sendfile
.long sys_ni_syscall /* reserved for streams1 */
.long sys_ni_syscall /* reserved for streams2 */
.long sys_vfork /* 190 */
.long sys_getrlimit
.long sys_mmap2
.long sys_truncate64
.long sys_ftruncate64
.long sys_stat64 /* 195 */
.long sys_lstat64
.long sys_fstat64
.long sys_lchown
.long sys_getuid
.long sys_getgid /* 200 */
.long sys_geteuid
.long sys_getegid
.long sys_setreuid
.long sys_setregid
.long sys_getgroups /* 205 */
.long sys_setgroups
.long sys_fchown
.long sys_setresuid
.long sys_getresuid
.long sys_setresgid /* 210 */
.long sys_getresgid
.long sys_chown
.long sys_setuid
.long sys_setgid
.long sys_setfsuid /* 215 */
.long sys_setfsgid
.long sys_pivot_root
.long sys_mincore
.long sys_madvise
.long sys_getdents64 /* 220 */
.long sys_fcntl64
.long sys_ni_syscall /* reserved for TUX */
.long sys_ni_syscall
.long sys_gettid
.long sys_readahead /* 225 */
.long sys_setxattr
.long sys_lsetxattr
.long sys_fsetxattr
.long sys_getxattr
.long sys_lgetxattr /* 230 */
.long sys_fgetxattr
.long sys_listxattr
.long sys_llistxattr
.long sys_flistxattr
.long sys_removexattr /* 235 */
.long sys_lremovexattr
.long sys_fremovexattr
.long sys_tkill
.long sys_sendfile64
.long sys_futex /* 240 */
.long sys_sched_setaffinity
.long sys_sched_getaffinity
.long sys_ni_syscall /* sys_set_thread_area */
.long sys_ni_syscall /* sys_get_thread_area */
.long sys_io_setup /* 245 */
.long sys_io_destroy
.long sys_io_getevents
.long sys_io_submit
.long sys_io_cancel
.long sys_fadvise64 /* 250 */
.long sys_ni_syscall
.long sys_exit_group
.long sys_lookup_dcookie
.long sys_epoll_create
.long sys_epoll_ctl /* 255 */
.long sys_epoll_wait
.long sys_remap_file_pages
.long sys_set_tid_address
.long sys_timer_create
.long sys_timer_settime /* 260 */
.long sys_timer_gettime
.long sys_timer_getoverrun
.long sys_timer_delete
.long sys_clock_settime
.long sys_clock_gettime /* 265 */
.long sys_clock_getres
.long sys_clock_nanosleep
.long sys_statfs64
.long sys_fstatfs64
.long sys_tgkill /* 270 */
.long sys_utimes
.long sys_fadvise64_64
.long sys_ni_syscall /* sys_vserver */
.long sys_mbind
.long sys_get_mempolicy /* 275 */
.long sys_set_mempolicy
.long sys_mq_open
.long sys_mq_unlink
.long sys_mq_timedsend
.long sys_mq_timedreceive /* 280 */
.long sys_mq_notify
.long sys_mq_getsetattr
.long sys_kexec_load
.long sys_waitid
.long sys_ni_syscall /* 285 */ /* available */
.long sys_add_key
.long sys_request_key
.long sys_keyctl
.long sys_cacheflush
.long sys_ioprio_set /* 290 */
.long sys_ioprio_get
.long sys_inotify_init
.long sys_inotify_add_watch
.long sys_inotify_rm_watch
.long sys_migrate_pages /* 295 */
.long sys_openat
.long sys_mkdirat
.long sys_mknodat
.long sys_fchownat
.long sys_futimesat /* 300 */
.long sys_fstatat64
.long sys_unlinkat
.long sys_renameat
.long sys_linkat
.long sys_symlinkat /* 305 */
.long sys_readlinkat
.long sys_fchmodat
.long sys_faccessat
.long sys_pselect6
.long sys_ppoll /* 310 */
.long sys_unshare
.long sys_set_robust_list
.long sys_get_robust_list
.long sys_splice
.long sys_sync_file_range /* 315 */
.long sys_tee
.long sys_vmsplice
.long sys_move_pages
.long sys_getcpu
.long sys_epoll_pwait /* 320 */
.long sys_utimensat
.long sys_signalfd
.long sys_timerfd_create
.long sys_eventfd
.long sys_fallocate /* 325 */
.long sys_timerfd_settime
.long sys_timerfd_gettime
2008-07-31 13:01:30 +01:00
.long sys_signalfd4
.long sys_eventfd2
.long sys_epoll_create1 /* 330 */
.long sys_dup3
.long sys_pipe2
.long sys_inotify_init1
2008-02-08 04:19:31 -08:00
nr_ s y s c a l l s = ( . - s y s _ c a l l _ t a b l e ) / 4