/* Do not modify this file -- it is automatically generated! */

#include "debugtools.h"

#define DEBUG_CLASS_COUNT __DBCL_COUNT

static const char * const debug_cl_name[] = { "fixme", "err", "warn", "trace" };

char dbch_accel[] = "\003accel";
char dbch_advapi[] = "\003advapi";
char dbch_animate[] = "\003animate";
char dbch_aspi[] = "\003aspi";
char dbch_atom[] = "\003atom";
char dbch_avifile[] = "\003avifile";
char dbch_bitblt[] = "\003bitblt";
char dbch_bitmap[] = "\003bitmap";
char dbch_caret[] = "\003caret";
char dbch_cdrom[] = "\003cdrom";
char dbch_class[] = "\003class";
char dbch_clipboard[] = "\003clipboard";
char dbch_clipping[] = "\003clipping";
char dbch_combo[] = "\003combo";
char dbch_comboex[] = "\003comboex";
char dbch_comm[] = "\003comm";
char dbch_commctrl[] = "\003commctrl";
char dbch_commdlg[] = "\003commdlg";
char dbch_console[] = "\003console";
char dbch_crtdll[] = "\003crtdll";
char dbch_cursor[] = "\003cursor";
char dbch_datetime[] = "\003datetime";
char dbch_dc[] = "\003dc";
char dbch_ddeml[] = "\003ddeml";
char dbch_ddraw[] = "\003ddraw";
char dbch_debug[] = "\003debug";
char dbch_debugstr[] = "\003debugstr";
char dbch_delayhlp[] = "\003delayhlp";
char dbch_dialog[] = "\003dialog";
char dbch_dinput[] = "\003dinput";
char dbch_dll[] = "\003dll";
char dbch_dosfs[] = "\003dosfs";
char dbch_dosmem[] = "\003dosmem";
char dbch_dplay[] = "\003dplay";
char dbch_driver[] = "\003driver";
char dbch_dsound[] = "\003dsound";
char dbch_edit[] = "\003edit";
char dbch_elfdll[] = "\003elfdll";
char dbch_enhmetafile[] = "\003enhmetafile";
char dbch_event[] = "\003event";
char dbch_exec[] = "\003exec";
char dbch_file[] = "\003file";
char dbch_fixup[] = "\003fixup";
char dbch_font[] = "\003font";
char dbch_gdi[] = "\003gdi";
char dbch_global[] = "\003global";
char dbch_graphics[] = "\003graphics";
char dbch_header[] = "\003header";
char dbch_heap[] = "\003heap";
char dbch_hook[] = "\003hook";
char dbch_hotkey[] = "\003hotkey";
char dbch_icmp[] = "\003icmp";
char dbch_icon[] = "\003icon";
char dbch_imagehlp[] = "\003imagehlp";
char dbch_imagelist[] = "\003imagelist";
char dbch_imm[] = "\003imm";
char dbch_int[] = "\003int";
char dbch_int10[] = "\003int10";
char dbch_int16[] = "\003int16";
char dbch_int17[] = "\003int17";
char dbch_int19[] = "\003int19";
char dbch_int21[] = "\003int21";
char dbch_int31[] = "\003int31";
char dbch_io[] = "\003io";
char dbch_ipaddress[] = "\003ipaddress";
char dbch_joystick[] = "\003joystick";
char dbch_key[] = "\003key";
char dbch_keyboard[] = "\003keyboard";
char dbch_ldt[] = "\003ldt";
char dbch_listbox[] = "\003listbox";
char dbch_listview[] = "\003listview";
char dbch_local[] = "\003local";
char dbch_mci[] = "\003mci";
char dbch_mcianim[] = "\003mcianim";
char dbch_mciavi[] = "\003mciavi";
char dbch_mcicda[] = "\003mcicda";
char dbch_mcimidi[] = "\003mcimidi";
char dbch_mciwave[] = "\003mciwave";
char dbch_mdi[] = "\003mdi";
char dbch_menu[] = "\003menu";
char dbch_message[] = "\003message";
char dbch_metafile[] = "\003metafile";
char dbch_midi[] = "\003midi";
char dbch_mmaux[] = "\003mmaux";
char dbch_mmio[] = "\003mmio";
char dbch_mmsys[] = "\003mmsys";
char dbch_mmtime[] = "\003mmtime";
char dbch_module[] = "\003module";
char dbch_monthcal[] = "\003monthcal";
char dbch_mpr[] = "\003mpr";
char dbch_msacm[] = "\003msacm";
char dbch_msg[] = "\003msg";
char dbch_msvideo[] = "\003msvideo";
char dbch_nativefont[] = "\003nativefont";
char dbch_nonclient[] = "\003nonclient";
char dbch_ntdll[] = "\003ntdll";
char dbch_odbc[] = "\003odbc";
char dbch_ole[] = "\003ole";
char dbch_pager[] = "\003pager";
char dbch_palette[] = "\003palette";
char dbch_pidl[] = "\003pidl";
char dbch_print[] = "\003print";
char dbch_process[] = "\003process";
char dbch_profile[] = "\003profile";
char dbch_progress[] = "\003progress";
char dbch_prop[] = "\003prop";
char dbch_propsheet[] = "\003propsheet";
char dbch_psapi[] = "\003psapi";
char dbch_psdrv[] = "\003psdrv";
char dbch_ras[] = "\003ras";
char dbch_rebar[] = "\003rebar";
char dbch_reg[] = "\003reg";
char dbch_region[] = "\003region";
char dbch_relay[] = "\003relay";
char dbch_resource[] = "\003resource";
char dbch_scroll[] = "\003scroll";
char dbch_segment[] = "\003segment";
char dbch_seh[] = "\003seh";
char dbch_selector[] = "\003selector";
char dbch_sendmsg[] = "\003sendmsg";
char dbch_server[] = "\003server";
char dbch_setupx[] = "\003setupx";
char dbch_shell[] = "\003shell";
char dbch_snoop[] = "\003snoop";
char dbch_sound[] = "\003sound";
char dbch_static[] = "\003static";
char dbch_statusbar[] = "\003statusbar";
char dbch_storage[] = "\003storage";
char dbch_stress[] = "\003stress";
char dbch_string[] = "\003string";
char dbch_syscolor[] = "\003syscolor";
char dbch_system[] = "\003system";
char dbch_tab[] = "\003tab";
char dbch_tape[] = "\003tape";
char dbch_tapi[] = "\003tapi";
char dbch_task[] = "\003task";
char dbch_text[] = "\003text";
char dbch_thread[] = "\003thread";
char dbch_thunk[] = "\003thunk";
char dbch_timer[] = "\003timer";
char dbch_toolbar[] = "\003toolbar";
char dbch_toolhelp[] = "\003toolhelp";
char dbch_tooltips[] = "\003tooltips";
char dbch_trackbar[] = "\003trackbar";
char dbch_treeview[] = "\003treeview";
char dbch_ttydrv[] = "\003ttydrv";
char dbch_tweak[] = "\003tweak";
char dbch_typelib[] = "\003typelib";
char dbch_updown[] = "\003updown";
char dbch_ver[] = "\003ver";
char dbch_virtual[] = "\003virtual";
char dbch_vxd[] = "\003vxd";
char dbch_wave[] = "\003wave";
char dbch_win[] = "\003win";
char dbch_win16drv[] = "\003win16drv";
char dbch_win32[] = "\003win32";
char dbch_winedbg[] = "\003winedbg";
char dbch_wing[] = "\003wing";
char dbch_winsock[] = "\003winsock";
char dbch_winspool[] = "\003winspool";
char dbch_wnet[] = "\003wnet";
char dbch_x11[] = "\003x11";
char dbch_x11drv[] = "\003x11drv";

