diff options
| author | Amaury Pouly <amaury.pouly@gmail.com> | 2014-08-13 12:46:45 +0200 |
|---|---|---|
| committer | Marcin Bukat <marcin.bukat@gmail.com> | 2014-08-26 07:21:19 +0200 |
| commit | 69df56504e7dfc8ba7e283901aadde6ebdada5b1 (patch) | |
| tree | 2852978cbb169c810fd81f98266d1e9d971a6ca8 /utils/hwpatcher/lib.lua | |
| parent | bfbec3a3a7de448902b2b3244f5b4f942ef09570 (diff) | |
| download | rockbox-69df56504e7dfc8ba7e283901aadde6ebdada5b1.zip rockbox-69df56504e7dfc8ba7e283901aadde6ebdada5b1.tar.gz rockbox-69df56504e7dfc8ba7e283901aadde6ebdada5b1.tar.bz2 rockbox-69df56504e7dfc8ba7e283901aadde6ebdada5b1.tar.xz | |
hwpatcher: add framework for CRC computation
Change-Id: Ib78f0fe58db5cec86f043d3e9e1ca14e69297ba0
Reviewed-on: http://gerrit.rockbox.org/911
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
Diffstat (limited to 'utils/hwpatcher/lib.lua')
| -rw-r--r-- | utils/hwpatcher/lib.lua | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/utils/hwpatcher/lib.lua b/utils/hwpatcher/lib.lua index 7a3e4a4..4c0d6ff 100644 --- a/utils/hwpatcher/lib.lua +++ b/utils/hwpatcher/lib.lua @@ -8,16 +8,21 @@ At global level: - exit() Same as quit() In the hwp table: -- load_file(filename) Load a firmware and guess type -- load_elf_file(filename) Load a firmware as ELF -- load_sb_file(filename) Load a firmware as SB -- load_sb1_file(filename) Load a firmware as SB1 -- load_bin_file(filename) Load a firmware as binary -- save_file(obj, filename) Save a firmware to a file -- read(obj, addr, len) Read data from a firmware -- write(obj, addr, data) Write data to a firmware -- section_info(obj, sec) Return information about a section in a table (or nil) -- md5sum(filename) Compute the MD5 sum of a file +- load_file(filename) Load a firmware and guess type +- load_elf_file(filename) Load a firmware as ELF +- load_sb_file(filename) Load a firmware as SB +- load_sb1_file(filename) Load a firmware as SB1 +- load_bin_file(filename) Load a firmware as binary +- save_file(fw, filename) Save a firmware to a file +- read(fw, addr, len) Read data from a firmware +- write(fw, addr, data) Write data to a firmware +- section_info(fw, sec) Return information about a section in a table (or nil) +- md5sum(filename) Compute the MD5 sum of a file +- crc_buf(crc_type, buf) Compute the CRC of a byte buffer and return a byte buffer +- crc(crc_type, fw, addr, len) Compute the CRC of a firmware part + +The list of CRCs available is available the hwp.CRC table: +- RKW Data read/written from/to a firmware must must be an array of bytes. The address must be a table of the following fields: @@ -27,7 +32,7 @@ Data section information is a table with the following fields: - address: first address if the section - size: size of the section We provide the following functions to help dealing with addresses: -- make_addr +- make_addr(addr, section) Build a firmware address from a raw address and a section ]]-- @@ -105,3 +110,8 @@ function hwp.md5str(md5) end return s end + +-- compute the CRC of a firmware part +function hwp.crc(crc_type, fw, addr, len) + return hwp.crc_buf(crc_type, hwp.read(fw, addr, len)) +end |