summaryrefslogtreecommitdiff
path: root/utils/mcpu-melf.h
diff options
context:
space:
mode:
authorkx <kx@radix-linux.su>2026-10-09 18:00:15 +0300
committerkx <kx@radix-linux.su>2026-10-09 18:00:15 +0300
commit065da3509019b15dd0e678072e6be629e5330bef (patch)
tree69c934c9e786ac048b4fbe8f4c4c5571661521f4 /utils/mcpu-melf.h
parentd130fe27fa753be02ed76fd9b277aa3c3d928eb9 (diff)
downloadlibmcpu-0.4.0.tar.xz
Version 0.4.00.4.0
Diffstat (limited to 'utils/mcpu-melf.h')
-rw-r--r--utils/mcpu-melf.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/utils/mcpu-melf.h b/utils/mcpu-melf.h
new file mode 100644
index 0000000..f6c234f
--- /dev/null
+++ b/utils/mcpu-melf.h
@@ -0,0 +1,42 @@
+#ifndef __CPU_MELF_H
+#define __CPU_MELF_H
+
+#include <stddef.h>
+#include <stdio.h>
+#include <libmcpu.h>
+#include <mcpu-elf.h>
+
+int cpu_melf_data_encoding( void );
+void cpu_melf_put16( unsigned char *p, __mpu_uint16_t v, int data );
+void cpu_melf_put32( unsigned char *p, __mpu_uint32_t v, int data );
+void cpu_melf_put64( unsigned char *p, __mpu_uint64_t v, int data );
+__mpu_uint16_t cpu_melf_get16( const unsigned char *p, int data );
+__mpu_uint32_t cpu_melf_get32( const unsigned char *p, int data );
+__mpu_uint64_t cpu_melf_get64( const unsigned char *p, int data );
+
+int cpu_melf_span( size_t file_size, __mpu_uint64_t off, __mpu_uint64_t len );
+__mpu_uint64_t cpu_melf_align_up( __mpu_uint64_t v, __mpu_uint64_t align, int *overflow );
+int cpu_melf_readall( const char *path, unsigned char **data, size_t *size,
+ char *err, size_t errsz);
+int cpu_melf_writeall( const char *path, const void *data, size_t size,
+ char *err, size_t errsz);
+
+void cpu_melf_fill_target( MElf_McpuTarget *t );
+void cpu_melf_encode_target( unsigned char out[MELF_MCPU_TARGET_SIZE],
+ const MElf_McpuTarget *t, int data);
+int cpu_melf_decode_target( const unsigned char in[MELF_MCPU_TARGET_SIZE],
+ MElf_McpuTarget *t, int data);
+int cpu_melf_validate_target( const MElf_McpuTarget *t, int data,
+ char *err, size_t errsz);
+
+void cpu_melf_fill_lifecycle( MElf_McpuLifecycle *l );
+void cpu_melf_encode_lifecycle( unsigned char out[MELF_MCPU_LIFECYCLE_SIZE],
+ const MElf_McpuLifecycle *l, int data);
+int cpu_melf_decode_lifecycle( const unsigned char in[MELF_MCPU_LIFECYCLE_SIZE],
+ MElf_McpuLifecycle *l, int data);
+int cpu_melf_validate_lifecycle( const MElf_McpuLifecycle *l,
+ char *err, size_t errsz);
+
+int cpu_melf_is_pow2( __mpu_uint64_t v );
+
+#endif