00001
00009
00010
00011
00012
00013 import <l4/sys/types.h>
00014 import <l4/l4vfs/types.h>
00015
00016 #pragma force-include
00017 #include <l4/l4vfs/comm_defs.h>
00018
00022 library l4vfs
00023 {
00028 [uuid(51), abstract]
00029 interface common_io
00030 {
00031 [allow_reply_only]
00032 l4vfs_ssize_t read([in] object_handle_t handle,
00033 [out, size_is(count), ref, prealloc_client,
00034 prealloc_server] char **buf,
00035 [in, out] l4vfs_size_t *count);
00036 [allow_reply_only]
00037 l4vfs_ssize_t write([in] object_handle_t handle,
00038 [in, ref, size_is(count),
00039 max_is(L4VFS_WRITE_RCVBUF_SIZE)] char *buf,
00040 [in, out] l4vfs_size_t *count);
00041 l4_int32_t close([in] object_handle_t handle);
00042
00043 l4_int32_t ioctl([in] object_handle_t handle,
00044 [in] int cmd,
00045 [in, out, prealloc_client, ref, size_is(count)]
00046 char **arg,
00047 [in, out] l4vfs_size_t *count );
00048
00049 l4_int32_t fcntl([in] object_handle_t handle,
00050 [in] int cmd,
00051 [in, out] long *arg);
00052 };
00053 };