aboutsummaryrefslogtreecommitdiff
path: root/src/mytype.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mytype.h')
-rw-r--r--src/mytype.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/mytype.h b/src/mytype.h
new file mode 100644
index 0000000..7e55a20
--- /dev/null
+++ b/src/mytype.h
@@ -0,0 +1,49 @@
+#ifndef _TYPE_
+#define _TYPE_
+
+typedef unsigned int IDTYPE;
+typedef unsigned long VALUE;
+
+
+typedef struct {
+ IDTYPE id;
+} Basic;
+
+
+#define MAX_PORT 5
+
+#ifndef THREAD
+typedef struct {
+ Basic basic;
+ VALUE port;
+} Name;
+
+typedef struct {
+ Basic basic;
+ VALUE port[MAX_PORT];
+} Agent;
+
+#else
+typedef struct {
+ Basic basic;
+ volatile VALUE port;
+} Name;
+
+typedef struct {
+ Basic basic;
+ volatile VALUE port[MAX_PORT];
+} Agent;
+#endif
+
+
+#define FIXNUM_FLAG 0x01
+#define INT2FIX(i) ((VALUE)(((long)(i) << 1) | FIXNUM_FLAG))
+#define FIX2INT(i) ((int)(i) >> 1)
+#define IS_FIXNUM(i) ((VALUE)(i) & FIXNUM_FLAG)
+
+
+#define AGENT(a) ((Agent *)(a))
+#define BASIC(a) ((Basic *)(a))
+#define NAME(a) ((Name *)(a))
+
+#endif