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
P
 pageblock, pagecache_block_t
 pagecache, threadcontext_t
 PageCache-Object
 PageCache-Object impl
 pagecache_block_t
 pagecache_blockmap_ARRAYSIZE, pagecache_blockmap_t
 pagecache_blockmap_FREE, pagecache_blockmap_t
 pagecache_blockmap_t
 pagecache_correction, resourceusage_t
 pagecache_FREE, pagecache_t
 pagecache_impl_FREE, pagecache_impl_t
 pagecache_impl_it
 pagecache_impl_t
 pagecache_INIT, pagecache_t
 pagecache_it
 pagecache_it_DECLARE
 pagecache_it_FREE, pagecache_it
 pagecache_it_INIT, pagecache_it
 pagecache_macros_t
 pagecache_maincontext
 pagecache_staticusage, resourceusage_t
 pagecache_t
 pagecache_usage, resourceusage_t
 PageCacheMacros
 PageCacheMacros impl
 pagesize
 pagesize_e
 pagesize_vm
 pagesizeinbytes_pagecacheit
 pagesizeinbytes_queue
 pamerr2errno_sysuser
 parameter types
 Parameters
 parent
 PARENT
 parse_contentversion3_textresourcereader, textresource_reader_t
 parse_header_textresourcereader, textresource_reader_t
 parse_outconfigC_utf8reader, textresource_reader_t
 parse_outconfigCtable_utf8reader, textresource_reader_t
 parse_version_textresourcereader, textresource_reader_t
 parsechar_csvfilereaderparsestate, csvfilereader_parsestate_t
 parsedatafield_csvfilereaderparsestate, csvfilereader_parsestate_t
 parsenrcolumns_csvfilereaderparsestate, csvfilereader_parsestate_t
 parser, textresource_reader_t
 passwd_url
 path_directory, directory_t
 path_url
 Patricia-Trie
 Patricia-Trie impl
 PatriciaTrie-Node
 patriciatrie_FREE, patriciatrie_t
 patriciatrie_IMPLEMENT
 patriciatrie_INIT, patriciatrie_t
 patriciatrie_iterator_FREE, patriciatrie_iterator_t
 patriciatrie_iterator_t
 patriciatrie_node_INIT, patriciatrie_node_t
 patriciatrie_node_t
 patriciatrie_prefixiter_FREE, patriciatrie_prefixiter_t
 patriciatrie_prefixiter_t
 patriciatrie_t
 pcontext, threadcontext_t
 pcontext_maincontext
 peek_convertwchar, convert_wchar_t
 peekascii_utf8reader
 peekasciiatoffset_utf8reader
 peekbyte_utf8scanner
 peekutf8_stringstream
 pixelbuffer_FREE, pixelbuffer_t
 pixelbuffer_t
 platform_t
 PlatformInit
 PlatformInit Linux
 pop_binarystack
 pop2_binarystack, binarystack_t
 port_ipaddr, ipaddr_t
 port_url
 pos
 pos_window
 pos_x11window
 PosixSignals
 PosixSignals Linuximpl
 posshift, arraysf_t
 power10_decimalhelper
 prefetchdata_hwcache
 prefix_trienode, trie_node_t
 prefixlen, suffixtree_iterator_t
 prepare_malloc
 preparerun_syncrun
 preparewakeup_syncrun
 prev
 prev_dlist
 prev_dlistiterator
 prev_patriciatrieiterator, patriciatrie_iterator_t
 prev_redblacktreeiterator, redblacktree_iterator_t
 prev_splaytreeiterator, splaytree_iterator_t
 prevlastcolumn, textpos_t
 prevlastcolumn_textpos
 print_error
 print_usage
 print_version
 PRINTARRAYFIELD_ERRLOG
 PRINTARRAYFIELD_LOG
 PRINTCSTR_ERRLOG
 PRINTCSTR_LOG
 PRINTDOUBLE_ERRLOG
 PRINTDOUBLE_LOG
 printf, log_it
 PRINTF_ERRLOG
 PRINTF_LOG
 printf_logbuffer, logbuffer_t
 printf_logwriter, logwriter_t
 printfappend_cstring, cstring_t
 printheader_logbuffer, logbuffer_t
 PRINTINT_ERRLOG
 PRINTINT_LOG
 PRINTINT64_ERRLOG
 PRINTINT64_LOG
 PRINTPTR_ERRLOG
 PRINTPTR_LOG
 PRINTSIZE_ERRLOG
 PRINTSIZE_LOG
 printtext, log_it
 PRINTTEXT_ERRLOG
 PRINTTEXT_LOG
 printtext_logwriter, logwriter_t
 PRINTTEXT_NOARG_LOG
 PRINTTEXT_USER_ERRLOG
 PRINTUINT16_ERRLOG
 PRINTUINT16_LOG
 PRINTUINT32_ERRLOG
 PRINTUINT32_LOG
 PRINTUINT64_ERRLOG
 PRINTUINT64_LOG
 PRINTUINT8_ERRLOG
 PRINTUINT8_LOG
 PRINTVAR_LOG
 PRIuSIZE
 private, trie_t
 private variables, vm_mappedregions_t
 privileged_sysuser
 privilegeduser, sysuser_t
 PRIxFCT
 PROC_SELF_MAPS
 Process
 Process Linuximpl
 process_FREE, process_t
 process_result_t
 process_state_ABORTED
 process_state_e
 process_state_RUNNABLE
 process_state_STOPPED
 process_state_TERMINATED
 process_stdfd2_t
 process_stdio_INIT_DEVNULL, process_stdio_t
 process_stdio_INIT_INHERIT, process_stdio_t
 process_stdio_t
 process_t
 process_task_f
 process_testerrortimer
 PROCESS_testerrortimer
 ProcessContext
 ProcessContext impl
 processcontext_INIT_STATIC, processcontext_t
 processcontext_STATICSIZE, processcontext_t
 processcontext_t
 progname_maincontext
 Project Configuration
 Project-structure
 protect_vmpage, vmpage_t
 protection, vm_region_t
 protocol
 protocol_ipaddr, ipaddr_t
 protocol_ipsocket, ipsocket_t
 ptr, ioevent_id_t
 ptr_FREE, ptr_t
 ptr_t
 PTRALIGN, trie_nodedata_t
 ptrblock_t
 Public System Types
 push_binarystack
 push2_binarystack, binarystack_t
 pushnew_iterlist, suffixtreeiterator_adapter_it
