1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- /*
- * (C) Copyright 2000-2004
- * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
- #ifndef BLK_H
- #define BLK_H
- #ifdef CONFIG_SYS_64BIT_LBA
- typedef uint64_t lbaint_t;
- #define LBAFlength "ll"
- #else
- typedef ulong lbaint_t;
- #define LBAFlength "l"
- #endif
- #define LBAF "%" LBAFlength "x"
- #define LBAFU "%" LBAFlength "u"
- /* Interface types: */
- enum if_type {
- IF_TYPE_UNKNOWN = 0,
- IF_TYPE_IDE,
- IF_TYPE_SCSI,
- IF_TYPE_ATAPI,
- IF_TYPE_USB,
- IF_TYPE_DOC,
- IF_TYPE_MMC,
- IF_TYPE_SD,
- IF_TYPE_SATA,
- IF_TYPE_HOST,
- IF_TYPE_COUNT, /* Number of interface types */
- };
- struct blk_desc {
- enum if_type if_type; /* type of the interface */
- int devnum; /* device number */
- unsigned char part_type; /* partition type */
- unsigned char target; /* target SCSI ID */
- unsigned char lun; /* target LUN */
- unsigned char hwpart; /* HW partition, e.g. for eMMC */
- unsigned char type; /* device type */
- unsigned char removable; /* removable device */
- #ifdef CONFIG_LBA48
- /* device can use 48bit addr (ATA/ATAPI v7) */
- unsigned char lba48;
- #endif
- lbaint_t lba; /* number of blocks */
- unsigned long blksz; /* block size */
- int log2blksz; /* for convenience: log2(blksz) */
- char vendor[40+1]; /* IDE model, SCSI Vendor */
- char product[20+1]; /* IDE Serial no, SCSI product */
- char revision[8+1]; /* firmware revision */
- unsigned long (*block_read)(struct blk_desc *block_dev,
- lbaint_t start,
- lbaint_t blkcnt,
- void *buffer);
- unsigned long (*block_write)(struct blk_desc *block_dev,
- lbaint_t start,
- lbaint_t blkcnt,
- const void *buffer);
- unsigned long (*block_erase)(struct blk_desc *block_dev,
- lbaint_t start,
- lbaint_t blkcnt);
- void *priv; /* driver private struct pointer */
- };
- #define BLOCK_CNT(size, blk_desc) (PAD_COUNT(size, blk_desc->blksz))
- #define PAD_TO_BLOCKSIZE(size, blk_desc) \
- (PAD_SIZE(size, blk_desc->blksz))
- #endif
|