struct
file_operations
{
struct
module
*
owner
;
loff_t
(
*
llseek
)
(
struct
file
*
,
loff_t
,
int
)
;
ssize_t
(
*
read
)
(
struct
file
*
,
char
*
,
size_t
,
loff_t
*
)
;
ssize_t
(
*
aio_read
)
(
struct
kiocb
*
,
char
*
,
size_t
,
loff_t
)
;
ssize_t
(
*
write
)
(
struct
file
*
,
const
char
*
,
size_t
,
loff_t
*
)
;
ssize_t
(
*
aio_write
)
(
struct
kiocb
*
,
const
char
*
,
size_t
,
loff_t
)
;
int
(
*
readdir
)
(
struct
file
*
,
void
*
,
filldir_t
)
;
unsigned
int
(
*
poll
)
(
struct
file
*
,
struct
poll_table_struct
*
)
;
int
(
*
ioctl
)
(
struct
inode
*
,
struct
file
*
,
unsigned
int
,
unsigned
long
)
;
int
(
*
mmap
)
(
struct
file
*
,
struct
vm_area_struct
*
)
;
int
(
*
open
)
(
struct
inode
*
,
struct
file
*
)
;
int
(
*
flush
)
(
struct
file
*
)
;
int
(
*
release
)
(
struct
inode
*
,
struct
file
*
)
;
int
(
*
fsync
)
(
struct
file
*
,
struct
dentry
*
,
int
datasync
)
;
int
(
*
aio_fsync
)
(
struct
kiocb
*
,
int
datasync
)
;
int
(
*
fasync
)
(
int
,
struct
file
*
,
int
)
;
int
(
*
lock
)
(
struct
file
*
,
int
,
struct
file_lock
*
)
;
ssize_t
(
*
readv
)
(
struct
file
*
,
const
struct
iovec
*
,
unsigned
long
,
loff_t
*
)
;
ssize_t
(
*
writev
)
(
struct
file
*
,
const
struct
iovec
*
,
unsigned
long
,
loff_t
*
)
;
ssize_t
(
*
sendfile
)
(
struct
file
*
,
loff_t
*
,
size_t
,
read_actor_t
,
void
*
)
;
ssize_t
(
*
sendpage
)
(
struct
file
*
,
struct
page
*
,
int
,
size_t
,
loff_t
*
,
int
)
;
unsigned
long
(
*
get_unmapped_area
)
(
struct
file
*
,
unsigned
long
,
unsigned
long
,
unsigned
long
,
unsigned
long
)
;
}
;