mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-11-29 06:31:28 +01:00
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>
This commit is contained in:
parent
d0be67657d
commit
c0029e4e25
18
fs/fat/fat.c
18
fs/fat/fat.c
@ -1377,3 +1377,21 @@ void fat_closedir(struct fs_dir_stream *dirs)
|
|||||||
void fat_close(void)
|
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;
|
||||||
|
}
|
||||||
|
|||||||
2
fs/fs.c
2
fs/fs.c
@ -194,7 +194,7 @@ static struct fstype_info fstypes[] = {
|
|||||||
.unlink = fs_unlink_unsupported,
|
.unlink = fs_unlink_unsupported,
|
||||||
.mkdir = fs_mkdir_unsupported,
|
.mkdir = fs_mkdir_unsupported,
|
||||||
#endif
|
#endif
|
||||||
.uuid = fs_uuid_unsupported,
|
.uuid = fat_uuid,
|
||||||
.opendir = fat_opendir,
|
.opendir = fat_opendir,
|
||||||
.readdir = fat_readdir,
|
.readdir = fat_readdir,
|
||||||
.closedir = fat_closedir,
|
.closedir = fat_closedir,
|
||||||
|
|||||||
@ -212,4 +212,16 @@ int fat_unlink(const char *filename);
|
|||||||
int fat_mkdir(const char *dirname);
|
int fat_mkdir(const char *dirname);
|
||||||
void fat_close(void);
|
void fat_close(void);
|
||||||
void *fat_next_cluster(fat_itr *itr, unsigned int *nbytes);
|
void *fat_next_cluster(fat_itr *itr, unsigned int *nbytes);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fat_uuid() - get FAT volume ID
|
||||||
|
*
|
||||||
|
* The FAT volume ID returned in @uuid_str as hexadecimal number in XXXX-XXXX
|
||||||
|
* format.
|
||||||
|
*
|
||||||
|
* @uuid_str: caller allocated buffer of at least 10 bytes for the volume ID
|
||||||
|
* Return: 0 on success
|
||||||
|
*/
|
||||||
|
int fat_uuid(char *uuid_str);
|
||||||
|
|
||||||
#endif /* _FAT_H_ */
|
#endif /* _FAT_H_ */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user