vmpage_t pageblock
System memory page where free pages are located.
iobj_DECLARE(,
pagecache) pagecache
Thread local virtual memory page manager.
Offers object and interface for allocating pages of memory.
Implements PageCache-Object.
struct pagecache_block_t
Stores information about a block of memory pages.
#define pagecache_blockmap_ARRAYSIZE (2*1024*1024)
Static configuration of number of bytes used for the hash table.
#define pagecache_blockmap_FREE { 0, 0, 0, 0 }
Static initializer.
struct pagecache_blockmap_t
A simple shared hash map which maps an index pagecache_block_t.
size_t pagecache_correction
Size of pages resourceusage_t uses itself.
#define pagecache_FREE iobj_FREE
Static initializer.
#define pagecache_impl_FREE { { 0 }, { { 0 } }, { 0 }, 0, 0 }
Static initializer.
pagecache_it_DECLARE(pagecache_impl_it,
pagecache_impl_t)
struct pagecache_impl_t
Allocates and frees virtual memory pages and caches them.
#define pagecache_INIT(object,
iimpl) iobj_INIT(object, iimpl)
Static initializer.
struct pagecache_it
Interface which allows to allocate and relase pages of memory.
#define pagecache_it_DECLARE(
   declared_it,
   pagecache_t
) typedef struct declared_it declared_it ; struct declared_it { int (*allocpage) (pagecache_t * pgcache, uint8_t pgsize, /*out*/struct memblock_t * page) ; int (*releasepage) (pagecache_t * pgcache, struct memblock_t * page) ; size_t (*sizeallocated) (const pagecache_t * pgcache) ; int (*allocstatic) (pagecache_t * pgcache, size_t bytesize, /*out*/struct memblock_t * memblock) ; int (*freestatic) (pagecache_t * pgcache, struct memblock_t * memblock) ; size_t (*sizestatic) (const pagecache_t * pgcache) ; int (*emptycache) (pagecache_t * pgcache) ; } ;
Implements pagecache_it.pagecache_it_DECLARE.
void pagecache_it_DECLARE(TYPENAME declared_it,
TYPENAME pagecache_t)
Declares an interface function table for accessing pagecache.
#define pagecache_it_FREE { 0, 0, 0, 0, 0, 0, 0 }
Static initializer.
#define pagecache_it_INIT(
   allocpage_f,
   releasepage_f,
   sizeallocated_f,
   allocstatic_f,
   sizestatic_f,
   freestatic_f,
   emptycache_f
) { (allocpage_f), (releasepage_f), (sizeallocated_f), (allocstatic_f), (sizestatic_f), (freestatic_f), (emptycache_f) }
Static initializer.
#define pagecache_maincontext() (tcontext_maincontext()->pagecache)
Implements maincontext_t.pagecache_maincontext.
Returns object interface pagecache_t to access functionality of pagecache_impl_t.
size_t pagecache_staticusage
Size of static memory allocated in pagecache_t.
iobj_DECLARE(pagecache_t,
pagecache)
Uses iobj_DECLARE to declare interfaceable object.
size_t pagecache_usage
Sum of size of all cache memory pages.
Define macros to access thread local object of type pagecache_t storead in threadcontext_t.
Implements PageCacheMacros.
uint8_t pagesize
The size of a memory block.
size_t pagesize
Size of a single page stored in freepagelist.
List of supported page sizes.
uint32_t pagesize_vm(void)
Returns the virtual memory page size supported by the underlying system.
uint32_t pagesize_vm
The size of a virtual memory page in bytes.
Implements pagecache_it.pagesizeinbytes_pagecacheit.
size_t pagesizeinbytes_pagecacheit(pagesize_e pagesize)
Translates enum pagesize_e into size in bytes.
#define pagesizeinbytes_queue() (4096u)
Implements queue_t.pagesizeinbytes_queue.
uint32_t pagesizeinbytes_queue(void)
Returns the static size of a memory page the queue uses.
static int pamerr2errno_sysuser(int pamerr)
Converts error codes from pam lib to errno error codes.
Desctribes the different parameter types of functions.
A new policy introduced at 7 Aug 2012 states that in case of errors the returned values can be set to a cleared state and the out parameters to a FREEABLE state.
lrptree_node_t * parent
Points to parent node.
suffixtree_node_t * parent
The parent of node.
#define PARENT(
   node
) ((redblacktree_node_t*) (((uintptr_t)-2) & (uintptr_t)((node)->parent)))
Access parent pointer from node.
static int parse_contentversion3_textresourcereader(
   textresource_reader_t *reader
)
Parses content of “textresource version=’3’ /textresource”.
static int parse_header_textresourcereader(textresource_reader_t *reader)
Parses all header information.
static int parse_outconfigC_utf8reader(textresource_reader_t *reader)
Parses control information for generated output.
static int parse_outconfigCtable_utf8reader(textresource_reader_t *reader)
Parses control information for generated output.
static int parse_version_textresourcereader(textresource_reader_t *reader)
Skips comments until “textresource version=’4’” is found.
static int parsechar_csvfilereaderparsestate(csvfilereader_parsestate_t *state,
uint8_t chr)
Expects the next character to be of value chr.
static int parsedatafield_csvfilereaderparsestate(
   csvfilereader_parsestate_t *state,
   /*out*/string_t *value
)
Parses value between two double quotes.
static int parsenrcolumns_csvfilereaderparsestate(
   csvfilereader_parsestate_t *state,
   /*out*/size_t *nrcolumns
)
Counts the number of data fields of the first line.
#define passwd_url(url) getpart_url(url, url_part_PASSWD)
Implements url_t.passwd_url.
const char * passwd_url(const url_t *url)
Returns password or NULL if undefined.
int path_directory(const directory_t *dir,
/*ret*/struct wbuffer_t *path)
Returns absolute real path of directory dir in path.
#define path_url(url) getpart_url(url, url_part_PATH)
Implements url_t.path_url.
const char * path_url(const url_t *url)
Returns password or NULL if undefined.
Patricia Trie Interface.
Implements Patricia-Trie.
Defines node type patriciatrie_node_t which can be stored in tries of type patriciatrie_t.
#define patriciatrie_FREE patriciatrie_INIT(0,
typeadapt_member_FREE)
Static initializer.
#define patriciatrie_IMPLEMENT(
   _fsuffix,
   object_t,
   nodename
) typedef patriciatrie_iterator_t iteratortype##_fsuffix ; typedef object_t * iteratedtype##_fsuffix ; static inline int initfirst##_fsuffix##iterator(patriciatrie_iterator_t * iter, patriciatrie_t * tree) __attribute__ ((always_inline)) ; static inline int initlast##_fsuffix##iterator(patriciatrie_iterator_t * iter, patriciatrie_t * tree) __attribute__ ((always_inline)) ; static inline int free##_fsuffix##iterator(patriciatrie_iterator_t * iter) __attribute__ ((always_inline)) ; static inline bool next##_fsuffix##iterator(patriciatrie_iterator_t * iter, object_t ** node) __attribute__ ((always_inline)) ; static inline bool prev##_fsuffix##iterator(patriciatrie_iterator_t * iter, object_t ** node) __attribute__ ((always_inline)) ; static inline void init##_fsuffix(/*out*/patriciatrie_t * tree, const typeadapt_member_t * nodeadp) __attribute__ ((always_inline)) ; static inline int free##_fsuffix(patriciatrie_t * tree) __attribute__ ((always_inline)) ; static inline void getinistate##_fsuffix(const patriciatrie_t * tree, /*out*/object_t ** root, /*out*/typeadapt_member_t * nodeadp) __attribute__ ((always_inline)) ; static inline bool isempty##_fsuffix(const patriciatrie_t * tree) __attribute__ ((always_inline)) ; static inline int find##_fsuffix(patriciatrie_t * tree, size_t keylength, const uint8_t searchkey[keylength], /*out*/object_t ** found_node) __attribute__ ((always_inline)) ; static inline int insert##_fsuffix(patriciatrie_t * tree, object_t * new_node) __attribute__ ((always_inline)) ; static inline int remove##_fsuffix(patriciatrie_t * tree, size_t keylength, const uint8_t searchkey[keylength], /*out*/object_t ** removed_node) __attribute__ ((always_inline)) ; static inline int removenodes##_fsuffix(patriciatrie_t * tree) __attribute__ ((always_inline)) ; static inline patriciatrie_node_t * asnode##_fsuffix(object_t * object) { static_assert(&((object_t*)0)->nodename == (patriciatrie_node_t*)offsetof(object_t, nodename), "correct type") ; return (patriciatrie_node_t *) ((uintptr_t)object + offsetof(object_t, nodename)) ; } static inline object_t * asobject##_fsuffix(patriciatrie_node_t * node) { return (object_t *) ((uintptr_t)node - offsetof(object_t, nodename)) ; } static inline object_t * asobjectnull##_fsuffix(patriciatrie_node_t * node) { return node ? (object_t *) ((uintptr_t)node - offsetof(object_t, nodename)) : 0 ; } static inline void init##_fsuffix(/*out*/patriciatrie_t * tree, const typeadapt_member_t * nodeadp) { init_patriciatrie(tree, nodeadp) ; } static inline int free##_fsuffix(patriciatrie_t * tree) { return free_patriciatrie(tree) ; } static inline void getinistate##_fsuffix(const patriciatrie_t * tree, /*out*/object_t ** root, /*out*/typeadapt_member_t * nodeadp) { patriciatrie_node_t * rootnode ; getinistate_patriciatrie(tree, &rootnode, nodeadp) ; *root = asobjectnull##_fsuffix(rootnode) ; } static inline bool isempty##_fsuffix(const patriciatrie_t * tree) { return isempty_patriciatrie(tree) ; } static inline int find##_fsuffix(patriciatrie_t * tree, size_t keylength, const uint8_t searchkey[keylength], /*out*/object_t ** found_node) { int err = find_patriciatrie(tree, keylength, searchkey, (patriciatrie_node_t**)found_node) ; if (err == 0) *found_node = asobject##_fsuffix(*(patriciatrie_node_t**)found_node) ; return err ; } static inline int insert##_fsuffix(patriciatrie_t * tree, object_t * new_node) { return insert_patriciatrie(tree, asnode##_fsuffix(new_node)) ; } static inline int remove##_fsuffix(patriciatrie_t * tree, size_t keylength, const uint8_t searchkey[keylength], /*out*/object_t ** removed_node) { int err = remove_patriciatrie(tree, keylength, searchkey, (patriciatrie_node_t**)removed_node) ; if (err == 0) *removed_node = asobject##_fsuffix(*(patriciatrie_node_t**)removed_node) ; return err ; } static inline int removenodes##_fsuffix(patriciatrie_t * tree) { return removenodes_patriciatrie(tree) ; } static inline int initfirst##_fsuffix##iterator(patriciatrie_iterator_t * iter, patriciatrie_t * tree) { return initfirst_patriciatrieiterator(iter, tree) ; } static inline int initlast##_fsuffix##iterator(patriciatrie_iterator_t * iter, patriciatrie_t * tree) { return initlast_patriciatrieiterator(iter, tree) ; } static inline int free##_fsuffix##iterator(patriciatrie_iterator_t * iter) { return free_patriciatrieiterator(iter) ; } static inline bool next##_fsuffix##iterator(patriciatrie_iterator_t * iter, object_t ** node) { bool isNext = next_patriciatrieiterator(iter, (patriciatrie_node_t**)node) ; if (isNext) *node = asobject##_fsuffix(*(patriciatrie_node_t**)node) ; return isNext ; } static inline bool prev##_fsuffix##iterator(patriciatrie_iterator_t * iter, object_t ** node) { bool isNext = prev_patriciatrieiterator(iter, (patriciatrie_node_t**)node) ; if (isNext) *node = asobject##_fsuffix(*(patriciatrie_node_t**)node) ; return isNext ; }
Implements patriciatrie_t.patriciatrie_IMPLEMENT.
void patriciatrie_IMPLEMENT(IDNAME _fsuffix,
TYPENAME object_t,
IDNAME nodename) ;
Generates interface of patriciatrie_t storing elements of type object_t.
#define patriciatrie_INIT(root,
nodeadp) { root, nodeadp }
Static initializer.
#define patriciatrie_iterator_FREE { 0, 0 }
Static initializer.
struct patriciatrie_iterator_t
Iterates over elements contained in patriciatrie_t.
#define patriciatrie_node_INIT { 0, 0, 0 }
Static initializer.
struct patriciatrie_node_t
Management overhead of objects which wants to be stored in a patriciatrie_t.
#define patriciatrie_prefixiter_FREE { 0, 0, 0 }
Static initializer.
struct patriciatrie_prefixiter_t
Iterates over elements contained in patriciatrie_t.
struct patriciatrie_t
Implements a trie with path compression.
struct processcontext_t * pcontext
Points to shared processcontext_t.
#define pcontext_maincontext() (tcontext_maincontext()->pcontext)
Inline implementation of maincontext_t.pcontext_maincontext.
processcontext_t * pcontext_maincontext(void)
Returns processcontext_t of the current process.
extern int peek_convertwchar(const convert_wchar_t *conv,
size_t char_count,
wchar_t *wchar_array)
Converts the next char_count characters without modifying conv.
#define peekascii_utf8reader(
   utfread,
   nextascii
) ( __extension__ ({ int _err2 ; typeof(utfread) _rd2 = (utfread) ; if (isnext_utf8reader(_rd2)) { *(nextascii) = *_rd2->next ; _err2 = 0 ; } else { _err2 = ENODATA ; } _err2 ; }))
Implements utf8reader_t.peekascii_utf8reader.
int peekascii_utf8reader(const utf8reader_t *utfread,
uint8_t *nextascii)
Returns next ascii character.
#define peekasciiatoffset_utf8reader(
   utfread,
   offset,
   nextascii
) ( __extension__ ({ typeof(utfread) _rd2 = (utfread) ; int _err2 ; size_t _off2 = (offset) ; size_t _size = unreadsize_utf8reader(_rd2) ; if (_size > _off2) { *(nextascii) = _rd2->next[_off2] ; _err2 = 0 ; } else { _err2 = ENODATA ; } _err2 ; }))
Implements utf8reader_t.peekasciiatoffset_utf8reader.
int peekasciiatoffset_utf8reader(const utf8reader_t *utfread,
size_t offset,
uint8_t *nextascii)
Returns next ascii character with an offset if offset bytes.
Implements utf8scanner_t.peekbyte_utf8scanner.
uint8_t peekbyte_utf8scanner(utf8scanner_t *scan,
size_t offset)
Returns any byte from the buffer without changing the read pointer.
#define peekutf8_stringstream(
   strstream,
   uchar
) ( __extension__ ({ stringstream_t * _strstr = (strstream) ; nextutf8_stringstream( &(stringstream_t) stringstream_INIT( _strstr->next, _strstr->end), uchar) ; }))
Implements stringstream_t.peekutf8_stringstream.
int peekutf8_stringstream(const struct stringstream_t *strstream,
/*out*/char32_t *uchar)
Same as nextutf8_stringstream except the strstream is not changed.
#define pixelbuffer_FREE surface_FREE
Static initializer.
struct pixelbuffer_t
Wraps a native OpenGL off-screen pixel buffer.
struct platform_t
Dummy type which represents the operating system platform.
Offers platform specific initialization function platform_t.init_platform.
Implements PlatformInit in a Linux specific way.
#define pop_binarystack(
   stack,
   size
) ( __extension__ ({ int _err ; binarystack_t * _stack = (stack) ; uint32_t _size = (size) ; if (_stack->blocksize - _stack->freeblocksize > _size) { _stack->freeblocksize += _size ; _err = 0 ; } else { _err = pop2_binarystack(_stack, _size) ; } _err ; }))
Implements binarystack_t.pop_binarystack.
int pop_binarystack(binarystack_t *stack,
size_t size)
Removes the last pushed object from the stack.
int pop2_binarystack(binarystack_t *stack,
size_t size)
Same functionality as pop_binarystack.
ipport_t port_ipaddr(const ipaddr_t *addr)
Returns the port number of the address.
#define port_url(url) getpart_url(url, url_part_PORT)
Implements url_t.port_url.
const char * port_url(const url_t *url)
Returns port or NULL if undefined.
size_t pos
Index of node stored in arraysf_t.
suffixtree_pos_t pos
Position in suffixtree_t where the next character is added.
#define pos_window(win,
screen_x,
screen_y) pos_x11window(os_window(win), screen_x, screen_y)
Implements window_t.pos_window.
int pos_window(const window_t *win,
/*out*/int32_t *screen_x,
/*out*/int32_t *screen_y)
Returns the position of the window in screen coordinates.
#define pos_x11window(
   x11win,
   screen_x,
   screen_y
) (geometry_x11window(x11win, screen_x, screen_y, 0, 0))
Implements x11window_t.pos_x11window.
int pos_x11window(const x11window_t *x11win,
/*out*/int32_t *screen_x,
/*out*/int32_t *screen_y)
Returns the position of the window in screen coordinates.
Implements PosixSignals with help of POSIX interface.
uint32_t posshift:8
The number of bits pos index of arraysf_node_t is shifted right before it is used modulo toplevelsize to access root.
static inline uint32_t power10_decimalhelper(unsigned exponent)
Calculates pow(10, exponent) for 0 <= exponent <= 9.
#define prefetchdata_hwcache(
   addr
) (__builtin_prefetch((addr), 0/*read*/, 3/*put data in all cache levels*/))
Implements hwcache_t.prefetchdata_hwcache.
void prefetchdata_hwcache(void *addr)
Prefetches data into all levels of hw cache.
static inline uint8_t * prefix_trienode(trie_node_t *node)
Returns ptr to digit array.
size_t prefixlen
Sum of length of strings on the path from root up to next_child.
int prepare_malloc(void)
Inits test of system-malloc.
static inline int preparerun_syncrun(syncrun_t *srun,
syncthread_t *running_thread)
Sets all values in srun->running (syncrun_t.running).
static inline void preparewakeup_syncrun(syncrun_t *srun,
void *continuelabel,
int retcode)
Sets all values in srun->wakeup (syncrun_t.wakeup).
dlist_node_t * prev
Points to previous node in the list.
struct dlist_node_t * prev
PRev memory page in list of pages.
#define prev_dlist(node) ((node)->prev)
Implements dlist_t.prev_dlist.
struct dlist_node_t * prev_dlist(struct dlist_node_t *node)
Returns the node coming before this node.
#define prev_dlistiterator(
   iter,
   node
) ( __extension__ ({ typeof(iter) _iter = (iter) ; bool _isNext = (0 != _iter->next) ; if (_isNext) { *(node) = _iter->next ; _iter->next = prev_dlist(_iter->next) ; if (_iter->list->last == _iter->next) { _iter->next = 0 ; } } _isNext ; }))
Implements dlist_iterator_t.prev_dlistiterator.
bool prev_dlistiterator(dlist_iterator_t *iter,
/*out*/struct dlist_node_t **node)
Returns all elements from last to first node of list.
bool prev_patriciatrieiterator(patriciatrie_iterator_t *iter,
/*out*/patriciatrie_node_t **node)
Returns next node of tree in descending order.
bool prev_redblacktreeiterator(redblacktree_iterator_t *iter,
/*out*/redblacktree_node_t **node)
Returns next node of tree in descending order.
bool prev_splaytreeiterator(splaytree_iterator_t *iter,
/*out*/splaytree_node_t **node)
Returns next node of tree in descending order.
size_t prevlastcolumn
Column number of the last character on the previous line.
#define prevlastcolumn_textpos(txtpos) ((txtpos)->prevlastcolumn)
Implements textpos_t.prevlastcolumn_textpos.
size_t prevlastcolumn_textpos(const textpos_t *txtpos)
Returns the column number of the last character of the previous line (number).
static void print_error(const char *format,
 ...)
