source: mainline/contrib/arch/uspace/srv/devmap/devmap.adl@ e8e2ae1

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since e8e2ae1 was 07fdf203, checked in by Martin Decky <martin@…>, 16 years ago

Extend HelenOS architecture description by introducing Architecture Description Language, interface protocols and frame protocols
Document kernel syscall API
Start documenting uspace architecture and behavior

  • Property mode set to 100644
File size: 2.2 KB
Line 
1interface device_mapper_driver {
2 /* Establish connection (iface is DEVMAP_DRIVER) */
3 ipcarg_t ipc_m_connect_me_to(in ipcarg_t iface);
4
5 /* Register as a new driver */
6 ipcarg_t driver_register(void);
7
8 /* Unregister all devices and the driver itself */
9 ipcarg_t driver_unregister(void);
10
11 /* Register new device and return handle */
12 ipcarg_t device_register(out ipcarg_t handle);
13
14 /* Unregister device */
15 ipcarg_t device_unregister(in ipcarg_t handle);
16
17 /* Resolve device name to handle */
18 ipcarg_t device_get_handle(in ipcarg_t flags);
19
20 /* Get device name for a given handle */
21 ipcarg_t device_get_name(in ipcarg_t handle);
22
23 /* Transfer driver or device name */
24 ipcarg_t ipc_m_data_write(in ipcarg_t src_addr, in ipcarg_t src_size, out ipcarg_t dst_addr, out ipcarg_t dst_size);
25
26 /* Close connection */
27 ipcarg_t ipc_m_phone_hungup(void);
28 protocol:
29 [device_mapper_driver.bp]
30};
31
32interface device_mapper_client {
33 /* Establish connection (iface is DEVMAP_CLIENT) or forward to device (iface is DEVMAP_CONNECT_TO_DEVICE) */
34 ipcarg_t ipc_m_connect_me_to(in ipcarg_t iface, in ipcarg_t handle);
35
36 /* Resolve device name to handle */
37 ipcarg_t device_get_handle(in ipcarg_t flags);
38
39 /* Get device name for a given handle */
40 ipcarg_t device_get_name(in ipcarg_t handle);
41
42 /* Clone NULL device */
43 ipcarg_t device_null_create(out ipcarg_t index);
44
45 /* Destroy NULL device */
46 ipcarg_t device_null_destroy(in ipcarg_t index);
47
48 /* Get number of devices */
49 ipcarg_t device_get_count(out ipcarg_t count);
50
51 /* Get an array of (device_name, handle) pairs */
52 ipcarg_t device_get_devices(void)
53
54 /* Transfer device name from client */
55 ipcarg_t ipc_m_data_write(in ipcarg_t src_addr, in ipcarg_t src_size, out ipcarg_t dst_addr, out ipcarg_t dst_size);
56
57 /* Transfer (device_name, handle) pairs to client */
58 ipcarg_t ipc_m_data_read(in ipcarg_t src_addr, in ipcarg_t src_size, out ipcarg_t dst_addr, out ipcarg_t dst_size);
59
60 /* Close connection */
61 ipcarg_t ipc_m_phone_hungup(void);
62 protocol:
63 [device_mapper_client.bp]
64
65};
66
67frame devmap {
68 provides:
69 device_mapper_driver dm_driver;
70 device_mapper_client dm_client;
71 requires:
72 [/lib/libc/iface.requires]
73 protocol:
74 [devmap.bp]
75};
Note: See TracBrowser for help on using the repository browser.