mirror of
https://github.com/simh/simh.git
synced 2026-04-27 20:38:04 +00:00
ALL: Massive 'const' cleanup
These changes facilitate more robust parameter type checking and helps to identify unexpected coding errors. Most simulators can now also be compiled with a C++ compiler without warnings. Additionally, these changes have also been configured to facilitate easier backporting of simulator and device simulation modules to run under the simh v3.9+ SCP framework.
This commit is contained in:
128
scp.h
128
scp.h
@@ -37,6 +37,10 @@
|
||||
#ifndef SIM_SCP_H_
|
||||
#define SIM_SCP_H_ 0
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* run_cmd parameters */
|
||||
|
||||
#define RU_RUN 0 /* run */
|
||||
@@ -67,40 +71,40 @@
|
||||
|
||||
/* Command processors */
|
||||
|
||||
t_stat reset_cmd (int32 flag, char *ptr);
|
||||
t_stat exdep_cmd (int32 flag, char *ptr);
|
||||
t_stat eval_cmd (int32 flag, char *ptr);
|
||||
t_stat load_cmd (int32 flag, char *ptr);
|
||||
t_stat run_cmd (int32 flag, char *ptr);
|
||||
t_stat reset_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat exdep_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat eval_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat load_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat run_cmd (int32 flag, CONST char *ptr);
|
||||
void run_cmd_message (const char *unechod_cmdline, t_stat r);
|
||||
t_stat attach_cmd (int32 flag, char *ptr);
|
||||
t_stat detach_cmd (int32 flag, char *ptr);
|
||||
t_stat assign_cmd (int32 flag, char *ptr);
|
||||
t_stat deassign_cmd (int32 flag, char *ptr);
|
||||
t_stat save_cmd (int32 flag, char *ptr);
|
||||
t_stat restore_cmd (int32 flag, char *ptr);
|
||||
t_stat exit_cmd (int32 flag, char *ptr);
|
||||
t_stat set_cmd (int32 flag, char *ptr);
|
||||
t_stat show_cmd (int32 flag, char *ptr);
|
||||
t_stat set_default_cmd (int32 flg, char *cptr);
|
||||
t_stat pwd_cmd (int32 flg, char *cptr);
|
||||
t_stat dir_cmd (int32 flg, char *cptr);
|
||||
t_stat type_cmd (int32 flg, char *cptr);
|
||||
t_stat brk_cmd (int32 flag, char *ptr);
|
||||
t_stat do_cmd (int32 flag, char *ptr);
|
||||
t_stat goto_cmd (int32 flag, char *ptr);
|
||||
t_stat return_cmd (int32 flag, char *ptr);
|
||||
t_stat shift_cmd (int32 flag, char *ptr);
|
||||
t_stat call_cmd (int32 flag, char *ptr);
|
||||
t_stat on_cmd (int32 flag, char *ptr);
|
||||
t_stat noop_cmd (int32 flag, char *ptr);
|
||||
t_stat assert_cmd (int32 flag, char *ptr);
|
||||
t_stat send_cmd (int32 flag, char *ptr);
|
||||
t_stat expect_cmd (int32 flag, char *ptr);
|
||||
t_stat help_cmd (int32 flag, char *ptr);
|
||||
t_stat screenshot_cmd (int32 flag, char *ptr);
|
||||
t_stat spawn_cmd (int32 flag, char *ptr);
|
||||
t_stat echo_cmd (int32 flag, char *ptr);
|
||||
t_stat attach_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat detach_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat assign_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat deassign_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat save_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat restore_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat exit_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat set_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat show_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat set_default_cmd (int32 flg, CONST char *cptr);
|
||||
t_stat pwd_cmd (int32 flg, CONST char *cptr);
|
||||
t_stat dir_cmd (int32 flg, CONST char *cptr);
|
||||
t_stat type_cmd (int32 flg, CONST char *cptr);
|
||||
t_stat brk_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat do_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat goto_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat return_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat shift_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat call_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat on_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat noop_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat assert_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat send_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat expect_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat help_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat screenshot_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat spawn_cmd (int32 flag, CONST char *ptr);
|
||||
t_stat echo_cmd (int32 flag, CONST char *ptr);
|
||||
|
||||
/* Allow compiler to help validate printf style format arguments */
|
||||
#if !defined __GNUC__
|
||||
@@ -128,9 +132,9 @@ t_stat sim_run_boot_prep (void);
|
||||
double sim_gtime (void);
|
||||
uint32 sim_grtime (void);
|
||||
int32 sim_qcount (void);
|
||||
t_stat attach_unit (UNIT *uptr, char *cptr);
|
||||
t_stat attach_unit (UNIT *uptr, CONST char *cptr);
|
||||
t_stat detach_unit (UNIT *uptr);
|
||||
t_stat assign_device (DEVICE *dptr, char *cptr);
|
||||
t_stat assign_device (DEVICE *dptr, const char *cptr);
|
||||
t_stat deassign_device (DEVICE *dptr);
|
||||
t_stat reset_all (uint32 start_device);
|
||||
t_stat reset_all_p (uint32 start_device);
|
||||
@@ -144,17 +148,17 @@ int sim_isprint (char c);
|
||||
int sim_isdigit (char c);
|
||||
int sim_isgraph (char c);
|
||||
int sim_isalnum (char c);
|
||||
char *get_sim_opt (int32 opt, char *cptr, t_stat *st);
|
||||
char *get_glyph (const char *iptr, char *optr, char mchar);
|
||||
char *get_glyph_nc (const char *iptr, char *optr, char mchar);
|
||||
char *get_glyph_quoted (const char *iptr, char *optr, char mchar);
|
||||
CONST char *get_sim_opt (int32 opt, CONST char *cptr, t_stat *st);
|
||||
CONST char *get_glyph (const char *iptr, char *optr, char mchar);
|
||||
CONST char *get_glyph_nc (const char *iptr, char *optr, char mchar);
|
||||
CONST char *get_glyph_quoted (const char *iptr, char *optr, char mchar);
|
||||
t_value get_uint (const char *cptr, uint32 radix, t_value max, t_stat *status);
|
||||
const char *get_range (DEVICE *dptr, const char *cptr, t_addr *lo, t_addr *hi,
|
||||
CONST char *get_range (DEVICE *dptr, CONST char *cptr, t_addr *lo, t_addr *hi,
|
||||
uint32 rdx, t_addr max, char term);
|
||||
t_stat sim_decode_quoted_string (const char *iptr, uint8 *optr, uint32 *osize);
|
||||
char *sim_encode_quoted_string (const uint8 *iptr, uint32 size);
|
||||
void fprint_buffer_string (FILE *st, const uint8 *buf, uint32 size);
|
||||
t_value strtotv (const char *cptr, const char **endptr, uint32 radix);
|
||||
t_value strtotv (CONST char *cptr, CONST char **endptr, uint32 radix);
|
||||
int Fprintf (FILE *f, const char* fmt, ...) GCC_FMT_ATTR(2, 3);
|
||||
t_stat sim_set_memory_load_file (const unsigned char *data, size_t size);
|
||||
int Fgetc (FILE *f);
|
||||
@@ -170,7 +174,7 @@ DEVICE *find_unit (const char *ptr, UNIT **uptr);
|
||||
DEVICE *find_dev_from_unit (UNIT *uptr);
|
||||
t_stat sim_register_internal_device (DEVICE *dptr);
|
||||
void sim_sub_args (char *in_str, size_t in_str_size, char *do_arg[]);
|
||||
REG *find_reg (const char *ptr, const char **optr, DEVICE *dptr);
|
||||
REG *find_reg (CONST char *ptr, CONST char **optr, DEVICE *dptr);
|
||||
CTAB *find_ctab (CTAB *tab, const char *gbuf);
|
||||
C1TAB *find_c1tab (C1TAB *tab, const char *gbuf);
|
||||
SHTAB *find_shtab (SHTAB *tab, const char *gbuf);
|
||||
@@ -181,23 +185,23 @@ void sim_brk_clrspc (uint32 spc);
|
||||
char *sim_brk_clract (void);
|
||||
void sim_brk_setact (const char *action);
|
||||
t_stat sim_send_input (SEND *snd, uint8 *data, size_t size, uint32 after, uint32 delay);
|
||||
t_stat sim_show_send_input (FILE *st, SEND *snd);
|
||||
t_stat sim_show_send_input (FILE *st, const SEND *snd);
|
||||
t_bool sim_send_poll_data (SEND *snd, t_stat *stat);
|
||||
t_stat sim_send_clear (SEND *snd);
|
||||
t_stat sim_set_expect (EXPECT *exp, const char *cptr);
|
||||
t_stat sim_set_expect (EXPECT *exp, CONST char *cptr);
|
||||
t_stat sim_set_noexpect (EXPECT *exp, const char *cptr);
|
||||
t_stat sim_exp_set (EXPECT *exp, const char *match, int32 cnt, uint32 after, int32 switches, const char *act);
|
||||
t_stat sim_exp_clr (EXPECT *exp, const char *match);
|
||||
t_stat sim_exp_clrall (EXPECT *exp);
|
||||
t_stat sim_exp_show (FILE *st, EXPECT *exp, const char *match);
|
||||
t_stat sim_exp_showall (FILE *st, EXPECT *exp);
|
||||
t_stat sim_exp_show (FILE *st, CONST EXPECT *exp, const char *match);
|
||||
t_stat sim_exp_showall (FILE *st, const EXPECT *exp);
|
||||
t_stat sim_exp_check (EXPECT *exp, uint8 data);
|
||||
char *match_ext (char *fnam, const char *ext);
|
||||
t_stat show_version (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr);
|
||||
t_stat set_dev_debug (DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr);
|
||||
t_stat show_dev_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr);
|
||||
CONST char *match_ext (CONST char *fnam, const char *ext);
|
||||
t_stat show_version (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr);
|
||||
t_stat set_dev_debug (DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr);
|
||||
t_stat show_dev_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr);
|
||||
const char *sim_error_text (t_stat stat);
|
||||
t_stat sim_string_to_stat (char *cptr, t_stat *cond);
|
||||
t_stat sim_string_to_stat (const char *cptr, t_stat *cond);
|
||||
t_stat sim_cancel_step (void);
|
||||
void sim_printf (const char* fmt, ...) GCC_FMT_ATTR(1, 2);
|
||||
void sim_perror (const char* msg);
|
||||
@@ -210,6 +214,15 @@ void sim_debug_bits (uint32 dbits, DEVICE* dptr, BITFIELD* bitdefs,
|
||||
#if defined (__DECC) && defined (__VMS) && (defined (__VAX) || (__DECC_VER < 60590001))
|
||||
#define CANT_USE_MACRO_VA_ARGS 1
|
||||
#endif
|
||||
#if defined(__cplusplus)
|
||||
#ifdef CANT_USE_MACRO_VA_ARGS
|
||||
#define _sim_debug sim_debug
|
||||
void sim_debug (uint32 dbits, void* dptr, const char* fmt, ...) GCC_FMT_ATTR(3, 4);
|
||||
#else
|
||||
void _sim_debug (uint32 dbits, void* dptr, const char* fmt, ...) GCC_FMT_ATTR(3, 4);
|
||||
#define sim_debug(dbits, dptr, ...) do { if (sim_deb && dptr && ((dptr)->dctrl & dbits)) _sim_debug (dbits, dptr, __VA_ARGS__);} while (0)
|
||||
#endif
|
||||
#else
|
||||
#ifdef CANT_USE_MACRO_VA_ARGS
|
||||
#define _sim_debug sim_debug
|
||||
void sim_debug (uint32 dbits, DEVICE* dptr, const char* fmt, ...) GCC_FMT_ATTR(3, 4);
|
||||
@@ -217,6 +230,7 @@ void sim_debug (uint32 dbits, DEVICE* dptr, const char* fmt, ...) GCC_FMT_ATTR(3
|
||||
void _sim_debug (uint32 dbits, DEVICE* dptr, const char* fmt, ...) GCC_FMT_ATTR(3, 4);
|
||||
#define sim_debug(dbits, dptr, ...) do { if (sim_deb && dptr && ((dptr)->dctrl & dbits)) _sim_debug (dbits, dptr, __VA_ARGS__);} while (0)
|
||||
#endif
|
||||
#endif
|
||||
void fprint_stopped_gen (FILE *st, t_stat v, REG *pc, DEVICE *dptr);
|
||||
#define SCP_HELP_FLAT (1u << 31) /* Force flat help when prompting is not possible */
|
||||
#define SCP_HELP_ONECMD (1u << 30) /* Display one topic, do not prompt */
|
||||
@@ -268,24 +282,28 @@ extern DEVICE *sim_devices[];
|
||||
extern REG *sim_PC;
|
||||
extern const char *sim_stop_messages[];
|
||||
extern t_stat sim_instr (void);
|
||||
extern t_stat sim_load (FILE *ptr, char *cptr, char *fnam, int flag);
|
||||
extern t_stat sim_load (FILE *ptr, CONST char *cptr, CONST char *fnam, int flag);
|
||||
extern int32 sim_emax;
|
||||
extern t_stat fprint_sym (FILE *ofile, t_addr addr, t_value *val,
|
||||
UNIT *uptr, int32 sw);
|
||||
extern t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val,
|
||||
extern t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val,
|
||||
int32 sw);
|
||||
|
||||
/* The per-simulator init routine is a weak global that defaults to NULL
|
||||
The other per-simulator pointers can be overrriden by the init routine */
|
||||
|
||||
extern void (*sim_vm_init) (void);
|
||||
WEAK extern void (*sim_vm_init) (void);
|
||||
extern char* (*sim_vm_read) (char *ptr, int32 size, FILE *stream);
|
||||
extern void (*sim_vm_post) (t_bool from_scp);
|
||||
extern CTAB *sim_vm_cmd;
|
||||
extern void (*sim_vm_fprint_addr) (FILE *st, DEVICE *dptr, t_addr addr);
|
||||
extern t_addr (*sim_vm_parse_addr) (DEVICE *dptr, const char *cptr, const char **tptr);
|
||||
extern t_addr (*sim_vm_parse_addr) (DEVICE *dptr, CONST char *cptr, CONST char **tptr);
|
||||
extern t_bool (*sim_vm_fprint_stopped) (FILE *st, t_stat reason);
|
||||
extern t_value (*sim_vm_pc_value) (void);
|
||||
extern t_bool (*sim_vm_is_subroutine_call) (t_addr **ret_addrs);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user