Prints formatted error string.
static void print_usage(void)
Prints usage information.
static void print_version(void)
Prints version information
#define PRINTARRAYFIELD_ERRLOG(
   format,
   arrname,
   index
) PRINTARRAYFIELD_LOG(log_channel_ERR, format, arrname, index)
Log value of variable stored in array at offset i.
#define PRINTARRAYFIELD_LOG(
   LOGCHANNEL,
   format,
   arrname,
   index
) PRINTF_LOG(LOGCHANNEL, log_flags_NONE, 0, #arrname "[%d]=%" format "\n", i, (arrname)[i])
Log value of variable stored in array at offset i.
#define PRINTCSTR_ERRLOG(varname) PRINTCSTR_LOG(log_channel_ERR, varname)
Log “name=value” of string variable.
#define PRINTCSTR_LOG(LOGCHANNEL,
varname) PRINTVAR_LOG(LOGCHANNEL, "s", varname, )
Log “name=value” of string variable.
#define PRINTDOUBLE_ERRLOG(varname) PRINTDOUBLE_LOG(log_channel_ERR, varname)
Log “name=value” of double or float variable.
#define PRINTDOUBLE_LOG(LOGCHANNEL,
varname) PRINTVAR_LOG(LOGCHANNEL, "g", varname, )
Log “name=value” of double or float variable.
void (
   *printf
) (void * log, uint8_t channel, uint8_t flags, const log_header_t * header, const char * format, ... ) __attribute__ ((__format__ (__printf__, 5, 6)))
Writes a new log entry to in internal buffer.
#define PRINTF_ERRLOG(
   ...
) PRINTF_LOG(log_channel_ERR, log_flags_NONE, 0, __VA_ARGS__)
Logs a generic printf type format string as error.
#define PRINTF_LOG(
   LOGCHANNEL,
   FLAGS,
   HEADER,
   ...
) do { log_maincontext().iimpl->printf( log_maincontext().object, LOGCHANNEL, FLAGS, HEADER, __VA_ARGS__ ) ; } while(0)
Logs a generic printf type format string.
void printf_logbuffer(
   logbuffer_t *logbuf,
   const char *format,
    ...
) __attribute__ ((__format__ (__printf__, 2, 3)))
Writes new log entry to log buffer.
void printf_logwriter(
   logwriter_t *lgwrt,
   uint8_t channel,
   uint8_t flags,
   const struct log_header_t *header,
   const char *format,
    ...
) __attribute__ ((__format__ (__printf__, 5, 6)))
Writes new log entry to internal buffer.
int printfappend_cstring(
   cstring_t *cstr,
   const char *format,
    ...
) __attribute__ ((__format__ (__printf__, 2, 3)))
Appends printf formatted string to cstr.
void printheader_logbuffer(logbuffer_t *logbuf,
const struct log_header_t *header)
Appends header to log buffer.
#define PRINTINT_ERRLOG(varname) PRINTINT_LOG(log_channel_ERR, varname)
Log “name=value” of int variable.
#define PRINTINT_LOG(LOGCHANNEL,
varname) PRINTVAR_LOG(LOGCHANNEL, "d", varname, )
Log “name=value” of int variable.
#define PRINTINT64_ERRLOG(varname) PRINTINT64_LOG(log_channel_ERR, varname)
Log “name=value” of int variable.
#define PRINTINT64_LOG(LOGCHANNEL,
varname) PRINTVAR_LOG(LOGCHANNEL, PRId64, varname, )
Log “name=value” of int64_t variable.
#define PRINTPTR_ERRLOG(varname) PRINTPTR_LOG(log_channel_ERR, varname)
Log “name=value” of pointer variable.
#define PRINTPTR_LOG(
   LOGCHANNEL,
   varname
) PRINTVAR_LOG(LOGCHANNEL, "p", varname, (const void*))
Log “name=value” of pointer variable.
#define PRINTSIZE_ERRLOG(varname) PRINTSIZE_LOG(log_channel_ERR, varname)
Log “name=value” of size_t variable.
#define PRINTSIZE_LOG(LOGCHANNEL,
varname) PRINTVAR_LOG(LOGCHANNEL, PRIuSIZE, varname, )
Log “name=value” of size_t variable.
void (
   *printtext
) (void * log, uint8_t channel, uint8_t flags, const log_header_t * header, log_text_f textf, ... )
Writes text resource as new log entry to in internal buffer.
#define PRINTTEXT_ERRLOG(
   TEXTID,
   ...
) do { PRINTTEXT_LOG( log_channel_ERR, log_flags_NONE, 0, TEXTID ## _ERRLOG, __VA_ARGS__) ; } while(0)
Logs an TEXTID from C-kern/resource/errlog.text.
#define PRINTTEXT_LOG(
   LOGCHANNEL,
   FLAGS,
   HEADER,
   TEXTID,
   ...
) do { if (0) { test for correct parameter TEXTID( (struct logbuffer_t*)0 , ## __VA_ARGS__) ; } log_maincontext().iimpl->printtext( log_maincontext().object, LOGCHANNEL, FLAGS, HEADER, & v ## TEXTID, __VA_ARGS__) ; } while(0)
Logs a text resource string.
void printtext_logwriter(logwriter_t *lgwrt,
uint8_t channel,
uint8_t flags,
const struct log_header_t *header,
log_text_f textf,
 ...)
Writes a text resource to internal buffer.
#define PRINTTEXT_NOARG_LOG(
   LOGCHANNEL,
   FLAGS,
   HEADER,
   TEXTID
) do { if (0) { test for correct parameter TEXTID( (struct logbuffer_t*)0) ; } log_maincontext().iimpl->printtext( log_maincontext().object, LOGCHANNEL, FLAGS, HEADER, & v ## TEXTID) ; } while(0)
Logs a text resource string.
#define PRINTTEXT_USER_ERRLOG(
   TEXTID,
   ...
) do { PRINTTEXT_LOG( log_channel_USERERR, log_flags_NONE, 0, TEXTID ## _ERRLOG, __VA_ARGS__) ; } while(0)
Logs an TEXTID from C-kern/resource/errlog.text to log_channel_USERERR.
#define PRINTUINT16_ERRLOG(varname) PRINTUINT16_LOG(log_channel_ERR, varname)
Log “name=value” of uint16_t variable.
#define PRINTUINT16_LOG(LOGCHANNEL,
varname) PRINTVAR_LOG(LOGCHANNEL, PRIu16, varname, )
Log “name=value” of uint16_t variable.
#define PRINTUINT32_ERRLOG(varname) PRINTUINT32_LOG(log_channel_ERR, varname)
Log “name=value” of uint32_t variable.
#define PRINTUINT32_LOG(LOGCHANNEL,
varname) PRINTVAR_LOG(LOGCHANNEL, PRIu32, varname, )
Log “name=value” of uint32_t variable.
#define PRINTUINT64_ERRLOG(varname) PRINTUINT64_LOG(log_channel_ERR, varname)
Log “name=value” of uint64_t variable.
#define PRINTUINT64_LOG(LOGCHANNEL,
varname) PRINTVAR_LOG(LOGCHANNEL, PRIu64, varname, )
Log “name=value” of uint64_t variable.
#define PRINTUINT8_ERRLOG(varname) PRINTUINT8_LOG(log_channel_ERR, varname)
Log “name=value” of uint8_t variable.
#define PRINTUINT8_LOG(LOGCHANNEL,
varname) PRINTVAR_LOG(LOGCHANNEL, PRIu8, varname, )
Log “name=value” of uint8_t variable.
#define PRINTVAR_LOG(
   LOGCHANNEL,
   format,
   varname,
   cast
) PRINTF_LOG(LOGCHANNEL, log_flags_NONE, 0, #varname "=%" format "\n", cast (varname))
Logs “<varname>=varvalue” of a variable with name varname.
#define PRIuSIZE "zu"
printf unsigned int format specifier ‘zu’ for type size_t.
#define privileged_sysuser(sysusr) ((sysusr)->privilegeduser)
Implement sysuser_t.privileged_sysuser.
sysuser_id_t privileged_sysuser(sysuser_t *sysusr)
Returns sysuser_id_t of the user which has other privileges.
sysuser_id_t privilegeduser
Contains privileged user which is set at process creation from the system.
#define PRIxFCT PRIxPTR
printf hexadecimal format specifier for type uintptrf_t.
#define PROC_SELF_MAPS "/proc/self/maps"
The Linux system file containing the currently mapped memory regions and their access permissions of this process.
Allows to creates a new process executable or a child process which executes a function.
Implements Process.
#define process_FREE sys_process_FREE
Static initializer.
struct process_result_t
Holds result of terminated process.
The process has ended due to an abnormal condition (unhandled signal/exception).
Describes the state of a process.
The process is in a runable state (either executing, waiting for execution or waiting for a system call to complete)
The process has been stopped by a STOP signal.
The process has exited normal and returned an exit code.
#define process_stdio_INIT_DEVNULL { sys_iochannel_FREE, sys_iochannel_FREE, sys_iochannel_FREE }
Static initializer lets new process write and read from null device.
#define process_stdio_INIT_INHERIT { sys_iochannel_STDIN, sys_iochannel_STDOUT, sys_iochannel_STDERR }
Static initializer lets new process inherit standard io channels.
struct process_stdio_t
The process standard io channel redirections.
typedef sys_process_t process_t
Represents system specific process.
typedef int (*process_task_f) (void * task_arg)
Defines function type executed by process_t.
#define process_testerrortimer(
   errtimer
) ( __extension__ ({ test_errortimer_t * _tm = (errtimer) ; int _err ; if ( _tm->timercount && ! (-- _tm->timercount)) { _err = _tm->errcode ; } else { _err = 0 ; } _err ; }))
Implements test_errortimer_t.process_testerrortimer.
int process_testerrortimer(test_errortimer_t *errtimer)
Returns error if timer has elapsed else 0.
#define PROCESS_testerrortimer(errtimer) (process_testerrortimer(errtimer))
Implements test_errortimer_t.PROCESS_testerrortimer.
int PROCESS_testerrortimer(test_errortimer_t *errtimer)
This function calls <process_testerrortimer>(errtimer) and returns its value.
Defines the global context of the running system process.
Implements the global context of the running system process.
#define processcontext_INIT_STATIC { 0, 0, errorcontext_INIT_STATIC, 0, 0 }
Static initializer.
#define processcontext_STATICSIZE (
   sizeof(sysuser_t) + sizeof(valuecache_t) sizeof(pagecache_blockmap_t)
)
Defines the number of bytes needed from processcontext_t.
struct processcontext_t
Defines computing environment / context which is shared between all threads of computation.
#define progname_maincontext() (self_maincontext()->progname)
Inline implementation of maincontext_t.progname_maincontext.
const char * progname_maincontext(void)
Returns the program name of the running process.
Run ./configure which reads the system configuration of freetype2 and writes it to projekte/external-lib/freetype2.
Explanation of directory structure.
int protect_vmpage(vmpage_t *vmpage,
const accessmode_e access_mode)
Sets protection of memory (e.g.
accessmode_e protection
Gives protection (access rights) of the memory block.
uint16_t protocol
Same as ipaddr_t.protocol.
uint16_t protocol
Indicates a specific internet protocol.
ipprotocol_e protocol_ipaddr(const ipaddr_t *addr)
Returns the specified protocol for this ip address.
uint16_t protocol_ipsocket(const ipsocket_t *ipsock)
Returns protocol ipprotocol_e of the socket.
void * ptr
Allows to store the id value as pointer type.
#define ptr_FREE { 0 }
Static initializer.
typedef void * ptr_t
Defines generic pointer type which points to data in memory.
#define PTRALIGN (offsetof(trie_nodedata_t, uservalue))
Alignment of trie_nodedata_t.uservalue.
struct ptrblock_t
A memory block which contains pointers to other ptrblock_t or datablock_t.
Implements binarystack_t.push_binarystack.
int push_binarystack(binarystack_t *stack,
/*out*/void **lastpushed)
Allocates memory for new object and returns pointer to its start address.
int push2_binarystack(binarystack_t *stack,
uint32_t size,
/*out*/uint8_t **lastpushed)
Does same as push_binarystack but allocates a new block if necessary.
static suffixtree_iterator_t * pushnew_iterlist(slist_t *stack)
Creates new suffixtree_iterator_t and pushes onto suffixtreeiterator_list_t.
Close