mtd-nand.h
2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/**
@file mtd-nand.h
@date 2010/05/27
@author 오재경 freefrug@falinux.com FALinux.Co.,Ltd.
@brief mtd를 통해 nand 플래시를 제어한ㄷ.ㅏ
@todo 테스트 함수를 아직 만들지 않았다.
@bug
@remark
@warning
*/
//
// 저작권 에프에이리눅스(주)
// 외부공개 금지
//
//----------------------------------------------------------------------------
#ifndef _MTD_NAND_HEADER_
#define _MTD_NAND_HEADER_
#define MAX_BADBLOCK_COUNT 100
#define RDERR_MANY_BADBLOCK -10000
typedef enum {
EZP_NONE = 0,
EZP_V1 = 1,
EZP_V2 = 2,
EZP_S5PV210_HEADER = 210
} ezboot_ver_t;
/// mtd 를 위한 개별 관리 구조체
typedef struct {
char node_name[128];
int fd;
int pos;
struct mtd_info_user info;
} mtdnand_t;
#ifdef __cplusplus
extern "C" {
#endif
/// @{
/// @brief mtd-nand.c 에서 제공하는 함수 리스트
extern mtdnand_t *mtdnand_create( char *fname ); /// mtd-nand 생성함수
extern void mtdnand_free( mtdnand_t *mtd ); /// mtd-nand 해제함수
extern int mtdnand_is_bad( mtdnand_t *mtd ); /// 배드블럭확인
extern int mtdnand_read ( mtdnand_t *mtd, unsigned char *buf, int count ); /// mtd-nand 에서 데이타를 읽는다.
extern int mtdnand_write( mtdnand_t *mtd, unsigned char *buf, int count ); /// mtd-nand 에 데이타를 쓴다.
extern int mtdnand_read_oob( mtdnand_t *mtd, unsigned char *buf, int count ); /// mtd-nand 의 oob 영역을 읽는다.
extern int mtdnand_read_skip_bad( mtdnand_t *mtd, unsigned char *buf, int count ); // mtd-nand 에서 배드블럭을 스킵하여 데이타를 읽는다.
extern int mtdnand_seek ( mtdnand_t *mtd, int offset, int origin ); /// mtd-nand 의 엑세스 위치를 이동한다
extern int mtdnand_erase( mtdnand_t *mtd ); /// mtd-nand 의 한블럭을 지운다.
/// @}
#ifdef __cplusplus
}
#endif
#endif //