1/* 2 * Copyright (c) 2011, ETH Zurich. 3 * All rights reserved. 4 * 5 * This file is distributed under the terms in the attached LICENSE file. 6 * If you do not find this file, copies can be found by writing to: 7 * ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group. 8 */ 9 10interface ata_rw28 "ATA read & write with 28-bit LBA" { 11 12 @ata(command=0xC8, dma_arg=buffer, dma_size=read_size, lba=start_lba) 13 rpc read_dma(in uint32 read_size, in uint32 start_lba, out uint8 buffer[buffer_size, 2048]); 14 15 @ata(command=0xC8, dma_arg=buffer, dma_size=512, lba=lba) 16 rpc read_dma_block(in uint32 lba, out uint8 buffer[buffer_size, 2048]); 17 18 @ata(command=0xCA, dma_arg=buffer, is_write=1, lba=lba) 19 rpc write_dma(in uint8 buffer[buffer_size, 2048], in uint32 lba, out errval status); 20 21 @ata(command=0xEC, dma_arg=buffer, dma_size=512) 22 rpc identify_device(out uint8 buffer[buffer_size, 2048]); 23 24 @ata(command=0xE7) 25 rpc flush_cache(out errval status); 26}; 27 28