diff options
Diffstat (limited to 'src/lib/formats/fsmgr.h')
-rw-r--r-- | src/lib/formats/fsmgr.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/lib/formats/fsmgr.h b/src/lib/formats/fsmgr.h index 6ca909e3bcd..ed3a553843e 100644 --- a/src/lib/formats/fsmgr.h +++ b/src/lib/formats/fsmgr.h @@ -281,6 +281,8 @@ protected: virtual fs_meta_data metadata() = 0; virtual std::vector<u8> read_all() = 0; virtual std::vector<u8> read(u64 start, u64 length) = 0; + virtual std::vector<u8> rsrc_read_all(); + virtual std::vector<u8> rsrc_read(u64 start, u64 length); }; public: @@ -312,6 +314,8 @@ public: std::vector<u8> read_all() { return m_object->read_all(); } std::vector<u8> read(u32 start, u32 length) { return m_object->read(start, length); } + std::vector<u8> rsrc_read_all() { return m_object->rsrc_read_all(); } + std::vector<u8> rsrc_read(u32 start, u32 length) { return m_object->rsrc_read(start, length); } }; filesystem_t(fsblk_t &blockdev, u32 size) : m_blockdev(blockdev) { @@ -324,6 +328,26 @@ public: virtual fs_meta_data metadata(); virtual dir_t root(); + static void copy(uint8_t *p, const uint8_t *src, uint32_t size); + static void fill(uint8_t *p, uint8_t data, uint32_t size); + static void wstr(uint8_t *p, const std::string &str); + static void w8( uint8_t *p, uint8_t data); + static void w16b(uint8_t *p, uint16_t data); + static void w24b(uint8_t *p, uint32_t data); + static void w32b(uint8_t *p, uint32_t data); + static void w16l(uint8_t *p, uint16_t data); + static void w24l(uint8_t *p, uint32_t data); + static void w32l(uint8_t *p, uint32_t data); + + static std::string rstr(const uint8_t *p, uint32_t size); + static uint8_t r8( const uint8_t *p); + static uint16_t r16b(const uint8_t *p); + static uint32_t r24b(const uint8_t *p); + static uint32_t r32b(const uint8_t *p); + static uint16_t r16l(const uint8_t *p); + static uint32_t r24l(const uint8_t *p); + static uint32_t r32l(const uint8_t *p); + protected: fsblk_t &m_blockdev; }; @@ -361,6 +385,7 @@ public: virtual bool can_format() const = 0; virtual bool can_read() const = 0; virtual bool can_write() const = 0; + virtual bool has_rsrc() const = 0; virtual char directory_separator() const; bool has_subdirectories() const { return directory_separator() != 0; } |