home *** CD-ROM | disk | FTP | other *** search
- /*
- * Aes shel library interface
- *
- * shel_read identify involing command
- * shel_write tell aes to run another app.
- * shel_find find a file in path
- * shel_envrn search environment for param
- * shel_get read from aes shel buffer
- * shel_put write to aes shel buffer
- *
- * ++jrb bammi@cadence.com
- * modified: mj -- ntomczak@vm.ucs.ualberta.ca
- */
- #include "common.h"
-
- #ifdef __DEF_ALL__
-
- #define L_shel_rea
- #define L_shel_wri
- #define L_shel_fin
- #define L_shel_env
- #define L_shel_get
- #define L_shel_put
-
- #endif /* __DEF_ALL__ */
-
-
- #ifdef L_shel_rea
-
- /* identify invoking command
- * returns 0 on erorr >0 no error
- */
- int shel_read(char *Command, char *Tail)
- {
- _addrin[0] = Command;
- _addrin[1] = Tail;
- return __aes__(AES_CONTROL_ENCODE(120, 0, 1, 2));
- }
- #endif /* L_shel_rea */
-
- #ifdef L_shel_wri
-
- /* tell aes whether to run another app, and if so which one
- * returns = 0 on error >0 no error
- */
- int shel_write(int Exit, int Graphic, int Aes, char *Command, char *Tail)
- {
- _int_in[0] = Exit; /* exit to DESKTOP = 0, = 1 run another */
- _int_in[1] = Graphic; /* graphical ap = 1, = 0 tos ap */
- _int_in[2] = Aes; /* aes appl - currently ignored */
-
- _addrin[0] = Command; /* filename */
- _addrin[1] = Tail; /* command tail : count|args */
-
- return __aes__(AES_CONTROL_ENCODE(121, 3, 1, 2));
- }
- #endif /* L_shel_wri */
-
- #ifdef L_shel_fin
-
- /* search for filename
- * returns 0 on error >0 no error
- */
- int shel_find(char *buf) /* i/o param */
- {
- _addrin[0] = buf;
- return __aes__(AES_CONTROL_ENCODE(124, 0, 1, 1));
- }
- #endif /* L_shel_fin */
-
- #ifdef L_shel_env
-
- /* search env
- * returns reserved value
- */
- int shel_envrn(char *result, char *param)
- {
- _addrin[0] = result; /* addr of byte following param stored here */
- _addrin[1] = param;
-
- return __aes__(AES_CONTROL_ENCODE(125, 0, 1, 2));
- }
- #endif /* L_shel_env */
-
- #ifdef L_shel_get
-
- /* read upto 1024 bytes from aes internal shel buffer
- * currently the desktop stores desktop.inf in this buffer
- *
- * returns 0 on error, > 0 no error
- */
- int shel_get(char *Buf, int Len)
- {
- _addrin[0] = Buf;
- _int_in[0] = Len;
-
- return __aes__(AES_CONTROL_ENCODE(122, 1, 1, 1));
- }
- #endif /* L_shel_get */
-
- #ifdef L_shel_put
-
- /* write upto 1024 bytes from to internal shel buffer
- * currently the desktop stores desktop.inf here, writing to
- * it will flush that out
- *
- * returns 0 on error, > 0 no error
- */
- int shel_put(char *Buf, int Len)
- {
- _addrin[0] = Buf;
- _int_in[0] = Len;
-
- return __aes__(AES_CONTROL_ENCODE(123, 1, 1, 1));
- }
- #endif /* L_shel_put */
-
- /* -eof- */
-