summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx233/partitions-imx233.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/imx233/partitions-imx233.c')
-rw-r--r--firmware/target/arm/imx233/partitions-imx233.c20
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
74static int compute_window_creative(IF_MD(int drive,) enum imx233_part_t part, 74static 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)
102static int compute_window_freescale(IF_MD(int drive,) enum imx233_part_t part, 102static 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
164int imx233_partitions_compute_window(IF_MD(int drive,) enum imx233_part_t part, 164int 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