RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
cpukit
score
cpu
sparc
include
libcpu
byteorder.h
1
/* SPDX-License-Identifier: BSD-2-Clause */
2
3
/*
4
* byteorder.h - Endian conversion for SPARC. SPARC is big endian only.
5
*
6
* COPYRIGHT (c) 2011
7
* Aeroflex Gaisler.
8
*
9
* Redistribution and use in source and binary forms, with or without
10
* modification, are permitted provided that the following conditions
11
* are met:
12
* 1. Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
14
* 2. Redistributions in binary form must reproduce the above copyright
15
* notice, this list of conditions and the following disclaimer in the
16
* documentation and/or other materials provided with the distribution.
17
*
18
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
22
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
* POSSIBILITY OF SUCH DAMAGE.
29
*/
30
31
#ifndef _LIBCPU_BYTEORDER_H
32
#define _LIBCPU_BYTEORDER_H
33
34
#include <rtems/score/cpu.h>
35
36
#ifdef __cplusplus
37
extern
"C"
{
38
#endif
39
40
static
inline
uint16_t ld_le16(
volatile
uint16_t *addr)
41
{
42
return
CPU_swap_u16
(*addr);
43
}
44
45
static
inline
void
st_le16(
volatile
uint16_t *addr, uint16_t val)
46
{
47
*addr =
CPU_swap_u16
(val);
48
}
49
50
static
inline
uint32_t ld_le32(
volatile
uint32_t *addr)
51
{
52
return
CPU_swap_u32(*addr);
53
}
54
55
static
inline
void
st_le32(
volatile
uint32_t *addr, uint32_t val)
56
{
57
*addr = CPU_swap_u32(val);
58
}
59
60
static
inline
uint16_t ld_be16(
volatile
uint16_t *addr)
61
{
62
return
*addr;
63
}
64
65
static
inline
void
st_be16(
volatile
uint16_t *addr, uint16_t val)
66
{
67
*addr = val;
68
}
69
70
static
inline
uint32_t ld_be32(
volatile
uint32_t *addr)
71
{
72
return
*addr;
73
}
74
75
static
inline
void
st_be32(
volatile
uint32_t *addr, uint32_t val)
76
{
77
*addr = val;
78
}
79
80
#ifdef __cplusplus
81
}
82
#endif
83
84
#endif
CPU_swap_u16
#define CPU_swap_u16(value)
Definition
cpu.h:597
Generated by
1.18.0