diff options
Diffstat (limited to 'firmware/target/arm/imx233/partitions-imx233.c')
-rw-r--r-- | firmware/target/arm/imx233/partitions-imx233.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/firmware/target/arm/imx233/partitions-imx233.c b/firmware/target/arm/imx233/partitions-imx233.c index ebc7b9a6e6..508d6f0d66 100644 --- a/firmware/target/arm/imx233/partitions-imx233.c +++ b/firmware/target/arm/imx233/partitions-imx233.c | |||
@@ -71,11 +71,11 @@ static const char *creative_part_name(enum imx233_part_t part) | |||
71 | } | 71 | } |
72 | } | 72 | } |
73 | 73 | ||
74 | static int compute_window_creative(IF_MD(int drive,) enum imx233_part_t part, | 74 | static int compute_window_creative(intptr_t user, part_read_fn_t read_fn, |
75 | unsigned *start, unsigned *end) | 75 | enum imx233_part_t part, unsigned *start, unsigned *end) |
76 | { | 76 | { |
77 | uint8_t mblk[512]; | 77 | uint8_t mblk[512]; |
78 | int ret = storage_read_sectors(IF_MD(drive,) MBLK_ADDR / 512, 1, mblk); | 78 | int ret = read_fn(user, MBLK_ADDR / 512, 1, mblk); |
79 | if(ret < 0) | 79 | if(ret < 0) |
80 | return ret; | 80 | return ret; |
81 | struct mblk_header_t *hdr = (void *)mblk; | 81 | struct mblk_header_t *hdr = (void *)mblk; |
@@ -99,11 +99,11 @@ static int compute_window_creative(IF_MD(int drive,) enum imx233_part_t part, | |||
99 | #endif /* #(IMX233_PARTITIONS & IMX233_CREATIVE) */ | 99 | #endif /* #(IMX233_PARTITIONS & IMX233_CREATIVE) */ |
100 | 100 | ||
101 | #if (IMX233_PARTITIONS & IMX233_FREESCALE) | 101 | #if (IMX233_PARTITIONS & IMX233_FREESCALE) |
102 | static int compute_window_freescale(IF_MD(int drive,) enum imx233_part_t part, | 102 | static int compute_window_freescale(intptr_t user, part_read_fn_t read_fn, |
103 | unsigned *start, unsigned *end) | 103 | enum imx233_part_t part, unsigned *start, unsigned *end) |
104 | { | 104 | { |
105 | uint8_t mbr[512]; | 105 | uint8_t mbr[512]; |
106 | int ret = storage_read_sectors(IF_MD(drive,) 0, 1, mbr); | 106 | int ret = read_fn(user, 0, 1, mbr); |
107 | if(ret < 0) | 107 | if(ret < 0) |
108 | return ret; | 108 | return ret; |
109 | /** | 109 | /** |
@@ -161,17 +161,17 @@ static int compute_window_freescale(IF_MD(int drive,) enum imx233_part_t part, | |||
161 | } | 161 | } |
162 | #endif /* (IMX233_PARTITIONS & IMX233_FREESCALE) */ | 162 | #endif /* (IMX233_PARTITIONS & IMX233_FREESCALE) */ |
163 | 163 | ||
164 | int imx233_partitions_compute_window(IF_MD(int drive,) enum imx233_part_t part, | 164 | int imx233_partitions_compute_window(intptr_t user, part_read_fn_t read_fn, |
165 | unsigned *start, unsigned *end) | 165 | enum imx233_part_t part, unsigned *start, unsigned *end) |
166 | { | 166 | { |
167 | int ret = -1; | 167 | int ret = -1; |
168 | #if (IMX233_PARTITIONS & IMX233_CREATIVE) | 168 | #if (IMX233_PARTITIONS & IMX233_CREATIVE) |
169 | ret = compute_window_creative(IF_MD(drive,) part, start, end); | 169 | ret = compute_window_creative(user, read_fn, part, start, end); |
170 | if(ret >= 0) | 170 | if(ret >= 0) |
171 | return ret; | 171 | return ret; |
172 | #endif | 172 | #endif |
173 | #if (IMX233_PARTITIONS & IMX233_FREESCALE) | 173 | #if (IMX233_PARTITIONS & IMX233_FREESCALE) |
174 | ret = compute_window_freescale(IF_MD(drive,) part, start, end); | 174 | ret = compute_window_freescale(user, read_fn, part, start, end); |
175 | if(ret >= 0) | 175 | if(ret >= 0) |
176 | return ret; | 176 | return ret; |
177 | #endif | 177 | #endif |