amduat/include/amduat/pel/core.h
2025-12-20 13:54:18 +01:00

57 lines
1.2 KiB
C

#ifndef AMDUAT_PEL_CORE_H
#define AMDUAT_PEL_CORE_H
#include "amduat/asl/core.h"
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef uint8_t amduat_pel_execution_status_t;
typedef uint8_t amduat_pel_execution_error_kind_t;
enum {
AMDUAT_PEL_EXEC_STATUS_OK = 0,
AMDUAT_PEL_EXEC_STATUS_SCHEME_UNSUPPORTED = 1,
AMDUAT_PEL_EXEC_STATUS_INVALID_PROGRAM = 2,
AMDUAT_PEL_EXEC_STATUS_INVALID_INPUTS = 3,
AMDUAT_PEL_EXEC_STATUS_RUNTIME_FAILED = 4
};
enum {
AMDUAT_PEL_EXEC_ERROR_NONE = 0,
AMDUAT_PEL_EXEC_ERROR_SCHEME = 1,
AMDUAT_PEL_EXEC_ERROR_PROGRAM = 2,
AMDUAT_PEL_EXEC_ERROR_INPUTS = 3,
AMDUAT_PEL_EXEC_ERROR_RUNTIME = 4
};
typedef struct {
amduat_pel_execution_error_kind_t kind;
uint32_t status_code;
} amduat_pel_execution_error_summary_t;
typedef struct {
uint32_t code;
amduat_octets_t message;
} amduat_pel_diagnostic_entry_t;
typedef struct {
uint16_t pel1_version;
amduat_pel_execution_status_t status;
amduat_reference_t scheme_ref;
amduat_pel_execution_error_summary_t summary;
amduat_pel_diagnostic_entry_t *diagnostics;
size_t diagnostics_len;
} amduat_pel_execution_result_value_t;
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* AMDUAT_PEL_CORE_H */