| [16] | 1 | /* | 
|---|
|  | 2 | * hal_syscall.h - Architecture specific syscall handler API definition. | 
|---|
| [17] | 3 | * | 
|---|
| [16] | 4 | * Author      Alain Greiner (2016,2017) | 
|---|
|  | 5 | * | 
|---|
|  | 6 | * Copyright (c) UPMC Sorbonne Universites | 
|---|
|  | 7 | * | 
|---|
|  | 8 | * This file is part of ALMOS-MKH. | 
|---|
|  | 9 | * | 
|---|
|  | 10 | * ALMOS-MKH is free software; you can redistribute it and/or modify it | 
|---|
|  | 11 | * under the terms of the GNU General Public License as published by | 
|---|
|  | 12 | * the Free Software Foundation; version 2.0 of the License. | 
|---|
|  | 13 | * | 
|---|
|  | 14 | * ALMOS-MKH is distributed in the hope that it will be useful, but | 
|---|
|  | 15 | * WITHOUT ANY WARRANTY; without even the implied warranty of | 
|---|
|  | 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
|---|
|  | 17 | * General Public License for more details. | 
|---|
|  | 18 | * | 
|---|
|  | 19 | * You should have received a copy of the GNU General Public License | 
|---|
|  | 20 | * along with ALMOS-MKH; if not, write to the Free Software Foundation, | 
|---|
|  | 21 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 
|---|
|  | 22 | */ | 
|---|
|  | 23 |  | 
|---|
|  | 24 | #ifndef _HAL_SYSCALL_H_ | 
|---|
|  | 25 | #define _HAL_SYSCALL_H_ | 
|---|
|  | 26 |  | 
|---|
|  | 27 | #include <hal_types.h> | 
|---|
|  | 28 |  | 
|---|
|  | 29 | ////////////////////////////////////////////////////////////////////////////////////////// | 
|---|
| [17] | 30 | //     ARchitecture specific syscall handler API | 
|---|
| [16] | 31 | // | 
|---|
| [17] | 32 | // The calling thread context has been saved in the cpu_uzone array, | 
|---|
| [16] | 33 | // stored in the user thread descriptor by the hal_kentry function. | 
|---|
|  | 34 | // The architecture specific handler must use this array to get the syscall | 
|---|
|  | 35 | // index and the arguments values. | 
|---|
|  | 36 | // | 
|---|
|  | 37 | // Any architecture specific implementation must implement this API. | 
|---|
|  | 38 | ////////////////////////////////////////////////////////////////////////////////////////// | 
|---|
|  | 39 |  | 
|---|
|  | 40 | /**** forward declaration  ****/ | 
|---|
|  | 41 |  | 
|---|
|  | 42 | struct thread_s; | 
|---|
|  | 43 |  | 
|---|
|  | 44 |  | 
|---|
|  | 45 | /***************************************************************************************** | 
|---|
|  | 46 | * This function implements the ALMOS-MKH syscall handler. | 
|---|
|  | 47 | ***************************************************************************************** | 
|---|
|  | 48 | * @ this     : pointer on the calling thread. | 
|---|
|  | 49 | * @ regs_tbl : array containing the core registers values, saved by hal_kentry. | 
|---|
|  | 50 | ****************************************************************************************/ | 
|---|
|  | 51 | void hal_do_syscall( struct thread_s * this, | 
|---|
|  | 52 | reg_t           * regs_tbl ); | 
|---|
|  | 53 |  | 
|---|
|  | 54 |  | 
|---|
|  | 55 | #endif   // _HAL_SYSCALL_H_ | 
|---|