int callSyscall (int cmd, ...) { va_list args; int arg[12]; int ret; int i, j; va_start (args, cmd); for (i = 10, j = 0; i > 0; i--) arg_list[j++] = va_arg (args, void *); va_end (args); arg[0] = cmd; memcpy (arg + 1, arg_list, sizeof (arg_list)); ret = pSyscall ((int) &arg); for (i = 0; i < 10; i++) arg_list[i] = 0; return ret; } int PASSFLOAT( float x ) { float floatTemp; floatTemp = x; return *(int *)&floatTemp; } void trap_Print( const char *fmt ) { callSyscall( CG_PRINT, fmt ); }