home *** CD-ROM | disk | FTP | other *** search
- /*
- * main program to test gms server
- * by Aaron Wohl (aw0g+@andrew.cmu.edu) jul 1990
- * Carnegie-Mellon University
- * Special Projects
- * Pittsburgh, PA 15213-3890
- * (412)-268-5032
- */
-
- #include <stdio.h>
- #include <string.h>
-
- #define NIL 0L
-
- #include "mmc_core.h"
- #include "mmc_drvr_find.h"
- #include "mmc_drvr_install.h"
- #include "mmc_print_state.h"
- #include "mmc_prep.h"
- #include "mmc_macmail.h"
-
- #define fatal_error(xx_arg) {printf xx_arg;fflush(stdout);exit(0);}
- extern void exit(int);
-
- struct {
- int drvr_refnum;
- int drvr_res_file;
- }gl;
-
- char get_cmd(void);
- char get_cmd()
- {
- char buf[100];
- printf("mmc> ");
- if(gets(buf)==NIL)
- return 0;
- return buf[0];
- }
-
- void get_state(void);
- void get_state()
- {
- mmc_state s;
- int err=mmc_get_drvr_state(gl.drvr_refnum,&s);
- printf("getstate error code = %d\n",err);
- if(err!=0)
- return;
- mmc_print_state(&s);
- }
-
- void mmc_start(void);
- void mmc_start()
- {
- int err;
- mmc_state s;
- mmc_invent_state(&s);
- #ifdef RUBBISH
- TURN_ON_FLAGS(s,MCS_debug);
- #endif
- err=mmc_set_drvr_state(gl.drvr_refnum,&s,MMC_set_state);
- mmc_print_state(&s);
- printf("init error code = %d\n",err);
- }
-
- void mmc_close(void);
- void mmc_close()
- {
- int err;
- err=CloseDriver(gl.drvr_refnum);
- printf("close error code = %d\n",err);
- }
-
- void poke_in_drvr(void);
- void poke_in_drvr()
- {
- int old_res_file;
- int err;
- old_res_file=CurResFile(); /*remember so we can put current resource file back*/
- gl.drvr_res_file=OpenResFile("\pmmc_init.prj.rsrc"); /*open the device driver resource file*/
- if(gl.drvr_res_file== -1) /*find the resource file?*/
- fatal_error(("can't open resource file mmc_init.prj.rsrc file %d",ResError()));
- UseResFile(gl.drvr_res_file); /*may already be open, search it*/
- err=mmc_drvr_find_or_install(&gl.drvr_refnum);
- if(err==0)
- err=OpenDriver(MMC_name,&gl.drvr_refnum);
- UseResFile(old_res_file); /*go back to the normal resource file*/
- printf("driver refnum is %d err=%d\n",gl.drvr_refnum,err);
- }
-
- void cmd_loop(void);
- void cmd_loop()
- {
- while(TRUE) {
- char ch=get_cmd();
- switch(ch) {
- case 'q':
- return;
- break;
- case 'i':
- poke_in_drvr();
- break;
- case 's': /*start driver*/
- mmc_start();
- break;
- case 'm':
- mmc_macmail(MMC_inhibit,"\pjs5l");
- break;
- case 'o':
- mmc_macmail(MMC_normal,"\pjs5l");
- break;
- case 'g':
- get_state();
- break;
- case 'c':
- mmc_close();
- break;
- default:
- printf("unrecignized command '%c'\n",ch);
- }
- }
- }
-
- void print_status(void);
- void print_status()
- {
- int new_ref_num;
- gl.drvr_refnum=mmc_drvr_find(MMC_name,&new_ref_num);
- printf("found ref=%d new ref=%d\n",gl.drvr_refnum,new_ref_num);
- }
-
- int main()
- {
- printf("mmc test client test jig built on %s %s\n",__DATE__,__TIME__);
- print_status();
- cmd_loop();
- }
-