1
/*
2
* \brief Hardware-resource access
3
* \author Christian Helmuth
4
* \date 2008-10-21
5
*/
6
7
/*
8
* Copyright (C) 2008-2013 Genode Labs GmbH
9
*
10
* This file is part of the Genode OS framework, which is distributed
11
* under the terms of the GNU General Public License version 2.
12
*/
13
14
#
ifndef _INCLUDE__DDE_KIT__RESOURCES_H_
15
#
define _INCLUDE__DDE_KIT__RESOURCES_H_
16
17
#
include <dde_kit/types.h>
18
19
/**
20
* Allocate I/O port range (x86)
21
*
22
* \param start first port of range
23
* \param size size of port range
24
*
25
* \return 0 on success, -1 otherwise
26
*/
27
int
dde_kit_request_io(
dde_kit_addr_t
start
,
dde_kit_size_t
size
)
;
28
29
/**
30
* Free I/O port range (x86)
31
*
32
* \param start first port of range
33
* \param size size of port range
34
*
35
* \return 0 on success, -1 otherwise
36
*/
37
int
dde_kit_release_io(
dde_kit_addr_t
start
,
dde_kit_size_t
size
)
;
38
39
/**
40
* Read I/O port (byte)
41
*
42
* \param port port to read
43
*
44
* \return value read from port
45
*/
46
unsigned
char
dde_kit_inb(
dde_kit_addr_t
port
)
;
47
48
/**
49
* Read I/O port (2-byte)
50
*
51
* \param port port to read
52
*
53
* \return value read from port
54
*/
55
unsigned
short
dde_kit_inw(
dde_kit_addr_t
port
)
;
56
57
/**
58
* Read I/O port (4-byte)
59
*
60
* \param port port to read
61
*
62
* \return value read from port
63
*/
64
unsigned
long
dde_kit_inl(
dde_kit_addr_t
port
)
;
65
66
/**
67
* Write I/O port (byte)
68
*
69
* \param port port to write
70
* \param val value to write
71
*/
72
void
dde_kit_outb(
dde_kit_addr_t
port
,
unsigned
char
val
)
;
73
74
/**
75
* Write I/O port (2-byte)
76
*
77
* \param port port to write
78
* \param val value to write
79
*/
80
void
dde_kit_outw(
dde_kit_addr_t
port
,
unsigned
short
val
)
;
81
82
/**
83
* Write I/O port (4-byte)
84
*
85
* \param port port to write
86
* \param val value to write
87
*/
88
void
dde_kit_outl(
dde_kit_addr_t
port
,
unsigned
long
val
)
;
89
90
/**
91
* Allocate MMIO range
92
*
93
* \param start begin of MMIO range
94
* \param size size of MMIO range
95
* \param wc if !0 request write-combined memory mapping
96
*
97
* \retval vaddr virtual start address mapped range
98
* \return 0 on success, -1 otherwise
99
*/
100
int
dde_kit_request_mem(
dde_kit_addr_t
start
,
dde_kit_size_t
size
,
101
int
wc
,
dde_kit_addr_t *
vaddr
)
;
102
103
/**
104
* Free MMIO range
105
*
106
* \param start begin of MMIO range
107
* \param size size of MMIO range
108
*
109
* \return 0 on success, -1 otherwise
110
*/
111
int
dde_kit_release_mem(
dde_kit_addr_t
start
,
dde_kit_size_t
size
)
;
112
113
#
endif /* _INCLUDE__DDE_KIT__RESOURCES_H_ */