#define DEBUG_CHANNEL_COUNT 163

static char * const debug_channels[DEBUG_CHANNEL_COUNT] = {
    dbch_accel,
    dbch_advapi,
    dbch_animate,
    dbch_aspi,
    dbch_atom,
    dbch_avifile,
    dbch_bitblt,
    dbch_bitmap,
    dbch_caret,
    dbch_cdrom,
    dbch_class,
    dbch_clipboard,
    dbch_clipping,
    dbch_combo,
    dbch_comboex,
    dbch_comm,
    dbch_commctrl,
    dbch_commdlg,
    dbch_console,
    dbch_crtdll,
    dbch_cursor,
    dbch_datetime,
    dbch_dc,
    dbch_ddeml,
    dbch_ddraw,
    dbch_debug,
    dbch_debugstr,
    dbch_delayhlp,
    dbch_dialog,
    dbch_dinput,
    dbch_dll,
    dbch_dosfs,
    dbch_dosmem,
    dbch_dplay,
    dbch_driver,
    dbch_dsound,
    dbch_edit,
    dbch_elfdll,
    dbch_enhmetafile,
    dbch_event,
    dbch_exec,
    dbch_file,
    dbch_fixup,
    dbch_font,
    dbch_gdi,
    dbch_global,
    dbch_graphics,
    dbch_header,
    dbch_heap,
    dbch_hook,
    dbch_hotkey,
    dbch_icmp,
    dbch_icon,
    dbch_imagehlp,
    dbch_imagelist,
    dbch_imm,
    dbch_int,
    dbch_int10,
    dbch_int16,
    dbch_int17,
    dbch_int19,
    dbch_int21,
    dbch_int31,
    dbch_io,
    dbch_ipaddress,
    dbch_joystick,
    dbch_key,
    dbch_keyboard,
    dbch_ldt,
    dbch_listbox,
    dbch_listview,
    dbch_local,
    dbch_mci,
    dbch_mcianim,
    dbch_mciavi,
    dbch_mcicda,
    dbch_mcimidi,
    dbch_mciwave,
    dbch_mdi,
    dbch_menu,
    dbch_message,
    dbch_metafile,
    dbch_midi,
    dbch_mmaux,
    dbch_mmio,
    dbch_mmsys,
    dbch_mmtime,
    dbch_module,
    dbch_monthcal,
    dbch_mpr,
    dbch_msacm,
    dbch_msg,
    dbch_msvideo,
    dbch_nativefont,
    dbch_nonclient,
    dbch_ntdll,
    dbch_odbc,
    dbch_ole,
    dbch_pager,
    dbch_palette,
    dbch_pidl,
    dbch_print,
    dbch_process,
    dbch_profile,
    dbch_progress,
    dbch_prop,
    dbch_propsheet,
    dbch_psapi,
    dbch_psdrv,
    dbch_ras,
    dbch_rebar,
    dbch_reg,
    dbch_region,
    dbch_relay,
    dbch_resource,
    dbch_scroll,
    dbch_segment,
    dbch_seh,
    dbch_selector,
    dbch_sendmsg,
    dbch_server,
    dbch_setupx,
    dbch_shell,
    dbch_snoop,
    dbch_sound,
    dbch_static,
    dbch_statusbar,
    dbch_storage,
    dbch_stress,
    dbch_string,
    dbch_syscolor,
    dbch_system,
    dbch_tab,
    dbch_tape,
    dbch_tapi,
    dbch_task,
    dbch_text,
    dbch_thread,
    dbch_thunk,
    dbch_timer,
    dbch_toolbar,
    dbch_toolhelp,
    dbch_tooltips,
    dbch_trackbar,
    dbch_treeview,
    dbch_ttydrv,
    dbch_tweak,
    dbch_typelib,
    dbch_updown,
    dbch_ver,
    dbch_virtual,
    dbch_vxd,
    dbch_wave,
    dbch_win,
    dbch_win16drv,
    dbch_win32,
    dbch_winedbg,
    dbch_wing,
    dbch_winsock,
    dbch_winspool,
    dbch_wnet,
    dbch_x11,
    dbch_x11drv
};

int dbg_header_err( const char *dbg_channel, const char *func )
{
    return dbg_printf( "err:%s:%s ", dbg_channel + 1, func );
}

int dbg_header_fixme( const char *dbg_channel, const char *func )
{
    return dbg_printf( "fixme:%s:%s ", dbg_channel + 1, func );
}

int dbg_header_warn( const char *dbg_channel, const char *func )
{
    return dbg_printf( "warn:%s:%s ", dbg_channel + 1, func );
}

int dbg_header_trace( const char *dbg_channel, const char *func )
{
    return dbg_printf( "trace:%s:%s ", dbg_channel + 1, func );
}
