ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libecb/ecb.pod
(Generate patch)

Comparing libecb/ecb.pod (file contents):
Revision 1.41 by root, Mon May 28 08:40:25 2012 UTC vs.
Revision 1.44 by root, Tue May 29 14:30:44 2012 UTC

58 58
59=head2 TYPES / TYPE SUPPORT 59=head2 TYPES / TYPE SUPPORT
60 60
61ecb.h makes sure that the following types are defined (in the expected way): 61ecb.h makes sure that the following types are defined (in the expected way):
62 62
63 int8_t uint8_t int16_t uint16_t 63 int8_t uint8_t int16_t uint16_t
64 int32_t uint32_t int64_t uint64_t 64 int32_t uint32_t int64_t uint64_t
65 intptr_t uintptr_t 65 intptr_t uintptr_t ptrdiff_t
66 66
67The macro C<ECB_PTRSIZE> is defined to the size of a pointer on this 67The macro C<ECB_PTRSIZE> is defined to the size of a pointer on this
68platform (currently C<4> or C<8>). 68platform (currently C<4> or C<8>).
69
70=head2 LANGUAGE/COMPILER VERSIONS
71
72All the following symbols expand to an expressionb that cna be tested in
73preprocessor instructions as well as treated as a boolean (use C<!!> to
74ensure it's either C<0> or C<1> if you need that).
75
76=over 4
77
78=item ECB_C
79
80True if the implementation defines the C<__STDC__> macro to a true value,
81which is typically true for both C and C++ compilers.
82
83=item ECB_C99
84
85True if the implementation claims to be C99 compliant.
86
87=item ECB_C11
88
89True if the implementation claims to be C11 compliant.
90
91=item ECB_CPP
92
93True if the implementation defines the C<__cplusplus__> macro to a true
94value, which is typically true for C++ compilers.
95
96=item ECB_CPP98
97
98True if the implementation claims to be compliant to ISO/IEC 14882:1998
99(the first C++ ISO standard) or any later vwersion. Typically true for all
100C++ compilers.
101
102=item ECB_CPP11
103
104True if the implementation claims to be compliant to ISO/IEC 14882:2011
105(C++11) or any later vwersion.
106
107=item ECB_GCC_VERSION(major,minor)
108
109Expands to a true value (suitable for testing in by the preprocessor)
110if the compiler used is GNU C and the version is the givne version, or
111higher.
112
113This macro tries to return false on compilers that claim to be GCC
114compatible but aren't.
115
116=back
69 117
70=head2 GCC ATTRIBUTES 118=head2 GCC ATTRIBUTES
71 119
72A major part of libecb deals with GCC attributes. These are additional 120A major part of libecb deals with GCC attributes. These are additional
73attributes that you can assign to functions, variables and sometimes even 121attributes that you can assign to functions, variables and sometimes even
581 for (i = 0; i < ecb_array_length (primes); i++) 629 for (i = 0; i < ecb_array_length (primes); i++)
582 sum += primes [i]; 630 sum += primes [i];
583 631
584=back 632=back
585 633
634=head2 SYMBOLS GOVERNING COMPILATION OF ECB.H ITSELF
586 635
636These symbols need to be defined before including F<ecb.h> the first time.
637
638=over 4
639
640=item ECB_NO_THRADS
641
642If F<ecb.h> is never used from multiple threads, then this symbol can
643be defined, in which case memory fences (and similar constructs) are
644completely removed, leading to more efficient code and fewer dependencies.
645
646Setting this symbol to a true value implies C<ECB_NO_SMP>.
647
648=item ECB_NO_SMP
649
650The weaker version of C<ECB_NO_THREADS> - if F<ecb.h> is used from
651multiple threads, but never concurrently (e.g. if the system the program
652runs on has only a single CPU with a single core, no hyperthreading and so
653on), then this symbol can be defined, leading to more efficient code and
654fewer dependencies.
655
656=back
657
658

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines