Changes in uspace/lib/c/generic/devmap.c [991f645:47a7174f] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/devmap.c
r991f645 r47a7174f 107 107 aid_t req = async_send_2(phone, DEVMAP_DRIVER_REGISTER, 0, 0, &answer); 108 108 109 ipcarg_t retval = async_data_write_start(phone, name, str_size(name));109 sysarg_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 ipcarg_t callback_phonehash;118 sysarg_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 * @param namespace Namespace name. 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 * 130 179 * @param fqdn Fully qualified device name. 131 180 * @param handle Output: Handle to the created instance of device. … … 134 183 int devmap_device_register(const char *fqdn, devmap_handle_t *handle) 135 184 { 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 } 185 return devmap_device_register_with_iface(fqdn, handle, 0); 186 } 187 169 188 170 189 int devmap_device_get_handle(const char *fqdn, devmap_handle_t *handle, unsigned int flags) … … 181 200 &answer); 182 201 183 ipcarg_t retval = async_data_write_start(phone, fqdn, str_size(fqdn));202 sysarg_t retval = async_data_write_start(phone, fqdn, str_size(fqdn)); 184 203 if (retval != EOK) { 185 204 async_wait_for(req, NULL); … … 217 236 &answer); 218 237 219 ipcarg_t retval = async_data_write_start(phone, name, str_size(name));238 sysarg_t retval = async_data_write_start(phone, name, str_size(name)); 220 239 if (retval != EOK) { 221 240 async_wait_for(req, NULL); … … 247 266 return phone; 248 267 249 ipcarg_t type;268 sysarg_t type; 250 269 int retval = async_req_1_1(phone, DEVMAP_HANDLE_PROBE, handle, &type); 251 270 if (retval != EOK) … … 277 296 return -1; 278 297 279 ipcarg_t null_id;298 sysarg_t null_id; 280 299 int retval = async_req_0_1(phone, DEVMAP_NULL_CREATE, &null_id); 281 300 if (retval != EOK) … … 292 311 return; 293 312 294 async_req_1_0(phone, DEVMAP_NULL_DESTROY, ( ipcarg_t) null_id);313 async_req_1_0(phone, DEVMAP_NULL_DESTROY, (sysarg_t) null_id); 295 314 } 296 315 297 316 static size_t devmap_count_namespaces_internal(int phone) 298 317 { 299 ipcarg_t count;318 sysarg_t count; 300 319 int retval = async_req_0_1(phone, DEVMAP_GET_NAMESPACE_COUNT, &count); 301 320 if (retval != EOK) … … 307 326 static size_t devmap_count_devices_internal(int phone, devmap_handle_t ns_handle) 308 327 { 309 ipcarg_t count;328 sysarg_t count; 310 329 int retval = async_req_1_1(phone, DEVMAP_GET_DEVICE_COUNT, ns_handle, &count); 311 330 if (retval != EOK) … … 375 394 } 376 395 377 ipcarg_t retval;396 sysarg_t retval; 378 397 async_wait_for(req, &retval); 379 398 async_serialize_end(); … … 427 446 } 428 447 429 ipcarg_t retval;448 sysarg_t retval; 430 449 async_wait_for(req, &retval); 431 450 async_serialize_end();
Note:
See TracChangeset
for help on using the changeset viewer.