Changeset e3272101 in mainline
- Timestamp:
- 2019-02-11T14:08:52Z (6 years ago)
- Children:
- d5a89a3
- Parents:
- aa57bf7
- Location:
- uspace/lib/c
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/cap.c
raa57bf7 re3272101 160 160 161 161 /* Round the number so that we have at most @c scap_max_sdig significant digits */ 162 sdig = 1 + ilog10_u64(cap->m); /* number of significant digits */ 162 rc = ilog10_u64(cap->m, &sdig); /* number of significant digits */ 163 sdig += 1; 164 assert(rc == EOK); 163 165 if (sdig > scap_max_sdig) { 164 166 /* Number of digits to remove */ -
uspace/lib/c/generic/imath.c
raa57bf7 re3272101 81 81 * 82 82 * @param v Value to compute logarithm from 83 * @param res Place to store result 84 * @return EOK on success 83 85 * @return Logarithm value 84 86 */ 85 unsigned ilog10_u64(uint64_t v)87 errno_t ilog10_u64(uint64_t v, unsigned *res) 86 88 { 89 if (v == 0) 90 return ERANGE; 91 87 92 unsigned b; 88 93 unsigned e; … … 117 122 } 118 123 119 return r; 124 *res = r; 125 return EOK; 120 126 } 121 127 -
uspace/lib/c/include/imath.h
raa57bf7 re3272101 40 40 41 41 extern errno_t ipow10_u64(unsigned, uint64_t *); 42 extern unsigned ilog10_u64(uint64_t);42 extern errno_t ilog10_u64(uint64_t, unsigned *); 43 43 44 44 #endif -
uspace/lib/c/test/imath.c
raa57bf7 re3272101 78 78 PCUT_TEST(ilog10_u64_zero) 79 79 { 80 unsigned ret = ilog10_u64(0); 81 PCUT_ASSERT_INT_EQUALS(0, ret); 80 unsigned res; 81 errno_t ret = ilog10_u64(0, &res); 82 PCUT_ASSERT_ERRNO_VAL(ERANGE, ret); 82 83 } 83 84 84 85 PCUT_TEST(ilog10_u64_one) 85 86 { 86 unsigned ret = ilog10_u64(1); 87 PCUT_ASSERT_INT_EQUALS(0, ret); 87 unsigned res; 88 errno_t ret = ilog10_u64(1, &res); 89 PCUT_ASSERT_ERRNO_VAL(EOK, ret); 90 PCUT_ASSERT_INT_EQUALS(0, res); 88 91 } 89 92 90 93 PCUT_TEST(ilog10_u64_max) 91 94 { 92 unsigned ret = ilog10_u64(MAX_NUM); 93 PCUT_ASSERT_INT_EQUALS(MAX_EXP, ret); 95 unsigned res; 96 errno_t ret = ilog10_u64(MAX_NUM, &res); 97 PCUT_ASSERT_ERRNO_VAL(EOK, ret); 98 PCUT_ASSERT_INT_EQUALS(MAX_EXP, res); 94 99 } 95 100
Note:
See TracChangeset
for help on using the changeset viewer.