Android Open Source - drive-mount Standard Inquiry Answer






From Project

Back to project page drive-mount.

License

The source code is released under:

Apache License

If you think the Android project drive-mount listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
 * Copyright  2014 Jan Seeger//  ww w  .j  a v  a2 s  .c o  m
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package net.alphadev.usbstorage.scsi.answer;

import net.alphadev.usbstorage.util.BitStitching;

/**
 * @author Jan Seeger <jan@alphadev.net>
 */
@SuppressWarnings("unused")
public class StandardInquiryAnswer {
    public static final byte LENGTH = 0x24;
    private final byte mResponseDataFormat;
    private final boolean mSccs;
    private final short mVersionDescriptor1;
    private final short mVersionDescriptor2;
    private final short mVersionDescriptor3;
    private byte mPeripheralQualifier;
    private byte mPeripheralDeviceType;
    private boolean mRemovable;
    private boolean mAerc;
    private boolean mNormAca;
    /**
     * Hierarchical Addressing Support
     */
    private boolean mHiSup;
    private byte mAdditionalLength;
    private String mVendorId;
    private String mProductId;
    private String mRevisionId;
    /**
     * Version 4 == SPC-2
     */
    private byte mVersion;

    public StandardInquiryAnswer(byte[] answer) {
        if (answer.length != LENGTH) {
            throw new IllegalArgumentException("Inquiry answer has invalid length!");
        }

        mPeripheralDeviceType = (byte) (answer[0] & 0xe0);
        mPeripheralQualifier = (byte) (answer[0] & 0x1f);
        mRemovable = answer[1] == (byte) 0x80;
        mVersion = answer[2];
        mAerc = answer[3] == (byte) 0x80;
        mNormAca = answer[3] == (byte) 0x20;
        mHiSup = answer[3] == (byte) 0x10;
        mAdditionalLength = answer[4];
        mRemovable = answer[5] == (byte) 0x80;
        mVendorId = BitStitching.bytesToString(answer, 8, 8);
        mProductId = BitStitching.bytesToString(answer, 16, 16);
        mRevisionId = BitStitching.bytesToString(answer, 32, 4);
        mVersionDescriptor1 = 0;
        mVersionDescriptor2 = 0;
        mVersionDescriptor3 = 0;
        mResponseDataFormat = 0;
        mSccs = false;
    }

    public byte getAdditionalLength() {
        return mAdditionalLength;
    }

    public byte getPeripheralQualifier() {
        return mPeripheralQualifier;
    }

    public byte getPeripheralDeviceType() {
        return mPeripheralDeviceType;
    }

    public boolean isRemovable() {
        return mRemovable;
    }

    public boolean isAerc() {
        return mAerc;
    }

    public boolean isNormAca() {
        return mNormAca;
    }

    public boolean isHiSup() {
        return mHiSup;
    }

    public byte getResponseDataFormat() {
        return mResponseDataFormat;
    }

    public boolean isSccs() {
        return mSccs;
    }

    public String getVendorId() {
        return mVendorId;
    }

    public String getProductId() {
        return mProductId;
    }

    public String getRevisionId() {
        return mRevisionId;
    }

    public short getVersionDescriptor1() {
        return mVersionDescriptor1;
    }

    public short getVersionDescriptor2() {
        return mVersionDescriptor2;
    }

    public short getVersionDescriptor3() {
        return mVersionDescriptor3;
    }

    public byte getVersion() {
        return mVersion;
    }
}




Java Source Code List

net.alphadev.fat32wrapper.Fat32Provider.java
net.alphadev.fat32wrapper.FatBlockDeviceWrapper.java
net.alphadev.fat32wrapper.FatStorage.java
net.alphadev.fat32wrapper.ReadingFileHandle.java
net.alphadev.usbstorage.DeviceManager.java
net.alphadev.usbstorage.DocumentProviderImpl.java
net.alphadev.usbstorage.StorageManager.java
net.alphadev.usbstorage.UsbBulkDevice.java
net.alphadev.usbstorage.api.Identifiable.java
net.alphadev.usbstorage.api.device.BlockDevice.java
net.alphadev.usbstorage.api.device.BulkDevice.java
net.alphadev.usbstorage.api.device.ReadOnlyException.java
net.alphadev.usbstorage.api.filesystem.FileAttribute.java
net.alphadev.usbstorage.api.filesystem.FileHandle.java
net.alphadev.usbstorage.api.filesystem.FileSystemProvider.java
net.alphadev.usbstorage.api.filesystem.Path.java
net.alphadev.usbstorage.api.filesystem.StorageDevice.java
net.alphadev.usbstorage.api.scsi.ScsiTransferable.java
net.alphadev.usbstorage.api.scsi.Transmittable.java
net.alphadev.usbstorage.bbb.BulkBlockDevice.java
net.alphadev.usbstorage.partition.FileSystemDescriptor.java
net.alphadev.usbstorage.partition.MasterBootRecord.java
net.alphadev.usbstorage.partition.PartitionParameters.java
net.alphadev.usbstorage.partition.Partition.java
net.alphadev.usbstorage.scsi.CommandBlockWrapper.java
net.alphadev.usbstorage.scsi.CommandStatusWrapper.java
net.alphadev.usbstorage.scsi.answer.ModeSenseResponse.java
net.alphadev.usbstorage.scsi.answer.ReadCapacityResponse.java
net.alphadev.usbstorage.scsi.answer.ReadFormatCapacitiesEntry.java
net.alphadev.usbstorage.scsi.answer.ReadFormatCapacitiesHeader.java
net.alphadev.usbstorage.scsi.answer.RequestSenseResponse.java
net.alphadev.usbstorage.scsi.answer.StandardInquiryAnswer.java
net.alphadev.usbstorage.scsi.command.Inquiry.java
net.alphadev.usbstorage.scsi.command.ModeSense.java
net.alphadev.usbstorage.scsi.command.Read10.java
net.alphadev.usbstorage.scsi.command.ReadCapacity.java
net.alphadev.usbstorage.scsi.command.ReadFormatCapacities.java
net.alphadev.usbstorage.scsi.command.RequestSense.java
net.alphadev.usbstorage.scsi.command.ScsiCommand.java
net.alphadev.usbstorage.scsi.command.TestUnitReady.java
net.alphadev.usbstorage.util.BitStitching.java
net.alphadev.usbstorage.util.ParcelFileDescriptorUtil.java