libmgk.h File Reference

Go to the source code of this file.

Classes

struct  __mgk_buffer
union  mgk_scalar
struct  __mgk_value
struct  __mgk_inport
struct  __mgk_outport
struct  __mgk_link
struct  __mgk_mask_trigger
struct  __mgk_node
struct  __mgk_remnode
struct  __mgk_data_packet
struct  __mgk_command_packet
struct  __mgk_buffer_xfer
struct  __mgk_type_info
struct  __mgk_host

Defines

#define TRUE   1
#define FALSE   0
#define min(x, y)   (((x) < (y)) ? (x) : (y))
#define max(x, y)   (((x) > (y)) ? (x) : (y))
#define itemsof(a)   (sizeof(a) / sizeof(a[0]))
#define OBJ_INVALID   0
#define OBJ_HOST   0x45678915
#define OBJ_NODE   0x98759717
#define OBJ_BUFFER   0x75801253
#define OBJ_REMNODE   0x98548775
#define DEFSVC(name)   cmd_##name,
#define DEFSVC(name)
#define DEFSVC(name)
#define MAX_REMCMD_ARGS   8
#define MAX_REMCMD_REPLIES   4
#define __mgk_check_buffer(b)
#define __mgk_check_host(h)
#define __mgk_check_node(n)
#define __mgk_check_remnode(n)
#define __mgk_buffer_header(b)   (((mgk_bufferp)(b)) - 1)
#define __mgk_checked_buffer_header(b)
#define __mgk_free_buffer_header(bh)   __mgk_free_buffer((bh) + 1)

Typedefs

typedef struct __mgk_host mgk_host
typedef struct __mgk_hostmgk_hostp
typedef struct __mgk_node mgk_node
typedef struct __mgk_nodemgk_nodep
typedef struct __mgk_remnode mgk_remnode
typedef struct __mgk_remnodemgk_remnodep
typedef struct __mgk_buffer mgk_buffer
typedef struct __mgk_buffermgk_bufferp
typedef struct __mgk_value mgk_value
typedef struct __mgk_valuemgk_valuep
typedef struct __mgk_port mgk_port
typedef struct __mgk_port * mgk_portp
typedef struct __mgk_inport mgk_inport
typedef struct __mgk_inportmgk_inportp
typedef struct __mgk_outport mgk_outport
typedef struct __mgk_outportmgk_outportp
typedef struct __mgk_link mgk_link
typedef struct __mgk_linkmgk_linkp
typedef struct __mgk_mask_trigger mgk_mask_trigger
typedef struct __mgk_mask_triggermgk_mask_triggerp
typedef struct __mgk_script_def mgk_script_def
typedef struct __mgk_script_def * mgk_script_defp
typedef struct __mgk_command_packet mgk_command_packet
typedef struct
__mgk_command_packet
mgk_command_packetp
typedef struct __mgk_data_packet mgk_data_packet
typedef struct __mgk_data_packetmgk_data_packetp
typedef struct __mgk_buffer_xfer mgk_buffer_xfer
typedef struct __mgk_buffer_xfermgk_buffer_xferp
typedef struct __mgk_type_info mgk_type_info
typedef struct __mgk_type_infomgk_type_infop
typedef unsigned long type_tag

Enumerations

enum  node_status { WAITING, READY, RUNNING }
enum  mgk_remcmd { REMOTE_COMMAND_COUNT }

Functions

void * __mgk_allocate_buffer (unsigned int size)
void * __mgk_copy_buffer (void *buffer)
mgk_error_code __mgk_free_buffer (void *buffer)
mgk_script __mgk_lookup_script (char *name)
char * __mgk_script_name (mgk_script fn)
void __mgk_enqueue (mgk_node *node)
void __mgk_dequeue (mgk_node *node)
mgk_node__mgk_next_node (void)
void __mgk_execute_node (mgk_node *np)
void __mgk_update (mgk_node *node)
void __mgk_free_value (mgk_value *val)
void __mgk_free_value_list (mgk_value *val)
mgk_value__mgk_build_value (void *data, mgk_data_type type)
mgk_value__mgk_copy_value (mgk_value *vp)
mgk_value__mgk_alias_value (mgk_value *vp)
mgk_value__mgk_alias_value_autofree (mgk_value *vp, int *refcnt)
void * __mgk_parse_value (mgk_value *value, mgk_data_type *typep)
void * __mgk_extract_value (mgk_value *value, mgk_data_type *tp, mgk_scalar *sp)
mgk_remnode__mgk_remnode_stub (mgk_host *h, unsigned long ID)
mgk_node__mgk_retrieve_node_by_ID (unsigned long ID)
mgk_node__mgk_locate_node (unsigned int hostidx, unsigned long ID)
int __mgk_remote_call (mgk_host *host, mgk_remcmd cmd, int argc, mgk_value **argv, int rargc, mgk_value **rargv)
void __mgk_remote_propagate (mgk_link *lk)

