/* GPL-2.0 WITH Linux-syscall-note OR Apache 2.0 */ /* Copyright (c) 2021 Fuzhou Rockchip Electronics Co., Ltd */ #ifndef INCLUDE_RT_MPI_MPI_COMM_AIO_H_ #define INCLUDE_RT_MPI_MPI_COMM_AIO_H_ #include "rk_common.h" #include "rk_comm_mb.h" #ifdef __cplusplus #if __cplusplus extern "C" { #endif #endif /* __cplusplus */ #define MAX_AUDIO_FILE_PATH_LEN 256 #define MAX_AUDIO_FILE_NAME_LEN 256 #define MAX_ARRAY_NUM 16 #define MAX_SOUND_CARD_CHANNEL 32 /* * G726 bitrate and bitdepth map: * bitrate : 16000 24000 32000 40000 * bit depth: 2 3 4 5 */ typedef enum rkAUDIO_G726_BPS_E { G726_BPS_16K = 16000, // 2bit G726_BPS_24K = 24000, // 3bit G726_BPS_32K = 32000, // 4bit G726_BPS_40K = 40000, // 5bit G726_BPS_BUTT, } AUDIO_G726_BPS; typedef enum rkAUDIO_SAMPLE_RATE_E { AUDIO_SAMPLE_RATE_DISABLE = 0, AUDIO_SAMPLE_RATE_8000 = 8000, /* 8K samplerate*/ AUDIO_SAMPLE_RATE_12000 = 12000, /* 12K samplerate*/ AUDIO_SAMPLE_RATE_11025 = 11025, /* 11.025K samplerate*/ AUDIO_SAMPLE_RATE_16000 = 16000, /* 16K samplerate*/ AUDIO_SAMPLE_RATE_22050 = 22050, /* 22.050K samplerate*/ AUDIO_SAMPLE_RATE_24000 = 24000, /* 24K samplerate*/ AUDIO_SAMPLE_RATE_32000 = 32000, /* 32K samplerate*/ AUDIO_SAMPLE_RATE_44100 = 44100, /* 44.1K samplerate*/ AUDIO_SAMPLE_RATE_48000 = 48000, /* 48K samplerate*/ AUDIO_SAMPLE_RATE_64000 = 64000, /* 64K samplerate*/ AUDIO_SAMPLE_RATE_96000 = 96000, /* 96K samplerate*/ AUDIO_SAMPLE_RATE_BUTT, } AUDIO_SAMPLE_RATE_E; typedef struct rkAUDIO_STREAM_S { MB_BLK pMbBlk; RK_U32 u32Len; /* stream lenth, by bytes */ RK_U64 u64TimeStamp; /* frame time stamp*/ RK_U32 u32Seq; /* frame seq,if stream is not a valid frame, u32Seq is 0*/ RK_BOOL bBypassMbBlk; /* FALSE: copy, TRUE: MbBlock owned by internal */ } AUDIO_STREAM_S; typedef enum rkAUDIO_BIT_WIDTH_E { AUDIO_BIT_WIDTH_8 = 0, /* 8bit width */ AUDIO_BIT_WIDTH_16 = 1, /* 16bit width */ AUDIO_BIT_WIDTH_24 = 2, /* 24bit width */ AUDIO_BIT_WIDTH_32 = 3, /* 32bit width */ AUDIO_BIT_WIDTH_FLT = 4, /* float, 32bit width */ AUDIO_BIT_WIDTH_BUTT, } AUDIO_BIT_WIDTH_E; typedef enum rkAIO_SOUND_MODE_E { AUDIO_SOUND_MODE_MONO = 0,/*mono*/ AUDIO_SOUND_MODE_STEREO = 1,/*stereo*/ AUDIO_SOUND_MODE_4_CHN = 4, AUDIO_SOUND_MODE_6_CHN = 6, AUDIO_SOUND_MODE_8_CHN = 8, AUDIO_SOUND_MODE_BUTT } AUDIO_SOUND_MODE_E; typedef enum rkAUDIO_CHN_MODE_E { AUDIO_CHN_MODE_LEFT = 10, AUDIO_CHN_MODE_RIGHT = 11, AUDIO_CHN_MODE_BUTT } AUDIO_CHN_MODE_E; typedef enum rkAUDIO_LOOPBACK_MODE_E { AUDIO_LOOPBACK_NONE = 0, /* audio no use loopback */ AUDIO_LOOPBACK_SW_MICL_REFR, /* audio use software loopback (Mic Left + Ref Right) */ AUDIO_LOOPBACK_SW_REFL_MICR, /* audio use software loopback (Ref Left + Mic Right) */ AUDIO_LOOPBACK_BUTT } AUDIO_LOOPBACK_MODE_E; typedef enum rkAUDIO_CHN_ATTR_MODE_E { AUDIO_CHN_ATTR_PPM = 1, AUDIO_CHN_ATTR_RATE = 2, AUDIO_CHN_ATTR_BUTT } AUDIO_CHN_ATTR_MODE_E; typedef struct rkAUDIO_FRAME_S { MB_BLK pMbBlk; AUDIO_BIT_WIDTH_E enBitWidth; /*audio frame bitwidth*/ AUDIO_SOUND_MODE_E enSoundMode; /*audio frame momo or stereo mode*/ RK_U64 u64TimeStamp; /*audio frame timestamp*/ RK_U32 u32Seq; /*audio frame seq*/ RK_U32 u32Len; /*data lenth per channel in frame, u32Len <= 0 mean eos*/ RK_BOOL bBypassMbBlk; /* FALSE: copy, TRUE: MbBlock owned by internal */ RK_S32 s32SampleRate; /*audio frame sampleRate*/ } AUDIO_FRAME_S; typedef struct rkAEC_FRAME_S { AUDIO_FRAME_S stRefFrame; /* AEC reference audio frame */ RK_BOOL bValid; /* whether frame is valid */ RK_BOOL bSysBind; /* whether is sysbind */ } AEC_FRAME_S; typedef struct rkAUDIO_FRAME_INFO_S { AUDIO_FRAME_S *pstFrame;/*frame ptr*/ RK_U32 u32Id; /*frame id*/ } AUDIO_FRAME_INFO_S; typedef struct rkAUDIO_ADENC_PARAM_S { RK_U8 *pu8InBuf; RK_U32 u32InLen; RK_U64 u64InTimeStamp; RK_U8 *pu8OutBuf; RK_U32 u32OutLen; RK_U64 u64OutTimeStamp; } AUDIO_ADENC_PARAM_S; typedef enum rkAIO_MODE_E { AIO_MODE_I2S_MASTER = 0, /* AIO I2S master mode */ AIO_MODE_I2S_SLAVE, /* AIO I2S slave mode */ AIO_MODE_PCM_SLAVE_STD, /* AIO PCM slave standard mode */ AIO_MODE_PCM_SLAVE_NSTD, /* AIO PCM slave non-standard mode */ AIO_MODE_PCM_MASTER_STD, /* AIO PCM master standard mode */ AIO_MODE_PCM_MASTER_NSTD, /* AIO PCM master non-standard mode */ AIO_MODE_BUTT } AIO_MODE_E; typedef struct rkAIO_SOUND_CARD { RK_U32 channels; RK_U32 sampleRate; AUDIO_BIT_WIDTH_E bitWidth; } AIO_SOUND_CARD; typedef struct rkAIO_ATTR_S { // params of sound card AIO_SOUND_CARD soundCard; // input data sample rate AUDIO_SAMPLE_RATE_E enSamplerate; // bitwidth AUDIO_BIT_WIDTH_E enBitwidth; // momo or steror AUDIO_SOUND_MODE_E enSoundmode; /* expand 8bit to 16bit,use AI_EXPAND(only valid for AI 8bit), * use AI_CUT(only valid for extern Codec for 24bit) */ RK_U32 u32EXFlag; /* frame num in buf[2,MAX_AUDIO_FRAME_NUM] */ RK_U32 u32FrmNum; /* * point num per frame (80/160/240/320/480/1024/2048) * (ADPCM IMA should add 1 point, AMR only support 160) */ RK_U32 u32PtNumPerFrm; RK_U32 u32ChnCnt; /* channle number on FS, valid value:1/2/4/8 */ /* * name of sound card, if it is setted, we will * using it to open sound card, otherwise, use * the index of device to open sound card */ RK_U8 u8CardName[64]; RK_U8 u8MapOutChns[AI_MAX_CHN_NUM]; RK_U8 u8MapChns[AI_MAX_CHN_NUM][MAX_SOUND_CARD_CHANNEL]; RK_BOOL bMultichnFlag; RK_S32 s32DevQueLen; } AIO_ATTR_S; typedef struct rkAI_CHN_PARAM_S { RK_S32 s32UsrFrmDepth; RK_S32 s32UsrFrmCount; AUDIO_LOOPBACK_MODE_E enLoopbackMode; RK_U32 u32MapPtNumPerFrm; AUDIO_SAMPLE_RATE_E enSamplerate; RK_S32 s32SedQueLen; } AI_CHN_PARAM_S; typedef struct rkAO_CHN_PARAM_S { AUDIO_CHN_MODE_E enMode; AUDIO_LOOPBACK_MODE_E enLoopbackMode; } AO_CHN_PARAM_S; typedef struct rkAI_CHN_ATTR_S { AUDIO_CHN_ATTR_MODE_E enChnAttr; union { RK_S32 s32Ppm; RK_U32 u32SampleRate; }; } AI_CHN_ATTR_S; typedef struct rkAO_CHN_ATTR_S { AUDIO_CHN_ATTR_MODE_E enChnAttr; union { RK_S32 s32Ppm; RK_U32 u32SampleRate; }; } AO_CHN_ATTR_S; typedef struct rkAO_CHN_STATE_S { RK_U32 u32ChnTotalNum; /* total number of channel buffer */ RK_U32 u32ChnFreeNum; /* free number of channel buffer */ RK_U32 u32ChnBusyNum; /* busy number of channel buffer */ } AO_CHN_STATE_S; typedef enum rkAUDIO_TRACK_MODE_E { AUDIO_TRACK_NORMAL = 0, AUDIO_TRACK_BOTH_LEFT = 1, AUDIO_TRACK_BOTH_RIGHT = 2, AUDIO_TRACK_EXCHANGE = 3, AUDIO_TRACK_MIX = 4, AUDIO_TRACK_LEFT_MUTE = 5, AUDIO_TRACK_RIGHT_MUTE = 6, AUDIO_TRACK_BOTH_MUTE = 7, AUDIO_TRACK_FRONT_LEFT = 8, AUDIO_TRACK_FRONT_RIGHT = 9, AUDIO_TRACK_OUT_STEREO = 10, AUDIO_TRACK_BUTT } AUDIO_TRACK_MODE_E; typedef enum rkAUDIO_FADE_RATE_E { AUDIO_FADE_RATE_1 = 0, AUDIO_FADE_RATE_2 = 1, AUDIO_FADE_RATE_4 = 2, AUDIO_FADE_RATE_8 = 3, AUDIO_FADE_RATE_16 = 4, AUDIO_FADE_RATE_32 = 5, AUDIO_FADE_RATE_64 = 6, AUDIO_FADE_RATE_128 = 7, AUDIO_FADE_RATE_BUTT } AUDIO_FADE_RATE_E; typedef struct rkAUDIO_FADE_S { RK_BOOL bFade; AUDIO_FADE_RATE_E enFadeInRate; AUDIO_FADE_RATE_E enFadeOutRate; } AUDIO_FADE_S; typedef enum rkAUDIO_VOLUME_CURVE_E { AUDIO_CURVE_UNSET = 0, AUDIO_CURVE_LINEAR = 1, AUDIO_CURVE_LOGARITHM = 2, AUDIO_CURVE_CUSTOMIZE = 3, AUDIO_CURVE_BUTT } AUDIO_VOLUME_CURVE_E; typedef struct rkAUDIO_VOLUME_CURVE_S { AUDIO_VOLUME_CURVE_E enCurveType; RK_S32 s32Resolution; RK_FLOAT fMinDB; RK_FLOAT fMaxDB; RK_U32 *pCurveTable; } AUDIO_VOLUME_CURVE_S; /*Defines the configure parameters of AI saving file.*/ typedef struct rkAUDIO_SAVE_FILE_INFO_S { RK_BOOL bCfg; RK_CHAR aFilePath[MAX_AUDIO_FILE_PATH_LEN]; RK_CHAR aFileName[MAX_AUDIO_FILE_NAME_LEN]; RK_U32 u32FileSize; /*in KB*/ } AUDIO_SAVE_FILE_INFO_S; /*Defines whether the file is saving or not .*/ typedef struct rkAUDIO_FILE_STATUS_S { RK_BOOL bSaving; } AUDIO_FILE_STATUS_S; typedef enum rkAIO_VQE_CONFIG_METHOD { AIO_VQE_CONFIG_NONE, AIO_VQE_CONFIG_USER, // user set all configs by parameters AIO_VQE_CONFIG_LOAD_FILE, // read and parse config file } AIO_VQE_CONFIG_METHOD; typedef enum rkAI_VQE_TYPE_S { AI_VQE_NONE = 0, AI_VQE_RECORD, AI_VQE_TALK, } AI_VQE_TYPE_S; typedef struct rkAI_VQE_MOD_ENABLE_S { RK_BOOL bAec; RK_BOOL bBf; RK_BOOL bFastAec; RK_BOOL bAes; RK_BOOL bWakeup; RK_BOOL bGsc; RK_BOOL bAgc; RK_BOOL bAnr; RK_BOOL bNlp; RK_BOOL bDereverb; RK_BOOL bCng; RK_BOOL bDtd; RK_BOOL bEq; RK_BOOL bHowling; RK_BOOL bDoa; RK_BOOL bAinr; } AI_VQE_MOD_ENABLE_S; /**Defines the configure parameters of ANR.*/ typedef struct rkAUDIO_ANR_CONFIG_S { RK_FLOAT fNoiseFactor; RK_S32 s32SwU; RK_FLOAT fPsiMin; RK_FLOAT fPsiMax; RK_FLOAT fGmin; short supFreq1; short supFreq2; RK_FLOAT fSupEnergy1; RK_FLOAT fSupEnergy2; short interV; RK_FLOAT fBiasMin; short updateFrm; RK_FLOAT fNPreGammaThr; RK_FLOAT fNPreZetaThr; RK_FLOAT fSabsGammaThr0; RK_FLOAT fSabsGammaThr1; RK_FLOAT fInfSmooth; RK_FLOAT fProbSmooth; RK_FLOAT fCompCoeff; RK_FLOAT fPrioriMin; RK_FLOAT fPostMax; RK_FLOAT fPrioriRatio; RK_FLOAT fPrioriRatioLow; RK_S32 s32SplitBand; RK_FLOAT fPrioriSmooth; short tranMode; } AUDIO_ANR_CONFIG_S; typedef struct rkAUDIO_AGC_CONFIG_S { RK_FLOAT fAttackTime; RK_FLOAT fReleaseTime; RK_FLOAT fAttenuateTime; RK_FLOAT fMaxGain; RK_FLOAT fMaxPeak; RK_FLOAT fRth0; RK_FLOAT fRth1; RK_FLOAT fRth2; RK_FLOAT fRk0; RK_FLOAT fRk1; RK_FLOAT fRk2; RK_FLOAT fLineGainDb; RK_S32 s32SwSmL0; RK_S32 s32SwSmL1; RK_S32 s32SwSmL2; RK_S32 s32Fs; RK_S32 s32Frmlen; } AUDIO_AGC_CONFIG_S; typedef struct rkAUDIO_DELAY_CONFIG_S { short maxFrame; short leastDelay; short jumpFrame; short delayOffset; short micAmpThr; short refAmpThr; short startFreq; short endFreq; RK_FLOAT fSmoothFactor; } AUDIO_DELAY_CONFIG_S; typedef struct rkAUDIO_AEC_CONFIG_S { RK_S32 s32Pos; RK_S32 s32DropRefChannel; RK_S32 s32ModelAecEn; RK_S32 s32DelayLen; RK_S32 s32LookAhead; short arrayList[MAX_ARRAY_NUM]; short filter_len; AUDIO_DELAY_CONFIG_S delay; } AUDIO_AEC_CONFIG_S; typedef struct rkAUDIO_DEREVERB_CONFIG_S { RK_S32 s32RlsLg; RK_S32 s32CurveLg; RK_S32 s32Delay; RK_FLOAT fForgetting; RK_FLOAT fT60; RK_FLOAT fCoCoeff; } AUDIO_DEREVERB_CONFIG_S; typedef struct rkAUDIO_NLP_CONFIG_S { short nlp16k[8][2]; } AUDIO_NLP_CONFIG_S; typedef struct rkAUDIO_CNG_CONFIG_S{ RK_FLOAT fGain; RK_FLOAT fMpy; RK_FLOAT fSmoothAlpha; RK_FLOAT fSpeechGain; } AUDIO_CNG_CONFIG_S; typedef struct rkAUDIO_DTD_CONFIG_S { RK_FLOAT fKsiThdHigh; RK_FLOAT fKsiThdLow; } AUDIO_DTD_CONFIG_S; typedef struct rkAUDIO_AES_CONFIG_S { RK_FLOAT fBetaUp; RK_FLOAT fBetaDown; RK_FLOAT fbetaUpLow; RK_FLOAT fbetaDownLow; short lowFreq; short highFreq; short thdFlag; short hardFlag; RK_FLOAT fLimitRatio[2][3]; short thdSplitFreq[4][2]; RK_FLOAT fThdSupDegree[4][10]; short hardSplitFreq[5][2]; RK_FLOAT fHardThreshold[4]; } AUDIO_AES_CONFIG_S; typedef struct _AUDIO_HOWL_CONFIG_S { short mode; } AUDIO_HOWL_CONFIG_S; typedef struct _AUDIO_DOA_CONFIG_S { float fRad; short startFreq; short endFreq; short lgNum; short lgPitchNum; } AUDIO_DOA_CONFIG_S; typedef struct _AUDIO_WKP_CONFIG_S { int s32Mode; // 0: oneshot, 1: wakeup + command int s32WakeupFrames; // (default: 180) the frame counts of keeping wakeup and waiting command word int s32WakeupWords; // the max of wakeup word, which is >= 1 char modelWord1[128]; // wakeup word char modelWord2[128]; // command word } AUDIO_WKP_CONFIG_S; typedef struct _AUDIO_AINR_CONFIG_S { char modelPath[MAX_AUDIO_FILE_PATH_LEN]; } AUDIO_AINR_CONFIG_S; typedef struct rkAUDIO_BEAM_FORM_CONFIG_S { RK_S32 s32ModelEn; RK_S32 s32RefPos; RK_S32 s32Targ; RK_S32 s32NumRefChannel; RK_S32 s32DropRefChannel; AUDIO_DEREVERB_CONFIG_S dereverb; AUDIO_AES_CONFIG_S aes; AUDIO_NLP_CONFIG_S nlp; AUDIO_ANR_CONFIG_S anr; AUDIO_AGC_CONFIG_S agc; AUDIO_CNG_CONFIG_S cng; AUDIO_DTD_CONFIG_S dtd; AUDIO_HOWL_CONFIG_S howl; AUDIO_DOA_CONFIG_S doa; AUDIO_WKP_CONFIG_S wkp; AUDIO_AINR_CONFIG_S ainr; } AUDIO_BEAM_FORM_CONFIG_S; typedef struct rkAI_VQE_USER_CONFIG_S { AUDIO_AEC_CONFIG_S stAecCfg; AUDIO_BEAM_FORM_CONFIG_S stBeamCfg; } AI_VQE_USER_CONFIG_S; typedef struct rkAI_VQE_CONFIG_S { AIO_VQE_CONFIG_METHOD enCfgMode; /* see AIO_VQE_CONFIG_METHOD */ RK_S32 s32WorkSampleRate; /* Sample Rate: 8KHz/16KHz/48KHz. default: 16KHz*/ RK_S32 s32FrameSample; /* VQE frame length, default: 256 frames(16ms,16KHz) */ RK_S64 s64RefChannelType; /* Ref channel layout type*/ RK_S64 s64RecChannelType; /* Rec channel layout type*/ RK_S64 s64ChannelLayoutType; /* Channel layout type*/ union { /* config file if enCfgMode = AIO_VQE_CONFIG_LOAD_FILE */ RK_CHAR aCfgFile[MAX_AUDIO_FILE_PATH_LEN]; /* set user' parameters if enCfgMode = AIO_VQE_CONFIG_USER */ AI_VQE_USER_CONFIG_S stUsrCfg; }; } AI_VQE_CONFIG_S; typedef struct rkAI_VQE_RESULT_S { RK_S32 s32WakeupStatus; RK_S32 s32WakeupMode; /* 0: none; 1: oneshot; 2: wakeup+command; 3: oneshot and wakeup+command */ RK_S32 s32WakeupCmdID; RK_FLOAT s32WakeupCmdScore; } AI_VQE_RESULT_S; typedef struct rkAI_SED_CONFIG_S { RK_S64 s64RecChannelType; /* Rec channel layout type */ RK_S32 s32FrameLen; /* If not specified, it will be set 90 by rk_ai_channel. */ RK_BOOL bUsed; } AI_SED_CONFIG_S; typedef struct rkAI_AED_CONFIG_S { RK_FLOAT fSnrDB; RK_FLOAT fLsdDB; RK_S32 s32Policy; RK_FLOAT fSmoothParam; } AI_AED_CONFIG_S; typedef struct rkAI_AED_RESULT_S { RK_BOOL bAcousticEventDetected; RK_BOOL bLoudSoundDetected; RK_FLOAT lsdResult; } AI_AED_RESULT_S; typedef RK_VOID (*AI_BCD_CB)(void); typedef struct rkAI_BCD_CONFIG_S { RK_S32 mFrameLen; // Statistics frame length, the longer it is, the harder it is to wake up RK_S32 mBlankFrameMax; // Reset the frame length, and re-statistics when the frame length exceeds it RK_FLOAT mCryEnergy; RK_FLOAT mJudgeEnergy; RK_FLOAT mCryThres1; RK_FLOAT mCryThres2; RK_FLOAT mConfirmProb; AI_SED_CONFIG_S stSedCfg; union { RK_CHAR aModelPath[MAX_AUDIO_FILE_PATH_LEN]; }; } AI_BCD_CONFIG_S; typedef struct rkAI_BCD_RESULT_S { RK_BOOL bBabyCry; } AI_BCD_RESULT_S; typedef struct rkAI_BUZ_CONFIG_S { RK_S32 mFrameLen; // Statistics frame length, the longer it is, the harder it is to wake up RK_S32 mBlankFrameMax; // Reset the frame length, and re-statistics when the frame length exceeds it RK_FLOAT mEnergyMean; RK_FLOAT mEnergyMax; RK_FLOAT mBuzThres1; RK_FLOAT mBuzThres2; RK_FLOAT mConfirmProb; AI_SED_CONFIG_S stSedCfg; } AI_BUZ_CONFIG_S; typedef struct rkAI_BUZ_RESULT_S { RK_BOOL bBuzz; } AI_BUZ_RESULT_S; typedef struct rkAI_GBS_CONFIG_S { RK_S32 mFrameLen; // Statistics frame length, the longer it is, the harder it is to wake up RK_FLOAT mConfirmProb; AI_SED_CONFIG_S stSedCfg; } AI_GBS_CONFIG_S; typedef struct rkAI_GBS_RESULT_S { RK_BOOL bGbs; } AI_GBS_RESULT_S; typedef enum rkAO_VQE_MASK { AO_VQE_MASK_NONE = 1 << 0, AO_VQE_MASK_3A = 1 << 1, AO_VQE_MASK_AGC = 1 << 2, AO_VQE_MASK_ANR = 1 << 3, } AO_VQE_MASK; typedef struct rkAO_VQE_USER_CONFIG_S { RK_U32 u32OpenMask; /* see AO_VQE_MASK */ AUDIO_AGC_CONFIG_S stAgcCfg; AUDIO_ANR_CONFIG_S stAnrCfg; AUDIO_HOWL_CONFIG_S stHowlCfg; RK_S32 s32ModelEn; } AO_VQE_USER_CONFIG_S; typedef struct rkAO_VQE_CONFIG_S { AIO_VQE_CONFIG_METHOD enCfgMode; /* see AIO_VQE_CONFIG_METHOD */ RK_S32 s32WorkSampleRate; /* Sample Rate: 8KHz/16KHz/48KHz. default: 16KHz*/ RK_S32 s32FrameSample; /* VQE frame length, default: 256 frames(16ms,16KHz) */ union { /* config file if enCfgMode = AIO_VQE_CONFIG_LOAD_FILE */ RK_CHAR aCfgFile[MAX_AUDIO_FILE_PATH_LEN]; /* set user' parameters if enCfgMode = AIO_VQE_CONFIG_USER */ AO_VQE_USER_CONFIG_S stUsrCfg; }; } AO_VQE_CONFIG_S; typedef enum rkEN_AIO_ERR_CODE_E { AIO_ERR_VQE_ERR = 65 , /*vqe error*/ } RK_AIO_ERR_CODE_E; /* at lease one parameter is illagal ,eg, an illegal enumeration value */ #define RK_ERR_AIO_ILLEGAL_PARAM RK_DEF_ERR(RK_ID_AIO, RK_ERR_LEVEL_ERROR, RK_ERR_ILLEGAL_PARAM) /* using a NULL point */ #define RK_ERR_AIO_NULL_PTR RK_DEF_ERR(RK_ID_AIO, RK_ERR_LEVEL_ERROR, RK_ERR_NULL_PTR) /* operation is not supported by NOW */ #define RK_ERR_AIO_NOT_PERM RK_DEF_ERR(RK_ID_AIO, RK_ERR_LEVEL_ERROR, RK_ERR_NOT_PERM) /* vqe err */ #define RK_ERR_AIO_REGISTER_ERR RK_DEF_ERR(RK_ID_AIO, RK_ERR_LEVEL_ERROR, AIO_ERR_VQE_ERR) /* invlalid device ID */ #define RK_ERR_AI_INVALID_DEVID RK_DEF_ERR(RK_ID_AI, RK_ERR_LEVEL_ERROR, RK_ERR_INVALID_DEVID) /* invlalid channel ID */ #define RK_ERR_AI_INVALID_CHNID RK_DEF_ERR(RK_ID_AI, RK_ERR_LEVEL_ERROR, RK_ERR_INVALID_CHNID) /* at lease one parameter is illagal ,eg, an illegal enumeration value */ #define RK_ERR_AI_ILLEGAL_PARAM RK_DEF_ERR(RK_ID_AI, RK_ERR_LEVEL_ERROR, RK_ERR_ILLEGAL_PARAM) /* using a NULL point */ #define RK_ERR_AI_NULL_PTR RK_DEF_ERR(RK_ID_AI, RK_ERR_LEVEL_ERROR, RK_ERR_NULL_PTR) /* try to enable or initialize system,device or channel, before configing attribute */ #define RK_ERR_AI_NOT_CONFIG RK_DEF_ERR(RK_ID_AI, RK_ERR_LEVEL_ERROR, RK_ERR_NOT_CONFIG) /* operation is not supported by NOW */ #define RK_ERR_AI_NOT_SUPPORT RK_DEF_ERR(RK_ID_AI, RK_ERR_LEVEL_ERROR, RK_ERR_NOT_SUPPORT) /* operation is not permitted ,eg, try to change stati attribute */ #define RK_ERR_AI_NOT_PERM RK_DEF_ERR(RK_ID_AI, RK_ERR_LEVEL_ERROR, RK_ERR_NOT_PERM) /* the devide is not enabled */ #define RK_ERR_AI_NOT_ENABLED RK_DEF_ERR(RK_ID_AI, RK_ERR_LEVEL_ERROR, RK_ERR_UNEXIST) /* failure caused by malloc memory */ #define RK_ERR_AI_NOMEM RK_DEF_ERR(RK_ID_AI, RK_ERR_LEVEL_ERROR, RK_ERR_NOMEM) /* failure caused by malloc buffer */ #define RK_ERR_AI_NOBUF RK_DEF_ERR(RK_ID_AI, RK_ERR_LEVEL_ERROR, RK_ERR_NOBUF) /* no data in buffer */ #define RK_ERR_AI_BUF_EMPTY RK_DEF_ERR(RK_ID_AI, RK_ERR_LEVEL_ERROR, RK_ERR_BUF_EMPTY) /* no buffer for new data */ #define RK_ERR_AI_BUF_FULL RK_DEF_ERR(RK_ID_AI, RK_ERR_LEVEL_ERROR, RK_ERR_BUF_FULL) /* system is not ready,had not initialed or loaded*/ #define RK_ERR_AI_SYS_NOTREADY RK_DEF_ERR(RK_ID_AI, RK_ERR_LEVEL_ERROR, RK_ERR_NOTREADY) #define RK_ERR_AI_BUSY RK_DEF_ERR(RK_ID_AI, RK_ERR_LEVEL_ERROR, RK_ERR_BUSY) /* vqe err */ #define RK_ERR_AI_VQE_ERR RK_DEF_ERR(RK_ID_AI, RK_ERR_LEVEL_ERROR, AIO_ERR_VQE_ERR) /* invlalid device ID */ #define RK_ERR_AO_INVALID_DEVID RK_DEF_ERR(RK_ID_AO, RK_ERR_LEVEL_ERROR, RK_ERR_INVALID_DEVID) /* invlalid channel ID */ #define RK_ERR_AO_INVALID_CHNID RK_DEF_ERR(RK_ID_AO, RK_ERR_LEVEL_ERROR, RK_ERR_INVALID_CHNID) /* at lease one parameter is illagal ,eg, an illegal enumeration value */ #define RK_ERR_AO_ILLEGAL_PARAM RK_DEF_ERR(RK_ID_AO, RK_ERR_LEVEL_ERROR, RK_ERR_ILLEGAL_PARAM) /* using a NULL point */ #define RK_ERR_AO_NULL_PTR RK_DEF_ERR(RK_ID_AO, RK_ERR_LEVEL_ERROR, RK_ERR_NULL_PTR) /* try to enable or initialize system,device or channel, before configing attribute */ #define RK_ERR_AO_NOT_CONFIG RK_DEF_ERR(RK_ID_AO, RK_ERR_LEVEL_ERROR, RK_ERR_NOT_CONFIG) /* operation is not supported by NOW */ #define RK_ERR_AO_NOT_SUPPORT RK_DEF_ERR(RK_ID_AO, RK_ERR_LEVEL_ERROR, RK_ERR_NOT_SUPPORT) /* operation is not permitted ,eg, try to change stati attribute */ #define RK_ERR_AO_NOT_PERM RK_DEF_ERR(RK_ID_AO, RK_ERR_LEVEL_ERROR, RK_ERR_NOT_PERM) /* the devide is not enabled */ #define RK_ERR_AO_NOT_ENABLED RK_DEF_ERR(RK_ID_AO, RK_ERR_LEVEL_ERROR, RK_ERR_UNEXIST) /* failure caused by malloc memory */ #define RK_ERR_AO_NOMEM RK_DEF_ERR(RK_ID_AO, RK_ERR_LEVEL_ERROR, RK_ERR_NOMEM) /* failure caused by malloc buffer */ #define RK_ERR_AO_NOBUF RK_DEF_ERR(RK_ID_AO, RK_ERR_LEVEL_ERROR, RK_ERR_NOBUF) /* no data in buffer */ #define RK_ERR_AO_BUF_EMPTY RK_DEF_ERR(RK_ID_AO, RK_ERR_LEVEL_ERROR, RK_ERR_BUF_EMPTY) /* no buffer for new data */ #define RK_ERR_AO_BUF_FULL RK_DEF_ERR(RK_ID_AO, RK_ERR_LEVEL_ERROR, RK_ERR_BUF_FULL) /* system is not ready,had not initialed or loaded*/ #define RK_ERR_AO_SYS_NOTREADY RK_DEF_ERR(RK_ID_AO, RK_ERR_LEVEL_ERROR, RK_ERR_NOTREADY) #define RK_ERR_AO_BUSY RK_DEF_ERR(RK_ID_AO, RK_ERR_LEVEL_ERROR, RK_ERR_BUSY) /* vqe err */ #define RK_ERR_AO_VQE_ERR RK_DEF_ERR(RK_ID_AO, RK_ERR_LEVEL_ERROR, AIO_ERR_VQE_ERR) #ifdef __cplusplus #if __cplusplus } #endif #endif /* End of #ifdef __cplusplus */ #endif // INCLUDE_RT_MPI_MPI_COMM_AIO_H_