gceSTATUS gcfDump( IN gcoOS Os, IN gctCONST_STRING Message, ... ) { gctUINT offset = 0; gctARGUMENTS args; char buffer[80]; if (!setDumpFlag) return gcvSTATUS_OK; #if gcdDUMP_IN_KERNEL gcsHAL_INTERFACE ioctl; gcmARGUMENTS_START(args, Message); gcmVERIFY_OK(gcoOS_PrintStrVSafe(ioctl.u.Debug.message, gcmSIZEOF(ioctl.u.Debug.message), &offset, Message, args)); gcmARGUMENTS_END(args); ioctl.command = gcvHAL_DEBUG; ioctl.u.Debug.set = gcvFALSE; #if gcdDUMP ioctl.u.Debug.type = gcvMESSAGE_TEXT; #else ioctl.u.Debug.type = gcvMESSAGE_DUMP; #endif ioctl.u.Debug.messageSize = (gctUINT32)gcmSIZEOF(ioctl.u.Debug.message); gcmVERIFY_OK(gcoOS_DeviceControl(Os, IOCTL_GCHAL_INTERFACE, &ioctl, gcmSIZEOF(ioctl), &ioctl, gcmSIZEOF(ioctl))); #else gcmARGUMENTS_START(args, Message); gcmVERIFY_OK(gcoOS_PrintStrVSafe(buffer, gcmSIZEOF(buffer), &offset, Message, args)); gcmARGUMENTS_END(args); gcoOS_Print("%s", buffer); #endif return gcvSTATUS_OK; }
static gceSTATUS _Print( _VGContext * Context, gctCONST_STRING Format, ... ) { char buffer[256]; gctUINT offset = 0; gceSTATUS status; gcmONERROR( gcoOS_PrintStrVSafe(buffer, gcmSIZEOF(buffer), &offset, Format, (gctPOINTER) (&Format + 1))); gcmONERROR( gcoPROFILER_Write(Context->hal, offset, buffer)); return gcvSTATUS_OK; OnError: return status; }