1 #ifndef MDU88X_HEADER 2 #define MDU88X_HEADER 3 4 #include <stdint.h> 5 6 /* unsigned OPs */ 7 8 extern uint8_t mdu_32udiv16(uint32_t op1, uint16_t op2, 9 uint32_t *res, uint16_t *rem) 10 __reentrant; 11 extern uint8_t mdu_16udiv16(uint16_t op1, uint16_t op2, 12 uint16_t *res, uint16_t *rem) 13 __reentrant; 14 extern uint8_t mdu_16umul16(uint16_t op1, uint16_t op2, 15 uint32_t *res) 16 __reentrant; 17 18 /* signed OPs */ 19 20 extern uint8_t mdu_32sdiv16(int32_t op1, int16_t op2, 21 int32_t *res, int16_t *rem) 22 __reentrant; 23 extern uint8_t mdu_16sdiv16(int16_t op1, int16_t op2, 24 int16_t *res, int16_t *rem) 25 __reentrant; 26 extern uint8_t mdu_16smul16(int16_t op1, int16_t op2, 27 int32_t *res) 28 __reentrant; 29 30 /* normalize */ 31 32 extern uint8_t mdu_norm(uint32_t op, 33 uint32_t *res, uint8_t *nuof_shifts) 34 __reentrant; 35 36 /* logical shifts */ 37 38 extern uint8_t mdu_lshift(uint32_t op, uint8_t shifts, uint8_t right, 39 uint32_t *res) 40 __reentrant; 41 extern uint8_t mdu_lshift_left(uint32_t op, uint8_t shifts, 42 uint32_t *res) 43 __reentrant; 44 extern uint8_t mdu_lshift_right(uint32_t op, uint8_t shifts, 45 uint32_t *res) 46 __reentrant; 47 48 /* arithmetic shifts */ 49 50 extern uint8_t mdu_ashift(int32_t op, int8_t shifts, int8_t right, 51 int32_t *res) 52 __reentrant; 53 extern uint8_t mdu_ashift_left(int32_t op, int8_t shifts, 54 int32_t *res) 55 __reentrant; 56 extern uint8_t mdu_ashift_right(int32_t op, int8_t shifts, 57 int32_t *res) 58 __reentrant; 59 60 #endif 61