/trunk/uspace/lib/libc/include/ipc/ipc.h |
---|
266,8 → 266,7 |
extern int ipc_data_read_receive(ipc_callid_t *callid, size_t *size); |
extern int ipc_data_read_deliver(ipc_callid_t callid, void *src, size_t size); |
extern int ipc_data_write_send(int phoneid, void *src, size_t size); |
extern int ipc_data_write_receive(ipc_callid_t *callid, void **dst, |
size_t *size); |
extern int ipc_data_write_receive(ipc_callid_t *callid, size_t *size); |
extern int ipc_data_write_deliver(ipc_callid_t callid, void *dst, size_t size); |
#endif |
/trunk/uspace/lib/libc/generic/ipc.c |
---|
735,7 → 735,7 |
*/ |
int ipc_data_write_send(int phoneid, void *src, size_t size) |
{ |
return ipc_call_sync_3_0(phoneid, IPC_M_DATA_WRITE, 0, (ipcarg_t) src, |
return ipc_call_sync_2_0(phoneid, IPC_M_DATA_WRITE, (ipcarg_t) src, |
(ipcarg_t) size); |
} |
748,14 → 748,12 |
* |
* @param callid Storage where the hash of the IPC_M_DATA_WRITE call will |
* be stored. |
* @param dst Storage where the suggested destination address will |
* be stored. May be NULL. |
* @param size Storage where the suggested size will be stored. May be |
* NULL |
* |
* @return Non-zero on success, zero on failure. |
*/ |
int ipc_data_write_receive(ipc_callid_t *callid, void **dst, size_t *size) |
int ipc_data_write_receive(ipc_callid_t *callid, size_t *size) |
{ |
ipc_call_t data; |
764,10 → 762,8 |
*callid = async_get_call(&data); |
if (IPC_GET_METHOD(data) != IPC_M_DATA_WRITE) |
return 0; |
if (dst) |
*dst = (void *) IPC_GET_ARG1(data); |
if (size) |
*size = (size_t) IPC_GET_ARG3(data); |
*size = (size_t) IPC_GET_ARG2(data); |
return 1; |
} |
784,7 → 780,7 |
*/ |
int ipc_data_write_deliver(ipc_callid_t callid, void *dst, size_t size) |
{ |
return ipc_answer_3(callid, EOK, (ipcarg_t) dst, 0, (ipcarg_t) size); |
return ipc_answer_2(callid, EOK, (ipcarg_t) dst, (ipcarg_t) size); |
} |
/** @} |
/trunk/uspace/srv/fs/tmpfs/tmpfs_ops.c |
---|
338,7 → 338,7 |
*/ |
ipc_callid_t callid; |
size_t len; |
if (!ipc_data_write_receive(&callid, NULL, &len)) { |
if (!ipc_data_write_receive(&callid, &len)) { |
ipc_answer_0(callid, EINVAL); |
ipc_answer_0(rid, EINVAL); |
return; |
/trunk/uspace/srv/devmap/devmap.c |
---|
202,7 → 202,7 |
/* |
* Get driver name |
*/ |
if (!ipc_data_write_receive(&callid, NULL, &name_size)) { |
if (!ipc_data_write_receive(&callid, &name_size)) { |
printf("Unexpected request.\n"); |
free(driver); |
ipc_answer_0(callid, EREFUSED); |
368,7 → 368,7 |
} |
/* Get device name */ |
if (!ipc_data_write_receive(&callid, NULL, &size)) { |
if (!ipc_data_write_receive(&callid, &size)) { |
free(device); |
printf("Cannot read device name.\n"); |
ipc_answer_0(iid, EREFUSED); |
489,7 → 489,7 |
* Wait for incoming message with device name (but do not |
* read the name itself until the buffer is allocated). |
*/ |
if (!ipc_data_write_receive(&callid, NULL, &name_size)) { |
if (!ipc_data_write_receive(&callid, &name_size)) { |
ipc_answer_0(callid, EREFUSED); |
ipc_answer_0(iid, EREFUSED); |
return; |
/trunk/uspace/srv/vfs/vfs_open.c |
---|
61,7 → 61,7 |
ipc_callid_t callid; |
if (!ipc_data_write_receive(&callid, NULL, &size)) { |
if (!ipc_data_write_receive(&callid, &size)) { |
ipc_answer_0(callid, EINVAL); |
ipc_answer_0(rid, EINVAL); |
return; |
/trunk/uspace/srv/vfs/vfs_mount.c |
---|
86,7 → 86,7 |
* Now, we expect the client to send us data with the name of the file |
* system. |
*/ |
if (!ipc_data_write_receive(&callid, NULL, &size)) { |
if (!ipc_data_write_receive(&callid, &size)) { |
ipc_answer_0(callid, EINVAL); |
ipc_answer_0(rid, EINVAL); |
return; |
122,7 → 122,7 |
/* |
* Now, we want the client to send us the mount point. |
*/ |
if (!ipc_data_write_receive(&callid, NULL, &size)) { |
if (!ipc_data_write_receive(&callid, &size)) { |
ipc_answer_0(callid, EINVAL); |
ipc_answer_0(rid, EINVAL); |
return; |
/trunk/uspace/srv/vfs/vfs_register.c |
---|
164,7 → 164,7 |
* The first call has to be IPC_M_DATA_SEND in which we receive the |
* VFS info structure from the client FS. |
*/ |
if (!ipc_data_write_receive(&callid, NULL, &size)) { |
if (!ipc_data_write_receive(&callid, &size)) { |
/* |
* The client doesn't obey the same protocol as we do. |
*/ |
/trunk/uspace/srv/vfs/vfs_rdwr.c |
---|
73,7 → 73,7 |
if (read) |
res = ipc_data_read_receive(&callid, NULL); |
else |
res = ipc_data_write_receive(&callid, NULL, NULL); |
res = ipc_data_write_receive(&callid, NULL); |
if (!res) { |
ipc_answer_0(callid, EINVAL); |
ipc_answer_0(rid, EINVAL); |