From 6b3075d90d945d5e7e8fd4d28284ffd99dbeb82e Mon Sep 17 00:00:00 2001 From: Shinya Sato Date: Fri, 24 Sep 2021 16:42:54 +0900 Subject: v0.4.1 --- src/mytype.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/mytype.h (limited to 'src/mytype.h') 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 -- cgit v1.2.3