Commit | Line | Data |
---|---|---|
6c5fe838 ORL |
1 | DSP/Bridge Error Code Guide |
2 | ||
3 | ||
4 | Success code is always taken as 0, except for one case where a success status | |
5 | different than 0 can be possible, this is when enumerating a series of dsp | |
6 | objects, if the enumeration doesn't have any more objects it is considered as a | |
7 | successful case. In this case a positive ENODATA is returned (TODO: Change to | |
8 | avoid this case). | |
9 | ||
10 | Error codes are returned as a negative 1, if an specific code is expected, it | |
11 | can be propagated to user space by reading errno symbol defined in errno.h, for | |
12 | specific details on the implementation a copy of the standard used should be | |
13 | read first. | |
14 | ||
15 | The 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. |