FreeBSD kernel libkern code
quad.h File Reference
#include <sys/cdefs.h>
#include <sys/types.h>
#include <sys/limits.h>
#include <sys/syslimits.h>
Include dependency graph for quad.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

union  uu
 

Macros

#define H   _QUAD_HIGHWORD
 
#define L   _QUAD_LOWWORD
 
#define QUAD_BITS   (sizeof(quad_t) * CHAR_BIT)
 
#define LONG_BITS   (sizeof(long) * CHAR_BIT)
 
#define HALF_BITS   (sizeof(long) * CHAR_BIT / 2)
 
#define HHALF(x)   ((x) >> HALF_BITS)
 
#define LHALF(x)   ((x) & ((1 << HALF_BITS) - 1))
 
#define LHUP(x)   ((x) << HALF_BITS)
 

Typedefs

typedef unsigned int qshift_t
 

Functions

quad_t __ashldi3 (quad_t, qshift_t)
 
quad_t __ashrdi3 (quad_t, qshift_t)
 
int __cmpdi2 (quad_t a, quad_t b)
 
quad_t __divdi3 (quad_t a, quad_t b)
 
quad_t __lshrdi3 (quad_t, qshift_t)
 
quad_t __moddi3 (quad_t a, quad_t b)
 
u_quad_t __qdivrem (u_quad_t u, u_quad_t v, u_quad_t *rem)
 
u_quad_t __udivdi3 (u_quad_t a, u_quad_t b)
 
u_quad_t __umoddi3 (u_quad_t a, u_quad_t b)
 
int __ucmpdi2 (u_quad_t a, u_quad_t b)
 

Macro Definition Documentation

◆ H

#define H   _QUAD_HIGHWORD

Definition at line 77 of file quad.h.

◆ HALF_BITS

#define HALF_BITS   (sizeof(long) * CHAR_BIT / 2)

Definition at line 87 of file quad.h.

◆ HHALF

#define HHALF (   x)    ((x) >> HALF_BITS)

Definition at line 98 of file quad.h.

◆ L

#define L   _QUAD_LOWWORD

Definition at line 78 of file quad.h.

◆ LHALF

#define LHALF (   x)    ((x) & ((1 << HALF_BITS) - 1))

Definition at line 99 of file quad.h.

◆ LHUP

#define LHUP (   x)    ((x) << HALF_BITS)

Definition at line 100 of file quad.h.

◆ LONG_BITS

#define LONG_BITS   (sizeof(long) * CHAR_BIT)

Definition at line 86 of file quad.h.

◆ QUAD_BITS

#define QUAD_BITS   (sizeof(quad_t) * CHAR_BIT)

Definition at line 85 of file quad.h.

Typedef Documentation

◆ qshift_t

typedef unsigned int qshift_t

Definition at line 102 of file quad.h.

Function Documentation

◆ __ashldi3()

quad_t __ashldi3 ( quad_t  a,
qshift_t  shift 
)

Definition at line 46 of file ashldi3.c.

References H, L, LONG_BITS, uu::q, QUAD_BITS, and uu::ul.

◆ __ashrdi3()

quad_t __ashrdi3 ( quad_t  a,
qshift_t  shift 
)

Definition at line 45 of file ashrdi3.c.

References H, L, LONG_BITS, uu::q, QUAD_BITS, uu::sl, and uu::ul.

◆ __cmpdi2()

int __cmpdi2 ( quad_t  a,
quad_t  b 
)

Definition at line 47 of file cmpdi2.c.

References H, L, uu::q, uu::sl, and uu::ul.

◆ __divdi3()

quad_t __divdi3 ( quad_t  a,
quad_t  b 
)

Definition at line 46 of file divdi3.c.

References __qdivrem().

Referenced by __kern_ldivmod().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ __lshrdi3()

quad_t __lshrdi3 ( quad_t  a,
qshift_t  shift 
)

Definition at line 45 of file lshrdi3.c.

References H, L, LONG_BITS, uu::q, QUAD_BITS, and uu::ul.

◆ __moddi3()

quad_t __moddi3 ( quad_t  a,
quad_t  b 
)

Definition at line 48 of file moddi3.c.

References __qdivrem().

Here is the call graph for this function:

◆ __qdivrem()

u_quad_t __qdivrem ( u_quad_t  u,
u_quad_t  v,
u_quad_t *  rem 
)

Definition at line 82 of file qdivrem.c.

References __shl(), B, COMBINE, H, HALF_BITS, HHALF, L, LHALF, uu::q, uu::ul, uu::uq, and v1.

Referenced by __divdi3(), __moddi3(), __udivdi3(), and __umoddi3().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ __ucmpdi2()

int __ucmpdi2 ( u_quad_t  a,
u_quad_t  b 
)

Definition at line 46 of file ucmpdi2.c.

References H, L, uu::ul, and uu::uq.

◆ __udivdi3()

u_quad_t __udivdi3 ( u_quad_t  a,
u_quad_t  b 
)

Definition at line 45 of file udivdi3.c.

References __qdivrem().

Here is the call graph for this function:

◆ __umoddi3()

u_quad_t __umoddi3 ( u_quad_t  a,
u_quad_t  b 
)

Definition at line 45 of file umoddi3.c.

References __qdivrem().

Here is the call graph for this function: