Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
D
 daemonize_process, process_t
 data
 datablock_t
 datalen, sha1_hash_t
 Decimal
 Decimal impl
 decimal_divstate_t
 decimal_frombigint_state_t
 decimal_frombigint_t
 decimal_powbase
 decimal_t
 decodechar_utf8, utf8
 decsize_decimalpowbase
 Default Definitions
 default sys_sqroot_int64
 Default-Includes
 DefaultMemoryManager
 DefaultMemoryManager impl
 defaultscreen_x11display, x11display_t
 defaultscreennr_display, display_t
 defaultscreennr_x11display, x11display_t
 define calculate_crc32
 Definitions
 delete_arraysf, arraysf_t
 delete_arraystf, arraystf_t
 delete_bigint, bigint_t
 delete_decimal, decimal_t
 delete_directory, directory_t
 delete_ipaddr, ipaddr_t
 delete_ipaddrlist, ipaddr_list_t
 delete_object, typeadapt_lifetime_it
 delete_queuepage
 delete_signalstate, signalstate_t
 delete_suffixtreeiterator, suffixtree_iterator_t
 delete_suffixtreeleaf, suffixtree_leaf_t
 delete_sysuserinfo, sysuser_info_t
 delete_thread, thread_t
 delete_trienode, trie_node_t
 delete_triesubnode, trie_subnode_t
 delete_triesubnode2, trie_subnode2_t
 delete_url, url_t
 delsubnode_trienode, trie_node_t
 deluservalue_trienode, trie_node_t
 Dependencies
 depth, blockarray_t
 description
 Description
 Description-Reader
 determinehshiftleft_decimalhelper
 Developed Ideas
 Development Environment:
 Different Types
 diffms_timevalue
 digit_trienode, trie_node_t
 digit2str_decimalhelper
 digits
 DIGITSBASE
 digitsperint_decimal
 Directory
 Directory Linux
 directory_t
 disable_fpuexcept
 dispatcher_signalhandler, signalhandler_t
 dispatchevent_X11, X11_t
 display
 display_FREE, display_t
 display_t
 display_window
 display_x11screen
 display_x11window
 div_bigint
 div_decimal, decimal_t
 div_decimalhelper
 div3by2digits_biginthelper
 div3by2digits_decimalhelper
 divi32_decimal, decimal_t
 divi32_decimalhelper
 divmod_bigint, bigint_t
 divmod_biginthelper
 divmodui32_bigint, bigint_t
 divmodui32_biginthelper
 divui32_bigint
 dlist_IMPLEMENT
 dlist_IMPLEMENT _wlist
 dlist_INIT, dlist_t
 dlist_INIT_LAST, dlist_t
 dlist_iterator_FREE, dlist_iterator_t
 dlist_iterator_t
 dlist_node_INIT, dlist_node_t
 dlist_node_t
 dlist_t
 dnsname_ipaddr, ipaddr_t
 dnsnameace_ipaddr, ipaddr_t
 documentation
 Documentation
 DoubleLinkedList
 DoubleLinkedList impl
 DoubleLinkedList-Node
 draw-lines, x11drawable_t
 draw-shapes, x11drawable_t
 draw-text, x11drawable_t
 dump_suffixtree, suffixtree_t
