X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Farmv7%2Flib.c;h=5a6928e7cd916262e1e97df4d6fa589884462b97;hb=5473bdfc429d224c40e37ff7065a8dbad119fa1e;hp=a1fbfb77cc4b906af07a18807bd33029200c4c3b;hpb=d01b7e1a4924a41a5219eedfd2f6d32b310368cd;p=tpg%2Facess2.git diff --git a/Kernel/arch/armv7/lib.c b/Kernel/arch/armv7/lib.c index a1fbfb77..5a6928e7 100644 --- a/Kernel/arch/armv7/lib.c +++ b/Kernel/arch/armv7/lib.c @@ -4,6 +4,7 @@ * lib.c - Library Functions */ #include +#include "../helpers.h" // === IMPORTS === extern void __memcpy_align4(void *_dest, const void *_src, size_t _length); @@ -114,25 +115,9 @@ void *memset(void *_dest, int _value, size_t _length) return _dest; } -// Divide -// - Find what power of two times Den is > Num -// - Iterate down in bit significance -// > If the `N` value is greater than `D`, we can set this bit -#define DEF_DIVMOD(s) Uint##s __divmod##s(Uint##s N, Uint##s D, Uint##s*Rem){\ - Uint##s ret=0,add=1;\ - while(N>=D&&add) {D<<=1;add<<=1;}\ - while(add>1){\ - add>>=1;D>>=1;\ - if(N>=D){ret+=add;N-=D;}\ - }\ - if(Rem)*Rem = N;\ - return ret;\ -} - DEF_DIVMOD(64) DEF_DIVMOD(32) - Uint64 DivMod64U(Uint64 Num, Uint64 Den, Uint64 *Rem) { Uint64 ret;