This is Unofficial EPICS BASE Doxygen Site
boost::detail Namespace Reference

Classes

class  esft2_deleter_wrapper
 
struct  is_signed_helper
 
struct  is_signed_imp
 
struct  is_signed_select_helper
 
struct  is_signed_select_helper< false >
 
struct  is_signed_values
 
class  shared_count
 
struct  sp_array_access
 
struct  sp_array_access< T[] >
 
struct  sp_array_access< T[N] >
 
struct  sp_convert_reference
 
struct  sp_convert_reference< D & >
 
struct  sp_convertible
 
struct  sp_convertible< Y, T[] >
 
struct  sp_convertible< Y[], T[] >
 
struct  sp_convertible< Y[N], T[] >
 
class  sp_counted_base
 
class  sp_counted_impl_p
 
class  sp_counted_impl_pd
 
class  sp_counted_impl_pda
 
struct  sp_dereference
 
struct  sp_dereference< T[] >
 
struct  sp_dereference< T[N] >
 
struct  sp_dereference< void >
 
struct  sp_dereference< void const >
 
struct  sp_dereference< void const volatile >
 
struct  sp_dereference< void volatile >
 
struct  sp_element
 
struct  sp_element< T[] >
 
struct  sp_element< T[N] >
 
struct  sp_empty
 
struct  sp_enable_if_auto_ptr
 
struct  sp_enable_if_auto_ptr< std::auto_ptr< T >, R >
 
struct  sp_enable_if_convertible
 
struct  sp_enable_if_convertible_impl
 
struct  sp_enable_if_convertible_impl< false >
 
struct  sp_enable_if_convertible_impl< true >
 
struct  sp_extent
 
struct  sp_extent< T[N] >
 
struct  sp_inplace_tag
 
struct  sp_member_access
 
struct  sp_member_access< T[] >
 
struct  sp_member_access< T[N] >
 
struct  sp_nothrow_tag
 
class  sp_reference_wrapper
 
class  spinlock
 
class  spinlock_pool
 
class  weak_count
 

Typedefs

typedef std::type_info sp_typeinfo
 
typedef std::nullptr_t sp_nullptr_t
 

Functions

void current_function_helper ()
 
void atomic_increment (int *pw)
 
int atomic_decrement (int *pw)
 
int atomic_conditional_increment (int *pw)
 
int atomic_exchange_and_add (int *pw, int dv)
 
void yield (unsigned)
 
template<class X , class Y , class T >
void sp_enable_shared_from_this (boost::shared_ptr< X > const *ppx, Y const *py, boost::enable_shared_from_this< T > const *pe)
 
template<class X , class Y >
void sp_enable_shared_from_this (boost::shared_ptr< X > *ppx, Y const *py, boost::enable_shared_from_raw const *pe)
 
void sp_enable_shared_from_this (...)
 
template<class Y , class T >
void sp_assert_convertible ()
 
template<class T , class Y >
void sp_pointer_construct (boost::shared_ptr< T > *ppx, Y *p, boost::detail::shared_count &pn)
 
template<class T , class Y >
void sp_pointer_construct (boost::shared_ptr< T[] > *, Y *p, boost::detail::shared_count &pn)
 
template<class T , std::size_t N, class Y >
void sp_pointer_construct (boost::shared_ptr< T[N] > *, Y *p, boost::detail::shared_count &pn)
 
template<class T , class Y >
void sp_deleter_construct (boost::shared_ptr< T > *ppx, Y *p)
 
template<class T , class Y >
void sp_deleter_construct (boost::shared_ptr< T[] > *, Y *)
 
template<class T , std::size_t N, class Y >
void sp_deleter_construct (boost::shared_ptr< T[N] > *, Y *)
 
template<class D , class T >
D * basic_get_deleter (shared_ptr< T > const &p) BOOST_NOEXCEPT
 

Typedef Documentation

typedef std::nullptr_t boost::detail::sp_nullptr_t

