v2:
- Split work into separate patches
The received packet will not be altered in any of the processing functions.
Some it can be made "const".
Change-Id: I7bb410224cf6daa74a6c494624176ccb9ae638ac
Signed-off-by: Christian Eggers <ceggers@gmx.de>
Reviewed-on: http://openocd.zylin.com/1919
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
.ps_command = linux_ps_command,
};
.ps_command = linux_ps_command,
};
-static int linux_thread_packet(struct connection *connection, char *packet,
+static int linux_thread_packet(struct connection *connection, char const *packet,
int packet_size);
static void linux_identify_current_threads(struct target *target);
int packet_size);
static void linux_identify_current_threads(struct target *target);
}
int linux_gdb_thread_packet(struct target *target,
}
int linux_gdb_thread_packet(struct target *target,
- struct connection *connection, char *packet,
+ struct connection *connection, char const *packet,
int packet_size)
{
int retval;
int packet_size)
{
int retval;
}
int linux_gdb_thread_update(struct target *target,
}
int linux_gdb_thread_update(struct target *target,
- struct connection *connection, char *packet,
+ struct connection *connection, char const *packet,
int packet_size)
{
int found = 0;
int packet_size)
{
int found = 0;
}
int linux_thread_extra_info(struct target *target,
}
int linux_thread_extra_info(struct target *target,
- struct connection *connection, char *packet,
+ struct connection *connection, char const *packet,
int packet_size)
{
int64_t threadid = 0;
int packet_size)
{
int64_t threadid = 0;
}
int linux_gdb_T_packet(struct connection *connection,
}
int linux_gdb_T_packet(struct connection *connection,
- struct target *target, char *packet, int packet_size)
+ struct target *target, char const *packet, int packet_size)
{
int64_t threadid;
struct linux_os *linux_os = (struct linux_os *)
{
int64_t threadid;
struct linux_os *linux_os = (struct linux_os *)
}
int linux_gdb_h_packet(struct connection *connection,
}
int linux_gdb_h_packet(struct connection *connection,
- struct target *target, char *packet, int packet_size)
+ struct target *target, char const *packet, int packet_size)
{
struct linux_os *linux_os = (struct linux_os *)
target->rtos->rtos_specific_params;
{
struct linux_os *linux_os = (struct linux_os *)
target->rtos->rtos_specific_params;
-static int linux_thread_packet(struct connection *connection, char *packet,
+static int linux_thread_packet(struct connection *connection, char const *packet,
int packet_size)
{
int retval = ERROR_OK;
int packet_size)
{
int retval = ERROR_OK;
-int rtos_thread_packet(struct connection *connection, char *packet, int packet_size);
+int rtos_thread_packet(struct connection *connection, const char *packet, int packet_size);
int rtos_smp_init(struct target *target)
{
int rtos_smp_init(struct target *target)
{
-int gdb_thread_packet(struct connection *connection, char *packet, int packet_size)
+int gdb_thread_packet(struct connection *connection, char const *packet, int packet_size)
{
struct target *target = get_target_from_connection(connection);
if (target->rtos == NULL)
{
struct target *target = get_target_from_connection(connection);
if (target->rtos == NULL)
*
* rtos_qsymbol() returns 1 if an RTOS has been detected, or 0 otherwise.
*/
*
* rtos_qsymbol() returns 1 if an RTOS has been detected, or 0 otherwise.
*/
-int rtos_qsymbol(struct connection *connection, char *packet, int packet_size)
+int rtos_qsymbol(struct connection *connection, char const *packet, int packet_size)
{
int rtos_detected = 0;
uint64_t addr = 0;
{
int rtos_detected = 0;
uint64_t addr = 0;
-int rtos_thread_packet(struct connection *connection, char *packet, int packet_size)
+int rtos_thread_packet(struct connection *connection, char const *packet, int packet_size)
{
struct target *target = get_target_from_connection(connection);
{
struct target *target = get_target_from_connection(connection);
threadid_t current_thread;
struct thread_detail *thread_details;
int thread_count;
threadid_t current_thread;
struct thread_detail *thread_details;
int thread_count;
- int (*gdb_thread_packet)(struct connection *connection, char *packet, int packet_size);
+ int (*gdb_thread_packet)(struct connection *connection, char const *packet, int packet_size);
void *rtos_specific_params;
};
void *rtos_specific_params;
};
int64_t stack_ptr,
char **hex_reg_list);
int rtos_try_next(struct target *target);
int64_t stack_ptr,
char **hex_reg_list);
int rtos_try_next(struct target *target);
-int gdb_thread_packet(struct connection *connection, char *packet, int packet_size);
+int gdb_thread_packet(struct connection *connection, char const *packet, int packet_size);
int rtos_get_gdb_reg_list(struct connection *connection);
int rtos_update_threads(struct target *target);
void rtos_free_threadlist(struct rtos *rtos);
int rtos_smp_init(struct target *target);
/* function for handling symbol access */
int rtos_get_gdb_reg_list(struct connection *connection);
int rtos_update_threads(struct target *target);
void rtos_free_threadlist(struct rtos *rtos);
int rtos_smp_init(struct target *target);
/* function for handling symbol access */
-int rtos_qsymbol(struct connection *connection, char *packet, int packet_size);
+int rtos_qsymbol(struct connection *connection, char const *packet, int packet_size);
}
static int gdb_last_signal_packet(struct connection *connection,
}
static int gdb_last_signal_packet(struct connection *connection,
- char *packet, int packet_size)
+ char const *packet, int packet_size)
{
struct target *target = get_target_from_connection(connection);
struct gdb_connection *gdb_con = connection->priv;
{
struct target *target = get_target_from_connection(connection);
struct gdb_connection *gdb_con = connection->priv;
/* copy over in register buffer */
static void gdb_target_to_reg(struct target *target,
/* copy over in register buffer */
static void gdb_target_to_reg(struct target *target,
- char *tstr, int str_len, uint8_t *bin)
+ char const *tstr, int str_len, uint8_t *bin)
{
if (str_len % 2) {
LOG_ERROR("BUG: gdb value with uneven number of characters encountered");
{
if (str_len % 2) {
LOG_ERROR("BUG: gdb value with uneven number of characters encountered");
}
static int gdb_get_registers_packet(struct connection *connection,
}
static int gdb_get_registers_packet(struct connection *connection,
- char *packet, int packet_size)
+ char const *packet, int packet_size)
{
struct target *target = get_target_from_connection(connection);
struct reg **reg_list;
{
struct target *target = get_target_from_connection(connection);
struct reg **reg_list;
}
static int gdb_set_registers_packet(struct connection *connection,
}
static int gdb_set_registers_packet(struct connection *connection,
- char *packet, int packet_size)
+ char const *packet, int packet_size)
{
struct target *target = get_target_from_connection(connection);
int i;
struct reg **reg_list;
int reg_list_size;
int retval;
{
struct target *target = get_target_from_connection(connection);
int i;
struct reg **reg_list;
int reg_list_size;
int retval;
#ifdef _DEBUG_GDB_IO_
LOG_DEBUG("-");
#ifdef _DEBUG_GDB_IO_
LOG_DEBUG("-");
}
static int gdb_get_register_packet(struct connection *connection,
}
static int gdb_get_register_packet(struct connection *connection,
- char *packet, int packet_size)
+ char const *packet, int packet_size)
{
struct target *target = get_target_from_connection(connection);
char *reg_packet;
{
struct target *target = get_target_from_connection(connection);
char *reg_packet;
}
static int gdb_set_register_packet(struct connection *connection,
}
static int gdb_set_register_packet(struct connection *connection,
- char *packet, int packet_size)
+ char const *packet, int packet_size)
{
struct target *target = get_target_from_connection(connection);
char *separator;
{
struct target *target = get_target_from_connection(connection);
char *separator;
* 8191 bytes by the looks of it. Why 8191 bytes instead of 8192?????
*/
static int gdb_read_memory_packet(struct connection *connection,
* 8191 bytes by the looks of it. Why 8191 bytes instead of 8192?????
*/
static int gdb_read_memory_packet(struct connection *connection,
- char *packet, int packet_size)
+ char const *packet, int packet_size)
{
struct target *target = get_target_from_connection(connection);
char *separator;
{
struct target *target = get_target_from_connection(connection);
char *separator;
}
static int gdb_write_memory_packet(struct connection *connection,
}
static int gdb_write_memory_packet(struct connection *connection,
- char *packet, int packet_size)
+ char const *packet, int packet_size)
{
struct target *target = get_target_from_connection(connection);
char *separator;
{
struct target *target = get_target_from_connection(connection);
char *separator;
}
static int gdb_write_memory_binary_packet(struct connection *connection,
}
static int gdb_write_memory_binary_packet(struct connection *connection,
- char *packet, int packet_size)
+ char const *packet, int packet_size)
{
struct target *target = get_target_from_connection(connection);
char *separator;
{
struct target *target = get_target_from_connection(connection);
char *separator;
}
static int gdb_step_continue_packet(struct connection *connection,
}
static int gdb_step_continue_packet(struct connection *connection,
- char *packet, int packet_size)
+ char const *packet, int packet_size)
{
struct target *target = get_target_from_connection(connection);
int current = 0;
{
struct target *target = get_target_from_connection(connection);
int current = 0;
}
static int gdb_breakpoint_watchpoint_packet(struct connection *connection,
}
static int gdb_breakpoint_watchpoint_packet(struct connection *connection,
- char *packet, int packet_size)
+ char const *packet, int packet_size)
{
struct target *target = get_target_from_connection(connection);
int type;
{
struct target *target = get_target_from_connection(connection);
int type;
-static int decode_xfer_read(char *_buf, char **annex, int *ofs, unsigned int *len)
+static int decode_xfer_read(char const *_buf, char **annex, int *ofs, unsigned int *len)
{
int ret = 0;
char *buf = strdup(_buf);
{
int ret = 0;
char *buf = strdup(_buf);
}
static int gdb_memory_map(struct connection *connection,
}
static int gdb_memory_map(struct connection *connection,
- char *packet, int packet_size)
+ char const *packet, int packet_size)
{
/* We get away with only specifying flash here. Regions that are not
* specified are treated as if we provided no memory map(if not we
{
/* We get away with only specifying flash here. Regions that are not
* specified are treated as if we provided no memory map(if not we
}
static int gdb_query_packet(struct connection *connection,
}
static int gdb_query_packet(struct connection *connection,
- char *packet, int packet_size)
+ char const *packet, int packet_size)
{
struct command_context *cmd_ctx = connection->cmd_ctx;
struct gdb_connection *gdb_connection = connection->priv;
{
struct command_context *cmd_ctx = connection->cmd_ctx;
struct gdb_connection *gdb_connection = connection->priv;
}
static int gdb_v_packet(struct connection *connection,
}
static int gdb_v_packet(struct connection *connection,
- char *packet, int packet_size)
+ char const *packet, int packet_size)
{
struct gdb_connection *gdb_connection = connection->priv;
struct gdb_service *gdb_service = connection->service->priv;
{
struct gdb_connection *gdb_connection = connection->priv;
struct gdb_service *gdb_service = connection->service->priv;
unsigned long addr;
unsigned long length;
unsigned long addr;
unsigned long length;
- char *parse = packet + 12;
+ char const *parse = packet + 12;
if (*parse == '\0') {
LOG_ERROR("incomplete vFlashErase packet received, dropping connection");
return ERROR_SERVER_REMOTE_CLOSED;
}
if (*parse == '\0') {
LOG_ERROR("incomplete vFlashErase packet received, dropping connection");
return ERROR_SERVER_REMOTE_CLOSED;
}
- addr = strtoul(parse, &parse, 16);
+ addr = strtoul(parse, (char **)&parse, 16);
if (*(parse++) != ',' || *parse == '\0') {
LOG_ERROR("incomplete vFlashErase packet received, dropping connection");
return ERROR_SERVER_REMOTE_CLOSED;
}
if (*(parse++) != ',' || *parse == '\0') {
LOG_ERROR("incomplete vFlashErase packet received, dropping connection");
return ERROR_SERVER_REMOTE_CLOSED;
}
- length = strtoul(parse, &parse, 16);
+ length = strtoul(parse, (char **)&parse, 16);
if (*parse != '\0') {
LOG_ERROR("incomplete vFlashErase packet received, dropping connection");
if (*parse != '\0') {
LOG_ERROR("incomplete vFlashErase packet received, dropping connection");
int retval;
unsigned long addr;
unsigned long length;
int retval;
unsigned long addr;
unsigned long length;
- char *parse = packet + 12;
+ char const *parse = packet + 12;
if (*parse == '\0') {
LOG_ERROR("incomplete vFlashErase packet received, dropping connection");
return ERROR_SERVER_REMOTE_CLOSED;
}
if (*parse == '\0') {
LOG_ERROR("incomplete vFlashErase packet received, dropping connection");
return ERROR_SERVER_REMOTE_CLOSED;
}
- addr = strtoul(parse, &parse, 16);
+ addr = strtoul(parse, (char **)&parse, 16);
if (*(parse++) != ':') {
LOG_ERROR("incomplete vFlashErase packet received, dropping connection");
return ERROR_SERVER_REMOTE_CLOSED;
if (*(parse++) != ':') {
LOG_ERROR("incomplete vFlashErase packet received, dropping connection");
return ERROR_SERVER_REMOTE_CLOSED;
/* create new section with content from packet buffer */
retval = image_add_section(gdb_connection->vflash_image,
/* create new section with content from packet buffer */
retval = image_add_section(gdb_connection->vflash_image,
- addr, length, 0x0, (uint8_t *)parse);
+ addr, length, 0x0, (uint8_t const *)parse);
if (retval != ERROR_OK)
return retval;
if (retval != ERROR_OK)
return retval;
* Fretcode,errno,Ctrl-C flag;call-specific attachment
*/
static int gdb_fileio_response_packet(struct connection *connection,
* Fretcode,errno,Ctrl-C flag;call-specific attachment
*/
static int gdb_fileio_response_packet(struct connection *connection,
- char *packet, int packet_size)
+ char const *packet, int packet_size)
{
struct target *target = get_target_from_connection(connection);
char *separator;
{
struct target *target = get_target_from_connection(connection);
char *separator;
struct gdb_service *gdb_service = connection->service->priv;
struct target *target = gdb_service->target;
struct gdb_service *gdb_service = connection->service->priv;
struct target *target = gdb_service->target;
- char *packet = gdb_packet_buffer;
+ char const *packet = gdb_packet_buffer;
int packet_size;
int retval;
struct gdb_connection *gdb_con = connection->priv;
int packet_size;
int retval;
struct gdb_connection *gdb_con = connection->priv;
*/
do {
packet_size = GDB_BUFFER_SIZE-1;
*/
do {
packet_size = GDB_BUFFER_SIZE-1;
- retval = gdb_get_packet(connection, packet, &packet_size);
+ retval = gdb_get_packet(connection, gdb_packet_buffer, &packet_size);
if (retval != ERROR_OK)
return retval;
/* terminate with zero */
if (retval != ERROR_OK)
return retval;
/* terminate with zero */
- packet[packet_size] = 0;
+ gdb_packet_buffer[packet_size] = '\0';
if (LOG_LEVEL_IS(LOG_LVL_DEBUG)) {
if (packet[0] == 'X') {
if (LOG_LEVEL_IS(LOG_LVL_DEBUG)) {
if (packet[0] == 'X') {
-int image_add_section(struct image *image, uint32_t base, uint32_t size, int flags, uint8_t *data)
+int image_add_section(struct image *image, uint32_t base, uint32_t size, int flags, uint8_t const *data)
{
struct imagesection *section;
{
struct imagesection *section;
void image_close(struct image *image);
int image_add_section(struct image *image, uint32_t base, uint32_t size,
void image_close(struct image *image);
int image_add_section(struct image *image, uint32_t base, uint32_t size,
- int flags, uint8_t *data);
+ int flags, uint8_t const *data);
int image_calculate_checksum(uint8_t *buffer, uint32_t nbytes,
uint32_t *checksum);
int image_calculate_checksum(uint8_t *buffer, uint32_t nbytes,
uint32_t *checksum);
/* packet j :smp status request */
int gdb_read_smp_packet(struct connection *connection,
/* packet j :smp status request */
int gdb_read_smp_packet(struct connection *connection,
- char *packet, int packet_size)
+ char const *packet, int packet_size)
{
struct target *target = get_target_from_connection(connection);
int retval = ERROR_OK;
{
struct target *target = get_target_from_connection(connection);
int retval = ERROR_OK;
/* J : smp set request */
int gdb_write_smp_packet(struct connection *connection,
/* J : smp set request */
int gdb_write_smp_packet(struct connection *connection,
- char *packet, int packet_size)
+ char const *packet, int packet_size)
{
struct target *target = get_target_from_connection(connection);
char *separator;
{
struct target *target = get_target_from_connection(connection);
char *separator;
#include "server/server.h"
int gdb_read_smp_packet(struct connection *connection,
#include "server/server.h"
int gdb_read_smp_packet(struct connection *connection,
- char *packet, int packet_size);
+ char const *packet, int packet_size);
int gdb_write_smp_packet(struct connection *connection,
int gdb_write_smp_packet(struct connection *connection,
- char *packet, int packet_size);
+ char const *packet, int packet_size);
Linking to existing account procedure
If you already have an account and want to add another login method
you
MUST first sign in with your existing account and
then change URL to read
https://review.openocd.org/login/?link
to get to this page again but this time it'll work for linking. Thank you.
SSH host keys fingerprints
1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=.. |
|+o.. . |
|*.o . . |
|+B . . . |
|Bo. = o S |
|Oo.+ + = |
|oB=.* = . o |
| =+=.+ + E |
|. .=o . o |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)