summaryrefslogtreecommitdiffstats
path: root/cpukit/libfs/src/dosfs/msdos_dir.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-03-14 09:36:07 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-03-21 16:14:59 +0100
commit565b1a57b731c14847e60c6783237a0665cf859f (patch)
tree418c9f352a1c355aefbaa9b59b4734f641ebabbf /cpukit/libfs/src/dosfs/msdos_dir.c
parentdosfs: Simplify fat_file_open() (diff)
downloadrtems-565b1a57b731c14847e60c6783237a0665cf859f.tar.bz2
dosfs: Add and use msdos_lfn_checksum()
Update #2929.
Diffstat (limited to 'cpukit/libfs/src/dosfs/msdos_dir.c')
-rw-r--r--cpukit/libfs/src/dosfs/msdos_dir.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/cpukit/libfs/src/dosfs/msdos_dir.c b/cpukit/libfs/src/dosfs/msdos_dir.c
index b10ed9edfc..577dc4d4db 100644
--- a/cpukit/libfs/src/dosfs/msdos_dir.c
+++ b/cpukit/libfs/src/dosfs/msdos_dir.c
@@ -281,14 +281,8 @@ msdos_dir_read(rtems_libio_t *iop, void *buffer, size_t count)
*/
if (lfn_start != FAT_FILE_SHORT_NAME)
{
- uint8_t cs = 0;
- uint8_t* p = (uint8_t*) entry;
- int i;
-
- for (i = 0; i < 11; i++, p++)
- cs = ((cs & 1) ? 0x80 : 0) + (cs >> 1) + *p;
-
- if (lfn_entries || (lfn_checksum != cs))
+ if (lfn_entries ||
+ lfn_checksum != msdos_lfn_checksum(entry))
lfn_start = FAT_FILE_SHORT_NAME;
eno = (*convert_handler->utf16_to_utf8) (