GJGJH
struct iovec
{
void *iov_base;
_ _kernel_size_t iov_len;
};
Lovely Leopard
struct iovec
{
void *iov_base;
_ _kernel_size_t iov_len;
};
crw-rw-rw- 1 root root 144, 1 Jan 1 1970 0
crw-rw-rw- 1 root root 144, 2 Jan 1 1970 1
crw-rw-rw- 1 root root 144, 3 Jan 1 1970 2
crw-rw-rw- 1 root root 144, 4 Jan 1 1970 3
crw-rw-rw- 1 root root 144, 5 Jan 1 1970 pipe0
crw-rw-rw- 1 root root 144, 6 Jan 1 1970 pipe1
crw-rw-rw- 1 root root 144, 7 Jan 1 1970 pipe2
crw-rw-rw- 1 root root 144, 8 Jan 1 1970 pipe3
crw-rw-rw- 1 root root 144, 12 Jan 1 1970 priv
crw-rw-rw- 1 root root 144, 9 Jan 1 1970 single
crw-rw-rw- 1 root root 144, 10 Jan 1 1970 user
crw-rw-rw- 1 root root 144, 11 Jan 1 1970 wuser
#ifdef LINUX_20
# define INODE_FROM_F(filp) ((filp)->f_inode)
#else
# define INODE_FROM_F(filp) ((filp)->f_dentry->d_inode)
#endif
void memcpy_fromfs(void *to, const void *from, unsigned long count);
void memcpy_tofs(void *to, const void *from, unsigned long count);
ssize_t (*readv) (struct file *filp, const struct iovec *iov,
unsigned long count, loff_t *ppos);
ssize_t (*writev) (struct file *filp, const struct iovec *iov,
unsigned long count, loff_t *ppos);
#include <linux/devfs_fs_kernel.h>
devfs_handle_t devfs_mk_dir (devfs_handle_t dir,
const char *name, void *info);
devfs_handle_t devfs_register (devfs_handle_t dir,
const char *name, unsigned int flags,
unsigned int major, unsigned int minor,
umode_t mode, void *ops, void *info);
void devfs_unregister (devfs_handle_t de);
#include <devfs_fs_kernel.h>
int init_module()
{
/* request a major: does nothing if devfs is used */
result = devfs_register_chrdev(major, "name", &fops);
if (result < 0) return result;
/* register using devfs: does nothing if not in use */
devfs_register(NULL, "name", /* .... */ );
return 0;
}
#ifdef LINUX_20
# ifdef MUTEX_LOCKED /* Only if semaphore.h included */
extern inline void sema_init (struct semaphore *sem, int val)
{
sem->count = val;
sem->waking = sem->lock = 0;
sem->wait = NULL;
}
# endif
#endif /* LINUX_20 */