
#define START 0
#define SLEEPING 1
#define GETTING_JOB 1
#define PRINTING 2

typedef struct {
  int jobsize;
  int userid;
  int jobid;
} Job;

typedef struct {
  int state;
  int nsofar;
  int nusers;
  int nprinters;
  int arrtime;
  int maxpages;
  int bufsize;
  int nevents;
  int id;
  int starttime;
  Job *j;
  void *v;
} Spq;


extern void initialize_v(Spq *);

extern void submit_job(/* Spq *, Job *, cont-func, cont-arg */); 

extern get_print_job(/* Spq *, cont-func, cont-arg */);

