Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
1da177e4 LT |
2 | #ifndef _ADFS_FS_H |
3 | #define _ADFS_FS_H | |
4 | ||
607ca46e | 5 | #include <uapi/linux/adfs_fs.h> |
1da177e4 | 6 | |
1da177e4 LT |
7 | /* |
8 | * Calculate the boot block checksum on an ADFS drive. Note that this will | |
9 | * appear to be correct if the sector contains all zeros, so also check that | |
10 | * the disk size is non-zero!!! | |
11 | */ | |
12 | static inline int adfs_checkbblk(unsigned char *ptr) | |
13 | { | |
14 | unsigned int result = 0; | |
15 | unsigned char *p = ptr + 511; | |
16 | ||
17 | do { | |
18 | result = (result & 0xff) + (result >> 8); | |
19 | result = result + *--p; | |
20 | } while (p != ptr); | |
21 | ||
22 | return (result & 0xff) != ptr[511]; | |
23 | } | |
1da177e4 | 24 | #endif |