Annotation of qemu/roms/ipxe/src/include/strings.h, revision 1.1.1.1

1.1       root        1: #ifndef _STRINGS_H
                      2: #define _STRINGS_H
                      3: 
                      4: FILE_LICENCE ( GPL2_OR_LATER );
                      5: 
                      6: #include <limits.h>
                      7: #include <string.h>
                      8: 
                      9: static inline __attribute__ (( always_inline )) int
                     10: __constant_flsl ( unsigned long x ) {
                     11:        int r = 0;
                     12: 
                     13: #if ULONG_MAX > 0xffffffff
                     14:        if ( x & 0xffffffff00000000UL ) {
                     15:                x >>= 32;
                     16:                r += 32;
                     17:        }
                     18: #endif
                     19:        if ( x & 0xffff0000UL ) {
                     20:                x >>= 16;
                     21:                r += 16;
                     22:        }
                     23:        if ( x & 0xff00 ) {
                     24:                x >>= 8;
                     25:                r += 8;
                     26:        }
                     27:        if ( x & 0xf0 ) {
                     28:                x >>= 4;
                     29:                r += 4;
                     30:        }
                     31:        if ( x & 0xc ) {
                     32:                x >>= 2;
                     33:                r += 2;
                     34:        }
                     35:        if ( x & 0x2 ) {
                     36:                x >>= 1;
                     37:                r += 1;
                     38:        }
                     39:        if ( x & 0x1 ) {
                     40:                r += 1;
                     41:        }
                     42:        return r;
                     43: }
                     44: 
                     45: /* We don't actually have these functions yet */
                     46: extern int __flsl ( long x );
                     47: 
                     48: #define flsl( x ) \
                     49:        ( __builtin_constant_p ( x ) ? __constant_flsl ( x ) : __flsl ( x ) )
                     50: 
                     51: #define fls( x ) flsl ( x )
                     52: 
                     53: extern int strcasecmp ( const char *s1, const char *s2 );
                     54: 
                     55: static inline __attribute__ (( always_inline )) void
                     56: bcopy ( const void *src, void *dest, size_t n ) {
                     57:        memmove ( dest, src, n );
                     58: }
                     59: 
                     60: static inline __attribute__ (( always_inline )) void
                     61: bzero ( void *s, size_t n ) {
                     62:        memset ( s, 0, n );
                     63: }
                     64: 
                     65: #endif /* _STRINGS_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.