Q | |
query_url | |
queue_FREE, queue_t | |
queue_IMPLEMENT | |
queue_INIT, queue_t | |
queue_iterator_FREE, queue_iterator_t | |
queue_syncwlist | |
queuefromaddr_queue | |
queuefromaddr_syncqueue | |
R | |
readmaxsize_windowconfig | |
readminsize_windowconfig | |
readpos_windowconfig | |
readsize_windowconfig | |
readtitle_windowconfig | |
readtransparency_windowconfig | |
readtype_windowconfig | |
real_sysuser | |
redblacktree_FREE, redblacktree_t | |
redblacktree_IMPLEMENT | |
redblacktree_INIT, redblacktree_t | |
redblacktree_iterator_FREE, redblacktree_iterator_t | |
redirecterr_processstdio | |
redirectin_processstdio | |
redirectout_processstdio | |
RELEASE_PAGECACHE | |
releasecurrent_gcontext | |
releasepage_pagecache | |
remove_syncqueue | |
remove_trie | |
removeall_dlist | |
removeall_slist | |
removefirst_syncqueue | |
removelast_syncqueue | |
RESIZE_ERR_MM | |
RESIZE_MM | |
resize_window | |
resourceusage_FREE, resourceusage_t | |
retcode_syncrun | |
returncode_thread | |
reversebits_int | |
rwlock_FREE, rwlock_t | |
rwlock_INIT, rwlock_t |
Implements url_t.query_url.
#define query_url( url ) getpart_url(url, url_part_QUERY)
Static initializer.
#define queue_FREE queue_INIT
Implements queue_t.queue_IMPLEMENT.
#define queue_IMPLEMENT( _fsuffix, object_t ) typedef queue_iterator_t iteratortype##_fsuffix ; typedef object_t * iteratedtype##_fsuffix ; static inline int initfirst##_fsuffix##iterator(/*out*/queue_iterator_t * iter, queue_t * queue) __attribute__ ((always_inline)) ; static inline int free##_fsuffix##iterator(queue_iterator_t * iter) __attribute__ ((always_inline)) ; static inline bool next##_fsuffix##iterator(queue_iterator_t * iter, object_t ** node) __attribute__ ((always_inline)) ; static inline int init##_fsuffix(/*out*/queue_t * queue) __attribute__ ((always_inline)) ; static inline void initmove##_fsuffix(/*out*/queue_t * dest, queue_t * src) __attribute__ ((always_inline)) ; static inline int free##_fsuffix(queue_t * queue) __attribute__ ((always_inline)) ; static inline bool isempty##_fsuffix(const queue_t * queue) __attribute__ ((always_inline)) ; static inline object_t * first##_fsuffix(const queue_t * queue) __attribute__ ((always_inline)) ; static inline object_t * last##_fsuffix(const queue_t * queue) __attribute__ ((always_inline)) ; static inline size_t sizefirst##_fsuffix(const queue_t * queue) __attribute__ ((always_inline)) ; static inline size_t sizelast##_fsuffix(const queue_t * queue) __attribute__ ((always_inline)) ; static inline int insertfirst##_fsuffix(queue_t * queue,/*out*/object_t ** new_node) __attribute__ ((always_inline)) ; static inline int insertlast##_fsuffix(queue_t * queue,/*out*/object_t ** new_node) __attribute__ ((always_inline)) ; static inline int removefirst##_fsuffix(queue_t * queue) __attribute__ ((always_inline)) ; static inline int removelast##_fsuffix(queue_t * queue) __attribute__ ((always_inline)) ; static inline int init##_fsuffix(/*out*/queue_t * queue) { return init_queue(queue) ; } static inline void initmove##_fsuffix(/*out*/queue_t * dest, queue_t * src) { initmove_queue(dest, src) ; } static inline int free##_fsuffix(queue_t * queue) { return free_queue(queue) ; } static inline bool isempty##_fsuffix(const queue_t * queue) { return isempty_queue(queue) ; } static inline object_t * first##_fsuffix(const queue_t * queue) { return first_queue(queue, sizeof(object_t)) ; } static inline object_t * last##_fsuffix(const queue_t * queue) { return last_queue(queue, sizeof(object_t)) ; } static inline size_t sizefirst##_fsuffix(const queue_t * queue) { return sizefirst_queue(queue) ; } static inline size_t sizelast##_fsuffix(const queue_t * queue) { return sizelast_queue(queue) ; } static inline int insertfirst##_fsuffix(queue_t * queue,/*out*/object_t ** new_node) { return insertfirst_queue(queue, (void**)new_node, sizeof(object_t)) ; } static inline int insertlast##_fsuffix(queue_t * queue,/*out*/object_t ** new_node) { return insertlast_queue(queue, (void**)new_node, sizeof(object_t)) ; } static inline int removefirst##_fsuffix(queue_t * queue) { return removefirst_queue(queue, sizeof(object_t)) ; } static inline int removelast##_fsuffix(queue_t * queue) { return removelast_queue(queue, sizeof(object_t)) ; } static inline int initfirst##_fsuffix##iterator(/*out*/queue_iterator_t * iter, queue_t * queue) { return initfirst_queueiterator(iter, queue, sizeof(object_t)) ; } static inline int free##_fsuffix##iterator(queue_iterator_t * iter) { return free_queueiterator(iter) ; } static inline bool next##_fsuffix##iterator(queue_iterator_t * iter, object_t ** node) { return next_queueiterator(iter, (void**)node) ; }
Generates interface of queue_t storing elements of type object_t.
void queue_IMPLEMENT( IDNAME _fsuffix, TYPENAME object_t ) ;
Static initializer.
#define queue_INIT { 0 }
Static initializer.
#define queue_iterator_FREE { 0, 0, 0, 0, 0 }
Implements syncwlist_t.queue_syncwlist.
#define queue_syncwlist( wlist ) ( __extension__ ({ syncwlist_t * _wl = (wlist) ; syncqueue_t * _qu = 0 ; if (_wl->nrnodes) { _qu = queuefromaddr_syncqueue( _wl->next) ; } _qu ; }))
Implements queue_t.queuefromaddr_queue.
#define queuefromaddr_queue( nodeaddr ) (((queue_page_t*)((uintptr_t)(nodeaddr) & ~((uintptr_t)pagesizeinbytes_queue()-1u)))->queue)
Implements syncqueue_t.queuefromaddr_syncqueue.
#define queuefromaddr_syncqueue( nodeaddr ) ((syncqueue_t*)queuefromaddr_queue(nodeaddr))
Implements windowconfig_t.readmaxsize_windowconfig.
#define readmaxsize_windowconfig( winconf, attrindex, width, height ) readsize_windowconfig(winconf, attrindex, width, height)
Implements windowconfig_t.readminsize_windowconfig.
#define readminsize_windowconfig( winconf, attrindex, width, height ) readsize_windowconfig(winconf, attrindex, width, height)
Implements windowconfig_t.readpos_windowconfig.
#define readpos_windowconfig( winconf, attrindex, x, y ) { *(x) = winconf[(*(attrindex))++].i32; *(y) = winconf[(*(attrindex))++].i32; }
Implements windowconfig_t.readsize_windowconfig.
#define readsize_windowconfig( winconf, attrindex, width, height ) { *(width) = winconf[(*(attrindex))++].u16; *(height) = winconf[(*(attrindex))++].u16; }
Implements windowconfig_t.readtitle_windowconfig.
#define readtitle_windowconfig( winconf, attrindex ) (winconf[(*(attrindex))++].str)
Implements windowconfig_t.readtransparency_windowconfig.
#define readtransparency_windowconfig( winconf, attrindex ) (winconf[(*(attrindex))++].u8)
Implements windowconfig_t.readtype_windowconfig.
#define readtype_windowconfig( winconf, attrindex ) ((windowconfig_e) winconf[(*(attrindex))++].i32)
Implement sysuser_t.real_sysuser.
#define real_sysuser( sysusr ) ((sysusr)->realuser)
Static initializer.
#define redblacktree_FREE redblacktree_INIT( 0, typeadapt_member_FREE )
Implements redblacktree_t.redblacktree_IMPLEMENT.
#define redblacktree_IMPLEMENT( _fsuffix, object_t, key_t, nodename ) typedef redblacktree_iterator_t iteratortype##_fsuffix ; typedef object_t * iteratedtype##_fsuffix ; static inline int initfirst##_fsuffix##iterator(redblacktree_iterator_t * iter, redblacktree_t * tree) __attribute__ ((always_inline)) ; static inline int initlast##_fsuffix##iterator(redblacktree_iterator_t * iter, redblacktree_t * tree) __attribute__ ((always_inline)) ; static inline int free##_fsuffix##iterator(redblacktree_iterator_t * iter) __attribute__ ((always_inline)) ; static inline bool next##_fsuffix##iterator(redblacktree_iterator_t * iter, object_t ** node) __attribute__ ((always_inline)) ; static inline bool prev##_fsuffix##iterator(redblacktree_iterator_t * iter, object_t ** node) __attribute__ ((always_inline)) ; static inline void init##_fsuffix(/*out*/redblacktree_t * tree, const typeadapt_member_t * nodeadp) __attribute__ ((always_inline)) ; static inline int free##_fsuffix(redblacktree_t * tree) __attribute__ ((always_inline)) ; static inline void getinistate##_fsuffix(const redblacktree_t * tree, /*out*/object_t ** root, /*out*/typeadapt_member_t * nodeadp) __attribute__ ((always_inline)) ; static inline bool isempty##_fsuffix(const redblacktree_t * tree) __attribute__ ((always_inline)) ; static inline int find##_fsuffix(redblacktree_t * tree, const key_t key, /*out*/object_t ** found_node) __attribute__ ((always_inline)) ; static inline int insert##_fsuffix(redblacktree_t * tree, object_t * new_node) __attribute__ ((always_inline)) ; static inline int remove##_fsuffix(redblacktree_t * tree, object_t * node) __attribute__ ((always_inline)) ; static inline int removenodes##_fsuffix(redblacktree_t * tree) __attribute__ ((always_inline)) ; static inline int invariant##_fsuffix(redblacktree_t * tree) __attribute__ ((always_inline)) ; static inline redblacktree_node_t * asnode##_fsuffix(object_t * object) { static_assert(&((object_t*)0)->nodename == (redblacktree_node_t*)offsetof(object_t, nodename), "correct type") ; return (redblacktree_node_t *) ((uintptr_t)object + offsetof(object_t, nodename)) ; } static inline object_t * asobject##_fsuffix(redblacktree_node_t * node) { return (object_t *) ((uintptr_t)node - offsetof(object_t, nodename)) ; } static inline object_t * asobjectnull##_fsuffix(redblacktree_node_t * node) { return node ? (object_t *) ((uintptr_t)node - offsetof(object_t, nodename)) : 0 ; } static inline void init##_fsuffix(/*out*/redblacktree_t * tree, const typeadapt_member_t * nodeadp) { init_redblacktree(tree, nodeadp) ; } static inline int free##_fsuffix(redblacktree_t * tree) { return free_redblacktree(tree) ; } static inline void getinistate##_fsuffix(const redblacktree_t * tree, /*out*/object_t ** root, /*out*/typeadapt_member_t * nodeadp) { redblacktree_node_t * rootnode ; getinistate_redblacktree(tree, &rootnode, nodeadp) ; *root = asobjectnull##_fsuffix(rootnode) ; } static inline bool isempty##_fsuffix(const redblacktree_t * tree) { return isempty_redblacktree(tree) ; } static inline int find##_fsuffix(redblacktree_t * tree, const key_t key, /*out*/object_t ** found_node) { int err = find_redblacktree(tree, (void*)key, (redblacktree_node_t**)found_node) ; if (err == 0) *found_node = asobject##_fsuffix(*(redblacktree_node_t**)found_node) ; return err ; } static inline int insert##_fsuffix(redblacktree_t * tree, object_t * new_node) { return insert_redblacktree(tree, asnode##_fsuffix(new_node)) ; } static inline int remove##_fsuffix(redblacktree_t * tree, object_t * node) { int err = remove_redblacktree(tree, asnode##_fsuffix(node)) ; return err ; } static inline int removenodes##_fsuffix(redblacktree_t * tree) { return removenodes_redblacktree(tree) ; } static inline int invariant##_fsuffix(redblacktree_t * tree) { return invariant_redblacktree(tree) ; } static inline int initfirst##_fsuffix##iterator(redblacktree_iterator_t * iter, redblacktree_t * tree) { return initfirst_redblacktreeiterator(iter, tree) ; } static inline int initlast##_fsuffix##iterator(redblacktree_iterator_t * iter, redblacktree_t * tree) { return initlast_redblacktreeiterator(iter, tree) ; } static inline int free##_fsuffix##iterator(redblacktree_iterator_t * iter) { return free_redblacktreeiterator(iter) ; } static inline bool next##_fsuffix##iterator(redblacktree_iterator_t * iter, object_t ** node) { bool isNext = next_redblacktreeiterator(iter, (redblacktree_node_t**)node) ; if (isNext) *node = asobject##_fsuffix(*(redblacktree_node_t**)node) ; return isNext ; } static inline bool prev##_fsuffix##iterator(redblacktree_iterator_t * iter, object_t ** node) { bool isNext = prev_redblacktreeiterator(iter, (redblacktree_node_t**)node) ; if (isNext) *node = asobject##_fsuffix(*(redblacktree_node_t**)node) ; return isNext ; }
Adapts interface of redblacktree_t to nodes of type object_t.
void redblacktree_IMPLEMENT( IDNAME _fsuffix, TYPENAME object_t, TYPENAME key_t, IDNAME nodename ) ;
Static initializer.
#define redblacktree_INIT( root, nodeadp ) { root, nodeadp }
Static initializer.
#define redblacktree_iterator_FREE { 0 }
Implements process_stdio_t.redirecterr_processstdio.
#define redirecterr_processstdio( stdfd, error_file ) ((void)((stdfd)->std_err = error_file))
Implements process_stdio_t.redirectin_processstdio.
#define redirectin_processstdio( stdfd, input_file ) ((void)((stdfd)->std_in = input_file))
Implements process_stdio_t.redirectout_processstdio.
#define redirectout_processstdio( stdfd, output_file ) ((void)((stdfd)->std_out = output_file))
Releases previously allocated memory page.
#define RELEASE_PAGECACHE( page ) (releasepage_pagecache(pagecache_maincontext(), (page)))
Implements gcontext_t.releasecurrent_gcontext.
#define releasecurrent_gcontext( disp ) releasecurrent_eglcontext(gl_display(disp))
Implements pagecache_t.releasepage_pagecache.
#define releasepage_pagecache( pgcache, page ) ((pgcache).iimpl->releasepage((pgcache).object, (page)))
Implements syncqueue_t.remove_syncqueue.
#define remove_syncqueue( syncqueue, elem, initmove_elem ) ( __extension__ ({ syncqueue_t * _sq = (syncqueue) ; typeof(elem) _elem = (elem) ; typeof(elem) _lastentry = last_queue( genericcast_queue(_sq), sizeof(*_elem)) ; if (_lastentry && _lastentry != _elem) { (initmove_elem)(_elem, _lastentry) ; } int _err = removelast_queue( genericcast_queue(_sq), sizeof(*_elem)) ; _sq->nrelements -= (_err == 0) ; _err ; }))
Implements trie_t.remove_trie.
#define remove_trie( trie, keylen, key, uservalue ) (remove2_trie((trie), (keylen), (key), (uservalue), true))
Implements dlist_t.removeall_dlist with a call to dlist_t.free_dlist.
#define removeall_dlist( list, nodeoffset, typeadp ) (free_dlist((list), (nodeoffset), (typeadp)))
Implements slist_t.removeall_slist with help of slist_t.free_slist.
#define removeall_slist( list, nodeoffset, typeadp ) free_slist((list), (nodeoffset), (typeadp))
Implements syncqueue_t.removefirst_syncqueue.
#define removefirst_syncqueue( syncqueue, elemsize ) ( __extension__ ({ syncqueue_t * _sq = (syncqueue) ; int _err = removefirst_queue( genericcast_queue(_sq), elemsize) ; _sq->nrelements -= (_err == 0) ; _err ; }))
Implements syncqueue_t.removelast_syncqueue.
#define removelast_syncqueue( syncqueue, elemsize ) ( __extension__ ({ syncqueue_t * _sq = (syncqueue) ; int _err = removelast_queue( genericcast_queue(_sq), elemsize) ; _sq->nrelements -= (_err == 0) ; _err ; }))
Resizes memory block with error.
#define RESIZE_ERR_MM( errtimer, newsize, mblock ) ( __extension__ ({ err = process_testerrortimer(errtimer); if (! err) err = RESIZE_MM(newsize, mblock); err ; }))
Resizes memory block.
#define RESIZE_MM( newsize, mblock ) mresize_mm(mm_maincontext(), newsize, mblock)
Implements window_t.resize_window.
#define resize_window( win, width, height ) resize_x11window(os_window(win), width, height)
Static initializer.
#define resourceusage_FREE { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
Implements syncrun_t.retcode_syncrun.
#define retcode_syncrun( srun ) ((srun)->wakeup.retcode)
Implements thread_t.returncode_thread.
#define returncode_thread( threadobj ) ( __extension__ ({ volatile const thread_t * _thr ; _thr = (threadobj) ; _thr->returncode ; }))
Static initializer.
#define rwlock_FREE { { 0 } , { 0 }, 0, 0, 0 }
Static initializer.
#define rwlock_INIT { { 0 } , { 0 }, 0, 0, 0 }