Changes in uspace/lib/c/generic/devmap.c [9476f4f:991f645] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/devmap.c
r9476f4f r991f645 107 107 aid_t req = async_send_2(phone, DEVMAP_DRIVER_REGISTER, 0, 0, &answer); 108 108 109 sysarg_t retval = async_data_write_start(phone, name, str_size(name));109 ipcarg_t retval = async_data_write_start(phone, name, str_size(name)); 110 110 if (retval != EOK) { 111 111 async_wait_for(req, NULL); … … 116 116 async_set_client_connection(conn); 117 117 118 sysarg_t callback_phonehash;118 ipcarg_t callback_phonehash; 119 119 ipc_connect_to_me(phone, 0, 0, 0, &callback_phonehash); 120 120 async_wait_for(req, &retval); … … 127 127 /** Register new device. 128 128 * 129 * The @p interface is used when forwarding connection to the driver. 130 * If not 0, the first argument is the interface and the second argument 131 * is the devmap handle of the device. 132 * When the interface is zero (default), the first argument is directly 133 * the handle (to ensure backward compatibility). 134 * 135 * @param fqdn Fully qualified device name. 136 * @param[out] handle Handle to the created instance of device. 137 * @param interface Interface when forwarding. 138 * 139 */ 140 int devmap_device_register_with_iface(const char *fqdn, 141 devmap_handle_t *handle, sysarg_t interface) 142 { 143 int phone = devmap_get_phone(DEVMAP_DRIVER, IPC_FLAG_BLOCKING); 144 145 if (phone < 0) 146 return phone; 147 148 async_serialize_start(); 149 150 ipc_call_t answer; 151 aid_t req = async_send_2(phone, DEVMAP_DEVICE_REGISTER, interface, 0, 152 &answer); 153 154 sysarg_t retval = async_data_write_start(phone, fqdn, str_size(fqdn)); 155 if (retval != EOK) { 156 async_wait_for(req, NULL); 157 async_serialize_end(); 158 return retval; 159 } 160 161 async_wait_for(req, &retval); 162 163 async_serialize_end(); 164 165 if (retval != EOK) { 166 if (handle != NULL) 167 *handle = -1; 168 return retval; 169 } 170 171 if (handle != NULL) 172 *handle = (devmap_handle_t) IPC_GET_ARG1(answer); 173 174 return retval; 175 } 176 177 /** Register new device. 178 * 129 * @param namespace Namespace name. 179 130 * @param fqdn Fully qualified device name. 180 131 * @param handle Output: Handle to the created instance of device. … … 183 134 int devmap_device_register(const char *fqdn, devmap_handle_t *handle) 184 135 { 185 return devmap_device_register_with_iface(fqdn, handle, 0); 186 } 187 136 int phone = devmap_get_phone(DEVMAP_DRIVER, IPC_FLAG_BLOCKING); 137 138 if (phone < 0) 139 return phone; 140 141 async_serialize_start(); 142 143 ipc_call_t answer; 144 aid_t req = async_send_2(phone, DEVMAP_DEVICE_REGISTER, 0, 0, 145 &answer); 146 147 ipcarg_t retval = async_data_write_start(phone, fqdn, str_size(fqdn)); 148 if (retval != EOK) { 149 async_wait_for(req, NULL); 150 async_serialize_end(); 151 return retval; 152 } 153 154 async_wait_for(req, &retval); 155 156 async_serialize_end(); 157 158 if (retval != EOK) { 159 if (handle != NULL) 160 *handle = -1; 161 return retval; 162 } 163 164 if (handle != NULL) 165 *handle = (devmap_handle_t) IPC_GET_ARG1(answer); 166 167 return retval; 168 } 188 169 189 170 int devmap_device_get_handle(const char *fqdn, devmap_handle_t *handle, unsigned int flags) … … 200 181 &answer); 201 182 202 sysarg_t retval = async_data_write_start(phone, fqdn, str_size(fqdn));183 ipcarg_t retval = async_data_write_start(phone, fqdn, str_size(fqdn)); 203 184 if (retval != EOK) { 204 185 async_wait_for(req, NULL); … … 236 217 &answer); 237 218 238 sysarg_t retval = async_data_write_start(phone, name, str_size(name));219 ipcarg_t retval = async_data_write_start(phone, name, str_size(name)); 239 220 if (retval != EOK) { 240 221 async_wait_for(req, NULL); … … 266 247 return phone; 267 248 268 sysarg_t type;249 ipcarg_t type; 269 250 int retval = async_req_1_1(phone, DEVMAP_HANDLE_PROBE, handle, &type); 270 251 if (retval != EOK) … … 279 260 280 261 if (flags & IPC_FLAG_BLOCKING) { 281 phone = async_connect_me_to_blocking(PHONE_NS, SERVICE_DEVMAP,262 phone = ipc_connect_me_to_blocking(PHONE_NS, SERVICE_DEVMAP, 282 263 DEVMAP_CONNECT_TO_DEVICE, handle); 283 264 } else { 284 phone = async_connect_me_to(PHONE_NS, SERVICE_DEVMAP,265 phone = ipc_connect_me_to(PHONE_NS, SERVICE_DEVMAP, 285 266 DEVMAP_CONNECT_TO_DEVICE, handle); 286 267 } … … 296 277 return -1; 297 278 298 sysarg_t null_id;279 ipcarg_t null_id; 299 280 int retval = async_req_0_1(phone, DEVMAP_NULL_CREATE, &null_id); 300 281 if (retval != EOK) … … 311 292 return; 312 293 313 async_req_1_0(phone, DEVMAP_NULL_DESTROY, ( sysarg_t) null_id);294 async_req_1_0(phone, DEVMAP_NULL_DESTROY, (ipcarg_t) null_id); 314 295 } 315 296 316 297 static size_t devmap_count_namespaces_internal(int phone) 317 298 { 318 sysarg_t count;299 ipcarg_t count; 319 300 int retval = async_req_0_1(phone, DEVMAP_GET_NAMESPACE_COUNT, &count); 320 301 if (retval != EOK) … … 326 307 static size_t devmap_count_devices_internal(int phone, devmap_handle_t ns_handle) 327 308 { 328 sysarg_t count;309 ipcarg_t count; 329 310 int retval = async_req_1_1(phone, DEVMAP_GET_DEVICE_COUNT, ns_handle, &count); 330 311 if (retval != EOK) … … 394 375 } 395 376 396 sysarg_t retval;377 ipcarg_t retval; 397 378 async_wait_for(req, &retval); 398 379 async_serialize_end(); … … 446 427 } 447 428 448 sysarg_t retval;429 ipcarg_t retval; 449 430 async_wait_for(req, &retval); 450 431 async_serialize_end();
Note:
See TracChangeset
for help on using the changeset viewer.