/trunk/uspace/lib/libc/include/ipc/ipc.h |
---|
52,8 → 52,8 |
ipc_call_t *data); |
#define ipc_call_sync_2(phoneid, method, arg1, arg2, res1, res2) \ |
ipc_call_sync_3((phoneid), (method), (arg1), (arg2), 0, (res1), (res2), \ |
0) |
ipc_call_sync_3((phoneid), (method), (arg1), (arg2), 0, (res1), \ |
(res2), 0) |
extern int ipc_call_sync_3(int phoneid, ipcarg_t method, ipcarg_t arg1, |
ipcarg_t arg2, ipcarg_t arg3, ipcarg_t *result1, ipcarg_t *result2, |
ipcarg_t *result3); |
69,6 → 69,10 |
} |
extern ipc_callid_t ipc_trywait_for_call(ipc_call_t *data); |
#define ipc_answer_fast_0(callid, retval) \ |
ipc_answer_fast((callid), (retval), 0, 0) |
#define ipc_answer_fast_1(callid, retval, arg1) \ |
ipc_answer_fast((callid), (retval), (arg1), 0) |
extern ipcarg_t ipc_answer_fast(ipc_callid_t callid, ipcarg_t retval, |
ipcarg_t arg1, ipcarg_t arg2); |
extern ipcarg_t ipc_answer(ipc_callid_t callid, ipc_call_t *call); |
/trunk/uspace/srv/ns/ns.c |
---|
92,13 → 92,14 |
if (!*addr) { |
ph_addr = (void *) sysinfo_value(name); |
if (!ph_addr) { |
ipc_answer_fast(callid, ENOENT, 0, 0); |
ipc_answer_fast_0(callid, ENOENT); |
return; |
} |
*addr = as_get_mappable_page(PAGE_SIZE); |
physmem_map(ph_addr, *addr, 1, AS_AREA_READ | AS_AREA_CACHEABLE); |
physmem_map(ph_addr, *addr, 1, |
AS_AREA_READ | AS_AREA_CACHEABLE); |
} |
ipc_answer_fast(callid, 0, (ipcarg_t) *addr, AS_AREA_READ); |
ipc_answer_fast(callid, EOK, (ipcarg_t) *addr, AS_AREA_READ); |
} |
int main(int argc, char **argv) |
127,11 → 128,11 |
&klogaddr); |
break; |
default: |
ipc_answer_fast(callid, ENOENT, 0, 0); |
ipc_answer_fast_0(callid, ENOENT); |
} |
continue; |
case IPC_M_PHONE_HUNGUP: |
retval = 0; |
retval = EOK; |
break; |
case IPC_M_CONNECT_TO_ME: |
/* |
152,7 → 153,7 |
break; |
} |
if (!(callid & IPC_CALLID_NOTIFICATION)) { |
ipc_answer_fast(callid, retval, 0, 0); |
ipc_answer_fast_0(callid, retval); |
} |
} |
} |
/trunk/uspace/srv/fs/fat/fat.c |
---|
93,7 → 93,7 |
* IPC_M_CONNECT_ME_TO calls as opposed to callback connections |
* created by IPC_M_CONNECT_TO_ME. |
*/ |
ipc_answer_fast(iid, EOK, 0, 0); |
ipc_answer_fast_0(iid, EOK); |
} |
dprintf("VFS-FAT connection established.\n"); |
104,7 → 104,7 |
callid = async_get_call(&call); |
switch (IPC_GET_METHOD(call)) { |
default: |
ipc_answer_fast(callid, ENOTSUP, 0, 0); |
ipc_answer_fast_0(callid, ENOTSUP); |
break; |
} |
} |
/trunk/uspace/srv/vfs/vfs.c |
---|
59,7 → 59,7 |
* Initialize the table of open files. |
*/ |
if (!vfs_conn_open_files_init()) { |
ipc_answer_fast(iid, ENOMEM, 0, 0); |
ipc_answer_fast_0(iid, ENOMEM); |
return; |
} |
67,7 → 67,7 |
* The connection was opened via the IPC_CONNECT_ME_TO call. |
* This call needs to be answered. |
*/ |
ipc_answer_fast(iid, EOK, 0, 0); |
ipc_answer_fast_0(iid, EOK); |
/* |
* Here we enter the main connection fibril loop. |
104,7 → 104,7 |
case VFS_WRITE: |
case VFS_SEEK: |
default: |
ipc_answer_fast(callid, ENOTSUP, 0, 0); |
ipc_answer_fast_0(callid, ENOTSUP); |
break; |
} |
} |
/trunk/uspace/srv/vfs/vfs_mount.c |
---|
86,8 → 86,8 |
ipc_call_t call; |
size_t size; |
if (!ipc_data_receive(&callid, &call, NULL, &size)) { |
ipc_answer_fast(callid, EINVAL, 0, 0); |
ipc_answer_fast(rid, EINVAL, 0, 0); |
ipc_answer_fast_0(callid, EINVAL); |
ipc_answer_fast_0(rid, EINVAL); |
return; |
} |
98,8 → 98,8 |
*/ |
if ((size < FS_NAME_MAXLEN + 1) || |
(size > FS_NAME_MAXLEN + MAX_PATH_LEN)) { |
ipc_answer_fast(callid, EINVAL, 0, 0); |
ipc_answer_fast(rid, EINVAL, 0, 0); |
ipc_answer_fast_0(callid, EINVAL); |
ipc_answer_fast_0(rid, EINVAL); |
return; |
} |
109,8 → 109,8 |
uint8_t *buf; |
buf = malloc(size); |
if (!buf) { |
ipc_answer_fast(callid, ENOMEM, 0, 0); |
ipc_answer_fast(rid, ENOMEM, 0, 0); |
ipc_answer_fast_0(callid, ENOMEM); |
ipc_answer_fast_0(rid, ENOMEM); |
return; |
} |
130,7 → 130,7 |
int fs_handle = fs_name_to_handle(fs_name, true); |
if (!fs_handle) { |
free(buf); |
ipc_answer_fast(rid, ENOENT, 0, 0); |
ipc_answer_fast_0(rid, ENOENT); |
return; |
} |
142,7 → 142,7 |
rc = lookup_root(fs_handle, dev_handle, &mounted_root); |
if (rc != EOK) { |
free(buf); |
ipc_answer_fast(rid, rc, 0, 0); |
ipc_answer_fast_0(rid, rc); |
return; |
} |
163,7 → 163,7 |
*/ |
futex_up(&rootfs_futex); |
free(buf); |
ipc_answer_fast(rid, rc, 0, 0); |
ipc_answer_fast_0(rid, rc); |
return; |
} |
} else { |
178,7 → 178,7 |
rootfs = mounted_root; |
futex_up(&rootfs_futex); |
free(buf); |
ipc_answer_fast(rid, EOK, 0, 0); |
ipc_answer_fast_0(rid, EOK); |
return; |
} else { |
/* |
187,7 → 187,7 |
*/ |
futex_up(&rootfs_futex); |
free(buf); |
ipc_answer_fast(rid, ENOENT, 0, 0); |
ipc_answer_fast_0(rid, ENOENT); |
return; |
} |
} |
218,11 → 218,11 |
vfs_release_phone(phone); |
if (rc2 == EOK) |
ipc_answer_fast(rid, rc1, 0, 0); |
ipc_answer_fast_0(rid, rc1); |
else if (rc1 == EOK) |
ipc_answer_fast(rid, rc2, 0, 0); |
ipc_answer_fast_0(rid, rc2); |
else |
ipc_answer_fast(rid, rc1, 0, 0); |
ipc_answer_fast_0(rid, rc1); |
} |
/** |
/trunk/uspace/srv/vfs/vfs_register.c |
---|
159,8 → 159,8 |
* The client doesn't obey the same protocol as we do. |
*/ |
dprintf("Receiving of VFS info failed.\n"); |
ipc_answer_fast(callid, EINVAL, 0, 0); |
ipc_answer_fast(rid, EINVAL, 0, 0); |
ipc_answer_fast_0(callid, EINVAL); |
ipc_answer_fast_0(rid, EINVAL); |
return; |
} |
176,8 → 176,8 |
* the info structure. |
*/ |
dprintf("Received VFS info has bad size.\n"); |
ipc_answer_fast(callid, EINVAL, 0, 0); |
ipc_answer_fast(rid, EINVAL, 0, 0); |
ipc_answer_fast_0(callid, EINVAL); |
ipc_answer_fast_0(rid, EINVAL); |
return; |
} |
188,8 → 188,8 |
fs_info = (fs_info_t *) malloc(sizeof(fs_info_t)); |
if (!fs_info) { |
dprintf("Could not allocate memory for FS info.\n"); |
ipc_answer_fast(callid, ENOMEM, 0, 0); |
ipc_answer_fast(rid, ENOMEM, 0, 0); |
ipc_answer_fast_0(callid, ENOMEM); |
ipc_answer_fast_0(rid, ENOMEM); |
return; |
} |
link_initialize(&fs_info->fs_link); |
199,8 → 199,8 |
dprintf("Failed to deliver the VFS info into our AS, rc=%d.\n", |
rc); |
free(fs_info); |
ipc_answer_fast(callid, rc, 0, 0); |
ipc_answer_fast(rid, rc, 0, 0); |
ipc_answer_fast_0(callid, rc); |
ipc_answer_fast_0(rid, rc); |
return; |
} |
208,8 → 208,8 |
if (!vfs_info_sane(&fs_info->vfs_info)) { |
free(fs_info); |
ipc_answer_fast(callid, EINVAL, 0, 0); |
ipc_answer_fast(rid, EINVAL, 0, 0); |
ipc_answer_fast_0(callid, EINVAL); |
ipc_answer_fast_0(rid, EINVAL); |
return; |
} |
225,8 → 225,8 |
dprintf("FS is already registered.\n"); |
futex_up(&fs_head_futex); |
free(fs_info); |
ipc_answer_fast(callid, EEXISTS, 0, 0); |
ipc_answer_fast(rid, EEXISTS, 0, 0); |
ipc_answer_fast_0(callid, EEXISTS); |
ipc_answer_fast_0(rid, EEXISTS); |
return; |
} |
247,12 → 247,12 |
list_remove(&fs_info->fs_link); |
futex_up(&fs_head_futex); |
free(fs_info); |
ipc_answer_fast(callid, EINVAL, 0, 0); |
ipc_answer_fast(rid, EINVAL, 0, 0); |
ipc_answer_fast_0(callid, EINVAL); |
ipc_answer_fast_0(rid, EINVAL); |
return; |
} |
fs_info->phone = IPC_GET_ARG3(call); |
ipc_answer_fast(callid, EOK, 0, 0); |
ipc_answer_fast_0(callid, EOK); |
dprintf("Callback connection to FS created.\n"); |
266,8 → 266,8 |
futex_up(&fs_head_futex); |
ipc_hangup(fs_info->phone); |
free(fs_info); |
ipc_answer_fast(callid, EINVAL, 0, 0); |
ipc_answer_fast(rid, EINVAL, 0, 0); |
ipc_answer_fast_0(callid, EINVAL); |
ipc_answer_fast_0(rid, EINVAL); |
return; |
} |
281,8 → 281,8 |
futex_up(&fs_head_futex); |
ipc_hangup(fs_info->phone); |
free(fs_info); |
ipc_answer_fast(callid, EINVAL, 0, 0); |
ipc_answer_fast(rid, EINVAL, 0, 0); |
ipc_answer_fast_0(callid, EINVAL); |
ipc_answer_fast_0(rid, EINVAL); |
return; |
} |
300,7 → 300,7 |
* system a global file system handle. |
*/ |
fs_info->fs_handle = (int) atomic_postinc(&fs_handle_next); |
ipc_answer_fast(rid, EOK, (ipcarg_t) fs_info->fs_handle, 0); |
ipc_answer_fast_1(rid, EOK, (ipcarg_t) fs_info->fs_handle); |
futex_up(&fs_head_futex); |