1 /* 2 * Copyright (c) 2022 HiSilicon (Shanghai) Technologies CO., LIMITED. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef _HI_COMM_IVE_H_ 17 #define _HI_COMM_IVE_H_ 18 19 #include "hi_type.h" 20 #include "hi_errno.h" 21 22 #ifdef __cplusplus 23 #if __cplusplus 24 extern "C" { 25 #endif 26 #endif 27 28 /* 29 * The fixed-point data type, will be used to 30 * represent float data in hardware calculations. 31 */ 32 /* --u8bit---------------------------------------- */ 33 typedef unsigned char HI_U0Q8; 34 typedef unsigned char HI_U1Q7; 35 typedef unsigned char HI_U5Q3; 36 typedef unsigned char HI_U3Q5; 37 38 /* --u16bit--------------------------------------- */ 39 typedef unsigned short HI_U0Q16; 40 typedef unsigned short HI_U4Q12; 41 typedef unsigned short HI_U6Q10; 42 typedef unsigned short HI_U8Q8; 43 typedef unsigned short HI_U9Q7; 44 typedef unsigned short HI_U12Q4; 45 typedef unsigned short HI_U14Q2; 46 typedef unsigned short HI_U5Q11; 47 typedef unsigned short HI_U1Q15; 48 typedef unsigned short HI_U2Q14; 49 typedef HI_U6Q10 HI_UFP16; 50 /* --s16bit--------------------------------------- */ 51 typedef short HI_S9Q7; 52 typedef short HI_S14Q2; 53 typedef short HI_S1Q15; 54 55 /* --u32bit--------------------------------------- */ 56 typedef unsigned int HI_U22Q10; 57 typedef unsigned int HI_U25Q7; 58 typedef unsigned int HI_U21Q11; 59 typedef unsigned int HI_U14Q18; 60 typedef unsigned int HI_U8Q24; 61 typedef unsigned int HI_U4Q28; 62 63 /* --s32bit--------------------------------------- */ 64 typedef int HI_S25Q7; 65 typedef int HI_S16Q16; 66 typedef int HI_S14Q18; 67 typedef int HI_S20Q12; 68 69 typedef int HI_S24Q8; 70 71 /* 72 * The fixed-point data type combine with flag_bits. 73 */ 74 /* 8bits unsigned integer,4bits decimal fraction,4bits flag_bits */ 75 typedef unsigned short HI_U8Q4F4; 76 77 /* 78 * The fixed-point data type, will be used to 79 * represent float data in hardware calculations. linux code style. 80 */ 81 /* --u8bit---------------------------------------- */ 82 typedef HI_U0Q8 hi_u0q8; 83 typedef HI_U1Q7 hi_u1q7; 84 typedef HI_U5Q3 hi_u5q3; 85 typedef HI_U3Q5 hi_u3q5; 86 87 /* --u16bit--------------------------------------- */ 88 typedef HI_U0Q16 hi_u0q16; 89 typedef HI_U4Q12 hi_u4q12; 90 typedef HI_U6Q10 hi_u6q10; 91 typedef HI_U8Q8 hi_u8q8; 92 typedef HI_U9Q7 hi_u9q7; 93 typedef HI_U12Q4 hi_u12q4; 94 typedef HI_U14Q2 hi_u14q2; 95 typedef HI_U5Q11 hi_u5q11; 96 typedef HI_U1Q15 hi_u1q15; 97 typedef HI_U2Q14 hi_u2q14; 98 typedef HI_UFP16 hi_ufp16; 99 /* 8bits unsigned integer,4bits decimal fraction,4bits flag_bits */ 100 typedef HI_U8Q4F4 hi_u8q4f4; 101 102 /* --s16bit--------------------------------------- */ 103 typedef HI_S9Q7 hi_s9q7; 104 typedef HI_S14Q2 hi_s14q2; 105 typedef HI_S1Q15 hi_s1q15; 106 107 /* --u32bit--------------------------------------- */ 108 typedef HI_U22Q10 hi_u22q10; 109 typedef HI_U25Q7 hi_u25q7; 110 typedef HI_U21Q11 hi_u21q11; 111 typedef HI_U14Q18 hi_u14q18; 112 typedef HI_U8Q24 hi_u8q24; 113 typedef HI_U4Q28 hi_u4q28; 114 115 /* --s32bit--------------------------------------- */ 116 typedef HI_S25Q7 hi_s25q7; 117 typedef HI_S16Q16 hi_s16q16; 118 typedef HI_S14Q18 hi_s14q18; 119 typedef HI_S20Q12 hi_s20q12; 120 typedef HI_S24Q8 hi_s24q8; 121 122 123 /* Type of the IVE_IMAGE_S data */ 124 typedef enum hiIVE_IMAGE_TYPE_E { 125 IVE_IMAGE_TYPE_U8C1 = 0x0, 126 IVE_IMAGE_TYPE_S8C1 = 0x1, 127 128 IVE_IMAGE_TYPE_YUV420SP = 0x2, /* YUV420 SemiPlanar */ 129 IVE_IMAGE_TYPE_YUV422SP = 0x3, /* YUV422 SemiPlanar */ 130 IVE_IMAGE_TYPE_YUV420P = 0x4, /* YUV420 Planar */ 131 IVE_IMAGE_TYPE_YUV422P = 0x5, /* YUV422 planar */ 132 133 IVE_IMAGE_TYPE_S8C2_PACKAGE = 0x6, 134 IVE_IMAGE_TYPE_S8C2_PLANAR = 0x7, 135 136 IVE_IMAGE_TYPE_S16C1 = 0x8, 137 IVE_IMAGE_TYPE_U16C1 = 0x9, 138 139 IVE_IMAGE_TYPE_U8C3_PACKAGE = 0xa, 140 IVE_IMAGE_TYPE_U8C3_PLANAR = 0xb, 141 142 IVE_IMAGE_TYPE_S32C1 = 0xc, 143 IVE_IMAGE_TYPE_U32C1 = 0xd, 144 145 IVE_IMAGE_TYPE_S64C1 = 0xe, 146 IVE_IMAGE_TYPE_U64C1 = 0xf, 147 148 IVE_IMAGE_TYPE_BUTT 149 } IVE_IMAGE_TYPE_E; 150 151 /* Definition of the IVE_IMAGE_S. */ 152 typedef struct hiIVE_IMAGE_S { 153 HI_U64 au64PhyAddr[3]; /* RW;The physical address of the image */ 154 HI_U64 au64VirAddr[3]; /* RW;The virtual address of the image */ 155 HI_U32 au32Stride[3]; /* RW;The stride of the image */ 156 HI_U32 u32Width; /* RW;The width of the image */ 157 HI_U32 u32Height; /* RW;The height of the image */ 158 IVE_IMAGE_TYPE_E enType; /* RW;The type of the image */ 159 } IVE_IMAGE_S; 160 161 typedef IVE_IMAGE_S IVE_SRC_IMAGE_S; 162 typedef IVE_IMAGE_S IVE_DST_IMAGE_S; 163 164 /* 165 * Definition of the IVE_MEM_INFO_S.This struct special purpose for input or ouput, 166 * such as Hist, CCL, ShiTomasi. 167 */ 168 typedef struct hiIVE_MEM_INFO_S { 169 HI_U64 u64PhyAddr; /* RW;The physical address of the memory */ 170 HI_U64 u64VirAddr; /* RW;The virtual address of the memory */ 171 HI_U32 u32Size; /* RW;The size of memory */ 172 } IVE_MEM_INFO_S; 173 typedef IVE_MEM_INFO_S IVE_SRC_MEM_INFO_S; 174 typedef IVE_MEM_INFO_S IVE_DST_MEM_INFO_S; 175 176 /* Data struct */ 177 typedef struct hiIVE_DATA_S { 178 HI_U64 u64PhyAddr; /* RW;The physical address of the data */ 179 HI_U64 u64VirAddr; /* RW;The virtaul address of the data */ 180 181 HI_U32 u32Stride; /* RW;The stride of 2D data by byte */ 182 HI_U32 u32Width; /* RW;The width of 2D data by byte */ 183 HI_U32 u32Height; /* RW;The height of 2D data by byte */ 184 185 HI_U32 u32Reserved; 186 } IVE_DATA_S; 187 typedef IVE_DATA_S IVE_SRC_DATA_S; 188 typedef IVE_DATA_S IVE_DST_DATA_S; 189 190 /* Definition of the union of IVE_8BIT_U. */ 191 typedef union hiIVE_8BIT_U { 192 HI_S8 s8Val; 193 HI_U8 u8Val; 194 } IVE_8BIT_U; 195 196 /* Definition of u16 point */ 197 typedef struct hiIVE_POINT_U16_S { 198 HI_U16 u16X; /* RW;The X coordinate of the point */ 199 HI_U16 u16Y; /* RW;The Y coordinate of the point */ 200 } IVE_POINT_U16_S; 201 202 /* 203 * Definition of s16 point 204 */ 205 typedef struct hiIVE_POINT_S16_S { 206 HI_U16 s16X; /* RW;The X coordinate of the point */ 207 HI_U16 s16Y; /* RW;The Y coordinate of the point */ 208 } IVE_POINT_S16_S; 209 210 /* 211 * Float point represented by Fixed-point SQ25.7 212 */ 213 typedef struct hiIVE_POINT_S25Q7_S { 214 HI_S25Q7 s25q7X; /* RW;The X coordinate of the point */ 215 HI_S25Q7 s25q7Y; /* RW;The Y coordinate of the point */ 216 } IVE_POINT_S25Q7_S; 217 218 /* 219 * Point u14q2 220 */ 221 typedef struct hiIVE_POINT_U14Q2_S { 222 HI_U14Q2 u14q2X; 223 HI_U14Q2 u14q2Y; 224 } IVE_POINT_U14Q2_S; 225 226 /* Definition of rectangle */ 227 typedef struct hiIVE_RECT_U16_S { 228 HI_U16 u16X; /* RW;The location of X axis of the rectangle */ 229 HI_U16 u16Y; /* RW;The location of Y axis of the rectangle */ 230 HI_U16 u16Width; /* RW;The width of the rectangle */ 231 HI_U16 u16Height; /* RW;The height of the rectangle */ 232 } IVE_RECT_U16_S; 233 234 typedef struct hiIVE_RECT_U32_S { 235 HI_U32 u32X; /* RW;The location of X axis of the rectangle */ 236 HI_U32 u32Y; /* RW;The location of Y axis of the rectangle */ 237 HI_U32 u32Width; /* RW;The width of the rectangle */ 238 HI_U32 u32Height; /* RW;The height of the rectangle */ 239 } IVE_RECT_U32_S; 240 241 typedef struct hiIVE_RECT_S24Q8_S { 242 HI_S24Q8 s24q8X; 243 HI_S24Q8 s24q8Y; 244 HI_U32 u32Width; 245 HI_U32 u32Height; 246 } IVE_RECT_S24Q8_S; 247 248 typedef struct hiIVE_LOOK_UP_TABLE_S { 249 IVE_MEM_INFO_S stTable; 250 HI_U16 u16ElemNum; /* RW;LUT's elements number */ 251 252 HI_U8 u8TabInPreci; 253 HI_U8 u8TabOutNorm; 254 255 HI_S32 s32TabInLower; /* RW;LUT's original input lower limit */ 256 HI_S32 s32TabInUpper; /* RW;LUT's original input upper limit */ 257 } IVE_LOOK_UP_TABLE_S; 258 259 /* Blob type */ 260 typedef enum hiIVE_BLOB_TYPE_E { 261 IVE_BLOB_TYPE_S32 = 0x0, 262 263 IVE_BLOB_TYPE_U8 = 0x1, 264 265 /* When blob type is YVU420SP, channel = 3 */ 266 IVE_BLOB_TYPE_YVU420SP = 0x2, 267 /* When blob type is YVU422SP, channel = 3 */ 268 IVE_BLOB_TYPE_YVU422SP = 0x3, 269 270 IVE_BLOB_TYPE_VEC_S32 = 0x4, 271 272 IVE_BLOB_TYPE_SEQ_S32 = 0x5, 273 274 IVE_BLOB_TYPE_U16 = 0x6, 275 276 IVE_BLOB_TYPE_S8 = 0x7, 277 278 IVE_BLOB_TYPE_F32 = 0x8, 279 280 IVE_BLOB_TYPE_BUTT 281 } IVE_BLOB_TYPE_E; 282 283 /* 284 * Blob struct 285 * In Caffe, the blob contain shape info as the following order: 286 * Image\FeatureMap: N C H W 287 * FC(normal vector): N C 288 * RNN\LSTM(Recurrent) vector: T N D 289 * 290 * The relationship of the following blob struct with Caffe blob is as follows: 291 * Image\FeatureMap: Num Chn Height With 292 * FC(VEC_S32): Num Width 293 * RNN\LSTM(SEQ_S32) vector: Step Num Dim 294 * The stride, which measuring unit is byte, is always algined by the width or 295 * dim direction. 296 */ 297 typedef struct hiIVE_BLOB_S { 298 IVE_BLOB_TYPE_E enType; /* Blob type */ 299 HI_U32 u32Stride; /* Stride, a line bytes num */ 300 301 HI_U64 u64VirAddr; /* virtual addr */ 302 HI_U64 u64PhyAddr; /* physical addr */ 303 304 HI_U32 u32Num; /* N: frame num or sequence num, correspond to caffe blob's n */ 305 union { 306 struct { 307 HI_U32 u32Width; /* W: frame width, correspond to caffe blob's w */ 308 HI_U32 u32Height; /* H: frame height, correspond to caffe blob's h */ 309 HI_U32 u32Chn; /* C: frame channel, correspond to caffe blob's c */ 310 } stWhc; 311 struct { 312 HI_U32 u32Dim; /* D: vecotr dimension */ 313 HI_U64 u64VirAddrStep; /* T: virtual adress of time steps array in each sequence */ 314 } stSeq; 315 } unShape; 316 } IVE_BLOB_S; 317 318 typedef IVE_BLOB_S IVE_SRC_BLOB_S; 319 typedef IVE_BLOB_S IVE_DST_BLOB_S; 320 321 typedef enum hiEN_IVE_ERR_CODE_E { 322 ERR_IVE_SYS_TIMEOUT = 0x40, /* IVE process timeout */ 323 ERR_IVE_QUERY_TIMEOUT = 0x41, /* IVE query timeout */ 324 ERR_IVE_OPEN_FILE = 0x42, /* IVE open file error */ 325 ERR_IVE_READ_FILE = 0x43, /* IVE read file error */ 326 ERR_IVE_WRITE_FILE = 0x44, /* IVE write file error */ 327 ERR_IVE_BUS_ERR = 0x45, 328 329 ERR_IVE_BUTT 330 } EN_IVE_ERR_CODE_E; 331 332 typedef enum hiEN_FD_ERR_CODE_E { 333 ERR_FD_SYS_TIMEOUT = 0x40, /* FD process timeout */ 334 ERR_FD_CFG = 0x41, /* FD configuration error */ 335 ERR_FD_FACE_NUM_OVER = 0x42, /* FD candidate face number over */ 336 ERR_FD_OPEN_FILE = 0x43, /* FD open file error */ 337 ERR_FD_READ_FILE = 0x44, /* FD read file error */ 338 ERR_FD_WRITE_FILE = 0x45, /* FD write file error */ 339 340 ERR_FD_BUTT 341 } EN_FD_ERR_CODE_E; 342 343 /************************************************IVE error code ***********************************/ 344 /* Invalid device ID */ 345 #define HI_ERR_IVE_INVALID_DEVID HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, EN_ERR_INVALID_DEVID) 346 /* Invalid channel ID */ 347 #define HI_ERR_IVE_INVALID_CHNID HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, EN_ERR_INVALID_CHNID) 348 /* At least one parameter is illegal. For example, an illegal enumeration value exists. */ 349 #define HI_ERR_IVE_ILLEGAL_PARAM HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, EN_ERR_ILLEGAL_PARAM) 350 /* The channel exists. */ 351 #define HI_ERR_IVE_EXIST HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, EN_ERR_EXIST) 352 /* The UN exists. */ 353 #define HI_ERR_IVE_UNEXIST HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, EN_ERR_UNEXIST) 354 /* A null point is used. */ 355 #define HI_ERR_IVE_NULL_PTR HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, EN_ERR_NULL_PTR) 356 /* Try to enable or initialize the system, device, or channel before configuring attributes. */ 357 #define HI_ERR_IVE_NOT_CONFIG HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, EN_ERR_NOT_CONFIG) 358 /* The operation is not supported currently. */ 359 #define HI_ERR_IVE_NOT_SURPPORT HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, EN_ERR_NOT_SUPPORT) 360 /* The operation, changing static attributes for example, is not permitted. */ 361 #define HI_ERR_IVE_NOT_PERM HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, EN_ERR_NOT_PERM) 362 /* A failure caused by the malloc memory occurs. */ 363 #define HI_ERR_IVE_NOMEM HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, EN_ERR_NOMEM) 364 /* A failure caused by the malloc buffer occurs. */ 365 #define HI_ERR_IVE_NOBUF HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, EN_ERR_NOBUF) 366 /* The buffer is empty. */ 367 #define HI_ERR_IVE_BUF_EMPTY HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, EN_ERR_BUF_EMPTY) 368 /* No buffer is provided for storing new data. */ 369 #define HI_ERR_IVE_BUF_FULL HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, EN_ERR_BUF_FULL) 370 /* The system is not ready because it may be not initialized or loaded. 371 * The error code is returned when a device file fails to be opened. */ 372 #define HI_ERR_IVE_NOTREADY HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, EN_ERR_SYS_NOTREADY) 373 /* The source address or target address is incorrect during the operations such as calling 374 copy_from_user or copy_to_user. */ 375 #define HI_ERR_IVE_BADADDR HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, EN_ERR_BADADDR) 376 /* The resource is busy during the operations such as destroying a VENC channel 377 without deregistering it. */ 378 #define HI_ERR_IVE_BUSY HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, EN_ERR_BUSY) 379 /* IVE process timeout: 0xA01D8040 */ 380 #define HI_ERR_IVE_SYS_TIMEOUT HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, ERR_IVE_SYS_TIMEOUT) 381 /* IVE query timeout: 0xA01D8041 */ 382 #define HI_ERR_IVE_QUERY_TIMEOUT HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, ERR_IVE_QUERY_TIMEOUT) 383 /* IVE open file error: 0xA01D8042 */ 384 #define HI_ERR_IVE_OPEN_FILE HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, ERR_IVE_OPEN_FILE) 385 /* IVE read file error: 0xA01D8043 */ 386 #define HI_ERR_IVE_READ_FILE HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, ERR_IVE_READ_FILE) 387 /* IVE read file error: 0xA01D8044 */ 388 #define HI_ERR_IVE_WRITE_FILE HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, ERR_IVE_WRITE_FILE) 389 /* IVE Bus error: 0xA01D8045 */ 390 #define HI_ERR_IVE_BUS_ERR HI_DEF_ERR(HI_ID_IVE, EN_ERR_LEVEL_ERROR, ERR_IVE_BUS_ERR) 391 392 /************************************************FD error code ***********************************/ 393 /* Invalid device ID */ 394 #define HI_ERR_FD_INVALID_DEVID HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, EN_ERR_INVALID_DEVID) 395 /* Invalid channel ID */ 396 #define HI_ERR_FD_INVALID_CHNID HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, EN_ERR_INVALID_CHNID) 397 /* At least one parameter is illegal. For example, an illegal enumeration value exists. */ 398 #define HI_ERR_FD_ILLEGAL_PARAM HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, EN_ERR_ILLEGAL_PARAM) 399 /* The channel exists. */ 400 #define HI_ERR_FD_EXIST HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, EN_ERR_EXIST) 401 /* The UN exists. */ 402 #define HI_ERR_FD_UNEXIST HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, EN_ERR_UNEXIST) 403 /* A null point is used. */ 404 #define HI_ERR_FD_NULL_PTR HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, EN_ERR_NULL_PTR) 405 /* Try to enable or initialize the system, device, or channel before configuring attributes. */ 406 #define HI_ERR_FD_NOT_CONFIG HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, EN_ERR_NOT_CONFIG) 407 /* The operation is not supported currently. */ 408 #define HI_ERR_FD_NOT_SURPPORT HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, EN_ERR_NOT_SUPPORT) 409 /* The operation, changing static attributes for example, is not permitted. */ 410 #define HI_ERR_FD_NOT_PERM HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, EN_ERR_NOT_PERM) 411 /* A failure caused by the malloc memory occurs. */ 412 #define HI_ERR_FD_NOMEM HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, EN_ERR_NOMEM) 413 /* A failure caused by the malloc buffer occurs. */ 414 #define HI_ERR_FD_NOBUF HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, EN_ERR_NOBUF) 415 /* The buffer is empty. */ 416 #define HI_ERR_FD_BUF_EMPTY HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, EN_ERR_BUF_EMPTY) 417 /* No buffer is provided for storing new data. */ 418 #define HI_ERR_FD_BUF_FULL HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, EN_ERR_BUF_FULL) 419 /* The system is not ready because it may be not initialized or loaded. 420 * The error code is returned when a device file fails to be opened. */ 421 #define HI_ERR_FD_NOTREADY HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, EN_ERR_SYS_NOTREADY) 422 /* The source address or target address is incorrect during the operations such as calling 423 copy_from_user or copy_to_user. */ 424 #define HI_ERR_FD_BADADDR HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, EN_ERR_BADADDR) 425 /* The resource is busy during the operations such as destroying a VENC channel 426 without deregistering it. */ 427 #define HI_ERR_FD_BUSY HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, EN_ERR_BUSY) 428 /* FD process timeout: 0xA02F8040 */ 429 #define HI_ERR_FD_SYS_TIMEOUT HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, ERR_FD_SYS_TIMEOUT) 430 /* FD configuration error: 0xA02F8041 */ 431 #define HI_ERR_FD_CFG HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, ERR_FD_CFG) 432 /* FD candidate face number over: 0xA02F8042 */ 433 #define HI_ERR_FD_FACE_NUM_OVER HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, ERR_FD_FACE_NUM_OVER) 434 /* FD open file error: 0xA02F8043 */ 435 #define HI_ERR_FD_OPEN_FILE HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, ERR_FD_OPEN_FILE) 436 /* FD read file error: 0xA02F8044 */ 437 #define HI_ERR_FD_READ_FILE HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, ERR_FD_READ_FILE) 438 /* FD read file error: 0xA02F8045 */ 439 #define HI_ERR_FD_WRITE_FILE HI_DEF_ERR(HI_ID_FD, EN_ERR_LEVEL_ERROR, ERR_FD_WRITE_FILE) 440 441 /************************************************ODT error code ***********************************/ 442 /* ODT Invalid channel ID: 0xA0308002 */ 443 #define HI_ERR_ODT_INVALID_CHNID HI_DEF_ERR(HI_ID_ODT, EN_ERR_LEVEL_ERROR, EN_ERR_INVALID_CHNID) 444 /* ODT exist: 0xA0308004 */ 445 #define HI_ERR_ODT_EXIST HI_DEF_ERR(HI_ID_ODT, EN_ERR_LEVEL_ERROR, EN_ERR_EXIST) 446 /* ODT unexist: 0xA0308005 */ 447 #define HI_ERR_ODT_UNEXIST HI_DEF_ERR(HI_ID_ODT, EN_ERR_LEVEL_ERROR, EN_ERR_UNEXIST) 448 /* ODT The operation, changing static attributes for example, is not permitted: 0xA0308009 */ 449 #define HI_ERR_ODT_NOT_PERM HI_DEF_ERR(HI_ID_ODT, EN_ERR_LEVEL_ERROR, EN_ERR_NOT_PERM) 450 /* ODT the system is not ready because it may be not initialized: 0xA0308010 */ 451 #define HI_ERR_ODT_NOTREADY HI_DEF_ERR(HI_ID_ODT, EN_ERR_LEVEL_ERROR, EN_ERR_SYS_NOTREADY) 452 /* ODT busy: 0xA0308012 */ 453 #define HI_ERR_ODT_BUSY HI_DEF_ERR(HI_ID_ODT, EN_ERR_LEVEL_ERROR, EN_ERR_BUSY) 454 #ifdef __cplusplus 455 #if __cplusplus 456 } 457 #endif 458 #endif 459 #endif /* __HI_COMM_IVE_H__ */ 460