PS2SDK
PS2 Homebrew Libraries
Loading...
Searching...
No Matches
s147nand.h
Go to the documentation of this file.
1/*
2# _____ ___ ____ ___ ____
3# ____| | ____| | | |____|
4# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5#-----------------------------------------------------------------------
6# Copyright ps2dev - http://www.ps2dev.org
7# Licenced under Academic Free License version 2.0
8# Review ps2sdk README & LICENSE files for further details.
9*/
10
16#ifndef _S147NAND_H
17#define _S147NAND_H
18
19#include <tamtypes.h>
20
21#ifdef __cplusplus
22extern "C"
23{
24#endif
25
26 typedef struct s147nand_info_
27 {
28 int m_page_size_noecc;
29 int m_page_size_withecc;
30 int m_pages_per_block;
31 int m_block_size;
32 int m_page_count;
34
35 typedef struct s147nand_header_part_
36 {
37 int m_offset;
38 int m_size;
40
41 typedef struct s147nand_header_
42 {
43 char m_sig[16];
44 int m_bootsector_ver_1;
45 int m_bootsector_ver_2;
46 s147nand_header_part_t m_nand_partition_info[8];
47 char m_nand_seccode[2];
48 char pad[2];
49 int m_nand_vidmode[1];
50 char m_nand_desc[32];
51 int m_page_size_noecc;
52 int m_page_size_withecc;
53 int m_pages_per_block;
54 int m_block_size;
55 unsigned int m_acmem_delay_val;
56 unsigned int m_acio_delay_val;
57 s147nand_header_part_t m_nand_partition_8_info;
59
60 typedef struct s147nand_direntry_
61 {
62 char m_name[16];
63 u32 m_unk;
64 u8 m_type;
65 u8 m_pad[3];
66 u32 m_size;
67 u32 m_offset;
69
70 typedef struct s147nand_dir_
71 {
72 char m_sig[8];
73 u16 m_ver;
74 char m_unk0[6];
75 u32 m_entrycnt;
76 u32 m_unk1;
77 u32 m_unk2;
78 u32 m_unk3;
79 s147nand_direntry_t m_direntry[63];
81
82 extern int s147nand_4_dumpprintinfo(int part);
83 extern int s147nand_5_outerinit(void);
84 extern void s147nand_6_checkformat(void);
85 extern int s147nand_7_multi_read_dma(void *ptr, int pageoffs, int pagecnt);
86 extern int s147nand_8_multi_write_dma(void *ptr, int pageoffs, int pagecnt);
87 extern int s147nand_9_get_nand_partition(int part);
88 extern int s147nand_10_get_nand_partition_size(int part);
89 extern int s147nand_11_erasetranslatepageoffs(int pageoffs);
90 extern int s147nand_12_load_logaddrtable(void);
91 extern int s147nand_13_translate_blockoffs(int blockoffs);
92 extern int s147nand_14_translate_pageoffs(int pageoffs);
93 extern int s147nand_15_nandinit(void);
94 extern s147nand_info_t *s147nand_16_getnandinfo(void);
95 extern int s147nand_17_get_sema(void);
96 extern void s147nand_18_enable_nand_watchdog(void);
97 extern int s147nand_19_logaddr_read(u16 *tbl, int pageoffs, int bytecnt);
98 extern int s147nand_20_nand_read_dma(void *ptr, int pageoffs, int byteoffs, int bytecnt);
99 extern int s147nand_21_nand_read_pio(void *ptr, int pageoffs, int byteoffs, int bytecnt);
100 extern int s147nand_22_nand_write_dma(void *ptr, int pageoffs, int byteoffs, int bytecnt);
101 extern int s147nand_23_nand_write_pio(void *ptr, int pageoffs, int byteoffs, int bytecnt);
102 extern int s147nand_24_eraseoffset(int pageoffs);
103 extern int s147nand_25_nand_blockerase(int pageoffs);
104 extern int s147nand_26_nand_readid(void *ptr);
105 extern int s147nand_27_blocks2pages(int blocks);
106 extern int s147nand_28_pages2blocks(int pages);
107 extern int s147nand_29_pages2blockround(int pages);
108 extern int s147nand_30_bytes2pagesnoeccround(int bytes);
109
110#define s147nand_IMPORTS_start DECLARE_IMPORT_TABLE(s147nand, 4, 2)
111#define s147nand_IMPORTS_end END_IMPORT_TABLE
112
113#define I_s147nand_4_dumpprintinfo DECLARE_IMPORT(4, s147nand_4_dumpprintinfo)
114#define I_s147nand_5_outerinit DECLARE_IMPORT(5, s147nand_5_outerinit)
115#define I_s147nand_6_checkformat DECLARE_IMPORT(6, s147nand_6_checkformat)
116#define I_s147nand_7_multi_read_dma DECLARE_IMPORT(7, s147nand_7_multi_read_dma)
117#define I_s147nand_8_multi_write_dma DECLARE_IMPORT(8, s147nand_8_multi_write_dma)
118#define I_s147nand_9_get_nand_partition DECLARE_IMPORT(9, s147nand_9_get_nand_partition)
119#define I_s147nand_10_get_nand_partition_size DECLARE_IMPORT(10, s147nand_10_get_nand_partition_size)
120#define I_s147nand_11_erasetranslatepageoffs DECLARE_IMPORT(11, s147nand_11_erasetranslatepageoffs)
121#define I_s147nand_12_load_logaddrtable DECLARE_IMPORT(12, s147nand_12_load_logaddrtable)
122#define I_s147nand_13_translate_blockoffs DECLARE_IMPORT(13, s147nand_13_translate_blockoffs)
123#define I_s147nand_14_translate_pageoffs DECLARE_IMPORT(14, s147nand_14_translate_pageoffs)
124#define I_s147nand_15_nandinit DECLARE_IMPORT(15, s147nand_15_nandinit)
125#define I_s147nand_16_getnandinfo DECLARE_IMPORT(16, s147nand_16_getnandinfo)
126#define I_s147nand_17_get_sema DECLARE_IMPORT(17, s147nand_17_get_sema)
127#define I_s147nand_18_enable_nand_watchdog DECLARE_IMPORT(18, s147nand_18_enable_nand_watchdog)
128#define I_s147nand_19_logaddr_read DECLARE_IMPORT(19, s147nand_19_logaddr_read)
129#define I_s147nand_20_nand_read_dma DECLARE_IMPORT(20, s147nand_20_nand_read_dma)
130#define I_s147nand_21_nand_read_pio DECLARE_IMPORT(21, s147nand_21_nand_read_pio)
131#define I_s147nand_22_nand_write_dma DECLARE_IMPORT(22, s147nand_22_nand_write_dma)
132#define I_s147nand_23_nand_write_pio DECLARE_IMPORT(23, s147nand_23_nand_write_pio)
133#define I_s147nand_24_eraseoffset DECLARE_IMPORT(24, s147nand_24_eraseoffset)
134#define I_s147nand_25_nand_blockerase DECLARE_IMPORT(25, s147nand_25_nand_blockerase)
135#define I_s147nand_26_nand_readid DECLARE_IMPORT(26, s147nand_26_nand_readid)
136#define I_s147nand_27_blocks2pages DECLARE_IMPORT(27, s147nand_27_blocks2pages)
137#define I_s147nand_28_pages2blocks DECLARE_IMPORT(28, s147nand_28_pages2blocks)
138#define I_s147nand_29_pages2blockround DECLARE_IMPORT(29, s147nand_29_pages2blockround)
139#define I_s147nand_30_bytes2pagesnoeccround DECLARE_IMPORT(30, s147nand_30_bytes2pagesnoeccround)
140
141#ifdef __cplusplus
142}
143#endif
144
145#endif