2 * This file is part of the Palacios Virtual Machine Monitor developed
3 * by the V3VEE Project with funding from the United States National
4 * Science Foundation and the Department of Energy.
6 * The V3VEE Project is a joint project between Northwestern University
7 * and the University of New Mexico. You can find out more at
10 * Copyright (c) 2008, Jack Lange <jarusl@cs.northwestern.edu>
11 * Copyright (c) 2008, The V3VEE Project <http://www.v3vee.org>
12 * All rights reserved.
14 * Author: Jack Lange <jarusl@cs.northwestern.edu>
16 * This is free software. You are permitted to use,
17 * redistribute, and modify it as specified in the file "V3VEE_LICENSE".
21 #ifndef __DEVICES_ATAPI_TYPES_H__
22 #define __DEVICES_ATAPI_TYPES_H__
26 #include <palacios/vmm_types.h>
30 ATAPI_SEN_NOT_RDY = 2,
31 ATAPI_SEN_ILL_REQ = 5,
32 ATAPI_SEN_UNIT_ATTNT = 6
36 ASC_INV_CMD_FIELD = 0x24,
37 ASC_MEDIA_NOT_PRESENT = 0x3a,
38 ASC_SAVE_PARAM_NOT_SUPPORTED = 0x39,
39 ASC_LOG_BLK_OOR = 0x21 /* LOGICAL BLOCK OUT OF RANGE */
40 } atapi_add_sense_code_t ;
43 struct atapi_sense_data {
49 uint8_t sense_key; // atapi_sense_key_t
51 uint8_t read_len; // num bytes past this point
53 uint8_t asc; // atapi_add_sense_code_t
57 } __attribute__((packed));
58 } __attribute__((packed));
59 } __attribute__((packed));
64 struct atapi_read10_cmd {
68 uint8_t force_access : 1; // can't use cache for data
69 uint8_t disable_pg_out : 1;
75 } __attribute__((packed));