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