diff options
Diffstat (limited to 'lib/ultralib/src/libc/ldiv.c')
| -rwxr-xr-x | lib/ultralib/src/libc/ldiv.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/ultralib/src/libc/ldiv.c b/lib/ultralib/src/libc/ldiv.c new file mode 100755 index 0000000..59644e9 --- /dev/null +++ b/lib/ultralib/src/libc/ldiv.c @@ -0,0 +1,33 @@ +#include "stdlib.h" + +// TODO: these come from headers +#ident "$Revision: 1.34 $" +#ident "$Revision: 1.5 $" + +ldiv_t ldiv(long num, long denom) { + ldiv_t ret; + + ret.quot = num / denom; + ret.rem = num - denom * ret.quot; + + if (ret.quot < 0 && ret.rem > 0) { + ret.quot++; + ret.rem -= denom; + } + + return ret; +} + +lldiv_t lldiv(long long num, long long denom) { + lldiv_t ret; + + ret.quot = num / denom; + ret.rem = num - denom * ret.quot; + + if (ret.quot < 0 && ret.rem > 0) { + ret.quot++; + ret.rem -= denom; + } + + return ret; +} |
