add command line opts, stack check.

This commit is contained in:
Kelvin Sherlock 2012-05-11 21:21:10 -04:00
parent 499df03987
commit ffbc0ad320
2 changed files with 55 additions and 2 deletions

56
main.c
View File

@ -8,6 +8,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <signal.h> #include <signal.h>
#include <unistd.h>
#include <gno/gno.h> #include <gno/gno.h>
@ -16,6 +17,7 @@
int semID = 0; int semID = 0;
Word MyID; Word MyID;
Word QuitFlag; Word QuitFlag;
Word Debug;
#pragma databank 0 #pragma databank 0
void signal_handler(int sig, int code) void signal_handler(int sig, int code)
@ -102,11 +104,60 @@ void ShutDown(word flags, Boolean force, displayPtr fx)
} }
} }
#define VERSION "0.2"
static void version(void)
{
fputs("Marignotti " VERSION "\n", stdout);
}
static void help(void)
{
fputs("Marignotti " VERSION "\n", stdout);
fputs("Marignotti is a TCP driver for GNO/ME 2.0.6\n", stdout);
fputs("Marinetti 3.0b3 or newer is required.\n", stdout);
fputs("\n", stdout);
fputs("Usage: marignotti [-h -d -v]\n", stdout);
fputs("-h show help information.\n", stdout);
fputs("-v show version information.\n", stdout);
fputs("-d increase debug level [Sweet-16 only].\n", stdout);
}
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
int flags; int flags;
int ch;
_beginStackCheck();
Debug = 0;
QuitFlag = 0;
while ((ch = getopt(argc, argv, "dhv")) != EOF)
{
switch (ch)
{
case 'd':
Debug++;
break;
case 'h':
case '?':
help();
return 0;
break;
case 'v':
version();
return 0;
break;
}
}
MyID = MMStartUp(); MyID = MMStartUp();
@ -118,7 +169,6 @@ int main(int argc, char **argv)
InstallNetDriver(driver, 0); InstallNetDriver(driver, 0);
QuitFlag = 0;
signal(SIGQUIT, signal_handler); signal(SIGQUIT, signal_handler);
signal(SIGINT, signal_handler); signal(SIGINT, signal_handler);
@ -136,7 +186,7 @@ int main(int argc, char **argv)
process_table(); process_table();
asm { cop 0x7f } Resched();
} }
InstallNetDriver(NULL, 0); InstallNetDriver(NULL, 0);
@ -146,5 +196,7 @@ int main(int argc, char **argv)
ShutDown(flags, 0, DisplayMessage); ShutDown(flags, 0, DisplayMessage);
_reportStack();
return 0; return 0;
} }

View File

@ -52,6 +52,7 @@ typedef struct Entry {
} Entry; } Entry;
extern Word MyID; extern Word MyID;
extern Word Debug;
typedef struct xsockaddr_in { typedef struct xsockaddr_in {
short sin_family; short sin_family;