4 #include "mb_interface.h" /* Legacy reasons. We just have to include this guy who defines the FSL stuff */
10 /* Extended FSL macros. These now replace all of the previous FSL macros */
12 #define FSL_NONBLOCKING n
13 #define FSL_EXCEPTION e
17 #define FSL_NONBLOCKING_EXCEPTION ne
18 #define FSL_NONBLOCKING_CONTROL nc
19 #define FSL_NONBLOCKING_ATOMIC na
20 #define FSL_EXCEPTION_CONTROL ec
21 #define FSL_EXCEPTION_ATOMIC ea
22 #define FSL_CONTROL_ATOMIC ca
24 #define FSL_NONBLOCKING_EXCEPTION_CONTROL nec
25 #define FSL_NONBLOCKING_EXCEPTION_ATOMIC nea
26 #define FSL_NONBLOCKING_CONTROL_ATOMIC nca
27 #define FSL_EXCEPTION_CONTROL_ATOMIC eca
29 #define FSL_NONBLOCKING_EXCEPTION_CONTROL_ATOMIC neca
31 #define getfslx(val, id, flags) asm volatile (stringify(flags) "get\t%0,rfsl" stringify(id) : "=d" (val))
32 #define putfslx(val, id, flags) asm volatile (stringify(flags) "put\t%0,rfsl" stringify(id) :: "d" (val))
34 #define tgetfslx(val, id, flags) asm volatile ("t" stringify(flags) "get\t%0,rfsl" stringify(id) : "=d" (val))
35 #define tputfslx(id, flags) asm volatile ("t" stringify(flags) "put\trfsl" stringify(id))
37 #define getdfslx(val, var, flags) asm volatile (stringify(flags) "getd\t%0,%1" : "=d" (val) : "d" (var))
38 #define putdfslx(val, var, flags) asm volatile (stringify(flags) "putd\t%0,%1" :: "d" (val), "d" (var))
40 #define tgetdfslx(val, var, flags) asm volatile ("t" stringify(flags) "getd\t%0,%1" : "=d" (val) : "d" (var))
41 #define tputdfslx(var, flags) asm volatile ("t" stringify(flags) "putd\t%0" :: "d" (var))