From f8dcadb1b15d193997dc3e3473cb2bb7227fcc78 Mon Sep 17 00:00:00 2001 From: Richard Brooksby Date: Wed, 22 Aug 2012 07:53:24 +0100 Subject: [PATCH] Subsuming eventgen.h into eventcom.h, now that it's no longer generated. Copied from Perforce Change: 179012 ServerID: perforce.ravenbrook.com --- mps/code/eventcom.h | 386 ++++++++++++++++++- mps/code/eventgen.h | 891 -------------------------------------------- 2 files changed, 380 insertions(+), 897 deletions(-) delete mode 100644 mps/code/eventgen.h diff --git a/mps/code/eventcom.h b/mps/code/eventcom.h index aa0dbb80882..7d372cdd47a 100644 --- a/mps/code/eventcom.h +++ b/mps/code/eventcom.h @@ -9,13 +9,12 @@ #ifndef eventcom_h #define eventcom_h -/* #include "eventgen.h" later in the file */ #include "mpmtypes.h" /* for Word */ +#include "eventdef.h" /* Types for event fields */ - typedef Word EventType; typedef size_t EventCode; typedef Index EventKind; @@ -34,15 +33,390 @@ typedef EventStringStruct *EventString; #define EventCodeMAX ((EventCode)0x0069) -/* eventgen.h is just the automatically generated part of this file */ -#include "eventgen.h" +/* Event*Struct -- Event Structures + * + * Declare the structures that are used to encode events in the internal event + * buffers and on the binary telemetry output stream. + */ +/* Event field types -- similar to WriteF* */ +typedef void *EventFP; +typedef Addr EventFA; +typedef Word EventFW; +typedef unsigned EventFU; +typedef EventStringStruct EventFS; +typedef double EventFD; + +/* Common prefix for all event structures */ +typedef struct EventAnyStruct { + Word code; + Word clock; +} EventAnyStruct; + +#define EVENT_STRUCT(X, name, _code, always, kind, count, format) \ + typedef struct Event##name##Struct { \ + Word code; \ + Word clock; \ + EVENT_STRUCT_FIELDS_##count format \ + } Event##name##Struct; + +#define EVENT_STRUCT_FIELDS_0() +/* The following lines were generated with + python -c 'for i in range(1, 15): print "#define EVENT_STRUCT_FIELDS_%d(%s) %s" % (i, ", ".join(["p%s" % j for j in range(0, i)]), " ".join("EventF##p%d f%d;" % (j, j) for j in range(0,i)))' + */ +#define EVENT_STRUCT_FIELDS_1(p0) EventF##p0 f0; +#define EVENT_STRUCT_FIELDS_2(p0, p1) EventF##p0 f0; EventF##p1 f1; +#define EVENT_STRUCT_FIELDS_3(p0, p1, p2) EventF##p0 f0; EventF##p1 f1; EventF##p2 f2; +#define EVENT_STRUCT_FIELDS_4(p0, p1, p2, p3) EventF##p0 f0; EventF##p1 f1; EventF##p2 f2; EventF##p3 f3; +#define EVENT_STRUCT_FIELDS_5(p0, p1, p2, p3, p4) EventF##p0 f0; EventF##p1 f1; EventF##p2 f2; EventF##p3 f3; EventF##p4 f4; +#define EVENT_STRUCT_FIELDS_6(p0, p1, p2, p3, p4, p5) EventF##p0 f0; EventF##p1 f1; EventF##p2 f2; EventF##p3 f3; EventF##p4 f4; EventF##p5 f5; +#define EVENT_STRUCT_FIELDS_7(p0, p1, p2, p3, p4, p5, p6) EventF##p0 f0; EventF##p1 f1; EventF##p2 f2; EventF##p3 f3; EventF##p4 f4; EventF##p5 f5; EventF##p6 f6; +#define EVENT_STRUCT_FIELDS_8(p0, p1, p2, p3, p4, p5, p6, p7) EventF##p0 f0; EventF##p1 f1; EventF##p2 f2; EventF##p3 f3; EventF##p4 f4; EventF##p5 f5; EventF##p6 f6; EventF##p7 f7; +#define EVENT_STRUCT_FIELDS_9(p0, p1, p2, p3, p4, p5, p6, p7, p8) EventF##p0 f0; EventF##p1 f1; EventF##p2 f2; EventF##p3 f3; EventF##p4 f4; EventF##p5 f5; EventF##p6 f6; EventF##p7 f7; EventF##p8 f8; +#define EVENT_STRUCT_FIELDS_10(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) EventF##p0 f0; EventF##p1 f1; EventF##p2 f2; EventF##p3 f3; EventF##p4 f4; EventF##p5 f5; EventF##p6 f6; EventF##p7 f7; EventF##p8 f8; EventF##p9 f9; +#define EVENT_STRUCT_FIELDS_11(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) EventF##p0 f0; EventF##p1 f1; EventF##p2 f2; EventF##p3 f3; EventF##p4 f4; EventF##p5 f5; EventF##p6 f6; EventF##p7 f7; EventF##p8 f8; EventF##p9 f9; EventF##p10 f10; +#define EVENT_STRUCT_FIELDS_12(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) EventF##p0 f0; EventF##p1 f1; EventF##p2 f2; EventF##p3 f3; EventF##p4 f4; EventF##p5 f5; EventF##p6 f6; EventF##p7 f7; EventF##p8 f8; EventF##p9 f9; EventF##p10 f10; EventF##p11 f11; +#define EVENT_STRUCT_FIELDS_13(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) EventF##p0 f0; EventF##p1 f1; EventF##p2 f2; EventF##p3 f3; EventF##p4 f4; EventF##p5 f5; EventF##p6 f6; EventF##p7 f7; EventF##p8 f8; EventF##p9 f9; EventF##p10 f10; EventF##p11 f11; EventF##p12 f12; +#define EVENT_STRUCT_FIELDS_14(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) EventF##p0 f0; EventF##p1 f1; EventF##p2 f2; EventF##p3 f3; EventF##p4 f4; EventF##p5 f5; EventF##p6 f6; EventF##p7 f7; EventF##p8 f8; EventF##p9 f9; EventF##p10 f10; EventF##p11 f11; EventF##p12 f12; EventF##p13 f13; + +EVENT_LIST(EVENT_STRUCT, X) + + +/* Event -- event union type + * + * Event is the type of a pointer to EventUnion, which is a union of all + * event structures. This can be used as the type of any event, decoded + * by examining event->any.code. + */ + +#define EVENT_UNION_MEMBER(X, name, code, always, kind, count, format) \ + Event##name##Struct name; + +typedef union EventUnion { + EventAnyStruct any; + EVENT_LIST(EVENT_UNION_MEMBER, X) +} EventUnion, *Event; + + +/* EVENTn -- event emitting macros + * + * The macros EVENT0, EVENT1, etc. are used throughout the MPS to emit an + * event with parameters. They work by appending the event parameters to + * an event buffer, which is flushed to the telemetry output stream when + * full. EVENT2S is a special case that takes a variable length string. + */ #ifdef EVENT -typedef EventUnion *Event; +#define EVENT2S(name, p0, length, string) \ + BEGIN \ + size_t _string_len = (length); \ + size_t size; \ + AVER(_string_len < EventStringLengthMAX); \ + size = offsetof(Event##name##Struct, f1.str) + _string_len; \ + EVENT_BEGIN(name, size) \ + _event->f0 = (p0); \ + _event->f1.len = _string_len; \ + mps_lib_memcpy(_event->f1.str, (string), _string_len); \ + EVENT_END(name, size); \ + END -#endif +#define EVENT0(name) EVENT_BEGIN(name, sizeof(EventAnyStruct)) EVENT_END(name, sizeof(EventAnyStruct)) +/* The following lines were generated with + python -c 'for i in range(1,15): print "#define EVENT%d(name, %s) EVENT_BEGIN(name, sizeof(Event##name##Struct)) %s EVENT_END(name, sizeof(Event##name##Struct))" % (i, ", ".join(["p%d" % j for j in range(0, i)]), " ".join(["_event->f%d = (p%d);" % (j, j) for j in range(0, i)]))' + */ +#define EVENT1(name, p0) EVENT_BEGIN(name, sizeof(Event##name##Struct)) _event->f0 = (p0); EVENT_END(name, sizeof(Event##name##Struct)) +#define EVENT2(name, p0, p1) EVENT_BEGIN(name, sizeof(Event##name##Struct)) _event->f0 = (p0); _event->f1 = (p1); EVENT_END(name, sizeof(Event##name##Struct)) +#define EVENT3(name, p0, p1, p2) EVENT_BEGIN(name, sizeof(Event##name##Struct)) _event->f0 = (p0); _event->f1 = (p1); _event->f2 = (p2); EVENT_END(name, sizeof(Event##name##Struct)) +#define EVENT4(name, p0, p1, p2, p3) EVENT_BEGIN(name, sizeof(Event##name##Struct)) _event->f0 = (p0); _event->f1 = (p1); _event->f2 = (p2); _event->f3 = (p3); EVENT_END(name, sizeof(Event##name##Struct)) +#define EVENT5(name, p0, p1, p2, p3, p4) EVENT_BEGIN(name, sizeof(Event##name##Struct)) _event->f0 = (p0); _event->f1 = (p1); _event->f2 = (p2); _event->f3 = (p3); _event->f4 = (p4); EVENT_END(name, sizeof(Event##name##Struct)) +#define EVENT6(name, p0, p1, p2, p3, p4, p5) EVENT_BEGIN(name, sizeof(Event##name##Struct)) _event->f0 = (p0); _event->f1 = (p1); _event->f2 = (p2); _event->f3 = (p3); _event->f4 = (p4); _event->f5 = (p5); EVENT_END(name, sizeof(Event##name##Struct)) +#define EVENT7(name, p0, p1, p2, p3, p4, p5, p6) EVENT_BEGIN(name, sizeof(Event##name##Struct)) _event->f0 = (p0); _event->f1 = (p1); _event->f2 = (p2); _event->f3 = (p3); _event->f4 = (p4); _event->f5 = (p5); _event->f6 = (p6); EVENT_END(name, sizeof(Event##name##Struct)) +#define EVENT8(name, p0, p1, p2, p3, p4, p5, p6, p7) EVENT_BEGIN(name, sizeof(Event##name##Struct)) _event->f0 = (p0); _event->f1 = (p1); _event->f2 = (p2); _event->f3 = (p3); _event->f4 = (p4); _event->f5 = (p5); _event->f6 = (p6); _event->f7 = (p7); EVENT_END(name, sizeof(Event##name##Struct)) +#define EVENT9(name, p0, p1, p2, p3, p4, p5, p6, p7, p8) EVENT_BEGIN(name, sizeof(Event##name##Struct)) _event->f0 = (p0); _event->f1 = (p1); _event->f2 = (p2); _event->f3 = (p3); _event->f4 = (p4); _event->f5 = (p5); _event->f6 = (p6); _event->f7 = (p7); _event->f8 = (p8); EVENT_END(name, sizeof(Event##name##Struct)) +#define EVENT10(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) EVENT_BEGIN(name, sizeof(Event##name##Struct)) _event->f0 = (p0); _event->f1 = (p1); _event->f2 = (p2); _event->f3 = (p3); _event->f4 = (p4); _event->f5 = (p5); _event->f6 = (p6); _event->f7 = (p7); _event->f8 = (p8); _event->f9 = (p9); EVENT_END(name, sizeof(Event##name##Struct)) +#define EVENT11(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) EVENT_BEGIN(name, sizeof(Event##name##Struct)) _event->f0 = (p0); _event->f1 = (p1); _event->f2 = (p2); _event->f3 = (p3); _event->f4 = (p4); _event->f5 = (p5); _event->f6 = (p6); _event->f7 = (p7); _event->f8 = (p8); _event->f9 = (p9); _event->f10 = (p10); EVENT_END(name, sizeof(Event##name##Struct)) +#define EVENT12(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) EVENT_BEGIN(name, sizeof(Event##name##Struct)) _event->f0 = (p0); _event->f1 = (p1); _event->f2 = (p2); _event->f3 = (p3); _event->f4 = (p4); _event->f5 = (p5); _event->f6 = (p6); _event->f7 = (p7); _event->f8 = (p8); _event->f9 = (p9); _event->f10 = (p10); _event->f11 = (p11); EVENT_END(name, sizeof(Event##name##Struct)) +#define EVENT13(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) EVENT_BEGIN(name, sizeof(Event##name##Struct)) _event->f0 = (p0); _event->f1 = (p1); _event->f2 = (p2); _event->f3 = (p3); _event->f4 = (p4); _event->f5 = (p5); _event->f6 = (p6); _event->f7 = (p7); _event->f8 = (p8); _event->f9 = (p9); _event->f10 = (p10); _event->f11 = (p11); _event->f12 = (p12); EVENT_END(name, sizeof(Event##name##Struct)) +#define EVENT14(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) EVENT_BEGIN(name, sizeof(Event##name##Struct)) _event->f0 = (p0); _event->f1 = (p1); _event->f2 = (p2); _event->f3 = (p3); _event->f4 = (p4); _event->f5 = (p5); _event->f6 = (p6); _event->f7 = (p7); _event->f8 = (p8); _event->f9 = (p9); _event->f10 = (p10); _event->f11 = (p11); _event->f12 = (p12); _event->f13 = (p13); EVENT_END(name, sizeof(Event##name##Struct)) + + + +#define EVENT0_FIELD_PTR(name, event, i) NULL + +/* + for i in range(1,20): print "#define EVENT%d_FIELD_PTR(name, event, i) ( \\\n %s\\\n : NULL)\n" % (i, " \\\n : ".join(["((i) == %d) ? (void *)&((event)->name.f%d)" % (j, j) for j in range(0, i)])) + */ + +#define EVENT1_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0)\ + : NULL) + +#define EVENT2_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1)\ + : NULL) + +#define EVENT3_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2)\ + : NULL) + +#define EVENT4_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2) \ + : ((i) == 3) ? (void *)&((event)->name.f3)\ + : NULL) + +#define EVENT5_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2) \ + : ((i) == 3) ? (void *)&((event)->name.f3) \ + : ((i) == 4) ? (void *)&((event)->name.f4)\ + : NULL) + +#define EVENT6_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2) \ + : ((i) == 3) ? (void *)&((event)->name.f3) \ + : ((i) == 4) ? (void *)&((event)->name.f4) \ + : ((i) == 5) ? (void *)&((event)->name.f5)\ + : NULL) + +#define EVENT7_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2) \ + : ((i) == 3) ? (void *)&((event)->name.f3) \ + : ((i) == 4) ? (void *)&((event)->name.f4) \ + : ((i) == 5) ? (void *)&((event)->name.f5) \ + : ((i) == 6) ? (void *)&((event)->name.f6)\ + : NULL) + +#define EVENT8_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2) \ + : ((i) == 3) ? (void *)&((event)->name.f3) \ + : ((i) == 4) ? (void *)&((event)->name.f4) \ + : ((i) == 5) ? (void *)&((event)->name.f5) \ + : ((i) == 6) ? (void *)&((event)->name.f6) \ + : ((i) == 7) ? (void *)&((event)->name.f7)\ + : NULL) + +#define EVENT9_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2) \ + : ((i) == 3) ? (void *)&((event)->name.f3) \ + : ((i) == 4) ? (void *)&((event)->name.f4) \ + : ((i) == 5) ? (void *)&((event)->name.f5) \ + : ((i) == 6) ? (void *)&((event)->name.f6) \ + : ((i) == 7) ? (void *)&((event)->name.f7) \ + : ((i) == 8) ? (void *)&((event)->name.f8)\ + : NULL) + +#define EVENT10_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2) \ + : ((i) == 3) ? (void *)&((event)->name.f3) \ + : ((i) == 4) ? (void *)&((event)->name.f4) \ + : ((i) == 5) ? (void *)&((event)->name.f5) \ + : ((i) == 6) ? (void *)&((event)->name.f6) \ + : ((i) == 7) ? (void *)&((event)->name.f7) \ + : ((i) == 8) ? (void *)&((event)->name.f8) \ + : ((i) == 9) ? (void *)&((event)->name.f9)\ + : NULL) + +#define EVENT11_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2) \ + : ((i) == 3) ? (void *)&((event)->name.f3) \ + : ((i) == 4) ? (void *)&((event)->name.f4) \ + : ((i) == 5) ? (void *)&((event)->name.f5) \ + : ((i) == 6) ? (void *)&((event)->name.f6) \ + : ((i) == 7) ? (void *)&((event)->name.f7) \ + : ((i) == 8) ? (void *)&((event)->name.f8) \ + : ((i) == 9) ? (void *)&((event)->name.f9) \ + : ((i) == 10) ? (void *)&((event)->name.f10)\ + : NULL) + +#define EVENT12_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2) \ + : ((i) == 3) ? (void *)&((event)->name.f3) \ + : ((i) == 4) ? (void *)&((event)->name.f4) \ + : ((i) == 5) ? (void *)&((event)->name.f5) \ + : ((i) == 6) ? (void *)&((event)->name.f6) \ + : ((i) == 7) ? (void *)&((event)->name.f7) \ + : ((i) == 8) ? (void *)&((event)->name.f8) \ + : ((i) == 9) ? (void *)&((event)->name.f9) \ + : ((i) == 10) ? (void *)&((event)->name.f10) \ + : ((i) == 11) ? (void *)&((event)->name.f11)\ + : NULL) + +#define EVENT13_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2) \ + : ((i) == 3) ? (void *)&((event)->name.f3) \ + : ((i) == 4) ? (void *)&((event)->name.f4) \ + : ((i) == 5) ? (void *)&((event)->name.f5) \ + : ((i) == 6) ? (void *)&((event)->name.f6) \ + : ((i) == 7) ? (void *)&((event)->name.f7) \ + : ((i) == 8) ? (void *)&((event)->name.f8) \ + : ((i) == 9) ? (void *)&((event)->name.f9) \ + : ((i) == 10) ? (void *)&((event)->name.f10) \ + : ((i) == 11) ? (void *)&((event)->name.f11) \ + : ((i) == 12) ? (void *)&((event)->name.f12)\ + : NULL) + +#define EVENT14_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2) \ + : ((i) == 3) ? (void *)&((event)->name.f3) \ + : ((i) == 4) ? (void *)&((event)->name.f4) \ + : ((i) == 5) ? (void *)&((event)->name.f5) \ + : ((i) == 6) ? (void *)&((event)->name.f6) \ + : ((i) == 7) ? (void *)&((event)->name.f7) \ + : ((i) == 8) ? (void *)&((event)->name.f8) \ + : ((i) == 9) ? (void *)&((event)->name.f9) \ + : ((i) == 10) ? (void *)&((event)->name.f10) \ + : ((i) == 11) ? (void *)&((event)->name.f11) \ + : ((i) == 12) ? (void *)&((event)->name.f12) \ + : ((i) == 13) ? (void *)&((event)->name.f13)\ + : NULL) + +#define EVENT15_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2) \ + : ((i) == 3) ? (void *)&((event)->name.f3) \ + : ((i) == 4) ? (void *)&((event)->name.f4) \ + : ((i) == 5) ? (void *)&((event)->name.f5) \ + : ((i) == 6) ? (void *)&((event)->name.f6) \ + : ((i) == 7) ? (void *)&((event)->name.f7) \ + : ((i) == 8) ? (void *)&((event)->name.f8) \ + : ((i) == 9) ? (void *)&((event)->name.f9) \ + : ((i) == 10) ? (void *)&((event)->name.f10) \ + : ((i) == 11) ? (void *)&((event)->name.f11) \ + : ((i) == 12) ? (void *)&((event)->name.f12) \ + : ((i) == 13) ? (void *)&((event)->name.f13) \ + : ((i) == 14) ? (void *)&((event)->name.f14)\ + : NULL) + +#define EVENT16_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2) \ + : ((i) == 3) ? (void *)&((event)->name.f3) \ + : ((i) == 4) ? (void *)&((event)->name.f4) \ + : ((i) == 5) ? (void *)&((event)->name.f5) \ + : ((i) == 6) ? (void *)&((event)->name.f6) \ + : ((i) == 7) ? (void *)&((event)->name.f7) \ + : ((i) == 8) ? (void *)&((event)->name.f8) \ + : ((i) == 9) ? (void *)&((event)->name.f9) \ + : ((i) == 10) ? (void *)&((event)->name.f10) \ + : ((i) == 11) ? (void *)&((event)->name.f11) \ + : ((i) == 12) ? (void *)&((event)->name.f12) \ + : ((i) == 13) ? (void *)&((event)->name.f13) \ + : ((i) == 14) ? (void *)&((event)->name.f14) \ + : ((i) == 15) ? (void *)&((event)->name.f15)\ + : NULL) + +#define EVENT17_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2) \ + : ((i) == 3) ? (void *)&((event)->name.f3) \ + : ((i) == 4) ? (void *)&((event)->name.f4) \ + : ((i) == 5) ? (void *)&((event)->name.f5) \ + : ((i) == 6) ? (void *)&((event)->name.f6) \ + : ((i) == 7) ? (void *)&((event)->name.f7) \ + : ((i) == 8) ? (void *)&((event)->name.f8) \ + : ((i) == 9) ? (void *)&((event)->name.f9) \ + : ((i) == 10) ? (void *)&((event)->name.f10) \ + : ((i) == 11) ? (void *)&((event)->name.f11) \ + : ((i) == 12) ? (void *)&((event)->name.f12) \ + : ((i) == 13) ? (void *)&((event)->name.f13) \ + : ((i) == 14) ? (void *)&((event)->name.f14) \ + : ((i) == 15) ? (void *)&((event)->name.f15) \ + : ((i) == 16) ? (void *)&((event)->name.f16)\ + : NULL) + +#define EVENT18_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2) \ + : ((i) == 3) ? (void *)&((event)->name.f3) \ + : ((i) == 4) ? (void *)&((event)->name.f4) \ + : ((i) == 5) ? (void *)&((event)->name.f5) \ + : ((i) == 6) ? (void *)&((event)->name.f6) \ + : ((i) == 7) ? (void *)&((event)->name.f7) \ + : ((i) == 8) ? (void *)&((event)->name.f8) \ + : ((i) == 9) ? (void *)&((event)->name.f9) \ + : ((i) == 10) ? (void *)&((event)->name.f10) \ + : ((i) == 11) ? (void *)&((event)->name.f11) \ + : ((i) == 12) ? (void *)&((event)->name.f12) \ + : ((i) == 13) ? (void *)&((event)->name.f13) \ + : ((i) == 14) ? (void *)&((event)->name.f14) \ + : ((i) == 15) ? (void *)&((event)->name.f15) \ + : ((i) == 16) ? (void *)&((event)->name.f16) \ + : ((i) == 17) ? (void *)&((event)->name.f17)\ + : NULL) + +#define EVENT19_FIELD_PTR(name, event, i) ( \ + ((i) == 0) ? (void *)&((event)->name.f0) \ + : ((i) == 1) ? (void *)&((event)->name.f1) \ + : ((i) == 2) ? (void *)&((event)->name.f2) \ + : ((i) == 3) ? (void *)&((event)->name.f3) \ + : ((i) == 4) ? (void *)&((event)->name.f4) \ + : ((i) == 5) ? (void *)&((event)->name.f5) \ + : ((i) == 6) ? (void *)&((event)->name.f6) \ + : ((i) == 7) ? (void *)&((event)->name.f7) \ + : ((i) == 8) ? (void *)&((event)->name.f8) \ + : ((i) == 9) ? (void *)&((event)->name.f9) \ + : ((i) == 10) ? (void *)&((event)->name.f10) \ + : ((i) == 11) ? (void *)&((event)->name.f11) \ + : ((i) == 12) ? (void *)&((event)->name.f12) \ + : ((i) == 13) ? (void *)&((event)->name.f13) \ + : ((i) == 14) ? (void *)&((event)->name.f14) \ + : ((i) == 15) ? (void *)&((event)->name.f15) \ + : ((i) == 16) ? (void *)&((event)->name.f16) \ + : ((i) == 17) ? (void *)&((event)->name.f17) \ + : ((i) == 18) ? (void *)&((event)->name.f18)\ + : NULL) + +#else /* EVENT not */ + +#define EVENT0(name) NOOP +/* The following lines were generated with + python -c 'for i in range(1,15): print "#define EVENT%d(name, %s) NOOP" % (i, ", ".join(["p%d" % j for j in range(0, i)]))' + */ +#define EVENT1(name, p0) NOOP +#define EVENT2(name, p0, p1) NOOP +#define EVENT3(name, p0, p1, p2) NOOP +#define EVENT4(name, p0, p1, p2, p3) NOOP +#define EVENT5(name, p0, p1, p2, p3, p4) NOOP +#define EVENT6(name, p0, p1, p2, p3, p4, p5) NOOP +#define EVENT7(name, p0, p1, p2, p3, p4, p5, p6) NOOP +#define EVENT8(name, p0, p1, p2, p3, p4, p5, p6, p7) NOOP +#define EVENT9(name, p0, p1, p2, p3, p4, p5, p6, p7, p8) NOOP +#define EVENT10(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) NOOP +#define EVENT11(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) NOOP +#define EVENT12(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) NOOP +#define EVENT13(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) NOOP +#define EVENT14(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) NOOP + +#endif /* EVENT */ /* Event types -- see diff --git a/mps/code/eventgen.h b/mps/code/eventgen.h deleted file mode 100644 index a3e95f1a23e..00000000000 --- a/mps/code/eventgen.h +++ /dev/null @@ -1,891 +0,0 @@ -/* -- Automatic event header - * - * $Id$ - * Copyright (c) 2001 Ravenbrook Limited. See end of file for license. - * - * DO NOT EDIT THIS FILE! - * This file was generated by //info.ravenbrook.com/project/mps/master/code/eventgen.pl#6 - */ - -#ifdef EVENT - -#include "eventdef.h" - -typedef void *EventFP; -typedef Addr EventFA; -typedef Word EventFW; -typedef unsigned EventFU; -typedef EventStringStruct EventFS; -typedef double EventFD; - -typedef struct EventAnyStruct { - Word code; - Word clock; -} EventAnyStruct; - -#define EVENT_STRUCT(X, name, _code, always, kind, count, format) \ - typedef struct Event##name##Struct { \ - Word code; \ - Word clock; \ - EVENT_STRUCT_FIELDS_##count format \ - } Event##name##Struct; - -#define EVENT_STRUCT_FIELDS_0() - -/* - for i in range(0, 20): print "#define EVENT_STRUCT_FIELDS_%d(%s) \\\n%s\n" % (i, ", ".join(["p%s" % j for j in range(0, i)]), " \\\n".join(" EventF##p%d f%d;" % (j, j) for j in range(0,i))) - */ - -#define EVENT_STRUCT_FIELDS_1(p0) \ - EventF##p0 f0; - -#define EVENT_STRUCT_FIELDS_2(p0, p1) \ - EventF##p0 f0; \ - EventF##p1 f1; - -#define EVENT_STRUCT_FIELDS_3(p0, p1, p2) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; - -#define EVENT_STRUCT_FIELDS_4(p0, p1, p2, p3) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; \ - EventF##p3 f3; - -#define EVENT_STRUCT_FIELDS_5(p0, p1, p2, p3, p4) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; \ - EventF##p3 f3; \ - EventF##p4 f4; - -#define EVENT_STRUCT_FIELDS_6(p0, p1, p2, p3, p4, p5) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; \ - EventF##p3 f3; \ - EventF##p4 f4; \ - EventF##p5 f5; - -#define EVENT_STRUCT_FIELDS_7(p0, p1, p2, p3, p4, p5, p6) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; \ - EventF##p3 f3; \ - EventF##p4 f4; \ - EventF##p5 f5; \ - EventF##p6 f6; - -#define EVENT_STRUCT_FIELDS_8(p0, p1, p2, p3, p4, p5, p6, p7) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; \ - EventF##p3 f3; \ - EventF##p4 f4; \ - EventF##p5 f5; \ - EventF##p6 f6; \ - EventF##p7 f7; - -#define EVENT_STRUCT_FIELDS_9(p0, p1, p2, p3, p4, p5, p6, p7, p8) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; \ - EventF##p3 f3; \ - EventF##p4 f4; \ - EventF##p5 f5; \ - EventF##p6 f6; \ - EventF##p7 f7; \ - EventF##p8 f8; - -#define EVENT_STRUCT_FIELDS_10(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; \ - EventF##p3 f3; \ - EventF##p4 f4; \ - EventF##p5 f5; \ - EventF##p6 f6; \ - EventF##p7 f7; \ - EventF##p8 f8; \ - EventF##p9 f9; - -#define EVENT_STRUCT_FIELDS_11(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; \ - EventF##p3 f3; \ - EventF##p4 f4; \ - EventF##p5 f5; \ - EventF##p6 f6; \ - EventF##p7 f7; \ - EventF##p8 f8; \ - EventF##p9 f9; \ - EventF##p10 f10; - -#define EVENT_STRUCT_FIELDS_12(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; \ - EventF##p3 f3; \ - EventF##p4 f4; \ - EventF##p5 f5; \ - EventF##p6 f6; \ - EventF##p7 f7; \ - EventF##p8 f8; \ - EventF##p9 f9; \ - EventF##p10 f10; \ - EventF##p11 f11; - -#define EVENT_STRUCT_FIELDS_13(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; \ - EventF##p3 f3; \ - EventF##p4 f4; \ - EventF##p5 f5; \ - EventF##p6 f6; \ - EventF##p7 f7; \ - EventF##p8 f8; \ - EventF##p9 f9; \ - EventF##p10 f10; \ - EventF##p11 f11; \ - EventF##p12 f12; - -#define EVENT_STRUCT_FIELDS_14(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; \ - EventF##p3 f3; \ - EventF##p4 f4; \ - EventF##p5 f5; \ - EventF##p6 f6; \ - EventF##p7 f7; \ - EventF##p8 f8; \ - EventF##p9 f9; \ - EventF##p10 f10; \ - EventF##p11 f11; \ - EventF##p12 f12; \ - EventF##p13 f13; - -#define EVENT_STRUCT_FIELDS_15(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; \ - EventF##p3 f3; \ - EventF##p4 f4; \ - EventF##p5 f5; \ - EventF##p6 f6; \ - EventF##p7 f7; \ - EventF##p8 f8; \ - EventF##p9 f9; \ - EventF##p10 f10; \ - EventF##p11 f11; \ - EventF##p12 f12; \ - EventF##p13 f13; \ - EventF##p14 f14; - -#define EVENT_STRUCT_FIELDS_16(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; \ - EventF##p3 f3; \ - EventF##p4 f4; \ - EventF##p5 f5; \ - EventF##p6 f6; \ - EventF##p7 f7; \ - EventF##p8 f8; \ - EventF##p9 f9; \ - EventF##p10 f10; \ - EventF##p11 f11; \ - EventF##p12 f12; \ - EventF##p13 f13; \ - EventF##p14 f14; \ - EventF##p15 f15; - -#define EVENT_STRUCT_FIELDS_17(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; \ - EventF##p3 f3; \ - EventF##p4 f4; \ - EventF##p5 f5; \ - EventF##p6 f6; \ - EventF##p7 f7; \ - EventF##p8 f8; \ - EventF##p9 f9; \ - EventF##p10 f10; \ - EventF##p11 f11; \ - EventF##p12 f12; \ - EventF##p13 f13; \ - EventF##p14 f14; \ - EventF##p15 f15; \ - EventF##p16 f16; - -#define EVENT_STRUCT_FIELDS_18(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; \ - EventF##p3 f3; \ - EventF##p4 f4; \ - EventF##p5 f5; \ - EventF##p6 f6; \ - EventF##p7 f7; \ - EventF##p8 f8; \ - EventF##p9 f9; \ - EventF##p10 f10; \ - EventF##p11 f11; \ - EventF##p12 f12; \ - EventF##p13 f13; \ - EventF##p14 f14; \ - EventF##p15 f15; \ - EventF##p16 f16; \ - EventF##p17 f17; - -#define EVENT_STRUCT_FIELDS_19(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18) \ - EventF##p0 f0; \ - EventF##p1 f1; \ - EventF##p2 f2; \ - EventF##p3 f3; \ - EventF##p4 f4; \ - EventF##p5 f5; \ - EventF##p6 f6; \ - EventF##p7 f7; \ - EventF##p8 f8; \ - EventF##p9 f9; \ - EventF##p10 f10; \ - EventF##p11 f11; \ - EventF##p12 f12; \ - EventF##p13 f13; \ - EventF##p14 f14; \ - EventF##p15 f15; \ - EventF##p16 f16; \ - EventF##p17 f17; \ - EventF##p18 f18; - -EVENT_LIST(EVENT_STRUCT, X) - - -#define EVENT_UNION_MEMBER(X, name, code, always, kind, count, format) \ - Event##name##Struct name; - -typedef union EventUnion { - EventAnyStruct any; - EVENT_LIST(EVENT_UNION_MEMBER, X) -} EventUnion, *Event; - - -#define EVENT2S(name, p0, length, string) \ - BEGIN \ - size_t _string_len = (length); \ - size_t size; \ - AVER(_string_len < EventStringLengthMAX); \ - size = offsetof(Event##name##Struct, f1.str) + _string_len; \ - EVENT_BEGIN(name, size) \ - _event->f0 = (p0); \ - _event->f1.len = _string_len; \ - mps_lib_memcpy(_event->f1.str, (string), _string_len); \ - EVENT_END(name, size); \ - END - -#define EVENT0(name) \ - EVENT_BEGIN(name, 0) \ - EVENT_END(name, 0) - -/* - for i in range(1,20): print "#define EVENT%d(name, %s) \\\n EVENT_BEGIN(name, sizeof(Event##name##Struct)) \\\n%s \\\n EVENT_END(name, sizeof(Event##name##Struct))\n" % (i, ", ".join(["p%d" % j for j in range(0, i)]), " \\\n".join([" _event->f%d = (p%d);" % (j, j) for j in range(0, i)])) - */ - -#define EVENT1(name, p0) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT2(name, p0, p1) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT3(name, p0, p1, p2) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT4(name, p0, p1, p2, p3) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - _event->f3 = (p3); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT5(name, p0, p1, p2, p3, p4) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - _event->f3 = (p3); \ - _event->f4 = (p4); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT6(name, p0, p1, p2, p3, p4, p5) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - _event->f3 = (p3); \ - _event->f4 = (p4); \ - _event->f5 = (p5); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT7(name, p0, p1, p2, p3, p4, p5, p6) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - _event->f3 = (p3); \ - _event->f4 = (p4); \ - _event->f5 = (p5); \ - _event->f6 = (p6); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT8(name, p0, p1, p2, p3, p4, p5, p6, p7) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - _event->f3 = (p3); \ - _event->f4 = (p4); \ - _event->f5 = (p5); \ - _event->f6 = (p6); \ - _event->f7 = (p7); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT9(name, p0, p1, p2, p3, p4, p5, p6, p7, p8) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - _event->f3 = (p3); \ - _event->f4 = (p4); \ - _event->f5 = (p5); \ - _event->f6 = (p6); \ - _event->f7 = (p7); \ - _event->f8 = (p8); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT10(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - _event->f3 = (p3); \ - _event->f4 = (p4); \ - _event->f5 = (p5); \ - _event->f6 = (p6); \ - _event->f7 = (p7); \ - _event->f8 = (p8); \ - _event->f9 = (p9); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT11(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - _event->f3 = (p3); \ - _event->f4 = (p4); \ - _event->f5 = (p5); \ - _event->f6 = (p6); \ - _event->f7 = (p7); \ - _event->f8 = (p8); \ - _event->f9 = (p9); \ - _event->f10 = (p10); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT12(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - _event->f3 = (p3); \ - _event->f4 = (p4); \ - _event->f5 = (p5); \ - _event->f6 = (p6); \ - _event->f7 = (p7); \ - _event->f8 = (p8); \ - _event->f9 = (p9); \ - _event->f10 = (p10); \ - _event->f11 = (p11); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT13(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - _event->f3 = (p3); \ - _event->f4 = (p4); \ - _event->f5 = (p5); \ - _event->f6 = (p6); \ - _event->f7 = (p7); \ - _event->f8 = (p8); \ - _event->f9 = (p9); \ - _event->f10 = (p10); \ - _event->f11 = (p11); \ - _event->f12 = (p12); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT14(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - _event->f3 = (p3); \ - _event->f4 = (p4); \ - _event->f5 = (p5); \ - _event->f6 = (p6); \ - _event->f7 = (p7); \ - _event->f8 = (p8); \ - _event->f9 = (p9); \ - _event->f10 = (p10); \ - _event->f11 = (p11); \ - _event->f12 = (p12); \ - _event->f13 = (p13); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT15(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - _event->f3 = (p3); \ - _event->f4 = (p4); \ - _event->f5 = (p5); \ - _event->f6 = (p6); \ - _event->f7 = (p7); \ - _event->f8 = (p8); \ - _event->f9 = (p9); \ - _event->f10 = (p10); \ - _event->f11 = (p11); \ - _event->f12 = (p12); \ - _event->f13 = (p13); \ - _event->f14 = (p14); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT16(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - _event->f3 = (p3); \ - _event->f4 = (p4); \ - _event->f5 = (p5); \ - _event->f6 = (p6); \ - _event->f7 = (p7); \ - _event->f8 = (p8); \ - _event->f9 = (p9); \ - _event->f10 = (p10); \ - _event->f11 = (p11); \ - _event->f12 = (p12); \ - _event->f13 = (p13); \ - _event->f14 = (p14); \ - _event->f15 = (p15); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT17(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - _event->f3 = (p3); \ - _event->f4 = (p4); \ - _event->f5 = (p5); \ - _event->f6 = (p6); \ - _event->f7 = (p7); \ - _event->f8 = (p8); \ - _event->f9 = (p9); \ - _event->f10 = (p10); \ - _event->f11 = (p11); \ - _event->f12 = (p12); \ - _event->f13 = (p13); \ - _event->f14 = (p14); \ - _event->f15 = (p15); \ - _event->f16 = (p16); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT18(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - _event->f3 = (p3); \ - _event->f4 = (p4); \ - _event->f5 = (p5); \ - _event->f6 = (p6); \ - _event->f7 = (p7); \ - _event->f8 = (p8); \ - _event->f9 = (p9); \ - _event->f10 = (p10); \ - _event->f11 = (p11); \ - _event->f12 = (p12); \ - _event->f13 = (p13); \ - _event->f14 = (p14); \ - _event->f15 = (p15); \ - _event->f16 = (p16); \ - _event->f17 = (p17); \ - EVENT_END(name, sizeof(Event##name##Struct)) - -#define EVENT19(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18) \ - EVENT_BEGIN(name, sizeof(Event##name##Struct)) \ - _event->f0 = (p0); \ - _event->f1 = (p1); \ - _event->f2 = (p2); \ - _event->f3 = (p3); \ - _event->f4 = (p4); \ - _event->f5 = (p5); \ - _event->f6 = (p6); \ - _event->f7 = (p7); \ - _event->f8 = (p8); \ - _event->f9 = (p9); \ - _event->f10 = (p10); \ - _event->f11 = (p11); \ - _event->f12 = (p12); \ - _event->f13 = (p13); \ - _event->f14 = (p14); \ - _event->f15 = (p15); \ - _event->f16 = (p16); \ - _event->f17 = (p17); \ - _event->f18 = (p18); \ - EVENT_END(name, sizeof(Event##name##Struct)) - - -#define EVENT0_FIELD_PTR(name, event, i) NULL - -/* - for i in range(1,20): print "#define EVENT%d_FIELD_PTR(name, event, i) ( \\\n %s\\\n : NULL)\n" % (i, " \\\n : ".join(["((i) == %d) ? (void *)&((event)->name.f%d)" % (j, j) for j in range(0, i)])) - */ - -#define EVENT1_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0)\ - : NULL) - -#define EVENT2_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1)\ - : NULL) - -#define EVENT3_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2)\ - : NULL) - -#define EVENT4_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2) \ - : ((i) == 3) ? (void *)&((event)->name.f3)\ - : NULL) - -#define EVENT5_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2) \ - : ((i) == 3) ? (void *)&((event)->name.f3) \ - : ((i) == 4) ? (void *)&((event)->name.f4)\ - : NULL) - -#define EVENT6_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2) \ - : ((i) == 3) ? (void *)&((event)->name.f3) \ - : ((i) == 4) ? (void *)&((event)->name.f4) \ - : ((i) == 5) ? (void *)&((event)->name.f5)\ - : NULL) - -#define EVENT7_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2) \ - : ((i) == 3) ? (void *)&((event)->name.f3) \ - : ((i) == 4) ? (void *)&((event)->name.f4) \ - : ((i) == 5) ? (void *)&((event)->name.f5) \ - : ((i) == 6) ? (void *)&((event)->name.f6)\ - : NULL) - -#define EVENT8_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2) \ - : ((i) == 3) ? (void *)&((event)->name.f3) \ - : ((i) == 4) ? (void *)&((event)->name.f4) \ - : ((i) == 5) ? (void *)&((event)->name.f5) \ - : ((i) == 6) ? (void *)&((event)->name.f6) \ - : ((i) == 7) ? (void *)&((event)->name.f7)\ - : NULL) - -#define EVENT9_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2) \ - : ((i) == 3) ? (void *)&((event)->name.f3) \ - : ((i) == 4) ? (void *)&((event)->name.f4) \ - : ((i) == 5) ? (void *)&((event)->name.f5) \ - : ((i) == 6) ? (void *)&((event)->name.f6) \ - : ((i) == 7) ? (void *)&((event)->name.f7) \ - : ((i) == 8) ? (void *)&((event)->name.f8)\ - : NULL) - -#define EVENT10_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2) \ - : ((i) == 3) ? (void *)&((event)->name.f3) \ - : ((i) == 4) ? (void *)&((event)->name.f4) \ - : ((i) == 5) ? (void *)&((event)->name.f5) \ - : ((i) == 6) ? (void *)&((event)->name.f6) \ - : ((i) == 7) ? (void *)&((event)->name.f7) \ - : ((i) == 8) ? (void *)&((event)->name.f8) \ - : ((i) == 9) ? (void *)&((event)->name.f9)\ - : NULL) - -#define EVENT11_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2) \ - : ((i) == 3) ? (void *)&((event)->name.f3) \ - : ((i) == 4) ? (void *)&((event)->name.f4) \ - : ((i) == 5) ? (void *)&((event)->name.f5) \ - : ((i) == 6) ? (void *)&((event)->name.f6) \ - : ((i) == 7) ? (void *)&((event)->name.f7) \ - : ((i) == 8) ? (void *)&((event)->name.f8) \ - : ((i) == 9) ? (void *)&((event)->name.f9) \ - : ((i) == 10) ? (void *)&((event)->name.f10)\ - : NULL) - -#define EVENT12_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2) \ - : ((i) == 3) ? (void *)&((event)->name.f3) \ - : ((i) == 4) ? (void *)&((event)->name.f4) \ - : ((i) == 5) ? (void *)&((event)->name.f5) \ - : ((i) == 6) ? (void *)&((event)->name.f6) \ - : ((i) == 7) ? (void *)&((event)->name.f7) \ - : ((i) == 8) ? (void *)&((event)->name.f8) \ - : ((i) == 9) ? (void *)&((event)->name.f9) \ - : ((i) == 10) ? (void *)&((event)->name.f10) \ - : ((i) == 11) ? (void *)&((event)->name.f11)\ - : NULL) - -#define EVENT13_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2) \ - : ((i) == 3) ? (void *)&((event)->name.f3) \ - : ((i) == 4) ? (void *)&((event)->name.f4) \ - : ((i) == 5) ? (void *)&((event)->name.f5) \ - : ((i) == 6) ? (void *)&((event)->name.f6) \ - : ((i) == 7) ? (void *)&((event)->name.f7) \ - : ((i) == 8) ? (void *)&((event)->name.f8) \ - : ((i) == 9) ? (void *)&((event)->name.f9) \ - : ((i) == 10) ? (void *)&((event)->name.f10) \ - : ((i) == 11) ? (void *)&((event)->name.f11) \ - : ((i) == 12) ? (void *)&((event)->name.f12)\ - : NULL) - -#define EVENT14_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2) \ - : ((i) == 3) ? (void *)&((event)->name.f3) \ - : ((i) == 4) ? (void *)&((event)->name.f4) \ - : ((i) == 5) ? (void *)&((event)->name.f5) \ - : ((i) == 6) ? (void *)&((event)->name.f6) \ - : ((i) == 7) ? (void *)&((event)->name.f7) \ - : ((i) == 8) ? (void *)&((event)->name.f8) \ - : ((i) == 9) ? (void *)&((event)->name.f9) \ - : ((i) == 10) ? (void *)&((event)->name.f10) \ - : ((i) == 11) ? (void *)&((event)->name.f11) \ - : ((i) == 12) ? (void *)&((event)->name.f12) \ - : ((i) == 13) ? (void *)&((event)->name.f13)\ - : NULL) - -#define EVENT15_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2) \ - : ((i) == 3) ? (void *)&((event)->name.f3) \ - : ((i) == 4) ? (void *)&((event)->name.f4) \ - : ((i) == 5) ? (void *)&((event)->name.f5) \ - : ((i) == 6) ? (void *)&((event)->name.f6) \ - : ((i) == 7) ? (void *)&((event)->name.f7) \ - : ((i) == 8) ? (void *)&((event)->name.f8) \ - : ((i) == 9) ? (void *)&((event)->name.f9) \ - : ((i) == 10) ? (void *)&((event)->name.f10) \ - : ((i) == 11) ? (void *)&((event)->name.f11) \ - : ((i) == 12) ? (void *)&((event)->name.f12) \ - : ((i) == 13) ? (void *)&((event)->name.f13) \ - : ((i) == 14) ? (void *)&((event)->name.f14)\ - : NULL) - -#define EVENT16_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2) \ - : ((i) == 3) ? (void *)&((event)->name.f3) \ - : ((i) == 4) ? (void *)&((event)->name.f4) \ - : ((i) == 5) ? (void *)&((event)->name.f5) \ - : ((i) == 6) ? (void *)&((event)->name.f6) \ - : ((i) == 7) ? (void *)&((event)->name.f7) \ - : ((i) == 8) ? (void *)&((event)->name.f8) \ - : ((i) == 9) ? (void *)&((event)->name.f9) \ - : ((i) == 10) ? (void *)&((event)->name.f10) \ - : ((i) == 11) ? (void *)&((event)->name.f11) \ - : ((i) == 12) ? (void *)&((event)->name.f12) \ - : ((i) == 13) ? (void *)&((event)->name.f13) \ - : ((i) == 14) ? (void *)&((event)->name.f14) \ - : ((i) == 15) ? (void *)&((event)->name.f15)\ - : NULL) - -#define EVENT17_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2) \ - : ((i) == 3) ? (void *)&((event)->name.f3) \ - : ((i) == 4) ? (void *)&((event)->name.f4) \ - : ((i) == 5) ? (void *)&((event)->name.f5) \ - : ((i) == 6) ? (void *)&((event)->name.f6) \ - : ((i) == 7) ? (void *)&((event)->name.f7) \ - : ((i) == 8) ? (void *)&((event)->name.f8) \ - : ((i) == 9) ? (void *)&((event)->name.f9) \ - : ((i) == 10) ? (void *)&((event)->name.f10) \ - : ((i) == 11) ? (void *)&((event)->name.f11) \ - : ((i) == 12) ? (void *)&((event)->name.f12) \ - : ((i) == 13) ? (void *)&((event)->name.f13) \ - : ((i) == 14) ? (void *)&((event)->name.f14) \ - : ((i) == 15) ? (void *)&((event)->name.f15) \ - : ((i) == 16) ? (void *)&((event)->name.f16)\ - : NULL) - -#define EVENT18_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2) \ - : ((i) == 3) ? (void *)&((event)->name.f3) \ - : ((i) == 4) ? (void *)&((event)->name.f4) \ - : ((i) == 5) ? (void *)&((event)->name.f5) \ - : ((i) == 6) ? (void *)&((event)->name.f6) \ - : ((i) == 7) ? (void *)&((event)->name.f7) \ - : ((i) == 8) ? (void *)&((event)->name.f8) \ - : ((i) == 9) ? (void *)&((event)->name.f9) \ - : ((i) == 10) ? (void *)&((event)->name.f10) \ - : ((i) == 11) ? (void *)&((event)->name.f11) \ - : ((i) == 12) ? (void *)&((event)->name.f12) \ - : ((i) == 13) ? (void *)&((event)->name.f13) \ - : ((i) == 14) ? (void *)&((event)->name.f14) \ - : ((i) == 15) ? (void *)&((event)->name.f15) \ - : ((i) == 16) ? (void *)&((event)->name.f16) \ - : ((i) == 17) ? (void *)&((event)->name.f17)\ - : NULL) - -#define EVENT19_FIELD_PTR(name, event, i) ( \ - ((i) == 0) ? (void *)&((event)->name.f0) \ - : ((i) == 1) ? (void *)&((event)->name.f1) \ - : ((i) == 2) ? (void *)&((event)->name.f2) \ - : ((i) == 3) ? (void *)&((event)->name.f3) \ - : ((i) == 4) ? (void *)&((event)->name.f4) \ - : ((i) == 5) ? (void *)&((event)->name.f5) \ - : ((i) == 6) ? (void *)&((event)->name.f6) \ - : ((i) == 7) ? (void *)&((event)->name.f7) \ - : ((i) == 8) ? (void *)&((event)->name.f8) \ - : ((i) == 9) ? (void *)&((event)->name.f9) \ - : ((i) == 10) ? (void *)&((event)->name.f10) \ - : ((i) == 11) ? (void *)&((event)->name.f11) \ - : ((i) == 12) ? (void *)&((event)->name.f12) \ - : ((i) == 13) ? (void *)&((event)->name.f13) \ - : ((i) == 14) ? (void *)&((event)->name.f14) \ - : ((i) == 15) ? (void *)&((event)->name.f15) \ - : ((i) == 16) ? (void *)&((event)->name.f16) \ - : ((i) == 17) ? (void *)&((event)->name.f17) \ - : ((i) == 18) ? (void *)&((event)->name.f18)\ - : NULL) - - -#else /* EVENT not */ - -#define EVENT0(name) NOOP - -/* - for i in range(1,20): print "#define EVENT%d(name, %s) NOOP" % (i, ", ".join(["p%d" % j for j in range(0, i)])) - */ - -#define EVENT1(name, p0) NOOP -#define EVENT2(name, p0, p1) NOOP -#define EVENT3(name, p0, p1, p2) NOOP -#define EVENT4(name, p0, p1, p2, p3) NOOP -#define EVENT5(name, p0, p1, p2, p3, p4) NOOP -#define EVENT6(name, p0, p1, p2, p3, p4, p5) NOOP -#define EVENT7(name, p0, p1, p2, p3, p4, p5, p6) NOOP -#define EVENT8(name, p0, p1, p2, p3, p4, p5, p6, p7) NOOP -#define EVENT9(name, p0, p1, p2, p3, p4, p5, p6, p7, p8) NOOP -#define EVENT10(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) NOOP -#define EVENT11(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) NOOP -#define EVENT12(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) NOOP -#define EVENT13(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) NOOP -#define EVENT14(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) NOOP -#define EVENT15(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) NOOP -#define EVENT16(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) NOOP -#define EVENT17(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16) NOOP -#define EVENT18(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17) NOOP -#define EVENT19(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18) NOOP - -#endif /* EVENT */ - - -/* C. COPYRIGHT AND LICENSE - * - * Copyright (C) 2001-2002 Ravenbrook Limited . - * All rights reserved. This is an open source license. Contact - * Ravenbrook for commercial licensing options. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * 3. Redistributions in any form must be accompanied by information on how - * to obtain complete source code for this software and any accompanying - * software that uses this software. The source code must either be - * included in the distribution or be available for no more than the cost - * of distribution plus a nominal fee, and must be freely redistributable - * under reasonable conditions. For an executable file, complete source - * code means the source code for all modules it contains. It does not - * include source code for modules or files that typically accompany the - * major components of the operating system on which the executable file - * runs. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR - * PURPOSE, OR NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */