OpenCores
URL https://opencores.org/ocsvn/1g_ethernet_dpi/1g_ethernet_dpi/trunk

Subversion Repositories 1g_ethernet_dpi

[/] [1g_ethernet_dpi/] [tags/] [vmblite_base/] [sw/] [test_main/] [microblaze/] [xil_io.c] - Blame information for rev 7

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 7 kuzmi4
 
2
#include "xil_io.h"
3
#include "xil_types.h"
4
 
5
u8 Xil_In8(u32 Addr) {
6
        return *(volatile u8 *)Addr;
7
}
8
u16 Xil_In16(u32 Addr) {
9
        return *(volatile u16 *)Addr;
10
}
11
u32 Xil_In32(u32 Addr) {
12
        return *(volatile u32 *)Addr;
13
}
14
 
15
 
16
void Xil_Out8(u32 Addr, u8 Value) {
17
        u8 *LocalAddr = (u8 *)Addr;
18
        *LocalAddr = Value;
19
}
20
void Xil_Out16(u32 Addr, u16 Value) {
21
        u16 *LocalAddr = (u16 *)Addr;
22
        *LocalAddr = Value;
23
}
24
void Xil_Out32(u32 Addr, u32 Value) {
25
        u32 *LocalAddr = (u32 *)Addr;
26
        *LocalAddr = Value;
27
}
28
 
29
 
30
u16 Xil_EndianSwap16(u16 Data)
31
{
32
        return (u16) (((Data & 0xFF00U) >> 8U) | ((Data & 0x00FFU) << 8U));
33
}
34
u32 Xil_EndianSwap32(u32 Data)
35
{
36
        u16 LoWord;
37
        u16 HiWord;
38
 
39
 
40
        LoWord = (u16) (Data & 0x0000FFFFU);
41
        HiWord = (u16) ((Data & 0xFFFF0000U) >> 16U);
42
 
43
 
44
        LoWord = (((LoWord & 0xFF00U) >> 8U) | ((LoWord & 0x00FFU) << 8U));
45
        HiWord = (((HiWord & 0xFF00U) >> 8U) | ((HiWord & 0x00FFU) << 8U));
46
 
47
 
48
        return ((((u32)LoWord) << (u32)16U) | (u32)HiWord);
49
}
50
 
51
#ifndef __LITTLE_ENDIAN__
52
u16 Xil_In16LE(u32 Addr)
53
#else
54
u16 Xil_In16BE(u32 Addr)
55
#endif
56
{
57
        u16 Value;
58
 
59
        Value = Xil_In16(Addr);
60
 
61
        return Xil_EndianSwap16(Value);
62
}
63
 
64
#ifndef __LITTLE_ENDIAN__
65
u32 Xil_In32LE(u32 Addr)
66
#else
67
u32 Xil_In32BE(u32 Addr)
68
#endif
69
{
70
        u32 InValue;
71
 
72
        InValue = Xil_In32(Addr);
73
        return Xil_EndianSwap32(InValue);
74
}
75
 
76
#ifndef __LITTLE_ENDIAN__
77
void Xil_Out16LE(u32 Addr, u16 Value)
78
#else
79
void Xil_Out16BE(u32 Addr, u16 Value)
80
#endif
81
{
82
        u16 OutValue;
83
 
84
        OutValue = Xil_EndianSwap16(Value);
85
 
86
        Xil_Out16(Addr, OutValue);
87
}
88
 
89
#ifndef __LITTLE_ENDIAN__
90
void Xil_Out32LE(u32 Addr, u32 Value)
91
#else
92
void Xil_Out32BE(u32 Addr, u32 Value)
93
#endif
94
{
95
        u32 OutValue;
96
 
97
        OutValue = Xil_EndianSwap32(Value);
98
        Xil_Out32(Addr, OutValue);
99
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.