From 12577f3445df86023ba0cbe2462d55ea5dcafe20 Mon Sep 17 00:00:00 2001 From: Alejandro Sior Date: Fri, 17 Jun 2022 14:43:27 +0200 Subject: gptman: now can allocate partitions --- gpt/crc32.ha | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'gpt/crc32.ha') diff --git a/gpt/crc32.ha b/gpt/crc32.ha index 24318bd..386779f 100644 --- a/gpt/crc32.ha +++ b/gpt/crc32.ha @@ -79,3 +79,19 @@ export fn header_crc32(self: *header) u32 = { crc ^= 0xffffffff; return crc; }; + +// Calculates the crc32 entries array checksum +export fn entries_crc32(self: *[128]entry) u32 = { + const data = self: *[*]u8; + + let crc: u32 = 0xffffffff; + for (let i = 0z; i < 128*128; i += 1) { + let d: u8 = data[i]; + + let lookup_index: u32 = (crc ^ d) & 0xff; + crc = (crc >> 8) ^ crc_table[lookup_index]; + }; + + crc ^= 0xffffffff; + return crc; +}; -- cgit v1.2.3