Changeset a40dea3 in mainline for uspace/srv/hid/input
- Timestamp:
- 2011-06-20T20:04:39Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 6a0ff7f4
- Parents:
- 5203e256
- Location:
- uspace/srv/hid/input/port
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/hid/input/port/adb.c
r5203e256 ra40dea3 37 37 #include <ipc/adb.h> 38 38 #include <async.h> 39 #include <async_obsolete.h>40 39 #include <input.h> 41 40 #include <kbd_port.h> … … 45 44 #include <errno.h> 46 45 #include <devmap.h> 47 #include <devmap_obsolete.h>48 46 49 47 static void kbd_port_events(ipc_callid_t iid, ipc_call_t *icall, void *arg); … … 63 61 64 62 static kbd_dev_t *kbd_dev; 65 static int dev_phone;63 static async_sess_t *dev_sess; 66 64 67 65 static int adb_port_init(kbd_dev_t *kdev) … … 69 67 const char *dev = "adb/kbd"; 70 68 devmap_handle_t handle; 71 69 async_exch_t *exch; 70 int rc; 71 72 72 kbd_dev = kdev; 73 73 74 int rc = devmap_device_get_handle(dev, &handle, 0); 75 if (rc == EOK) { 76 dev_phone = devmap_obsolete_device_connect(handle, 0); 77 if (dev_phone < 0) { 78 printf("%s: Failed to connect to device\n", NAME); 79 return dev_phone; 80 } 81 } else 74 rc = devmap_device_get_handle(dev, &handle, 0); 75 if (rc != EOK) 82 76 return rc; 83 77 78 dev_sess = devmap_device_connect(EXCHANGE_ATOMIC, handle, 0); 79 if (dev_sess == NULL) { 80 printf("%s: Failed to connect to device\n", NAME); 81 return ENOENT; 82 } 83 84 exch = async_exchange_begin(dev_sess); 85 if (exch == NULL) { 86 printf("%s: Failed starting exchange with device\n", NAME); 87 async_hangup(dev_sess); 88 return ENOMEM; 89 } 90 84 91 /* NB: The callback connection is slotted for removal */ 85 rc = async_ obsolete_connect_to_me(dev_phone, 0, 0, 0, kbd_port_events,86 NULL);92 rc = async_connect_to_me(exch, 0, 0, 0, kbd_port_events, NULL); 93 async_exchange_end(exch); 87 94 if (rc != EOK) { 88 95 printf(NAME ": Failed to create callback from device\n"); 96 async_hangup(dev_sess); 89 97 return rc; 90 98 } -
uspace/srv/hid/input/port/chardev.c
r5203e256 ra40dea3 37 37 #include <ipc/char.h> 38 38 #include <async.h> 39 #include <async_obsolete.h>40 39 #include <input.h> 41 40 #include <kbd_port.h> 42 41 #include <kbd.h> 43 42 #include <devmap.h> 44 #include <devmap_obsolete.h>45 43 #include <errno.h> 46 44 #include <stdio.h> … … 61 59 62 60 static kbd_dev_t *kbd_dev; 63 static int dev_phone;61 static async_sess_t *dev_sess; 64 62 65 63 /** List of devices to try connecting to. */ … … 74 72 { 75 73 devmap_handle_t handle; 74 async_exch_t *exch; 76 75 unsigned int i; 77 76 int rc; … … 90 89 } 91 90 92 dev_phone = devmap_obsolete_device_connect(handle, IPC_FLAG_BLOCKING); 93 if (dev_phone < 0) { 91 dev_sess = devmap_device_connect(EXCHANGE_ATOMIC, handle, 92 IPC_FLAG_BLOCKING); 93 if (dev_sess == NULL) { 94 94 printf("%s: Failed connecting to device\n", NAME); 95 95 return ENOENT; 96 96 } 97 97 98 exch = async_exchange_begin(dev_sess); 99 if (exch == NULL) { 100 printf("%s: Failed starting exchange with device\n", NAME); 101 async_hangup(dev_sess); 102 return ENOMEM; 103 } 104 98 105 /* NB: The callback connection is slotted for removal */ 99 if (async_obsolete_connect_to_me(dev_phone, 0, 0, 0, kbd_port_events, 100 NULL) != 0) { 106 rc = async_connect_to_me(exch, 0, 0, 0, kbd_port_events, NULL); 107 async_exchange_end(exch); 108 109 if (rc != 0) { 101 110 printf(NAME ": Failed to create callback from device\n"); 111 async_hangup(dev_sess); 102 112 return -1; 103 113 } 104 114 105 115 return 0; 106 116 } … … 116 126 static void chardev_port_write(uint8_t data) 117 127 { 118 async_obsolete_msg_1(dev_phone, CHAR_WRITE_BYTE, data); 128 async_exch_t *exch = async_exchange_begin(dev_sess); 129 if (exch == NULL) { 130 printf("%s: Failed starting exchange with device\n", NAME); 131 return; 132 } 133 134 async_msg_1(exch, CHAR_WRITE_BYTE, data); 135 async_exchange_end(exch); 119 136 } 120 137
Note:
See TracChangeset
for help on using the changeset viewer.
