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
E
 EGl-Context
 EGl-Context impl
 EGL-Display
 EGL-Display impl
 EGL-Framebuffer-Configuration
 EGL-Framebuffer-Configuration impl
 EGL-OpenGL-Binding
 EGL-OpenGL-Binding impl
 EGl-PBuffer
 EGl-PBuffer impl
 EGL-Window
 EGL-Window impl
 egl_t
 eglconfig_filter_f
 eglconfig_FREE, eglconfig_t
 eglconfig_t
 eglcontext_FREE, eglcontext_t
 eglcontext_t
 egldisplay_FREE, egldisplay_t
 egldisplay_t
 eglerr_egl, egl_t
 eglpbuffer_FREE, eglpbuffer_t
 eglpbuffer_t
 EGLSystemKonfig
 eglwindow_FREE, eglwindow_t
 eglwindow_t
 EINVARIANT
 ELEAK
 element_count, vm_mappedregions_t
 element_iterator, vm_mappedregions_t
 elements_per_block, blockarray_t
 elementsize, blockarray_t
 emptycache, pagecache_it
 emptycache_pagecache
 EMPTYCACHE_PAGECACHE
 emptycache_pagecacheimpl, pagecache_impl_t
 enable
 enable_fpuexcept
 encode-decode, utf8
 encode_url, url_t
 encodechar_utf8, utf8
 end
 end_offset
 end_queuepage
 endaddr, vm_region_t
 Enum Example
 Enumerations
 err, ipsocket_async_t
 errcode, test_errortimer_t
 errcode_testerrortimer
 ErrlogMacros
 error, processcontext_t
 Error Handling
 Error Handling in Functions
 Error-Detection
 Error-Handling
 error_maincontext
 ErrorContext
 ErrorContext impl
 errorcontext_FREE, errorcontext_t
 errorcontext_INIT_STATIC, errorcontext_t
 errorcontext_t
 ErrorHandling
 Errorlog-Writer
 errornr_e
 ErrorNumbers
 ErrorNumbers impl
 errorstring_x11display, x11display_t
 EVENADDRESS
 event, syncwait_t
 event_syncwait
 eventid, ioevent_t
 evhimpl, x11window_t
 Examples
 execabort_syncrun
 execasprocess_unittest, unittest_t
 execsingle_unittest, unittest_t
 execute
 execution state, syncthread_t
 execwaiting_syncrun
 exit_thread, thread_t
 exitthread_syncrun
 expand_trienode, trie_node_t
 expirationcount_systimer, systimer_t
 expmax_decimal
 exponent
 exponent_bigint
 exponent_decimal
 Extended Error Description
 Extendible-Hashing
 Extendible-Hashing impl
 extension support
 Extension-Includes
 exthash_FREE, exthash_t
 exthash_IMPLEMENT
 exthash_iterator_FREE, exthash_iterator_t
 exthash_iterator_t
 exthash_node_INIT, exthash_node_t
 exthash_node_t
 exthash_t
