X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=target_firmware%2Fmagpie_fw_dev%2Fbuild%2Fmagpie_1_1%2Fsboot%2Fathos%2Fsrc%2Fxtos%2Fexc-syscall-c-handler.c;fp=target_firmware%2Fmagpie_fw_dev%2Fbuild%2Fmagpie_1_1%2Fsboot%2Fathos%2Fsrc%2Fxtos%2Fexc-syscall-c-handler.c;h=0000000000000000000000000000000000000000;hb=da213e4442109ebad163518ed9edd3467e6be863;hp=405f7b63e60207abd9ccb29e1c7699ff98f3ff50;hpb=dd9b0fc8602b54c56dc9e76a3d9def97ff83d3a4;p=open-ath9k-htc-firmware.git diff --git a/target_firmware/magpie_fw_dev/build/magpie_1_1/sboot/athos/src/xtos/exc-syscall-c-handler.c b/target_firmware/magpie_fw_dev/build/magpie_1_1/sboot/athos/src/xtos/exc-syscall-c-handler.c deleted file mode 100755 index 405f7b6..0000000 --- a/target_firmware/magpie_fw_dev/build/magpie_1_1/sboot/athos/src/xtos/exc-syscall-c-handler.c +++ /dev/null @@ -1,101 +0,0 @@ -/* exc-syscall-c-handler.c - SYSCALL instruction XTOS handler in C */ - -/* - * Copyright (c) 1999-2006 Tensilica Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#include -#include "xtos-internal.h" - - -/* - * User vector mode exception handler for the SYSCALL cause. - * - * NOTE: This function is NOT used by default. The assembly-level - * handler version of this function is normally used instead. - * This function is provided as an example only. - * To use it instead of the default assembly-level version, - * you can register it using _xtos_set_exception_handler(). - * For example: - * - * #include - * #include - * _xtos_set_exception_handler( EXCCAUSE_SYSCALL, - * (_xtos_handler)_xtos_p_syscall_handler ); - */ -UserFrame* _xtos_p_syscall_handler( UserFrame *uf /*, int cause */ ) -{ - uf->pc += 3; /* skip SYSCALL instruction */ - -#if XCHAL_HAVE_LOOPS - /* - * If the SYSCALL instruction was the last instruction in the body - * of a zero-overhead loop, then we should decrement the loop count - * and resume execution at the head of the loop. - */ - - if( uf->pc == uf->lend && uf->lcount != 0 ) - { - uf->lcount--; - uf->pc = uf->lbeg; - } -#endif /*XCHAL_HAVE_LOOP*/ - - /* - * Handle the system call. - * - * A typical SYSCALL handler uses code such as this to handle - * the system call, where the operation to be done is determined - * by the a2 register. Parameters to the operation are typically - * passed in address registers a3 and up. Results are typically - * returned in a2. (See Linux source code for example.) - */ - switch( uf->a2 ) { - case 0: - /* Spill register windows to the stack. */ - /* - * The Xtensa architecture reserves the a2==0 condition as a request - * to flush (spill) register windows to the stack. The current exception - * handling implementation never spills windows to the stack (it used - * to always spill, not true anymore), so we have to spill windows - * explicitly here. (Note that xthal_window_spill() spills windows - * that are part of the interrupt handling context, that don't - * really need to be spilled, but that's harmless other than being - * less than optimally efficient.) - * - * Also, be nice to programmers here. If they're - * building for Call0 ABI, silently do nothing for - * syscall a2==0. - */ -#ifdef __XTENSA_WINDOWED_ABI__ - xthal_window_spill(); -#endif - break; - - default: - uf->a2 = -1 /*ENOSYS*/; /* system call not supported */ - break; - } - - return( uf ); -} -