#ifndef __MDU_H
#define __MDU_H


typedef struct
{
    uint32_t nResultH;
    uint32_t nResultL;
}MDU_RESULT_INFO;


MDU_RESULT_INFO MDU_16_DIV_16(OB_MDU_Type* pMDU, uint32_t nSign, uint32_t nNumerator , uint32_t nDenominator);
MDU_RESULT_INFO MDU_32_DIV_16(OB_MDU_Type* pMDU, uint32_t nSign, uint32_t nNumerator , uint32_t nDenominator);
MDU_RESULT_INFO MDU_32_DIV_32(OB_MDU_Type* pMDU, uint32_t nSign, uint32_t nNumerator , uint32_t nDenominator);
MDU_RESULT_INFO MDU_32_MUL_32(OB_MDU_Type* pMDU, uint32_t nSign, uint32_t nNumerator , uint32_t nDenominator);

#define MDU_ARCON_16DIV16     0x0000
#define MDU_ARCON_32DIV16     0x0004
#define MDU_ARCON_32DIV32     0x0005
#define MDU_ARCON_32MUL32     0x0007
#define MDU_ARCON_SHIFT       0x000F
#define MDU_ARCON_SIGNE       0x0010
#define MDU_ARCON_SHIFT_LEFT  0x0000
#define MDU_ARCON_SHIFT_RIGTH 0x0020
#define MDU_ARCON_OVERFLOW    0x0040
#define MDU_ARCON_ERROR_FLAG  0x0080
#define MDU_ARCON_ENABLE      0x8000



#endif
