Changes in uspace/lib/c/generic/net/modules.c [7880d58:228e490] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/net/modules.c
r7880d58 r228e490 198 198 } 199 199 200 /** Receives data from the other party. 201 * 202 * The received data buffer is allocated and returned. 203 * 204 * @param[out] data The data buffer to be filled. 205 * @param[out] length The buffer length. 206 * @return EOK on success. 207 * @return EBADMEM if the data or the length parameter is NULL. 208 * @return EINVAL if the client does not send data. 209 * @return ENOMEM if there is not enough memory left. 210 * @return Other error codes as defined for the 211 * async_data_write_finalize() function. 212 */ 213 int data_receive(void **data, size_t *length) 214 { 215 ipc_callid_t callid; 216 int rc; 217 218 if (!data || !length) 219 return EBADMEM; 220 221 // fetch the request 222 if (!async_data_write_receive(&callid, length)) 223 return EINVAL; 224 225 // allocate the buffer 226 *data = malloc(*length); 227 if (!*data) 228 return ENOMEM; 229 230 // fetch the data 231 rc = async_data_write_finalize(callid, *data, *length); 232 if (rc != EOK) { 233 free(data); 234 return rc; 235 } 236 237 return EOK; 238 } 239 200 240 /** Replies the data to the other party. 201 241 *
Note:
See TracChangeset
for help on using the changeset viewer.