quakeforge/ruamoko/qwaq/qwaq.h
Bill Currie ad83422c56 [qwaq] Adapt startup code for use in a game engine
Until now, the new qwaq startup was used only in command-line tools and
console applications where things like Ruamoko security and having a
hunk were not an issue. Now the start up code (qwaq-*.c) can specify
that Ruamoko is to be secured and provide a hunk on a per-thread basis,
and the thread data is passed into the progs code via a progs resource.
2021-12-24 06:45:13 +09:00

37 lines
928 B
C

#ifndef __qwaq_h
#define __qwaq_h
#include <pthread.h>
#include "QF/darray.h"
#include "QF/progs.h"
#include "QF/sys.h"
typedef void (*progsinit_f) (progs_t *pr);
typedef struct qwaq_thread_s {
pthread_t thread_id;
int return_code;
struct DARRAY_TYPE (const char *) args;
sys_printf_t sys_printf;
progsinit_f*progsinit;
progs_t *pr;
int rua_security;
struct memhunk_s *hunk;
struct hashlink_s *hashlink_freelist;
func_t main_func;
void *data;
} qwaq_thread_t;
typedef struct qwaq_thread_set_s DARRAY_TYPE(qwaq_thread_t *) qwaq_thread_set_t;
void BI_Graphics_Init (progs_t *pr);
void BI_Curses_Init (progs_t *pr);
void BI_TermInput_Init (progs_t *pr);
void QWAQ_EditBuffer_Init (progs_t *pr);
extern struct cbuf_s *qwaq_cbuf;
qwaq_thread_t *create_thread (void *(*thread_func) (qwaq_thread_t *), void *);
int qwaq_init_threads (qwaq_thread_set_t *thread_data);
#endif//__qwaq_h