summaryrefslogtreecommitdiffhomepage
path: root/src/coreboot-partition-map.c
blob: f5d937bd11cf0345b6a9ffd68a9b83d9dc68bf26 (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
/* -------------------------------------------

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

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

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

// include this for documentation.

#define CB_FILESYSTEM_COUNT 4
#define CB_FILESYSTEM_LIST \
  { "NeFS", "HeFS", "FAT32", "ext4" }

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

  char* fs_list[] = CB_FILESYSTEM_LIST;

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

  return no;
}