Zephyr API Documentation 4.1.99
A Scalable Open Source RTOS
 4.1.99
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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