Declares filter to select between different possible configuration.
typedef bool ( * eglconfig_filter_f ) (eglconfig_t eglconf, int32_t visualid, void * user)
Static initializer.
#define eglconfig_FREE 0
Contains an EGL frame buffer configuration.
typedef struct opengl_config_t * eglconfig_t
Static initializer.
#define eglcontext_FREE 0
Points to an OpenGL graphics context.
typedef opengl_context_t * eglcontext_t
Static initializer.
#define egldisplay_FREE 0
Wrapper of a native display type.
typedef struct opengl_display_t * egldisplay_t
Returns the an EGL specific error code of the last called EGL function.
int eglerr_egl( void )
Static initializer.
#define eglpbuffer_FREE 0
Points to an OpenGL pixel buffer.
typedef struct opengl_surface_t * eglpbuffer_t
Static initializer.
#define eglwindow_FREE 0
Wraps a native window into an EGL specific type.
typedef struct opengl_surface_t * eglwindow_t
Number of elements element_iterator can access in sequence.
size_t element_count
Points to an array of vm_region_t of size element_count.
vm_region_t * element_iterator
Number of elements stored in a single data block.
size_t elements_per_block
The size of a single element
uint16_t elementsize
Releases all unused memory blocks back to the operating system.
int ( * emptycache ) (pagecache_t * pgcache)
Implements pagecache_t.emptycache_pagecache.
#define emptycache_pagecache( pgcache ) ((pgcache).iimpl->emptycache((pgcache).object))
Calls pgcache->iimpl->emptycache with pgcache->object as first parameter.
int emptycache_pagecache( const pagecache_t pgcache )
Returns unused memory blocks back to OS.
#define EMPTYCACHE_PAGECACHE( ) (emptycache_pagecache(pagecache_maincontext()))
Releases all unused memory blocks back to the operating system.
int emptycache_pagecacheimpl( pagecache_impl_t * pgcache )
Enables a fpu exception to generate an interrupt.
int enable_fpuexcept( fpu_except_e exception_flags )
Encodes all parts and combines them into one string.
int encode_url( const url_t * url, /*ret*/struct wbuffer_t * encoded_url_string )
Encodes uchar into UTF-8 enocoded string of size strsize starting at strstart.
uint8_t encodechar_utf8( size_t strsize, /*out*/uint8_t strstart[strsize], char32_t uchar )
Points one after the last memory byte.
uint8_t * end
Points to memory address after the last byte of the string.
const uint8_t * end
As long as next is lower than end there are more bytes to read.
const uint8_t * end
Points to memory address one after the end address of allocated memory.
uint8_t * end
Last offset into nextpage which is start address of unused memory.
uint32_t end_offset
Offset of end of last node relative to start address of this object.
uint32_t end_offset
Returns address after the last element on page.
static void * end_queuepage( queue_page_t * qpage )
End address of mapping.
void * endaddr
Indicates if operation has completed.
int err
The error code which is returned by process_testerrortimer.
int errcode
Implements test_errortimer_t.errcode_testerrortimer.
#define errcode_testerrortimer( errtimer ) ((errtimer)->errcode)
Returns the error code of the timer.
int errcode_testerrortimer( const test_errortimer_t * errtimer )
Data for errorcontext_t module.
struct { uint16_t * stroffset ; uint8_t * strdata ; } error
Implementation of maincontext_t.error_maincontext.
#define error_maincontext( ) (pcontext_maincontext()->error)
Static initializer.
#define errorcontext_FREE { 0, 0 }
Static initializer used in processcontext_INIT_STATIC.
#define errorcontext_INIT_STATIC { g_errorcontext_stroffset, g_errorcontext_strdata }
Stores description of system errors in a string table.
struct errorcontext_t
Returns a NULL terminated name of the error with code »x11_errcode« in plain english.
void errorstring_x11display( const x11display_t * x11disp, int x11_errcode, char * buffer, uint8_t buffer_size )
Test for node having an even address (bit 0 is clear).
#define EVENADDRESS( node ) ((1u & (uintptr_t)(node)) == 0)
A pointer to type syncevent_t the syncthread is waiting for.
syncevent_t * event
Implements syncwait_t.event_syncwait.
#define event_syncwait( syncwait ) ((syncwait)->event)
Returns value syncwait->event (see syncwait_t.event).
syncevent_t * event_syncwait( const syncwait_t * syncwait )
Every event has an associated id.
ioevent_id_t eventid
Reference to x11window_evh_t which handles events.
const x11window_evh_t * evhimpl
Calls callabort_syncthread for every thread stored in queue qith id qid.
static int execabort_syncrun( syncrun_t * srun, enum syncrun_qid_e qid, uint16_t entrysize )
Forks a child process which runs the test function.
int execasprocess_unittest( int (*test_f)(void), /*out*/int * retcode )
Runs a single unit test.
int execsingle_unittest( const char * testname, int (*test_f)(void) )
Calls callwakeup_syncthread for a waiting thread given in waiting.
static int execwaiting_syncrun( syncrun_t * srun, syncwait_t * waiting, int retcode )
Ends the calling thread and sets retcode as its return code.
int exit_thread( int retcode )
Implements syncrun_t.exitthread_syncrun.
#define exitthread_syncrun( srun, err ) do { setstateexit_syncrun(srun) ; return err ; } while (0)
Sets the state of the running thread to syncrun_state_EXIT and returns err.
void exitthread_syncrun( syncrun_t * srun, int err )
Doubles the size of the node.
static int expand_trienode( trie_node_t * node )
Returns the number of times the timer has expired.
int expirationcount_systimer( systimer_t timer, /*out*/uint64_t * expiration_count )
Implements decimal_t.expmax_decimal.
#define expmax_decimal( dec ) ((int32_t)INT16_MAX * digitsperint_decimal())
Returns the maximum magnitude of the decimal exponent.
int32_t expmax_decimal( void )
The exponent with base »2 raised to 32«.
uint16_t exponent
The exponent of base number 1000000000.
int16_t exponent
Implements bigint_t.exponent_bigint.
#define exponent_bigint( big ) ((big)->exponent)
The number of trailing zero digits which are not explicitly stored.
uint16_t exponent_bigint( const bigint_t * big )
Implements decimal_t.exponent_decimal.
#define exponent_decimal( dec ) ((int32_t)(dec)->exponent * digitsperint_decimal())
Returns the decimal exponent of the number.
int32_t exponent_decimal( const decimal_t * dec )
Static initializer.
#define exthash_FREE { 0, 0, typeadapt_member_FREE, 0, 0}
Implements exthash_t.exthash_IMPLEMENT.
#define exthash_IMPLEMENT( _fsuffix, object_t, key_t, nodename ) typedef exthash_iterator_t iteratortype##_fsuffix ; typedef object_t * iteratedtype##_fsuffix ; static inline int initfirst##_fsuffix##iterator(exthash_iterator_t * iter, exthash_t * htable) __attribute__ ((always_inline)) ; static inline int free##_fsuffix##iterator(exthash_iterator_t * iter) __attribute__ ((always_inline)) ; static inline bool next##_fsuffix##iterator(exthash_iterator_t * iter, object_t ** node) __attribute__ ((always_inline)) ; static inline int init##_fsuffix(/*out*/exthash_t * htable, size_t initial_size, size_t max_size, const typeadapt_member_t * nodeadp) __attribute__ ((always_inline)) ; static inline int free##_fsuffix(exthash_t * htable) __attribute__ ((always_inline)) ; static inline bool isempty##_fsuffix(const exthash_t * htable) __attribute__ ((always_inline)) ; static inline size_t nrelements##_fsuffix(const exthash_t * htable) __attribute__ ((always_inline)) ; static inline int find##_fsuffix(exthash_t * htable, const key_t key, /*out*/object_t ** found_node) __attribute__ ((always_inline)) ; static inline int insert##_fsuffix(exthash_t * htable, object_t * new_node) __attribute__ ((always_inline)) ; static inline int remove##_fsuffix(exthash_t * htable, object_t * node) __attribute__ ((always_inline)) ; static inline int removenodes##_fsuffix(exthash_t * htable) __attribute__ ((always_inline)) ; static inline int invariant##_fsuffix(exthash_t * htable) __attribute__ ((always_inline)) ; static inline exthash_node_t * asnode##_fsuffix(object_t * object) { static_assert(&((object_t*)0)->nodename == (exthash_node_t*)offsetof(object_t, nodename), "correct type") ; return (exthash_node_t *) ((uintptr_t)object + offsetof(object_t, nodename)) ; } static inline object_t * asobject##_fsuffix(exthash_node_t * node) { return (object_t *) ((uintptr_t)node - offsetof(object_t, nodename)) ; } static inline int init##_fsuffix(/*out*/exthash_t * htable, size_t initial_size, size_t max_size, const typeadapt_member_t * nodeadp) { return init_exthash(htable, initial_size, max_size, nodeadp) ; } static inline int free##_fsuffix(exthash_t * htable) { return free_exthash(htable) ; } static inline bool isempty##_fsuffix(const exthash_t * htable) { return isempty_exthash(htable) ; } static inline size_t nrelements##_fsuffix(const exthash_t * htable) { return nrelements_exthash(htable) ; } static inline int find##_fsuffix(exthash_t * htable, const key_t key, /*out*/object_t ** found_node) { int err = find_exthash(htable, (void*)key, (exthash_node_t**)found_node) ; if (err == 0) *found_node = asobject##_fsuffix(*(exthash_node_t**)found_node) ; return err ; } static inline int insert##_fsuffix(exthash_t * htable, object_t * new_node) { return insert_exthash(htable, asnode##_fsuffix(new_node)) ; } static inline int remove##_fsuffix(exthash_t * htable, object_t * node) { int err = remove_exthash(htable, asnode##_fsuffix(node)) ; return err ; } static inline int removenodes##_fsuffix(exthash_t * htable) { return removenodes_exthash(htable) ; } static inline int invariant##_fsuffix(exthash_t * htable) { return invariant_exthash(htable) ; } static inline int initfirst##_fsuffix##iterator(exthash_iterator_t * iter, exthash_t * htable) { return initfirst_exthashiterator(iter, htable) ; } static inline int free##_fsuffix##iterator(exthash_iterator_t * iter) { return free_exthashiterator(iter) ; } static inline bool next##_fsuffix##iterator(exthash_iterator_t * iter, object_t ** node) { bool isNext = next_exthashiterator(iter, (exthash_node_t**)node) ; if (isNext) *node = asobject##_fsuffix(*(exthash_node_t**)node) ; return isNext ; }
Adapts interface of exthash_t to nodes of type object_t.
void exthash_IMPLEMENT( IDNAME _fsuffix, TYPENAME object_t, TYPENAME key_t, IDNAME nodename ) ;
Static initializer.
#define exthash_iterator_FREE { 0, 0, 0 }
Iterates over elements contained in exthash_t.
struct exthash_iterator_t
Static initializer.
#define exthash_node_INIT lrptree_node_INIT
Implements a hash table which doubles in size if needed.
struct exthash_t