Motr  M0
byteorder.h
Go to the documentation of this file.
1 /* -*- C -*- */
2 /*
3  * Copyright (c) 2012-2020 Seagate Technology LLC and/or its Affiliates
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * For any questions about this software or licensing,
18  * please email opensource@seagate.com or cortx-questions@seagate.com.
19  *
20  */
21 
22 
23 #pragma once
24 
25 #ifndef __MOTR_LIB_BYTEORDER_H__
26 #define __MOTR_LIB_BYTEORDER_H__
27 
28 #include "lib/types.h" /* uint16_t */
29 
30 #include <asm/byteorder.h> /* __cpu_to_be16 */
31 
32 
33 static uint16_t m0_byteorder_cpu_to_be16(uint16_t cpu_16bits);
34 static uint16_t m0_byteorder_cpu_to_le16(uint16_t cpu_16bits);
35 static uint16_t m0_byteorder_be16_to_cpu(uint16_t big_endian_16bits);
36 static uint16_t m0_byteorder_le16_to_cpu(uint16_t little_endian_16bits);
37 
38 static uint32_t m0_byteorder_cpu_to_be32(uint32_t cpu_32bits);
39 static uint32_t m0_byteorder_cpu_to_le32(uint32_t cpu_32bits);
40 static uint32_t m0_byteorder_be32_to_cpu(uint32_t big_endian_32bits);
41 static uint32_t m0_byteorder_le32_to_cpu(uint32_t little_endian_32bits);
42 
43 static uint64_t m0_byteorder_cpu_to_be64(uint64_t cpu_64bits);
44 static uint64_t m0_byteorder_cpu_to_le64(uint64_t cpu_64bits);
45 static uint64_t m0_byteorder_be64_to_cpu(uint64_t big_endian_64bits);
46 static uint64_t m0_byteorder_le64_to_cpu(uint64_t little_endian_64bits);
47 
48 
49 static inline uint16_t m0_byteorder_cpu_to_be16(uint16_t cpu_16bits)
50 {
51  return __cpu_to_be16(cpu_16bits);
52 }
53 
54 static inline uint16_t m0_byteorder_cpu_to_le16(uint16_t cpu_16bits)
55 {
56  return __cpu_to_le16(cpu_16bits);
57 }
58 
59 static inline uint16_t m0_byteorder_be16_to_cpu(uint16_t big_endian_16bits)
60 {
61  return __be16_to_cpu(big_endian_16bits);
62 }
63 
64 static inline uint16_t m0_byteorder_le16_to_cpu(uint16_t little_endian_16bits)
65 {
66  return __le16_to_cpu(little_endian_16bits);
67 }
68 
69 static inline uint32_t m0_byteorder_cpu_to_be32(uint32_t cpu_32bits)
70 {
71  return __cpu_to_be32(cpu_32bits);
72 }
73 
74 static inline uint32_t m0_byteorder_cpu_to_le32(uint32_t cpu_32bits)
75 {
76  return __cpu_to_le32(cpu_32bits);
77 }
78 
79 static inline uint32_t m0_byteorder_be32_to_cpu(uint32_t big_endian_32bits)
80 {
81  return __be32_to_cpu(big_endian_32bits);
82 }
83 
84 static inline uint32_t m0_byteorder_le32_to_cpu(uint32_t little_endian_32bits)
85 {
86  return __le32_to_cpu(little_endian_32bits);
87 }
88 
89 static inline uint64_t m0_byteorder_cpu_to_be64(uint64_t cpu_64bits)
90 {
91  return __cpu_to_be64(cpu_64bits);
92 }
93 
94 static inline uint64_t m0_byteorder_cpu_to_le64(uint64_t cpu_64bits)
95 {
96  return __cpu_to_le64(cpu_64bits);
97 }
98 
99 static inline uint64_t m0_byteorder_be64_to_cpu(uint64_t big_endian_64bits)
100 {
101  return __be64_to_cpu(big_endian_64bits);
102 }
103 
104 static inline uint64_t m0_byteorder_le64_to_cpu(uint64_t little_endian_64bits)
105 {
106  return __le64_to_cpu(little_endian_64bits);
107 }
108 
109 #endif /* __MOTR_LIB_BYTEORDER_H__ */
110 
111 /*
112  * Local variables:
113  * c-indentation-style: "K&R"
114  * c-basic-offset: 8
115  * tab-width: 8
116  * fill-column: 79
117  * scroll-step: 1
118  * End:
119  */
static uint16_t m0_byteorder_le16_to_cpu(uint16_t little_endian_16bits)
Definition: byteorder.h:64
static uint16_t m0_byteorder_be16_to_cpu(uint16_t big_endian_16bits)
Definition: byteorder.h:59
static uint32_t m0_byteorder_le32_to_cpu(uint32_t little_endian_32bits)
Definition: byteorder.h:84
static uint16_t m0_byteorder_cpu_to_le16(uint16_t cpu_16bits)
Definition: byteorder.h:54
static uint64_t m0_byteorder_cpu_to_le64(uint64_t cpu_64bits)
Definition: byteorder.h:94
static uint32_t m0_byteorder_cpu_to_be32(uint32_t cpu_32bits)
Definition: byteorder.h:69
static uint32_t m0_byteorder_be32_to_cpu(uint32_t big_endian_32bits)
Definition: byteorder.h:79
static uint32_t m0_byteorder_cpu_to_le32(uint32_t cpu_32bits)
Definition: byteorder.h:74
static uint64_t m0_byteorder_be64_to_cpu(uint64_t big_endian_64bits)
Definition: byteorder.h:99
static uint16_t m0_byteorder_cpu_to_be16(uint16_t cpu_16bits)
Definition: byteorder.h:49
static uint64_t m0_byteorder_cpu_to_be64(uint64_t cpu_64bits)
Definition: byteorder.h:89
static uint64_t m0_byteorder_le64_to_cpu(uint64_t little_endian_64bits)
Definition: byteorder.h:104