* rts.h: Update with missing code.
From-SVN: r22327
This commit is contained in:
parent
e742fecc31
commit
9de92eb5d0
@ -1,3 +1,7 @@
|
||||
Tue Sep 8 10:41:38 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* rts.h: Update with missing code.
|
||||
|
||||
Sun Sep 6 01:30:40 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* allgmem.c: Do not include config.h anymore.
|
||||
|
@ -43,10 +43,109 @@ typedef struct
|
||||
unsigned char /*TaskingEnum*/ type;
|
||||
} TaskingStruct;
|
||||
|
||||
/* how an INSTANCE is implemented */
|
||||
typedef struct
|
||||
{
|
||||
short ptype;
|
||||
short pcopy;
|
||||
} INSTANCE;
|
||||
|
||||
/* interface to underlaying os */
|
||||
typedef enum
|
||||
{
|
||||
wait_wait,
|
||||
wait_buffer_send,
|
||||
wait_buffer_receive,
|
||||
wait_buffer_free,
|
||||
wait_event_delay,
|
||||
wait_event_free,
|
||||
} Delay_Reason;
|
||||
|
||||
extern INSTANCE __whoami ();
|
||||
extern void *__xmalloc_ ();
|
||||
|
||||
#define THIS __whoami()
|
||||
/* for easier changing to something different,
|
||||
i.e. allocate_memory */
|
||||
#define MALLOC(ADDR,SIZE) ADDR = __xmalloc_(SIZE)
|
||||
#define FREE(ADDR) free (ADDR)
|
||||
|
||||
/* definitions for EVENTS */
|
||||
typedef struct EVENTQUEUE
|
||||
{
|
||||
struct EVENTQUEUE *forward; /* next in the list */
|
||||
struct EVENTQUEUE **listhead; /* pointer to EVENT location */
|
||||
int priority; /* prio for DELAY or DELAY CASE */
|
||||
INSTANCE this; /* specify the instance is delayed */
|
||||
struct EVENTQUEUE *startlist; /* start of the list */
|
||||
struct EVENTQUEUE *chain; /* list of all events in an DELAY CASE */
|
||||
int is_continued; /* indicates a continue action on that event */
|
||||
INSTANCE who_continued; /* indicates who continued */
|
||||
} Event_Queue;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
Event_Queue **ev;
|
||||
unsigned long maxqueuelength;
|
||||
} Event_Descr;
|
||||
|
||||
/* definitions for BUFFERS */
|
||||
struct BUFFERQUEUE;
|
||||
|
||||
typedef struct BUFFER_WAIT_QUEUE
|
||||
{
|
||||
struct BUFFER_WAIT_QUEUE *forward;
|
||||
struct BUFFERQUEUE **bufferaddr;
|
||||
INSTANCE this;
|
||||
struct BUFFER_WAIT_QUEUE *startlist;
|
||||
struct BUFFER_WAIT_QUEUE *chain;
|
||||
int is_sent;
|
||||
INSTANCE who_sent; /* instance which have
|
||||
send a buffer */
|
||||
unsigned long datalen;
|
||||
void *dataptr;
|
||||
} Buffer_Wait_Queue;
|
||||
|
||||
typedef struct BUFFER_SEND_QUEUE
|
||||
{
|
||||
struct BUFFER_SEND_QUEUE *forward;
|
||||
int priority;
|
||||
INSTANCE this;
|
||||
int is_delayed;
|
||||
unsigned long datalen;
|
||||
void *dataptr;
|
||||
} Buffer_Send_Queue;
|
||||
|
||||
typedef struct BUFFERQUEUE
|
||||
{
|
||||
Buffer_Wait_Queue *waitqueue;
|
||||
unsigned long waitqueuelength;
|
||||
Buffer_Send_Queue *sendqueue;
|
||||
unsigned long sendqueuelength;
|
||||
} Buffer_Queue;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
Buffer_Queue **buf;
|
||||
unsigned long maxqueuelength;
|
||||
} Buffer_Descr;
|
||||
|
||||
/* descriptor for data */
|
||||
typedef struct
|
||||
{
|
||||
void *ptr;
|
||||
int length;
|
||||
} Data_Descr;
|
||||
|
||||
/* time format runtime delivers */
|
||||
typedef struct
|
||||
{
|
||||
unsigned long secs;
|
||||
unsigned long nanosecs;
|
||||
} RtsTime;
|
||||
|
||||
extern void __rtstime (RtsTime *t);
|
||||
extern int __delay_this (Delay_Reason reason, RtsTime *t, char *file, int lineno);
|
||||
extern void __continue_that (INSTANCE ins, int prio, char *file, int lineno);
|
||||
|
||||
#endif /* __rts_h_ */
|
||||
|
Loading…
x
Reference in New Issue
Block a user