Variables

mgk_node__mgk_running_node
jmp_buf __mgk_node_abort_context
mgk_node ** __mgk_local_nodes
int __mgk_num_local_nodes
mgk_host__mgk_host_table
mgk_host__mgk_local_host
int __mgk_num_hosts
unsigned long __mgk_tick

Define Documentation

#define __mgk_buffer_header ( b   )     (((mgk_bufferp)(b)) - 1)

Definition at line 311 of file libmgk.h.

#define __mgk_check_buffer ( b   ) 
Value:
(                                       \
  ((b) != NULL) &&                                              \
  (((long)(b) & (sizeof(long) - 1)) == 0) &&                    \
  (((mgk_bufferp)(b))[-1].tag == OBJ_BUFFER)                    \
)

Definition at line 293 of file libmgk.h.

#define __mgk_check_host ( h   ) 
Value:
(                                       \
  ((h) != NULL) && (((mgk_host *)(h))->tag == OBJ_HOST)         \
)

Definition at line 299 of file libmgk.h.

#define __mgk_check_node ( n   ) 
Value:
(                                       \
  ((n) != NULL) && (((mgk_node *)(n))->tag == OBJ_NODE)         \
)

Definition at line 303 of file libmgk.h.

#define __mgk_check_remnode ( n   ) 
Value:
(                               \
  ((n) != NULL) && (((mgk_node *)(n))->tag == OBJ_REMNODE)      \
)

Definition at line 307 of file libmgk.h.

#define __mgk_checked_buffer_header ( b   ) 
Value:

Definition at line 314 of file libmgk.h.

#define __mgk_free_buffer_header ( bh   )     __mgk_free_buffer((bh) + 1)

Definition at line 324 of file libmgk.h.

#define DEFSVC ( name   ) 
Value:
int __mgk_svc_##name(int argc,mgk_value **argv,     \
                                             int rargc,mgk_value **rargv)

Definition at line 199 of file libmgk.h.

#define DEFSVC ( name   ) 
Value:
int __mgk_svc_##name(int argc,mgk_value **argv,     \
                                             int rargc,mgk_value **rargv);

Definition at line 199 of file libmgk.h.

#define DEFSVC ( name   )     cmd_##name,

Definition at line 199 of file libmgk.h.

#define FALSE   0

Definition at line 25 of file libmgk.h.

#define itemsof ( a   )     (sizeof(a) / sizeof(a[0]))

Definition at line 35 of file libmgk.h.

#define max ( x,
 )     (((x) > (y)) ? (x) : (y))

Definition at line 32 of file libmgk.h.

#define MAX_REMCMD_ARGS   8

Definition at line 202 of file libmgk.h.

#define MAX_REMCMD_REPLIES   4

Definition at line 203 of file libmgk.h.

#define min ( x,
 )     (((x) < (y)) ? (x) : (y))

Definition at line 29 of file libmgk.h.

#define OBJ_BUFFER   0x75801253

Definition at line 64 of file libmgk.h.

#define OBJ_HOST   0x45678915

Definition at line 62 of file libmgk.h.

#define OBJ_INVALID   0

Definition at line 61 of file libmgk.h.

#define OBJ_NODE   0x98759717

Definition at line 63 of file libmgk.h.

#define OBJ_REMNODE   0x98548775

Definition at line 65 of file libmgk.h.

#define TRUE   1

Definition at line 22 of file libmgk.h.


Typedef Documentation

typedef struct __mgk_buffer mgk_buffer

Definition at line 43 of file libmgk.h.

Definition at line 53 of file libmgk.h.

Definition at line 53 of file libmgk.h.

typedef struct __mgk_buffer * mgk_bufferp

Definition at line 43 of file libmgk.h.

Definition at line 51 of file libmgk.h.

Definition at line 51 of file libmgk.h.

Definition at line 52 of file libmgk.h.

Definition at line 52 of file libmgk.h.

typedef struct __mgk_host mgk_host

Definition at line 40 of file libmgk.h.

typedef struct __mgk_host * mgk_hostp

Definition at line 40 of file libmgk.h.

typedef struct __mgk_inport mgk_inport

Definition at line 46 of file libmgk.h.

typedef struct __mgk_inport * mgk_inportp

Definition at line 46 of file libmgk.h.

typedef struct __mgk_link mgk_link

Definition at line 48 of file libmgk.h.

typedef struct __mgk_link * mgk_linkp

Definition at line 48 of file libmgk.h.

Definition at line 49 of file libmgk.h.

Definition at line 49 of file libmgk.h.

typedef struct __mgk_node mgk_node

Definition at line 41 of file libmgk.h.

typedef struct __mgk_node * mgk_nodep

Definition at line 41 of file libmgk.h.

