00001
00002
00003
00004
00005
00006 #include <ssdef.h>
00007
00008 #include <descrip.h>
00009
00010 #include <linux/config.h>
00011 #include <linux/kernel.h>
00012 #include <linux/mm.h>
00013 #include <misc_routines.h>
00014
00015 #include <stdarg.h>
00016
00017 #ifdef NOKERNEL
00018 #define printk printf
00019 #define kfree free
00020 #define kmalloc malloc
00021 #endif
00022
00023 CH_FILL(long ch, long size, long addr) {
00024 memset(addr,ch, size);
00025 return addr+size;
00026 printk("CH_FILL not implemented\n");
00027 }
00028
00029 CH_RCHAR_A() {
00030 printk("CH_RCHAR_A not implemented\n");
00031 }
00032
00033 CH_ALLOCATION() {
00034 printk("CH_ALLOCATION not implemented\n");
00035 }
00036
00037 long CH_PTR(long X) {
00038 return X;
00039 }
00040
00041 int CH_EQL(long n1,long ptr1,long n2,long ptr2) {
00042 int n = ( n1 < n2 ? n1 : n2);
00043 return (0==memcmp(ptr1,ptr2,n));
00044 }
00045
00046 int CH_NEQ(long n1,long ptr1,long n2,long ptr2) {
00047 int n = ( n1 < n2 ? n1 : n2);
00048 return (memcmp(ptr1,ptr2,n));
00049 }
00050
00051 UPLIT() {
00052 printk("UPLIT not implemented\n");
00053 }
00054
00055 PLIT() {
00056 printk("PLIT not implemented\n");
00057 }
00058
00059 long CH_MOVE(long size, long src, long addr) {
00060 memcpy(addr,src, size);
00061 return addr+size;
00062 printk("CH_MOVE not implemented\n");
00063 }
00064
00065 #if 0
00066 MIN(x,y) {
00067 return (x<y ? x : y);
00068 printk("MIN not implemented\n");
00069 }
00070
00071 MAX(x,y) {
00072 return (x>y ? x : y);
00073 printk("MAX not implemented\n");
00074 }
00075
00076 MINU(x,y) {
00077 return MIN(x,y);
00078 printk("MINU not implemented\n");
00079 }
00080
00081 MAXU(x,y) {
00082 return MAX(x,y);
00083 printk("MAXU not implemented\n");
00084 }
00085
00086 ROT(x,y) {
00087 return x>>y;
00088 printk("ROT not implemented\n");
00089 }
00090
00091 CH_DIFF() {
00092 printk("CH_DIFF not implemented\n");
00093 }
00094
00095 FORKLOCK() {
00096 return;
00097 printk("FORKLOCK not implemented\n");
00098 }
00099
00100 FORKUNLOCK () {
00101 return;
00102 printk("FORKUNLOCK not implemented\n");
00103 }
00104
00105 ch_move(long a, long b, long c) {
00106 return CH_MOVE(a,b,c);
00107 printk("ch_move not implemented\n");
00108 }
00109
00110 Begin_Lock() {
00111 printk("Begin_Lock not implemented\n");
00112 }
00113
00114 CH_PLUS(long x, long y) {
00115 return x+y;
00116 printk("CH_PLUS not implemented\n");
00117 }
00118
00119 SCH_IOLOCKW() {
00120 printk("SCH_IOLOCKW not implemented\n");
00121 return SS__NORMAL;
00122 }
00123
00124 SCH_IOUNLOCK() {
00125 printk("SCH_IOUNLOCK not implemented\n");
00126 return SS__NORMAL;
00127 }
00128
00129 UNlock_IODB() {
00130 printk("UNlock_IODB not implemented\n");
00131 }
00132
00133 Unlock_IODB() {
00134 printk("Unlock_IODB not implemented\n");
00135 }
00136
00137 Subm() {
00138 printk("Subm not implemented\n");
00139 }
00140
00141 Addm() {
00142 printk("Addm not implemented\n");
00143 }
00144
00145 End_Lock() {
00146 printk("End_Loc not implemented\n");
00147 }
00148 #endif
00149
00150 find_cpu_data(long * l) {
00151 int cpuid = smp_processor_id();
00152 * l=smp_gl_cpu_data[cpuid];
00153 }
00154
00155 #if 0
00156 rpc_service() {
00157 printk("rpc_service not implemented\n");
00158 }
00159
00160 exe_finish_rdb() {
00161 printk("exe_finish_rdb not implemented\n");
00162 }
00163
00164 CH_RCHAR() {
00165 printk("CH_RCHAR not implemented\n");
00166 }
00167 #endif
00168
00169
00170 int swapbytes(long WrdCnt, long Start)
00171 {
00172 int *R0,*R2,*R3,*R4,*R5,*R6,*R7,*R8,*R9;
00173 unsigned char * R1 = Start;
00174 Swp_Loop:
00175 R0 = *R1;
00176 *R1 = R1[1];
00177 R1++;
00178 *R1++ = R0;
00179 if (--WrdCnt) goto Swp_Loop;
00180 return R0;
00181 }
00182
00183 inline BLISSIF(int i) {
00184 return i&1;
00185 }
00186
00187 inline BLISSIFNOT(int i) {
00188 return BLISSIF(i)==0;
00189 }
00190
00191 #if 0
00192 inline DEVICELOCK(){
00193 return;
00194 printk("DEVICELOCK not impl\n");
00195 }
00196
00197 inline DEVICEUNLOCK(){
00198 return;
00199 printk("DEVICEUNLOCK not impl\n");
00200 }
00201 #endif
00202
00203 long get_eip(long l) {
00204 long * m = &l;
00205 #ifdef __i386__
00206 return m[-1];
00207 #else
00208 #if 0
00209 asm volatile("movq %%rip, %0\n\t" :"=m" (m));
00210 return m;
00211 #endif
00212 return m[1];
00213 #endif
00214 }
00215