24 lines
		
	
	
		
			602 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			602 B
		
	
	
	
		
			C
		
	
	
	
| /*
 | |
|  * Copyright (C) 2020 Embecosm Limited
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| #include <machine/syscall.h>
 | |
| #include "semihost_syscall.h"
 | |
| 
 | |
| #define ADP_Stopped_ApplicationExit 0x20026
 | |
| 
 | |
| /* Exit a program without cleaning up files.  */
 | |
| void
 | |
| _exit (int exit_status)
 | |
| {
 | |
| #if __riscv_xlen == 32
 | |
|   syscall_errno (SEMIHOST_exit, (long *) ADP_Stopped_ApplicationExit);
 | |
| #else
 | |
|   /* The semihosting exit operation only allows 64-bit targets to report the
 | |
|      exit code.  */
 | |
|   long data_block[] = {ADP_Stopped_ApplicationExit, exit_status};
 | |
|   syscall_errno (SEMIHOST_exit, data_block);
 | |
| #endif
 | |
|   while (1);
 | |
| }
 |