1 /******************************************************************************
2  *
3  *  Copyright 2014 The Android Open Source Project
4  *  Copyright 2002 - 2004 Open Interface North America, Inc. All rights
5  *                        reserved.
6  *
7  *  Licensed under the Apache License, Version 2.0 (the "License");
8  *  you may not use this file except in compliance with the License.
9  *  You may obtain a copy of the License at:
10  *
11  *  http://www.apache.org/licenses/LICENSE-2.0
12  *
13  *  Unless required by applicable law or agreed to in writing, software
14  *  distributed under the License is distributed on an "AS IS" BASIS,
15  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  *  See the License for the specific language governing permissions and
17  *  limitations under the License.
18  *
19  ******************************************************************************/
20 #ifndef _OI_STATUS_H
21 #define _OI_STATUS_H
22 /**
23  * @file
24  * This file contains status codes for BLUEmagic 3.0 software.
25  */
26 
27 #include "oi_stddefs.h"
28 
29 /** \addtogroup Misc Miscellaneous APIs */
30 /**@{*/
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 /** test it **/
37 
38 /**
39  * OI_STATUS is 16 bits, so status codes can range from 0 to 66535, inclusive.
40  */
41 
42 typedef enum {
43   OI_STATUS_SUCCESS = 0,              /**< function call succeeded alias for #OI_OK */
44   OI_OK = 0,                          /**< function call succeeded alias for #OI_STATUS_SUCCESS */
45   OI_STATUS_INVALID_PARAMETERS = 101, /**< invalid function input parameters */
46   OI_STATUS_NOT_IMPLEMENTED = 102,    /**< attempt to use an unimplemented function */
47   OI_STATUS_NOT_INITIALIZED = 103,    /**< data not initialized */
48   OI_STATUS_NO_RESOURCES = 104,       /**< generic resource allocation failure status */
49   OI_STATUS_INTERNAL_ERROR = 105,     /**< internal inconsistency */
50   OI_STATUS_OUT_OF_MEMORY = 106,      /**< generally, OI_Malloc failed */
51   OI_ILLEGAL_REENTRANT_CALL = 107,    /**< violation of non-reentrant module policy */
52   OI_STATUS_INITIALIZATION_FAILED = 108,  /**< module initialization failed */
53   OI_STATUS_INITIALIZATION_PENDING = 109, /**< initialization not yet complete */
54   OI_STATUS_NO_SCO_SUPPORT = 110, /**< SCO operation rejected; system not configured for SCO */
55   OI_STATUS_OUT_OF_STATIC_MEMORY = 111, /**< static malloc failed */
56   OI_TIMEOUT = 112,                     /**< generic timeout */
57   OI_OS_ERROR = 113,                    /**< some operating system error */
58   OI_FAIL = 114,                        /**< generic failure */
59   OI_STRING_FORMAT_ERROR = 115,         /**< error in VarString formatting string */
60   OI_STATUS_PENDING = 116,              /**< The operation is pending. */
61   OI_STATUS_INVALID_COMMAND = 117,      /**< The command was invalid. */
62   OI_BUSY_FAIL = 118,                   /**< command rejected due to busy */
63   OI_STATUS_ALREADY_REGISTERED = 119,   /**< The registration has already been performed. */
64   OI_STATUS_NOT_FOUND = 120,            /**< The referenced resource was not found. */
65   OI_STATUS_NOT_REGISTERED = 121,       /**< not registered */
66   OI_STATUS_NOT_CONNECTED = 122,        /**< not connected */
67   OI_CALLBACK_FUNCTION_REQUIRED = 123,  /**< A callback function parameter was required. */
68   OI_STATUS_MBUF_OVERFLOW = 124,        /**< There is no room to add another buffer to an mbuf. */
69   OI_STATUS_MBUF_UNDERFLOW = 125, /**< There was an attempt to pull too many bytes from an mbuf. */
70   OI_STATUS_CONNECTION_EXISTS = 126,   /**< connection exists */
71   OI_STATUS_NOT_CONFIGURED = 127,      /**< module not configured */
72   OI_LOWER_STACK_ERROR = 128,          /**< An error was reported by lower stack API.
73                                           This is used for embedded platforms. */
74   OI_STATUS_RESET_IN_PROGRESS = 129,   /**< Request failed/rejected because we're busy resetting. */
75   OI_STATUS_ACCESS_DENIED = 130,       /**< Generic access denied error. */
76   OI_STATUS_DATA_ERROR = 131,          /**< Generic data error. */
77   OI_STATUS_INVALID_ROLE = 132,        /**< The requested role was invalid. */
78   OI_STATUS_ALREADY_CONNECTED = 133,   /**< The requested connection is already established. */
79   OI_STATUS_PARSE_ERROR = 134,         /**< Parse error */
80   OI_STATUS_END_OF_FILE = 135,         /**< End of file */
81   OI_STATUS_READ_ERROR = 136,          /**< Generic read error */
82   OI_STATUS_WRITE_ERROR = 137,         /**< Generic write error */
83   OI_STATUS_NEGOTIATION_FAILURE = 138, /**< Error in negotiation */
84   OI_STATUS_READ_IN_PROGRESS = 139,    /**< A read is already in progress */
85   OI_STATUS_ALREADY_INITIALIZED = 140, /**< Initialization has already been done */
86   OI_STATUS_STILL_CONNECTED = 141,     /**< The service cannot be shutdown because
87                                           there are still active connections. */
88   OI_STATUS_MTU_EXCEEDED = 142,        /**< The packet is too big */
89   OI_STATUS_LINK_TERMINATED = 143,     /**< The link was terminated */
90   OI_STATUS_PIN_CODE_TOO_LONG = 144,   /**< Application gave us a pin code that is too long */
91   OI_STATUS_STILL_REGISTERED = 145,    /**< The service cannot be shutdown because
92                                           there are still active registrations. */
93   OI_STATUS_SPEC_VIOLATION = 146, /**< Some application behavior contrary to BT specifications */
94 
95   OI_STATUS_PSM_ALREADY_REGISTERED =
96           402,                       /**< L2CAP: The specified PSM has already been registered. */
97   OI_STATUS_INVALID_CID = 403,       /**< L2CAP: CID is invalid or no longer valid
98                                         (connection terminated) */
99   OI_STATUS_CID_NOT_FOUND = 404,     /**< L2CAP: CID does not represent a current connection */
100   OI_STATUS_CHANNEL_NOT_FOUND = 406, /**< L2CAP: CID does not represent a current connection */
101   OI_STATUS_PSM_NOT_FOUND = 407,     /**< L2CAP: PSM not found */
102   OI_STATUS_INVALID_STATE = 408,     /**< L2CAP: invalid state */
103   OI_STATUS_WRITE_IN_PROGRESS = 410, /**< L2CAP: write in progress */
104   OI_STATUS_INVALID_PACKET = 411,    /**< L2CAP: invalid packet */
105   OI_STATUS_SEND_COMPLETE = 412,     /**< L2CAP: send is complete */
106   OI_STATUS_INVALID_HANDLE = 414,    /**< L2CAP: handle is invalid */
107   OI_STATUS_GROUP_FULL = 418, /**< L2CAP: No more members can be added to the specified group. */
108   OI_STATUS_DEVICE_ALREADY_IN_GROUP = 423, /**< L2CAP: The device already exists in the group. */
109   OI_STATUS_DUPLICATE_GROUP = 425,         /**< L2CAP: attempt to add more than one group */
110   OI_STATUS_EMPTY_GROUP = 426,             /**< L2CAP: group is empty */
111   OI_STATUS_PACKET_NOT_FOUND = 427,        /**< L2CAP: packet not found */
112   OI_STATUS_BUFFER_TOO_SMALL = 428,        /**< L2CAP: The buffer size is too small. */
113   OI_STATUS_IDENTIFIER_NOT_FOUND = 429,    /**< L2CAP: identifier not found */
114 
115   OI_L2CAP_DISCONNECT_LOWER_LAYER = 430,    /**< L2CAP: The lower level forced a disconnect. */
116   OI_L2CAP_DISCONNECT_REMOTE_REQUEST = 431, /**< L2CAP: The remote device requested a disconnect. */
117   OI_L2CAP_GROUP_ADD_CONNECT_FAIL = 433,    /**< L2CAP: Group add connect faiL */
118   OI_L2CAP_GROUP_REMOVE_FAILURE = 434,      /**< L2CAP: Group remove failure */
119   OI_L2CAP_DATA_WRITE_ERROR_LINK_TERM = 435, /**< L2CAP: Data write error LINK_TERM */
120   OI_L2CAP_DISCONNECT_LOCAL_REQUEST = 436,   /**< L2CAP: Disconnect local request */
121 
122   OI_L2CAP_CONNECT_TIMEOUT = 437,    /**< L2CAP: Connect timeout */
123   OI_L2CAP_DISCONNECT_TIMEOUT = 439, /**< L2CAP: Disconnect timeout */
124   OI_L2CAP_PING_TIMEOUT = 440,       /**< L2CAP: Ping timeout */
125   OI_L2CAP_GET_INFO_TIMEOUT = 441,   /**< L2CAP: Get info timeout */
126   OI_L2CAP_INVALID_ADDRESS = 444,    /**< L2CAP: Invalid address */
127   OI_L2CAP_CMD_REJECT_RCVD = 445,    /**< L2CAP: remote sent us 'command reject' response */
128 
129   OI_L2CAP_CONNECT_BASE = 450,                 /**< L2CAP: Connect base */
130   OI_L2CAP_CONNECT_PENDING = 451,              /**< L2CAP: Connect pending */
131   OI_L2CAP_CONNECT_REFUSED_INVALID_PSM = 452,  /**< L2CAP: Connect refused invalid PSM */
132   OI_L2CAP_CONNECT_REFUSED_SECURITY = 453,     /**< L2CAP: Connect refused security */
133   OI_L2CAP_CONNECT_REFUSED_NO_RESOURCES = 454, /**< L2CAP: Connect refused no resources */
134 
135   OI_L2CAP_CONFIG_BASE = 460,                    /**< L2CAP: Config base */
136   OI_L2CAP_CONFIG_FAIL_INVALID_PARAMETERS = 461, /**< L2CAP: Config fail invalid parameters */
137   OI_L2CAP_CONFIG_FAIL_NO_REASON = 462,          /**< L2CAP: Config fail no reason */
138   OI_L2CAP_CONFIG_FAIL_UNKNOWN_OPTIONS = 463,    /**< L2CAP: Config fail unknown options */
139 
140   OI_L2CAP_GET_INFO_BASE = 470,          /**< L2CAP: Get info base */
141   OI_L2CAP_GET_INFO_NOT_SUPPORTED = 471, /**< L2CAP: Get info not supported */
142   OI_L2CAP_MTU_EXCEEDED = 472,           /**< L2CAP: The MTU of the channel was exceeded */
143   OI_L2CAP_INVALID_PSM = 482,            /**< L2CAP: Invalid PSM */
144   OI_L2CAP_INVALID_MTU = 483,            /**< L2CAP: Invalid MTU */
145   OI_L2CAP_INVALID_FLUSHTO = 484,        /**< L2CAP: Invalid flush timeout */
146 
147   OI_HCI_NO_SUCH_CONNECTION = 601, /**< HCI: caller specified a non-existent connection handle */
148   OI_HCI_CB_LIST_FULL = 603,   /**< HCI: callback list is full, cannot attempt to send command */
149   OI_HCI_EVENT_UNDERRUN = 605, /**< HCI: parsing event packet, premature end-of-parameters */
150   OI_HCI_UNKNOWN_EVENT_CODE = 607,  /**< HCI: event received - event code is unknown */
151   OI_HCI_BAD_EVENT_PARAM_LEN = 608, /**< HCI: event - parameter length is incorrect */
152   OI_HCI_CMD_QUEUE_FULL = 611,      /**< HCI: command queue is full */
153   OI_HCI_SHORT_EVENT = 612,         /**< HCI: event received, missing event code and/or param len */
154   OI_HCI_TRANSMIT_NOT_READY = 613,  /**< HCI: ACL/SCO transmit request failed -
155                                        busy or no buffers available */
156   OI_HCI_ORPHAN_SENT_EVENT = 614,   /**< HCI: got spurious 'sent' event from transport layer */
157   OI_HCI_CMD_TABLE_ERROR = 615,     /**< HCI: inconsistency in the internal command table */
158   OI_HCI_UNKNOWN_CMD_ID = 616,      /**< HCI: HciApi Command - unknown command id */
159   OI_HCI_UNEXPECTED_EVENT =
160           619, /**< HCI: event received which only occurs in response to our cmd */
161   OI_HCI_EVENT_TABLE_ERROR = 620,      /**< HCI: inconsistency in the internal event table */
162   OI_HCI_EXPECTED_EVENT_TIMEOUT = 621, /**< HCI: timed out waiting for an expected event */
163   OI_HCI_NO_CMD_DESC_FOR_OPCODE = 622, /**< HCI: event opcode is not known */
164   OI_HCI_INVALID_OPCODE_ERROR = 623,   /**< HCI: command opcode is invalid */
165   OI_HCI_FLOW_CONTROL_DISABLED = 624,  /**< HCI: can not use host flow control
166                                           APIs if disabled in configuration */
167   OI_HCI_TX_COMPLETE = 625,            /**< HCI: packet delivery to Host Controller complete */
168   OI_HCI_TX_ERROR = 626,               /**< HCI: failed to deliver packet to Host Controller */
169   OI_HCI_DEVICE_NOT_INITIALIZED = 627, /**< HCI: commands from upper layers
170                                           disallowed until device is up and
171                                           running */
172   OI_HCI_UNSUPPORTED_COMMAND = 628, /**< HCI: command requested is not supported by local device */
173   OI_HCI_PASSTHROUGH_ERROR = 629,   /**< HCI: Error processing passthrough command */
174   OI_HCI_PASSTHROUGH_ALREADY_SET = 630, /**< HCI: Passthrough mode already enabled */
175   OI_HCI_RESET_FAILURE = 631,           /**< HCI: failed to reset the device/baseband */
176   OI_HCI_TRANSPORT_RESET = 632,         /**< HCI: some operation failed because of a
177                                            reset in the transport */
178   OI_HCIERR_HCIIFC_INIT_FAILURE = 633,  /**< HCI: failed to initialize transport layer interface */
179 
180   OI_HCIERR_FIRST_ERROR_VALUE = 701,              /**< marker for first HCI protocol error */
181   OI_HCIERR_UNKNOWN_HCI_COMMAND = 701,            /**< HCI: protocol error 0x01 */
182   OI_HCIERR_NO_CONNECTION = 702,                  /**< HCI: protocol error 0x02 */
183   OI_HCIERR_HARDWARE_FAILURE = 703,               /**< HCI: protocol error 0x03 */
184   OI_HCIERR_PAGE_TIMEOUT = 704,                   /**< HCI: protocol error 0x04 */
185   OI_HCIERR_AUTHENTICATION_FAILURE = 705,         /**< HCI: protocol error 0x05 */
186   OI_HCIERR_KEY_MISSING = 706,                    /**< HCI: protocol error 0x06 */
187   OI_HCIERR_MEMORY_FULL = 707,                    /**< HCI: protocol error 0x07 */
188   OI_HCIERR_CONNECTION_TIMEOUT = 708,             /**< HCI: protocol error 0x08 */
189   OI_HCIERR_MAX_NUM_OF_CONNECTIONS = 709,         /**< HCI: protocol error 0x09 */
190   OI_HCIERR_MAX_NUM_OF_SCO_CONNECTIONS = 710,     /**< HCI: protocol error 0x0A */
191   OI_HCIERR_ACL_CONNECTION_ALREADY_EXISTS = 711,  /**< HCI: protocol error 0x0B */
192   OI_HCIERR_COMMAND_DISALLOWED = 712,             /**< HCI: protocol error 0x0C */
193   OI_HCIERR_HOST_REJECTED_RESOURCES = 713,        /**< HCI: protocol error 0x0D */
194   OI_HCIERR_HOST_REJECTED_SECURITY = 714,         /**< HCI: protocol error 0x0E */
195   OI_HCIERR_HOST_REJECTED_PERSONAL_DEVICE = 715,  /**< HCI: protocol error 0x0F */
196   OI_HCIERR_HOST_TIMEOUT = 716,                   /**< HCI: protocol error 0x10 */
197   OI_HCIERR_UNSUPPORTED = 717,                    /**< HCI: protocol error 0x11 */
198   OI_HCIERR_INVALID_PARAMETERS = 718,             /**< HCI: protocol error 0x12 */
199   OI_HCIERR_OTHER_END_USER_DISCONNECT = 719,      /**< HCI: protocol error 0x13 */
200   OI_HCIERR_OTHER_END_LOW_RESOURCES = 720,        /**< HCI: protocol error 0x14 */
201   OI_HCIERR_OTHER_END_POWERING_OFF = 721,         /**< HCI: protocol error 0x15 */
202   OI_HCIERR_CONNECTION_TERMINATED_LOCALLY = 722,  /**< HCI: protocol error 0x16 */
203   OI_HCIERR_REPEATED_ATTEMPTS = 723,              /**< HCI: protocol error 0x17 */
204   OI_HCIERR_PAIRING_NOT_ALLOWED = 724,            /**< HCI: protocol error 0x18 */
205   OI_HCIERR_UNKNOWN_LMP_PDU = 725,                /**< HCI: protocol error 0x19 */
206   OI_HCIERR_UNSUPPORTED_REMOTE_FEATURE = 726,     /**< HCI: protocol error 0x1A */
207   OI_HCIERR_SCO_OFFSET_REJECTED = 727,            /**< HCI: protocol error 0x1B */
208   OI_HCIERR_SCO_INTERVAL_REJECTED = 728,          /**< HCI: protocol error 0x1C */
209   OI_HCIERR_SCO_AIR_MODE_REJECTED = 729,          /**< HCI: protocol error 0x1D */
210   OI_HCIERR_INVALID_LMP_PARAMS = 730,             /**< HCI: protocol error 0x1E */
211   OI_HCIERR_UNSPECIFIED_ERROR = 731,              /**< HCI: protocol error 0x1F */
212   OI_HCIERR_UNSUPPORTED_LMP_PARAMETERS = 732,     /**< HCI: protocol error 0x20 */
213   OI_HCIERR_ROLE_CHANGE_NOT_ALLOWED = 733,        /**< HCI: protocol error 0x21 */
214   OI_HCIERR_LMP_RESPONSE_TIMEOUT = 734,           /**< HCI: protocol error 0x22 */
215   OI_HCIERR_LMP_ERROR_TRANS_COLLISION = 735,      /**< HCI: protocol error 0x23 */
216   OI_HCIERR_LMP_PDU_NOT_ALLOWED = 736,            /**< HCI: protocol error 0x24 */
217   OI_HCIERR_ENCRYPTION_MODE_NOT_ACCEPTABLE = 737, /**< HCI: protocol error 0x25 */
218   OI_HCIERR_UNIT_KEY_USED = 738,                  /**< HCI: protocol error 0x26 */
219   OI_HCIERR_QOS_NOT_SUPPORTED = 739,              /**< HCI: protocol error 0x27 */
220   OI_HCIERR_INSTANT_PASSED = 740,                 /**< HCI: protocol error 0x28 */
221   OI_HCIERR_UNIT_KEY_PAIRING_UNSUPPORTED = 741,   /**< HCI: protocol error 0x29 */
222   OI_HCIERR_DIFFERENT_TRANS_COLLISION = 742,      /**< HCI: protocol error 0x2A */
223   OI_HCIERR_RESERVED_2B = 743,                    /**< HCI: protocol error 0x2B */
224   OI_HCIERR_QOS_UNACCEPTABLE_PARAMETER = 744,     /**< HCI: protocol error 0x2C */
225   OI_HCIERR_QOS_REJECTED = 745,                   /**< HCI: protocol error 0x2D */
226   OI_HCIERR_CHANNEL_CLASSIFICATION_NS = 746,      /**< HCI: protocol error 0x2E */
227   OI_HCIERR_INSUFFICIENT_SECURITY = 747,          /**< HCI: protocol error 0x2F */
228   OI_HCIERR_PARAM_OUT_OF_MANDATORY_RANGE = 748,   /**< HCI: protocol error 0x30 */
229   OI_HCIERR_RESERVED_31 = 749,                    /**< HCI: protocol error 0x31 */
230   OI_HCIERR_ROLE_SWITCH_PENDING = 750,            /**< HCI: protocol error 0x32 */
231   OI_HCIERR_RESERVED_33 = 751,                    /**< HCI: protocol error 0x33 */
232   OI_HCIERR_RESERVED_SLOT_VIOLATION = 752,        /**< HCI: protocol error 0x34 */
233   OI_HCIERR_ROLE_SWITCH_FAILED = 753,             /**< HCI: protocol error 0x35 */
234   OI_HCIERR_EIR_TOO_LARGE = 754,                  /**< HCI: protocol error 0x36 */
235   OI_HCIERR_SSP_NOT_SUPPORTED_BY_HOST = 755,      /**< HCI: protocol error 0x37 */
236   OI_HCIERR_HOST_BUSY_PAIRING = 756,              /**< HCI: protocol error 0x38 */
237 
238   OI_HCIERR_UNKNOWN_ERROR = 757,    /**< HCI: unknown error code */
239   OI_HCIERR_LAST_ERROR_VALUE = 757, /**< marker for last HCI protocol error */
240 
241   OI_SDP_SPEC_ERROR = 800, /**< SDP: Base error status for mapping OI_STATUS
242                               codes to SDP errors */
243   OI_SDP_INVALID_SERVICE_RECORD_HANDLE =
244           (OI_SDP_SPEC_ERROR + 2), /**< SDP: protocol error Invalid Service Record Handle */
245   OI_SDP_INVALID_REQUEST_SYNTAX =
246           (OI_SDP_SPEC_ERROR + 3), /**< SDP: protocol error Invalid Request Syntax */
247   OI_SDP_INVALID_PDU_SIZE = (OI_SDP_SPEC_ERROR + 4), /**< SDP: protocol error Invalid PDU Size */
248   OI_SDP_INVALID_CONTINUATION_STATE =
249           (OI_SDP_SPEC_ERROR + 5), /**< SDP: protocol error Invalid Continuation State */
250   OI_SDP_INSUFFICIENT_RESOURCES =
251           (OI_SDP_SPEC_ERROR + 6),   /**< SDP: protocol error Insufficient Resources */
252   OI_SDP_ERROR = 807,                /**< SDP: server returned an error code */
253   OI_SDP_CORRUPT_DATA_ELEMENT = 808, /**< SDP: Invalid or corrupt data element representation */
254   OI_SDP_SERVER_NOT_CONNECTED = 810, /**< SDP: Attempt to disconnect from an unconnected server */
255   OI_SDP_ACCESS_DENIED = 811,        /**< SDP: Server denied access to server */
256   OI_SDP_ATTRIBUTES_OUT_OF_ORDER =
257           812, /**< SDP: Attributes in attribute list not in ascending order */
258   OI_SDP_DEVICE_DOES_NOT_SUPPORT_SDP =
259           813,               /**< SDP: Tried to connect to a device that does not support SDP */
260   OI_SDP_NO_MORE_DATA = 815, /**< SDP: Server does not have more continuation data */
261   OI_SDP_REQUEST_PARAMS_TOO_LONG =
262           816,                  /**< SDP: Parameters for a request exceed the L2CAP buffer size */
263   OI_SDP_REQUEST_PENDING = 817, /**< SDP: Cannot make a request when another
264                                    request is being processed */
265   OI_SDP_SERVER_CONNECT_FAILED = 819, /**< SDP: Failed attempt to connect to an SDP server */
266   OI_SDP_SERVER_TOO_MANY_CONNECTIONS =
267           821, /**< SDP: Exceeded maximum number of simultaneous server connections
268                 */
269   OI_SDP_NO_MATCHING_SERVICE_RECORD = 823, /**< SDP: No service record matched the UUID list */
270   OI_SDP_PARTIAL_RESPONSE = 824,           /**< SDP: Internal use only */
271   OI_SDP_ILLEGAL_ARGUMENT = 825,           /**< SDP: Illegal argument passed to an SDP function */
272   OI_SDP_ATTRIBUTE_NOT_FOUND =
273           826, /**< SDP: A requested attribute was not found in a service record */
274   OI_SDP_DATABASE_OUT_OF_RESOURCES = 827,  /**< SDP: server database is out of memory */
275   OI_SDP_SHORT_PDU = 829,                  /**< SDP: Not enough bytes in the packet */
276   OI_SDP_TRANSACTION_ID_MISMATCH = 830,    /**< SDP: Transaction Id was not as expected */
277   OI_SDP_UNEXPECTED_RESPONSE_PDU_ID = 831, /**< SDP: Did not expect this response PDU */
278   OI_SDP_REQUEST_TIMEOUT = 832, /**< SDP: Did not get a response within the timeout period */
279   OI_SDP_INVALID_RESPONSE_SYNTAX = 833, /**< SDP: Response is not correctly formatted */
280   OI_SDP_CONNECTION_TIMEOUT = 834,      /**< SDP: Connection attempt timed out at a lower layer */
281   OI_SDP_RESPONSE_DATA_ERROR = 835, /**< SDP: Response to a service request appears to be corrupt */
282   OI_SDP_TOO_MANY_ATTRIBUTE_BYTES = 836, /**< SDP: Response contained more bytes than requested. */
283   OI_SDP_TOO_MANY_SERVICE_RECORDS =
284           837, /**< SDP: Response contained more service records than requested. */
285   OI_SDP_INVALID_CONNECTION_ID = 838, /**< SDP: Invalid connection ID in an SDP request */
286   OI_SDP_CANNOT_SET_ATTRIBUTE = 839,  /**< SDP: Attempt to set a dynamic attribute value failed */
287   OI_SDP_BADLY_FORMED_ATTRIBUTE_VALUE =
288           840, /**< SDP: An attribute value has the wrong type or structure */
289   OI_SDP_NO_ATTRIBUTE_LIST_TO_REMOVE = 841,  /**< SDP: Attempt to remove a non-existent attribute
290                                                 list from a  service record */
291   OI_SDP_ATTRIBUTE_LIST_ALREADY_ADDED = 842, /**< SDP: An attribute list has
292                                                 already been added to the
293                                                 service record */
294   OI_SDP_DATA_ELEMENT_TRUNCATED = 843,       /**< SDP: Data element truncated (too few bytes) */
295 
296   OI_RFCOMM_WRITE_IN_PROGRESS = 901,          /**< RFCOMM: Write in progress */
297   OI_RFCOMM_INVALID_BAUDRATE = 903,           /**< RFCOMM: Invalid baudrate */
298   OI_RFCOMM_INVALID_DATABIT = 904,            /**< RFCOMM: Invalid databit */
299   OI_RFCOMM_INVALID_STOPBIT = 905,            /**< RFCOMM: Invalid stopbit */
300   OI_RFCOMM_INVALID_PARITY = 906,             /**< RFCOMM: Invalid parity */
301   OI_RFCOMM_INVALID_PARITYTYPE = 907,         /**< RFCOMM: Invalid paritytype */
302   OI_RFCOMM_INVALID_FLOWCONTROL = 908,        /**< RFCOMM: Invalid flowcontrol */
303   OI_RFCOMM_SESSION_EXISTS = 909,             /**< RFCOMM: Session exists */
304   OI_RFCOMM_INVALID_CHANNEL = 910,            /**< RFCOMM: Invalid channel */
305   OI_RFCOMM_DLCI_EXISTS = 911,                /**< RFCOMM: DLCI exists */
306   OI_RFCOMM_LINK_NOT_FOUND = 912,             /**< RFCOMM: Link not found */
307   OI_RFCOMM_REMOTE_REJECT = 913,              /**< RFCOMM: Remote reject */
308   OI_RFCOMM_TEST_IN_PROGRESS = 915,           /**< RFCOMM: Test in progress */
309   OI_RFCOMM_SESSION_NOT_FOUND = 916,          /**< RFCOMM: Session not found */
310   OI_RFCOMM_INVALID_PACKET = 917,             /**< RFCOMM: Invalid packet */
311   OI_RFCOMM_FRAMESIZE_EXCEEDED = 918,         /**< RFCOMM: Framesize exceeded */
312   OI_RFCOMM_INVALID_DLCI = 920,               /**< RFCOMM: Invalid dlci */
313   OI_RFCOMM_SERVER_NOT_REGISTERED = 921,      /**< RFCOMM: Server not registered */
314   OI_RFCOMM_CREDIT_ERROR = 922,               /**< RFCOMM: Credit error */
315   OI_RFCOMM_NO_CHANNEL_NUMBER = 923,          /**< RFCOMM: No channel number */
316   OI_RFCOMM_QUERY_IN_PROGRESS = 924,          /**< RFCOMM: Query in progress */
317   OI_RFCOMM_SESSION_SHUTDOWN = 925,           /**< RFCOMM: Session shutdown */
318   OI_RFCOMM_LOCAL_DEVICE_DISCONNECTED = 926,  /**< RFCOMM: Local device disconnected */
319   OI_RFCOMM_REMOTE_DEVICE_DISCONNECTED = 927, /**< RFCOMM: Remote device disconnected */
320   OI_RFCOMM_OUT_OF_SERVER_CHANNELS = 928,     /**< RFCOMM: Out of server channels */
321 
322   OI_DISPATCH_INVALID_CB_HANDLE = 1001, /**< Dispatcher was handed an invalid callback handle */
323   OI_DISPATCH_TABLE_OVERFLOW = 1002,    /**< Dispatcher table is full */
324 
325   OI_TEST_UNKNOWN_TEST = 1101, /**< TEST: Unknown test */
326   OI_TEST_FAIL = 1102,         /**< TEST: Fail */
327 
328   OI_HCITRANS_CANNOT_CONNECT_TO_DEVICE = 1201, /**< TRANSPORT: Cannot connect to device */
329   OI_HCITRANS_BUFFER_TOO_SMALL = 1203,         /**< TRANSPORT: Buffer too small */
330   OI_HCITRANS_NULL_DEVICE_HANDLE = 1204,       /**< TRANSPORT: Null device handle */
331   OI_HCITRANS_IO_ERROR = 1205,                 /**< TRANSPORT: IO error */
332   OI_HCITRANS_DEVICE_NOT_READY = 1206,         /**< TRANSPORT: Device not ready */
333   OI_HCITRANS_FUNCTION_NOT_SUPPORTED = 1207,   /**< TRANSPORT: Function not supported */
334   OI_HCITRANS_ACCESS_DENIED = 1209,            /**< TRANSPORT: win32 */
335   OI_HCITRANS_ACL_DATA_ERROR = 1210,           /**< TRANSPORT: ACL data error */
336   OI_HCITRANS_SCO_DATA_ERROR = 1211,           /**< TRANSPORT: SCO data error */
337   OI_HCITRANS_EVENT_DATA_ERROR = 1212,         /**< TRANSPORT: HCI event data error */
338   OI_HCITRANS_INTERNAL_ERROR = 1214,           /**< TRANSPORT: Internal error in the transport */
339   OI_HCITRANS_LINK_NOT_ACTIVE = 1215, /**< TRANSPORT: Link to the device is not currently active */
340   OI_HCITRANS_INITIALIZING = 1216,    /**< TRANSPORT: Transport is initializing */
341 
342   OI_DEVMGR_NO_CONNECTION = 1301,             /**< DEVMGR: No connection */
343   OI_DEVMGR_HARDWARE_ERROR = 1305,            /**< DEVMGR: error reported by HCI */
344   OI_DEVMGR_PENDING_CONNECT_LIST_FULL = 1307, /**< DEVMGR: Pending connect list full */
345   OI_DEVMGR_CONNECTION_LIST_FULL = 1309,      /**< DEVMGR: Connection list full */
346   OI_DEVMGR_NO_SUCH_CONNECTION = 1310,        /**< DEVMGR: No such connection */
347   OI_DEVMGR_INQUIRY_IN_PROGRESS = 1311,       /**< DEVMGR: Inquiry in progress */
348   OI_DEVMGR_PERIODIC_INQUIRY_ACTIVE = 1312,   /**< DEVMGR: Periodic inquiry active */
349   OI_DEVMGR_NO_INQUIRIES_ACTIVE = 1313,       /**< DEVMGR: can not cancel/exit if not active */
350   OI_DEVMGR_DUPLICATE_CONNECTION = 1314,      /**< DEVMGR: internal error */
351   OI_DEVMGR_DUPLICATE_EVENT_CALLBACK = 1316, /**< DEVMGR: attempt to register same callback twice */
352   OI_DEVMGR_EVENT_CALLBACK_LIST_FULL =
353           1317, /**< DEVMGR: can not register event callback, list is full */
354   OI_DEVMGR_EVENT_CALLBACK_NOT_FOUND = 1318, /**< DEVMGR: attempt to unregister callback failed */
355   OI_DEVMGR_BUSY = 1319, /**< DEVMGR: some operations can only execute one at a time */
356   OI_DEVMGR_ENUM_UNEXPECTED_INQ_COMPLETE = 1320, /**< DEVMGR: inquiry complete
357                                                     event in inappropriate
358                                                     enumeration state */
359   OI_DEVMGR_ENUM_UNEXPECTED_INQ_RESULT = 1321,   /**< DEVMGR: inquiry result event
360                                                     in inappropriate enumeration
361                                                     state */
362   OI_DEVMGR_ENUM_DATABASE_FULL = 1322,           /**< DEVMGR: device enumeration, database
363                                                     is full, couldn't add a new device */
364   OI_DEVMGR_ENUM_INQUIRIES_OVERLAP = 1323,       /**< DEVMGR: device enumeration,
365                                                     periodic inquiries occurring too
366                                                     close together */
367   OI_DEVMGR_UNKNOWN_LINK_TYPE = 1324, /**< DEVMGR: HCI connect request with unknown link type */
368   OI_DEVMGR_PARAM_IO_ACTIVE = 1325,   /**< DEVMGR: request for parameter
369                                          read/write while param read/write active
370                                          */
371   OI_DEVMGR_UNKNOWN_IAC_LAP = 1326,   /**< DEVMGR: unrecognized IAC LAP */
372   OI_DEVMGR_SCO_ALREADY_REGISTERED = 1327, /**< DEVMGR: only one application can use SCO */
373   OI_DEVMGR_SCO_NOT_REGISTERED =
374           1328, /**< DEVMGR: SCO applications must register before using the API */
375   OI_DEVMGR_SCO_WITHOUT_ACL = 1329,     /**< DEVMGR: Got SCO connection but there is
376                                            no underlying ACL connection */
377   OI_DEVMGR_NO_SUPPORT = 1330,          /**< DEVMGR: Request is not supported by the device */
378   OI_DEVMGR_WRITE_POLICY_FAILED = 1331, /**< DEVMGR: connection attempt failed -
379                                            unable to write link policy */
380   OI_DEVMGR_NOT_IN_MASTER_MODE = 1332,  /**< DEVMGR: OI_DEVMGR EndMasterMode
381                                            without prior
382                                            OI_DEVMGR_BeginMasterMode */
383   OI_DEVMGR_POLICY_VIOLATION = 1333,    /**< DEVMGR: low-power request is rejected
384                                            - link policy does not allow it */
385   OI_DEVMGR_BUSY_TIMEOUT = 1334,        /**< DEVMGR: queued operation timed out while
386        in the queue; \n
387        timeout configurable via @ref OI_CONFIG_DEVMGR::connectQueueTimeoutSecs
388        "connectQueueTimeoutSecs" */
389   OI_DEVMGR_REENCRYPT_FAILED = 1335,    /**< DEVMGR: failed to re-encrypt link after role switch */
390   OI_DEVMGR_ROLE_POLICY_CONFLICT =
391           1336,                        /**< DEVMGR: requested role conflicts with current policy */
392   OI_DEVMGR_BAD_INTERVAL = 1337,       /**< DEVMGR: current linkTO outside range of
393                                           requested min/max interval */
394   OI_DEVMGR_INVALID_SCO_HANDLE = 1338, /**< DEVMGR: HCI SCO event, invalid handle */
395   OI_DEVMGR_CONNECTION_OVERLAP = 1339, /**< DEVMGR: Connection failed due to
396                                           race condition with remote side */
397   OI_DEVMGR_ORPHAN_SUBRATE_COMPLETE = 1340, /**< DEVMGR: sniff subrate complete, but no callback */
398   OI_DEVMGR_EIR_RESPONSE_2_LARGE =
399           1341, /**< DEVMGR: eir builder, response length would exceed spec max */
400 
401   OI_SECMGR_NO_POLICY = 1401,         /**< SECMGR: no security policy has been established */
402   OI_SECMGR_INTERNAL_ERROR = 1402,    /**< SECMGR: internal inconsistency */
403   OI_SECMGR_ORPHANED_CALLBACK = 1403, /**< SECMGR: we've been called back, but CB context is gone */
404   OI_SECMGR_BUSY = 1404, /**< SECMGR: configure and access request cannot be concurrent */
405   OI_SECMGR_DEVICE_NOT_TRUSTED = 1405, /**< SECMGR: l2cap access denied - device is not trusted */
406   OI_SECMGR_DEVICE_ENCRYPT_FAIL =
407           1407, /**< SECMGR: l2cap access denied - failed to start encryption */
408   OI_SECMGR_DISCONNECTED_FAIL = 1408,     /**< SECMGR: l2cap access denied - disconnected */
409   OI_SECMGR_ACCESS_PENDING = 1409,        /**< SECMGR: l2cap access request is still pending  */
410   OI_SECMGR_PIN_CODE_TOO_SHORT = 1410,    /**< SECMGR: Higher-layer process gave us
411                                              a pin code that is too small */
412   OI_SECMGR_UNKNOWN_ENCRYPT_VALUE = 1411, /**< SECMGR: got EncryptionChange
413                                              event, unknown encryption enable
414                                              value */
415   OI_SECMGR_INVALID_POLICY = 1412,        /**< SECMGR: the specified security policy is
416                                              not valid for security mode */
417   OI_SECMGR_AUTHORIZATION_FAILED = 1413,  /**< SECMGR: device authorization failed */
418   OI_SECMGR_ENCRYPTION_FAILED = 1414,     /**< SECMGR: device encryption failed */
419   OI_SECMGR_UNIT_KEY_UNSUPPORTED =
420           1415, /**< SECMGR: authentication failed due to non-support of unit keys
421                  */
422   OI_SECMGR_NOT_REGISTERED = 1416, /**< SECMGR: required registrations have not yet occurred */
423   OI_SECMGR_ILLEGAL_WRITE_SSP_MODE =
424           1417, /**< SECMGR: 2.1 HCI spec does not allow SSP mode to be disabled */
425   OI_SECMGR_INVALID_SEC_LEVEL =
426           1418, /**< SECMGR: security level for a service is not a valid value */
427   OI_SECMGR_INSUFFICIENT_LINK_KEY = 1419, /**< SECMGR: link key type is not
428                                              sufficient to meet service
429                                              requirements */
430   OI_SECMGR_INVALID_KEY_TYPE = 1420,      /**< SECMGR: link key type is not a valid value */
431   OI_SECMGR_SSP_NOT_ENCRYPTED = 1421,     /**< SECMGR: ssp required encryption on incoming link */
432   OI_SECMGR_ORPHAN_EVENT = 1422,          /**< SECMGR: some HCI security event unrelated
433                                              to current processes */
434   OI_SECMGR_NOT_BONDABLE = 1423,          /**< SECMGR: not in bondable mode */
435 
436   OI_TCS_INVALID_ELEMENT_TYPE = 1602, /**< TCS: element type is invalid */
437   OI_TCS_INVALID_PACKET = 1603,       /**< TCS: packet is invalid */
438   OI_TCS_CALL_IN_PROGRESS = 1604,     /**< TCS: call is in progress */
439   OI_TCS_NO_CALL_IN_PROGRESS = 1605,  /**< TCS: no call in progress */
440 
441   OI_OBEX_CONTINUE = 1701,            /**< OBEX: Continue processing OBEX request */
442   OI_OBEX_COMMAND_ERROR = 1702,       /**< OBEX: An unrecognized OBEX command opcode */
443   OI_OBEX_CONNECTION_TIMEOUT = 1703,  /**< OBEX: Timeout waiting for a response to a request */
444   OI_OBEX_CONNECT_FAILED = 1704,      /**< OBEX: An OBEX connection request did not succeed */
445   OI_OBEX_DISCONNECT_FAILED = 1705,   /**< OBEX: A disconnect failed probably
446                                          because the connection did not exist */
447   OI_OBEX_ERROR = 1706,               /**< OBEX: Unspecified OBEX error */
448   OI_OBEX_INCOMPLETE_PACKET = 1707,   /**< OBEX: Packet too short or corrupt */
449   OI_OBEX_LENGTH_REQUIRED = 1708,     /**< OBEX: Length header required in OBEX command */
450   OI_OBEX_NOT_CONNECTED = 1709,       /**< OBEX: No connection to OBEX server */
451   OI_OBEX_NO_MORE_CONNECTIONS = 1710, /**< OBEX: Reached max connections limit */
452   OI_OBEX_OPERATION_IN_PROGRESS =
453           1711, /**< OBEX: Another operation is still in progress on a connection */
454   OI_OBEX_PUT_RESPONSE_ERROR = 1712,        /**< OBEX: An error in the response to a PUT command */
455   OI_OBEX_GET_RESPONSE_ERROR = 1713,        /**< OBEX: An error in the response to a GET command */
456   OI_OBEX_REQUIRED_HEADER_NOT_FOUND = 1714, /**< OBEX: packet was missing a required header */
457   OI_OBEX_SERVICE_UNAVAILABLE = 1715,       /**< OBEX: Unown OBEX target or required service */
458   OI_OBEX_TOO_MANY_HEADER_BYTES = 1716,     /**< OBEX: Headers will not fit in single OBEX packet */
459   OI_OBEX_UNKNOWN_COMMAND = 1717,           /**< OBEX: Unrecognized OBEX command */
460   OI_OBEX_UNSUPPORTED_VERSION = 1718,       /**< OBEX: Version mismatch */
461   OI_OBEX_CLIENT_ABORTED_COMMAND = 1719,    /**< OBEX: server received abort command */
462   OI_OBEX_BAD_PACKET = 1720,                /**< OBEX: Any malformed OBEX packet */
463   OI_OBEX_BAD_REQUEST = 1721,               /**< OBEX: Maps to OBEX response of the same name */
464   OI_OBEX_OBJECT_OVERFLOW = 1723,           /**< OBEX: Too many bytes received. */
465   OI_OBEX_NOT_FOUND = 1724,                 /**< OBEX: Maps to obex response of same name */
466   OI_OBEX_ACCESS_DENIED = 1735,             /**< OBEX: Object could not be read or written. */
467   OI_OBEX_VALUE_NOT_ACCEPTABLE =
468           1736,                   /**< OBEX: Value in a command was not in the acceptable range. */
469   OI_OBEX_PACKET_OVERFLOW = 1737, /**< OBEX: Buffer will not fit in a single OBEX packet. */
470   OI_OBEX_NO_SUCH_FOLDER = 1738,  /**< OBEX: Error returned by a setpath operation. */
471   OI_OBEX_NAME_REQUIRED = 1739,   /**< OBEX: Name must be non-null and non-empty. */
472   OI_OBEX_PASSWORD_TOO_LONG =
473           1740, /**< OBEX: Password exceeds implementation imposed length limit. */
474   OI_OBEX_PRECONDITION_FAILED = 1741,         /**< OBEX: response Precondition Failed */
475   OI_OBEX_UNAUTHORIZED = 1742,                /**< OBEX: authentication was not successful. */
476   OI_OBEX_NOT_IMPLEMENTED = 1743,             /**< OBEX: Unimplemented feature. */
477   OI_OBEX_INVALID_AUTH_DIGEST = 1744,         /**< OBEX: An authentication digest was bad. */
478   OI_OBEX_INVALID_OPERATION = 1745,           /**< OBEX: Operation not allowed at this time. */
479   OI_OBEX_DATABASE_FULL = 1746,               /**< OBEX: Sync database full. */
480   OI_OBEX_DATABASE_LOCKED = 1747,             /**< OBEX: Sync database locked. */
481   OI_OBEX_INTERNAL_SERVER_ERROR = 1748,       /**< OBEX: response Internal Server Error */
482   OI_OBEX_UNSUPPORTED_MEDIA_TYPE = 1749,      /**< OBEX: response Unsupported Media Type */
483   OI_OBEX_PARTIAL_CONTENT = 1750,             /**< OBEX: response Partial Content */
484   OI_OBEX_METHOD_NOT_ALLOWED = 1751,          /**< OBEX: response Method Not Allowed */
485   OI_OBEXSRV_INCOMPLETE_GET = 1752,           /**< OBEX: Indicates to a GET handler that
486                                                  the request phase is still in progress */
487   OI_OBEX_FOLDER_BROWSING_NOT_ALLOWED = 1753, /**< OBEX: Indicates that an FTP
488                                                  server does not allow folder
489                                                  browsing */
490   OI_OBEX_SERVER_FORCED_DISCONNECT =
491           1754,                   /**< OBEX: connection was forcibly terminated by the server */
492   OI_OBEX_OFS_ERROR = 1755,       /**< OBEX: OPP object file system error occurred */
493   OI_OBEX_FILEOP_ERROR = 1756,    /**< OBEX: FTP/PBAP file operation system error occurred */
494   OI_OBEX_USERID_TOO_LONG = 1757, /**< OBEX: User Id exceeds spec limited length limit. */
495 
496   OI_HANDSFREE_EVENT_REPORTING_DISABLED = 1801, /**< HANDSFREE: Event reporting disabled */
497   OI_HANDSFREE_NOT_CONNECTED = 1802,            /**< HANDSFREE: Not connected */
498   OI_HANDSFREE_SERVICE_NOT_STARTED = 1803,      /**< HANDSFREE: Cannot connect to
499                                                    handsfree AG if handsfree service
500                                                    not started */
501   OI_HANDSFREE_AG_SERVICE_NOT_STARTED = 1804, /**< HANDSFREE: Cannot connect to handsfree device if
502                                                  handsfree AG service not started */
503   OI_HANDSFREE_COMMAND_IN_PROGRESS = 1805, /**< HANDSFREE: Cannot accept a command at this time */
504   OI_HANDSFREE_AUDIO_ALREADY_CONNECTED = 1806, /**< HANDSFREE: Audio is already connected */
505   OI_HANDSFREE_AUDIO_NOT_CONNECTED = 1807,     /**< HANDSFREE: Audio is not connected */
506   OI_HANDSFREE_FEATURE_NOT_SUPPORTED = 1808,   /**< HANDSFREE: Local or remote
507                                                   feature not supported for
508                                                   requested command */
509 
510   OI_HEADSET_SERVICE_NOT_STARTED = 1901,    /**< HEADSET: Cannot connect to headset
511                                                AG if headset service not started */
512   OI_HEADSET_AG_SERVICE_NOT_STARTED = 1902, /**< HEADSET: Cannot connect to
513                                                headset device if headset AG
514                                                service not started */
515   OI_HEADSET_COMMAND_IN_PROGRESS = 1903,    /**< HEADSET: Cannot accept a command at this time */
516 
517   OI_BNEP_INVALID_MTU = 2001,   /**< BNEP: The remote device cannot support the minimum BNEP MTU */
518   OI_BNEP_SETUP_TIMEOUT = 2002, /**< BNEP: The setup request timed out. */
519   OI_BNEP_SERVICE_NOT_REGISTERED = 2003, /**< BNEP: The requested service was not found. */
520   OI_BNEP_INVALID_HANDLE = 2004,         /**< BNEP: The specified connection handle is not valid. */
521   OI_BNEP_RESPONSE_TIMEOUT = 2005,   /**< BNEP: The timer for receiving a response has expired. */
522   OI_BNEP_INVALID_CONNECTION = 2006, /**< BNEP: Invalid connection */
523   OI_BNEP_INVALID_FILTER = 2007,     /**< BNEP: The supplied filter was invalid. */
524   OI_BNEP_CONNECTION_EXISTS =
525           2008, /**< BNEP: An attempt was made to create a duplicate connection. */
526   OI_BNEP_NOT_INITIALIZED = 2009, /**< BNEP: Init has not been called */
527   OI_BNEP_CONNECT_BASE = 2010,    /**< BNEP: connection response codes */
528   OI_BNEP_CONNECT_FAILED_INVALID_DEST_UUID =
529           2011, /**< BNEP: connect response code Invalid Dest UUID */
530   OI_BNEP_CONNECT_FAILED_INVALID_SOURCE_UUID =
531           2012, /**< BNEP: connect response code Invalid Source UUID */
532   OI_BNEP_CONNECT_FAILED_INVALID_UUID_SIZE =
533           2013,                              /**< BNEP: connect response code Invalid UUID Size */
534   OI_BNEP_CONNECT_FAILED_NOT_ALLOWED = 2014, /**< BNEP: connect response code Not Allowed */
535   OI_BNEP_FILTER_NET_BASE = 2020,            /**< BNEP: filter response codes */
536   OI_BNEP_FILTER_NET_UNSUPPORTED_REQUEST =
537           2021, /**< BNEP: filter response code Unsupported Request */
538   OI_BNEP_FILTER_NET_FAILED_INVALID_PROTOCOL_TYPE =
539           2022, /**< BNEP: filter response code Invalid Protocol Type */
540   OI_BNEP_FILTER_NET_FAILED_MAX_LIMIT_REACHED =
541           2023,                              /**< BNEP: filter response code Max Limit Reached */
542   OI_BNEP_FILTER_NET_FAILED_SECURITY = 2024, /**< BNEP: filter response code Security */
543   OI_BNEP_FILTER_MULTI_BASE = 2030,          /**< BNEP: multicast response codes */
544   OI_BNEP_FILTER_MULTI_UNSUPPORTED_REQUEST =
545           2031, /**< BNEP: multicast response code Unsupported Request */
546   OI_BNEP_FILTER_MULTI_FAILED_INVALID_ADDRESS =
547           2032, /**< BNEP: multicast response code Invalid Address */
548   OI_BNEP_FILTER_MULTI_FAILED_MAX_LIMIT_REACHED =
549           2033, /**< BNEP: multicast response code Max Limit Reached */
550   OI_BNEP_FILTER_MULTI_FAILED_SECURITY = 2034, /**< BNEP: multicast response code Security */
551   OI_BNEP_LOCAL_DEVICE_MUST_BE_CENTRAL =
552           2040, /**< BNEP: Device must be central of the piconet for this function
553                  */
554   OI_BNEP_PACKET_FILTERED_OUT = 2041, /**< BNEP: Packet did not pass current filters */
555 
556   OI_NETIFC_UP_FAILED = 2101, /**< NETIFC: Could not bring up network interface */
557   OI_NETIFC_COULD_NOT_CREATE_THREAD =
558           2102, /**< NETIFC: Network interface could not create a read thread */
559   OI_NETIFC_INITIALIZATION_FAILED = 2103, /**< NETIFC: Error in network interface initialization */
560   OI_NETIFC_INTERFACE_ALREADY_UP = 2104,  /**< NETIFC: Network interface is already up */
561   OI_NETIFC_INTERFACE_NOT_UP = 2105,      /**< NETIFC: Network interface is not up */
562   OI_NETIFC_PACKET_TOO_BIG = 2106,        /**< NETIFC: The packet is too big */
563 
564   OI_PAN_ROLE_ALREADY_REGISTERED = 2201, /**< PAN: This PAN role was already registered */
565   OI_PAN_ROLE_NOT_ALLOWED = 2202,        /**< PAN: The PAN role is not currently allowed */
566   OI_PAN_INCOMPATIBLE_ROLES = 2203,      /**< PAN: Only certain local and remote role
567                                             combinations are permitted */
568   OI_PAN_INVALID_ROLE = 2204,           /**< PAN: Role specified is not one the defined PAN roles */
569   OI_PAN_CONNECTION_IN_PROGRESS = 2205, /**< PAN: A PAN connection is currently being established */
570   OI_PAN_USER_ALREADY_CONNECTED = 2206, /**< PAN: PAN user role only allows a single connection */
571   OI_PAN_DEVICE_CONNECTED = 2207, /**< PAN: A PAN connection already exists to specified device */
572 
573   OI_CODEC_SBC_NO_SYNCWORD = 2301, /**< CODEC: Couldn't find an SBC SYNCWORD */
574   OI_CODEC_SBC_NOT_ENOUGH_HEADER_DATA =
575           2302, /**< CODEC: Not enough data provided to decode an SBC header */
576   OI_CODEC_SBC_NOT_ENOUGH_BODY_DATA = 2303,  /**< CODEC: Decoded the header, but not enough data to
577                                                 contain the  rest of the frame */
578   OI_CODEC_SBC_NOT_ENOUGH_AUDIO_DATA = 2304, /**< CODEC: Not enough audio data for this frame */
579   OI_CODEC_SBC_CHECKSUM_MISMATCH = 2305, /**< CODEC: The frame header didn't match the checksum */
580   OI_CODEC_SBC_PARTIAL_DECODE =
581           2306, /**< CODEC: Decoding was successful, but frame data still remains.
582                    Next call will provide audio without consuming input data. */
583 
584   OI_FIFOQ_QUEUE_NOT_ALIGNED = 2401, /**< FIFOQ: queue must be 32-bit aligned */
585   OI_FIFOQ_INVALID_Q = 2402,         /**< FIFOQ: queue parameter is not a valid queue */
586   OI_FIFOQ_BUF_TOO_LARGE = 2403,     /**< FIFOQ: attempt to queue a buffer which is too large */
587   OI_FIFOQ_FULL = 2404,              /**< FIFOQ: enqueue() failed, queue is full */
588   OI_FIFOQ_NOT_ALLOCATED = 2405,     /**< FIFOQ: Enqueue QBuf() failed, buffer not allocated */
589   OI_FIFOQ_INVALID_DATA_PTR =
590           2406, /**< FIFOQ: Enqueue QBuf() failed, data pointer does not match */
591 
592   OI_HID_HOST_SERVICE_NOT_STARTED = 2601, /**< HID: Cannot connect to a HID
593                                              device unless HID host is started
594                                              */
595   OI_HID_DEVICE_SERVICE_NOT_STARTED =
596           2602, /**< HID: Cannot connect to a HID host unless HID device is started
597                  */
598 
599   OI_AT_ERROR = 2701,        /**< AT: ERROR response */
600   OI_AT_NO_CARRIER = 2702,   /**< AT: NO CARRIER response */
601   OI_AT_BUSY = 2703,         /**< AT: BUSY response */
602   OI_AT_NO_ANSWER = 2704,    /**< AT: NO ANSWER response */
603   OI_AT_DELAYED = 2705,      /**< AT: DELAYED response */
604   OI_AT_REJECTLISTED = 2706, /**< AT: REJECTLISTED response */
605   OI_AT_CME_ERROR = 2707,    /**< AT: +CME ERROR response */
606   OI_AT_CMS_ERROR = 2708,    /**< AT: +CMS ERROR response */
607 
608   OI_BLST_CHARACTER_TIMEOUT = 2801,   /**< BLST: Timeout expired while waiting for
609                                          a character from the client. */
610   OI_BLST_ACKNOWLEDGE_TIMEOUT = 2802, /**< BLST: Timeout expired while waiting for event
611                                         acknowledgment from the client */
612   OI_BLST_TX_NOT_READY = 2803,        /**< BLST: BLST is not ready to send a BHAPI
613                                          message to the client. */
614   OI_BLST_TX_BUSY = 2804,             /**< BLST: BLST transmit buffer is in use. */
615 
616   OI_AVDTP_CONNECTION_SEQ_ERROR = 2901, /**< AVDTP: sequencing of signalling/media channel
617                                            connections broken. */
618   OI_AVDTP_OUT_OF_RESOURCES = 2902,     /**< AVDTP: Tried to allocate too many
619                                            endpoints or signalling channels. */
620 
621   OI_PBAP_REPOSITORY_NOT_SET = 3001, /**< PBAP: Phonebook repository must be set
622                                         for operation to complete. */
623   OI_PBAP_PHONEBOOK_NOT_SET = 3002,  /**< PBAP: Phonebook be set for operation to complete. */
624 
625   OI_AADP_BAD_ENDPOINT = 3101, /**< AADP: Invalid local endpoint specified */
626   OI_AADP_BAD_STATE = 3102,    /**< AADP: AADP State is not correct for this operation. */
627 
628   OI_UNICODE_INVALID_SOURCE = 3200,        /**< Unicode Conversion: Source string has
629                                               invalid character encoding. */
630   OI_UNICODE_SOURCE_EXHAUSTED = 3201,      /**< Unicode Conversion: Incomplete
631                                               Unicode character at end of source
632                                               buffer. */
633   OI_UNICODE_DESTINATION_EXHAUSTED = 3202, /**< Unicode Conversion: Destination
634                                               buffer not large enough to hold
635                                               resulting Unicode string. */
636 
637   OI_AVRCP_TOO_MANY_CONNECTIONS = 3300, /**< AVRCP: Exceeded maximum number of
638                                            simultaneous AVCTP connections. */
639   OI_AVRCP_NOT_IMPLEMENTED = 3301,  /**< AVRCP: The target does not implement the command specified
640                                        by  the opcode and operand. */
641   OI_AVRCP_REJECTED = 3302,         /**< AVRCP: The target cannot respond because of
642                                        invalid operands in command packet. */
643   OI_AVRCP_INVALID_RESPONSE = 3303, /**< AVRCP: The controller received the
644                                        response with invalid parameters */
645   OI_AVRCP_RESPONSE_PACKET_OVERFLOW =
646           3304,                                 /**< AVRCP: The response message does not fir in one
647                                                    AVRCP packet     (512 bytes), has to be fragmented. */
648   OI_AVRCP_RESPONSE_INVALID_PDU = 3305,         /**< AVRCP: Command rejected: target
649                                                    received a PDU that it did not
650                                                    understand. */
651   OI_AVRCP_RESPONSE_INVALID_PARAMETER = 3306,   /**< AVRCP: Command rejected:
652                                                    target received a PDU with a
653                                                    parameter ID that it did not
654                                                    understand. */
655   OI_AVRCP_RESPONSE_PARAMETER_NOT_FOUND = 3307, /**< AVRCP: Command rejected: specified parameter
656                                                    not found, sent if the parameter ID is
657                                                    understood, but content is wrong or corrupted.*/
658   OI_AVRCP_RESPONSE_INTERNAL_ERROR = 3308, /**< AVRCP: Command rejected: target detected other error
659                                               conditions. */
660   OI_MAX_BM3_STATUS_VAL,                   /* Maximum BM3 status code */
661 
662   /* Status code values reserved for BM3 SDK platform-specific implementations
663    */
664   OI_STATUS_RESERVED_FOR_BCOT = 9000,
665 
666   /* Status code values reserved for BHAPI products */
667   OI_STATUS_RESERVED_FOR_BHAPI = 9200,
668 
669   /* Status code values reserved for Soundabout products */
670   OI_STATUS_RESERVED_FOR_SOUNDABOUT = 9400,
671 
672   /*
673    * Status code values greater than or equal to this value are reserved for use
674    * by applications.
675    * However, because of differences between compilers, and differences between
676    * 16-bit and 32-bit
677    * platforms custom status codes should be in the 16-bit range, so status
678    * codes can range from 0
679    * to 65534, inclusive (65535 is reserved)
680    */
681   OI_STATUS_RESERVED_FOR_APPS = 10000,
682 
683   OI_STATUS_NONE = 0xffff /**< Special status code to indicate that there is no
684                              status. (Only to be used for special cases
685                              involving OI_SLOG_ERROR() and OI_SLOG_WARNING().)
686                              */
687 } OI_STATUS;
688 
689 /* Remember to update the #define below when new reserved blocks are added to
690  * the list above. */
691 #define OI_NUM_RESERVED_STATUS_BLOCKS \
692   4 /**< Number of status code blocks reserved, including user apps */
693 
694 /**
695  * Test for success
696  */
697 #define OI_SUCCESS(x) ((x) == OI_OK)
698 
699 /*****************************************************************************/
700 #ifdef __cplusplus
701 }
702 #endif
703 
704 /**@}*/
705 
706 #endif /* _OI_STATUS_H */
707