Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
int minor;
};
+#define BINJECT_IOCTL_CHR 'J'
+#define B_IOCTL_ADD _IOWR(BINJECT_IOCTL_CHR, 1, struct b_ioctl_cmd)
+#define B_IOCTL_DEL _IOWR(BINJECT_IOCTL_CHR, 2, struct b_ioctl_cmd)
+
enum {
B_TYPE_READ = 0,
B_TYPE_WRITE,
return -EFAULT;
switch (cmd) {
- case 0:
+ case B_IOCTL_ADD:
ret = b_add_dev(&bic);
if (!ret && copy_to_user(uarg, &bic, sizeof(bic))) {
b_del_dev(&bic);
ret = -EFAULT;
}
break;
- case 1:
+ case B_IOCTL_DEL:
ret = b_del_dev(&bic);
break;
default:
break;
}
- return -ENOTTY;
+ return ret;
}
static const struct file_operations b_misc_fops = {
bic.fd = fd;
- if (ioctl(fdb, 0, &bic) < 0) {
+ if (ioctl(fdb, B_IOCTL_ADD, &bic) < 0) {
perror("ioctl");
return 1;
}
bic.minor = minor(sb.st_rdev);
printf("will delete minor %d\n", bic.minor);
- if (ioctl(fd, 1, &bic) < 0)
+ if (ioctl(fd, B_IOCTL_DEL, &bic) < 0)
perror("ioctl");
close(fd);