00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _RTAI_SRQ_H_
00023 #define _RTAI_SRQ_H_
00024
00025 #define RTAI_SRQ_MAGIC "0x404404"
00026
00027 static inline long long rtai_srq(unsigned long srq, unsigned long whatever)
00028 {
00029 long long retval;
00030 register unsigned long __sc_0 __asm__ ("r0") = srq;
00031 register unsigned long __sc_1 __asm__ ("r1") = whatever;
00032
00033 __asm__ __volatile__ (
00034 "swi\t" RTAI_SRQ_MAGIC "\n\t"
00035 : "=r" (__sc_0), "=r" (__sc_1)
00036 : "0" (__sc_0), "1" (__sc_1)
00037 );
00038 ((unsigned long *)&retval)[0] = __sc_0;
00039 ((unsigned long *)&retval)[1] = __sc_1;
00040 return retval;
00041 }
00042
00043 static inline int rtai_open_srq(unsigned int label)
00044 {
00045 return (int)rtai_srq(0, label);
00046 }
00047 #endif