- Remove TOML dependency from Makefile and compose_device.c - Implement projection support in config handler: remap device memory segments between devices via cells[] pointer reassignment - Implement intercept support: shadow_copy (write to both devices) and shadow_replace (redirect read/write to another device) modes using smartAddr handler infrastructure - Fix critical bug in hmmmm.c: freeDevMem was loaded from "freeDevSpecs" symbol instead of "freeDevMem", causing segfault on config reload - Add intercept context lifecycle management to EmulContext Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
40 lines
743 B
C
40 lines
743 B
C
#ifndef __COMPOSE_DEVICE_H__
|
|
#define __COMPOSE_DEVICE_H__
|
|
#include "base_device.h"
|
|
|
|
typedef struct {
|
|
uint64_t limiter;
|
|
} clock_conf_t;
|
|
|
|
typedef struct {
|
|
char** baseAt;
|
|
char* baseSeg;
|
|
char** target;
|
|
uint64_t projectionShift;
|
|
|
|
} projection_conf_t;
|
|
|
|
typedef struct {
|
|
|
|
char** baseAt;
|
|
char** pointAt;
|
|
uint64_t addr;
|
|
char* seg;
|
|
|
|
} intercept_conf_t;
|
|
|
|
|
|
typedef struct {
|
|
clock_conf_t clockConf;
|
|
conf_dev_t** baseConfigs;
|
|
projection_conf_t** projections;
|
|
intercept_conf_t** intercepts;
|
|
} compose_dev_conf_t;
|
|
|
|
typedef struct {
|
|
device_handle_t** devHandlers;
|
|
} compose_dev_handle_t;
|
|
|
|
device_handle_t** openComposeDevice(compose_dev_conf_t* conf, char* errbuf);
|
|
|
|
#endif // ifndef __COMPOSE_DEVICE_H__
|