Changeset 962f03b in mainline for uspace/srv/ethip/ethip_nic.c
- Timestamp:
- 2012-02-27T19:32:15Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 56792a2
- Parents:
- 87e5658c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/ethip/ethip_nic.c
r87e5658c r962f03b 115 115 116 116 link_initialize(&nic->nic_list); 117 list_initialize(&nic->addr_list); 117 118 118 119 return nic; 120 } 121 122 static ethip_link_addr_t *ethip_nic_addr_new(iplink_srv_addr_t *addr) 123 { 124 ethip_link_addr_t *laddr = calloc(1, sizeof(ethip_link_addr_t)); 125 126 if (laddr == NULL) { 127 log_msg(LVL_ERROR, "Failed allocating NIC address structure. " 128 "Out of memory."); 129 return NULL; 130 } 131 132 link_initialize(&laddr->addr_list); 133 laddr->addr.ipv4 = addr->ipv4; 134 return laddr; 119 135 } 120 136 … … 124 140 free(nic->svc_name); 125 141 free(nic); 142 } 143 144 static void ethip_link_addr_delete(ethip_link_addr_t *laddr) 145 { 146 free(laddr); 126 147 } 127 148 … … 308 329 rc = nic_send_frame(nic->sess, data, size); 309 330 log_msg(LVL_DEBUG, "nic_send_frame -> %d", rc); 310 log_msg(LVL_DEBUG, "nic_send_frame -> %d", rc);311 log_msg(LVL_DEBUG, "nic_send_frame -> %d", rc);312 log_msg(LVL_DEBUG, "nic_send_frame -> %d", rc);313 log_msg(LVL_DEBUG, "nic_send_frame -> %d", rc);314 log_msg(LVL_DEBUG, "nic_send_frame -> %d", rc);315 log_msg(LVL_DEBUG, "nic_send_frame -> %d", rc);316 log_msg(LVL_DEBUG, "nic_send_frame -> %d", rc);317 331 return rc; 332 } 333 334 int ethip_nic_addr_add(ethip_nic_t *nic, iplink_srv_addr_t *addr) 335 { 336 ethip_link_addr_t *laddr; 337 338 log_msg(LVL_DEBUG, "ethip_nic_addr_add()"); 339 laddr = ethip_nic_addr_new(addr); 340 if (laddr == NULL) 341 return ENOMEM; 342 343 list_append(&laddr->addr_list, &nic->addr_list); 344 return EOK; 345 } 346 347 int ethip_nic_addr_remove(ethip_nic_t *nic, iplink_srv_addr_t *addr) 348 { 349 ethip_link_addr_t *laddr; 350 351 log_msg(LVL_DEBUG, "ethip_nic_addr_remove()"); 352 353 laddr = ethip_nic_addr_find(nic, addr); 354 if (laddr == NULL) 355 return ENOENT; 356 357 list_remove(&laddr->addr_list); 358 ethip_link_addr_delete(laddr); 359 return EOK; 360 } 361 362 ethip_link_addr_t *ethip_nic_addr_find(ethip_nic_t *nic, 363 iplink_srv_addr_t *addr) 364 { 365 log_msg(LVL_DEBUG, "ethip_nic_addr_find()"); 366 367 list_foreach(nic->addr_list, link) { 368 ethip_link_addr_t *laddr = list_get_instance(link, 369 ethip_link_addr_t, addr_list); 370 371 if (addr->ipv4 == laddr->addr.ipv4) 372 return laddr; 373 } 374 375 return NULL; 318 376 } 319 377
Note:
See TracChangeset
for help on using the changeset viewer.