/* automatically generated by rust-bindgen 0.72.1 */

pub const DMA_CH0: u32 = 0;
pub const DMA_CH1: u32 = 1;
pub const DMA_CH2: u32 = 2;
pub const DMA_CH3: u32 = 3;
pub const DMA_CH4: u32 = 4;
pub const DMA_CH5: u32 = 5;
pub const DMA_MX_CH0: u32 = 1;
pub const DMA_MX_CH1: u32 = 2;
pub const DMA_MX_CH2: u32 = 4;
pub const DMA_MX_CH3: u32 = 8;
pub const DMA_MX_CH4: u32 = 16;
pub const DMA_MX_CH5: u32 = 32;
pub const DMA_MX_CH_ALL: u32 = 63;
pub const DMA_FLAG_REQ_ERR_CH0: u32 = 65536;
pub const DMA_FLAG_REQ_ERR_CH1: u32 = 131072;
pub const DMA_FLAG_REQ_ERR_CH2: u32 = 262144;
pub const DMA_FLAG_REQ_ERR_CH3: u32 = 524288;
pub const DMA_FLAG_REQ_ERR_CH4: u32 = 1048576;
pub const DMA_FLAG_REQ_ERR_CH5: u32 = 2097152;
pub const DMA_FLAG_TRANS_ERR_CH0: u32 = 1;
pub const DMA_FLAG_TRANS_ERR_CH1: u32 = 2;
pub const DMA_FLAG_TRANS_ERR_CH2: u32 = 4;
pub const DMA_FLAG_TRANS_ERR_CH3: u32 = 8;
pub const DMA_FLAG_TRANS_ERR_CH4: u32 = 16;
pub const DMA_FLAG_TRANS_ERR_CH5: u32 = 32;
pub const DMA_FLAG_BTC_CH0: u32 = 65536;
pub const DMA_FLAG_BTC_CH1: u32 = 131072;
pub const DMA_FLAG_BTC_CH2: u32 = 262144;
pub const DMA_FLAG_BTC_CH3: u32 = 524288;
pub const DMA_FLAG_BTC_CH4: u32 = 1048576;
pub const DMA_FLAG_BTC_CH5: u32 = 2097152;
pub const DMA_FLAG_TC_CH0: u32 = 1;
pub const DMA_FLAG_TC_CH1: u32 = 2;
pub const DMA_FLAG_TC_CH2: u32 = 4;
pub const DMA_FLAG_TC_CH3: u32 = 8;
pub const DMA_FLAG_TC_CH4: u32 = 16;
pub const DMA_FLAG_TC_CH5: u32 = 32;
pub const DMA_INT_REQ_ERR_CH0: u32 = 65536;
pub const DMA_INT_REQ_ERR_CH1: u32 = 131072;
pub const DMA_INT_REQ_ERR_CH2: u32 = 262144;
pub const DMA_INT_REQ_ERR_CH3: u32 = 524288;
pub const DMA_INT_REQ_ERR_CH4: u32 = 1048576;
pub const DMA_INT_REQ_ERR_CH5: u32 = 2097152;
pub const DMA_INT_TRANS_ERR_CH0: u32 = 1;
pub const DMA_INT_TRANS_ERR_CH1: u32 = 2;
pub const DMA_INT_TRANS_ERR_CH2: u32 = 4;
pub const DMA_INT_TRANS_ERR_CH3: u32 = 8;
pub const DMA_INT_TRANS_ERR_CH4: u32 = 16;
pub const DMA_INT_TRANS_ERR_CH5: u32 = 32;
pub const DMA_INT_BTC_CH0: u32 = 65536;
pub const DMA_INT_BTC_CH1: u32 = 131072;
pub const DMA_INT_BTC_CH2: u32 = 262144;
pub const DMA_INT_BTC_CH3: u32 = 524288;
pub const DMA_INT_BTC_CH4: u32 = 1048576;
pub const DMA_INT_BTC_CH5: u32 = 2097152;
pub const DMA_INT_TC_CH0: u32 = 1;
pub const DMA_INT_TC_CH1: u32 = 2;
pub const DMA_INT_TC_CH2: u32 = 4;
pub const DMA_INT_TC_CH3: u32 = 8;
pub const DMA_INT_TC_CH4: u32 = 16;
pub const DMA_INT_TC_CH5: u32 = 32;
pub const DMA_FLAG_ERR_MASK: u32 = 4128831;
pub const DMA_FLAG_TRANS_MASK: u32 = 4128831;
pub const DMA_INT_ERR_MASK: u32 = 4128831;
pub const DMA_INT_TRANS_MASK: u32 = 4128831;
pub const DMA_STAT_REQ_RECONFIG: u32 = 32768;
pub const DMA_STAT_REQ_CH0: u32 = 1;
pub const DMA_STAT_REQ_CH1: u32 = 2;
pub const DMA_STAT_REQ_CH2: u32 = 4;
pub const DMA_STAT_REQ_CH3: u32 = 8;
pub const DMA_STAT_REQ_CH4: u32 = 16;
pub const DMA_STAT_REQ_CH5: u32 = 32;
pub const DMA_STAT_REQ_MASK: u32 = 32831;
pub const DMA_STAT_TRANS_CH0: u32 = 65536;
pub const DMA_STAT_TRANS_CH1: u32 = 131072;
pub const DMA_STAT_TRANS_CH2: u32 = 262144;
pub const DMA_STAT_TRANS_CH3: u32 = 524288;
pub const DMA_STAT_TRANS_CH4: u32 = 1048576;
pub const DMA_STAT_TRANS_CH5: u32 = 2097152;
pub const DMA_STAT_TRANS_DMA: u32 = 1;
pub const DMA_STAT_TRANS_RECONFIG: u32 = 2;
pub const DMA_STAT_TRANS_MASK: u32 = 4128771;
pub const DMA_DATAWIDTH_8BIT: u32 = 0;
pub const DMA_DATAWIDTH_16BIT: u32 = 256;
pub const DMA_DATAWIDTH_32BIT: u32 = 512;
pub const DMA_LLP_DISABLE: u32 = 0;
pub const DMA_LLP_ENABLE: u32 = 1024;
pub const DMA_LLP_WAIT: u32 = 0;
pub const DMA_LLP_RUN: u32 = 2048;
pub const DMA_SRC_ADDR_FIX: u32 = 0;
pub const DMA_SRC_ADDR_INC: u32 = 1;
pub const DMA_SRC_ADDR_DEC: u32 = 2;
pub const DMA_DEST_ADDR_FIX: u32 = 0;
pub const DMA_DEST_ADDR_INC: u32 = 4;
pub const DMA_DEST_ADDR_DEC: u32 = 8;
pub const DMA_INT_ENABLE: u32 = 4096;
pub const DMA_INT_DISABLE: u32 = 0;
pub const DMA_RPT_NONE: u32 = 0;
pub const DMA_RPT_SRC: u32 = 16;
pub const DMA_RPT_DEST: u32 = 32;
pub const DMA_RPT_BOTH: u32 = 48;
pub const DMA_NON_SEQ_NONE: u32 = 0;
pub const DMA_NON_SEQ_SRC: u32 = 64;
pub const DMA_NON_SEQ_DEST: u32 = 128;
pub const DMA_NON_SEQ_BOTH: u32 = 192;
pub const DMA_RC_CNT_KEEP: u32 = 0;
pub const DMA_RC_CNT_SRC: u32 = 1048576;
pub const DMA_RC_CNT_DEST: u32 = 2097152;
pub const DMA_RC_DEST_ADDR_KEEP: u32 = 0;
pub const DMA_RC_DEST_ADDR_NS: u32 = 262144;
pub const DMA_RC_DEST_ADDR_RPT: u32 = 524288;
pub const DMA_RC_SRC_ADDR_KEEP: u32 = 0;
pub const DMA_RC_SRC_ADDR_NS: u32 = 65536;
pub const DMA_RC_SRC_ADDR_RPT: u32 = 131072;
pub const en_functional_state_t_DISABLE: en_functional_state_t = 0;
pub const en_functional_state_t_ENABLE: en_functional_state_t = 1;
#[doc = " @brief Functional state"]
pub type en_functional_state_t = ::core::ffi::c_uint;
pub const en_flag_status_t_RESET: en_flag_status_t = 0;
pub const en_flag_status_t_SET: en_flag_status_t = 1;
#[doc = " @brief Flag status"]
pub type en_flag_status_t = ::core::ffi::c_uint;
#[doc = " @brief DMA"]
#[repr(C)]
#[derive(Copy, Clone)]
pub struct CM_DMA_TypeDef {
    pub EN: u32,
    pub INTSTAT0: u32,
    pub INTSTAT1: u32,
    pub INTMASK0: u32,
    pub INTMASK1: u32,
    pub INTCLR0: u32,
    pub INTCLR1: u32,
    pub CHEN: u32,
    pub REQSTAT: u32,
    pub CHSTAT: u32,
    pub RESERVED0: [u8; 4usize],
    pub RCFGCTL: u32,
    pub SWREQ: u32,
    pub CHENCLR: u32,
    pub RESERVED1: [u8; 8usize],
    pub SAR0: u32,
    pub DAR0: u32,
    pub DTCTL0: u32,
    pub __bindgen_anon_1: CM_DMA_TypeDef__bindgen_ty_1,
    pub __bindgen_anon_2: CM_DMA_TypeDef__bindgen_ty_2,
    pub __bindgen_anon_3: CM_DMA_TypeDef__bindgen_ty_3,
    pub LLP0: u32,
    pub CHCTL0: u32,
    pub MONSAR0: u32,
    pub MONDAR0: u32,
    pub MONDTCTL0: u32,
    pub MONRPT0: u32,
    pub MONSNSEQCTL0: u32,
    pub MONDNSEQCTL0: u32,
    pub RESERVED2: [u8; 8usize],
    pub SAR1: u32,
    pub DAR1: u32,
    pub DTCTL1: u32,
    pub __bindgen_anon_4: CM_DMA_TypeDef__bindgen_ty_4,
    pub __bindgen_anon_5: CM_DMA_TypeDef__bindgen_ty_5,
    pub __bindgen_anon_6: CM_DMA_TypeDef__bindgen_ty_6,
    pub LLP1: u32,
    pub CHCTL1: u32,
    pub MONSAR1: u32,
    pub MONDAR1: u32,
    pub MONDTCTL1: u32,
    pub MONRPT1: u32,
    pub MONSNSEQCTL1: u32,
    pub MONDNSEQCTL1: u32,
    pub RESERVED3: [u8; 8usize],
    pub SAR2: u32,
    pub DAR2: u32,
    pub DTCTL2: u32,
    pub __bindgen_anon_7: CM_DMA_TypeDef__bindgen_ty_7,
    pub __bindgen_anon_8: CM_DMA_TypeDef__bindgen_ty_8,
    pub __bindgen_anon_9: CM_DMA_TypeDef__bindgen_ty_9,
    pub LLP2: u32,
    pub CHCTL2: u32,
    pub MONSAR2: u32,
    pub MONDAR2: u32,
    pub MONDTCTL2: u32,
    pub MONRPT2: u32,
    pub MONSNSEQCTL2: u32,
    pub MONDNSEQCTL2: u32,
    pub RESERVED4: [u8; 8usize],
    pub SAR3: u32,
    pub DAR3: u32,
    pub DTCTL3: u32,
    pub __bindgen_anon_10: CM_DMA_TypeDef__bindgen_ty_10,
    pub __bindgen_anon_11: CM_DMA_TypeDef__bindgen_ty_11,
    pub __bindgen_anon_12: CM_DMA_TypeDef__bindgen_ty_12,
    pub LLP3: u32,
    pub CHCTL3: u32,
    pub MONSAR3: u32,
    pub MONDAR3: u32,
    pub MONDTCTL3: u32,
    pub MONRPT3: u32,
    pub MONSNSEQCTL3: u32,
    pub MONDNSEQCTL3: u32,
    pub RESERVED5: [u8; 8usize],
    pub SAR4: u32,
    pub DAR4: u32,
    pub DTCTL4: u32,
    pub __bindgen_anon_13: CM_DMA_TypeDef__bindgen_ty_13,
    pub __bindgen_anon_14: CM_DMA_TypeDef__bindgen_ty_14,
    pub __bindgen_anon_15: CM_DMA_TypeDef__bindgen_ty_15,
    pub LLP4: u32,
    pub CHCTL4: u32,
    pub MONSAR4: u32,
    pub MONDAR4: u32,
    pub MONDTCTL4: u32,
    pub MONRPT4: u32,
    pub MONSNSEQCTL4: u32,
    pub MONDNSEQCTL4: u32,
    pub RESERVED6: [u8; 8usize],
    pub SAR5: u32,
    pub DAR5: u32,
    pub DTCTL5: u32,
    pub __bindgen_anon_16: CM_DMA_TypeDef__bindgen_ty_16,
    pub __bindgen_anon_17: CM_DMA_TypeDef__bindgen_ty_17,
    pub __bindgen_anon_18: CM_DMA_TypeDef__bindgen_ty_18,
    pub LLP5: u32,
    pub CHCTL5: u32,
    pub MONSAR5: u32,
    pub MONDAR5: u32,
    pub MONDTCTL5: u32,
    pub MONRPT5: u32,
    pub MONSNSEQCTL5: u32,
    pub MONDNSEQCTL5: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_1 {
    pub RPT0: u32,
    pub RPTB0: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_2 {
    pub SNSEQCTL0: u32,
    pub SNSEQCTLB0: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_3 {
    pub DNSEQCTL0: u32,
    pub DNSEQCTLB0: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_4 {
    pub RPT1: u32,
    pub RPTB1: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_5 {
    pub SNSEQCTL1: u32,
    pub SNSEQCTLB1: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_6 {
    pub DNSEQCTL1: u32,
    pub DNSEQCTLB1: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_7 {
    pub RPT2: u32,
    pub RPTB2: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_8 {
    pub SNSEQCTL2: u32,
    pub SNSEQCTLB2: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_9 {
    pub DNSEQCTL2: u32,
    pub DNSEQCTLB2: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_10 {
    pub RPT3: u32,
    pub RPTB3: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_11 {
    pub SNSEQCTL3: u32,
    pub SNSEQCTLB3: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_12 {
    pub DNSEQCTL3: u32,
    pub DNSEQCTLB3: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_13 {
    pub RPT4: u32,
    pub RPTB4: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_14 {
    pub SNSEQCTL4: u32,
    pub SNSEQCTLB4: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_15 {
    pub DNSEQCTL4: u32,
    pub DNSEQCTLB4: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_16 {
    pub RPT5: u32,
    pub RPTB5: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_17 {
    pub SNSEQCTL5: u32,
    pub SNSEQCTLB5: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CM_DMA_TypeDef__bindgen_ty_18 {
    pub DNSEQCTL5: u32,
    pub DNSEQCTLB5: u32,
}
#[doc = " @brief  DMA basic configuration"]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct stc_dma_init_t {
    #[doc = "< Specifies the DMA interrupt function.\nThis parameter can be a value of @ref DMA_Int_Config"]
    pub u32IntEn: u32,
    #[doc = "< Specifies the DMA source address."]
    pub u32SrcAddr: u32,
    #[doc = "< Specifies the DMA destination address."]
    pub u32DestAddr: u32,
    #[doc = "< Specifies the DMA transfer data width.\nThis parameter can be a value of @ref DMA_DataWidth_Sel"]
    pub u32DataWidth: u32,
    #[doc = "< Specifies the DMA block size."]
    pub u32BlockSize: u32,
    #[doc = "< Specifies the DMA transfer count."]
    pub u32TransCount: u32,
    #[doc = "< Specifies the source address increment mode.\nThis parameter can be a value of @ref DMA_SrcAddr_Incremented_Mode"]
    pub u32SrcAddrInc: u32,
    #[doc = "< Specifies the destination address increment mode.\nThis parameter can be a value of @ref DMA_DesAddr_Incremented_Mode"]
    pub u32DestAddrInc: u32,
}
#[doc = " @brief  DMA repeat mode configuration"]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct stc_dma_repeat_init_t {
    #[doc = "< Specifies the DMA source repeat function.\nThis parameter can be a value of @ref DMA_Repeat_Config"]
    pub u32Mode: u32,
    #[doc = "< Specifies the DMA source repeat size."]
    pub u32SrcCount: u32,
    #[doc = "< Specifies the DMA destination repeat size."]
    pub u32DestCount: u32,
}
#[doc = " @brief  DMA non-sequence mode configuration"]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct stc_dma_nonseq_init_t {
    #[doc = "< Specifies the DMA source non-sequence function.\nThis parameter can be a value of @ref DMA_NonSeq_Config"]
    pub u32Mode: u32,
    #[doc = "< Specifies the DMA source non-sequence function count."]
    pub u32SrcCount: u32,
    #[doc = "< Specifies the DMA source non-sequence function offset."]
    pub u32SrcOffset: u32,
    #[doc = "< Specifies the DMA destination non-sequence function count."]
    pub u32DestCount: u32,
    #[doc = "< Specifies the DMA destination non-sequence function offset."]
    pub u32DestOffset: u32,
}
#[doc = " @brief  DMA Link List Pointer (LLP) mode configuration"]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct stc_dma_llp_init_t {
    #[doc = "< Specifies the DMA LLP function.\nThis parameter can be a value of @ref DMA_Llp_En"]
    pub u32State: u32,
    #[doc = "< Specifies the DMA LLP auto or wait REQ.\nThis parameter can be a value of @ref DMA_Llp_Mode"]
    pub u32Mode: u32,
    #[doc = "< Specifies the DMA list pointer address for LLP function."]
    pub u32Addr: u32,
}
#[doc = " @brief  DMA re-config function configuration"]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct stc_dma_reconfig_init_t {
    #[doc = "< Specifies the DMA reconfig function count mode.\nThis parameter can be a value of @ref DMA_Reconfig_Count_Sel"]
    pub u32CountMode: u32,
    #[doc = "< Specifies the DMA reconfig function destination address mode.\nThis parameter can be a value of @ref DMA_Reconfig_DestAddr_Sel"]
    pub u32DestAddrMode: u32,
    #[doc = "< Specifies the DMA reconfig function source address mode.\nThis parameter can be a value of @ref DMA_Reconfig_SrcAddr_Sel"]
    pub u32SrcAddrMode: u32,
}
#[doc = " @brief  DMA re-config non-sequence mode configuration"]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct stc_dma_rc_nonseq_init_t {
    #[doc = "< Specifies the DMA source non-sequence function.\nThis parameter can be a value of @ref DMA_NonSeq_Config"]
    pub u32Mode: u32,
    #[doc = "< Specifies the DMA source non-sequence function count."]
    pub u32SrcCount: u32,
    #[doc = "< Specifies the DMA source non-sequence function distance."]
    pub u32SrcDist: u32,
    #[doc = "< Specifies the DMA destination non-sequence function count."]
    pub u32DestCount: u32,
    #[doc = "< Specifies the DMA destination non-sequence function distance."]
    pub u32DestDist: u32,
}
#[doc = " @brief  Dma LLP(linked list pointer) descriptor structure definition"]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct stc_dma_llp_descriptor_t {
    #[doc = "< LLP source address"]
    pub SARx: u32,
    #[doc = "< LLP destination address"]
    pub DARx: u32,
    #[doc = "< LLP transfer count and block size"]
    pub DTCTLx: u32,
    #[doc = "< LLP source & destination repeat size"]
    pub RPTx: u32,
    #[doc = "< LLP source non-seq count and offset"]
    pub SNSEQCTLx: u32,
    #[doc = "< LLP destination non-seq count and offset"]
    pub DNSEQCTLx: u32,
    #[doc = "< LLP next list pointer"]
    pub LLPx: u32,
    #[doc = "< LLP channel control"]
    pub CHCTLx: u32,
}
unsafe extern "C" {
    #[doc = "Global function prototypes (definition in C source)\n/\n/**\n @addtogroup DMA_Global_Functions\n @{"]
    pub fn DMA_Cmd(DMAx: *mut CM_DMA_TypeDef, enNewState: en_functional_state_t);
    pub fn DMA_ErrIntCmd(
        DMAx: *mut CM_DMA_TypeDef,
        u32ErrInt: u32,
        enNewState: en_functional_state_t,
    );
    pub fn DMA_GetErrStatus(DMAx: *const CM_DMA_TypeDef, u32Flag: u32) -> en_flag_status_t;
    pub fn DMA_ClearErrStatus(DMAx: *mut CM_DMA_TypeDef, u32Flag: u32);
    pub fn DMA_TransCompleteIntCmd(
        DMAx: *mut CM_DMA_TypeDef,
        u32TransCompleteInt: u32,
        enNewState: en_functional_state_t,
    );
    pub fn DMA_GetTransCompleteStatus(
        DMAx: *const CM_DMA_TypeDef,
        u32Flag: u32,
    ) -> en_flag_status_t;
    pub fn DMA_ClearTransCompleteStatus(DMAx: *mut CM_DMA_TypeDef, u32Flag: u32);
    pub fn DMA_MxChCmd(DMAx: *mut CM_DMA_TypeDef, u8MxCh: u8, enNewState: en_functional_state_t);
    pub fn DMA_ChCmd(DMAx: *mut CM_DMA_TypeDef, u8Ch: u8, enNewState: en_functional_state_t)
        -> i32;
    pub fn DMA_GetRequestStatus(DMAx: *const CM_DMA_TypeDef, u32Status: u32) -> en_flag_status_t;
    pub fn DMA_GetTransStatus(DMAx: *const CM_DMA_TypeDef, u32Status: u32) -> en_flag_status_t;
    pub fn DMA_SetSrcAddr(DMAx: *mut CM_DMA_TypeDef, u8Ch: u8, u32Addr: u32) -> i32;
    pub fn DMA_SetDestAddr(DMAx: *mut CM_DMA_TypeDef, u8Ch: u8, u32Addr: u32) -> i32;
    pub fn DMA_SetTransCount(DMAx: *mut CM_DMA_TypeDef, u8Ch: u8, u16Count: u16) -> i32;
    pub fn DMA_SetBlockSize(DMAx: *mut CM_DMA_TypeDef, u8Ch: u8, u16Size: u16) -> i32;
    pub fn DMA_SetDataWidth(DMAx: *mut CM_DMA_TypeDef, u8Ch: u8, u32DataWidth: u32) -> i32;
    pub fn DMA_SetSrcRepeatSize(DMAx: *mut CM_DMA_TypeDef, u8Ch: u8, u32Size: u32) -> i32;
    pub fn DMA_SetDestRepeatSize(DMAx: *mut CM_DMA_TypeDef, u8Ch: u8, u32Size: u32) -> i32;
    pub fn DMA_SetNonSeqSrcCount(DMAx: *mut CM_DMA_TypeDef, u8Ch: u8, u32Count: u32) -> i32;
    pub fn DMA_SetNonSeqDestCount(DMAx: *mut CM_DMA_TypeDef, u8Ch: u8, u32Count: u32) -> i32;
    pub fn DMA_SetNonSeqSrcOffset(DMAx: *mut CM_DMA_TypeDef, u8Ch: u8, u32Offset: u32) -> i32;
    pub fn DMA_SetNonSeqDestOffset(DMAx: *mut CM_DMA_TypeDef, u8Ch: u8, u32Offset: u32) -> i32;
    pub fn DMA_SetLlpAddr(DMAx: *mut CM_DMA_TypeDef, u8Ch: u8, u32Addr: u32);
    pub fn DMA_StructInit(pstcDmaInit: *mut stc_dma_init_t) -> i32;
    pub fn DMA_Init(DMAx: *mut CM_DMA_TypeDef, u8Ch: u8, pstcDmaInit: *const stc_dma_init_t)
        -> i32;
    pub fn DMA_DeInit(DMAx: *mut CM_DMA_TypeDef, u8Ch: u8);
    pub fn DMA_UnitDeInit(DMAx: *mut CM_DMA_TypeDef) -> i32;
    pub fn DMA_RepeatStructInit(pstcDmaRepeatInit: *mut stc_dma_repeat_init_t) -> i32;
    pub fn DMA_RepeatInit(
        DMAx: *mut CM_DMA_TypeDef,
        u8Ch: u8,
        pstcDmaRepeatInit: *const stc_dma_repeat_init_t,
    ) -> i32;
    pub fn DMA_NonSeqStructInit(pstcDmaNonSeqInit: *mut stc_dma_nonseq_init_t) -> i32;
    pub fn DMA_NonSeqInit(
        DMAx: *mut CM_DMA_TypeDef,
        u8Ch: u8,
        pstcDmaNonSeqInit: *const stc_dma_nonseq_init_t,
    ) -> i32;
    pub fn DMA_LlpStructInit(pstcDmaLlpInit: *mut stc_dma_llp_init_t) -> i32;
    pub fn DMA_LlpInit(
        DMAx: *mut CM_DMA_TypeDef,
        u8Ch: u8,
        pstcDmaLlpInit: *const stc_dma_llp_init_t,
    ) -> i32;
    pub fn DMA_LlpCmd(DMAx: *mut CM_DMA_TypeDef, u8Ch: u8, enNewState: en_functional_state_t);
    pub fn DMA_ReconfigStructInit(pstcDmaRCInit: *mut stc_dma_reconfig_init_t) -> i32;
    pub fn DMA_ReconfigInit(
        DMAx: *mut CM_DMA_TypeDef,
        u8Ch: u8,
        pstcDmaRCInit: *const stc_dma_reconfig_init_t,
    ) -> i32;
    pub fn DMA_ReconfigCmd(DMAx: *mut CM_DMA_TypeDef, enNewState: en_functional_state_t);
    pub fn DMA_ReconfigLlpCmd(
        DMAx: *mut CM_DMA_TypeDef,
        u8Ch: u8,
        enNewState: en_functional_state_t,
    );
    pub fn DMA_ReconfigNonSeqStructInit(pstcDmaRcNonSeqInit: *mut stc_dma_rc_nonseq_init_t) -> i32;
    pub fn DMA_ReconfigNonSeqInit(
        DMAx: *mut CM_DMA_TypeDef,
        u8Ch: u8,
        pstcDmaRcNonSeqInit: *const stc_dma_rc_nonseq_init_t,
    ) -> i32;
    pub fn DMA_GetSrcAddr(DMAx: *const CM_DMA_TypeDef, u8Ch: u8) -> u32;
    pub fn DMA_GetDestAddr(DMAx: *const CM_DMA_TypeDef, u8Ch: u8) -> u32;
    pub fn DMA_GetTransCount(DMAx: *const CM_DMA_TypeDef, u8Ch: u8) -> u32;
    pub fn DMA_GetBlockSize(DMAx: *const CM_DMA_TypeDef, u8Ch: u8) -> u32;
    pub fn DMA_GetSrcRepeatSize(DMAx: *const CM_DMA_TypeDef, u8Ch: u8) -> u32;
    pub fn DMA_GetDestRepeatSize(DMAx: *const CM_DMA_TypeDef, u8Ch: u8) -> u32;
    pub fn DMA_GetNonSeqSrcCount(DMAx: *const CM_DMA_TypeDef, u8Ch: u8) -> u32;
    pub fn DMA_GetNonSeqDestCount(DMAx: *const CM_DMA_TypeDef, u8Ch: u8) -> u32;
    pub fn DMA_GetNonSeqSrcOffset(DMAx: *const CM_DMA_TypeDef, u8Ch: u8) -> u32;
    pub fn DMA_GetNonSeqDestOffset(DMAx: *const CM_DMA_TypeDef, u8Ch: u8) -> u32;
    pub fn DMA_AHB_HProtBufCacheCmd(
        DMAx: *mut CM_DMA_TypeDef,
        u8Ch: u8,
        enNewState: en_functional_state_t,
    );
    pub fn DMA_MxChSWTrigger(DMAx: *mut CM_DMA_TypeDef, u8MxCh: u8);
    pub fn DMA_SWReconfig(DMAx: *mut CM_DMA_TypeDef);
}
