Diff for /freem/src/init.c between versions 1.12 and 1.14

version 1.12, 2025/04/15 14:39:06 version 1.14, 2025/04/20 03:13:17
Line 24 Line 24
  *   along with FreeM.  If not, see <https://www.gnu.org/licenses/>.   *   along with FreeM.  If not, see <https://www.gnu.org/licenses/>.
  *   *
  *   $Log$   *   $Log$
    *   Revision 1.14  2025/04/20 03:13:17  snw
    *   Updates to init_execution_context
    *
    *   Revision 1.13  2025/04/17 14:34:27  snw
    *   Further logging improvements
    *
  *   Revision 1.12  2025/04/15 14:39:06  snw   *   Revision 1.12  2025/04/15 14:39:06  snw
  *   Further improvements to logging   *   Further improvements to logging
  *   *
Line 169  void init_mwapi(void); Line 175  void init_mwapi(void);
 short init (char *namespace_name)   short init (char *namespace_name) 
 {  {
     short retval;      short retval;
       int log_level;
       
     init_log ();      init_log ();
     init_process ();      init_process ();
     init_devtable ();      init_devtable ();
Line 194  short init (char *namespace_name) Line 201  short init (char *namespace_name)
   
     if (retval == SHMS_GET_ERR) {      if (retval == SHMS_GET_ERR) {
         if (errno != 13) {          if (errno != 13) {
             fprintf (stderr, "init:  error initializing shared memory [errno %d]\r\n", errno);              logprintf (FM_LOG_FATAL, "init:  error initializing shared memory (error code %d [%s])", errno, strerror (errno));
         }          }
         else {          else {
             fprintf (stderr, "init:  error attaching to environment -- does your user belong to the group that owns environment '%s'?\r\n", shm_env);              logprintf (FM_LOG_FATAL, "init:  error attaching to environment -- does your user belong to the group that owns environment '%s'?", shm_env);
         }  
         if (run_daemon == FALSE) {  
             set_io (UNIX);  
         }          }
         exit (1);  
     }      }
   
     symtab_init ();      symtab_init ();
Line 211  short init (char *namespace_name) Line 214  short init (char *namespace_name)
     set_namespace (namespace_name, FALSE);      set_namespace (namespace_name, FALSE);
   
     if (first_process) {      if (first_process) {
         fprintf (stderr, "init:  we are the first process in the environment (pid %d)\r\n", pid);          log_level = FM_LOG_INFO;
       }
       else {
           log_level = FM_LOG_DEBUG;
       }
       
       if (first_process) {
           logprintf (log_level, "init:  we are the first process in the environment (pid %d)", pid);
     }      }
   
     if (first_process) fprintf (stderr, "init:  initializing job table\r\n");      logprintf (log_level, "init:  initializing job table");
     jobtab_init ();      jobtab_init ();
   
     if (first_process) fprintf (stderr, "init:  adding job to job table\r\n");      logprintf (log_level, "init:  adding job to job table");
     job_init (FALSE);      job_init (FALSE);
   
     if (first_process) fprintf (stderr, "init:  initializing structured system variables\r\n");      logprintf (log_level, "init:  initializing structured system variables");
     init_ssvn ();      init_ssvn ();
   
     if (first_process) fprintf (stderr, "init:  initializing terminal\r\n");      logprintf (log_level, "init:  initializing terminal");
     init_terminal ();      init_terminal ();
   
     if (first_process) fprintf (stderr, "init:  initializing asynchronous events\r\n");      logprintf (log_level, "init:  initializing asynchronous events");
     evt_init ();      evt_init ();
   
     if (first_process) fprintf (stderr, "init:  initializing debugger\r\n");      logprintf (log_level, "init:  initializing debugger");
     dbg_init ();          dbg_init ();    
   
     if (first_process) fprintf (stderr, "init:  initializing error stack\r\n");      logprintf (log_level, "init:  initializing error stack");
     init_estack();      init_estack();
           
     etrap[0] = EOL;      etrap[0] = EOL;
Line 391  void init_timezone (void) Line 401  void init_timezone (void)
   
     long clock;      long clock;
   
 #ifdef __CYGWIN__  #if defined(__CYGWIN__)
   
     tzset ();                        /* may be required in order   */      tzset ();                        /* may be required in order   */
                                      /* to guarantee _timezone set */                                       /* to guarantee _timezone set */
 #else  #else
Line 480  void init_execution_context (void) Line 489  void init_execution_context (void)
           
     codptr = code;      codptr = code;
     code[0] = EOL;          /* init code_pointer */      code[0] = EOL;          /* init code_pointer */
     partition = calloc ((unsigned) (PSIZE + 2), 1);  
   
     if (partition == NULL) exit (2);            /* could not allocate stuff...     */      if ((partition = calloc ((unsigned) (PSIZE + 2), 1)) == NULL) {
           logprintf (FM_LOG_FATAL, "init_execution_context:  could not allocate symbol table (error code %d [%s])", errno, strerror (errno));
       }
   
     for (i = 0; i < MAXNO_OF_RBUF; i++) {      for (i = 0; i < MAXNO_OF_RBUF; i++) {
         rbuf_flags[i].standard = standard;          rbuf_flags[i].standard = standard;
Line 496  void init_execution_context (void) Line 506  void init_execution_context (void)
     s = &partition[PSIZE] - 256;    /* pointer to symlen_offset        */      s = &partition[PSIZE] - 256;    /* pointer to symlen_offset        */
     argptr = partition;         /* pointer to beg of tmp-storage   */      argptr = partition;         /* pointer to beg of tmp-storage   */
   
     svntable = calloc ((unsigned) (UDFSVSIZ + 1), 1);      if ((svntable = calloc ((unsigned) (UDFSVSIZ + 1), 1)) == NULL) {
     if (svntable == NULL) exit (2);         /* could not allocate stuff...     */          logprintf (FM_LOG_FATAL, "init_execution_context:  could not allocate user-defined ISV table (error code %d [%s])", errno, strerror (errno));
           }    
     svnlen = UDFSVSIZ;          /* begin of udf_svn_table         */      svnlen = UDFSVSIZ;          /* begin of udf_svn_table         */
     buff = calloc ((unsigned) NO_OF_RBUF * (unsigned) PSIZE0, 1);   /* routine buffer pool          */  
     if (buff == NULL) exit (2);         /* could not allocate stuff...     */  
   
       if ((buff = calloc ((unsigned) NO_OF_RBUF * (unsigned) PSIZE0, 1)) == NULL) {
           logprintf (FM_LOG_FATAL, "init_execution_context:  could not allocate routine buffers (error code %d [%s])", errno, strerror (errno));
       }
           
     newstack = calloc ((unsigned) NSIZE, 1);       if ((newstack = calloc ((unsigned) NSIZE, 1)) == NULL) {
     if (newstack == NULL) exit (2);         /* could not allocate stuff...     */          logprintf (FM_LOG_FATAL, "init_execution_context:  could not allocate NEW stack (error code %d [%s])", errno, strerror (errno));
       }
   
     #ifdef DEBUG_NEWPTR      logprintf (FM_LOG_DEBUG, "allocating newptr stack...");
         printf("Allocating newptr stack...\r\n");  
     #endif  
   
     newptr = newstack;      newptr = newstack;
     newlimit = newstack + NSIZE - 1024;      newlimit = newstack + NSIZE - 1024;
           
   
     namstck = calloc ((unsigned) NESTLEVLS * 13, 1);      if ((namstck = calloc ((unsigned) NESTLEVLS * 13, 1)) == NULL) {
     if (namstck == NULL) exit (2);          /* could not allocate stuff...     */          logprintf (FM_LOG_FATAL, "init_execution_context:  could not allocate newptr stack (error code %d [%s])", errno, strerror (errno));
       }
       
     *namstck = EOL;      *namstck = EOL;
     *(namstck + 1) = EOL;      *(namstck + 1) = EOL;
     namptr = namstck;           /* routine name stack pointer       */      namptr = namstck;           /* routine name stack pointer       */
     framstck = calloc ((unsigned) NESTLEVLS * 256, 1);      
     if (framstck == NULL) exit (2);         /* could not allocate stuff...     */      if ((framstck = calloc ((unsigned) NESTLEVLS * 256, 1)) == NULL) {
           logprintf (FM_LOG_FATAL, "init_execution_context:  could not allocate DO frame stack stack (error code %d [%s])", errno, strerror (errno));
       }
   
     *framstck = EOL;      *framstck = EOL;
     *(framstck + 1) = EOL;      *(framstck + 1) = EOL;
     dofrmptr = framstck;        /* DO_frame stack pointer           */      dofrmptr = framstck;        /* DO_frame stack pointer           */
     cmdstack = calloc ((unsigned) NESTLEVLS * 256, 1);  
     if (cmdstack == NULL) exit (2);         /* could not allocate stuff...     */      if ((cmdstack = calloc ((unsigned) NESTLEVLS * 256, 1)) == NULL) {
           logprintf (FM_LOG_FATAL, "init_execution_context:  could not allocate command stack (error code %d [%s])", errno, strerror (errno));
       }
   
     cmdptr = cmdstack;          /* command stack */      cmdptr = cmdstack;          /* command stack */
   

Removed from v.1.12  
changed lines
  Added in v.1.14


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>