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

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

more unification of basic types

  • use sysarg_t and native_t (unsigned and signed variant) in both kernel and uspace
  • remove ipcarg_t in favour of sysarg_t

(no change in functionality)

  • Property mode set to 100644
File size: 1.9 KB
RevLine 
[ea5f46d]1interface devmap_driver {
[07fdf203]2 /* Establish connection (iface is DEVMAP_DRIVER) */
[96b02eb9]3 sysarg_t ipc_m_connect_me_to(in sysarg_t iface);
[07fdf203]4
5 /* Register as a new driver */
[96b02eb9]6 sysarg_t driver_register(in_copy string name);
[07fdf203]7
8 /* Unregister all devices and the driver itself */
[96b02eb9]9 sysarg_t driver_unregister(void);
[07fdf203]10
11 /* Register new device and return handle */
[96b02eb9]12 sysarg_t device_register(in_copy string name, out sysarg_t handle);
[07fdf203]13
14 /* Unregister device */
[96b02eb9]15 sysarg_t device_unregister(in sysarg_t handle);
[07fdf203]16
17 /* Resolve device name to handle */
[96b02eb9]18 sysarg_t device_get_handle(in sysarg_t flags, in_copy string name);
[07fdf203]19
20 /* Get device name for a given handle */
[96b02eb9]21 sysarg_t device_get_name(in sysarg_t handle);
[07fdf203]22
23 /* Close connection */
[96b02eb9]24 sysarg_t ipc_m_phone_hungup(void);
[07fdf203]25 protocol:
[ea5f46d]26 [devmap_driver.bp]
[07fdf203]27};
28
[ea5f46d]29interface devmap_client {
[07fdf203]30 /* Establish connection (iface is DEVMAP_CLIENT) or forward to device (iface is DEVMAP_CONNECT_TO_DEVICE) */
[96b02eb9]31 sysarg_t ipc_m_connect_me_to(in sysarg_t iface, in sysarg_t handle);
[07fdf203]32
33 /* Resolve device name to handle */
[96b02eb9]34 sysarg_t device_get_handle(in sysarg_t flags, in_copy string name);
[07fdf203]35
36 /* Get device name for a given handle */
[96b02eb9]37 sysarg_t device_get_name(in sysarg_t handle);
[07fdf203]38
39 /* Clone NULL device */
[96b02eb9]40 sysarg_t device_null_create(out sysarg_t index);
[07fdf203]41
42 /* Destroy NULL device */
[96b02eb9]43 sysarg_t device_null_destroy(in sysarg_t index);
[07fdf203]44
45 /* Get number of devices */
[96b02eb9]46 sysarg_t device_get_count(out sysarg_t count);
[07fdf203]47
48 /* Get an array of (device_name, handle) pairs */
[96b02eb9]49 sysarg_t device_get_devices(out_copy stream data);
[07fdf203]50
51 /* Close connection */
[96b02eb9]52 sysarg_t ipc_m_phone_hungup(void);
[07fdf203]53 protocol:
[ea5f46d]54 [devmap_client.bp]
[07fdf203]55
56};
57
58frame devmap {
59 provides:
[ea5f46d]60 devmap_driver devmap_driver;
61 devmap_client devmap_client;
[07fdf203]62 requires:
[2a70672]63 [/uspace/lib/libc/requires]
[810860a]64 ns ns;
[afe34be]65 rd rd;
66 console console;
[6d4c549]67 initialization:
68 !ns.ipc_m_connect_to_me /* devmap */
[07fdf203]69 protocol:
[6d4c549]70 [/uspace/lib/libc/protocol]
[07fdf203]71};
Note: See TracBrowser for help on using the repository browser.