Files
hmmmm/inc/context.h

53 lines
1.1 KiB
C

#ifndef __CONTEXT_H__
#define __CONTEXT_H__
#include <pthread.h>
#include <stdint.h>
#include "ptQueue/inc/ptQueue.h"
#include "wsServer/include/ws.h"
#include "linkedlist.h"
#include "sized_ptr.h"
#include "streamed.h"
#include "flatcc/flatcc_builder.h"
typedef struct {
SizedPtr* bufs;
uint8_t buffersCount;
_Atomic (uint8_t) readRequestIdx;
_Atomic (uint8_t) currWritingIdx;
} OutgoingBuffers;
typedef struct {
uint8_t* emulState;
uint64_t* clockCounter;
LinkedListEntry** clientsHead;
uint8_t* utilizedFlag;
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;
typedef struct {
pthread_mutex_t registerMutex;
ptQueue* regQueue;
uint8_t* accessToken;
EmulContext* emulContext;
} ServerContext;
#endif //ifndef __CONTEXT_H__