RTAPI_DIV_U64

NAME
SYNTAX
ARGUMENTS
DESCRIPTION
RETURN VALUE
NOTES
REALTIME CONSIDERATIONS

NAME

rtapi_div_u64, rtapi_div_u64_rem, rtapi_div_s64, rtapi_div_s64_rem - unsigned division of a 64-bit number by a 32-bit number

SYNTAX

__u64 rtapi_div_u64_rem(__u64 dividend, __u32 divisor, __u32* remainder);
__u64 rtapi_div_u64(__u64 dividend, __u32 divisor);
__s64 rtapi_div_s64(__s64 dividend, __s32 divisor);
__s64 rtapi_div_s64_rem(__s64 dividend, __s32 divisor, __s32* remainder);

ARGUMENTS

dividend

The value to be divided.

divisor

The value to divide by.

remainder

Pointer to the location to store the remainder. This may not be a NULL pointer. If the remainder is not desired, call rtapi_div_u64 or rtapi_div_s64.

DESCRIPTION

Perform integer division (and optionally compute the remainder) with a 64-bit dividend and 32-bit divisor.

RETURN VALUE

The result of integer division of dividend / divisor. In versions with the remainder argument, the remainder is stored in the pointed-to location.

NOTES

If the result of the division does not fit in the return type, the result is undefined.

This function exists because in kernel space the use of the division operator on a 64-bit type can lead to an undefined symbol such as __umoddi3 when the module is loaded.

REALTIME CONSIDERATIONS

May be called from init/cleanup code and from within realtime tasks. Available in non-realtime components.