L4Re - L4 Runtime Environment
vbus.h
Go to the documentation of this file.
1 /*
2  * (c) 2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>,
3  * Alexander Warg <warg@os.inf.tu-dresden.de>,
4  * Torsten Frenzel <frenzel@os.inf.tu-dresden.de>
5  * economic rights: Technische Universit├Ąt Dresden (Germany)
6  *
7  * This file is part of TUD:OS and distributed under the terms of the
8  * GNU General Public License 2.
9  * Please see the COPYING-GPL-2 file for details.
10  */
15 #pragma once
16 
17 #include <l4/sys/compiler.h>
18 #include <l4/vbus/vbus_types.h>
19 #include <l4/sys/types.h>
20 
22 enum {
25 };
26 
45 __BEGIN_DECLS
46 
53 int L4_CV
54 l4vbus_get_device_by_hid(l4_cap_idx_t vbus, l4vbus_device_handle_t parent,
55  l4vbus_device_handle_t *child, char const *hid,
56  int depth, l4vbus_device_t *devinfo);
57 
69 int L4_CV
70 l4vbus_get_next_device(l4_cap_idx_t vbus, l4vbus_device_handle_t parent,
71  l4vbus_device_handle_t *child, int depth,
72  l4vbus_device_t *devinfo);
73 
88 int L4_CV
89 l4vbus_get_device(l4_cap_idx_t vbus, l4vbus_device_handle_t dev,
90  l4vbus_device_t *devinfo);
91 
100 int L4_CV
101 l4vbus_get_resource(l4_cap_idx_t vbus, l4vbus_device_handle_t dev,
102  int res_idx, l4vbus_resource_t *res);
103 
104 
111 int L4_CV
112 l4vbus_is_compatible(l4_cap_idx_t vbus, l4vbus_device_handle_t dev,
113  char const *cid);
114 
125 int L4_CV
126 l4vbus_get_hid(l4_cap_idx_t vbus, l4vbus_device_handle_t dev, char *hid,
127  unsigned long max_len);
128 
146 int L4_CV
148  int flags);
149 
154 {
163 };
164 
185 int L4_CV
186 l4vbus_assign_dma_domain(l4_cap_idx_t vbus, unsigned domain_id,
187  unsigned flags, l4_cap_idx_t dma_space);
188 
197 int L4_CV
199 
209 int L4_CV
210 l4vbus_vicu_get_cap(l4_cap_idx_t vbus, l4vbus_device_handle_t icu,
211  l4_cap_idx_t cap);
212 
214 
int l4vbus_assign_dma_domain(l4_cap_idx_t vbus, unsigned domain_id, unsigned flags, l4_cap_idx_t dma_space)
Bind or unbind a kernel DMA space (L4::Task) or a L4Re::Dma_space to a DMA domain.
Common L4 ABI Data Types.
int l4vbus_get_device_by_hid(l4_cap_idx_t vbus, l4vbus_device_handle_t parent, l4vbus_device_handle_t *child, char const *hid, int depth, l4vbus_device_t *devinfo)
Find a device by the HID.
unsigned long l4_cap_idx_t
L4 Capability selector Type.
Definition: types.h:342
L4vbus_dma_domain_assign_flags
Flags for l4vbus_assign_dma_domain().
Definition: vbus.h:153
#define __END_DECLS
End section with C types and functions.
Definition: compiler.h:193
Unbind the given DMA space from the DMA domain.
Definition: vbus.h:156
L4 compiler related defines.
Description of a single vbus resource.
Definition: vbus_types.h:23
int l4vbus_get_resource(l4_cap_idx_t vbus, l4vbus_device_handle_t dev, int res_idx, l4vbus_resource_t *res)
Obtain the resource description of an individual device resource.
int l4vbus_get_hid(l4_cap_idx_t vbus, l4vbus_device_handle_t dev, char *hid, unsigned long max_len)
Get the HID (hardware identifier) of a device.
int l4vbus_vicu_get_cap(l4_cap_idx_t vbus, l4vbus_device_handle_t icu, l4_cap_idx_t cap)
Get capability of ICU.
NULL device.
Definition: vbus.h:23
Detailed information about a vbus device.
Definition: vbus_types.h:56
int l4vbus_request_resource(l4_cap_idx_t vbus, l4vbus_resource_t const *res, int flags)
Request a resource of a specific type.
#define L4_CV
Define calling convention.
Definition: linkage.h:44
This header file contains descriptions of vbus related data types and constants.
int l4vbus_is_compatible(l4_cap_idx_t vbus, l4vbus_device_handle_t dev, char const *cid)
Check if the given device has a compatibility ID (CID) or HID that matches cid.
int l4vbus_get_device(l4_cap_idx_t vbus, l4vbus_device_handle_t dev, l4vbus_device_t *devinfo)
Obtain detailed information about a vbus device.
int l4vbus_release_resource(l4_cap_idx_t vbus, l4vbus_resource_t const *res)
Release a previously requested resource.
int l4vbus_get_next_device(l4_cap_idx_t vbus, l4vbus_device_handle_t parent, l4vbus_device_handle_t *child, int depth, l4vbus_device_t *devinfo)
Find next child following child.
The given DMA space is an L4Re::Dma_space.
Definition: vbus.h:160
Root device on the vbus.
Definition: vbus.h:24
Bind the given DMA space to the DMA domain.
Definition: vbus.h:158
The given DMA space is a kernel DMA space (L4::Task)
Definition: vbus.h:162