summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx31/gigabeat-s/system-target.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/imx31/gigabeat-s/system-target.h')
-rw-r--r--firmware/target/arm/imx31/gigabeat-s/system-target.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/firmware/target/arm/imx31/gigabeat-s/system-target.h b/firmware/target/arm/imx31/gigabeat-s/system-target.h
index a8f7922dd5..533b2a1bd3 100644
--- a/firmware/target/arm/imx31/gigabeat-s/system-target.h
+++ b/firmware/target/arm/imx31/gigabeat-s/system-target.h
@@ -85,4 +85,19 @@ struct ARM_REGS {
85 85
86void dumpregs(void); 86void dumpregs(void);
87 87
88void usb_connect_event(void);
89
90/** Sector read/write filters **/
91
92/* Filter some things in the MBR - see usb-gigabeat-s.c */
93void usb_fix_mbr(unsigned char *mbr);
94#define USBSTOR_READ_SECTORS_FILTER() \
95 ({ if (cur_cmd.sector == 0) \
96 usb_fix_mbr(cur_cmd.data[cur_cmd.data_select]); \
97 0; })
98
99/* Disallow MBR writes entirely since it was "fixed" in usb_fix_mbr */
100#define USBSTOR_WRITE_SECTORS_FILTER() \
101 ({ cur_cmd.sector != 0 ? 0 : -1; })
102
88#endif /* SYSTEM_TARGET_H */ 103#endif /* SYSTEM_TARGET_H */