Changes in uspace/lib/c/generic/iplink.c [a2e3ee6:77ad86c] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/iplink.c
ra2e3ee6 r77ad86c 39 39 #include <errno.h> 40 40 #include <inet/iplink.h> 41 #include <inet/addr.h>42 41 #include <ipc/iplink.h> 43 42 #include <ipc/services.h> … … 84 83 { 85 84 async_exch_t *exch = async_exchange_begin(iplink->sess); 86 85 87 86 ipc_call_t answer; 88 aid_t req = async_send_2(exch, IPLINK_SEND, (sysarg_t) sdu->lsrc,89 (sysarg_t) sdu->ldest, &answer);87 aid_t req = async_send_2(exch, IPLINK_SEND, sdu->lsrc.ipv4, 88 sdu->ldest.ipv4, &answer); 90 89 int rc = async_data_write_start(exch, sdu->data, sdu->size); 91 92 90 async_exchange_end(exch); 93 91 94 92 if (rc != EOK) { 95 93 async_forget(req); 96 94 return rc; 97 95 } 98 96 99 97 sysarg_t retval; 100 98 async_wait_for(req, &retval); 101 99 if (retval != EOK) 102 100 return retval; 103 101 104 102 return EOK; 105 103 } … … 120 118 } 121 119 122 int iplink_addr_add(iplink_t *iplink, i net_addr_t *addr)120 int iplink_addr_add(iplink_t *iplink, iplink_addr_t *addr) 123 121 { 124 uint32_t addr_addr;125 int rc = inet_addr_pack(addr, &addr_addr);126 if (rc != EOK)127 return rc;128 129 122 async_exch_t *exch = async_exchange_begin(iplink->sess); 130 rc = async_req_1_0(exch, IPLINK_ADDR_ADD, (sysarg_t) addr_addr); 123 124 int rc = async_req_1_0(exch, IPLINK_ADDR_ADD, (sysarg_t)addr->ipv4); 131 125 async_exchange_end(exch); 132 126 133 127 return rc; 134 128 } 135 129 136 int iplink_addr_remove(iplink_t *iplink, i net_addr_t *addr)130 int iplink_addr_remove(iplink_t *iplink, iplink_addr_t *addr) 137 131 { 138 uint32_t addr_addr;139 int rc = inet_addr_pack(addr, &addr_addr);140 if (rc != EOK)141 return rc;142 143 132 async_exch_t *exch = async_exchange_begin(iplink->sess); 144 rc = async_req_1_0(exch, IPLINK_ADDR_REMOVE, (sysarg_t) addr_addr); 133 134 int rc = async_req_1_0(exch, IPLINK_ADDR_REMOVE, (sysarg_t)addr->ipv4); 145 135 async_exchange_end(exch); 146 136 147 137 return rc; 148 138 } … … 151 141 ipc_call_t *call) 152 142 { 143 int rc; 153 144 iplink_sdu_t sdu; 154 155 sdu.lsrc = IPC_GET_ARG1(*call);156 sdu.ldest = IPC_GET_ARG2(*call);157 158 intrc = async_data_write_accept(&sdu.data, false, 0, 0, 0, &sdu.size);145 146 sdu.lsrc.ipv4 = IPC_GET_ARG1(*call); 147 sdu.ldest.ipv4 = IPC_GET_ARG2(*call); 148 149 rc = async_data_write_accept(&sdu.data, false, 0, 0, 0, &sdu.size); 159 150 if (rc != EOK) { 160 151 async_answer_0(callid, rc); 161 152 return; 162 153 } 163 154 164 155 rc = iplink->ev_ops->recv(iplink, &sdu); 165 156 free(sdu.data);
Note:
See TracChangeset
for help on using the changeset viewer.