36#if !defined (_RTEMS_RTL_INDIRECT_PTR_H_)
37#define _RTEMS_RTL_INDIRECT_PTR_H_
108static inline void rtems_rtl_ptr_set (
rtems_rtl_ptr* handle,
void* pointer)
120 rtems_chain_set_off_chain (&handle->
node);
132 return handle->
pointer == NULL;
148 rtems_chain_insert_unprotected (&src->
node, &dst->
node);
149 rtems_chain_extract_unprotected (&src->
node);
151 rtems_rtl_ptr_init (src);
160#define rtems_rtl_ptr_type_get(_h, _t) ((_t*) rtems_rtl_ptr_get (_h))
170 return rtems_rtl_ptr_get (&handle->
ptr);
179static inline void rtems_rtl_sptr_set (
rtems_rtl_sptr* handle,
void* pointer)
181 rtems_rtl_ptr_set (&handle->
ptr, pointer);
191 rtems_rtl_ptr_init (&handle->
ptr);
203 return rtems_rtl_ptr_null (&handle->
ptr);
215 rtems_rtl_ptr_move (&dst->
ptr, &src->
ptr);
226static inline size_t rtems_rtl_sptr_get_size (
rtems_rtl_sptr* handle)
237static inline void rtems_rtl_sptr_set_size (
rtems_rtl_sptr* handle,
size_t size)
248#define rtems_rtl_sptr_type_get(_h, _t) ((_t*) rtems_rtl_sptr_get (_h))
This header file provides the Chains API.
This structure represents a chain node.
Definition: chain.h:78
Definition: rtl-indirect-ptr.h:71
rtems_rtl_ptr ptr
Definition: rtl-indirect-ptr.h:73
rtems_chain_node node
Definition: rtl-indirect-ptr.h:72
Definition: rtl-indirect-ptr.h:48
rtems_chain_node node
Definition: rtl-indirect-ptr.h:49
void * pointer
Definition: rtl-indirect-ptr.h:50
Definition: rtl-indirect-ptr.h:84
rtems_rtl_sptr ptr
Definition: rtl-indirect-ptr.h:86
rtems_chain_node node
Definition: rtl-indirect-ptr.h:85
Definition: rtl-indirect-ptr.h:58
rtems_rtl_ptr ptr
Definition: rtl-indirect-ptr.h:59
size_t size
Definition: rtl-indirect-ptr.h:60