Zephyr API Documentation 4.0.0-rc2
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
bindesc.h File Reference

Go to the source code of this file.

Data Structures

struct  bindesc_entry
 
struct  bindesc_handle
 

Macros

#define BINDESC_MAGIC   0xb9863e5a7ea46046
 
#define BINDESC_ALIGNMENT   4
 
#define BINDESC_TYPE_UINT   0x0
 
#define BINDESC_TYPE_STR   0x1
 
#define BINDESC_TYPE_BYTES   0x2
 
#define BINDESC_TYPE_DESCRIPTORS_END   0xf
 
#define BINDESC_ENTRY_HEADER_SIZE   (sizeof(struct bindesc_entry))
 
#define BINDESC_ID_APP_VERSION_STRING   0x800
 The app version string such as "1.2.3".
 
#define BINDESC_ID_APP_VERSION_MAJOR   0x801
 The app version major such as 1.
 
#define BINDESC_ID_APP_VERSION_MINOR   0x802
 The app version minor such as 2.
 
#define BINDESC_ID_APP_VERSION_PATCHLEVEL   0x803
 The app version patchlevel such as 3.
 
#define BINDESC_ID_APP_VERSION_NUMBER   0x804
 The app version number such as 0x10203.
 
#define BINDESC_ID_APP_BUILD_VERSION   0x805
 The app git reference such as "v3.3.0-18-g2c85d9224fca".
 
#define BINDESC_ID_KERNEL_VERSION_STRING   0x900
 The kernel version string such as "3.4.0".
 
#define BINDESC_ID_KERNEL_VERSION_MAJOR   0x901
 The kernel version major such as 3.
 
#define BINDESC_ID_KERNEL_VERSION_MINOR   0x902
 The kernel version minor such as 4.
 
#define BINDESC_ID_KERNEL_VERSION_PATCHLEVEL   0x903
 The kernel version patchlevel such as 0.
 
#define BINDESC_ID_KERNEL_VERSION_NUMBER   0x904
 The kernel version number such as 0x30400.
 
#define BINDESC_ID_KERNEL_BUILD_VERSION   0x905
 The kernel git reference such as "v3.3.0-18-g2c85d9224fca".
 
#define BINDESC_ID_BUILD_TIME_YEAR   0xa00
 The year the image was compiled in.
 
#define BINDESC_ID_BUILD_TIME_MONTH   0xa01
 The month of the year the image was compiled in.
 
#define BINDESC_ID_BUILD_TIME_DAY   0xa02
 The day of the month the image was compiled in.
 
#define BINDESC_ID_BUILD_TIME_HOUR   0xa03
 The hour of the day the image was compiled in.
 
#define BINDESC_ID_BUILD_TIME_MINUTE   0xa04
 The minute the image was compiled in.
 
#define BINDESC_ID_BUILD_TIME_SECOND   0xa05
 The second the image was compiled in.
 
#define BINDESC_ID_BUILD_TIME_UNIX   0xa06
 The UNIX time (seconds since midnight of 1970/01/01) the image was compiled in.
 
#define BINDESC_ID_BUILD_DATE_TIME_STRING   0xa07
 The date and time of compilation such as "2023/02/05 00:07:04".
 
#define BINDESC_ID_BUILD_DATE_STRING   0xa08
 The date of compilation such as "2023/02/05".
 
#define BINDESC_ID_BUILD_TIME_STRING   0xa09
 The time of compilation such as "00:07:04".
 
#define BINDESC_ID_HOST_NAME   0xb00
 The name of the host that compiled the image.
 
#define BINDESC_ID_C_COMPILER_NAME   0xb01
 The C compiler name.
 
#define BINDESC_ID_C_COMPILER_VERSION   0xb02
 The C compiler version.
 
#define BINDESC_ID_CXX_COMPILER_NAME   0xb03
 The C++ compiler name.
 
#define BINDESC_ID_CXX_COMPILER_VERSION   0xb04
 The C++ compiler version.
 
#define BINDESC_TAG_DESCRIPTORS_END   BINDESC_TAG(DESCRIPTORS_END, 0x0fff)
 
#define BINDESC_STR_DEFINE(name, id, value)
 Define a binary descriptor of type string.
 
#define BINDESC_UINT_DEFINE(name, id, value)
 Define a binary descriptor of type uint.
 
#define BINDESC_BYTES_DEFINE(name, id, value)
 Define a binary descriptor of type bytes.
 
#define BINDESC_GET_STR(name)
 Get the value of a string binary descriptor.
 
#define BINDESC_GET_UINT(name)
 Get the value of a uint binary descriptor.
 
#define BINDESC_GET_BYTES(name)
 Get the value of a bytes binary descriptor.
 
#define BINDESC_GET_SIZE(name)
 Get the size of a binary descriptor.
 

Typedefs

typedef int(* bindesc_callback_t) (const struct bindesc_entry *entry, void *user_data)
 Callback type to be called on descriptors found during a walk.
 

Functions

int bindesc_open_memory_mapped_flash (struct bindesc_handle *handle, size_t offset)
 Open an image's binary descriptors for reading, from a memory mapped flash.
 
int bindesc_open_ram (struct bindesc_handle *handle, const uint8_t *address, size_t max_size)
 Open an image's binary descriptors for reading, from RAM.
 
int bindesc_open_flash (struct bindesc_handle *handle, size_t offset, const struct device *flash_device)
 Open an image's binary descriptors for reading, from flash.
 
int bindesc_foreach (struct bindesc_handle *handle, bindesc_callback_t callback, void *user_data)
 Walk the binary descriptors and run a user defined callback on each of them.
 
int bindesc_find_str (struct bindesc_handle *handle, uint16_t id, const char **result)
 Find a specific descriptor of type string.
 
int bindesc_find_uint (struct bindesc_handle *handle, uint16_t id, const uint32_t **result)
 Find a specific descriptor of type uint.
 
int bindesc_find_bytes (struct bindesc_handle *handle, uint16_t id, const uint8_t **result, size_t *result_size)
 Find a specific descriptor of type bytes.
 
int bindesc_get_size (struct bindesc_handle *handle, size_t *result)
 Get the size of an image's binary descriptors.
 

Variables

Incorrect memory layout
 

Macro Definition Documentation

◆ BINDESC_ALIGNMENT

#define BINDESC_ALIGNMENT   4

◆ BINDESC_ENTRY_HEADER_SIZE

#define BINDESC_ENTRY_HEADER_SIZE   (sizeof(struct bindesc_entry))

◆ BINDESC_MAGIC

#define BINDESC_MAGIC   0xb9863e5a7ea46046

◆ BINDESC_TYPE_BYTES

#define BINDESC_TYPE_BYTES   0x2

◆ BINDESC_TYPE_DESCRIPTORS_END

#define BINDESC_TYPE_DESCRIPTORS_END   0xf

◆ BINDESC_TYPE_STR

#define BINDESC_TYPE_STR   0x1

◆ BINDESC_TYPE_UINT

#define BINDESC_TYPE_UINT   0x0

Variable Documentation

◆ layout

Incorrect memory layout