48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| ! Set errno.
 | |
| ! This function is called by all the syscall stubs.
 | |
| !
 | |
| ! FIXME: We assume errno is the first member of struct _reent.
 | |
| ! Not sure what to do about this.
 | |
| 
 | |
| #include "syscallasm.h"
 | |
| 
 | |
| 	DATA_SECTION
 | |
| 	ALIGN (4)
 | |
| 	GLOBAL (ASM_SYMBOL (errno))	! FIXME: ASM_PRIVATE_SYMBOL ?
 | |
| ASM_SYMBOL (errno):
 | |
| 	WORD (0)
 | |
| 
 | |
| 	TEXT_SECTION
 | |
| 	ALIGN (4)
 | |
| 
 | |
| 	GLOBAL (ASM_PRIVATE_SYMBOL (cerror))
 | |
| ASM_PRIVATE_SYMBOL (cerror):
 | |
| 	sethi	%hi (ASM_SYMBOL (errno)),%g1
 | |
| 	st	%o0,[%g1+%lo (ASM_SYMBOL (errno))]
 | |
| 	jmpl	%o7+8,%g0
 | |
| 	mov	-1,%o0
 | |
| 
 | |
| 	GLOBAL (ASM_PRIVATE_SYMBOL (cerror_r))
 | |
| ASM_PRIVATE_SYMBOL (cerror_r):
 | |
| 	st	%o0,[%o1]
 | |
| 	jmpl	%o7+8,%g0
 | |
| 	mov	-1,%o0
 | |
| 
 | |
| ! Since all system calls need this file, we put various state globals
 | |
| ! here as well.
 | |
| 
 | |
| 	DATA_SECTION
 | |
| 
 | |
| ! CURBRK contains the current top of allocated space.
 | |
| ! END is a private symbol in svr4, but a public one in sunos4.
 | |
| ! FIXME: CURBRK is 4 bytes for now.
 | |
| 
 | |
| 	ALIGN (4)
 | |
| 	GLOBAL (ASM_PRIVATE_SYMBOL (curbrk))
 | |
| ASM_PRIVATE_SYMBOL (curbrk):
 | |
| #ifdef SVR4
 | |
| 	WORD (ASM_PRIVATE_SYMBOL (end))
 | |
| #else
 | |
| 	WORD (ASM_SYMBOL (end))
 | |
| #endif
 |