diff options
author | Heinrich Schuchardt <xypron.glpk@gmx.de> | 2020-12-31 00:38:13 +0100 |
---|---|---|
committer | Heinrich Schuchardt <xypron.glpk@gmx.de> | 2020-12-31 14:32:27 +0100 |
commit | c0029e4e25c10d627f4bff62cdb4074bb2c7eaf7 (patch) | |
tree | a7383efef0e84fc0eac5386eadd10c2fd8ee0c09 /fs | |
parent | d0be67657d64523b4499d385390c08c2bafab1bc (diff) | |
download | u-boot-c0029e4e25c10d627f4bff62cdb4074bb2c7eaf7.tar.gz u-boot-c0029e4e25c10d627f4bff62cdb4074bb2c7eaf7.tar.bz2 u-boot-c0029e4e25c10d627f4bff62cdb4074bb2c7eaf7.zip |
fs/fat: implement fsuuid command
The FAT file system does not have a UUID but a 4 byte volume ID.
Let the fsuuid command show it in XXXX-XXXX format.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/fat/fat.c | 18 | ||||
-rw-r--r-- | fs/fs.c | 2 |
2 files changed, 19 insertions, 1 deletions
diff --git a/fs/fat/fat.c b/fs/fat/fat.c index c9742d534b..157dad60a4 100644 --- a/fs/fat/fat.c +++ b/fs/fat/fat.c @@ -1377,3 +1377,21 @@ void fat_closedir(struct fs_dir_stream *dirs) void fat_close(void) { } + +int fat_uuid(char *uuid_str) +{ + boot_sector bs; + volume_info volinfo; + int fatsize; + int ret; + u8 *id; + + ret = read_bootsectandvi(&bs, &volinfo, &fatsize); + if (ret) + return ret; + + id = volinfo.volume_id; + sprintf(uuid_str, "%02X%02X-%02X%02X", id[3], id[2], id[1], id[0]); + + return 0; +} @@ -194,7 +194,7 @@ static struct fstype_info fstypes[] = { .unlink = fs_unlink_unsupported, .mkdir = fs_mkdir_unsupported, #endif - .uuid = fs_uuid_unsupported, + .uuid = fat_uuid, .opendir = fat_opendir, .readdir = fat_readdir, .closedir = fat_closedir, |