]> git.xonotic.org Git - xonotic/gmqcc.git/commitdiff
exec.h -> gmqcc.h
authorWolfgang (Blub) Bumiller <blub@speed.at>
Wed, 27 Jun 2012 20:31:56 +0000 (22:31 +0200)
committerWolfgang (Blub) Bumiller <blub@speed.at>
Wed, 27 Jun 2012 20:31:56 +0000 (22:31 +0200)
exec.c
exec.h [deleted file]
gmqcc.h

diff --git a/exec.c b/exec.c
index be2e8c2e5f0fb34df51f4c5e493e063952e884d4..e76eb4b8178f82f81df48a878134b22417d8d02b 100644 (file)
--- a/exec.c
+++ b/exec.c
@@ -4,7 +4,23 @@
 
 #include "gmqcc.h"
 
-#include "exec.h"
+MEM_VEC_FUNCTIONS(qc_program,   prog_section_statement, code)
+MEM_VEC_FUNCTIONS(qc_program,   prog_section_def,       defs)
+MEM_VEC_FUNCTIONS(qc_program,   prog_section_def,       fields)
+MEM_VEC_FUNCTIONS(qc_program,   prog_section_function,  functions)
+MEM_VEC_FUNCTIONS(qc_program,   char,                   strings)
+_MEM_VEC_FUN_APPEND(qc_program, char,                   strings)
+_MEM_VEC_FUN_RESIZE(qc_program, char,                   strings)
+MEM_VEC_FUNCTIONS(qc_program,   qcint,                  globals)
+MEM_VEC_FUNCTIONS(qc_program,   qcint,                  entitydata)
+
+MEM_VEC_FUNCTIONS(qc_program,   qcint,         localstack)
+_MEM_VEC_FUN_APPEND(qc_program, qcint,         localstack)
+_MEM_VEC_FUN_RESIZE(qc_program, qcint,         localstack)
+MEM_VEC_FUNCTIONS(qc_program,   qc_exec_stack, stack)
+
+MEM_VEC_FUNCTIONS(qc_program,   size_t, profile)
+_MEM_VEC_FUN_RESIZE(qc_program, size_t, profile)
 
 static void loaderror(const char *fmt, ...)
 {
diff --git a/exec.h b/exec.h
deleted file mode 100644 (file)
index f8ff6bc..0000000
--- a/exec.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2012
- *     Wolfgang Bumiller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
- * of the Software, and to permit persons to whom the Software is furnished to do
- * so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef GMQCC_EXEC_HDR
-#define GMQCC_EXEC_HDR
-
-/* darkplaces has (or will have) a 64 bit prog loader
- * where the 32 bit qc program is autoconverted on load.
- * Since we may want to support that as well, let's redefine
- * float and int here.
- */
-typedef float   qcfloat;
-typedef int32_t qcint;
-
-typedef union {
-    qcint   _int;
-    qcint    string;
-    qcint    function;
-    qcint    edict;
-    qcfloat _float;
-    qcfloat vector[3];
-    qcint   ivector[3];
-} qcany;
-
-typedef char qcfloat_size_is_correct [sizeof(qcfloat) == 4 ?1:-1];
-typedef char qcint_size_is_correct   [sizeof(qcint)   == 4 ?1:-1];
-
-enum {
-    VMERR_OK,
-    VMERR_TEMPSTRING_ALLOC,
-
-    VMERR_END
-};
-
-#define VM_JUMPS_DEFAULT 1000000
-
-/* execute-flags */
-#define VMXF_DEFAULT 0x0000     /* default flags - nothing */
-#define VMXF_TRACE   0x0001     /* trace: print statements before executing */
-#define VMXF_PROFILE 0x0002     /* profile: increment the profile counters */
-
-struct qc_program_s;
-
-typedef int (*prog_builtin)(struct qc_program_s *prog);
-
-typedef struct {
-    qcint                  stmt;
-    size_t                 localsp;
-    prog_section_function *function;
-} qc_exec_stack;
-
-typedef struct qc_program_s {
-    char           *filename;
-
-    MEM_VECTOR_MAKE(prog_section_statement, code);
-    MEM_VECTOR_MAKE(prog_section_def,       defs);
-    MEM_VECTOR_MAKE(prog_section_def,       fields);
-    MEM_VECTOR_MAKE(prog_section_function,  functions);
-    MEM_VECTOR_MAKE(char,                   strings);
-    MEM_VECTOR_MAKE(qcint,                  globals);
-    MEM_VECTOR_MAKE(qcint,                  entitydata);
-
-    size_t tempstring_start;
-    size_t tempstring_at;
-
-    qcint  vmerror;
-
-    MEM_VECTOR_MAKE(size_t, profile);
-
-    MEM_VECTOR_MAKE(prog_builtin, builtins);
-
-    /* size_t ip; */
-    qcint  entities;
-    size_t entityfields;
-    bool   allowworldwrites;
-
-    MEM_VECTOR_MAKE(qcint,         localstack);
-    MEM_VECTOR_MAKE(qc_exec_stack, stack);
-    size_t statement;
-
-    int    argc; /* current arg count for debugging */
-} qc_program;
-MEM_VEC_FUNCTIONS(qc_program,   prog_section_statement, code)
-MEM_VEC_FUNCTIONS(qc_program,   prog_section_def,       defs)
-MEM_VEC_FUNCTIONS(qc_program,   prog_section_def,       fields)
-MEM_VEC_FUNCTIONS(qc_program,   prog_section_function,  functions)
-MEM_VEC_FUNCTIONS(qc_program,   char,                   strings)
-_MEM_VEC_FUN_APPEND(qc_program, char,                   strings)
-_MEM_VEC_FUN_RESIZE(qc_program, char,                   strings)
-MEM_VEC_FUNCTIONS(qc_program,   qcint,                  globals)
-MEM_VEC_FUNCTIONS(qc_program,   qcint,                  entitydata)
-
-MEM_VEC_FUNCTIONS(qc_program,   qcint,         localstack)
-_MEM_VEC_FUN_APPEND(qc_program, qcint,         localstack)
-_MEM_VEC_FUN_RESIZE(qc_program, qcint,         localstack)
-MEM_VEC_FUNCTIONS(qc_program,   qc_exec_stack, stack)
-
-MEM_VEC_FUNCTIONS(qc_program,   size_t, profile)
-_MEM_VEC_FUN_RESIZE(qc_program, size_t, profile)
-
-qc_program* prog_load(const char *filename);
-void        prog_delete(qc_program *prog);
-
-bool prog_exec(qc_program *prog, prog_section_function *func, size_t flags, long maxjumps);
-
-char*             prog_getstring (qc_program *prog, qcint str);
-prog_section_def* prog_entfield  (qc_program *prog, qcint off);
-prog_section_def* prog_getdef    (qc_program *prog, qcint off);
-qcany*            prog_getedict  (qc_program *prog, qcint e);
-qcint             prog_tempstring(qc_program *prog, const char *_str);
-
-#endif /* GMQCC_EXEC_HDR */
diff --git a/gmqcc.h b/gmqcc.h
index 91ad7a3ea27d77cb741350528694edc10e334732..e9e153ee8ce54ff56d601f0df35b9462df4be674 100644 (file)
--- a/gmqcc.h
+++ b/gmqcc.h
@@ -858,4 +858,97 @@ typedef struct {
     const char *file;
     size_t      line;
 } lex_ctx;
+
+/*===================================================================*/
+/*============================= exec.c ==============================*/
+/*===================================================================*/
+
+/* darkplaces has (or will have) a 64 bit prog loader
+ * where the 32 bit qc program is autoconverted on load.
+ * Since we may want to support that as well, let's redefine
+ * float and int here.
+ */
+typedef float   qcfloat;
+typedef int32_t qcint;
+
+typedef union {
+    qcint   _int;
+    qcint    string;
+    qcint    function;
+    qcint    edict;
+    qcfloat _float;
+    qcfloat vector[3];
+    qcint   ivector[3];
+} qcany;
+
+typedef char qcfloat_size_is_correct [sizeof(qcfloat) == 4 ?1:-1];
+typedef char qcint_size_is_correct   [sizeof(qcint)   == 4 ?1:-1];
+
+enum {
+    VMERR_OK,
+    VMERR_TEMPSTRING_ALLOC,
+
+    VMERR_END
+};
+
+#define VM_JUMPS_DEFAULT 1000000
+
+/* execute-flags */
+#define VMXF_DEFAULT 0x0000     /* default flags - nothing */
+#define VMXF_TRACE   0x0001     /* trace: print statements before executing */
+#define VMXF_PROFILE 0x0002     /* profile: increment the profile counters */
+
+struct qc_program_s;
+
+typedef int (*prog_builtin)(struct qc_program_s *prog);
+
+typedef struct {
+    qcint                  stmt;
+    size_t                 localsp;
+    prog_section_function *function;
+} qc_exec_stack;
+
+typedef struct qc_program_s {
+    char           *filename;
+
+    MEM_VECTOR_MAKE(prog_section_statement, code);
+    MEM_VECTOR_MAKE(prog_section_def,       defs);
+    MEM_VECTOR_MAKE(prog_section_def,       fields);
+    MEM_VECTOR_MAKE(prog_section_function,  functions);
+    MEM_VECTOR_MAKE(char,                   strings);
+    MEM_VECTOR_MAKE(qcint,                  globals);
+    MEM_VECTOR_MAKE(qcint,                  entitydata);
+
+    size_t tempstring_start;
+    size_t tempstring_at;
+
+    qcint  vmerror;
+
+    MEM_VECTOR_MAKE(size_t, profile);
+
+    MEM_VECTOR_MAKE(prog_builtin, builtins);
+
+    /* size_t ip; */
+    qcint  entities;
+    size_t entityfields;
+    bool   allowworldwrites;
+
+    MEM_VECTOR_MAKE(qcint,         localstack);
+    MEM_VECTOR_MAKE(qc_exec_stack, stack);
+    size_t statement;
+
+    int    argc; /* current arg count for debugging */
+} qc_program;
+
+qc_program* prog_load(const char *filename);
+void        prog_delete(qc_program *prog);
+
+bool prog_exec(qc_program *prog, prog_section_function *func, size_t flags, long maxjumps);
+
+char*             prog_getstring (qc_program *prog, qcint str);
+prog_section_def* prog_entfield  (qc_program *prog, qcint off);
+prog_section_def* prog_getdef    (qc_program *prog, qcint off);
+qcany*            prog_getedict  (qc_program *prog, qcint e);
+qcint             prog_tempstring(qc_program *prog, const char *_str);
+
 #endif