Definition at line 35 of file sp_nullptr_t.hpp.

typedef std::type_info boost::detail::sp_typeinfo

Definition at line 123 of file sp_typeinfo.hpp.

Function Documentation

int boost::detail::atomic_conditional_increment ( int *  pw)
inline

Definition at line 79 of file sp_counted_base_gcc_ppc.hpp.

80 {
81  // if( *pw != 0 ) ++*pw;
82  // return *pw;
83 
84  int rv;
85 
86  __asm__
87  (
88  "0:\n\t"
89  "lwarx %1, 0, %2\n\t"
90  "cmpwi %1, 0\n\t"
91  "beq 1f\n\t"
92  "addi %1, %1, 1\n\t"
93  "1:\n\t"
94  "stwcx. %1, 0, %2\n\t"
95  "bne- 0b":
96 
97  "=m"( *pw ), "=&b"( rv ):
98  "r"( pw ), "m"( *pw ):
99  "cc"
100  );
101 
102  return rv;
103 }
int boost::detail::atomic_decrement ( int *  pw)
inline

Definition at line 55 of file sp_counted_base_gcc_ppc.hpp.

56 {
57  // return --*pw;
58 
59  int rv;
60 
61  __asm__ __volatile__
62  (
63  "sync\n\t"
64  "0:\n\t"
65  "lwarx %1, 0, %2\n\t"
66  "addi %1, %1, -1\n\t"
67  "stwcx. %1, 0, %2\n\t"
68  "bne- 0b\n\t"
69  "isync":
70 
71  "=m"( *pw ), "=&b"( rv ):
72  "r"( pw ), "m"( *pw ):
73  "memory", "cc"
74  );
75 
76  return rv;
77 }
int boost::detail::atomic_exchange_and_add ( int *  pw,
int  dv 
)
inline

Definition at line 35 of file sp_counted_base_gcc_x86.hpp.

36 {
37  // int r = *pw;
38  // *pw += dv;
39  // return r;
40 
41  int r;
42 
43  __asm__ __volatile__
44  (
45  "lock\n\t"
46  "xadd %1, %0":
47  "=m"( *pw ), "=r"( r ): // outputs (%0, %1)
48  "m"( *pw ), "1"( dv ): // inputs (%2, %3 == %1)
49  "memory", "cc" // clobbers
50  );
51 
52  return r;
53 }
void boost::detail::atomic_increment ( int *  pw)
inline

Definition at line 35 of file sp_counted_base_gcc_ppc.hpp.

36 {
37  // ++*pw;
38 
39  int tmp;
40 
41  __asm__
42  (
43  "0:\n\t"
44  "lwarx %1, 0, %2\n\t"
45  "addi %1, %1, 1\n\t"
46  "stwcx. %1, 0, %2\n\t"
47  "bne- 0b":
48 
49  "=m"( *pw ), "=&b"( tmp ):
50  "r"( pw ), "m"( *pw ):
51  "cc"
52  );
53 }
template<class D , class T >
D* boost::detail::basic_get_deleter ( shared_ptr< T > const &  p)

Definition at line 890 of file shared_ptr.hpp.

891 {
892  return static_cast<D *>( p._internal_get_deleter(BOOST_SP_TYPEID(D)) );
893 }
#define BOOST_SP_TYPEID(T)
void boost::detail::current_function_helper ( )
inline

Definition at line 28 of file current_function.hpp.

29 {
30 
31 #if defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) || defined(__ghs__)
32 
33 # define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
34 
35 #elif defined(__DMC__) && (__DMC__ >= 0x810)
36 
37 # define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
38 
39 #elif defined(__FUNCSIG__)
40 
41 # define BOOST_CURRENT_FUNCTION __FUNCSIG__
42 
43 #elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500))
44 
45 # define BOOST_CURRENT_FUNCTION __FUNCTION__
46 
47 #elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550)
48 
49 # define BOOST_CURRENT_FUNCTION __FUNC__
50 
51 #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
52 
53 # define BOOST_CURRENT_FUNCTION __func__
54 
55 #else
56 
57 # define BOOST_CURRENT_FUNCTION "(unknown)"
58 
59 #endif
60 
61 }
template<class Y , class T >
void boost::detail::sp_assert_convertible ( )
inline

