00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __PANALIX_PRINTLN_HPP
00012 #define __PANALIX_PRINTLN_HPP
00013
00017 #define prin34(a,b...) print(a);print(b);
00018 #define prin33(a,b...) print(a);prin34(b);
00019 #define prin32(a,b...) print(a);prin33(b);
00020 #define prin31(a,b...) print(a);prin32(b);
00021 #define prin30(a,b...) print(a);prin31(b);
00022 #define prin29(a,b...) print(a);prin30(b);
00023 #define prin28(a,b...) print(a);prin29(b);
00024 #define prin27(a,b...) print(a);prin28(b);
00025 #define prin26(a,b...) print(a);prin27(b);
00026 #define prin25(a,b...) print(a);prin26(b);
00027 #define prin24(a,b...) print(a);prin25(b);
00028 #define prin23(a,b...) print(a);prin24(b);
00029 #define prin22(a,b...) print(a);prin23(b);
00030 #define prin21(a,b...) print(a);prin22(b);
00031 #define prin20(a,b...) print(a);prin21(b);
00032 #define prin19(a,b...) print(a);prin20(b);
00033 #define prin18(a,b...) print(a);prin19(b);
00034 #define prin17(a,b...) print(a);prin18(b);
00035 #define prin16(a,b...) print(a);prin17(b);
00036 #define prin15(a,b...) print(a);prin16(b);
00037 #define prin14(a,b...) print(a);prin15(b);
00038 #define prin13(a,b...) print(a);prin14(b);
00039 #define prin12(a,b...) print(a);prin13(b);
00040 #define prin11(a,b...) print(a);prin12(b);
00041 #define prin10(a,b...) print(a);prin11(b);
00042 #define prin9(a,b...) print(a);prin10(b);
00043 #define prin8(a,b...) print(a);prin9(b);
00044 #define prin7(a,b...) print(a);prin8(b);
00045 #define prin6(a,b...) print(a);prin7(b);
00046 #define prin5(a,b...) print(a);prin6(b);
00047 #define prin4(a,b...) print(a);prin5(b);
00048 #define prin3(a,b...) print(a);prin4(b);
00049 #define prin2(a,b...) print(a);prin3(b);
00050 #define prin1(a,b...) print(a);prin2(b);
00051 #define prin(a...) do { prin1(a); } while(0)
00052
00053 #define println(args...) do {prin( args ); kprintf("\n");} while(0)
00054
00055
00056 namespace pr {
00057
00058 template <int padbits>
00059 struct sint {
00060 sint64 s;
00061 sint(sint64 s) : s(s) { }
00062 };
00063
00064 }
00065
00066 #if 0
00067 template <int padbits>
00068 inline void print(struct pr_sint<padbits> l) {
00069 uint64 li= reinterpret_cast<uint64>(l.s);
00070 char ltrs[] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
00071 int pd = (padbits>>2)<<2;
00072 while ((li >> (64-pd)) == 0) {
00073 putch('0');
00074 pd-=4;
00075 }
00076 if (padbits == 0 && li == 0) {
00077 putch('0');
00078 return;
00079 }
00080 for (int i=60;i>=0;i-=4) {
00081 if ( ((li >> i)&0xF) )
00082 putch(ltrs[ ((li>>i)&0xf) ]);
00083 }
00084 }
00085 #endif
00086
00087
00088
00089
00092 #endif
00093