blob: 684a05c607efed32cabf51163a63fb8224b6c957 [file] [log] [blame]
Aaron Durbin0424c952015-03-28 23:56:22 -05001/*
2 * This file is part of the coreboot project.
3 *
4 * Copyright 2015 Google Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 2 of the License.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
Aaron Durbin0424c952015-03-28 23:56:22 -050014 */
15
16#ifndef _FMAP_H_
17#define _FMAP_H_
18
Aaron Durbindc9f5cd2015-09-08 13:34:43 -050019#include <commonlib/region.h>
20#include <commonlib/fmap_serialized.h>
Aaron Durbin0424c952015-03-28 23:56:22 -050021
Patrick Georgi977587a2015-07-09 13:34:40 +020022/* Locate the fmap directory. Return 0 on success, < 0 on error. */
23int find_fmap_directory(struct region_device *fmrd);
24
Aaron Durbin0424c952015-03-28 23:56:22 -050025/* Locate the named area in the fmap and fill in a region device representing
26 * that area. The region is a sub-region of the readonly boot media. Return
27 * 0 on success, < 0 on error. */
28int fmap_locate_area_as_rdev(const char *name, struct region_device *area);
29
30/* Locate the named area in the fmap and fill in a region with the
31 * offset and size of that area within the boot media. Return 0 on success,
32 * < 0 on error. */
33int fmap_locate_area(const char *name, struct region *r);
34
Patrick Georgi99526902015-07-09 11:27:44 +020035/* Find fmap area name by offset and size.
36 * Return 0 on success, < 0 on error. */
37int fmap_find_region_name(const struct region * const ar,
38 char name[FMAP_STRLEN]);
Aaron Durbin0424c952015-03-28 23:56:22 -050039#endif