00001 /* 00002 * ARTI -- RTAI-compatible Adeos-based Real-Time Interface. Based on 00003 * the original RTAI layer for x86. 00004 * 00005 * Original RTAI/x86 layer implementation: 00006 * Copyright (C) 2000 Paolo Mantegazza, 00007 * Copyright (C) 2000 Steve Papacharalambous, 00008 * Copyright (C) 2000 Stuart Hughes, 00009 * and others. 00010 * 00011 * RTAI/x86 rewrite over Adeos: 00012 * Copyright (C) 2002 Philippe Gerum. 00013 * 00014 * This program is free software; you can redistribute it and/or modify 00015 * it under the terms of the GNU General Public License as published by 00016 * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, 00017 * USA; either version 2 of the License, or (at your option) any later 00018 * version. 00019 * 00020 * This program is distributed in the hope that it will be useful, 00021 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00022 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00023 * GNU General Public License for more details. 00024 * 00025 * You should have received a copy of the GNU General Public License 00026 * along with this program; if not, write to the Free Software 00027 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00028 */ 00029 00030 #ifndef _RTAI_ASM_I386_VECTORS_H 00031 #define _RTAI_ASM_I386_VECTORS_H 00032 00033 #include <rtai_config.h> 00034 00035 /* On Linux x86, Adeos reserves vectors from 0xdf-0xee for domain 00036 usage. */ 00037 00038 #define RTAI_APIC1_VECTOR 0xe1 00039 #define RTAI_APIC2_VECTOR 0xe9 00040 00041 #define RTAI_APIC1_IPI 193 00042 #define RTAI_APIC2_IPI 201 00043 00044 #define RTAI_SYS_VECTOR 0xe2 00045 #define RTAI_LXRT_VECTOR 0xe3 00046 #define RTAI_SHM_VECTOR 0xe4 00047 00048 #define __rtai_stringize0(_s_) #_s_ 00049 #define __rtai_stringize(_s_) __rtai_stringize0(_s_) 00050 #define __rtai_trap_call(_t_) _t_ 00051 #define __rtai_do_trap0(_t_) __rtai_stringize(int $ _t_) 00052 #define __rtai_do_trap(_t_) __rtai_do_trap0(__rtai_trap_call(_t_)) 00053 00054 #define RTAI_DO_TRAP(v,r,a1,a2) __asm__ __volatile__ ( __rtai_do_trap(v) \ 00055 : "=A" (r) : "a" (a1), "d" (a2)) 00056 00057 #endif /* !_RTAI_ASM_I386_VECTORS_H */