)]}'
{"src/rtos/rtos.c":[{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"3bd4c2f5bac47a3a87efa8a64526360430a2affe","unresolved":true,"context_lines":[{"line_number":560,"context_line":"\t\t\t * value for. To do that we allocate extra space off the"},{"line_number":561,"context_line":"\t\t\t * end of the struct, relying on the fact that"},{"line_number":562,"context_line":"\t\t\t * rtos_reg.value is the last element in the struct. */"},{"line_number":563,"context_line":"\t\t\treg_list \u003d calloc(1, sizeof(*reg_list) + DIV_ROUND_UP(reg_size, 8));"},{"line_number":564,"context_line":"\t\t\tif (!reg_list) {"},{"line_number":565,"context_line":"\t\t\t\tfree(reg_value);"},{"line_number":566,"context_line":"\t\t\t\tLOG_ERROR(\"Failed to allocated reg_list for %d-byte register.\","}],"source_content_type":"text/x-csrc","patch_set":2,"id":"f8879f4f_624aef83","line":563,"range":{"start_line":563,"start_character":3,"end_line":563,"end_character":71},"updated":"2025-09-17 14:12:23.000000000","message":"Yes, you are right, here is the offending code I missed before\n\nSo will you or anybody else from riscv-collab work on better solution?","commit_id":"9ea7fb74d17c184b958d32344995b58a95607644"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"94b24f1f9a1734f7447b83a98dbc4fcb43912d2b","unresolved":true,"context_lines":[{"line_number":560,"context_line":"\t\t\t * value for. To do that we allocate extra space off the"},{"line_number":561,"context_line":"\t\t\t * end of the struct, relying on the fact that"},{"line_number":562,"context_line":"\t\t\t * rtos_reg.value is the last element in the struct. */"},{"line_number":563,"context_line":"\t\t\treg_list \u003d calloc(1, sizeof(*reg_list) + DIV_ROUND_UP(reg_size, 8));"},{"line_number":564,"context_line":"\t\t\tif (!reg_list) {"},{"line_number":565,"context_line":"\t\t\t\tfree(reg_value);"},{"line_number":566,"context_line":"\t\t\t\tLOG_ERROR(\"Failed to allocated reg_list for %d-byte register.\","}],"source_content_type":"text/x-csrc","patch_set":2,"id":"4ee7c814_c386fe43","line":563,"range":{"start_line":563,"start_character":3,"end_line":563,"end_character":71},"in_reply_to":"2f630af7_b7789fd9","updated":"2025-10-21 06:11:57.000000000","message":"Marek, could you comment the solution with 9135? IMO 9135 solves your concern.","commit_id":"9ea7fb74d17c184b958d32344995b58a95607644"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"c0c0b4be406bc8712bca1ab7f1b27b4254fd666b","unresolved":false,"context_lines":[{"line_number":560,"context_line":"\t\t\t * value for. To do that we allocate extra space off the"},{"line_number":561,"context_line":"\t\t\t * end of the struct, relying on the fact that"},{"line_number":562,"context_line":"\t\t\t * rtos_reg.value is the last element in the struct. */"},{"line_number":563,"context_line":"\t\t\treg_list \u003d calloc(1, sizeof(*reg_list) + DIV_ROUND_UP(reg_size, 8));"},{"line_number":564,"context_line":"\t\t\tif (!reg_list) {"},{"line_number":565,"context_line":"\t\t\t\tfree(reg_value);"},{"line_number":566,"context_line":"\t\t\t\tLOG_ERROR(\"Failed to allocated reg_list for %d-byte register.\","}],"source_content_type":"text/x-csrc","patch_set":2,"id":"e495ce75_fe8e515f","line":563,"range":{"start_line":563,"start_character":3,"end_line":563,"end_character":71},"in_reply_to":"4ee7c814_c386fe43","updated":"2025-11-12 20:25:30.000000000","message":"We cannot wait forever, sorry","commit_id":"9ea7fb74d17c184b958d32344995b58a95607644"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"c6b72d5a6159b7d05d75e6df4c4b6a04e725cc96","unresolved":true,"context_lines":[{"line_number":560,"context_line":"\t\t\t * value for. To do that we allocate extra space off the"},{"line_number":561,"context_line":"\t\t\t * end of the struct, relying on the fact that"},{"line_number":562,"context_line":"\t\t\t * rtos_reg.value is the last element in the struct. */"},{"line_number":563,"context_line":"\t\t\treg_list \u003d calloc(1, sizeof(*reg_list) + DIV_ROUND_UP(reg_size, 8));"},{"line_number":564,"context_line":"\t\t\tif (!reg_list) {"},{"line_number":565,"context_line":"\t\t\t\tfree(reg_value);"},{"line_number":566,"context_line":"\t\t\t\tLOG_ERROR(\"Failed to allocated reg_list for %d-byte register.\","}],"source_content_type":"text/x-csrc","patch_set":2,"id":"2f630af7_b7789fd9","line":563,"range":{"start_line":563,"start_character":3,"end_line":563,"end_character":71},"in_reply_to":"f8879f4f_624aef83","updated":"2025-09-18 06:13:01.000000000","message":"I had an idea. See 9135: rtos: introduce rtos_put_gdb_reg() | https://review.openocd.org/c/openocd/+/9135","commit_id":"9ea7fb74d17c184b958d32344995b58a95607644"}],"src/rtos/rtos.h":[{"author":{"_account_id":1002143,"name":"Marek Vrbka","email":"marek.vrbka@codasip.com","username":"MarekVCodasip"},"change_message_id":"d38c009e5928eca6786626241d08183df2e6d2a0","unresolved":true,"context_lines":[{"line_number":54,"context_line":"\tuint32_t size;"},{"line_number":55,"context_line":"\tuint8_t value[16];"},{"line_number":56,"context_line":"\t/* WARNING: rtos_get_gdb_reg() relies on the fact that value is the last"},{"line_number":57,"context_line":"\t * element of this struct. Any new fields should be added *before* value. */"},{"line_number":58,"context_line":"};"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"struct rtos_type {"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"9820fccf_370a2aca","line":57,"updated":"2025-09-15 12:52:07.000000000","message":"Is there something blocking us from making `value` a regular pointer which would get allocated at runtime with the proper register size?\n\nThis solution feels hacky.","commit_id":"9ea7fb74d17c184b958d32344995b58a95607644"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"c0c0b4be406bc8712bca1ab7f1b27b4254fd666b","unresolved":false,"context_lines":[{"line_number":54,"context_line":"\tuint32_t size;"},{"line_number":55,"context_line":"\tuint8_t value[16];"},{"line_number":56,"context_line":"\t/* WARNING: rtos_get_gdb_reg() relies on the fact that value is the last"},{"line_number":57,"context_line":"\t * element of this struct. Any new fields should be added *before* value. */"},{"line_number":58,"context_line":"};"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"struct rtos_type {"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"fb90bbe9_18bb8eb7","line":57,"in_reply_to":"85c704bc_7e969a23","updated":"2025-11-12 20:25:30.000000000","message":"Ack","commit_id":"9ea7fb74d17c184b958d32344995b58a95607644"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"beba0fdf5f3bf5a03119397c74cb9670d4ad2492","unresolved":true,"context_lines":[{"line_number":54,"context_line":"\tuint32_t size;"},{"line_number":55,"context_line":"\tuint8_t value[16];"},{"line_number":56,"context_line":"\t/* WARNING: rtos_get_gdb_reg() relies on the fact that value is the last"},{"line_number":57,"context_line":"\t * element of this struct. Any new fields should be added *before* value. */"},{"line_number":58,"context_line":"};"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"struct rtos_type {"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"e6594d80_9221adab","line":57,"in_reply_to":"9820fccf_370a2aca","updated":"2025-09-15 13:56:36.000000000","message":"Are you aware that this patch is solely an import from riscv-collab github?\n\nAnyway, this Tim\u0027s comment does not seem to be true (probably a leftover from some development version) and we can simply drop it.","commit_id":"9ea7fb74d17c184b958d32344995b58a95607644"},{"author":{"_account_id":1002143,"name":"Marek Vrbka","email":"marek.vrbka@codasip.com","username":"MarekVCodasip"},"change_message_id":"dd165dc52ac34243f4c7d658fab0243a7ce5222c","unresolved":true,"context_lines":[{"line_number":54,"context_line":"\tuint32_t size;"},{"line_number":55,"context_line":"\tuint8_t value[16];"},{"line_number":56,"context_line":"\t/* WARNING: rtos_get_gdb_reg() relies on the fact that value is the last"},{"line_number":57,"context_line":"\t * element of this struct. Any new fields should be added *before* value. */"},{"line_number":58,"context_line":"};"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"struct rtos_type {"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"85c704bc_7e969a23","line":57,"in_reply_to":"e6594d80_9221adab","updated":"2025-09-17 13:51:05.000000000","message":"I would prefer to have a better solution. I need someone else to weigh in on this.\n\nThis was likely done as to minimize the amount of diverging changes, but that is a speculation on my part.\n\nAlso, looking at the code, I don\u0027t think that is the case and this comment should stay if it actually ends up getting merged. Consider a large vector register for example, if a new field came after 16 bytes, it would get overridden.","commit_id":"9ea7fb74d17c184b958d32344995b58a95607644"}]}
