Generate README.md, add clock dividers and limiters, load configs from WS client, fix stream per-segment subscriptions according to memory projections mechanism

This commit is contained in:
2026-04-05 17:13:53 +03:00
parent 71ec472510
commit d8804c9ae2
19 changed files with 396 additions and 109 deletions

View File

@@ -2,6 +2,7 @@
#define __BASE_DEVICE_H__
#include "hmmmm.h"
#include <stdint.h>
typedef struct {
void* specs;
@@ -9,6 +10,7 @@ typedef struct {
device_public_context_t* ctx;
uint64_t clockCycleLimit;
uint64_t clockCycleCounter;
uint64_t clockDivider;
} device_handle_t;

View File

@@ -2,6 +2,7 @@
#define __CONTEXT_H__
#include <pthread.h>
#include <stdint.h>
#include "ptQueue/inc/ptQueue.h"
#include "wsServer/include/ws.h"
@@ -30,11 +31,13 @@ typedef struct {
OutgoingBuffers* outBufs;
DeviceSegStreamReg** deviceStreamRegs;
uint8_t** devicesMem;
size_t** devicesMemSegAddrs;
size_t devicesCount;
void** deviceHandles; // device_handle_t** — dynamically loaded devices
void* interceptCtxs; // contiguous intercept_ctx_t array (freed as single block)
size_t interceptCtxCount;
flatcc_builder_t stream_builder;
uint64_t simRateLimit;
} EmulContext;

View File

@@ -12,7 +12,9 @@
typedef struct {
ClientContext* clientContext;
uint32_t regId;
uint32_t segId;
uint64_t startAddr;
uint64_t startGlobalAddr;
uint64_t segLen;
uint8_t mode;
} StreamReg;