# rtai_vectors.h

    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)  do { __asm__ __volatile__ ( __rtai_do_trap(v): : "a" (a1), "c" (a2), "d" (&r)); } while (0)
    00055
    00056 #endif /* !_RTAI_ASM_I386_VECTORS_H */