SCP: general const cleanups and const change to sim_vm_parse_addr.
This commit is contained in:
parent
80595a532f
commit
d8f2647f93
9 changed files with 48 additions and 40 deletions
|
@ -237,21 +237,21 @@ else fprint_val (st, addr, dptr->aradix, dptr->awidth, PV_LEFT);
|
|||
return;
|
||||
}
|
||||
|
||||
t_addr lgp_parse_addr (DEVICE *dptr, char *cptr, char **tptr)
|
||||
t_addr lgp_parse_addr (DEVICE *dptr, const char *cptr, const char **tptr)
|
||||
{
|
||||
t_addr ad, ea;
|
||||
|
||||
if ((dptr == sim_devices[0]) &&
|
||||
((sim_switches & SWMASK ('T')) ||
|
||||
((cpu_unit.flags & UNIT_TTSS_D) && !(sim_switches & SWMASK ('N'))))) {
|
||||
ad = (t_addr) strtotv (cptr, (const char **)tptr, 10);
|
||||
ad = (t_addr) strtotv (cptr, tptr, 10);
|
||||
if (((ad / 100) >= NTK_30) || ((ad % 100) >= NSC_30)) {
|
||||
*tptr = cptr;
|
||||
return 0;
|
||||
}
|
||||
ea = ((ad / 100) * NSC_30) | (ad % 100);
|
||||
}
|
||||
else ea = (t_addr) strtotv (cptr, (const char **)tptr, dptr->aradix);
|
||||
else ea = (t_addr) strtotv (cptr, tptr, dptr->aradix);
|
||||
return ea;
|
||||
}
|
||||
|
||||
|
@ -379,7 +379,8 @@ return SCPE_ARG;
|
|||
t_stat parse_sym_m (char *cptr, t_value *val, int32 sw)
|
||||
{
|
||||
uint32 ea, sgn;
|
||||
char *tptr, gbuf[CBUFSIZE];
|
||||
const char *tptr;
|
||||
char gbuf[CBUFSIZE];
|
||||
|
||||
if (*cptr == '-') {
|
||||
cptr++;
|
||||
|
|
|
@ -349,7 +349,7 @@ static t_stat fdc_start(UNIT *uptr,int time) {
|
|||
|
||||
static t_stat fdc_stop(UNIT *uptr) {
|
||||
/* request service */
|
||||
sim_debug(DBG_FD_SVC, &fdc_dev, DBG_PCFORMAT2 "Cancel Service\n", DBG_PC, time);
|
||||
sim_debug(DBG_FD_SVC, &fdc_dev, DBG_PCFORMAT2 "Cancel Service\n", DBG_PC);
|
||||
return sim_cancel(uptr);
|
||||
}
|
||||
|
||||
|
|
|
@ -155,7 +155,7 @@ void pdq3_fprint_addr (FILE *st, DEVICE *dptr, t_addr addr)
|
|||
return;
|
||||
}
|
||||
|
||||
t_addr pdq3_parse_addr (DEVICE *dptr, char *cptr, char **tptr)
|
||||
t_addr pdq3_parse_addr (DEVICE *dptr, const char *cptr, const char **tptr)
|
||||
{
|
||||
t_addr seg, off;
|
||||
if (cptr[0] == '#') {
|
||||
|
@ -207,13 +207,13 @@ static t_stat pdq3_cmd_exstack(int32 arg, char *buf)
|
|||
|
||||
static t_stat pdq3_cmd_exmscw(int32 arg, char *buf)
|
||||
{
|
||||
char* next;
|
||||
const char* next;
|
||||
return dbg_dump_mscw(stdout, buf[0] ? pdq3_parse_addr(&cpu_dev, buf, &next) : reg_mp);
|
||||
}
|
||||
|
||||
static t_stat pdq3_cmd_extib(int32 arg, char *buf)
|
||||
{
|
||||
char* next;
|
||||
const char* next;
|
||||
return dbg_dump_tib(stdout, buf[0] ? pdq3_parse_addr(&cpu_dev, buf, &next) : reg_ctp);
|
||||
}
|
||||
|
||||
|
@ -222,7 +222,7 @@ static t_stat pdq3_cmd_exseg(int32 arg, char *buf)
|
|||
t_stat rc;
|
||||
uint16 nsegs;
|
||||
uint16 segnum, segptr;
|
||||
char* next;
|
||||
const char* next;
|
||||
FILE* fd = stdout; /* XXX */
|
||||
|
||||
if (reg_ssv < 0x2030 || reg_ssv > 0xf000) {
|
||||
|
|
BIN
doc/simh.doc
BIN
doc/simh.doc
Binary file not shown.
37
scp.c
37
scp.c
|
@ -347,7 +347,7 @@ char* (*sim_vm_read) (char *ptr, int32 size, FILE *stream) = NULL;
|
|||
void (*sim_vm_post) (t_bool from_scp) = NULL;
|
||||
CTAB *sim_vm_cmd = NULL;
|
||||
void (*sim_vm_fprint_addr) (FILE *st, DEVICE *dptr, t_addr addr) = NULL;
|
||||
t_addr (*sim_vm_parse_addr) (DEVICE *dptr, char *cptr, char **tptr) = NULL;
|
||||
t_addr (*sim_vm_parse_addr) (DEVICE *dptr, const char *cptr, const char **tptr) = NULL;
|
||||
t_value (*sim_vm_pc_value) (void) = NULL;
|
||||
t_bool (*sim_vm_is_subroutine_call) (t_addr **ret_addrs) = NULL;
|
||||
t_bool (*sim_vm_fprint_stopped) (FILE *st, t_stat reason) = NULL;
|
||||
|
@ -2111,8 +2111,8 @@ return SCPE_EXIT;
|
|||
/* Used when sorting a list of command names */
|
||||
static int _cmd_name_compare (const void *pa, const void *pb)
|
||||
{
|
||||
CTAB **a = (CTAB **)pa;
|
||||
CTAB **b = (CTAB **)pb;
|
||||
CTAB * const *a = (CTAB * const *)pa;
|
||||
CTAB * const *b = (CTAB * const *)pb;
|
||||
|
||||
return strcmp((*a)->name, (*b)->name);
|
||||
}
|
||||
|
@ -3306,7 +3306,7 @@ else {
|
|||
}
|
||||
else { /* not reg, check for memory */
|
||||
if (sim_dfdev && sim_vm_parse_addr) /* get addr */
|
||||
addr = sim_vm_parse_addr (sim_dfdev, (char *)gbuf, (char **)&gptr);
|
||||
addr = sim_vm_parse_addr (sim_dfdev, gbuf, &gptr);
|
||||
else addr = (t_addr) strtotv (gbuf, &gptr, sim_dfdev->dradix);
|
||||
if (gbuf == gptr) /* error? */
|
||||
return SCPE_NXREG;
|
||||
|
@ -5974,7 +5974,7 @@ if ((flag == RU_RUN) || (flag == RU_GO)) { /* run or go */
|
|||
if (*cptr != 0) /* should be end */
|
||||
return SCPE_2MARG;
|
||||
if (sim_vm_parse_addr) /* address parser? */
|
||||
pcv = sim_vm_parse_addr (sim_dflt_dev, gbuf, (char **)&tptr);
|
||||
pcv = sim_vm_parse_addr (sim_dflt_dev, gbuf, &tptr);
|
||||
else pcv = strtotv (gbuf, &tptr, sim_PC->radix);/* parse PC */
|
||||
if ((tptr == gbuf) || (*tptr != 0) || /* error? */
|
||||
(pcv > width_mask[sim_PC->width]))
|
||||
|
@ -6643,7 +6643,8 @@ t_stat dep_reg (int32 flag, char *cptr, REG *rptr, uint32 idx)
|
|||
t_stat r;
|
||||
t_value val, mask;
|
||||
int32 rdx;
|
||||
char *tptr, gbuf[CBUFSIZE];
|
||||
const char *tptr;
|
||||
char gbuf[CBUFSIZE];
|
||||
|
||||
if ((cptr == NULL) || (rptr == NULL))
|
||||
return SCPE_IERR;
|
||||
|
@ -7283,7 +7284,7 @@ else {
|
|||
}
|
||||
else {
|
||||
if (dptr && sim_vm_parse_addr) /* get low */
|
||||
*lo = sim_vm_parse_addr (dptr, (char *)cptr, (char **)&tptr);
|
||||
*lo = sim_vm_parse_addr (dptr, cptr, &tptr);
|
||||
else
|
||||
*lo = (t_addr) strtotv (cptr, &tptr, rdx);
|
||||
if (cptr == tptr) /* error? */
|
||||
|
@ -7291,7 +7292,7 @@ else {
|
|||
if ((*tptr == '-') || (*tptr == ':')) { /* range? */
|
||||
cptr = tptr + 1;
|
||||
if (dptr && sim_vm_parse_addr) /* get high */
|
||||
*hi = sim_vm_parse_addr (dptr, (char *)cptr, (char **)&tptr);
|
||||
*hi = sim_vm_parse_addr (dptr, cptr, &tptr);
|
||||
else *hi = (t_addr) strtotv (cptr, &tptr, rdx);
|
||||
if (cptr == tptr)
|
||||
return NULL;
|
||||
|
@ -7938,7 +7939,7 @@ for (logop = cmpop = -1; (c = *cptr++); ) { /* loop thru clauses */
|
|||
logval = strtotv (cptr, &tptr, radix);
|
||||
if (cptr == tptr)
|
||||
return NULL;
|
||||
cptr = (char *)tptr;
|
||||
cptr = tptr;
|
||||
}
|
||||
else if ((sptr = strchr (cmpstr, c))) { /* check for boolop */
|
||||
cmpop = (int32)(sptr - cmpstr);
|
||||
|
@ -7949,7 +7950,7 @@ for (logop = cmpop = -1; (c = *cptr++); ) { /* loop thru clauses */
|
|||
cmpval = strtotv (cptr, &tptr, radix);
|
||||
if (cptr == tptr)
|
||||
return NULL;
|
||||
cptr = (char *)tptr;
|
||||
cptr = tptr;
|
||||
}
|
||||
else return NULL;
|
||||
} /* end for */
|
||||
|
@ -8152,7 +8153,7 @@ int32 nodigit;
|
|||
t_value val;
|
||||
uint32 c, digit;
|
||||
|
||||
*endptr = (char *)inptr; /* assume fails */
|
||||
*endptr = inptr; /* assume fails */
|
||||
if ((radix < 2) || (radix > 36))
|
||||
return 0;
|
||||
while (sim_isspace (*inptr)) /* bypass white space */
|
||||
|
@ -8174,7 +8175,7 @@ for (c = *inptr; sim_isalnum(c); c = *++inptr) { /* loop through char */
|
|||
}
|
||||
if (nodigit) /* no digits? */
|
||||
return 0;
|
||||
*endptr = (char *)inptr; /* result pointer */
|
||||
*endptr = inptr; /* result pointer */
|
||||
return val;
|
||||
}
|
||||
|
||||
|
@ -9021,7 +9022,7 @@ return SCPE_OK;
|
|||
|
||||
/* Set expect */
|
||||
|
||||
t_stat sim_set_expect (EXPECT *exp, char *cptr)
|
||||
t_stat sim_set_expect (EXPECT *exp, const char *cptr)
|
||||
{
|
||||
char gbuf[CBUFSIZE], *tptr;
|
||||
const char *c1ptr;
|
||||
|
@ -9035,7 +9036,7 @@ if (*cptr == '[') {
|
|||
cnt = (int32) strtotv (cptr + 1, &c1ptr, 10);
|
||||
if ((cptr == c1ptr) || (*c1ptr != ']'))
|
||||
return sim_messagef (SCPE_ARG, "Invalid Repeat count specification\n");
|
||||
cptr = (char *)(c1ptr + 1);
|
||||
cptr = c1ptr + 1;
|
||||
while (sim_isspace(*cptr))
|
||||
++cptr;
|
||||
}
|
||||
|
@ -9055,7 +9056,7 @@ return sim_exp_set (exp, gbuf, cnt, (after ? after : exp->after), sim_switches,
|
|||
|
||||
/* Clear expect */
|
||||
|
||||
t_stat sim_set_noexpect (EXPECT *exp, char *cptr)
|
||||
t_stat sim_set_noexpect (EXPECT *exp, const char *cptr)
|
||||
{
|
||||
char gbuf[CBUFSIZE];
|
||||
|
||||
|
@ -9136,7 +9137,7 @@ return SCPE_OK;
|
|||
|
||||
/* Set/Add an expect rule */
|
||||
|
||||
t_stat sim_exp_set (EXPECT *exp, const char *match, int32 cnt, uint32 after, int32 switches, char *act)
|
||||
t_stat sim_exp_set (EXPECT *exp, const char *match, int32 cnt, uint32 after, int32 switches, const char *act)
|
||||
{
|
||||
EXPTAB *ep;
|
||||
uint8 *match_buf;
|
||||
|
@ -9179,7 +9180,7 @@ else {
|
|||
free (match_buf);
|
||||
return sim_messagef (SCPE_ARG, "Case independed matching is only valid for RegEx expect rules\n");
|
||||
}
|
||||
sim_data_trace(exp->dptr, exp->dptr->units, (uint8 *)match, "", strlen(match)+1, "Expect Match String", exp->dbit);
|
||||
sim_data_trace(exp->dptr, exp->dptr->units, (const uint8 *)match, "", strlen(match)+1, "Expect Match String", exp->dbit);
|
||||
if (SCPE_OK != sim_decode_quoted_string (match, match_buf, &match_size)) {
|
||||
free (match_buf);
|
||||
return sim_messagef (SCPE_ARG, "Invalid quoted string\n");
|
||||
|
@ -9215,7 +9216,7 @@ if (switches & EXP_TYP_REGEX) {
|
|||
match_buf = NULL;
|
||||
}
|
||||
else {
|
||||
sim_data_trace(exp->dptr, exp->dptr->units, (uint8 *)match, "", strlen(match)+1, "Expect Match String", exp->dbit);
|
||||
sim_data_trace(exp->dptr, exp->dptr->units, (const uint8 *)match, "", strlen(match)+1, "Expect Match String", exp->dbit);
|
||||
sim_decode_quoted_string (match, match_buf, &match_size);
|
||||
ep->match = match_buf;
|
||||
ep->size = match_size;
|
||||
|
|
8
scp.h
8
scp.h
|
@ -183,9 +183,9 @@ t_stat sim_send_input (SEND *snd, uint8 *data, size_t size, uint32 after, uint32
|
|||
t_stat sim_show_send_input (FILE *st, 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, char *cptr);
|
||||
t_stat sim_set_noexpect (EXPECT *exp, char *cptr);
|
||||
t_stat sim_exp_set (EXPECT *exp, const char *match, int32 cnt, uint32 after, int32 switches, char *act);
|
||||
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);
|
||||
|
@ -282,7 +282,7 @@ 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, char *cptr, 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);
|
||||
|
|
|
@ -222,8 +222,8 @@ return;
|
|||
/* Used when sorting a list of serial port names */
|
||||
static int _serial_name_compare (const void *pa, const void *pb)
|
||||
{
|
||||
SERIAL_LIST *a = (SERIAL_LIST *)pa;
|
||||
SERIAL_LIST *b = (SERIAL_LIST *)pb;
|
||||
const SERIAL_LIST *a = (const SERIAL_LIST *)pa;
|
||||
const SERIAL_LIST *b = (const SERIAL_LIST *)pb;
|
||||
|
||||
return strcmp(a->name, b->name);
|
||||
}
|
||||
|
|
|
@ -384,7 +384,7 @@ static int WSAAPI s_getnameinfo (const struct sockaddr *sa, socklen_t salen,
|
|||
{
|
||||
struct hostent *he;
|
||||
struct servent *se = NULL;
|
||||
struct sockaddr_in *sin = (struct sockaddr_in *)sa;
|
||||
const struct sockaddr_in *sin = (const struct sockaddr_in *)sa;
|
||||
|
||||
if (sin->sin_family != PF_INET)
|
||||
return EAI_FAMILY;
|
||||
|
@ -416,7 +416,7 @@ if ((host) && (hostlen > 0)) {
|
|||
if (flags & NI_NUMERICHOST)
|
||||
he = NULL;
|
||||
else
|
||||
he = gethostbyaddr((char *)&sin->sin_addr, 4, AF_INET);
|
||||
he = gethostbyaddr((const char *)&sin->sin_addr, 4, AF_INET);
|
||||
if (he) {
|
||||
if (hostlen < strlen(he->h_name)+1)
|
||||
return EAI_OVERFLOW;
|
||||
|
|
14
sim_tmxr.c
14
sim_tmxr.c
|
@ -4387,10 +4387,12 @@ return SCPE_OK;
|
|||
If an error occurs, the original line order is not disturbed.
|
||||
*/
|
||||
|
||||
t_stat tmxr_set_lnorder (UNIT *uptr, int32 val, char *cptr, void *desc)
|
||||
t_stat tmxr_set_lnorder (UNIT *uptr, int32 val, char *carg, void *desc)
|
||||
{
|
||||
TMXR *mp = (TMXR *) desc;
|
||||
char *tbuf;
|
||||
char *tptr;
|
||||
const char *cptr;
|
||||
t_addr low, high, max = (t_addr) mp->lines - 1;
|
||||
int32 *list;
|
||||
t_bool *set;
|
||||
|
@ -4400,7 +4402,7 @@ t_stat result = SCPE_OK;
|
|||
if (mp->lnorder == NULL) /* line connection order undefined? */
|
||||
return SCPE_NXPAR; /* "Non-existent parameter" error */
|
||||
|
||||
else if ((cptr == NULL) || (*cptr == '\0')) /* line range not supplied? */
|
||||
else if ((carg == NULL) || (*carg == '\0')) /* line range not supplied? */
|
||||
return SCPE_MISVAL; /* "Missing value" error */
|
||||
|
||||
list = (int32 *) calloc (mp->lines, sizeof (int32)); /* allocate new line order array */
|
||||
|
@ -4415,12 +4417,15 @@ if (set == NULL) { /* allocation failed? */
|
|||
return SCPE_MEM; /* report it */
|
||||
}
|
||||
|
||||
tptr = cptr + strlen (cptr); /* append a semicolon */
|
||||
tbuf = (char *) calloc (strlen(carg)+2, sizeof(*carg));
|
||||
strcpy (tbuf, carg);
|
||||
tptr = tbuf + strlen (tbuf); /* append a semicolon */
|
||||
*tptr++ = ';'; /* to the command string */
|
||||
*tptr = '\0'; /* to make parsing easier for get_range */
|
||||
cptr = tbuf;
|
||||
|
||||
while (*cptr) { /* parse command string */
|
||||
cptr = (char *)get_range (NULL, cptr, &low, &high, 10, max, ';');/* get a line range */
|
||||
cptr = get_range (NULL, cptr, &low, &high, 10, max, ';');/* get a line range */
|
||||
|
||||
if (cptr == NULL) { /* parsing error? */
|
||||
result = SCPE_ARG; /* "Invalid argument" error */
|
||||
|
@ -4460,6 +4465,7 @@ if (result == SCPE_OK) { /* assignment successful
|
|||
|
||||
free (list); /* free list allocation */
|
||||
free (set); /* free set allocation */
|
||||
free (tbuf); /* free arg copy with ; */
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue