16 "title" :
"VuoIoReturn"
28 if (err_get_code(ret) == err_get_code(kIOReturnSuccess))
31 int sys = err_get_system(ret);
33 if (sys == err_get_system(sys_iokit)) sysText = strdup(
"IOKit");
35 asprintf(&sysText,
"unknown(0x%04x)", sys);
37 int sub = err_get_sub(ret);
39 if (sub == err_get_sub(sub_iokit_common)) subText = strdup(
"Common");
40 else if (sub == err_get_sub(sub_iokit_usb)) subText = strdup(
"USB");
41 else if (sub == err_get_sub(sub_iokit_firewire)) subText = strdup(
"Firewire");
42 else if (sub == err_get_sub(sub_iokit_block_storage)) subText = strdup(
"Storage");
43 else if (sub == err_get_sub(sub_iokit_graphics)) subText = strdup(
"Graphics");
44 else if (sub == err_get_sub(sub_iokit_networking)) subText = strdup(
"Networking");
45 else if (sub == err_get_sub(sub_iokit_bluetooth)) subText = strdup(
"Bluetooth");
46 else if (sub == err_get_sub(sub_iokit_pmu)) subText = strdup(
"PMU");
47 else if (sub == err_get_sub(sub_iokit_acpi)) subText = strdup(
"ACPI");
48 else if (sub == err_get_sub(sub_iokit_smbus)) subText = strdup(
"SMBUS");
49 else if (sub == err_get_sub(sub_iokit_ahci)) subText = strdup(
"AHCI");
50 else if (sub == err_get_sub(sub_iokit_powermanagement)) subText = strdup(
"Power Management");
51 else if (sub == err_get_sub(err_sub(14) )) subText = strdup(
"HID System");
52 else if (sub == err_get_sub(sub_iokit_scsi)) subText = strdup(
"SCSI");
53 else if (sub == err_get_sub(sub_iokit_thunderbolt)) subText = strdup(
"Thunderbolt");
54 else if (sub == err_get_sub(err_sub(0x45) )) subText = strdup(
"Audio/Video");
55 else if (sub == err_get_sub(err_sub(0x147) )) subText = strdup(
"HSIC");
56 else if (sub == err_get_sub(err_sub(0x174) )) subText = strdup(
"SDIO");
57 else if (sub == err_get_sub(err_sub(0x208) )) subText = strdup(
"WLAN");
58 else if (sub == err_get_sub(sub_iokit_vendor_specific)) subText = strdup(
"Vendor-specific");
59 else if (sub == err_get_sub(sub_iokit_reserved)) subText = strdup(
"Reserved");
60 else asprintf(&subText,
"unknown(0x%04x)", sub);
62 int err = err_get_code(ret);
64 if (err == err_get_code(kIOReturnError)) errText = strdup(
"general error");
65 else if (err == err_get_code(kIOReturnNoMemory)) errText = strdup(
"can't allocate memory");
66 else if (err == err_get_code(kIOReturnNoResources)) errText = strdup(
"resource shortage");
67 else if (err == err_get_code(kIOReturnIPCError)) errText = strdup(
"error during IPC");
68 else if (err == err_get_code(kIOReturnNoDevice)) errText = strdup(
"no such device");
69 else if (err == err_get_code(kIOReturnNotPrivileged)) errText = strdup(
"privilege violation");
70 else if (err == err_get_code(kIOReturnBadArgument)) errText = strdup(
"invalid argument");
71 else if (err == err_get_code(kIOReturnLockedRead)) errText = strdup(
"device read locked");
72 else if (err == err_get_code(kIOReturnLockedWrite)) errText = strdup(
"device write locked");
73 else if (err == err_get_code(kIOReturnExclusiveAccess)) errText = strdup(
"exclusive access and device already open");
74 else if (err == err_get_code(kIOReturnBadMessageID)) errText = strdup(
"sent/received messages had different msg_id");
75 else if (err == err_get_code(kIOReturnUnsupported)) errText = strdup(
"unsupported function");
76 else if (err == err_get_code(kIOReturnVMError)) errText = strdup(
"misc. VM failure");
77 else if (err == err_get_code(kIOReturnInternalError)) errText = strdup(
"internal error");
78 else if (err == err_get_code(kIOReturnIOError)) errText = strdup(
"general I/O error");
79 else if (err == err_get_code(kIOReturnCannotLock)) errText = strdup(
"can't acquire lock");
80 else if (err == err_get_code(kIOReturnNotOpen)) errText = strdup(
"device not open");
81 else if (err == err_get_code(kIOReturnNotReadable)) errText = strdup(
"read not supported");
82 else if (err == err_get_code(kIOReturnNotWritable)) errText = strdup(
"write not supported");
83 else if (err == err_get_code(kIOReturnNotAligned)) errText = strdup(
"alignment error");
84 else if (err == err_get_code(kIOReturnBadMedia)) errText = strdup(
"media error");
85 else if (err == err_get_code(kIOReturnStillOpen)) errText = strdup(
"device(s) still open");
86 else if (err == err_get_code(kIOReturnRLDError)) errText = strdup(
"rld failure");
87 else if (err == err_get_code(kIOReturnDMAError)) errText = strdup(
"DMA failure");
88 else if (err == err_get_code(kIOReturnBusy)) errText = strdup(
"device busy");
89 else if (err == err_get_code(kIOReturnTimeout)) errText = strdup(
"I/O Timeout");
90 else if (err == err_get_code(kIOReturnOffline)) errText = strdup(
"device offline");
91 else if (err == err_get_code(kIOReturnNotReady)) errText = strdup(
"not ready");
92 else if (err == err_get_code(kIOReturnNotAttached)) errText = strdup(
"device not attached");
93 else if (err == err_get_code(kIOReturnNoChannels)) errText = strdup(
"no DMA channels left");
94 else if (err == err_get_code(kIOReturnNoSpace)) errText = strdup(
"no space for data ");
95 else if (err == err_get_code(kIOReturnPortExists)) errText = strdup(
"port already exists");
96 else if (err == err_get_code(kIOReturnCannotWire)) errText = strdup(
"can't wire down physical memory");
97 else if (err == err_get_code(kIOReturnNoInterrupt)) errText = strdup(
"no interrupt attached");
98 else if (err == err_get_code(kIOReturnNoFrames)) errText = strdup(
"no DMA frames enqueued");
99 else if (err == err_get_code(kIOReturnMessageTooLarge)) errText = strdup(
"oversized msg received on interrupt port");
100 else if (err == err_get_code(kIOReturnNotPermitted)) errText = strdup(
"not permitted");
101 else if (err == err_get_code(kIOReturnNoPower)) errText = strdup(
"no power to device");
102 else if (err == err_get_code(kIOReturnNoMedia)) errText = strdup(
"media not present");
103 else if (err == err_get_code(kIOReturnUnformattedMedia)) errText = strdup(
"edia not formatted");
104 else if (err == err_get_code(kIOReturnUnsupportedMode)) errText = strdup(
"no such mode");
105 else if (err == err_get_code(kIOReturnUnderrun)) errText = strdup(
"data underrun");
106 else if (err == err_get_code(kIOReturnOverrun)) errText = strdup(
"data overrun");
107 else if (err == err_get_code(kIOReturnDeviceError)) errText = strdup(
"the device is not working properly");
108 else if (err == err_get_code(kIOReturnNoCompletion)) errText = strdup(
"a completion routine is required");
109 else if (err == err_get_code(kIOReturnAborted)) errText = strdup(
"operation aborted");
110 else if (err == err_get_code(kIOReturnNoBandwidth)) errText = strdup(
"bus bandwidth would be exceeded");
111 else if (err == err_get_code(kIOReturnNotResponding)) errText = strdup(
"device not responding");
112 else if (err == err_get_code(kIOReturnIsoTooOld)) errText = strdup(
"isochronous I/O request for distant past");
113 else if (err == err_get_code(kIOReturnIsoTooNew)) errText = strdup(
"isochronous I/O request for distant future");
114 else if (err == err_get_code(kIOReturnNotFound)) errText = strdup(
"data was not found");
115 else if (err == err_get_code(kIOReturnInvalid)) errText = strdup(
"invalid");
117 asprintf(&errText,
"unknown(0x%04x)", err);
120 asprintf(&text,
"%s %s: %s", sysText, subText, errText);