summaryrefslogtreecommitdiffstats
path: root/firmware/export
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2022-03-07 11:53:40 +0000
committerAidan MacDonald <amachronic@protonmail.com>2022-03-11 10:58:20 -0500
commit7fa48faeb55fb43b6a4e727d0abd104b267c89a4 (patch)
tree4f3a735bc72009dc100045c8964d937be1cce7e4 /firmware/export
parent439b4e8bcad57fac53f4286033f431e7e9df6546 (diff)
downloadrockbox-7fa48faeb55fb43b6a4e727d0abd104b267c89a4.tar.gz
rockbox-7fa48faeb55fb43b6a4e727d0abd104b267c89a4.zip
multiboot: Refactor duplicated functions to a separate file
The implementation of write_bootdata() and get_redirect_dir() was copied verbatim in two different places, obviously a bad thing for maintainability. This moves them to a new file multiboot.c as they are only used for multiboot. Change-Id: Id0279216e4dd019f8bf612a81d3835eff010e506
Diffstat (limited to 'firmware/export')
-rw-r--r--firmware/export/mi4-loader.h22
-rw-r--r--firmware/export/multiboot.h30
2 files changed, 34 insertions, 18 deletions
diff --git a/firmware/export/mi4-loader.h b/firmware/export/mi4-loader.h
index f66164ec2c..adc43ebf64 100644
--- a/firmware/export/mi4-loader.h
+++ b/firmware/export/mi4-loader.h
@@ -21,6 +21,9 @@
*
****************************************************************************/
+#ifndef __MI4_LOADER_H__
+#define __MI4_LOADER_H__
+
#include <stdint.h>
#define MI4_HEADER_SIZE 0x200
@@ -50,21 +53,4 @@ struct tea_key {
int load_mi4(unsigned char* buf, const char* firmware, unsigned int buffer_size);
const char *mi4_strerror(int8_t errno);
-#ifdef HAVE_MULTIBOOT /* defined by config.h */
-/* Check in root of this <volume> for rockbox_main.<playername>
- * if this file empty or there is a single slash '/'
- * buf = '<volume#>/<rootdir>/<firmware(name)>\0'
- * If instead '/<*DIRECTORY*>' is supplied
- * addpath will be set to this DIRECTORY buf =
- * '/<volume#>/addpath/<rootdir>/<firmware(name)>\0'
- * On error returns Negative number or 0
- * On success returns bytes from snprintf
- * and generated path will be placed in buf
- * note: if supplied buffer is too small return will be
- * the number of bytes that would have been written
- */
-
-/* TODO needs mapped back to debug_menu if root redirect ever becomes a reality */
-int get_redirect_dir(char* buf, int buffer_size, int volume,
- const char* rootdir, const char* firmware);
-#endif
+#endif /* __MI4_LOADER_H__ */
diff --git a/firmware/export/multiboot.h b/firmware/export/multiboot.h
new file mode 100644
index 0000000000..0132b8531f
--- /dev/null
+++ b/firmware/export/multiboot.h
@@ -0,0 +1,30 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ *
+ * Copyright (C) 2017, 2020 by William Wilgus
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+
+#ifndef __MULTIBOOT_H__
+#define __MULTIBOOT_H__
+
+extern int write_bootdata(unsigned char* buf, int len, unsigned int boot_volume);
+#ifdef HAVE_MULTIBOOT
+extern int get_redirect_dir(char* buf, int buffer_size, int volume,
+ const char* rootdir, const char* firmware);
+#endif
+
+#endif /* __MULTIBOOT_H__ */