Browse Source

Kernel: Add ioctl request for getting a storage device's block size

David Isaksson 3 years ago
parent
commit
b2e57f555b
2 changed files with 7 additions and 0 deletions
  1. 5 0
      Kernel/Storage/StorageDevice.cpp
  2. 2 0
      Userland/Libraries/LibC/sys/ioctl_numbers.h

+ 5 - 0
Kernel/Storage/StorageDevice.cpp

@@ -196,6 +196,11 @@ KResult StorageDevice::ioctl(OpenFileDescription&, unsigned request, Userspace<v
         return copy_to_user(Userspace<size_t*>(arg), &disk_size);
         return copy_to_user(Userspace<size_t*>(arg), &disk_size);
         break;
         break;
     }
     }
+    case STORAGE_DEVICE_GET_BLOCK_SIZE: {
+        size_t size = block_size();
+        return copy_to_user(Userspace<size_t*>(arg), &size);
+        break;
+    }
     default:
     default:
         return EINVAL;
         return EINVAL;
     }
     }

+ 2 - 0
Userland/Libraries/LibC/sys/ioctl_numbers.h

@@ -90,6 +90,7 @@ enum IOCtlNumber {
     SOUNDCARD_IOCTL_SET_SAMPLE_RATE,
     SOUNDCARD_IOCTL_SET_SAMPLE_RATE,
     SOUNDCARD_IOCTL_GET_SAMPLE_RATE,
     SOUNDCARD_IOCTL_GET_SAMPLE_RATE,
     STORAGE_DEVICE_GET_SIZE,
     STORAGE_DEVICE_GET_SIZE,
+    STORAGE_DEVICE_GET_BLOCK_SIZE,
 };
 };
 
 
 #define TIOCGPGRP TIOCGPGRP
 #define TIOCGPGRP TIOCGPGRP
@@ -134,3 +135,4 @@ enum IOCtlNumber {
 #define SOUNDCARD_IOCTL_SET_SAMPLE_RATE SOUNDCARD_IOCTL_SET_SAMPLE_RATE
 #define SOUNDCARD_IOCTL_SET_SAMPLE_RATE SOUNDCARD_IOCTL_SET_SAMPLE_RATE
 #define SOUNDCARD_IOCTL_GET_SAMPLE_RATE SOUNDCARD_IOCTL_GET_SAMPLE_RATE
 #define SOUNDCARD_IOCTL_GET_SAMPLE_RATE SOUNDCARD_IOCTL_GET_SAMPLE_RATE
 #define STORAGE_DEVICE_GET_SIZE STORAGE_DEVICE_GET_SIZE
 #define STORAGE_DEVICE_GET_SIZE STORAGE_DEVICE_GET_SIZE
+#define STORAGE_DEVICE_GET_BLOCK_SIZE STORAGE_DEVICE_GET_BLOCK_SIZE