Changeset 8bf672d in mainline for uspace/lib/c
- Timestamp:
- 2012-03-30T17:42:11Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 66a272f8
- Parents:
- 3b3c689
- Location:
- uspace/lib/c
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/inetcfg.c
r3b3c689 r8bf672d 238 238 } 239 239 240 int inetcfg_get_sroute_list(sysarg_t **sroutes, size_t *count) 241 { 242 return inetcfg_get_ids_internal(INETCFG_GET_SROUTE_LIST, 243 0, sroutes, count); 244 } 245 240 246 int inetcfg_link_get(sysarg_t link_id, inet_link_info_t *linfo) 241 247 { … … 274 280 } 275 281 282 int inetcfg_sroute_create(const char *name, inet_naddr_t *dest, 283 inet_addr_t *router, sysarg_t *sroute_id) 284 { 285 async_exch_t *exch = async_exchange_begin(inetcfg_sess); 286 287 ipc_call_t answer; 288 aid_t req = async_send_3(exch, INETCFG_SROUTE_CREATE, 289 dest->ipv4, dest->bits, router->ipv4, &answer); 290 sysarg_t retval = async_data_write_start(exch, name, str_size(name)); 291 292 async_exchange_end(exch); 293 294 if (retval != EOK) { 295 async_wait_for(req, NULL); 296 return retval; 297 } 298 299 async_wait_for(req, &retval); 300 *sroute_id = IPC_GET_ARG1(answer); 301 302 return retval; 303 } 304 305 int inetcfg_sroute_delete(sysarg_t sroute_id) 306 { 307 async_exch_t *exch = async_exchange_begin(inetcfg_sess); 308 309 int rc = async_req_1_0(exch, INETCFG_SROUTE_DELETE, sroute_id); 310 async_exchange_end(exch); 311 312 return rc; 313 } 314 315 int inetcfg_sroute_get(sysarg_t sroute_id, inet_sroute_info_t *srinfo) 316 { 317 ipc_call_t dreply; 318 sysarg_t dretval; 319 size_t act_size; 320 char name_buf[LOC_NAME_MAXLEN + 1]; 321 322 async_exch_t *exch = async_exchange_begin(inetcfg_sess); 323 324 ipc_call_t answer; 325 aid_t req = async_send_1(exch, INETCFG_SROUTE_GET, sroute_id, &answer); 326 aid_t dreq = async_data_read(exch, name_buf, LOC_NAME_MAXLEN, &dreply); 327 async_wait_for(dreq, &dretval); 328 329 async_exchange_end(exch); 330 331 if (dretval != EOK) { 332 async_wait_for(req, NULL); 333 return dretval; 334 } 335 336 sysarg_t retval; 337 async_wait_for(req, &retval); 338 339 if (retval != EOK) 340 return retval; 341 342 act_size = IPC_GET_ARG2(dreply); 343 assert(act_size <= LOC_NAME_MAXLEN); 344 name_buf[act_size] = '\0'; 345 346 srinfo->dest.ipv4 = IPC_GET_ARG1(answer); 347 srinfo->dest.bits = IPC_GET_ARG2(answer); 348 srinfo->router.ipv4 = IPC_GET_ARG3(answer); 349 srinfo->name = str_dup(name_buf); 350 351 return EOK; 352 } 353 354 int inetcfg_sroute_get_id(const char *name, sysarg_t *sroute_id) 355 { 356 async_exch_t *exch = async_exchange_begin(inetcfg_sess); 357 358 ipc_call_t answer; 359 aid_t req = async_send_0(exch, INETCFG_SROUTE_GET_ID, &answer); 360 sysarg_t retval = async_data_write_start(exch, name, str_size(name)); 361 362 async_exchange_end(exch); 363 364 if (retval != EOK) { 365 async_wait_for(req, NULL); 366 return retval; 367 } 368 369 async_wait_for(req, &retval); 370 *sroute_id = IPC_GET_ARG1(answer); 371 372 return retval; 373 } 374 276 375 /** @} 277 376 */ -
uspace/lib/c/include/inet/inetcfg.h
r3b3c689 r8bf672d 63 63 } inet_link_info_t; 64 64 65 /** Static route info */ 66 typedef struct { 67 /** Destination network address */ 68 inet_naddr_t dest; 69 /** Router address */ 70 inet_addr_t router; 71 /** Static route name */ 72 char *name; 73 } inet_sroute_info_t; 74 65 75 extern int inetcfg_init(void); 66 76 extern int inetcfg_addr_create_static(const char *, inet_naddr_t *, sysarg_t, sysarg_t *); … … 70 80 extern int inetcfg_get_addr_list(sysarg_t **, size_t *); 71 81 extern int inetcfg_get_link_list(sysarg_t **, size_t *); 82 extern int inetcfg_get_sroute_list(sysarg_t **, size_t *); 72 83 extern int inetcfg_link_get(sysarg_t, inet_link_info_t *); 84 extern int inetcfg_sroute_get(sysarg_t, inet_sroute_info_t *); 85 extern int inetcfg_sroute_get_id(const char *, sysarg_t *); 86 extern int inetcfg_sroute_create(const char *, inet_naddr_t *, inet_addr_t *, 87 sysarg_t *); 88 extern int inetcfg_sroute_delete(sysarg_t); 73 89 74 90 #endif -
uspace/lib/c/include/ipc/inet.h
r3b3c689 r8bf672d 69 69 INETCFG_GET_ADDR_LIST, 70 70 INETCFG_GET_LINK_LIST, 71 INETCFG_GET_SROUTE_LIST, 71 72 INETCFG_LINK_GET, 73 INETCFG_SROUTE_CREATE, 74 INETCFG_SROUTE_DELETE, 75 INETCFG_SROUTE_GET, 76 INETCFG_SROUTE_GET_ID 72 77 } inetcfg_request_t; 73 78
Note:
See TracChangeset
for help on using the changeset viewer.