1 /* 2 * Copyright (C) 2017-2019 Alibaba Group Holding Limited 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 * 2020-08-20 zx.chen Header File for Common Driver 9 */ 10 11 #ifndef _DRV_COMMON_H_ 12 #define _DRV_COMMON_H_ 13 14 #include <stdint.h> 15 #include <drv_errno.h> 16 17 #ifdef __cplusplus 18 extern "C" { 19 #endif 20 21 /// \details driver handle 22 typedef void *drv_handle_t; 23 24 #ifndef CONFIG_PARAM_NOT_CHECK 25 #define HANDLE_PARAM_CHK(para, err) \ 26 do { \ 27 if ((int32_t)para == (int32_t)NULL) { \ 28 return (err); \ 29 } \ 30 } while (0) 31 32 #define HANDLE_PARAM_CHK_NORETVAL(para, err) \ 33 do { \ 34 if ((int32_t)para == (int32_t)NULL) { \ 35 return; \ 36 } \ 37 } while (0) 38 #else 39 #define HANDLE_PARAM_CHK(para, err) 40 #define HANDLE_PARAM_CHK_NORETVAL(para, err) 41 #endif 42 43 /** 44 \brief General power states 45 */ 46 typedef enum 47 { 48 DRV_POWER_OFF, ///< Power off: no operation possible 49 DRV_POWER_LOW, ///< Low Power mode: retain state, detect and signal wake-up events 50 DRV_POWER_FULL, ///< Power on: full operation at maximum performance 51 DRV_POWER_SUSPEND, ///< Power suspend: power saving operation 52 } csi_power_stat_e; 53 54 #ifdef __cplusplus 55 } 56 #endif 57 58 #endif /* _DRV_COMMON_H */ 59 60