1 DSP/Bridge Error Code Guide 2 3 4Success code is always taken as 0, except for one case where a success status 5different than 0 can be possible, this is when enumerating a series of dsp 6objects, if the enumeration doesn't have any more objects it is considered as a 7successful case. In this case a positive ENODATA is returned (TODO: Change to 8avoid this case). 9 10Error codes are returned as a negative 1, if an specific code is expected, it 11can be propagated to user space by reading errno symbol defined in errno.h, for 12specific details on the implementation a copy of the standard used should be 13read first. 14 15The error codes used by this driver are: 16 17[EPERM] 18 General driver failure. 19 20 According to the use case the following might apply: 21 - Device is in 'sleep/suspend' mode due to DPM. 22 - User cannot mark end of stream on an input channel. 23 - Requested operation is invalid for the node type. 24 - Invalid alignment for the node messaging buffer. 25 - The specified direction is invalid for the stream. 26 - Invalid stream mode. 27 28[ENOENT] 29 The specified object or file was not found. 30 31[ESRCH] 32 A shared memory buffer contained in a message or stream could not be mapped 33 to the GPP client process's virtual space. 34 35[EIO] 36 Driver interface I/O error. 37 38 or: 39 - Unable to plug channel ISR for configured IRQ. 40 - No free I/O request packets are available. 41 42[ENXIO] 43 Unable to find a named section in DSP executable or a non-existent memory 44 segment identifier was specified. 45 46[EBADF] 47 General error for file handling: 48 49 - Unable to open file. 50 - Unable to read file. 51 - An error occurred while parsing the DSP executable file. 52 53[ENOMEM] 54 A memory allocation failure occurred. 55 56[EACCES] 57 - Unable to read content of DCD data section; this is typically caused by 58 improperly configured nodes. 59 - Unable to decode DCD data section content; this is typically caused by 60 changes to DSP/BIOS Bridge data structures. 61 - Unable to get pointer to DCD data section; this is typically caused by 62 improperly configured UUIDs. 63 - Unable to load file containing DCD data section; this is typically 64 caused by a missing COFF file. 65 - The specified COFF file does not contain a valid node registration 66 section. 67 68[EFAULT] 69 Invalid pointer or handler. 70 71[EEXIST] 72 Attempted to create a channel manager when one already exists. 73 74[EINVAL] 75 Invalid argument. 76 77[ESPIPE] 78 Symbol not found in the COFF file. DSPNode_Create will return this if 79 the iAlg function table for an xDAIS socket is not found in the COFF file. 80 In this case, force the symbol to be linked into the COFF file. 81 DSPNode_Create, DSPNode_Execute, and DSPNode_Delete will return this if 82 the create, execute, or delete phase function, respectively, could not be 83 found in the COFF file. 84 85 - No symbol table is loaded/found for this board. 86 - Unable to initialize the ZL COFF parsing module. 87 88[EPIPE] 89 I/O is currently pending. 90 91 - End of stream was already requested on this output channel. 92 93[EDOM] 94 A parameter is specified outside its valid range. 95 96[ENOSYS] 97 The indicated operation is not supported. 98 99[EIDRM] 100 During enumeration a change in the number or properties of the objects 101 has occurred. 102 103[ECHRNG] 104 Attempt to created channel manager with too many channels or channel ID out 105 of range. 106 107[EBADR] 108 The state of the specified object is incorrect for the requested operation. 109 110 - Invalid segment ID. 111 112[ENODATA] 113 Unable to retrieve resource information from the registry. 114 115 - No more registry values. 116 117[ETIME] 118 A timeout occurred before the requested operation could complete. 119 120[ENOSR] 121 A stream has been issued the maximum number of buffers allowed in the 122 stream at once; buffers must be reclaimed from the stream before any more 123 can be issued. 124 125 - No free channels are available. 126 127[EILSEQ] 128 Error occurred in a dynamic loader library function. 129 130[EISCONN] 131 The Specified Connection already exists. 132 133[ENOTCONN] 134 Nodes not connected. 135 136[ETIMEDOUT] 137 Timeout occurred waiting for a response from the hardware. 138 139 - Wait for flush operation on an output channel timed out. 140 141[ECONNREFUSED] 142 No more connections can be made for this node. 143 144[EALREADY] 145 Channel is already in use. 146 147[EREMOTEIO] 148 dwTimeOut parameter was CHNL_IOCNOWAIT, yet no I/O completions were 149 queued. 150 151[ECANCELED] 152 I/O has been cancelled on this channel. 153 154[ENOKEY] 155 Invalid subkey parameter. 156 157 - UUID not found in registry. 158