mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.6 KiB
63 lines
1.6 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
/* |
|
* inftl.h -- defines to support the Inverse NAND Flash Translation Layer |
|
* |
|
* (C) Copyright 2002, Greg Ungerer ([email protected]) |
|
*/ |
|
|
|
#ifndef __MTD_INFTL_H__ |
|
#define __MTD_INFTL_H__ |
|
|
|
#ifndef __KERNEL__ |
|
#error This is a kernel header. Perhaps include nftl-user.h instead? |
|
#endif |
|
|
|
#include <linux/mtd/blktrans.h> |
|
#include <linux/mtd/mtd.h> |
|
#include <linux/mtd/nftl.h> |
|
|
|
#include <mtd/inftl-user.h> |
|
|
|
#ifndef INFTL_MAJOR |
|
#define INFTL_MAJOR 96 |
|
#endif |
|
#define INFTL_PARTN_BITS 4 |
|
|
|
#ifdef __KERNEL__ |
|
|
|
struct INFTLrecord { |
|
struct mtd_blktrans_dev mbd; |
|
__u16 MediaUnit; |
|
__u32 EraseSize; |
|
struct INFTLMediaHeader MediaHdr; |
|
int usecount; |
|
unsigned char heads; |
|
unsigned char sectors; |
|
unsigned short cylinders; |
|
__u16 numvunits; |
|
__u16 firstEUN; |
|
__u16 lastEUN; |
|
__u16 numfreeEUNs; |
|
__u16 LastFreeEUN; /* To speed up finding a free EUN */ |
|
int head,sect,cyl; |
|
__u16 *PUtable; /* Physical Unit Table */ |
|
__u16 *VUtable; /* Virtual Unit Table */ |
|
unsigned int nb_blocks; /* number of physical blocks */ |
|
unsigned int nb_boot_blocks; /* number of blocks used by the bios */ |
|
struct erase_info instr; |
|
}; |
|
|
|
int INFTL_mount(struct INFTLrecord *s); |
|
int INFTL_formatblock(struct INFTLrecord *s, int block); |
|
|
|
void INFTL_dumptables(struct INFTLrecord *s); |
|
void INFTL_dumpVUchains(struct INFTLrecord *s); |
|
|
|
int inftl_read_oob(struct mtd_info *mtd, loff_t offs, size_t len, |
|
size_t *retlen, uint8_t *buf); |
|
int inftl_write_oob(struct mtd_info *mtd, loff_t offs, size_t len, |
|
size_t *retlen, uint8_t *buf); |
|
|
|
#endif /* __KERNEL__ */ |
|
|
|
#endif /* __MTD_INFTL_H__ */
|
|
|