Main Page | Modules | Data Structures | File List | Data Fields | Globals

beeos.h

Go to the documentation of this file.
00001 #ifndef NULL
00002 #  define NULL ((void *) 0)
00003 #endif
00004 /*@-exporttype@*/ /*@-cppnames@*/ /*@-enummemuse@*/
00005 typedef /*@unsignedintegraltype@*/ /*@concrete@*/ short unsigned int ushort;
00006 typedef short signed int sshort;
00007 typedef /*@unsignedintegraltype@*/ /*@concrete@*/ unsigned char uchar;
00008 typedef signed char schar;
00009 typedef signed long int slong;
00010 typedef unsigned long int ulong;
00011 typedef enum {false, true} /*@alt bool@*/ bool;
00012 /*@=exporttype@*/ /*@=cppnames@*/ /*@=enummemuse@*/
00013 register char *_sp __asm__ ("sp");
00014 /*register ushort _pc __asm__ ("pc");
00015 register ushort _y __asm__ ("y");
00016 register ushort _x __asm__ ("x");
00017 register ushort _d __asm__ ("d");*/
00018 extern unsigned short _d1 __asm__("_.d1");
00019 extern unsigned short _d2 __asm__("_.d2");
00020 extern unsigned short _d3 __asm__("_.d3");
00021 extern unsigned short _d4 __asm__("_.d4");
00022 extern unsigned short _d5 __asm__("_.d5");
00023 extern unsigned short _d6 __asm__("_.d6");
00024 extern unsigned short _d7 __asm__("_.d7");
00025 extern unsigned short _d8 __asm__("_.d8");
00026 extern unsigned short _tmp __asm__("_.tmp");
00027 extern unsigned short _z __asm__("_.z");
00028 extern unsigned short _xy __asm__("_.xy");
00029 /* At least bprintf.h, bmalloc.h, main.c use this below */
00030 /*#define HOSTED_BUILD*/
00031 
00032 #define GCC_SOFTREGCOUNT 8
00033 
00034 #define BIT0 0x01
00035 #define BIT1 0x02
00036 #define BIT2 0x04
00037 #define BIT3 0x08
00038 #define BIT4 0x10
00039 #define BIT5 0x20
00040 #define BIT6 0x40
00041 #define BIT7 0x80
00042 
00043 #define TOUSHORT(var) (*(ushort *)&var)
00044 #define ASM_MOVW_MM(src, dst) __asm__ (\
00045     "movw %0, %1"\
00046     :                           /* Output */\
00047     : "m" (src), "m" (dst)      /* Input */\
00048 )
00049 #define ASM_NOP __asm__ __volatile__ ("nop");
00050 #define ASM_SWI __asm__ __volatile__ ("swi");
00051 #define ASM_SEI __asm__ __volatile__ ("sei");
00052 #define ASM_CLI __asm__ __volatile__ ("cli");
00053 #define ASM_PULW(varword) __asm__ (\
00054     "puld\
00055     \n\tstd %0"\
00056     : "=m" (varword)                /* Output */\
00057     :                               /* Input */\
00058     : "%d"                          /* Clobbered */\
00059 )
00060 #define ASM_PULB(varbyte) __asm__ (\
00061     "pulb\
00062     \n\tstab %0"\
00063     : "=m" (varbyte)                /* Output */\
00064     :                               /* Input */\
00065     : "%b"                          /* Clobbered */\
00066 )
00067 #define ASM_PSHW(varword) __asm__ (\
00068     "ldd %0\
00069     \n\tpshd"\
00070     :                           /* Output */\
00071     : "m" (varword)             /* Input */\
00072     : "%d"                      /* Clobbered */\
00073 )
00074 #define ASM_PSHB(varbyte) __asm__ (\
00075     "ldab %0\
00076     \n\tpshb"\
00077     :                           /* Output */\
00078     : "m" (varbyte)             /* Input */\
00079     : "%b"                      /* Clobbered */\
00080 )

Generated on Sat Apr 10 17:08:02 2004 for BeeOS by doxygen 1.3.6-20040222