Merge branch 'master' into from_upstream
Conflicts:
.gitmodules
.travis.yml
jimtcl
src/jtag/core.c
src/jtag/drivers/ftdi.c
src/jtag/drivers/libjaylink
src/jtag/drivers/mpsse.c
src/jtag/drivers/stlink_usb.c
src/rtos/hwthread.c
src/target/riscv/riscv-013.c
src/target/riscv/riscv.c
tcl/board/sifive-hifive1-revb.cfg
Change-Id: I2d26ebeffb4c1374730d2e20e6e2a7710403657c
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
* using the bits in @c value. This routine fast-paths writes
|
||||
* of little-endian, byte-aligned, 32-bit words.
|
||||
* @param _buffer The buffer whose bits will be set.
|
||||
* Do not use uninitialized buffer or clang static analyzer emits a warning.
|
||||
* @param first The bit offset in @c _buffer to start writing (0-31).
|
||||
* @param num The number of bits from @c value to copy (1-32).
|
||||
* @param value Up to 32 bits that will be copied to _buffer.
|
||||
@@ -62,6 +63,7 @@ static inline void buf_set_u32(uint8_t *_buffer,
|
||||
* using the bits in @c value. This routine fast-paths writes
|
||||
* of little-endian, byte-aligned, 64-bit words.
|
||||
* @param _buffer The buffer whose bits will be set.
|
||||
* Do not use uninitialized buffer or clang static analyzer emits a warning.
|
||||
* @param first The bit offset in @c _buffer to start writing (0-63).
|
||||
* @param num The number of bits from @c value to copy (1-64).
|
||||
* @param value Up to 64 bits that will be copied to _buffer.
|
||||
|
||||
+32
-24
@@ -52,6 +52,10 @@ struct log_capture_state {
|
||||
Jim_Obj *output;
|
||||
};
|
||||
|
||||
static int unregister_command(struct command_context *context,
|
||||
struct command *parent, const char *name);
|
||||
static char *command_name(struct command *c, char delim);
|
||||
|
||||
static void tcl_output(void *privData, const char *file, unsigned line,
|
||||
const char *function, const char *string)
|
||||
{
|
||||
@@ -126,13 +130,12 @@ extern struct command_context *global_cmd_ctx;
|
||||
|
||||
/* dump a single line to the log for the command.
|
||||
* Do nothing in case we are not at debug level 3 */
|
||||
void script_debug(Jim_Interp *interp, const char *name,
|
||||
unsigned argc, Jim_Obj * const *argv)
|
||||
void script_debug(Jim_Interp *interp, unsigned int argc, Jim_Obj * const *argv)
|
||||
{
|
||||
if (debug_level < LOG_LVL_DEBUG)
|
||||
return;
|
||||
|
||||
char *dbg = alloc_printf("command - %s", name);
|
||||
char *dbg = alloc_printf("command -");
|
||||
for (unsigned i = 0; i < argc; i++) {
|
||||
int len;
|
||||
const char *w = Jim_GetString(argv[i], &len);
|
||||
@@ -213,7 +216,7 @@ static int script_command(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
|
||||
|
||||
struct command *c = interp->cmdPrivData;
|
||||
assert(c);
|
||||
script_debug(interp, c->name, argc, argv);
|
||||
script_debug(interp, argc, argv);
|
||||
return script_command_run(interp, argc, argv, c);
|
||||
}
|
||||
|
||||
@@ -243,11 +246,6 @@ struct command *command_find_in_context(struct command_context *cmd_ctx,
|
||||
{
|
||||
return command_find(cmd_ctx->commands, name);
|
||||
}
|
||||
struct command *command_find_in_parent(struct command *parent,
|
||||
const char *name)
|
||||
{
|
||||
return command_find(parent->children, name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the command into the linked list, sorted by name.
|
||||
@@ -333,7 +331,6 @@ static struct command *command_new(struct command_context *cmd_ctx,
|
||||
c->parent = parent;
|
||||
c->handler = cr->handler;
|
||||
c->jim_handler = cr->jim_handler;
|
||||
c->jim_handler_data = cr->jim_handler_data;
|
||||
c->mode = cr->mode;
|
||||
|
||||
command_add_child(command_list_for_parent(cmd_ctx, parent), c);
|
||||
@@ -360,7 +357,7 @@ static int register_command_handler(struct command_context *cmd_ctx,
|
||||
return retval;
|
||||
}
|
||||
|
||||
struct command *register_command(struct command_context *context,
|
||||
static struct command *register_command(struct command_context *context,
|
||||
struct command *parent, const struct command_registration *cr)
|
||||
{
|
||||
if (!context || !cr->name)
|
||||
@@ -382,14 +379,14 @@ struct command *register_command(struct command_context *context,
|
||||
if (NULL == c)
|
||||
return NULL;
|
||||
|
||||
int retval = ERROR_OK;
|
||||
int retval = JIM_OK;
|
||||
if (NULL != cr->jim_handler && NULL == parent) {
|
||||
retval = Jim_CreateCommand(context->interp, cr->name,
|
||||
cr->jim_handler, cr->jim_handler_data, NULL);
|
||||
cr->jim_handler, NULL, NULL);
|
||||
} else if (NULL != cr->handler || NULL != parent)
|
||||
retval = register_command_handler(context, command_root(c));
|
||||
|
||||
if (ERROR_OK != retval) {
|
||||
if (retval != JIM_OK) {
|
||||
unregister_command(context, parent, name);
|
||||
c = NULL;
|
||||
}
|
||||
@@ -442,7 +439,7 @@ int unregister_all_commands(struct command_context *context,
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
||||
int unregister_command(struct command_context *context,
|
||||
static int unregister_command(struct command_context *context,
|
||||
struct command *parent, const char *name)
|
||||
{
|
||||
if ((!context) || (!name))
|
||||
@@ -550,7 +547,7 @@ static char *__command_name(struct command *c, char delim, unsigned extra)
|
||||
return name;
|
||||
}
|
||||
|
||||
char *command_name(struct command *c, char delim)
|
||||
static char *command_name(struct command *c, char delim)
|
||||
{
|
||||
return __command_name(c, delim, 0);
|
||||
}
|
||||
@@ -1033,8 +1030,7 @@ static int run_usage(Jim_Interp *interp, int argc_valid, int argc, Jim_Obj * con
|
||||
|
||||
static int command_unknown(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
|
||||
{
|
||||
const char *cmd_name = Jim_GetString(argv[0], NULL);
|
||||
script_debug(interp, cmd_name, argc, argv);
|
||||
script_debug(interp, argc, argv);
|
||||
|
||||
struct command_context *cmd_ctx = current_command_context(interp);
|
||||
struct command *c = cmd_ctx->commands;
|
||||
@@ -1220,9 +1216,9 @@ static const struct command_registration command_subcommand_handlers[] = {
|
||||
.mode = COMMAND_ANY,
|
||||
.jim_handler = jim_command_mode,
|
||||
.usage = "[command_name ...]",
|
||||
.help = "Returns the command modes allowed by a command:"
|
||||
"'any', 'config', or 'exec'. If no command is"
|
||||
"specified, returns the current command mode. "
|
||||
.help = "Returns the command modes allowed by a command: "
|
||||
"'any', 'config', or 'exec'. If no command is "
|
||||
"specified, returns the current command mode. "
|
||||
"Returns 'unknown' if an unknown command is given. "
|
||||
"Command can be multiple tokens.",
|
||||
},
|
||||
@@ -1230,6 +1226,21 @@ static const struct command_registration command_subcommand_handlers[] = {
|
||||
};
|
||||
|
||||
static const struct command_registration command_builtin_handlers[] = {
|
||||
{
|
||||
.name = "ocd_find",
|
||||
.mode = COMMAND_ANY,
|
||||
.jim_handler = jim_find,
|
||||
.help = "find full path to file",
|
||||
.usage = "file",
|
||||
},
|
||||
{
|
||||
.name = "capture",
|
||||
.mode = COMMAND_ANY,
|
||||
.jim_handler = jim_capture,
|
||||
.help = "Capture progress output and return as tcl return value. If the "
|
||||
"progress output was empty, return tcl return value.",
|
||||
.usage = "command",
|
||||
},
|
||||
{
|
||||
.name = "echo",
|
||||
.handler = jim_echo,
|
||||
@@ -1340,9 +1351,6 @@ struct command_context *command_init(const char *startup_tcl, Jim_Interp *interp
|
||||
Jim_SetGlobalVariableStr(interp, "ocd_HOSTOS",
|
||||
Jim_NewStringObj(interp, HostOs, strlen(HostOs)));
|
||||
|
||||
Jim_CreateCommand(interp, "ocd_find", jim_find, NULL, NULL);
|
||||
Jim_CreateCommand(interp, "capture", jim_capture, NULL, NULL);
|
||||
|
||||
register_commands(context, NULL, command_builtin_handlers);
|
||||
|
||||
Jim_SetAssocData(interp, "context", NULL, context);
|
||||
|
||||
+2
-44
@@ -195,19 +195,9 @@ struct command {
|
||||
struct command *next;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param c The command to be named.
|
||||
* @param delim The character to place between command names.
|
||||
* @returns A malloc'd string containing the full command name,
|
||||
* which may include one or more ancestor components. Multiple names
|
||||
* are separated by single spaces. The caller must free() the string
|
||||
* when done with it.
|
||||
*/
|
||||
char *command_name(struct command *c, char delim);
|
||||
|
||||
/*
|
||||
* Commands should be registered by filling in one or more of these
|
||||
* structures and passing them to register_command().
|
||||
* structures and passing them to [un]register_commands().
|
||||
*
|
||||
* A conventioal format should be used for help strings, to provide both
|
||||
* usage and basic information:
|
||||
@@ -226,7 +216,6 @@ struct command_registration {
|
||||
const char *name;
|
||||
command_handler_t handler;
|
||||
Jim_CmdProc *jim_handler;
|
||||
void *jim_handler_data;
|
||||
enum command_mode mode;
|
||||
const char *help;
|
||||
/** a string listing the options and arguments, required or optional */
|
||||
@@ -244,24 +233,6 @@ struct command_registration {
|
||||
/** Use this as the last entry in an array of command_registration records. */
|
||||
#define COMMAND_REGISTRATION_DONE { .name = NULL, .chain = NULL }
|
||||
|
||||
/**
|
||||
* Register a command @c handler that can be called from scripts during
|
||||
* the execution @c mode specified.
|
||||
*
|
||||
* If @c parent is non-NULL, the new command will be registered as a
|
||||
* sub-command under it; otherwise, it will be available as a top-level
|
||||
* command.
|
||||
*
|
||||
* @param cmd_ctx The command_context in which to register the command.
|
||||
* @param parent Register this command as a child of this, or NULL to
|
||||
* register a top-level command.
|
||||
* @param rec A command_registration record that contains the desired
|
||||
* command parameters.
|
||||
* @returns The new command, if successful; otherwise, NULL.
|
||||
*/
|
||||
struct command *register_command(struct command_context *cmd_ctx,
|
||||
struct command *parent, const struct command_registration *rec);
|
||||
|
||||
/**
|
||||
* Register one or more commands in the specified context, as children
|
||||
* of @c parent (or top-level commends, if NULL). In a registration's
|
||||
@@ -280,16 +251,6 @@ struct command *register_command(struct command_context *cmd_ctx,
|
||||
int register_commands(struct command_context *cmd_ctx, struct command *parent,
|
||||
const struct command_registration *cmds);
|
||||
|
||||
|
||||
/**
|
||||
* Unregisters command @c name from the given context, @c cmd_ctx.
|
||||
* @param cmd_ctx The context of the registered command.
|
||||
* @param parent The parent of the given command, or NULL.
|
||||
* @param name The name of the command to unregister.
|
||||
* @returns ERROR_OK on success, or an error code.
|
||||
*/
|
||||
int unregister_command(struct command_context *cmd_ctx,
|
||||
struct command *parent, const char *name);
|
||||
/**
|
||||
* Unregisters all commands from the specfied context.
|
||||
* @param cmd_ctx The context that will be cleared of registered commands.
|
||||
@@ -301,8 +262,6 @@ int unregister_all_commands(struct command_context *cmd_ctx,
|
||||
|
||||
struct command *command_find_in_context(struct command_context *cmd_ctx,
|
||||
const char *name);
|
||||
struct command *command_find_in_parent(struct command *parent,
|
||||
const char *name);
|
||||
|
||||
/**
|
||||
* Update the private command data field for a command and all descendents.
|
||||
@@ -449,7 +408,6 @@ COMMAND_HELPER(handle_command_parse_bool, bool *out, const char *label);
|
||||
#define COMMAND_PARSE_ENABLE(in, out) \
|
||||
COMMAND_PARSE_BOOL(in, out, "enable", "disable")
|
||||
|
||||
void script_debug(Jim_Interp *interp, const char *cmd,
|
||||
unsigned argc, Jim_Obj * const *argv);
|
||||
void script_debug(Jim_Interp *interp, unsigned int argc, Jim_Obj * const *argv);
|
||||
|
||||
#endif /* OPENOCD_HELPER_COMMAND_H */
|
||||
|
||||
+1
-1
@@ -403,7 +403,7 @@ static int ioutil_Jim_Command_mac(Jim_Interp *interp, int argc,
|
||||
{
|
||||
if (strcmp("eth0", ifr->ifr_name) != 0)
|
||||
continue;
|
||||
strncpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name));
|
||||
strncpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name) - 1);
|
||||
if (ioctl(SockFD, SIOCGIFHWADDR, &ifreq) < 0) {
|
||||
close(SockFD);
|
||||
return JIM_ERR;
|
||||
|
||||
+78
-20
@@ -220,6 +220,15 @@ COMMAND_HANDLER(handle_debug_level_command)
|
||||
|
||||
COMMAND_HANDLER(handle_log_output_command)
|
||||
{
|
||||
if (CMD_ARGC == 0 || (CMD_ARGC == 1 && strcmp(CMD_ARGV[0], "default") == 0)) {
|
||||
if (log_output != stderr && log_output != NULL) {
|
||||
/* Close previous log file, if it was open and wasn't stderr. */
|
||||
fclose(log_output);
|
||||
}
|
||||
log_output = stderr;
|
||||
LOG_DEBUG("set log_output to default");
|
||||
return ERROR_OK;
|
||||
}
|
||||
if (CMD_ARGC == 1) {
|
||||
FILE *file = fopen(CMD_ARGV[0], "w");
|
||||
if (file == NULL) {
|
||||
@@ -231,9 +240,11 @@ COMMAND_HANDLER(handle_log_output_command)
|
||||
fclose(log_output);
|
||||
}
|
||||
log_output = file;
|
||||
LOG_DEBUG("set log_output to \"%s\"", CMD_ARGV[0]);
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
||||
return ERROR_OK;
|
||||
return ERROR_COMMAND_SYNTAX_ERROR;
|
||||
}
|
||||
|
||||
static const struct command_registration log_command_handlers[] = {
|
||||
@@ -242,7 +253,7 @@ static const struct command_registration log_command_handlers[] = {
|
||||
.handler = handle_log_output_command,
|
||||
.mode = COMMAND_ANY,
|
||||
.help = "redirect logging to a file (default: stderr)",
|
||||
.usage = "file_name",
|
||||
.usage = "[file_name | \"default\"]",
|
||||
},
|
||||
{
|
||||
.name = "debug_level",
|
||||
@@ -390,25 +401,43 @@ char *alloc_printf(const char *format, ...)
|
||||
* fast when invoked more often than every 500ms.
|
||||
*
|
||||
*/
|
||||
void keep_alive()
|
||||
#define KEEP_ALIVE_KICK_TIME_MS 500
|
||||
#define KEEP_ALIVE_TIMEOUT_MS 1000
|
||||
|
||||
static void gdb_timeout_warning(int64_t delta_time)
|
||||
{
|
||||
extern int gdb_actual_connections;
|
||||
|
||||
if (gdb_actual_connections)
|
||||
LOG_WARNING("keep_alive() was not invoked in the "
|
||||
"%d ms timelimit. GDB alive packet not "
|
||||
"sent! (%" PRId64 " ms). Workaround: increase "
|
||||
"\"set remotetimeout\" in GDB",
|
||||
KEEP_ALIVE_TIMEOUT_MS,
|
||||
delta_time);
|
||||
else
|
||||
LOG_DEBUG("keep_alive() was not invoked in the "
|
||||
"%d ms timelimit (%" PRId64 " ms). This may cause "
|
||||
"trouble with GDB connections.",
|
||||
KEEP_ALIVE_TIMEOUT_MS,
|
||||
delta_time);
|
||||
}
|
||||
|
||||
void keep_alive(void)
|
||||
{
|
||||
current_time = timeval_ms();
|
||||
if (current_time-last_time > 1000) {
|
||||
extern int gdb_actual_connections;
|
||||
|
||||
if (gdb_actual_connections)
|
||||
LOG_WARNING("keep_alive() was not invoked in the "
|
||||
"1000ms timelimit. GDB alive packet not "
|
||||
"sent! (%" PRId64 "). Workaround: increase "
|
||||
"\"set remotetimeout\" in GDB",
|
||||
current_time-last_time);
|
||||
else
|
||||
LOG_DEBUG("keep_alive() was not invoked in the "
|
||||
"1000ms timelimit (%" PRId64 "). This may cause "
|
||||
"trouble with GDB connections.",
|
||||
current_time-last_time);
|
||||
int64_t delta_time = current_time - last_time;
|
||||
|
||||
if (delta_time > KEEP_ALIVE_TIMEOUT_MS) {
|
||||
last_time = current_time;
|
||||
|
||||
gdb_timeout_warning(delta_time);
|
||||
}
|
||||
if (current_time-last_time > 500) {
|
||||
|
||||
if (delta_time > KEEP_ALIVE_KICK_TIME_MS) {
|
||||
last_time = current_time;
|
||||
|
||||
/* this will keep the GDB connection alive */
|
||||
LOG_USER_N("%s", "");
|
||||
|
||||
@@ -419,16 +448,20 @@ void keep_alive()
|
||||
*
|
||||
* These functions should be invoked at a well defined spot in server.c
|
||||
*/
|
||||
|
||||
last_time = current_time;
|
||||
}
|
||||
}
|
||||
|
||||
/* reset keep alive timer without sending message */
|
||||
void kept_alive()
|
||||
void kept_alive(void)
|
||||
{
|
||||
current_time = timeval_ms();
|
||||
|
||||
int64_t delta_time = current_time - last_time;
|
||||
|
||||
last_time = current_time;
|
||||
|
||||
if (delta_time > KEEP_ALIVE_TIMEOUT_MS)
|
||||
gdb_timeout_warning(delta_time);
|
||||
}
|
||||
|
||||
/* if we sleep for extended periods of time, we must invoke keep_alive() intermittantly */
|
||||
@@ -454,3 +487,28 @@ void busy_sleep(uint64_t ms)
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
/* Maximum size of socket error message retreived from operation system */
|
||||
#define MAX_SOCKET_ERR_MSG_LENGTH 256
|
||||
|
||||
/* Provide log message for the last socket error.
|
||||
Uses errno on *nix and WSAGetLastError() on Windows */
|
||||
void log_socket_error(const char *socket_desc)
|
||||
{
|
||||
int error_code;
|
||||
#ifdef _WIN32
|
||||
error_code = WSAGetLastError();
|
||||
char error_message[MAX_SOCKET_ERR_MSG_LENGTH];
|
||||
error_message[0] = '\0';
|
||||
DWORD retval = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, error_code, 0,
|
||||
error_message, MAX_SOCKET_ERR_MSG_LENGTH, NULL);
|
||||
error_message[MAX_SOCKET_ERR_MSG_LENGTH - 1] = '\0';
|
||||
const bool have_message = (retval != 0) && (error_message[0] != '\0');
|
||||
LOG_ERROR("Error on socket '%s': WSAGetLastError==%d%s%s.", socket_desc, error_code,
|
||||
(have_message ? ", message: " : ""),
|
||||
(have_message ? error_message : ""));
|
||||
#else
|
||||
error_code = errno;
|
||||
LOG_ERROR("Error on socket '%s': errno==%d, message: %s.", socket_desc, error_code, strerror(error_code));
|
||||
#endif
|
||||
}
|
||||
|
||||
+4
-1
@@ -82,6 +82,8 @@ void kept_alive(void);
|
||||
void alive_sleep(uint64_t ms);
|
||||
void busy_sleep(uint64_t ms);
|
||||
|
||||
void log_socket_error(const char *socket_desc);
|
||||
|
||||
typedef void (*log_callback_fn)(void *priv, const char *file, unsigned line,
|
||||
const char *function, const char *string);
|
||||
|
||||
@@ -95,7 +97,8 @@ int log_add_callback(log_callback_fn fn, void *priv);
|
||||
int log_remove_callback(log_callback_fn fn, void *priv);
|
||||
|
||||
char *alloc_vprintf(const char *fmt, va_list ap);
|
||||
char *alloc_printf(const char *fmt, ...);
|
||||
char *alloc_printf(const char *fmt, ...)
|
||||
__attribute__ ((format (PRINTF_ATTRIBUTE_FORMAT, 1, 2)));
|
||||
|
||||
extern int debug_level;
|
||||
|
||||
|
||||
@@ -29,4 +29,3 @@ add_help_text script "filename of OpenOCD script (tcl) to run"
|
||||
add_usage_text script "<file>"
|
||||
|
||||
#########
|
||||
|
||||
|
||||
+12
-22
@@ -126,17 +126,17 @@ static inline uint64_t le_to_h_u64(const uint8_t *buf)
|
||||
(uint64_t)buf[7] << 56);
|
||||
}
|
||||
|
||||
static inline uint32_t le_to_h_u32(const uint8_t* buf)
|
||||
static inline uint32_t le_to_h_u32(const uint8_t *buf)
|
||||
{
|
||||
return (uint32_t)((uint32_t)buf[0] | (uint32_t)buf[1] << 8 | (uint32_t)buf[2] << 16 | (uint32_t)buf[3] << 24);
|
||||
}
|
||||
|
||||
static inline uint32_t le_to_h_u24(const uint8_t* buf)
|
||||
static inline uint32_t le_to_h_u24(const uint8_t *buf)
|
||||
{
|
||||
return (uint32_t)((uint32_t)buf[0] | (uint32_t)buf[1] << 8 | (uint32_t)buf[2] << 16);
|
||||
}
|
||||
|
||||
static inline uint16_t le_to_h_u16(const uint8_t* buf)
|
||||
static inline uint16_t le_to_h_u16(const uint8_t *buf)
|
||||
{
|
||||
return (uint16_t)((uint16_t)buf[0] | (uint16_t)buf[1] << 8);
|
||||
}
|
||||
@@ -153,17 +153,17 @@ static inline uint64_t be_to_h_u64(const uint8_t *buf)
|
||||
(uint64_t)buf[0] << 56);
|
||||
}
|
||||
|
||||
static inline uint32_t be_to_h_u32(const uint8_t* buf)
|
||||
static inline uint32_t be_to_h_u32(const uint8_t *buf)
|
||||
{
|
||||
return (uint32_t)((uint32_t)buf[3] | (uint32_t)buf[2] << 8 | (uint32_t)buf[1] << 16 | (uint32_t)buf[0] << 24);
|
||||
}
|
||||
|
||||
static inline uint32_t be_to_h_u24(const uint8_t* buf)
|
||||
static inline uint32_t be_to_h_u24(const uint8_t *buf)
|
||||
{
|
||||
return (uint32_t)((uint32_t)buf[2] | (uint32_t)buf[1] << 8 | (uint32_t)buf[0] << 16);
|
||||
}
|
||||
|
||||
static inline uint16_t be_to_h_u16(const uint8_t* buf)
|
||||
static inline uint16_t be_to_h_u16(const uint8_t *buf)
|
||||
{
|
||||
return (uint16_t)((uint16_t)buf[1] | (uint16_t)buf[0] << 8);
|
||||
}
|
||||
@@ -192,7 +192,7 @@ static inline void h_u64_to_be(uint8_t *buf, int64_t val)
|
||||
buf[7] = (uint8_t) (val >> 0);
|
||||
}
|
||||
|
||||
static inline void h_u32_to_le(uint8_t* buf, int val)
|
||||
static inline void h_u32_to_le(uint8_t *buf, int val)
|
||||
{
|
||||
buf[3] = (uint8_t) (val >> 24);
|
||||
buf[2] = (uint8_t) (val >> 16);
|
||||
@@ -200,7 +200,7 @@ static inline void h_u32_to_le(uint8_t* buf, int val)
|
||||
buf[0] = (uint8_t) (val >> 0);
|
||||
}
|
||||
|
||||
static inline void h_u32_to_be(uint8_t* buf, int val)
|
||||
static inline void h_u32_to_be(uint8_t *buf, int val)
|
||||
{
|
||||
buf[0] = (uint8_t) (val >> 24);
|
||||
buf[1] = (uint8_t) (val >> 16);
|
||||
@@ -208,27 +208,27 @@ static inline void h_u32_to_be(uint8_t* buf, int val)
|
||||
buf[3] = (uint8_t) (val >> 0);
|
||||
}
|
||||
|
||||
static inline void h_u24_to_le(uint8_t* buf, int val)
|
||||
static inline void h_u24_to_le(uint8_t *buf, int val)
|
||||
{
|
||||
buf[2] = (uint8_t) (val >> 16);
|
||||
buf[1] = (uint8_t) (val >> 8);
|
||||
buf[0] = (uint8_t) (val >> 0);
|
||||
}
|
||||
|
||||
static inline void h_u24_to_be(uint8_t* buf, int val)
|
||||
static inline void h_u24_to_be(uint8_t *buf, int val)
|
||||
{
|
||||
buf[0] = (uint8_t) (val >> 16);
|
||||
buf[1] = (uint8_t) (val >> 8);
|
||||
buf[2] = (uint8_t) (val >> 0);
|
||||
}
|
||||
|
||||
static inline void h_u16_to_le(uint8_t* buf, int val)
|
||||
static inline void h_u16_to_le(uint8_t *buf, int val)
|
||||
{
|
||||
buf[1] = (uint8_t) (val >> 8);
|
||||
buf[0] = (uint8_t) (val >> 0);
|
||||
}
|
||||
|
||||
static inline void h_u16_to_be(uint8_t* buf, int val)
|
||||
static inline void h_u16_to_be(uint8_t *buf, int val)
|
||||
{
|
||||
buf[0] = (uint8_t) (val >> 8);
|
||||
buf[1] = (uint8_t) (val >> 0);
|
||||
@@ -349,7 +349,6 @@ typedef uint64_t uintmax_t;
|
||||
|
||||
#endif
|
||||
|
||||
#if BUILD_TARGET64
|
||||
typedef uint64_t target_addr_t;
|
||||
#define TARGET_ADDR_MAX UINT64_MAX
|
||||
#define TARGET_PRIdADDR PRId64
|
||||
@@ -357,15 +356,6 @@ typedef uint64_t target_addr_t;
|
||||
#define TARGET_PRIoADDR PRIo64
|
||||
#define TARGET_PRIxADDR PRIx64
|
||||
#define TARGET_PRIXADDR PRIX64
|
||||
#else
|
||||
typedef uint32_t target_addr_t;
|
||||
#define TARGET_ADDR_MAX UINT32_MAX
|
||||
#define TARGET_PRIdADDR PRId32
|
||||
#define TARGET_PRIuADDR PRIu32
|
||||
#define TARGET_PRIoADDR PRIo32
|
||||
#define TARGET_PRIxADDR PRIx32
|
||||
#define TARGET_PRIXADDR PRIX32
|
||||
#endif
|
||||
#define TARGET_ADDR_FMT "0x%8.8" TARGET_PRIxADDR
|
||||
|
||||
#endif /* OPENOCD_HELPER_TYPES_H */
|
||||
|
||||
Reference in New Issue
Block a user