src/ucx/ucx/ucx.h

branch
webdav
changeset 260
4779a6fb4fbe
parent 254
4784c14aa639
equal deleted inserted replaced
259:0b8692959d37 260:4779a6fb4fbe
168 168
169 #else /* no GNUC or clang bultin */ 169 #else /* no GNUC or clang bultin */
170 170
171 /** 171 /**
172 * Performs a multiplication of size_t values and checks for overflow. 172 * Performs a multiplication of size_t values and checks for overflow.
173 * 173 *
174 * @param a first operand
175 * @param b second operand
176 * @param result a pointer to a size_t, where the result should
177 * be stored
178 * @return zero, if no overflow occurred and the result is correct, non-zero
179 * otherwise
180 */
181 #define ucx_szmul(a, b, result) ucx_szmul_impl(a, b, result)
182
183 /**
184 * Performs a multiplication of size_t values and checks for overflow.
185 *
174 * This is a custom implementation in case there is no compiler builtin 186 * This is a custom implementation in case there is no compiler builtin
175 * available. 187 * available.
176 * 188 *
177 * @param a first operand 189 * @param a first operand
178 * @param b second operand 190 * @param b second operand
179 * @param result a pointer to a size_t, where the result should 191 * @param result a pointer to a size_t where the result should be stored
180 * be stored 192 * @return zero, if no overflow occurred and the result is correct, non-zero
181 * @return zero, if no overflow occurred and the result is correct, non-zero 193 * otherwise
182 * otherwise 194 */
183 */
184 #define ucx_szmul(a, b, result) ucx_szmul_impl(a, b, result)
185
186 int ucx_szmul_impl(size_t a, size_t b, size_t *result); 195 int ucx_szmul_impl(size_t a, size_t b, size_t *result);
187 196
188 #endif 197 #endif
189 198
190 #ifdef __cplusplus 199 #ifdef __cplusplus

mercurial