#ifndef IOKIT_IOTIMESTAMP_H
#define IOKIT_IOTIMESTAMP_H
#include <kdebug.h>
#include <sys/kdebug.h>
static inline void
IOTimeStampStartConstant(unsigned int csc,
unsigned int a = 0, unsigned int b = 0,
unsigned int c = 0, unsigned int d = 0)
{
KERNEL_DEBUG_CONSTANT(csc | DBG_FUNC_START, a, b, c, d, 0);
}
static inline void
IOTimeStampEndConstant(unsigned int csc,
unsigned int a = 0, unsigned int b = 0,
unsigned int c = 0, unsigned int d = 0)
{
KERNEL_DEBUG_CONSTANT(csc | DBG_FUNC_END, a, b, c, d, 0);
}
static inline void
IOTimeStampConstant(unsigned int csc,
unsigned int a = 0, unsigned int b = 0,
unsigned int c = 0, unsigned int d = 0)
{
KERNEL_DEBUG_CONSTANT(csc | DBG_FUNC_NONE, a, b, c, d, 0);
}
#if KDEBUG
static inline void
IOTimeStampStart(unsigned int csc,
unsigned int a = 0, unsigned int b = 0,
unsigned int c = 0, unsigned int d = 0)
{
KERNEL_DEBUG(csc | DBG_FUNC_START, a, b, c, d, 0);
}
static inline void
IOTimeStampEnd(unsigned int csc,
unsigned int a = 0, unsigned int b = 0,
unsigned int c = 0, unsigned int d = 0)
{
KERNEL_DEBUG(csc | DBG_FUNC_END, a, b, c, d, 0);
}
static inline void
IOTimeStamp(unsigned int csc,
unsigned int a = 0, unsigned int b = 0,
unsigned int c = 0, unsigned int d = 0)
{
KERNEL_DEBUG(csc | DBG_FUNC_NONE, a, b, c, d, 0);
}
#endif
#define IODBG_SCSI(code) (KDBG_CODE(DBG_IOKIT, DBG_IOSCSI, code))
#define IODBG_DISK(code) (KDBG_CODE(DBG_IOKIT, DBG_IODISK, code))
#define IODBG_NETWORK(code) (KDBG_CODE(DBG_IOKIT, DBG_IONETWORK, code))
#define IODBG_KEYBOARD(code) (KDBG_CODE(DBG_IOKIT, DBG_IOKEYBOARD, code))
#define IODBG_POINTING(code) (KDBG_CODE(DBG_IOKIT, DBG_IOPOINTING, code))
#define IODBG_AUDIO(code) (KDBG_CODE(DBG_IOKIT, DBG_IOAUDIO, code))
#define IODBG_FLOPPY(code) (KDBG_CODE(DBG_IOKIT, DBG_IOFLOPPY, code))
#define IODBG_SERIAL(code) (KDBG_CODE(DBG_IOKIT, DBG_IOSERIAL, code))
#define IODBG_TTY(code) (KDBG_CODE(DBG_IOKIT, DBG_IOTTY, code))
#define IODBG_WORKLOOP(code) (KDBG_CODE(DBG_IOKIT, DBG_IOWORKLOOP, code))
#define IODBG_INTES(code) (KDBG_CODE(DBG_IOKIT, DBG_IOINTES, code))
#define IODBG_TIMES(code) (KDBG_CODE(DBG_IOKIT, DBG_IOCLKES, code))
#define IODBG_CMDQ(code) (KDBG_CODE(DBG_IOKIT, DBG_IOCMDQ, code))
#define IODBG_MCURS(code) (KDBG_CODE(DBG_IOKIT, DBG_IOMCURS, code))
#define IODBG_MDESC(code) (KDBG_CODE(DBG_IOKIT, DBG_IOMDESC, code))
#define IOWL_CLIENT 1
#define IOWL_WORK 2
#define IOINTES_CLIENT 1
#define IOINTES_LAT 2
#define IOINTES_SEMA 3
#define IOINTES_INTCTXT 4
#define IOINTES_INTFLTR 5
#define IOINTES_ACTION 6
#define IOINTES_FILTER 7
#define IOTIMES_CLIENT 1
#define IOTIMES_LAT 2
#define IOTIMES_SEMA 3
#define IOTIMES_ACTION 4
#define IOCMDQ_CLIENT 1
#define IOCMDQ_LAT 2
#define IOCMDQ_SEMA 3
#define IOCMDQ_PSEMA 4
#define IOCMDQ_PLOCK 5
#define IOCMDQ_ACTION 6
#endif