int daemonize_process(process_stdio_t *stdfd/*0 = > /dev/null*/)
Prepares this process to be a daemon process.
const uint8_t * data/*length*/
Start address of text data.
trie_nodedata_t * data
Points to data in memory.
struct datablock_t
A memory block which contains the array elements.
uint64_t datalen
Stores the number of bytes process so far.
Implements a fixed size decimal nummber.
Implements interface Decimal.
struct decimal_divstate_t
Used in div_decimalhelper to store current state of division computation.
struct decimal_frombigint_state_t
Holds the modulo result of a division of a bigint_t.
struct decimal_frombigint_t
Type holding state for conversion from bigint_t into decimal_t.
struct decimal_t
Represents a decimal number with at most 1143 decimal digits.
uint8_t decodechar_utf8(
   const uint8_t strstart[/*maxsize_utf8() or big enough*/],
   /*out*/char32_t *uchar
)
Decodes utf-8 encoded bytes beginning from strstart and returns character in uchar.
static inline unsigned decsize_decimalpowbase(unsigned tableindex)
Returns size of decimal_t needed to represent <s_decimal_powbase>[tableindex].
If no compiler specific version is defined use sqroot_int64 as default.
Default implementation of mm_it.
Implements DefaultMemoryManager.
struct x11screen_t defaultscreen_x11display(x11display_t *x11disp)
Returns the default screen of x11disp.
uint32_t defaultscreennr_display(const display_t *disp)
Returns the number of the default screens attached to this display.
uint32_t defaultscreennr_x11display(const x11display_t *x11disp)
Returns the default screen number of x11disp.
Implements calculate_crc32.
int delete_arraysf(arraysf_t **array,
struct typeadapt_member_t *nodeadp)
Frees allocated memory.
int delete_arraystf(arraystf_t **array,
struct typeadapt_member_t *nodeadp)
Frees allocated memory.
int delete_bigint(bigint_t **big)
Frees any allocated memory and sets (*big) to 0.
int delete_decimal(decimal_t **dec)
Frees any allocated memory and sets (*dec) to 0.
int delete_directory(directory_t **dir)
Closes open directory stream.
int delete_ipaddr(ipaddr_t **addr)
Deletes a created or copied address.
int delete_ipaddrlist(ipaddr_list_t **addrlist)
Frees memory of internal list of ipaddr_list_t.
int (
   *delete_object
) (struct typeadapt_t * typeadp, struct typeadapt_object_t ** object)
Function frees memory and associated resources of object.
static int delete_queuepage(queue_page_t **qpage)
Frees single memory page with RELEASE_PAGECACHE.
int delete_signalstate(signalstate_t **sigstate)
Frees any resources associated with sigstate.
static int delete_suffixtreeiterator(suffixtree_iterator_t **iter)
Frees all memory allocated for suffixtree_iterator_t object.
static int delete_suffixtreeleaf(suffixtree_leaf_t **leaf)
Frees resources associated with suffixtree_leaf_t.
int delete_sysuserinfo(sysuser_info_t **usrinfo)
Frees memory holding system user information.
int delete_thread(thread_t **threadobj)
Calls join_thread (if not already called) and deletes resources.
static int delete_trienode(trie_nodedata_t **node)
Frees memory of node and all of its child nodes.
static int delete_triesubnode(trie_subnode_t **subnode)
Frees allocated memory of subnode.
static int delete_triesubnode2(trie_subnode2_t **subnode)
Frees memory of subnode and sets it to 0.
int delete_url(url_t **url)
Frees all resources bound to url.
Moves all pointers from subnode into child[] array.
To build the whole project or any subproject the following dependencies should be considered.
uint8_t depth
The depth of the tree.
Readers in general de-linearize a linear text representation.
static shiftleft10p_f determinehshiftleft_decimalhelper(uint32_t shiftcount)
Returns shiftleft10p_f for argument decimal_exponent_x.
Reads text database in CSV format and patches query result into C-source code.
There exist four kind of parameter types.
#define diffms_timevalue(
   endtv,
   starttv
) ( __extension__ ({ timevalue_t * _etv = (endtv) ; timevalue_t * _stv = (starttv) ; (_etv->seconds - _stv->seconds) * 1000 + (_etv->nanosec - _stv->nanosec) / 1000000 ; }))
Implements timevalue_t.diffms_timevalue.
int64_t diffms_timevalue(timevalue_t *endtv,
timevalue_t *starttv)
static inline uint8_t * digit_trienode(trie_node_t *node)
Returns ptr to digit array.
static inline void digit2str_decimalhelper(uint8_t *str,
uint32_t digit,
uint8_t digitsize)
Writes a decimal representation of digit into string str.
The values of digits.
uint32_t digits[/*0..size_allocated-1*/]
9 decimal digits encoded as integer are stored per digit (uint32_t).
#define DIGITSBASE ((uint32_t)1000000000)
The base of a digit in array decimal_t.digits.
#define digitsperint_decimal() ((uint8_t)(9 * bitsperint_decimal()/32))
Implements decimal_t.digitsperint_decimal.
uint8_t digitsperint_decimal(void)
Returns the number of decimal digits stored internally per integer.
Access directory content.
Implements Directory.
struct directory_t
Alias for POSIX specific DIR structure.
int disable_fpuexcept(fpu_except_e exception_flags)
Disables a fpu exception to be silent.
static void dispatcher_signalhandler(int signr,
siginfo_t *siginfo,
void *ucontext)
This signal handler is called for every signal.
int dispatchevent_X11(struct x11display_t *x11disp)
Checks event queue and dispatches 1 event if avialable.
struct x11display_t* display
Reference to x11display_t.
struct x11display_t* display
Reference to x11display_t.
struct x11display_t* display
Reference to x11display_t.
#define display_FREE { x11display_FREE, egldisplay_FREE }
Static initializer.
struct display_t
Wraps the OS specific graphics display.
#define display_window(
   win
) (castfromos_display(display_x11window(os_window(win))))
Implements window_t.display_window.
struct display_t * display_window(const window_t *win)
Returns a pointer to the display_t the window is associated with.
#define display_x11screen(x11screen) ((x11screen)->display)
Implements x11screen_t.display_x11screen.
struct x11display_t * display_x11screen(const x11screen_t *x11screen)
Returns the display of the screen of.
#define display_x11window(x11win) ((x11win)->display)
Implements x11window_t.display_x11window.
struct x11display_t * display_x11window(const x11window_t *x11win)
Returns the display the window is associated with.
#define div_bigint(result,
lbig,
rbig) (divmod_bigint(result, 0, lbig, rbig))
Implements bigint_t.div_bigint.
int div_bigint(bigint_t *restrict *result,
const bigint_t *lbig,
const bigint_t *rbig)
Divides dividend lbig by divisor rbig.
int div_decimal(decimal_t *restrict *result,
const decimal_t *ldec,
const decimal_t *rdec,
uint8_t result_size)
Divides parameter ldec by rdec and returns the quotient in the first.
static int div_decimalhelper(decimal_t *restrict result,
bool isNegSign,
int32_t exponent,
const uint8_t lsize,
uint32_t * const ldigits,
const uint8_t rsize,
const uint32_t * const rdigits,
const uint8_t result_size)
Divides two decimal numbers and returns the positive quotient.
static void div3by2digits_biginthelper(bigint_divstate_t *state)
Divides 3 32 bit integer digits by 2 32 bit integer digits.
static void div3by2digits_decimalhelper(decimal_divstate_t *state)
Computes ((dividend * DIGITSBASE + nextdigit) / divisor).
int divi32_decimal(decimal_t *restrict *result,
const decimal_t *ldec,
int32_t rdivisor,
uint8_t result_size)
Divides parameter ldec by rdivisor and returns quotient in the first.
static int divi32_decimalhelper(decimal_t *restrict result,
bool isNegSign,
int32_t exponent,
uint8_t lsize,
const uint32_t *ldigits,
uint32_t divisor,
const uint32_t result_size)
Divides decimal number by integer and returns the positive quotient.
int divmod_bigint(bigint_t *restrict *divresult,
bigint_t *restrict *modresult,
const bigint_t *lbig,
const bigint_t *rbig)
Divides lbig by rbig and computes lbig modulo rbig.
static void divmod_biginthelper(
   bigint_t *restrict *divresult,
   bigint_t *restrict *modresult,
   uint16_t divnrdigits,
   // number of digits which must be computed const uint16_t modnrdigits,
   // number of digits of the remainder const int16_t divsign,
   // sign ([-1,+1]) of divresult const int16_t lsign,
   // sign ([-1,+1]) of ldigits (which is the sign of modresult) const uint16_t lnrdigits,
   // the number of digits in array ldigits uint32_t *ldigits,
   // the array of digits for the left operand const uint16_t rnrdigits,
   // the number of digits in array rdigits const uint32_t *rdigits
) // the array of digits for the right operand
Computes ldigits[0..lnrdigits-1] = divresult * rdigits[0..rnrdigits-1] + modresult.
int divmodui32_bigint(bigint_t *restrict *divresult,
bigint_t *restrict *modresult,
const bigint_t *lbig,
const uint32_t divisor)
Divides lbig by divisor of type uint32_t and computes modulo.
static void divmodui32_biginthelper(bigint_t *restrict *divresult,
bigint_t *restrict *modresult,
uint16_t divnrdigits,
const int16_t divsign,
const int16_t lsign,
uint16_t lnrdigits,
const uint32_t * const ldigits,
const uint32_t divisor)
Divides lbig by signed divisor.
#define divui32_bigint(result,
lbig,
divisor) (divmodui32_bigint(result, 0, lbig, divisor))
Implements bigint_t.divui32_bigint.
int divui32_bigint(bigint_t *restrict *result,
const bigint_t *lbig,
const uint32_t divisor)
Divides lbig by divisor of type uint32_t.
#define dlist_IMPLEMENT(
   _fsuffix,
   object_t,
   nodeprefix
) typedef dlist_iterator_t iteratortype##_fsuffix ; typedef object_t * iteratedtype##_fsuffix ; static inline int initfirst##_fsuffix##iterator(dlist_iterator_t * iter, dlist_t * list) __attribute__ ((always_inline)) ; static inline int initlast##_fsuffix##iterator(dlist_iterator_t * iter, dlist_t * list) __attribute__ ((always_inline)) ; static inline int free##_fsuffix##iterator(dlist_iterator_t * iter) __attribute__ ((always_inline)) ; static inline bool next##_fsuffix##iterator(dlist_iterator_t * iter, object_t ** node) __attribute__ ((always_inline)) ; static inline bool prev##_fsuffix##iterator(dlist_iterator_t * iter, object_t ** node) __attribute__ ((always_inline)) ; static inline void init##_fsuffix(dlist_t * list) __attribute__ ((always_inline)) ; static inline int free##_fsuffix(dlist_t * list, struct typeadapt_t * typeadp) __attribute__ ((always_inline)) ; static inline int isempty##_fsuffix(const dlist_t * list) __attribute__ ((always_inline)) ; static inline object_t * first##_fsuffix(const dlist_t * list) __attribute__ ((always_inline)) ; static inline object_t * last##_fsuffix(const dlist_t * list) __attribute__ ((always_inline)) ; static inline object_t * next##_fsuffix(object_t * node) __attribute__ ((always_inline)) ; static inline object_t * prev##_fsuffix(object_t * node) __attribute__ ((always_inline)) ; static inline bool isinlist##_fsuffix(object_t * node) __attribute__ ((always_inline)) ; static inline void insertfirst##_fsuffix(dlist_t * list, object_t * new_node) __attribute__ ((always_inline)) ; static inline void insertlast##_fsuffix(dlist_t * list, object_t * new_node) __attribute__ ((always_inline)) ; static inline void insertafter##_fsuffix(dlist_t * list, object_t * prev_node, object_t * new_node) __attribute__ ((always_inline)) ; static inline void insertbefore##_fsuffix(object_t* next_node, object_t * new_node) __attribute__ ((always_inline)) ; static inline int removefirst##_fsuffix(dlist_t * list, object_t ** removed_node) __attribute__ ((always_inline)) ; static inline int removelast##_fsuffix(dlist_t * list, object_t ** removed_node) __attribute__ ((always_inline)) ; static inline int remove##_fsuffix(dlist_t * list, object_t * node) __attribute__ ((always_inline)) ; static inline void replacenode##_fsuffix(dlist_t * list, object_t * newnode, object_t * oldnode) __attribute__ ((always_inline)) ; static inline int removeall##_fsuffix(dlist_t * list, struct typeadapt_t * typeadp) __attribute__ ((always_inline)) ; static inline void transfer##_fsuffix(dlist_t * tolist, dlist_t * fromlist) __attribute__ ((always_inline)) ; static inline uint16_t nodeoffset##_fsuffix(void) __attribute__ ((always_inline)) ; static inline uint16_t nodeoffset##_fsuffix(void) { static_assert(UINT16_MAX > (uintptr_t) & (((object_t*)0)->nodeprefix next), "offset fits in uint16_t") ; return (uint16_t) (uintptr_t) & (((object_t*)0)->nodeprefix next) ; } static inline dlist_node_t * asnode##_fsuffix(object_t * object) { static_assert(&(((object_t*)0)->nodeprefix next) == (dlist_node_t**)((uintptr_t)nodeoffset##_fsuffix()), "correct type") ; static_assert(&(((object_t*)0)->nodeprefix prev) == (dlist_node_t**)(nodeoffset##_fsuffix() + sizeof(dlist_node_t*)), "correct type and offset") ; return (dlist_node_t *) ((uintptr_t)object + nodeoffset##_fsuffix()) ; } static inline object_t * asobject##_fsuffix(dlist_node_t * node) { return (object_t *) ((uintptr_t)node - nodeoffset##_fsuffix()) ; } static inline object_t * asobjectnull##_fsuffix(dlist_node_t * node) { return node ? (object_t *) ((uintptr_t)node - nodeoffset##_fsuffix()) : 0 ; } static inline void init##_fsuffix(dlist_t * list) { init_dlist(list) ; } static inline int free##_fsuffix(dlist_t * list, struct typeadapt_t * typeadp) { return free_dlist(list, nodeoffset##_fsuffix(), typeadp) ; } static inline int isempty##_fsuffix(const dlist_t * list) { return isempty_dlist(list) ; } static inline object_t * first##_fsuffix(const dlist_t * list) { return asobjectnull##_fsuffix(first_dlist(list)) ; } static inline object_t * last##_fsuffix(const dlist_t * list) { return asobjectnull##_fsuffix(last_dlist(list)) ; } static inline object_t * next##_fsuffix(object_t * node) { return asobject##_fsuffix(next_dlist(asnode##_fsuffix(node))) ; } static inline object_t * prev##_fsuffix(object_t * node) { return asobject##_fsuffix(prev_dlist(asnode##_fsuffix(node))) ; } static inline bool isinlist##_fsuffix(object_t * node) { return isinlist_dlist(asnode##_fsuffix(node)) ; } static inline void insertfirst##_fsuffix(dlist_t * list, object_t * new_node) { insertfirst_dlist(list, asnode##_fsuffix(new_node)) ; } static inline void insertlast##_fsuffix(dlist_t * list, object_t * new_node) { insertlast_dlist(list, asnode##_fsuffix(new_node)) ; } static inline void insertafter##_fsuffix(dlist_t * list, object_t * prev_node, object_t * new_node) { insertafter_dlist(list, asnode##_fsuffix(prev_node), asnode##_fsuffix(new_node)) ; } static inline void insertbefore##_fsuffix(object_t * next_node, object_t * new_node) { insertbefore_dlist(asnode##_fsuffix(next_node), asnode##_fsuffix(new_node)) ; } static inline int removefirst##_fsuffix(dlist_t * list, object_t ** removed_node) { int err = removefirst_dlist(list, (dlist_node_t**)removed_node) ; if (!err) *removed_node = asobject##_fsuffix(*(dlist_node_t**)removed_node) ; return err ; } static inline int removelast##_fsuffix(dlist_t * list, object_t ** removed_node) { int err = removelast_dlist(list, (dlist_node_t**)removed_node) ; if (!err) *removed_node = asobject##_fsuffix(*(dlist_node_t**)removed_node) ; return err ; } static inline int remove##_fsuffix(dlist_t * list, object_t * node) { return remove_dlist(list, asnode##_fsuffix(node)) ; } static inline void replacenode##_fsuffix(dlist_t * list, object_t * newnode, object_t * oldnode) { replacenode_dlist(list, asnode##_fsuffix(newnode), asnode##_fsuffix(oldnode)) ; } static inline int removeall##_fsuffix(dlist_t * list, struct typeadapt_t * typeadp) { return removeall_dlist(list, nodeoffset##_fsuffix(), typeadp) ; } static inline void transfer##_fsuffix(dlist_t * tolist, dlist_t * fromlist) { transfer_dlist(tolist, fromlist) ; } static inline int initfirst##_fsuffix##iterator(dlist_iterator_t * iter, dlist_t * list) { return initfirst_dlistiterator(iter, list) ; } static inline int initlast##_fsuffix##iterator(dlist_iterator_t * iter, dlist_t * list) { return initlast_dlistiterator(iter, list) ; } static inline int free##_fsuffix##iterator(dlist_iterator_t * iter) { return free_dlistiterator(iter) ; } static inline bool next##_fsuffix##iterator(dlist_iterator_t * iter, object_t ** node) { bool isNext = next_dlistiterator(iter, (dlist_node_t**)node) ; if (isNext) *node = asobject##_fsuffix(*(dlist_node_t**)node) ; return isNext ; } static inline bool prev##_fsuffix##iterator(dlist_iterator_t * iter, object_t ** node) { bool isNext = prev_dlistiterator(iter, (dlist_node_t**)node) ; if (isNext) *node = asobject##_fsuffix(*(dlist_node_t**)node) ; return isNext ; }
Implements dlist_t.dlist_IMPLEMENT.
void dlist_IMPLEMENT(IDNAME _fsuffix,
TYPENAME object_t,
IDNAME nodeprefix) ;
Generates interface of double linked list storing elements of type object_t.
Implements interface to manage wlistentry_t in a double linked list of type dlist_t.
#define dlist_INIT { (void*)0 }
Static initializer.
#define dlist_INIT_LAST(lastnode) { (lastnode) }
Static initializer.
#define dlist_iterator_FREE { 0, 0 }
Static initializer.
struct dlist_iterator_t
Iterates over elements contained in dlist_t.
#define dlist_node_INIT { 0, 0 }
Static initializer.
struct dlist_node_t
Provides the means for linking an object to two others of the same type.
struct dlist_t
Double linked circular list.
int dnsname_ipaddr(const ipaddr_t *addr,
cstring_t *dns_name)
Tries a reverse mapping from a binary ip address into its dns name representation.
int dnsnameace_ipaddr(const ipaddr_t *addr,
cstring_t *dns_name)
Tries a reverse mapping from a binary ip address into its dns name representation.
The documentation is extracted from the source files by naturaldoc.
Manages a double linked circular list of objects.
Implements DoubleLinkedList.
Defines node type dlist_node_t which can be stored in a list of type dlist_t.
int dump_suffixtree(suffixtree_t *tree,
struct cstring_t *cstr)
Writes a simple ascii representation of all nodes into a cstring_t.
Close