Mercurial > ecos
diff packages/cygmon/current/misc/utils.c @ 112:02ea4320376c ecos-sw-2000-07-21
Merge from eCos master repository on 2000-07-21-21:01:39-BST
| author | jlarmour |
|---|---|
| date | Fri, 21 Jul 2000 21:34:11 +0000 |
| parents | 435cced73e2f |
| children | 6ed91473a1cd |
line wrap: on
line diff
--- a/packages/cygmon/current/misc/utils.c +++ b/packages/cygmon/current/misc/utils.c @@ -63,7 +63,7 @@ #include "generic-stub.h" /* from libstub */ #endif /* USE_CYGMON_PROTOTYPES */ -int switch_to_stub_flag = 0; +volatile int switch_to_stub_flag = 0; /* Input routine for the line editor. */ int @@ -224,6 +224,11 @@ hex2bytes (char *str, char *dest, int ma for (i = 0; i < maxsize; i++) dest[i] = 0; maxsize--; + + // Don't try and convert 0x prefix + if ((str[0] == '0') && (str[1] == 'x')) + str += 2; + ptr = str + strlen(str) - 1; while (maxsize >= 0 && ptr >= str) { @@ -355,19 +360,11 @@ strdup(const char *str) target_register_t get_pc(void) { -#ifdef HAVE_BSP - target_regval_t pc; - - pc = get_register(REG_PC); - - return pc.i; -#else - return get_register(PC); -#endif + return get_register(REG_PC); } -#ifdef HAVE_BSP +#if defined(HAVE_BSP) && !defined(__ECOS__) static int get_register_type(regnames_t which) { @@ -392,32 +389,7 @@ get_register_str (regnames_t which, int return res; } #endif -#ifdef HAVE_BSP - { - target_regval_t reg; - - reg = get_register (which); - switch (get_register_type (which)) - { - case REGTYPE_INT: - return ull2str (reg.i, 16, sizeof(reg.i) * 2); - break; -#if HAVE_FLOAT_REGS - case REGTYPE_FLOAT: - return float2str (reg.f); - break; -#endif -#if HAVE_DOUBLE_REGS - case REGTYPE_DOUBLE: - return double2str (reg.d); - break; -#endif - } - return "...help..."; - } -#else return int2str (get_register (which), 16, sizeof (target_register_t) * 2); -#endif } @@ -428,31 +400,7 @@ store_register (regnames_t which, char * if (SPECIAL_REG_STORE(which, string)) return; #endif -#ifdef HAVE_BSP - { - target_regval_t reg; - - switch (get_register_type(which)) - { - case REGTYPE_INT: - reg.i = str2int (string, 16); - break; -#if HAVE_FLOAT_REGS - case REGTYPE_FLOAT: - reg.f = str2float (string, 16); - break; -#endif -#if HAVE_DOUBLE_REGS - case REGTYPE_DOUBLE: - reg.d = str2double (string, 16); - break; -#endif - } - put_register (which, reg); - } -#else put_register (which, str2int (string, 16)); -#endif }
