Line data Source code
1 : /*
2 : * Copyright (c) 2001 Kungliga Tekniska Högskolan
3 : * (Royal Institute of Technology, Stockholm, Sweden).
4 : * All rights reserved.
5 : *
6 : * Redistribution and use in source and binary forms, with or without
7 : * modification, are permitted provided that the following conditions
8 : * are met:
9 : *
10 : * 1. Redistributions of source code must retain the above copyright
11 : * notice, this list of conditions and the following disclaimer.
12 : *
13 : * 2. Redistributions in binary form must reproduce the above copyright
14 : * notice, this list of conditions and the following disclaimer in the
15 : * documentation and/or other materials provided with the distribution.
16 : *
17 : * 3. Neither the name of the Institute nor the names of its contributors
18 : * may be used to endorse or promote products derived from this software
19 : * without specific prior written permission.
20 : *
21 : * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
22 : * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 : * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 : * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
25 : * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 : * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 : * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 : * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 : * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 : * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 : * SUCH DAMAGE.
32 : */
33 :
34 : #include <config.h>
35 : #include "roken.h"
36 :
37 : #ifndef HAVE_BSWAP64
38 :
39 : ROKEN_LIB_FUNCTION uint64_t ROKEN_LIB_CALL
40 1264612 : bswap64 (uint64_t val)
41 : {
42 : return
43 2529224 : (val & 0xffULL) << 56 |
44 2529224 : (val & 0xff00ULL) << 40 |
45 2529224 : (val & 0xff0000ULL) << 24 |
46 2529224 : (val & 0xff000000ULL) << 8 |
47 2529224 : (val & 0xff00000000ULL) >> 8 |
48 2529224 : (val & 0xff0000000000ULL) >> 24 |
49 2529224 : (val & 0xff000000000000ULL) >> 40 |
50 1264612 : (val & 0xff00000000000000ULL) >> 56 ;
51 : }
52 : #endif
53 :
54 : #ifndef HAVE_BSWAP32
55 :
56 : ROKEN_LIB_FUNCTION unsigned int ROKEN_LIB_CALL
57 3537325 : bswap32 (unsigned int val)
58 : {
59 7074650 : return (val & 0xff) << 24 |
60 7074650 : (val & 0xff00) << 8 |
61 7074650 : (val & 0xff0000) >> 8 |
62 3537325 : (val & 0xff000000) >> 24;
63 : }
64 : #endif
65 :
66 : #ifndef HAVE_BSWAP16
67 :
68 : ROKEN_LIB_FUNCTION unsigned short ROKEN_LIB_CALL
69 794916 : bswap16 (unsigned short val)
70 : {
71 1589832 : return (val & 0xff) << 8 |
72 794916 : (val & 0xff00) >> 8;
73 : }
74 : #endif
|