| 1 | /*==========================================================================*/ |
|---|
| 2 | /* (Copyright (C) 2003 Koninklijke Philips Electronics N.V. */ |
|---|
| 3 | /* All rights reserved. */ |
|---|
| 4 | /* This source code and any compilation or derivative thereof is the */ |
|---|
| 5 | /* proprietary information of Koninklijke Philips Electronics N.V. */ |
|---|
| 6 | /* and is confidential in nature. */ |
|---|
| 7 | /* Under no circumstances is this software to be exposed to or placed */ |
|---|
| 8 | /* under an Open Source License of any type without the expressed */ |
|---|
| 9 | /* written permission of Koninklijke Philips Electronics N.V. */ |
|---|
| 10 | /*==========================================================================*/ |
|---|
| 11 | /*----------------------------------------------------------------------------- |
|---|
| 12 | // MoReUse - 2001-11-12 Continuus Version 16 |
|---|
| 13 | // |
|---|
| 14 | // Added |
|---|
| 15 | // CID_COMP_TRICK |
|---|
| 16 | // CID_COMP_TODISK |
|---|
| 17 | // CID_COMP_FROMDISK |
|---|
| 18 | // |
|---|
| 19 | // Removed |
|---|
| 20 | // CID_COMP_RTC Twice the same request - duplicate removed |
|---|
| 21 | // |
|---|
| 22 | // (C) Copyright 2000-2001 Koninklijke Philips Electronics N.V., |
|---|
| 23 | // All rights reserved |
|---|
| 24 | // |
|---|
| 25 | // This source code and any compilation or derivative thereof is the sole |
|---|
| 26 | // property of Philips Corporation and is provided pursuant to a Software |
|---|
| 27 | // License Agreement. This code is the proprietary information of Philips |
|---|
| 28 | // Corporation and is confidential in nature. Its use and dissemination by |
|---|
| 29 | // any party other than Philips Corporation is strictly limited by the |
|---|
| 30 | // confidential information provisions of the Agreement referenced above. |
|---|
| 31 | */ |
|---|
| 32 | /*----------------------------------------------------------------------------- |
|---|
| 33 | // FILE NAME: tmCompId.h |
|---|
| 34 | // |
|---|
| 35 | // DESCRIPTION: This header file identifies the standard component identifiers |
|---|
| 36 | // for DVP platforms. The objective of DVP component IDs is to |
|---|
| 37 | // enable unique identification of software components at all |
|---|
| 38 | // classes, types, and layers. In addition, standard status |
|---|
| 39 | // values are also defined to make determination of typical error |
|---|
| 40 | // cases much easier. The component identifier bitfields are |
|---|
| 41 | // four bit aligned to ease in reading the hexadecimal value. |
|---|
| 42 | // |
|---|
| 43 | // The process to create a new component ID follows the sequence |
|---|
| 44 | // of steps: |
|---|
| 45 | // |
|---|
| 46 | // 1) Select a component class: The class is the most general |
|---|
| 47 | // component classification. If none of the classifications |
|---|
| 48 | // match and the component can still be uniquely identified |
|---|
| 49 | // by its type/tag/layer combination, use CID_CLASS_NONE. |
|---|
| 50 | // For customers, the CID_CLASS_CUSTOMER value is defined. |
|---|
| 51 | // If that value is used in the CID_CLASS_BITMASK field, |
|---|
| 52 | // all other bits in the component ID are user defined. |
|---|
| 53 | // |
|---|
| 54 | // 2) Select a component type: The component type is used to |
|---|
| 55 | // classify how a component processes data. Components may |
|---|
| 56 | // have only output pins (source), only input pins (sink), |
|---|
| 57 | // input and output pins with or without data modifications |
|---|
| 58 | // (filter), control of data flow without input/output pins |
|---|
| 59 | // (control), data storage/access/retrieval (database), |
|---|
| 60 | // or component group (subsystem). If the component does |
|---|
| 61 | // not fit into any type classification, use CID_TYPE_NONE. |
|---|
| 62 | // |
|---|
| 63 | // 3) Create a component ID: The component ID is used to |
|---|
| 64 | // classify the specific type and/or attributes of a software |
|---|
| 65 | // component API interface. The currently defined list should |
|---|
| 66 | // be scanned for a component match. If no component match |
|---|
| 67 | // can be found, define a new component tag that descibes the |
|---|
| 68 | // component clearly. Component name abbreviations/acronyms |
|---|
| 69 | // are generally used; build a name starting from left to |
|---|
| 70 | // right with the most general ('A' or 'AUD' for audio, 'V' or |
|---|
| 71 | // 'VID' for video, etc.) to the most specific ('AC3' or 'MP3' |
|---|
| 72 | // as specific audio filter types) terms for the component. |
|---|
| 73 | // |
|---|
| 74 | // NOTE: Component layer (CID_LAYER_XXX) and status (CID_ERR_XXX) |
|---|
| 75 | // values are defined within the software component APIs |
|---|
| 76 | // header files, not in this file. |
|---|
| 77 | // |
|---|
| 78 | // DOCUMENT REF: DVP Software Coding Guidelines specification |
|---|
| 79 | // DVP/MoReUse Naming Conventions specification |
|---|
| 80 | // |
|---|
| 81 | // NOTES: The 32 bit component identifier bitfields are defined in the |
|---|
| 82 | // diagram below: |
|---|
| 83 | // |
|---|
| 84 | // +----------------------------------------- 4 bit Component Class |
|---|
| 85 | // / +----------------------------------- 4 bit Component Type |
|---|
| 86 | // / / +-------------------------- 8 bit Component Tag |
|---|
| 87 | // / / / +----------------- 4 bit Component Layer |
|---|
| 88 | // / / / / +----- 12 bit Component Status |
|---|
| 89 | // / / / / / |
|---|
| 90 | // |31 28|27 24|23 16|15 12|11 0| bit |
|---|
| 91 | // +------+------+------------+------+------------------+ |
|---|
| 92 | // |Class | Type |ComponentTag|Layer | Error/Progress | |
|---|
| 93 | // +------+------+------------+------+------------------+ |
|---|
| 94 | // |
|---|
| 95 | //----------------------------------------------------------------------------- |
|---|
| 96 | */ |
|---|
| 97 | #ifndef TM_COMP_ID_H |
|---|
| 98 | #define TM_COMP_ID_H |
|---|
| 99 | |
|---|
| 100 | #ifdef __cplusplus |
|---|
| 101 | extern "C" |
|---|
| 102 | { |
|---|
| 103 | #endif |
|---|
| 104 | |
|---|
| 105 | /*----------------------------------------------------------------------------- |
|---|
| 106 | // Types and defines: |
|---|
| 107 | //----------------------------------------------------------------------------- |
|---|
| 108 | */ |
|---|
| 109 | |
|---|
| 110 | /*----------------------------------------------------------------------------- |
|---|
| 111 | // TM_OK is the 32 bit global status value used by all DVP software components |
|---|
| 112 | // to indicate successful function/operation status. If a non-zero value is |
|---|
| 113 | // returned as status, it should use the component ID formats defined. |
|---|
| 114 | */ |
|---|
| 115 | #define TM_OK 0 /* Global success return status */ |
|---|
| 116 | |
|---|
| 117 | /* |
|---|
| 118 | // NOTE: Component ID types are defined as unsigned 32 bit integers (UInt32). |
|---|
| 119 | // |
|---|
| 120 | //----------------------------------------------------------------------------- |
|---|
| 121 | // Component Class definitions (bits 31:28, 4 bits) |
|---|
| 122 | // NOTE: A class of 0x0 must not be defined to ensure that the overall 32 bit |
|---|
| 123 | // component ID/status combination is always non-0 (no TM_OK conflict). |
|---|
| 124 | */ |
|---|
| 125 | #define CID_CLASS_BITSHIFT 28 /* Component class bit shift */ |
|---|
| 126 | #define CID_CLASS_BITMASK (0xF << CID_CLASS_BITSHIFT) /* Class AND bitmsk */ |
|---|
| 127 | #define CID_GET_CLASS(compId) ((compId & CID_CLASS_BITMASK) >> CID_CLASS_BITSHIFT) |
|---|
| 128 | #define CID_CLASS_NONE (0x1 << CID_CLASS_BITSHIFT) /* No class information */ |
|---|
| 129 | |
|---|
| 130 | /*----------------------------------------------------------------------------- |
|---|
| 131 | // Component Type definitions (bits 27:24, 4 bits) |
|---|
| 132 | */ |
|---|
| 133 | #define CID_TYPE_BITSHIFT 24 /* Component type bit shift */ |
|---|
| 134 | #define CID_TYPE_BITMASK (0xF << CID_TYPE_BITSHIFT) /* Type AND bitmask */ |
|---|
| 135 | #define CID_GET_TYPE(compId) ((compId & CID_TYPE_BITMASK) >> CID_TYPE_BITSHIFT) |
|---|
| 136 | #define CID_TYPE_NONE (0x0 << CID_TYPE_BITSHIFT) /* No data connections */ |
|---|
| 137 | |
|---|
| 138 | /*----------------------------------------------------------------------------- |
|---|
| 139 | // Component Tag definitions (bits 23:16, 8 bits) |
|---|
| 140 | // NOTE: Component tags are defined in groups, dependent on the class and type. |
|---|
| 141 | */ |
|---|
| 142 | #define CID_TAG_BITSHIFT 16 /* Component tag bit shift */ |
|---|
| 143 | #define CID_TAG_BITMASK (0xFF << CID_TAG_BITSHIFT) /* Comp tag AND bitmask */ |
|---|
| 144 | #define TAG(number) ((number) << CID_TAG_BITSHIFT) /* Create tag from num */ |
|---|
| 145 | |
|---|
| 146 | /*----------------------------------------------------------------------------- |
|---|
| 147 | // Component Layer definitions (bits 15:12, 4 bits) |
|---|
| 148 | */ |
|---|
| 149 | #define CID_LAYER_BITSHIFT 12 /* Component layer bit shift */ |
|---|
| 150 | #define CID_LAYER_BITMASK (0xF << CID_LAYER_BITSHIFT) /* Layer AND bitmask */ |
|---|
| 151 | #define CID_GET_LAYER(compId) ((compId & CID_LAYER_BITMASK) >> CID_LAYER_BITSHIFT) |
|---|
| 152 | |
|---|
| 153 | #define CID_LAYER_NONE (0x0 << CID_LAYER_BITSHIFT) /* No layer info */ |
|---|
| 154 | #define CID_LAYER_BTM (0x1 << CID_LAYER_BITSHIFT) /* Boot manager layer */ |
|---|
| 155 | #define CID_LAYER_HWAPI (0x2 << CID_LAYER_BITSHIFT) /* Hardware API layer */ |
|---|
| 156 | #define CID_LAYER_BSL (0x3 << CID_LAYER_BITSHIFT) /* Board Supp. Lib lyr */ |
|---|
| 157 | #define CID_LAYER_DEVLIB (0x4 << CID_LAYER_BITSHIFT) /* Device Library lyr */ |
|---|
| 158 | #define CID_LAYER_TMAL (0x5 << CID_LAYER_BITSHIFT) /* Application layer */ |
|---|
| 159 | #define CID_LAYER_TMOL (0x6 << CID_LAYER_BITSHIFT) /* OSDependent layer */ |
|---|
| 160 | #define CID_LAYER_CUSTOMER (0xF << CID_LAYER_BITSHIFT) /* Customer Defined Layer */ |
|---|
| 161 | /* Up to 0xF = Philips reserved layer IDs */ |
|---|
| 162 | |
|---|
| 163 | /*----------------------------------------------------------------------------- |
|---|
| 164 | // Component Identifier definitions (bits 31:12, 20 bits) |
|---|
| 165 | // NOTE: These DVP platform component identifiers are designed to be unique |
|---|
| 166 | // within the system. The component identifier encompasses the class |
|---|
| 167 | // (CID_CLASS_XXX), type (CID_TYPE_XXX), tag, and layer (CID_LAYER_XXX) |
|---|
| 168 | // fields to form the unique component identifier. This allows any |
|---|
| 169 | // error/progress status value to be identified as to its original |
|---|
| 170 | // source, whether or not the source component's header file is present. |
|---|
| 171 | // The standard error/progress status definitions should be used |
|---|
| 172 | // whenever possible to ease status interpretation. No layer |
|---|
| 173 | // information is defined at this point; it should be OR'd into the API |
|---|
| 174 | // status values defined in the API's header file. |
|---|
| 175 | */ |
|---|
| 176 | #if (CID_LAYER_NONE != 0) |
|---|
| 177 | #error ERROR: DVP component identifiers require the layer type 'NONE' = 0 ! |
|---|
| 178 | #endif |
|---|
| 179 | |
|---|
| 180 | /* |
|---|
| 181 | // Classless Types/Components (don't fit into other class categories) |
|---|
| 182 | */ |
|---|
| 183 | #define CTYP_NOCLASS_NOTYPE (CID_CLASS_NONE | CID_TYPE_NONE) |
|---|
| 184 | |
|---|
| 185 | #define CID_COMP_TIMER (TAG(0x0A) | CTYP_NOCLASS_NOTYPE) |
|---|
| 186 | #define CID_COMP_PARPORT (TAG(0x0E) | CTYP_NOCLASS_NOTYPE) |
|---|
| 187 | #define CID_COMP_TUNER (TAG(0x1E) | CTYP_NOCLASS_NOTYPE) |
|---|
| 188 | #define CID_COMP_DEMOD (TAG(0x1F) | CTYP_NOCLASS_NOTYPE) |
|---|
| 189 | |
|---|
| 190 | |
|---|
| 191 | /*----------------------------------------------------------------------------- |
|---|
| 192 | // Component Standard Error/Progress Status definitions (bits 11:0, 12 bits) |
|---|
| 193 | // NOTE: These status codes are OR'd with the component identifier to create |
|---|
| 194 | // component unique 32 bit status values. The component status values |
|---|
| 195 | // should be defined in the header files where the APIs are defined. |
|---|
| 196 | */ |
|---|
| 197 | #define CID_ERR_BITMASK 0xFFF /* Component error AND bitmask */ |
|---|
| 198 | #define CID_ERR_BITSHIFT 0 /* Component error bit shift */ |
|---|
| 199 | #define CID_GET_ERROR(compId) ((compId & CID_ERR_BITMASK) >> CID_ERR_BITSHIFT) |
|---|
| 200 | |
|---|
| 201 | #define TM_ERR_COMPATIBILITY 0x001 /* SW Interface compatibility */ |
|---|
| 202 | #define TM_ERR_MAJOR_VERSION 0x002 /* SW Major Version error */ |
|---|
| 203 | #define TM_ERR_COMP_VERSION 0x003 /* SW component version error */ |
|---|
| 204 | #define TM_ERR_BAD_MODULE_ID 0x004 /* SW - HW module ID error */ |
|---|
| 205 | #define TM_ERR_BAD_UNIT_NUMBER 0x005 /* Invalid device unit number */ |
|---|
| 206 | #define TM_ERR_BAD_INSTANCE 0x006 /* Bad input instance value */ |
|---|
| 207 | #define TM_ERR_BAD_HANDLE 0x007 /* Bad input handle */ |
|---|
| 208 | #define TM_ERR_BAD_INDEX 0x008 /* Bad input index */ |
|---|
| 209 | #define TM_ERR_BAD_PARAMETER 0x009 /* Invalid input parameter */ |
|---|
| 210 | #define TM_ERR_NO_INSTANCES 0x00A /* No instances available */ |
|---|
| 211 | #define TM_ERR_NO_COMPONENT 0x00B /* Component is not present */ |
|---|
| 212 | #define TM_ERR_NO_RESOURCES 0x00C /* Resource is not available */ |
|---|
| 213 | #define TM_ERR_INSTANCE_IN_USE 0x00D /* Instance is already in use */ |
|---|
| 214 | #define TM_ERR_RESOURCE_OWNED 0x00E /* Resource is already in use */ |
|---|
| 215 | #define TM_ERR_RESOURCE_NOT_OWNED 0x00F /* Caller does not own resource */ |
|---|
| 216 | #define TM_ERR_INCONSISTENT_PARAMS 0x010 /* Inconsistent input params */ |
|---|
| 217 | #define TM_ERR_NOT_INITIALIZED 0x011 /* Component is not initialized */ |
|---|
| 218 | #define TM_ERR_NOT_ENABLED 0x012 /* Component is not enabled */ |
|---|
| 219 | #define TM_ERR_NOT_SUPPORTED 0x013 /* Function is not supported */ |
|---|
| 220 | #define TM_ERR_INIT_FAILED 0x014 /* Initialization failed */ |
|---|
| 221 | #define TM_ERR_BUSY 0x015 /* Component is busy */ |
|---|
| 222 | #define TM_ERR_NOT_BUSY 0x016 /* Component is not busy */ |
|---|
| 223 | #define TM_ERR_READ 0x017 /* Read error */ |
|---|
| 224 | #define TM_ERR_WRITE 0x018 /* Write error */ |
|---|
| 225 | #define TM_ERR_ERASE 0x019 /* Erase error */ |
|---|
| 226 | #define TM_ERR_LOCK 0x01A /* Lock error */ |
|---|
| 227 | #define TM_ERR_UNLOCK 0x01B /* Unlock error */ |
|---|
| 228 | #define TM_ERR_OUT_OF_MEMORY 0x01C /* Memory allocation failed */ |
|---|
| 229 | #define TM_ERR_BAD_VIRT_ADDRESS 0x01D /* Bad virtual address */ |
|---|
| 230 | #define TM_ERR_BAD_PHYS_ADDRESS 0x01E /* Bad physical address */ |
|---|
| 231 | #define TM_ERR_TIMEOUT 0x01F /* Timeout error */ |
|---|
| 232 | #define TM_ERR_OVERFLOW 0x020 /* Data overflow/overrun error */ |
|---|
| 233 | #define TM_ERR_FULL 0x021 /* Queue (etc.) is full */ |
|---|
| 234 | #define TM_ERR_EMPTY 0x022 /* Queue (etc.) is empty */ |
|---|
| 235 | #define TM_ERR_NOT_STARTED 0x023 /* Component stream not started */ |
|---|
| 236 | #define TM_ERR_ALREADY_STARTED 0x024 /* Comp. stream already started */ |
|---|
| 237 | #define TM_ERR_NOT_STOPPED 0x025 /* Component stream not stopped */ |
|---|
| 238 | #define TM_ERR_ALREADY_STOPPED 0x026 /* Comp. stream already stopped */ |
|---|
| 239 | #define TM_ERR_ALREADY_SETUP 0x027 /* Component already setup */ |
|---|
| 240 | #define TM_ERR_NULL_PARAMETER 0x028 /* Null input parameter */ |
|---|
| 241 | #define TM_ERR_NULL_DATAINFUNC 0x029 /* Null data input function */ |
|---|
| 242 | #define TM_ERR_NULL_DATAOUTFUNC 0x02A /* Null data output function */ |
|---|
| 243 | #define TM_ERR_NULL_CONTROLFUNC 0x02B /* Null control function */ |
|---|
| 244 | #define TM_ERR_NULL_COMPLETIONFUNC 0x02C /* Null completion function */ |
|---|
| 245 | #define TM_ERR_NULL_PROGRESSFUNC 0x02D /* Null progress function */ |
|---|
| 246 | #define TM_ERR_NULL_ERRORFUNC 0x02E /* Null error handler function */ |
|---|
| 247 | #define TM_ERR_NULL_MEMALLOCFUNC 0x02F /* Null memory alloc function */ |
|---|
| 248 | #define TM_ERR_NULL_MEMFREEFUNC 0x030 /* Null memory free function */ |
|---|
| 249 | #define TM_ERR_NULL_CONFIGFUNC 0x031 /* Null configuration function */ |
|---|
| 250 | #define TM_ERR_NULL_PARENT 0x032 /* Null parent data */ |
|---|
| 251 | #define TM_ERR_NULL_IODESC 0x033 /* Null in/out descriptor */ |
|---|
| 252 | #define TM_ERR_NULL_CTRLDESC 0x034 /* Null control descriptor */ |
|---|
| 253 | #define TM_ERR_UNSUPPORTED_DATACLASS 0x035 /* Unsupported data class */ |
|---|
| 254 | #define TM_ERR_UNSUPPORTED_DATATYPE 0x036 /* Unsupported data type */ |
|---|
| 255 | #define TM_ERR_UNSUPPORTED_DATASUBTYPE 0x037 /* Unsupported data subtype */ |
|---|
| 256 | #define TM_ERR_FORMAT 0x038 /* Invalid/unsupported format */ |
|---|
| 257 | #define TM_ERR_INPUT_DESC_FLAGS 0x039 /* Bad input descriptor flags */ |
|---|
| 258 | #define TM_ERR_OUTPUT_DESC_FLAGS 0x03A /* Bad output descriptor flags */ |
|---|
| 259 | #define TM_ERR_CAP_REQUIRED 0x03B /* Capabilities required ??? */ |
|---|
| 260 | #define TM_ERR_BAD_TMALFUNC_TABLE 0x03C /* Bad TMAL function table */ |
|---|
| 261 | #define TM_ERR_INVALID_CHANNEL_ID 0x03D /* Invalid channel identifier */ |
|---|
| 262 | #define TM_ERR_INVALID_COMMAND 0x03E /* Invalid command/request */ |
|---|
| 263 | #define TM_ERR_STREAM_MODE_CONFUSION 0x03F /* Stream mode config conflict */ |
|---|
| 264 | #define TM_ERR_UNDERRUN 0x040 /* Data underflow/underrun */ |
|---|
| 265 | #define TM_ERR_EMPTY_PACKET_RECVD 0x041 /* Empty data packet received */ |
|---|
| 266 | #define TM_ERR_OTHER_DATAINOUT_ERR 0x042 /* Other data input/output err */ |
|---|
| 267 | #define TM_ERR_STOP_REQUESTED 0x043 /* Stop in progress */ |
|---|
| 268 | #define TM_ERR_PIN_NOT_STARTED 0x044 /* Pin not started */ |
|---|
| 269 | #define TM_ERR_PIN_ALREADY_STARTED 0x045 /* Pin already started */ |
|---|
| 270 | #define TM_ERR_PIN_NOT_STOPPED 0x046 /* Pin not stopped */ |
|---|
| 271 | #define TM_ERR_PIN_ALREADY_STOPPED 0x047 /* Pin already stopped */ |
|---|
| 272 | #define TM_ERR_STOP_PIN_REQUESTED 0x048 /* Stop of a single pin is in progress (obsolescent) */ |
|---|
| 273 | #define TM_ERR_PAUSE_PIN_REQUESTED 0x048 /* Stop of a single pin is in progress */ |
|---|
| 274 | #define TM_ERR_ASSERTION 0x049 /* Assertion failure */ |
|---|
| 275 | #define TM_ERR_HIGHWAY_BANDWIDTH 0x04A /* Highway bandwidth bus error */ |
|---|
| 276 | #define TM_ERR_HW_RESET_FAILED 0x04B /* Hardware reset failed */ |
|---|
| 277 | #define TM_ERR_PIN_PAUSED 0x04C /* Pin Paused */ |
|---|
| 278 | |
|---|
| 279 | /* Add new standard error/progress status codes here */ |
|---|
| 280 | |
|---|
| 281 | #define TM_ERR_COMP_UNIQUE_START 0x800 /* 0x800-0xDFF: Component unique */ |
|---|
| 282 | |
|---|
| 283 | #define TM_ERR_CUSTOMER_START 0xC00 |
|---|
| 284 | |
|---|
| 285 | /* DVP Standard assert error code start offset |
|---|
| 286 | // NOTE: This define should be added to the component's base error value and |
|---|
| 287 | // standard error code(s) to define assert error codes. For example: |
|---|
| 288 | // #define TMBSL_ERR_MGR_ASSERT_BAD_PARAM |
|---|
| 289 | // (TMBSL_ERR_MGR_BASE + TM_ERR_ASSERT_START + TM_ERR_BAD_PARAMETER) |
|---|
| 290 | */ |
|---|
| 291 | #define TM_ERR_ASSERT_START 0xE00 /* 0xE00-0xEFF: Assert failures */ |
|---|
| 292 | #define TM_ERR_ASSERT_LAST 0xEFF /* Last assert error range value */ |
|---|
| 293 | #define CID_IS_ASSERT_ERROR(compId) \ |
|---|
| 294 | ((CID_GET_ERROR(compId) >= TM_ERR_ASSERT_START) && \ |
|---|
| 295 | (CID_GET_ERROR(compId) <= TM_ERR_ASSERT_LAST)) |
|---|
| 296 | |
|---|
| 297 | /* DVP Standard fatal error code start offset |
|---|
| 298 | // NOTE: This define should be added to the component's base error value and |
|---|
| 299 | // standard error code(s) to define fatal error codes. For example: |
|---|
| 300 | // #define TMML_ERR_FATAL_OUT_OF_MEMORY |
|---|
| 301 | // (TMML_ERR_BASE + TM_ERR_FATAL_START + TM_ERR_OUT_OF_MEMORY) |
|---|
| 302 | */ |
|---|
| 303 | #define TM_ERR_FATAL_START 0xF00 /* 0xF00-0xFFF: Fatal failures */ |
|---|
| 304 | #define TM_ERR_FATAL_LAST 0xFFF /* Last fatal error range value */ |
|---|
| 305 | #define CID_IS_FATAL_ERROR(compId) \ |
|---|
| 306 | ((CID_GET_ERROR(compId) >= TM_ERR_FATAL_START) && \ |
|---|
| 307 | (CID_GET_ERROR(compId) <= TM_ERR_FATAL_LAST)) |
|---|
| 308 | |
|---|
| 309 | |
|---|
| 310 | #ifdef __cplusplus |
|---|
| 311 | } |
|---|
| 312 | #endif |
|---|
| 313 | |
|---|
| 314 | #endif /* TM_COMP_ID_H */ |
|---|
| 315 | |
|---|