Changeset 3203 for trunk/Ohana/src/opihi/include/pcontrol.h
- Timestamp:
- Feb 12, 2005, 9:34:34 AM (21 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/include/pcontrol.h (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/include/pcontrol.h
r3187 r3203 7 7 # include <sys/wait.h> 8 8 9 /** pcontrol global data **/ 9 typedef struct timeval Ptime; 10 typedef unsigned long long IDtype; 10 11 11 12 /** job status values **/ 12 enum {13 typedef enum { 13 14 PCONTROL_JOB_PENDING, 14 15 PCONTROL_JOB_BUSY, 15 16 PCONTROL_JOB_EXIT, 16 17 PCONTROL_JOB_CRASH, 18 PCONTROL_JOB_HUNG, 19 PCONTROL_JOB_DONE, 17 20 } JobStat; 18 21 19 22 /** job status values **/ 20 enum {23 typedef enum { 21 24 PCONTROL_JOB_ANYHOST, 22 25 PCONTROL_JOB_WANTHOST, 23 PCONTROL_JOB_NEEDHOST, 26 PCONTROL_JOB_NEEDHOST, 24 27 } JobMode; 25 28 26 29 /** host status values **/ 27 enum {30 typedef enum { 28 31 PCONTROL_HOST_IDLE, 29 32 PCONTROL_HOST_BUSY, 30 33 PCONTROL_HOST_DOWN, 34 PCONTROL_HOST_DONE, 31 35 PCONTROL_HOST_OFF, 32 36 } HostStat; 37 38 /* stack special positions */ 39 typedef enum { 40 STACK_TOP = 0, 41 STACK_BOTTOM = -1, 42 } StackWhere; 43 44 typedef enum { 45 PCLIENT_HUNG = -1, 46 PCLIENT_DOWN = 0, 47 PCLIENT_GOOD = 1, 48 } PclientStat; 33 49 34 50 typedef struct { … … 49 65 } Fifo; 50 66 51 typedef struct timeval Ptime;52 53 67 /* data to define a job */ 54 68 typedef struct { 55 int argc; 56 char **argv; 57 char *hostname; 58 int exitstatus; 59 JobMode mode; 60 JobStat status; 61 IOBuffer stdin; 62 IOBuffer stdout; 63 IOBuffer stderr; 64 Ptime start; 65 Ptime accum; 66 Ptime timer; 69 int argc; 70 char **argv; 71 char *hostname; 72 int exit_status; 73 int Reset; 74 JobMode mode; 75 JobStat state; 76 JobStat stack; 77 IOBuffer stdout; 78 IOBuffer stderr; 79 Ptime start; 80 Ptime accum; 81 Ptime timer; 67 82 struct Host *host; 68 int pid;69 IDtype JobID;83 int pid; 84 IDtype JobID; 70 85 } Job; 71 86 72 87 /* data to define a host machine */ 73 88 typedef struct { 74 char *hostname; 75 int stdin; 76 int stdout; 77 int stderr; 78 int markoff; 79 HostStat status; 80 Ptime start; 81 Ptime accum; 82 Ptime timer; 89 char *hostname; 90 int stdin; 91 int stdout; 92 int stderr; 93 int markoff; 94 int pid; 95 HostStat stack; 96 Ptime start; 97 Ptime accum; 98 Ptime timer; 99 IDtype HostID; 83 100 struct Job *job; 84 101 } Host; … … 88 105 int Nobject; 89 106 int NOBJECT; 90 } Queue;107 } Stack; 91 108 109 /* these should be loaded from ConfigInit or from opihi variables */ 92 110 static char *CONNECT; /* connection method (ssh, rsh, etc) */ 93 111 static char *PCLIENT; /* shell on remote host (eg, pclient) */ 112 113 # define FREE(X) if (X != NULL) { free (X); } 114 # define CLOSE(FD) { if (FD) close (FD); FD = 0; } 94 115 95 116 /** IOBuffers allow the following operations (see pclient.h) **/ … … 99 120 void FreeIOBuffer (IOBuffer *buffer); 100 121 101 # define FREE(X) if (X != NULL) { free (X); } 102 103 enum { 104 QUEUE_TOP = 0, 105 QUEUE_BOTTOM = -1, 106 } QueueWhere; 107 122 void *GetStack (Stack *stack, int where); 123 int PutStack (Stack *stack, int where, void *object); 124 Stack *InitStack (); 125 Stack *GetHostStack (int StackID); 126 int PutHost (Host *host, int StackID, int where); 127 Host *GetHost (int StackID, int where); 128 int FindHost (IDtype HostID, int StackID); 129 int FindNamedHost (char *name, int StackID); 130 void AddHost (char *hostname); 131 void DownHost (Host *host); 132 void DelHost (Host *host); 133 int CheckSystem (); 134 int CheckBusyJobs (); 135 int CheckDoneJobs (); 136 int CheckDoneHosts (); 137 int CheckLiveHosts (); 138 int CheckDownHosts (); 139 int CheckIdleHosts (); 140 int CheckIdleHost (Host *host); 141 void InitIDs (); 142 IDtype NextJobID (); 143 IDtype NextHostID (); 144 void PrintID (FILE *f, IDtype ID); 145 int CheckBusyJob (Job *job); 146 int StartHost (Host *host); 147 int CheckDoneHost (Host *host); 148 int CheckDoneJob (Job *job); 149 int GetJobOutput (Job *job, char *channel); 150 int ResetJob (Job *job); 151 int PclientCommand (Host *host, char *command, IOBuffer *buffer); 152 int rconnect (char *command, char *hostname, char *shell, int *stdio); 153 int CheckHost (Host *host); 154 char *memstr (char *m1, char *m2, int n); 155 Stack *GetJobStack (int StackID); 156 int PutJob (Job *job, int StackID, int where); 157 Job *GetJob (int StackID, int where); 158 int FindJob (IDtype JobID, int StackID); 159 IDtype AddJob (char *hostname, JobMode mode, int timeout, int argc, char **argv); 160 void KillJob (Job *job); 161 void DelJob (Job *job); 162 Host *UnlinkJobAndHost (Job *job); 163 void LinkJobAndHost (Job *job, Host *host);
Note:
See TracChangeset
for help on using the changeset viewer.
