Index: uspace/drv/bus/usb/usbmast/inquiry.c
===================================================================
--- uspace/drv/bus/usb/usbmast/inquiry.c	(revision 7b2c17c12c46efe87496f77b088e9069ce6ad8fd)
+++ uspace/drv/bus/usb/usbmast/inquiry.c	(revision d2fac08c799595e851bf16ef460d21c3653116de)
@@ -49,6 +49,6 @@
 #define BITS_GET_MID_MASK(type, bitcount, offset) \
 	((type)( BITS_GET_MASK(type, (bitcount) + (offset)) - BITS_GET_MASK(type, bitcount) ))
-#define BITS_GET(type, number, bitcount, offset) \
-	((type)( (number) & (BITS_GET_MID_MASK(type, bitcount, offset)) ) >> (offset))
+#define BITS_GET(type, number, hi_bit, lo_bit) \
+	((type)( (number) & (BITS_GET_MID_MASK(type, (hi_bit)-(lo_bit)+1, lo_bit)) ) >> (lo_bit))
 
 /** Get string representation for SCSI peripheral device type.
@@ -120,19 +120,20 @@
 	bzero(inquiry_result, sizeof(*inquiry_result));
 
-	inquiry_result->device_type =
-	    BITS_GET(uint8_t, inq_data.pqual_devtype, 5, 0);
-	inquiry_result->removable =
-	    BITS_GET(uint8_t, inq_data.rmb, 1, 7);
+	inquiry_result->device_type = BITS_GET(uint8_t, inq_data.pqual_devtype,
+	    SCSI_PQDT_DEV_TYPE_h, SCSI_PQDT_DEV_TYPE_l);
 
-	str_ncpy(inquiry_result->vendor, 9,
-	    (const char *) &inq_data.vendor, 8);
+	inquiry_result->removable = BITS_GET(uint8_t, inq_data.rmb,
+	    SCSI_RMB_RMB, SCSI_RMB_RMB);
+
+	str_ncpy(inquiry_result->vendor, 1 + sizeof(inq_data.vendor),
+	    (const char *) &inq_data.vendor, sizeof(inq_data.vendor));
 	trim_trailing_spaces(inquiry_result->vendor);
 
-	str_ncpy(inquiry_result->product, 17,
-	    (const char *) &inq_data.product, 16);
+	str_ncpy(inquiry_result->product, 1 + sizeof(inq_data.product),
+	    (const char *) &inq_data.product, sizeof(inq_data.product));
 	trim_trailing_spaces(inquiry_result->product);
 
-	str_ncpy(inquiry_result->revision, 5,
-	    (const char *) &inq_data.revision, 4);
+	str_ncpy(inquiry_result->revision, 1 + sizeof(inq_data.revision),
+	    (const char *) &inq_data.revision, sizeof(inq_data.revision));
 	trim_trailing_spaces(inquiry_result->revision);
 
Index: uspace/lib/scsi/include/scsi/spc.h
===================================================================
--- uspace/lib/scsi/include/scsi/spc.h	(revision 7b2c17c12c46efe87496f77b088e9069ce6ad8fd)
+++ uspace/lib/scsi/include/scsi/spc.h	(revision d2fac08c799595e851bf16ef460d21c3653116de)
@@ -93,4 +93,20 @@
 } scsi_std_inquiry_data_t;
 
+/** Bits in scsi_std_inquiry_data_t.pqual_devtype */
+enum scsi_pqual_devtype_bits {
+	/* Peripheral qualifier */
+	SCSI_PQDT_PQUAL_h	= 7,
+	SCSI_PQDT_PQUAL_l	= 5,
+
+	/* Peripheral device type */
+	SCSI_PQDT_DEV_TYPE_h	= 4,
+	SCSI_PQDT_DEV_TYPE_l	= 0
+};
+
+/** Bits in scsi_std_inquiry_data_t.rmb */
+enum scsi_rmb_bits {
+	SCSI_RMB_RMB		= 7
+};
+
 /** SCSI peripheral device type */
 enum scsi_device_type {
