X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Fserver%2Fgdb_server.c;h=9605f81abef45ef443ff839323da92b14aa883fb;hb=ec93209f51afc09e273a4742dc0b5f2cefc15e76;hp=21db2965ad151a005d0bb82fe2238846e9865b25;hpb=aa7c449600d6f6d634f587de6091421a1a877af5;p=openocd.git diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index 21db2965ad..9605f81abe 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -27,12 +27,12 @@ #include "config.h" #endif -#include "gdb_server.h" #include "breakpoints.h" #include "target_request.h" #include "register.h" #include "server.h" #include "flash.h" +#include "gdb_server.h" #include "image.h" #include "jtag.h" @@ -871,7 +871,7 @@ void gdb_str_to_target(struct target *target, char *tstr, struct reg *reg) uint8_t *buf; int buf_len; buf = reg->value; - buf_len = CEIL(reg->size, 8); + buf_len = DIV_ROUND_UP(reg->size, 8); for (i = 0; i < buf_len; i++) { @@ -940,25 +940,25 @@ int gdb_get_registers_packet(struct connection *connection, struct target *targe reg_packet_size += reg_list[i]->size; } - reg_packet = malloc(CEIL(reg_packet_size, 8) * 2); + reg_packet = malloc(DIV_ROUND_UP(reg_packet_size, 8) * 2); reg_packet_p = reg_packet; for (i = 0; i < reg_list_size; i++) { gdb_str_to_target(target, reg_packet_p, reg_list[i]); - reg_packet_p += CEIL(reg_list[i]->size, 8) * 2; + reg_packet_p += DIV_ROUND_UP(reg_list[i]->size, 8) * 2; } #ifdef _DEBUG_GDB_IO_ { char *reg_packet_p; - reg_packet_p = strndup(reg_packet, CEIL(reg_packet_size, 8) * 2); + reg_packet_p = strndup(reg_packet, DIV_ROUND_UP(reg_packet_size, 8) * 2); LOG_DEBUG("reg_packet: %s", reg_packet_p); free(reg_packet_p); } #endif - gdb_put_packet(connection, reg_packet, CEIL(reg_packet_size, 8) * 2); + gdb_put_packet(connection, reg_packet, DIV_ROUND_UP(reg_packet_size, 8) * 2); free(reg_packet); free(reg_list); @@ -997,21 +997,17 @@ int gdb_set_registers_packet(struct connection *connection, struct target *targe for (i = 0; i < reg_list_size; i++) { uint8_t *bin_buf; - int chars = (CEIL(reg_list[i]->size, 8) * 2); + int chars = (DIV_ROUND_UP(reg_list[i]->size, 8) * 2); if (packet_p + chars > packet + packet_size) { LOG_ERROR("BUG: register packet is too small for registers"); } - struct reg_arch_type *arch_type; - bin_buf = malloc(CEIL(reg_list[i]->size, 8)); + bin_buf = malloc(DIV_ROUND_UP(reg_list[i]->size, 8)); gdb_target_to_reg(target, packet_p, chars, bin_buf); - /* get register arch_type, and call set method */ - arch_type = register_get_arch_type(reg_list[i]->arch_type); - - arch_type->set(reg_list[i], bin_buf); + reg_list[i]->type->set(reg_list[i], bin_buf); /* advance packet pointer */ packet_p += chars; @@ -1051,11 +1047,11 @@ int gdb_get_register_packet(struct connection *connection, struct target *target exit(-1); } - reg_packet = malloc(CEIL(reg_list[reg_num]->size, 8) * 2); + reg_packet = malloc(DIV_ROUND_UP(reg_list[reg_num]->size, 8) * 2); gdb_str_to_target(target, reg_packet, reg_list[reg_num]); - gdb_put_packet(connection, reg_packet, CEIL(reg_list[reg_num]->size, 8) * 2); + gdb_put_packet(connection, reg_packet, DIV_ROUND_UP(reg_list[reg_num]->size, 8) * 2); free(reg_list); free(reg_packet); @@ -1071,7 +1067,6 @@ int gdb_set_register_packet(struct connection *connection, struct target *target struct reg **reg_list; int reg_list_size; int retval; - struct reg_arch_type *arch_type; LOG_DEBUG("-"); @@ -1093,16 +1088,14 @@ int gdb_set_register_packet(struct connection *connection, struct target *target } /* convert from GDB-string (target-endian) to hex-string (big-endian) */ - bin_buf = malloc(CEIL(reg_list[reg_num]->size, 8)); - int chars = (CEIL(reg_list[reg_num]->size, 8) * 2); + bin_buf = malloc(DIV_ROUND_UP(reg_list[reg_num]->size, 8)); + int chars = (DIV_ROUND_UP(reg_list[reg_num]->size, 8) * 2); /* fix!!! add some sanity checks on packet size here */ gdb_target_to_reg(target, separator + 1, chars, bin_buf); - /* get register arch_type, and call set method */ - arch_type = register_get_arch_type(reg_list[reg_num]->arch_type); - arch_type->set(reg_list[reg_num], bin_buf); + reg_list[reg_num]->type->set(reg_list[reg_num], bin_buf); gdb_put_packet(connection, "OK", 2); @@ -2252,14 +2245,14 @@ int gdb_init(void) COMMAND_HANDLER(handle_gdb_sync_command) { - if (argc != 0) + if (CMD_ARGC != 0) { return ERROR_COMMAND_SYNTAX_ERROR; } if (current_gdb_connection == NULL) { - command_print(cmd_ctx, + command_print(CMD_CTX, "gdb_sync command can only be run from within gdb using \"monitor gdb_sync\""); return ERROR_FAIL; } @@ -2277,20 +2270,20 @@ COMMAND_HANDLER(handle_gdb_port_command) COMMAND_HANDLER(handle_gdb_memory_map_command) { - if (argc == 1) + if (CMD_ARGC == 1) { - if (strcmp(args[0], "enable") == 0) + if (strcmp(CMD_ARGV[0], "enable") == 0) { gdb_use_memory_map = 1; return ERROR_OK; } - else if (strcmp(args[0], "disable") == 0) + else if (strcmp(CMD_ARGV[0], "disable") == 0) { gdb_use_memory_map = 0; return ERROR_OK; } else - LOG_WARNING("invalid gdb_memory_map configuration directive %s", args[0]); + LOG_WARNING("invalid gdb_memory_map configuration directive %s", CMD_ARGV[0]); } return ERROR_COMMAND_SYNTAX_ERROR; @@ -2298,20 +2291,20 @@ COMMAND_HANDLER(handle_gdb_memory_map_command) COMMAND_HANDLER(handle_gdb_flash_program_command) { - if (argc == 1) + if (CMD_ARGC == 1) { - if (strcmp(args[0], "enable") == 0) + if (strcmp(CMD_ARGV[0], "enable") == 0) { gdb_flash_program = 1; return ERROR_OK; } - else if (strcmp(args[0], "disable") == 0) + else if (strcmp(CMD_ARGV[0], "disable") == 0) { gdb_flash_program = 0; return ERROR_OK; } else - LOG_WARNING("invalid gdb_flash_program configuration directive: %s", args[0]); + LOG_WARNING("invalid gdb_flash_program configuration directive: %s", CMD_ARGV[0]); } return ERROR_COMMAND_SYNTAX_ERROR; @@ -2319,20 +2312,20 @@ COMMAND_HANDLER(handle_gdb_flash_program_command) COMMAND_HANDLER(handle_gdb_report_data_abort_command) { - if (argc == 1) + if (CMD_ARGC == 1) { - if (strcmp(args[0], "enable") == 0) + if (strcmp(CMD_ARGV[0], "enable") == 0) { gdb_report_data_abort = 1; return ERROR_OK; } - else if (strcmp(args[0], "disable") == 0) + else if (strcmp(CMD_ARGV[0], "disable") == 0) { gdb_report_data_abort = 0; return ERROR_OK; } else - LOG_WARNING("invalid gdb_report_data_abort configuration directive: %s", args[0]); + LOG_WARNING("invalid gdb_report_data_abort configuration directive: %s", CMD_ARGV[0]); } return ERROR_COMMAND_SYNTAX_ERROR; @@ -2341,19 +2334,19 @@ COMMAND_HANDLER(handle_gdb_report_data_abort_command) /* gdb_breakpoint_override */ COMMAND_HANDLER(handle_gdb_breakpoint_override_command) { - if (argc == 0) + if (CMD_ARGC == 0) { - } else if (argc == 1) + } else if (CMD_ARGC == 1) { gdb_breakpoint_override = 1; - if (strcmp(args[0], "hard") == 0) + if (strcmp(CMD_ARGV[0], "hard") == 0) { gdb_breakpoint_override_type = BKPT_HARD; - } else if (strcmp(args[0], "soft") == 0) + } else if (strcmp(CMD_ARGV[0], "soft") == 0) { gdb_breakpoint_override_type = BKPT_SOFT; - } else if (strcmp(args[0], "disable") == 0) + } else if (strcmp(CMD_ARGV[0], "disable") == 0) { gdb_breakpoint_override = 0; }