1 /* 2 * Copyright (c) 1998-2002 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 /* 29 * HISTORY 30 */ 31 32 /* 33 * Core IOReturn values. Others may be family defined. 34 */ 35 36 #ifndef __IOKIT_IORETURN_H 37 #define __IOKIT_IORETURN_H 38 39 #ifdef __cplusplus 40 extern "C" { 41 #endif 42 43 #ifndef PLATFORM_DriverKit 44 45 #include <mach/error.h> 46 47 #else /* PLATFORM_DriverKit */ 48 49 #ifdef DRIVERKIT_PRIVATE 50 51 #include <mach/error.h> 52 53 #else /* DRIVERKIT_PRIVATE */ 54 55 typedef int kern_return_t; 56 57 #define KERN_SUCCESS 0 58 59 /* 60 * error number layout as follows: 61 * 62 * hi lo 63 * | system(6) | subsystem(12) | code(14) | 64 */ 65 66 #define err_none (kern_return_t)0 67 #define ERR_SUCCESS (kern_return_t)0 68 69 #define err_system(x) ((signed)((((unsigned)(x))&0x3f)<<26)) 70 #define err_sub(x) (((x)&0xfff)<<14) 71 72 #define err_get_system(err) (((err)>>26)&0x3f) 73 #define err_get_sub(err) (((err)>>14)&0xfff) 74 #define err_get_code(err) ((err)&0x3fff) 75 76 #define err_max_system 0x3f 77 78 #define system_emask (err_system(err_max_system)) 79 #define sub_emask (err_sub(0xfff)) 80 #define code_emask (0x3fff) 81 82 #endif /* DRIVERKIT_PRIVATE */ 83 84 #endif /* PLATFORM_DriverKit */ 85 86 typedef kern_return_t IOReturn; 87 88 #ifndef sys_iokit 89 #define sys_iokit err_system(0x38) 90 #endif /* sys_iokit */ 91 #define sub_iokit_common err_sub(0) 92 #define sub_iokit_usb err_sub(1) 93 #define sub_iokit_firewire err_sub(2) 94 #define sub_iokit_block_storage err_sub(4) 95 #define sub_iokit_graphics err_sub(5) 96 #define sub_iokit_networking err_sub(6) 97 #define sub_iokit_bluetooth err_sub(8) 98 #define sub_iokit_pmu err_sub(9) 99 #define sub_iokit_acpi err_sub(10) 100 #define sub_iokit_smbus err_sub(11) 101 #define sub_iokit_ahci err_sub(12) 102 #define sub_iokit_powermanagement err_sub(13) 103 #define sub_iokit_hidsystem err_sub(14) 104 #define sub_iokit_scsi err_sub(16) 105 #define sub_iokit_usbaudio err_sub(17) 106 #define sub_iokit_wirelesscharging err_sub(18) 107 //#define sub_iokit_pccard err_sub(21) 108 #ifdef PRIVATE 109 #define sub_iokit_nvme err_sub(28) 110 #endif 111 #define sub_iokit_thunderbolt err_sub(29) 112 #define sub_iokit_graphics_acceleration err_sub(30) 113 #define sub_iokit_keystore err_sub(31) 114 #ifdef PRIVATE 115 #define sub_iokit_smc err_sub(32) 116 #endif 117 #define sub_iokit_apfs err_sub(33) 118 #define sub_iokit_acpiec err_sub(34) 119 #define sub_iokit_timesync_avb err_sub(35) 120 121 #define sub_iokit_platform err_sub(0x2A) 122 #define sub_iokit_audio_video err_sub(0x45) 123 #define sub_iokit_cec err_sub(0x46) 124 #define sub_iokit_baseband err_sub(0x80) 125 #define sub_iokit_HDA err_sub(0xFE) 126 #define sub_iokit_hsic err_sub(0x147) 127 #define sub_iokit_sdio err_sub(0x174) 128 #define sub_iokit_wlan err_sub(0x208) 129 #define sub_iokit_appleembeddedsleepwakehandler err_sub(0x209) 130 #define sub_iokit_appleppm err_sub(0x20A) 131 132 #define sub_iokit_vendor_specific err_sub(-2) 133 #define sub_iokit_reserved err_sub(-1) 134 135 #define iokit_common_err(return ) (sys_iokit|sub_iokit_common|return) 136 #define iokit_family_err(sub, return ) (sys_iokit|sub|return) 137 #define iokit_vendor_specific_err(return ) (sys_iokit|sub_iokit_vendor_specific|return) 138 139 #define kIOReturnSuccess KERN_SUCCESS // OK 140 #define kIOReturnError iokit_common_err(0x2bc) // general error 141 #define kIOReturnNoMemory iokit_common_err(0x2bd) // can't allocate memory 142 #define kIOReturnNoResources iokit_common_err(0x2be) // resource shortage 143 #define kIOReturnIPCError iokit_common_err(0x2bf) // error during IPC 144 #define kIOReturnNoDevice iokit_common_err(0x2c0) // no such device 145 #define kIOReturnNotPrivileged iokit_common_err(0x2c1) // privilege violation 146 #define kIOReturnBadArgument iokit_common_err(0x2c2) // invalid argument 147 #define kIOReturnLockedRead iokit_common_err(0x2c3) // device read locked 148 #define kIOReturnLockedWrite iokit_common_err(0x2c4) // device write locked 149 #define kIOReturnExclusiveAccess iokit_common_err(0x2c5) // exclusive access and 150 // device already open 151 #define kIOReturnBadMessageID iokit_common_err(0x2c6) // sent/received messages 152 // had different msg_id 153 #define kIOReturnUnsupported iokit_common_err(0x2c7) // unsupported function 154 #define kIOReturnVMError iokit_common_err(0x2c8) // misc. VM failure 155 #define kIOReturnInternalError iokit_common_err(0x2c9) // internal error 156 #define kIOReturnIOError iokit_common_err(0x2ca) // General I/O error 157 //#define kIOReturn???Error iokit_common_err(0x2cb) // ??? 158 #define kIOReturnCannotLock iokit_common_err(0x2cc) // can't acquire lock 159 #define kIOReturnNotOpen iokit_common_err(0x2cd) // device not open 160 #define kIOReturnNotReadable iokit_common_err(0x2ce) // read not supported 161 #define kIOReturnNotWritable iokit_common_err(0x2cf) // write not supported 162 #define kIOReturnNotAligned iokit_common_err(0x2d0) // alignment error 163 #define kIOReturnBadMedia iokit_common_err(0x2d1) // Media Error 164 #define kIOReturnStillOpen iokit_common_err(0x2d2) // device(s) still open 165 #define kIOReturnRLDError iokit_common_err(0x2d3) // rld failure 166 #define kIOReturnDMAError iokit_common_err(0x2d4) // DMA failure 167 #define kIOReturnBusy iokit_common_err(0x2d5) // Device Busy 168 #define kIOReturnTimeout iokit_common_err(0x2d6) // I/O Timeout 169 #define kIOReturnOffline iokit_common_err(0x2d7) // device offline 170 #define kIOReturnNotReady iokit_common_err(0x2d8) // not ready 171 #define kIOReturnNotAttached iokit_common_err(0x2d9) // device not attached 172 #define kIOReturnNoChannels iokit_common_err(0x2da) // no DMA channels left 173 #define kIOReturnNoSpace iokit_common_err(0x2db) // no space for data 174 //#define kIOReturn???Error iokit_common_err(0x2dc) // ??? 175 #define kIOReturnPortExists iokit_common_err(0x2dd) // port already exists 176 #define kIOReturnCannotWire iokit_common_err(0x2de) // can't wire down 177 // physical memory 178 #define kIOReturnNoInterrupt iokit_common_err(0x2df) // no interrupt attached 179 #define kIOReturnNoFrames iokit_common_err(0x2e0) // no DMA frames enqueued 180 #define kIOReturnMessageTooLarge iokit_common_err(0x2e1) // oversized msg received 181 // on interrupt port 182 #define kIOReturnNotPermitted iokit_common_err(0x2e2) // not permitted 183 #define kIOReturnNoPower iokit_common_err(0x2e3) // no power to device 184 #define kIOReturnNoMedia iokit_common_err(0x2e4) // media not present 185 #define kIOReturnUnformattedMedia iokit_common_err(0x2e5)// media not formatted 186 #define kIOReturnUnsupportedMode iokit_common_err(0x2e6) // no such mode 187 #define kIOReturnUnderrun iokit_common_err(0x2e7) // data underrun 188 #define kIOReturnOverrun iokit_common_err(0x2e8) // data overrun 189 #define kIOReturnDeviceError iokit_common_err(0x2e9) // the device is not working properly! 190 #define kIOReturnNoCompletion iokit_common_err(0x2ea) // a completion routine is required 191 #define kIOReturnAborted iokit_common_err(0x2eb) // operation aborted 192 #define kIOReturnNoBandwidth iokit_common_err(0x2ec) // bus bandwidth would be exceeded 193 #define kIOReturnNotResponding iokit_common_err(0x2ed) // device not responding 194 #define kIOReturnIsoTooOld iokit_common_err(0x2ee) // isochronous I/O request for distant past! 195 #define kIOReturnIsoTooNew iokit_common_err(0x2ef) // isochronous I/O request for distant future 196 #define kIOReturnNotFound iokit_common_err(0x2f0) // data was not found 197 #define kIOReturnInvalid iokit_common_err(0x1) // should never be seen 198 199 #ifdef __cplusplus 200 } 201 #endif 202 203 #endif /* ! __IOKIT_IORETURN_H */ 204