Definition at line 256 of file shared_ptr.hpp.

257 {
258 #if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
259 
260  // static_assert( sp_convertible< Y, T >::value );
261  typedef char tmp[ sp_convertible< Y, T >::value? 1: -1 ];
262  (void)sizeof( tmp );
263 
264 #else
265 
266  T* p = static_cast< Y* >( 0 );
267  (void)p;
268 
269 #endif
270 }
template<class T , class Y >
void boost::detail::sp_deleter_construct ( boost::shared_ptr< T > *  ppx,
Y *  p 
)
inline

Definition at line 298 of file shared_ptr.hpp.

299 {
301 }
void sp_enable_shared_from_this(boost::shared_ptr< X > const *ppx, Y const *py, boost::enable_shared_from_this< T > const *pe)
Definition: shared_ptr.hpp:208
template<class T , class Y >
void boost::detail::sp_deleter_construct ( boost::shared_ptr< T[] > *  ,
Y *   
)
inline

Definition at line 305 of file shared_ptr.hpp.

306 {
307  sp_assert_convertible< Y[], T[] >();
308 }
template<class T , std::size_t N, class Y >
void boost::detail::sp_deleter_construct ( boost::shared_ptr< T[N] > *  ,
Y *   
)
inline

Definition at line 310 of file shared_ptr.hpp.

311 {
312  sp_assert_convertible< Y[N], T[N] >();
313 }
template<class X , class Y , class T >
void boost::detail::sp_enable_shared_from_this ( boost::shared_ptr< X > const *  ppx,
Y const *  py,
boost::enable_shared_from_this< T > const *  pe 
)
inline

Definition at line 208 of file shared_ptr.hpp.

209 {
210  if( pe != 0 )
211  {
212  pe->_internal_accept_owner( ppx, const_cast< Y* >( py ) );
213  }
214 }
void _internal_accept_owner(shared_ptr< X > const *ppx, Y *py) const
template<class X , class Y >
void boost::detail::sp_enable_shared_from_this ( boost::shared_ptr< X > *  ppx,
Y const *  py,
boost::enable_shared_from_raw const *  pe 
)
inline
void boost::detail::sp_enable_shared_from_this (   ...)
inline

Definition at line 233 of file shared_ptr.hpp.

234 {
235 }
template<class T , class Y >
void boost::detail::sp_pointer_construct ( boost::shared_ptr< T > *  ppx,
Y *  p,
boost::detail::shared_count pn 
)
inline

Definition at line 274 of file shared_ptr.hpp.

275 {
278 }
void sp_enable_shared_from_this(boost::shared_ptr< X > const *ppx, Y const *py, boost::enable_shared_from_this< T > const *pe)
Definition: shared_ptr.hpp:208
void swap(shared_count &r)
template<class T , class Y >
void boost::detail::sp_pointer_construct ( boost::shared_ptr< T[] > *  ,
Y *  p,
boost::detail::shared_count pn 
)
inline

Definition at line 282 of file shared_ptr.hpp.

283 {
284  sp_assert_convertible< Y[], T[] >();
286 }
void swap(shared_count &r)
template<class T , std::size_t N, class Y >
void boost::detail::sp_pointer_construct ( boost::shared_ptr< T[N] > *  ,
Y *  p,
boost::detail::shared_count pn 
)
inline

Definition at line 288 of file shared_ptr.hpp.

289 {
290  sp_assert_convertible< Y[N], T[N] >();
292 }
void swap(shared_count &r)
void boost::detail::yield ( unsigned  )
inline

Definition at line 139 of file yield_k.hpp.

140 {
141 }