typedef struct __mgk_outport mgk_outport

Definition at line 47 of file libmgk.h.

typedef struct __mgk_outport * mgk_outportp

Definition at line 47 of file libmgk.h.

typedef struct __mgk_port mgk_port

Definition at line 45 of file libmgk.h.

typedef struct __mgk_port * mgk_portp

Definition at line 45 of file libmgk.h.

typedef struct __mgk_remnode mgk_remnode

Definition at line 42 of file libmgk.h.

typedef struct __mgk_remnode * mgk_remnodep

Definition at line 42 of file libmgk.h.

typedef struct __mgk_script_def mgk_script_def

Definition at line 50 of file libmgk.h.

typedef struct __mgk_script_def * mgk_script_defp

Definition at line 50 of file libmgk.h.

Definition at line 54 of file libmgk.h.

typedef struct __mgk_type_info * mgk_type_infop

Definition at line 54 of file libmgk.h.

typedef struct __mgk_value mgk_value

Definition at line 44 of file libmgk.h.

typedef struct __mgk_value * mgk_valuep

Definition at line 44 of file libmgk.h.

typedef unsigned long type_tag

Definition at line 60 of file libmgk.h.


Enumeration Type Documentation

enum mgk_remcmd
Enumerator:
REMOTE_COMMAND_COUNT 

Definition at line 184 of file libmgk.h.

Enumerator:
WAITING 
READY 
RUNNING 

Definition at line 142 of file libmgk.h.


Function Documentation

mgk_value* __mgk_alias_value ( mgk_value vp  ) 

Definition at line 153 of file value.c.

mgk_value* __mgk_alias_value_autofree ( mgk_value vp,
int *  refcnt 
)

Definition at line 178 of file value.c.

void* __mgk_allocate_buffer ( unsigned int  size  ) 

BUFFER.C ----- buffer management

Definition at line 11 of file buffer.c.

mgk_value* __mgk_build_value ( void *  data,
mgk_data_type  type 
)

Definition at line 20 of file value.c.

void* __mgk_copy_buffer ( void *  buffer  ) 

Definition at line 48 of file buffer.c.

mgk_value* __mgk_copy_value ( mgk_value vp  ) 

Definition at line 145 of file value.c.

void __mgk_dequeue ( mgk_node node  ) 

Definition at line 40 of file sched.c.

void __mgk_enqueue ( mgk_node node  ) 

Definition at line 22 of file sched.c.

void __mgk_execute_node ( mgk_node np  ) 

EXECUTE.C ---- run a node

Definition at line 9 of file execute.c.

void* __mgk_extract_value ( mgk_value value,
mgk_data_type tp,
mgk_scalar sp 
)

Definition at line 203 of file value.c.

mgk_error_code __mgk_free_buffer ( void *  buffer  ) 

Definition at line 76 of file buffer.c.

void __mgk_free_value ( mgk_value val  ) 

Definition at line 245 of file value.c.

void __mgk_free_value_list ( mgk_value val  ) 

Definition at line 273 of file value.c.

mgk_node* __mgk_locate_node ( unsigned int  hostidx,
unsigned long  ID 
)

Definition at line 574 of file build.c.

mgk_script __mgk_lookup_script ( char *  name  ) 

Definition at line 42 of file script.c.

mgk_node* __mgk_next_node ( void   ) 

Definition at line 52 of file sched.c.

void* __mgk_parse_value ( mgk_value value,
mgk_data_type typep 
)

Definition at line 131 of file value.c.

mgk_remnode* __mgk_remnode_stub ( mgk_host h,
unsigned long  ID 
)

Definition at line 552 of file build.c.

int __mgk_remote_call ( mgk_host host,
mgk_remcmd  cmd,
int  argc,
mgk_value **  argv,
int  rargc,
mgk_value **  rargv 
)

Definition at line 31 of file init.c.

void __mgk_remote_propagate ( mgk_link lk  ) 

Definition at line 41 of file init.c.

mgk_node* __mgk_retrieve_node_by_ID ( unsigned long  ID  ) 

Definition at line 538 of file build.c.

char* __mgk_script_name ( mgk_script  fn  ) 

Definition at line 54 of file script.c.

void __mgk_update ( mgk_node np  ) 

UPDATE.C ---- figure out node's schedulability

Definition at line 8 of file update.c.


Variable Documentation

Definition at line 20 of file init.c.

Definition at line 21 of file init.c.

Definition at line 14 of file build.c.

Definition at line 19 of file init.c.

Definition at line 22 of file init.c.

Definition at line 15 of file build.c.

Definition at line 18 of file init.c.

unsigned long __mgk_tick

SCHED.C ----- dataflow node scheduler

Definition at line 11 of file sched.c.

Generated on Thu May 30 15:42:57 2013 for GME by  doxygen 1.6.3