summaryrefslogtreecommitdiffhomepage
path: root/src/coreboot-partition-map.c
blob: 64ee94d853fd3438bee65267ad119c8438eb5291 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/* -------------------------------------------

    Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved.

------------------------------------------- */

#include <lib/partition-map.h>
#include <lib/string.h>

// include this for documentation.

#define MP_FILESYSTEM_COUNT 3
#define MP_FILESYSTEM_LIST     \
	{                          \
		"NeFS", "HPFS", "HFS+" \
	}

/// @brief check if filesystem is supported by CoreBoot.
/// @param fs the filesystem magic, as provided by EPM.
boolean mp_filesystem_exists(caddr_t fs, size_t len)
{
	if (fs == nil ||
		*fs == 0)
		return no;

	char* fs_list[] = MP_FILESYSTEM_LIST;

	for (size_t fs_index = 0; fs_index < MP_FILESYSTEM_COUNT; fs_index++)
	{
		if (strncmp(fs_list[fs_index], fs, strlen(fs_list[fs_index])) == 0)
		{
			return yes;
		}
	}

	return no;
}