CSE320/hw4/include/mush.h
2022-03-27 16:45:17 -04:00

54 lines
1.4 KiB
C

/*
* DO NOT MODIFY THE CONTENTS OF THIS FILE.
* IT WILL BE REPLACED DURING GRADING
*/
#include "syntax.h"
/* Names of special store variables to hold results from job execution. */
#define JOB_VAR "JOB"
#define STATUS_VAR "STATUS"
#define OUTPUT_VAR "OUTPUT"
/*
* If you find it convenient, you may assume that the maximum number of jobs
* that can exist at one time is given by the following preprocessor symbol.
* Your code should continue to work even if the particular value of this
* symbol is changed before compilation.
*/
#define MAX_JOBS 10
/* Functions in program store module. */
int prog_list(FILE *out);
int prog_insert(STMT *stmt);
int prog_delete(int min, int max);
void prog_reset();
STMT *prog_fetch();
STMT *prog_next();
STMT *prog_goto(int lineno);
/* Functions in data store module. */
char *store_get_string(char *var);
int store_get_int(char *var, long *valp);
int store_set_string(char *var, char *val);
int store_set_int(char *var, long val);
void store_show(FILE *f);
/* Functions in execution module. */
int exec_interactive();
int exec_stmt(STMT *stmt);
char *eval_to_string(EXPR *expr);
long eval_to_numeric(EXPR *expr);
/* Functions in jobs module. */
int jobs_init(void);
int jobs_fini(void);
int jobs_run(PIPELINE *pp);
int jobs_expunge(int jobid);
int jobs_wait(int jobid);
int jobs_poll(int jobid);
int jobs_cancel(int jobid);
int jobs_pause(void);
char *jobs_get_output(int jobid);
int jobs_show(FILE *file);