Go to the documentation of this file.00001
00033 #ifndef _VSH_H_
00034 #define _VSH_H_
00035
00036 #include <maloc/maloc_base.h>
00037
00038 #include <maloc/vsys.h>
00039
00040
00041
00042
00043
00044
00045
00048 typedef struct Vsh {
00049
00050 Vmem *vmem;
00051 int iMadeVmem;
00053 char processArgs;
00055 int envValuLen;
00056 int envInfoLen;
00057 char **envValu;
00058 char **envInfo;
00060 FILE *inUnit;
00061 FILE *scUnit;
00062 FILE *clUnit;
00063 FILE *cinUnit;
00064 char cinName[VMAX_ARGLEN];
00066 char PR[VMAX_ARGLEN];
00067 char PR_PATH[VMAX_ARGLEN];
00068 char PR_EXIT[VMAX_ARGLEN];
00070 int cmdKey;
00071 void *Ext_thee;
00073 char *buf;
00074 int bufsize;
00077 int (*Ext_builtin)(void *thee, int argc, char **argv);
00078
00079 } Vsh;
00080
00081
00082
00083
00084
00085
00086
00087 #if !defined(VINLINE_MALOC)
00088 #else
00089 #endif
00090
00091
00093 VEXTERNC Vsh* Vsh_ctor(Vmem *vmem, int argc, char **argv);
00095 VEXTERNC void Vsh_dtor(Vsh **thee);
00096
00098 VEXTERNC int Vsh_shell(Vsh *thee, char *pPR, void *pthee,
00099 int (*builtin)(void *thee, int argc, char **argv));
00100
00102 VEXTERNC int Vsh_putenv(Vsh *thee, const char *envi, const char *valu);
00104 VEXTERNC int Vsh_putenvInfo(Vsh *thee, const char *envi, const char *valu);
00106 VEXTERNC int Vsh_putenvInt(Vsh *thee, const char *envi, const int valu);
00108 VEXTERNC int Vsh_putenvReal(Vsh *thee, const char *envi, const double valu);
00109
00111 VEXTERNC char *Vsh_getenv(Vsh *thee, const char *envi);
00113 VEXTERNC char *Vsh_getenvInfo(Vsh *thee, const char *envi);
00115 VEXTERNC int Vsh_getenvInt(Vsh *thee, const char *envi);
00117 VEXTERNC double Vsh_getenvReal(Vsh *thee, const char *envi);
00118
00120 VEXTERNC void Vsh_remove(Vsh *thee, const char *envi);
00122 VEXTERNC void Vsh_wipe(Vsh *thee);
00123
00125 VEXTERNC void Vsh_memChk(Vsh *thee);
00126
00128 VEXTERNC Vio *Vsh_ioSetup(Vsh *thee, char *key);
00130 VEXTERNC void Vsh_ioCleanup(Vsh *thee, Vio **sock);
00131
00132 #endif
00133