xref: /openbsd-src/sys/dev/pci/drm/include/asm/div64.h (revision 7f4dd37977dc50fdbac8c09deb3ed9ed9b8d0c87)
1*7f4dd379Sjsg /* Public domain. */
2*7f4dd379Sjsg 
3*7f4dd379Sjsg #ifndef _ASM_DIV64_H
4*7f4dd379Sjsg #define _ASM_DIV64_H
5*7f4dd379Sjsg 
6*7f4dd379Sjsg #include <sys/types.h>
7*7f4dd379Sjsg 
8*7f4dd379Sjsg #define do_div(n, base) ({				\
9*7f4dd379Sjsg 	uint32_t __base = (base);			\
10*7f4dd379Sjsg 	uint32_t __rem = ((uint64_t)(n)) % __base;	\
11*7f4dd379Sjsg 	(n) = ((uint64_t)(n)) / __base;			\
12*7f4dd379Sjsg 	__rem;						\
13*7f4dd379Sjsg })
14*7f4dd379Sjsg 
15*7f4dd379Sjsg #endif
16