root/src/dps8/dps8_sys.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * vim: filetype=c:tabstop=4:ai:expandtab
   3  * SPDX-License-Identifier: ICU
   4  * scspell-id: 0538414e-f62f-11ec-8915-80ee73e9b8e7
   5  *
   6  * ---------------------------------------------------------------------------
   7  *
   8  * Copyright (c) 2007-2013 Michael Mondy
   9  * Copyright (c) 2012-2016 Harry Reed
  10  * Copyright (c) 2013-2022 Charles Anthony
  11  * Copyright (c) 2021-2023 The DPS8M Development Team
  12  *
  13  * All rights reserved.
  14  *
  15  * This software is made available under the terms of the ICU
  16  * License, version 1.8.1 or later.  For more details, see the
  17  * LICENSE.md file at the top-level directory of this distribution.
  18  *
  19  * ---------------------------------------------------------------------------
  20  */
  21 
  22 #ifndef _DPS8_SYS_H
  23 # define _DPS8_SYS_H
  24 
  25 # include <uv.h>
  26 # include "uvutil.h"
  27 
  28 // System-wide info and options not tied to a specific CPU, IOM, or SCU
  29 typedef struct
  30   {
  31     // Delay times are in cycles; negative for immediate
  32     struct
  33       {
  34         int connect;    // Delay between CIOC instr & connect channel operation
  35         //int chan_activate;  // Time for a list service to send a DCW
  36         //int boot_time; // delay between CPU start and IOM starting boot process
  37         //int terminate_time; // delay between CPU start and IOM starting boot process
  38       } iom_times;
  39     // struct {
  40         // int read;
  41         // int xfer;
  42     // } mt_times;
  43     // bool warn_uninit; // Warn when reading uninitialized memory
  44 
  45     bool no_color;
  46     uint sys_poll_interval; // Polling interval in milliseconds
  47     uint sys_slow_poll_interval; // Polling interval in polling intervals
  48     uint sys_poll_check_rate; // Check for pooling interval rate in CPU cycles
  49 } sysinfo_t;
  50 
  51 # ifdef DBGEVENT
  52 #  define max_dbgevents 128u
  53 #  define dbgevent_tagsize 128
  54 struct dbgevent_t
  55   {
  56     word15 segno;
  57     word18 offset;
  58     bool t0;
  59     char tag[dbgevent_tagsize];
  60   };
  61 
  62 extern uint n_dbgevents;
  63 extern struct dbgevent_t dbgevents[max_dbgevents];
  64 extern struct timespec dbgevent_t0;
  65 int dbgevent_lookup (word15 segno, word18 offset);
  66 # endif
  67 
  68 extern vol word36 * M;  //-V707
  69 extern sysinfo_t sys_opts;
  70 extern uint64 sim_deb_start;
  71 extern uint64 sim_deb_stop;
  72 extern uint64 sim_deb_break;
  73 # define DEBUG_SEGNO_LIMIT 1024
  74 extern bool sim_deb_segno_on;
  75 extern bool sim_deb_segno[DEBUG_SEGNO_LIMIT];
  76 # define NO_SUCH_RINGNO ((uint64) -1ll)
  77 extern uint64 sim_deb_ringno;
  78 extern uint64 sim_deb_skip_limit;
  79 extern uint64 sim_deb_mme_cntdwn;
  80 extern uint64 sim_deb_skip_cnt;
  81 extern bool sim_deb_bar;
  82 extern DEVICE *sim_devices[];
  83 extern uint dbgCPUMask;
  84 extern bool breakEnable;
  85 
  86 char * lookup_address (word18 segno, word18 offset, char * * compname, word18 * compoffset);
  87 void list_source (char * compname, word18 offset, uint dflag);
  88 //t_stat computeAbsAddrN (word24 * absAddr, int segno, uint offset);
  89 
  90 t_stat brkbrk (int32 arg, const char * buf);
  91 extern int32 luf_flag;
  92 
  93 #endif

/* [previous][next][first][last][top][bottom][index][help] */