ps3stor.h revision 224106
1/*- 2 * Copyright (C) 2011 glevand (geoffrey.levand@mail.ru) 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 15 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 16 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17 * IN NO EVENT SHALL TOOLS GMBH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 18 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 20 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 21 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 22 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 23 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 * 25 * $FreeBSD: head/sys/boot/powerpc/ps3/ps3stor.h 224106 2011-07-16 19:01:09Z nwhitehorn $ 26 */ 27 28#ifndef _PS3_STOR_H 29#define _PS3_STOR_H 30 31#define PS3_STOR_DEV_MAXREGS 8 32 33struct ps3_storreg { 34 uint64_t sr_id; 35 uint64_t sr_start; 36 uint64_t sr_size; 37}; 38 39struct ps3_stordev { 40 int sd_type; 41 unsigned int sd_busidx; 42 unsigned int sd_devidx; 43 uint64_t sd_busid; 44 uint64_t sd_devid; 45 uint64_t sd_blksize; 46 uint64_t sd_nblocks; 47 uint64_t sd_nregs; 48 struct ps3_storreg sd_regs[PS3_STOR_DEV_MAXREGS]; 49 uint64_t sd_dmabase; 50}; 51 52int ps3stor_setup(struct ps3_stordev *sd, int type); 53 54int ps3stor_read_sectors(struct ps3_stordev *sd, int regidx, 55 uint64_t start_sector, uint64_t sector_count, uint64_t flags, char *buf); 56 57void ps3stor_print(struct ps3_stordev *sd); 58 59#endif 60