Additional debug informations
[vlp.git] / src / int / cint.c
index 222bf22c1f8a723762f300d01283a09b097bc333..300c83ee3827d31aed4aaf29dc59304f7fb8eda8 100644 (file)
@@ -1,5 +1,3 @@
-
 #include "depend.h"
 #include "genint.h"
 #include "int.h"
@@ -13,7 +11,7 @@
 #include <arpa/inet.h>
 #include <errno.h>
 #include <netdb.h>
-#include <qthread.h>
+// #include <qthread.h>
 
 #ifndef NO_PROTOTYPES
 static void load(char *);
@@ -25,7 +23,10 @@ static void initiate();
 int main();
 #endif
 
-
+/**
+ * @file
+ * @brief Compiler and interpreter code
+ */
 
 int internal_sock, graph_sock, net_sock, connected = 0;
 struct sockaddr_un svr;
@@ -93,6 +94,7 @@ static void load(char *_filename)
                abend("Memory size too large (use /m option)\n");
 
        addext(filename, ".ccd");
+       fprintf(stderr, "logint: Reading static data from %s file\n", filename);
        if ((fp = fopen(filename, BINARYREAD)) == NULL) {
                fprintf(stderr, "Cannot open .ccd file\n");
                endrun(10);
@@ -109,6 +111,7 @@ static void load(char *_filename)
                ic += n;
                left -= n;
        } while (n != 0);
+       fprintf(stderr, "logint: Static data from %s file has been read\n", filename);
        /* now ic = number of words read */
 
        fclose(fp);
@@ -128,6 +131,7 @@ static void load(char *_filename)
 
        /* Read prototypes from .pcd file */
        addext(filename, ".pcd");
+       fprintf(stderr, "logint: Reading prototypes from %s file\n", filename);
        if ((fp = fopen(filename, BINARYREAD)) == NULL) {
                fprintf(stderr,"Cannot open .pcd file\n");
                endrun(10); 
@@ -142,6 +146,7 @@ static void load(char *_filename)
                        abend("Cannot read .pcd file\n");
        }
        fclose(fp);
+       fprintf(stderr, "logint: Prototypes from: %s file has been read\n", filename);
 
        /* Open trace file */
        if (debug) {
@@ -154,6 +159,12 @@ static void load(char *_filename)
 /**
  * Establishes configuration parameters
  * Creates two sockets for program run
+ *
+ * @param argc number of passed values in argv array
+ * @param argv[1] 
+ * @param argv[2] 
+ * @param argv[3] if value is equal to: "r", sets global #remote variable to
+ *               TRUE, FALSE otherwise
  */
 static void initiate(int argc, char **argv)
 {
@@ -189,6 +200,7 @@ static void initiate(int argc, char **argv)
        svr.sun_family = AF_UNIX;
        strcpy(svr.sun_path, mynname);
        len = strlen(svr.sun_path) + sizeof(svr.sun_family);
+       fprintf(stderr, "logint: Binding to socket: %s\n", svr.sun_path);
        bind(sock, (struct sockaddr*)&svr, len);
        listen(sock, 5);
 
@@ -205,13 +217,14 @@ static void initiate(int argc, char **argv)
        strcpy(svr.sun_path, argv[1]);
        strcpy(mykname, argv[1]);
        len = strlen(svr.sun_path) + sizeof(svr.sun_family);
+       fprintf(stderr, "logint: Connecting to socket: %s\n", svr.sun_path);
        i = connect(internal_sock, (struct sockaddr*)&svr, len);
 
        if (i==0) {
                fcntl(internal_sock,F_SETFL, O_NONBLOCK |
                                                fcntl(internal_sock,F_GETFL,0));
        }
-       else
+       else {
                while (i!=0) {
                        close(internal_sock);
                        internal_sock = socket(AF_UNIX, SOCK_STREAM, 0);
@@ -219,6 +232,7 @@ static void initiate(int argc, char **argv)
                                        fcntl(internal_sock, F_GETFL, 0));
                        i = connect(internal_sock, (struct sockaddr*)&svr, len);
                }
+       }
        on = 1;
        setsockopt(internal_sock, IPPROTO_TCP, TCP_NODELAY, (char*)&on,
                                                                sizeof(on));
@@ -240,16 +254,19 @@ static void initiate(int argc, char **argv)
        close(sock);
 
        /* load code and prototypes */
-       if (filename != NULL)
+       if (filename != NULL) {
+               fprintf(stderr, "logint: loading code: %s\n", filename);
                load(filename);
-       else
+       }
+       else {
                usage();
+       }
 }
 
 /**
  *
  */
-void decode(){
+void decode() {
        extopcode *eop;
 
        /* pointer to extended opcode in M */
@@ -295,6 +312,7 @@ int read_from_graph(G_MESSAGE *msg)
 
 /**
  * Reads message from net module.
+ *
  * @param msg Message to read.
  */
 int read_from_net(MESSAGE *msg)
@@ -315,7 +333,7 @@ int read_from_net(MESSAGE *msg)
 }
 
 
-/** 
+/**
  * Gets graphic resource number
  */
 int get_graph_res()
@@ -378,6 +396,9 @@ void writeln_str(char *s)
 
 /**
  * Writes string
+ *
+ * Passed string is send to graph module by G_MESSAGE packet using send_to_graph
+ *
  * @param s String to write
  */
 void write_str(char *s)
@@ -392,6 +413,9 @@ void write_str(char *s)
 
 /**
  * Writes char
+ *
+ * Passed char is send to graph module by G_MESSAGE packet using send_to_graph
+ *
  * @param a Character to write
  */
 void write_char(char a)
@@ -728,7 +752,9 @@ void request_id()
        send_to_graph(&m1);
 }
 
-
+/**
+ * Sends MESSAGE
+ */
 void send_ready()
 {
        int sock, len;
@@ -771,23 +797,29 @@ void send_ready()
  *     strcpy(filename, argv[2]);
  *     strcpy(ProgName, argv[2]);
  *
- * argv[1] = base name of this interpreter instance.
+ * @param argv[1] = base name of this interpreter instance.
  *           For network there is created argv[1].net socket
  *           For graphics there is created argv[1].gr socket
- * argv[2] = up to 80 characters string (with terminating \0). It is used to
+ * @param argv[2] = up to 80 characters string (with terminating \0). It is used to
  *           load selected program
- * argv[3] = if exists and is equal to 'r', this is a remote call
+ * @param argv[3] = if exists and is equal to 'r', this is a remote call
  */
 int main(int argc, char **argv)
 {
+       fprintf(stderr, "logint: initializing\n");
        /* initialize executor */
        initiate(argc, argv);
        /* initialize running system */
+       fprintf(stderr, "logint: runsys\n");
        runsys();
+       fprintf(stderr, "logint: initializing scheduler\n");
        init_scheduler();
+       fprintf(stderr, "logint: acquiring GRAPH resource\n");
        GraphRes = get_graph_res();
-       if (GraphRes < 0)
+       if (GraphRes < 0) {
+               fprintf(stderr, "logint:  > acquiring GRAPH resource failed\n");
                exit(12);
+       }
 
        request_id();
        if (remote)