| 744 | } |
| 745 | |
| 746 | static uint8_t calc_checksum(struct subpart_dir *s) |
| 747 | { |
| 748 | size_t size = subpart_dir_size(&s->h); |
| 749 | uint8_t *data = (uint8_t *)s; |
| 750 | uint8_t checksum = 0; |
| 751 | size_t i; |
| 752 | |
| 753 | uint8_t old_checksum = s->h.checksum; |
| 754 | s->h.checksum = 0; |
| 755 | |
| 756 | for (i = 0; i < size; i++) |
| 757 | checksum += data[i]; |
| 758 | |
| 759 | s->h.checksum = old_checksum; |
| 760 | |
| 761 | /* 2s complement */ |
| 762 | return -checksum; |
| 763 | } |
| 764 | |
| 765 | static void validate_subpart_dir(struct subpart_dir *s, const char *name, |
| 766 | bool checksum_check) |
no test coverage detected