lib/imd: move struct definitions to a new header file
Make IMD private structures definitions accessible by other units. To test IMD API correctness there is a need to access its internal structure. It is only possible when private implementation is visible in testing scope. Signed-off-by: Jakub Czapiga <jacz@semihalf.com> Change-Id: Iff87cc1990426bee6ac3cc1dfa6f85a787334976 Reviewed-on: https://review.coreboot.org/c/coreboot/+/46216 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
This commit is contained in:
parent
72cd6b0d01
commit
a01138b7a4
|
@ -0,0 +1,38 @@
|
|||
#ifndef _IMD_PRIVATE_H_
|
||||
#define _IMD_PRIVATE_H_
|
||||
|
||||
#include <commonlib/bsd/helpers.h>
|
||||
|
||||
/* In-memory data structures. */
|
||||
struct imd_root_pointer {
|
||||
uint32_t magic;
|
||||
/* Relative to upper limit/offset. */
|
||||
int32_t root_offset;
|
||||
} __packed;
|
||||
|
||||
struct imd_entry {
|
||||
uint32_t magic;
|
||||
/* start is located relative to imd_root */
|
||||
int32_t start_offset;
|
||||
uint32_t size;
|
||||
uint32_t id;
|
||||
} __packed;
|
||||
|
||||
struct imd_root {
|
||||
uint32_t max_entries;
|
||||
uint32_t num_entries;
|
||||
uint32_t flags;
|
||||
uint32_t entry_align;
|
||||
/* Used for fixing the size of an imd. Relative to the root. */
|
||||
int32_t max_offset;
|
||||
struct imd_entry entries[0];
|
||||
} __packed;
|
||||
|
||||
#define IMD_ROOT_PTR_MAGIC 0xc0389481
|
||||
#define IMD_ENTRY_MAGIC (~0xc0389481)
|
||||
#define SMALL_REGION_ID CBMEM_ID_IMD_SMALL
|
||||
#define LIMIT_ALIGN 4096
|
||||
|
||||
#define IMD_FLAG_LOCKED 1
|
||||
|
||||
#endif /* _IMD_PRIVATE_H */
|
|
@ -7,40 +7,11 @@
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <types.h>
|
||||
#include <imd_private.h>
|
||||
|
||||
|
||||
/* For more details on implementation and usage please see the imd.h header. */
|
||||
|
||||
static const uint32_t IMD_ROOT_PTR_MAGIC = 0xc0389481;
|
||||
static const uint32_t IMD_ENTRY_MAGIC = ~0xc0389481;
|
||||
static const uint32_t SMALL_REGION_ID = CBMEM_ID_IMD_SMALL;
|
||||
|
||||
/* In-memory data structures. */
|
||||
struct imd_root_pointer {
|
||||
uint32_t magic;
|
||||
/* Relative to upper limit/offset. */
|
||||
int32_t root_offset;
|
||||
} __packed;
|
||||
|
||||
struct imd_entry {
|
||||
uint32_t magic;
|
||||
/* start is located relative to imd_root */
|
||||
int32_t start_offset;
|
||||
uint32_t size;
|
||||
uint32_t id;
|
||||
} __packed;
|
||||
|
||||
struct imd_root {
|
||||
uint32_t max_entries;
|
||||
uint32_t num_entries;
|
||||
uint32_t flags;
|
||||
uint32_t entry_align;
|
||||
/* Used for fixing the size of an imd. Relative to the root. */
|
||||
int32_t max_offset;
|
||||
struct imd_entry entries[0];
|
||||
} __packed;
|
||||
|
||||
#define IMD_FLAG_LOCKED 1
|
||||
|
||||
static void *relative_pointer(void *base, ssize_t offset)
|
||||
{
|
||||
intptr_t b = (intptr_t)base;
|
||||
|
|
Loading…
Reference in New Issue