VSCSIVpdPages.h revision 09cf4b12d98d7d6261d16cca257d29da2a111e07
65697a26b524640b83828b715160c798c43a0424vboxsync * Virtual SCSI driver: Definitions for VPD pages.
65697a26b524640b83828b715160c798c43a0424vboxsync * Copyright (C) 2011 Oracle Corporation
65697a26b524640b83828b715160c798c43a0424vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
65697a26b524640b83828b715160c798c43a0424vboxsync * available from http://www.virtualbox.org. This file is free software;
65697a26b524640b83828b715160c798c43a0424vboxsync * you can redistribute it and/or modify it under the terms of the GNU
65697a26b524640b83828b715160c798c43a0424vboxsync * General Public License (GPL) as published by the Free Software
65697a26b524640b83828b715160c798c43a0424vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
65697a26b524640b83828b715160c798c43a0424vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
65697a26b524640b83828b715160c798c43a0424vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
65697a26b524640b83828b715160c798c43a0424vboxsync/** VPD supported VPD pages page number. */
65697a26b524640b83828b715160c798c43a0424vboxsync/** VPD supported VPD pages size. */
65697a26b524640b83828b715160c798c43a0424vboxsync * Block limits VPD page data.
65697a26b524640b83828b715160c798c43a0424vboxsync /** Device type. */
65697a26b524640b83828b715160c798c43a0424vboxsync unsigned u5PeripheralDeviceType : 5; /**< 0x00 / 00 */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Qualifier. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Page number. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Page size (Big endian) */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Supported pages array - variable. */
65697a26b524640b83828b715160c798c43a0424vboxsyncAssertCompileSize(VSCSIVPDPAGESUPPORTEDPAGES, VSCSI_VPD_SUPPORTED_PAGES_SIZE+1);
65697a26b524640b83828b715160c798c43a0424vboxsynctypedef VSCSIVPDPAGESUPPORTEDPAGES *PVSCSIVPDPAGESUPPORTEDPAGES;
65697a26b524640b83828b715160c798c43a0424vboxsynctypedef const VSCSIVPDPAGESUPPORTEDPAGES *PCVSCSIVPDPAGESUPPORTEDPAGES;
65697a26b524640b83828b715160c798c43a0424vboxsync/** VPD block characteristics page number. */
65697a26b524640b83828b715160c798c43a0424vboxsync/** VPD block characteristics size. */
65697a26b524640b83828b715160c798c43a0424vboxsync * Block limits VPD page data.
65697a26b524640b83828b715160c798c43a0424vboxsync /** Device type. */
65697a26b524640b83828b715160c798c43a0424vboxsync unsigned u5PeripheralDeviceType : 5; /**< 0x00 / 00 */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Qualifier. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Page number. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Page size (Big endian) */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Medium rotation rate. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Reserved. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Nominal form factor. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Reserved */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Reserved. */
65697a26b524640b83828b715160c798c43a0424vboxsyncAssertCompileSize(VSCSIVPDPAGEBLOCKCHARACTERISTICS, VSCSI_VPD_BLOCK_CHARACTERISTICS_SIZE);
65697a26b524640b83828b715160c798c43a0424vboxsynctypedef VSCSIVPDPAGEBLOCKCHARACTERISTICS *PVSCSIVPDPAGEBLOCKCHARACTERISTICS;
65697a26b524640b83828b715160c798c43a0424vboxsynctypedef const VSCSIVPDPAGEBLOCKCHARACTERISTICS *PCVSCSIVPDPAGEBLOCKCHARACTERISTICS;
65697a26b524640b83828b715160c798c43a0424vboxsync#define VSCSI_VPD_BLOCK_CHARACT_MEDIUM_ROTATION_RATE_NOT_REPORTED UINT16_C(0x0000)
65697a26b524640b83828b715160c798c43a0424vboxsync#define VSCSI_VPD_BLOCK_CHARACT_MEDIUM_ROTATION_RATE_NON_ROTATING UINT16_C(0x0001)
65697a26b524640b83828b715160c798c43a0424vboxsync/** VPD block limits page number. */
65697a26b524640b83828b715160c798c43a0424vboxsync/** VPD block limits size. */
65697a26b524640b83828b715160c798c43a0424vboxsync * Block limits VPD page data.
65697a26b524640b83828b715160c798c43a0424vboxsync /** Device type. */
65697a26b524640b83828b715160c798c43a0424vboxsync unsigned u5PeripheralDeviceType : 5; /**< 0x00 / 00 */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Qualifier. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Page number. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Page size (Big endian) */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Reserved. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Maximum compare and write length. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Optimal transfer length granularity. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Maximum transfer length. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Optimal transfer length. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Maximum PREFETCH, XDREAD and XDWRITE transfer length. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Maximum UNMAP LBA count. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Maximum UNMAP block descriptor count. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Optimal UNMAP granularity. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** UNMAP granularity alignment. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Reserved. */
65697a26b524640b83828b715160c798c43a0424vboxsyncAssertCompileSize(VSCSIVPDPAGEBLOCKLIMITS, VSCSI_VPD_BLOCK_LIMITS_SIZE);
65697a26b524640b83828b715160c798c43a0424vboxsynctypedef VSCSIVPDPAGEBLOCKLIMITS *PVSCSIVPDPAGEBLOCKLIMITS;
65697a26b524640b83828b715160c798c43a0424vboxsynctypedef const VSCSIVPDPAGEBLOCKLIMITS *PCVSCSIVPDPAGEBLOCKLIMITS;
65697a26b524640b83828b715160c798c43a0424vboxsync/** VPD block provisioning page number. */
65697a26b524640b83828b715160c798c43a0424vboxsync/** VPD block provisioning size. */
65697a26b524640b83828b715160c798c43a0424vboxsync * Block provisioning VPD page data.
65697a26b524640b83828b715160c798c43a0424vboxsync /** Device type. */
65697a26b524640b83828b715160c798c43a0424vboxsync unsigned u5PeripheralDeviceType : 5; /**< 0x00 / 00 */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Qualifier. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Page number. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Page size (Big endian) */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Threshold exponent. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Descriptor present. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Anchored LBAs supported. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Reserved. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** WRITE SAME command supported. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** UNMAP command supported. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Provisioning type. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Reserved. */
65697a26b524640b83828b715160c798c43a0424vboxsync /** Reserved. */
65697a26b524640b83828b715160c798c43a0424vboxsyncAssertCompileSize(VSCSIVPDPAGEBLOCKPROV, VSCSI_VPD_BLOCK_PROV_SIZE);
65697a26b524640b83828b715160c798c43a0424vboxsynctypedef VSCSIVPDPAGEBLOCKPROV *PVSCSIVPDPAGEBLOCKPROV;
65697a26b524640b83828b715160c798c43a0424vboxsynctypedef const VSCSIVPDPAGEBLOCKPROV *PCVSCSIVPDPAGEBLOCKPROVS;
65697a26b524640b83828b715160c798c43a0424vboxsync#endif /* ___VSCSIVpdPages_h */