1/* 2 * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved. 3 * 4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. The rights granted to you under the License 10 * may not be used to create, or enable the creation or redistribution of, 11 * unlawful or unlicensed copies of an Apple operating system, or to 12 * circumvent, violate, or enable the circumvention or violation of, any 13 * terms of an Apple operating system software license agreement. 14 * 15 * Please obtain a copy of the License at 16 * http://www.opensource.apple.com/apsl/ and read it before using this file. 17 * 18 * The Original Code and all software distributed under the License are 19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 23 * Please see the License for the specific language governing rights and 24 * limitations under the License. 25 * 26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 27 */ 28#ifndef IOKIT_IOTIMESTAMP_H 29#define IOKIT_IOTIMESTAMP_H 30 31#include <sys/kdebug.h> 32 33static inline void 34IOTimeStampStartConstant(unsigned int csc, 35 unsigned int a = 0, unsigned int b = 0, 36 unsigned int c = 0, unsigned int d = 0) 37{ 38 KERNEL_DEBUG_CONSTANT(csc | DBG_FUNC_START, a, b, c, d, 0); 39} 40 41static inline void 42IOTimeStampEndConstant(unsigned int csc, 43 unsigned int a = 0, unsigned int b = 0, 44 unsigned int c = 0, unsigned int d = 0) 45{ 46 KERNEL_DEBUG_CONSTANT(csc | DBG_FUNC_END, a, b, c, d, 0); 47} 48 49static inline void 50IOTimeStampConstant(unsigned int csc, 51 unsigned int a = 0, unsigned int b = 0, 52 unsigned int c = 0, unsigned int d = 0) 53{ 54 KERNEL_DEBUG_CONSTANT(csc | DBG_FUNC_NONE, a, b, c, d, 0); 55} 56 57#if KDEBUG 58 59static inline void 60IOTimeStampStart(unsigned int csc, 61 unsigned int a = 0, unsigned int b = 0, 62 unsigned int c = 0, unsigned int d = 0) 63{ 64 KERNEL_DEBUG(csc | DBG_FUNC_START, a, b, c, d, 0); 65} 66 67static inline void 68IOTimeStampEnd(unsigned int csc, 69 unsigned int a = 0, unsigned int b = 0, 70 unsigned int c = 0, unsigned int d = 0) 71{ 72 KERNEL_DEBUG(csc | DBG_FUNC_END, a, b, c, d, 0); 73} 74 75static inline void 76IOTimeStamp(unsigned int csc, 77 unsigned int a = 0, unsigned int b = 0, 78 unsigned int c = 0, unsigned int d = 0) 79{ 80 KERNEL_DEBUG(csc | DBG_FUNC_NONE, a, b, c, d, 0); 81} 82 83#endif /* KDEBUG */ 84 85#define IODBG_STORAGE(code) (KDBG_CODE(DBG_IOKIT, DBG_IOSTORAGE, code)) 86#define IODBG_NETWORK(code) (KDBG_CODE(DBG_IOKIT, DBG_IONETWORK, code)) 87#define IODBG_KEYBOARD(code) (KDBG_CODE(DBG_IOKIT, DBG_IOKEYBOARD, code)) 88#define IODBG_HID(code) (KDBG_CODE(DBG_IOKIT, DBG_IOHID, code)) 89#define IODBG_AUDIO(code) (KDBG_CODE(DBG_IOKIT, DBG_IOAUDIO, code)) 90#define IODBG_SERIAL(code) (KDBG_CODE(DBG_IOKIT, DBG_IOSERIAL, code)) 91#define IODBG_TTY(code) (KDBG_CODE(DBG_IOKIT, DBG_IOTTY, code)) 92#define IODBG_SAM(code) (KDBG_CODE(DBG_IOKIT, DBG_IOSAM, code)) 93#define IODBG_PARALLELATA(code) (KDBG_CODE(DBG_IOKIT, DBG_IOPARALLELATA, code)) 94#define IODBG_PARALLELSCSI(code) (KDBG_CODE(DBG_IOKIT, DBG_IOPARALLELSCSI, code)) 95#define IODBG_SATA(code) (KDBG_CODE(DBG_IOKIT, DBG_IOSATA, code)) 96#define IODBG_SAS(code) (KDBG_CODE(DBG_IOKIT, DBG_IOSAS, code)) 97#define IODBG_FIBRECHANNEL(code) (KDBG_CODE(DBG_IOKIT, DBG_IOFIBRECHANNEL, code)) 98#define IODBG_USB(code) (KDBG_CODE(DBG_IOKIT, DBG_IOUSB, code)) 99#define IODBG_BLUETOOTH(code) (KDBG_CODE(DBG_IOKIT, DBG_IOBLUETOOTH, code)) 100#define IODBG_FIREWIRE(code) (KDBG_CODE(DBG_IOKIT, DBG_IOFIREWIRE, code)) 101#define IODBG_INFINIBAND(code) (KDBG_CODE(DBG_IOKIT, DBG_IOINFINIBAND, code)) 102 103 104/* Backwards compatibility */ 105#define IODBG_DISK(code) IODBG_STORAGE(code) 106#define IODBG_POINTING(code) IODBG_HID(code) 107 108 109/* IOKit infrastructure subclasses */ 110#define IODBG_WORKLOOP(code) (KDBG_CODE(DBG_IOKIT, DBG_IOWORKLOOP, code)) 111#define IODBG_INTES(code) (KDBG_CODE(DBG_IOKIT, DBG_IOINTES, code)) 112#define IODBG_TIMES(code) (KDBG_CODE(DBG_IOKIT, DBG_IOCLKES, code)) 113#define IODBG_CMDQ(code) (KDBG_CODE(DBG_IOKIT, DBG_IOCMDQ, code)) 114#define IODBG_MCURS(code) (KDBG_CODE(DBG_IOKIT, DBG_IOMCURS, code)) 115#define IODBG_MDESC(code) (KDBG_CODE(DBG_IOKIT, DBG_IOMDESC, code)) 116#define IODBG_POWER(code) (KDBG_CODE(DBG_IOKIT, DBG_IOPOWER, code)) 117 118/* IOKit specific codes - within each subclass */ 119 120/* DBG_IOKIT/DBG_IODISK codes */ 121 122/* DBG_IOKIT/DBG_IONETWORK codes */ 123 124/* DBG_IOKIT/DBG_IOKEYBOARD codes */ 125 126/* DBG_IOKIT/DBG_IOHID codes */ 127 128/* DBG_IOKIT/DBG_IOAUDIO codes */ 129 130/* DBG_IOKIT/DBG_IOSERIAL codes */ 131 132/* DBG_IOKIT/DBG_IOTTY codes */ 133 134/* DBG_IOKIT/DBG_IOWORKLOOP codes */ 135#define IOWL_CLIENT 1 /* 0x05010004 */ 136#define IOWL_WORK 2 /* 0x05010008 */ 137 138/* DBG_IOKIT/DBG_IOINTES codes */ 139#define IOINTES_CLIENT 1 /* 0x05020004 */ 140#define IOINTES_LAT 2 /* 0x05020008 */ 141#define IOINTES_SEMA 3 /* 0x0502000c */ 142#define IOINTES_INTCTXT 4 /* 0x05020010 */ 143#define IOINTES_INTFLTR 5 /* 0x05020014 */ 144#define IOINTES_ACTION 6 /* 0x05020018 */ 145#define IOINTES_FILTER 7 /* 0x0502001c */ 146 147/* DBG_IOKIT/DBG_IOTIMES codes */ 148#define IOTIMES_CLIENT 1 /* 0x05030004 */ 149#define IOTIMES_LAT 2 /* 0x05030008 */ 150#define IOTIMES_SEMA 3 /* 0x0503000c */ 151#define IOTIMES_ACTION 4 /* 0x05030010 */ 152 153/* DBG_IOKIT/DBG_IOCMDQ codes */ 154#define IOCMDQ_CLIENT 1 /* 0x05040004 */ 155#define IOCMDQ_LAT 2 /* 0x05040008 */ 156#define IOCMDQ_SEMA 3 /* 0x0504000c */ 157#define IOCMDQ_PSEMA 4 /* 0x05040010 */ 158#define IOCMDQ_PLOCK 5 /* 0x05040014 */ 159#define IOCMDQ_ACTION 6 /* 0x05040018 */ 160 161/* DBG_IOKIT/DBG_IOMCURS codes */ 162 163/* DBG_IOKIT/DBG_IOMDESC codes */ 164 165/* DBG_IOKIT/DBG_IOPOWER codes */ 166// See IOKit/pwr_mgt/IOPMlog.h for the power management codes 167 168#endif /* ! IOKIT_IOTIMESTAMP_H */ 169