~ubuntu-branches/ubuntu/maverick/avr-libc/maverick

« back to all changes in this revision

Viewing changes to include/string.h

  • Committer: Bazaar Package Importer
  • Author(s): Hakan Ardo
  • Date: 2009-10-31 11:52:10 UTC
  • mfrom: (1.2.2 upstream)
  • mto: This revision was merged to the branch mainline in revision 10.
  • Revision ID: james.westby@ubuntu.com-20091031115210-crjd42sn6ezrj52c
* New upstream relese (closes: #544030)
* Added lintian overrides (closes: #553265)

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
29
  POSSIBILITY OF SUCH DAMAGE. */
30
30
 
31
 
/* $Id: string.h,v 1.19 2007/12/19 13:42:59 dmix Exp $ */
 
31
/* $Id: string.h,v 1.19.2.4 2008/12/21 02:37:32 dmix Exp $ */
32
32
 
33
33
/*
34
34
   string.h
82
82
 
83
83
    \returns The _FFS() macro returns the position of the first
84
84
    (least significant) bit set in the word val, or 0 if no bits are set.
85
 
    The least significant bit is position 1.
 
85
    The least significant bit is position 1.  Only 16 bits of argument
 
86
    are evaluted.
86
87
*/
87
88
#if defined(__DOXYGEN__)
88
89
#define _FFS(x)
89
90
#else  /* !DOXYGEN */
90
91
#define _FFS(x) \
91
 
        ( (x) & 1 ? 1           \
92
 
        : (x) & 2 ? 2           \
93
 
        : (x) & 4 ? 3           \
94
 
        : (x) & 010 ? 4         \
95
 
        : (x) & 020 ? 5         \
96
 
        : (x) & 040 ? 6         \
97
 
        : (x) & 0100 ? 7        \
98
 
        : (x) & 0200 ? 8        \
99
 
        : (x) & 0400 ? 9        \
100
 
        : (x) & 01000 ? 10      \
101
 
        : (x) & 02000 ? 11      \
102
 
        : (x) & 04000 ? 12      \
103
 
        : (x) & 010000 ? 13     \
104
 
        : (x) & 020000 ? 14     \
105
 
        : (x) & 040000 ? 15     \
106
 
        : (x) & 0100000 ? 16    \
107
 
        : 0 )
 
92
        (1                              \
 
93
         + (((x) & 1) == 0)             \
 
94
         + (((x) & 3) == 0)             \
 
95
         + (((x) & 7) == 0)             \
 
96
         + (((x) & 017) == 0)           \
 
97
         + (((x) & 037) == 0)           \
 
98
         + (((x) & 077) == 0)           \
 
99
         + (((x) & 0177) == 0)          \
 
100
         + (((x) & 0377) == 0)          \
 
101
         + (((x) & 0777) == 0)          \
 
102
         + (((x) & 01777) == 0)         \
 
103
         + (((x) & 03777) == 0)         \
 
104
         + (((x) & 07777) == 0)         \
 
105
         + (((x) & 017777) == 0)        \
 
106
         + (((x) & 037777) == 0)        \
 
107
         + (((x) & 077777) == 0)        \
 
108
         - (((x) & 0177777) == 0) * 16)
108
109
#endif /* DOXYGEN */
109
110
 
110
111
extern int ffs (int __val) __ATTR_CONST__;
126
127
extern int strcasecmp(const char *, const char *) __ATTR_PURE__;
127
128
extern char *strcasestr(const char *, const char *) __ATTR_PURE__;
128
129
extern size_t strcspn(const char *__s, const char *__reject) __ATTR_PURE__;
 
130
extern char *strdup(const char *s1);
129
131
extern size_t strlcat(char *, const char *, size_t);
130
132
extern size_t strlcpy(char *, const char *, size_t);
131
133
extern size_t strlen(const char *) __ATTR_PURE__;
141
143
extern char *strsep(char **, const char *);
142
144
extern size_t strspn(const char *__s, const char *__accept) __ATTR_PURE__;
143
145
extern char *strstr(const char *, const char *) __ATTR_PURE__;
 
146
extern char *strtok(char *, const char *);
144
147
extern char *strtok_r(char *, const char *, char **);
145
148
extern char *strupr(char *);
146
149