Wraps the creation of an OpenGL graphics context using the EGL api.
Implements EGl-Context.
Implements the binding of a native os-specific graphics display to OpenGL / OpenGLES.
Implements EGL-Display.
Describes a frame buffer / surface configuration for a given egldisplay_t.
Implements EGL-Framebuffer-Configuration.
Contains basic functionality like error handling.
Implements EGL-OpenGL-Binding.
Supports the creation of off-screen pixel buffers (surfaces) for use with OpenGL ES.
Implements EGl-PBuffer.
Wraps a native window into an EGL window surface.
Implements EGL-Window.
typedef bool (
   *eglconfig_filter_f
) (eglconfig_t eglconf, int32_t visualid, void * user)
Declares filter to select between different possible configuration.
#define eglconfig_FREE 0
Static initializer.
typedef struct opengl_config_t * eglconfig_t
Contains an EGL frame buffer configuration.
#define eglcontext_FREE 0
Static initializer.
typedef opengl_context_t * eglcontext_t
Points to an OpenGL graphics context.
#define egldisplay_FREE 0
Static initializer.
typedef struct opengl_display_t * egldisplay_t
Wrapper of a native display type.
int eglerr_egl(void)
Returns the an EGL specific error code of the last called EGL function.
#define eglpbuffer_FREE 0
Static initializer.
typedef struct opengl_surface_t * eglpbuffer_t
Points to an OpenGL pixel buffer.
Contains EGL specific include files to support binding of OpenGL to native windowing system.
#define eglwindow_FREE 0
Static initializer.
typedef struct opengl_surface_t * eglwindow_t
Wraps a native window into an EGL specific type.
Invariant violated.
Resource leak.
size_t element_count
Number of elements element_iterator can access in sequence.
vm_region_t * element_iterator
Points to an array of vm_region_t of size element_count.
size_t elements_per_block
Number of elements stored in a single data block.
uint16_t elementsize
The size of a single element
int (*emptycache) (pagecache_t * pgcache)
Releases all unused memory blocks back to the operating system.
#define emptycache_pagecache(
   pgcache
) ((pgcache).iimpl->emptycache((pgcache).object))
Implements pagecache_t.emptycache_pagecache.
int emptycache_pagecache(const pagecache_t pgcache)
Calls pgcache->iimpl->emptycache with pgcache->object as first parameter.
#define EMPTYCACHE_PAGECACHE() (emptycache_pagecache(pagecache_maincontext()))
Returns unused memory blocks back to OS.
int emptycache_pagecacheimpl(pagecache_impl_t *pgcache)
Releases all unused memory blocks back to the operating system.
int enable_fpuexcept(fpu_except_e exception_flags)
Enables a fpu exception to generate an interrupt.
int encode_url(const url_t *url,
/*ret*/struct wbuffer_t *encoded_url_string)
Encodes all parts and combines them into one string.
uint8_t encodechar_utf8(size_t strsize,
/*out*/uint8_t strstart[strsize],
char32_t uchar)
Encodes uchar into UTF-8 enocoded string of size strsize starting at strstart.
uint8_t * end
Points one after the last memory byte.
const 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.
uint8_t * end
Points to memory address one after the end address of allocated memory.
uint32_t end_offset
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.
static void * end_queuepage(queue_page_t *qpage)
Returns address after the last element on page.
void * endaddr
End address of mapping.
int err
Indicates if operation has completed.
int errcode
The error code which is returned by process_testerrortimer.
#define errcode_testerrortimer(errtimer) ((errtimer)->errcode)
Implements test_errortimer_t.errcode_testerrortimer.
int errcode_testerrortimer(const test_errortimer_t *errtimer)
Returns the error code of the timer.
Defines error logging macros.
struct { uint16_t * stroffset ; uint8_t * strdata ; } error
Data for errorcontext_t module.
If a running syncthread can not allocate a system resource it needs for its computation it could either wait a little time and try again.
Error detection is sometimes the hardest path but in this document it is considered as trivial.
Describes what to do in case of a detected error.
#define error_maincontext() (pcontext_maincontext()->error)
Implementation of maincontext_t.error_maincontext.
Returns error string table (see errorcontext_t).
Manages string table of system errors.
Implements ErrorContext.
#define errorcontext_FREE { 0, 0 }
Static initializer.
#define errorcontext_INIT_STATIC { g_errorcontext_stroffset, g_errorcontext_strdata }
Static initializer used in processcontext_INIT_STATIC.
struct errorcontext_t
Stores description of system errors in a string table.
Writes error log text.
Application specific error codes.
Contains list of application specific error numbers.
Implements ErrorNumbers.
void errorstring_x11display(const x11display_t *x11disp,
int x11_errcode,
char *buffer,
uint8_t buffer_size)
Returns a NULL terminated name of the error with code »x11_errcode« in plain english.
#define EVENADDRESS(node) ((1u & (uintptr_t)(node)) == 0)
Test for node having an even address (bit 0 is clear).
syncevent_t * event
A pointer to type syncevent_t the syncthread is waiting for.
#define event_syncwait(syncwait) ((syncwait)->event)
Implements syncwait_t.event_syncwait.
syncevent_t * event_syncwait(const syncwait_t *syncwait)
Returns value syncwait->event (see syncwait_t.event).
ioevent_id_t eventid
Every event has an associated id.
const x11window_evh_t * evhimpl
Reference to x11window_evh_t which handles events.
static int execabort_syncrun(syncrun_t *srun,
enum syncrun_qid_e qid,
uint16_t entrysize)
Calls callabort_syncthread for every thread stored in queue qith id qid.
int execasprocess_unittest(int (*test_f)(void),
/*out*/int *retcode)
Forks a child process which runs the test function.
int execsingle_unittest(const char *testname,
int (*test_f)(void))
Runs a single unit test.
static int execwaiting_syncrun(syncrun_t *srun,
syncwait_t *waiting,
int retcode)
Calls callwakeup_syncthread for a waiting thread given in waiting.
int exit_thread(int retcode)
Ends the calling thread and sets retcode as its return code.
#define exitthread_syncrun(
   srun,
   err
) do { setstateexit_syncrun(srun) ; return err ; } while (0)
Implements syncrun_t.exitthread_syncrun.
void exitthread_syncrun(syncrun_t *srun,
int err)
Sets the state of the running thread to syncrun_state_EXIT and returns err.
static int expand_trienode(trie_node_t *node)
Doubles the size of the node.
int expirationcount_systimer(systimer_t timer,
/*out*/uint64_t *expiration_count)
Returns the number of times the timer has expired.
#define expmax_decimal(dec) ((int32_t)INT16_MAX * digitsperint_decimal())
Implements decimal_t.expmax_decimal.
int32_t expmax_decimal(void)
Returns the maximum magnitude of the decimal exponent.
uint16_t exponent
The exponent with base »2 raised to 32«.
int16_t exponent
The exponent of base number 1000000000.
#define exponent_bigint(big) ((big)->exponent)
Implements bigint_t.exponent_bigint.
uint16_t exponent_bigint(const bigint_t *big)
The number of trailing zero digits which are not explicitly stored.
#define exponent_decimal(
   dec
) ((int32_t)(dec)->exponent * digitsperint_decimal())
Implements decimal_t.exponent_decimal.
int32_t exponent_decimal(const decimal_t *dec)
Returns the decimal exponent of the number.
Offers a container which organizes stored nodes as a hash table.
Implements Extendible-Hashing.
#define exthash_FREE { 0, 0, typeadapt_member_FREE, 0, 0}
Static initializer.
#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 ; }
Implements exthash_t.exthash_IMPLEMENT.
void exthash_IMPLEMENT(IDNAME _fsuffix,
TYPENAME object_t,
TYPENAME key_t,
IDNAME nodename) ;
Adapts interface of exthash_t to nodes of type object_t.
#define exthash_iterator_FREE { 0, 0, 0 }
Static initializer.
struct exthash_iterator_t
Iterates over elements contained in exthash_t.
#define exthash_node_INIT lrptree_node_INIT
Static initializer.
struct exthash_t
Implements a hash table which doubles in size if needed.
Close