Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
patch.h File Reference

Infuse-IoT constrained binary patching. More...

#include <stdint.h>
#include <zephyr/storage/flash_map.h>
#include <zephyr/storage/stream_flash.h>
#include <zephyr/toolchain.h>

Go to the source code of this file.

Data Structures

struct  cpatch_array_validation
 Expected values for various memory regions. More...
 
struct  cpatch_header
 CPatch file header. More...
 

Macros

#define CPATCH_MAGIC_NUMBER   0xBA854092
 Magic number that signifies a CPatch file.
 

Typedefs

typedef void(* cpatch_progress_cb_t) (size_t output_offset)
 Patching output progress callback.
 

Functions

int cpatch_patch_start (const struct flash_area *input, const struct flash_area *patch, struct cpatch_header *header)
 Validate patch file and input data region.
 
int cpatch_patch_apply (const struct flash_area *input, const struct flash_area *patch, struct stream_flash_ctx *output, struct cpatch_header *header, cpatch_progress_cb_t progress_cb)
 Create an output file by applying a patch file to an input file.
 

Detailed Description

Infuse-IoT constrained binary patching.

Author
Jordan Yates jorda.nosp@m.n@em.nosp@m.beint.nosp@m..com

SPDX-License-Identifier: FSL-1.1-ALv2

CPatch is a binary diff and patching algorithm designed for simple and sequential output construction for constrained embedded devices. No caching, single pass, optimized for executable binary files.