Files
BPI-M2C/source_sync_rls_25c/source/bsp/chipram/include/div64.h
T

26 lines
640 B
C
Raw Normal View History

2026-09-22 09:38:26 +08:00
#ifndef _CHIPRAM_DIV64_H
#define _CHIPRAM_DIV64_H
#include <linux/types.h>
extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
# define do_div(m,divisor) ({ \
uint32_t __divisor = (divisor); \
uint32_t __ret; \
(void)(((typeof((m)) *)0) == ((uint64_t *)0)); \
if (((m) >> 32) == 0) { \
__ret = (uint32_t)(m) % __divisor; \
(m) = (uint32_t)(m) / __divisor; \
} else \
__ret = __div64_32(&(m), __divisor); \
__ret; \
})
static inline uint64_t lldiv(uint64_t dividend, uint32_t divisor)
{
uint64_t __ret = dividend;
do_div(__ret, divisor);
return(__ret);
}
#endif /* _CHIPRAM_DIV64_H */