X-Git-Url: http://git.thejh.net/?p=moctel.git;a=blobdiff_plain;f=show_ioctl.c;h=8e36dbf8a4ffc05c84e5c74b7654ebf6ffbafc7d;hp=d83c8609cc40b1e49f6cc13b830585d11202d229;hb=c5475c04c00783d8b55ce5d5b4a3dc55eb16dac6;hpb=18a70c75550a8f74d96c85a9579ad6902eac1b4f diff --git a/show_ioctl.c b/show_ioctl.c index d83c860..8e36dbf 100644 --- a/show_ioctl.c +++ b/show_ioctl.c @@ -10,6 +10,8 @@ #include #include +#define KSYM_NAME_LEN 128 + struct fetch_fops_args { int fd; uint64_t retp; @@ -17,37 +19,6 @@ struct fetch_fops_args { #define MOCTEL_FETCH_FOPS _IOR('m', 1, struct fetch_fops_args) -struct file_operations { - void *owner; - void *llseek; - void *read; - void *write; - void *aio_read; - void *aio_write; - void *readdir; - void *poll; - void *unlocked_ioctl; - void *compat_ioctl; - void *mmap; - void *open; - void *flush; - void *release; - void *fsync; - void *aio_fsync; - void *fasync; - void *lock; - void *sendpage; - void *get_unmapped_area; - void *check_flags; - void *flock; - void *splice_write; - void *splice_read; - void *setlease; - void *fallocate; -}; - - - int main(int argc, char **argv) { if (argc != 2) fputs("Usage: show_ioctl \n", stderr), exit(1); @@ -58,10 +29,10 @@ int main(int argc, char **argv) { int ioctlfd = open("/dev/ioctl_info", O_RDONLY); if (ioctlfd == -1) fprintf(stderr, "Can't open /dev/ioctl_info: %m\n"), exit(1); - struct file_operations fops; + char resbuf[KSYM_NAME_LEN]; struct fetch_fops_args ioctl_args = { .fd = devfd, - .retp = (uint64_t)&fops + .retp = (uint64_t)resbuf }; int ret = ioctl(ioctlfd, MOCTEL_FETCH_FOPS, &ioctl_args); if (ret) fprintf(stderr, "can't perform MOCTEL_FETCH_FOPS: %m\n"), exit(1); @@ -69,7 +40,7 @@ int main(int argc, char **argv) { close(ioctlfd); close(devfd); - printf("unlocked_ioctl: %llx\n", (unsigned long long)fops.unlocked_ioctl); + printf("%s\n", resbuf); return 0; }