)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"70d0b745_05713fd8","updated":"2021-09-11 22:07:17.000000000","message":"After so many iterations the code is far better than my first review. Good. Removed my -2. Thanks for your effort.\nI have run a quick check and still some minor fixes.\nNotice that all the new files add an unnecessarily empty line at the end of file. Please remove them.","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"cac233e6_71d5e488","updated":"2021-09-16 09:48:59.000000000","message":"Thank you Antionio and Oleksij for your time and very comprehensive review. I have addressed your comments and will be uploading a new patch soon.","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"c7991a7d_61ecb44c","updated":"2021-09-18 13:02:26.000000000","message":"very time consuming, this review.\nI think I have covered most of the points, but I will review it again after your feedback","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"a578d6ec_ddac7e44","in_reply_to":"c7991a7d_61ecb44c","updated":"2021-10-07 15:25:41.000000000","message":"Thank you for a detailed review. I was out on vacation and now respond to the points you have raised.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"8a16719b5d4a09b1086659de330df1f8032ec76e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"871758f3_17a74487","updated":"2021-10-12 18:00:08.000000000","message":"hi Antonio,\n\nis there anything that I need to address in this patch after removing the target-related functionality (to be submitted as a separate patch) ? Copyright and license, anything else ? ","commit_id":"3f85385b604c745788c68c8f3ed760c6d7685c71"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"2b9c613eca6a456721bbd31b3bf090a4c97b2fbc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"6521aa52_09f2ce5e","in_reply_to":"63b7dd29_f82963d2","updated":"2021-10-21 18:53:25.000000000","message":"hi Antonio,\nOK, I have removed all target-related functionality from the driver. It\u0027s only partially functional, as it does not allow time advance in simulated/emulated target, unless the debugger is connected and active.","commit_id":"3f85385b604c745788c68c8f3ed760c6d7685c71"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"28b3b9909d68ab95fcdaa97db4b1dd860620bee8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"63b7dd29_f82963d2","in_reply_to":"871758f3_17a74487","updated":"2021-10-16 08:58:02.000000000","message":"Hi Jacek,\nplease only split the target override functionality.\nCopyright and license are ok, the modification would be part of a project-wise change later or, probably early next year.\nI\u0027m checking again the whole patch, but I think should be good enough.","commit_id":"3f85385b604c745788c68c8f3ed760c6d7685c71"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"714e0aec355378b80c7b0b8b0c6cdae1771ad0dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"c45d605c_1a2b980c","updated":"2021-11-24 17:50:20.000000000","message":"\u003e As reviewer you have take responsibility of work and time on other side of the patch.\n\nYou\u0027re right, but the \"other side\" should read the coding style guide before submitting patches. It\u0027s annoying to highlight the same things over and over again (in the same patch).\n\n\u003e Even if there more things can be done, I tend to ignore it. It triggers for me not enough pain to continue reviewing and it makes no sense to block it. We need some mainlined starting point to let people use, test and extend it.\n\nThat\u0027s one reason why we have such an ugly code base ;)\n\n\u003e \"is not of high importance for the OpenOCD project\" kills motivation to do any thing :)\n\nThis should just highlight that it\u0027s not worth to ignore all c(oding style) issues and merge it as is ;)","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1001661,"name":"Daniel Goehring","email":"dgoehrin@os.amperecomputing.com","username":"dgoehrin"},"change_message_id":"5548365bd4af4032f28daea7d616f040e1f6435d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"ff1c8d2b_3a7bdedc","updated":"2021-11-08 16:24:13.000000000","message":"I haven\u0027t reviewed the source code but can verify that it works on our emulation models. My comments address integration issues I encountered during the testing.","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"e2109b90821f0fff8af80a0f63c1424ff1808518","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"8e5b50a0_bc1ab642","updated":"2021-11-01 17:59:49.000000000","message":"I think this can be merged as is, at last.\nOleksij, Mark, Tarek, any concern?","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"d17e4ee3760bf3e14f9b1bd4fedf12a1f8cdaeef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"e08646c7_45f087c8","updated":"2021-12-09 18:51:29.000000000","message":"Thank you Oleksij and Antionio for the encouraging comments and Marc, Daniel for the review and comments. I have addressed most of them and will be updating another patch. Hopefully that makes it into the main and the 0.12 release. \nI have implemented another transport in the client and modified some config files to reflect that. This version will be however submitted as a new change together with the target-related functionality.  ","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"f8e7ecd84a7c289c545e62c6d70a33a09a69d5dc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"ae036cf7_a1cf4f5e","updated":"2021-11-06 10:14:29.000000000","message":"The code still looks very chaotic and hard to understand. Is there a documentation for the protocol publicly available? The code has inconsistent comments, variable naming, too large variable scopes and it (still) mixes signed and unsigned data types.\nSince the driver is not of high importance for the OpenOCD project, I won\u0027t rush with the merge.","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"5062ae95d4decd940387657930f46cf23744c5b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"d488c641_36babb61","in_reply_to":"813255d1_2ef96cb6","updated":"2021-11-19 09:13:23.000000000","message":"Even if there more things can be done, I tend to ignore it. It triggers for me not enough pain to continue reviewing and it makes no sense to block it. We need some mainlined starting point to let people use, test and extend it.","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"973f318d74ea45e4cce277d4aa25f515636f2198","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"813255d1_2ef96cb6","in_reply_to":"8e5b50a0_bc1ab642","updated":"2021-11-04 08:50:15.000000000","message":"Thank you Antionio. No action item on my side then.","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"03d6a9a6d05f7b013dacd231b51ec87a2ffad5a5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"dec8fa47_fc1cd7cd","in_reply_to":"ae036cf7_a1cf4f5e","updated":"2021-11-19 09:09:38.000000000","message":"Hi Marc, please point to things which should be fixed. As reviewer you have take responsibility of work and time on other side of the patch. \"is not of high importance for the OpenOCD project\" kills motivation to do any thing :)","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"280f9a5d770ca29932c2057b7904f1c9b40d44cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"b587ddc6_87f0f049","updated":"2022-01-30 11:12:00.000000000","message":"Thanks for the improvements Jacek!","commit_id":"a00c26aab682bb430be2f73d6c713d83fc5cfd97"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"0adbcee0632dc6798eca1474dbbc40750a411964","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"e6df3095_d4a44131","updated":"2022-01-30 15:44:38.000000000","message":"Thanks!","commit_id":"a00c26aab682bb430be2f73d6c713d83fc5cfd97"}],"doc/openocd.texi":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":3357,"context_line":"@end deffn"},{"line_number":3358,"context_line":""},{"line_number":3359,"context_line":"@deffn {Config Command} {vdebug register target}"},{"line_number":3360,"context_line":"Registers target-specific routines. The target needs to be examined at the time"},{"line_number":3361,"context_line":"this routine is called, usually done through configuring target examine-end event."},{"line_number":3362,"context_line":"It activates the backdoor memory access for memories specified with vdebug mem_path"},{"line_number":3363,"context_line":"@end deffn"}],"source_content_type":"text/x-texinfo","patch_set":11,"id":"8ef8ad59_0a963180","line":3360,"updated":"2021-09-18 13:02:26.000000000","message":"More detailed, e.g.:\nOverrides target-specific routines (e.g. memory write) for performance reasons.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"973f318d74ea45e4cce277d4aa25f515636f2198","unresolved":false,"context_lines":[{"line_number":3357,"context_line":"@end deffn"},{"line_number":3358,"context_line":""},{"line_number":3359,"context_line":"@deffn {Config Command} {vdebug register target}"},{"line_number":3360,"context_line":"Registers target-specific routines. The target needs to be examined at the time"},{"line_number":3361,"context_line":"this routine is called, usually done through configuring target examine-end event."},{"line_number":3362,"context_line":"It activates the backdoor memory access for memories specified with vdebug mem_path"},{"line_number":3363,"context_line":"@end deffn"}],"source_content_type":"text/x-texinfo","patch_set":11,"id":"447502a3_73c06f56","line":3360,"in_reply_to":"497b6413_c5368da4","updated":"2021-11-04 08:50:15.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":true,"context_lines":[{"line_number":3357,"context_line":"@end deffn"},{"line_number":3358,"context_line":""},{"line_number":3359,"context_line":"@deffn {Config Command} {vdebug register target}"},{"line_number":3360,"context_line":"Registers target-specific routines. The target needs to be examined at the time"},{"line_number":3361,"context_line":"this routine is called, usually done through configuring target examine-end event."},{"line_number":3362,"context_line":"It activates the backdoor memory access for memories specified with vdebug mem_path"},{"line_number":3363,"context_line":"@end deffn"}],"source_content_type":"text/x-texinfo","patch_set":11,"id":"497b6413_c5368da4","line":3360,"in_reply_to":"8ef8ad59_0a963180","updated":"2021-10-07 15:25:41.000000000","message":"Well, this routine just registers target routines, in this patch it is memory_write. The driver does not overwrite it, it redirects it only for one specific case - the direct image load into the declared memory with a matched address range. \nI keep the generic name because more target routines may need to be registered, e.g to implement another, target specific, faster transport layer.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"}],"jimtcl":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5db1b09d795246bb2b1a58571cc10ca15b8a6e7a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Subproject commit 0aa0fb4e3a38d38a49de9eb585d93d63a370dcf6"}],"source_content_type":"x-git/gitlink","patch_set":4,"id":"aedf27f1_cf281d99","line":1,"updated":"2021-04-12 23:08:37.000000000","message":"There is some problem here too!.\nYou have reverted to a previous jimtcl version 0.79.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"29268d64de4e930a2e545f0935d46ac6e073457d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Subproject commit 0aa0fb4e3a38d38a49de9eb585d93d63a370dcf6"}],"source_content_type":"x-git/gitlink","patch_set":4,"id":"aedf27f1_9246ba53","line":1,"in_reply_to":"aedf27f1_cf281d99","updated":"2021-04-14 09:40:14.000000000","message":"Hmm, I have not reverted, it seems like it\u0027s under git ignore and it not been updated. I need to force an update here?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4d4533d0857bfc8b23621453e918f2a64a452aa1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Subproject commit 0aa0fb4e3a38d38a49de9eb585d93d63a370dcf6"}],"source_content_type":"x-git/gitlink","patch_set":5,"id":"aedf27f1_09193d27","line":1,"updated":"2021-05-17 17:27:18.000000000","message":"Still this error. You should not change version of jimtcl","commit_id":"f3b5c9be0b8949651a1ff080f3c82467b09351c0"}],"src/jtag/drivers/vdebug.c":[{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"2e89a4332304a59ca4e63ab370c65efe32919420","unresolved":false,"context_lines":[{"line_number":212,"context_line":""},{"line_number":213,"context_line":"static struct target* ptarg \u003d NULL;"},{"line_number":214,"context_line":"static int (*targ_poll)(struct target* ptar) \u003d NULL;"},{"line_number":215,"context_line":"static int (*targ_write_memory)(struct target *target, target_addr_t address, uint32_t size, uint32_t count, const uint8_t *buffer) \u003d NULL;"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"static void debug_open(void)"},{"line_number":218,"context_line":"{"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"ceda9b01_c1fea5ab","line":215,"updated":"2021-03-13 12:18:10.000000000","message":"move all of this globals to a driver specific struct and allocate it on probe","commit_id":"5727e30ac46c281e7e3925798abcc8dcba6bd2ff"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"2e89a4332304a59ca4e63ab370c65efe32919420","unresolved":false,"context_lines":[{"line_number":227,"context_line":"      debug_log \u003d fopen( msg, \"w\" );"},{"line_number":228,"context_line":"    }"},{"line_number":229,"context_line":"    else"},{"line_number":230,"context_line":"      debug_log \u003d fopen( p, \"w\" );"},{"line_number":231,"context_line":"    if( debug \u003e 0x100 )"},{"line_number":232,"context_line":"    {"},{"line_number":233,"context_line":"      debug_out \u003d debug \u003e\u003e 8;"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"ceda9b01_e1fba9b8","line":230,"updated":"2021-03-13 12:18:10.000000000","message":"why do we implement extra logging with own file handling?","commit_id":"5727e30ac46c281e7e3925798abcc8dcba6bd2ff"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"2e89a4332304a59ca4e63ab370c65efe32919420","unresolved":false,"context_lines":[{"line_number":307,"context_line":"#endif"},{"line_number":308,"context_line":"  else if (setsockopt(hsock, SOL_SOCKET, SO_SNDBUF, (const char*)\u0026buflen, sizeof(buflen)) \u003c 0)"},{"line_number":309,"context_line":"    rc \u003d socket_error();"},{"line_number":310,"context_line":"  else if (setsockopt(hsock, SOL_SOCKET, SO_RCVBUF, (const char*)\u0026buflen, sizeof(buflen)) \u003c 0)"},{"line_number":311,"context_line":"    rc \u003d socket_error();"},{"line_number":312,"context_line":"  if (rc)"},{"line_number":313,"context_line":"    rc \u003d debug_msg( VD_ERR_SOC_OPT, \"socket_open: cannot set socket option, error %d\", rc );"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"ceda9b01_e16409b1","line":310,"updated":"2021-03-13 12:18:10.000000000","message":"I understand what you mean, by this endless else if statements. But now try to read it by your self:\n\nif (socket())\nelse if (setsockopt())\nelse if (setsockopt())\n\nWithout knowing what this functions do, it is readed as:\nIf socket exist, skip setsockopt, if no socket, do setsockopt.\n\nReadability of this code is not so good.\n\nif (some thing exist)\nelse if (some thing else)\n\nwhat you are trying to test is an error case, so make it readable from first look:\n\nerror \u003d socket();\nif (error)\n   do what you need..;\n   goto error, or return error;\n\nthe same issue is almost in every function of this driver","commit_id":"5727e30ac46c281e7e3925798abcc8dcba6bd2ff"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"2e89a4332304a59ca4e63ab370c65efe32919420","unresolved":false,"context_lines":[{"line_number":389,"context_line":"{"},{"line_number":390,"context_line":"  int rc;"},{"line_number":391,"context_line":"  "},{"line_number":392,"context_line":"  if( pm )"},{"line_number":393,"context_line":"  {"},{"line_number":394,"context_line":"    pm-\u003ecmd \u003d 0x01;"},{"line_number":395,"context_line":"    pm-\u003ewid \u003d (uint16_t)VD_VERSION;"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"ceda9b01_a12da143","line":392,"updated":"2021-03-13 12:18:10.000000000","message":"one single if statement","commit_id":"5727e30ac46c281e7e3925798abcc8dcba6bd2ff"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"2e89a4332304a59ca4e63ab370c65efe32919420","unresolved":false,"context_lines":[{"line_number":391,"context_line":"  "},{"line_number":392,"context_line":"  if( pm )"},{"line_number":393,"context_line":"  {"},{"line_number":394,"context_line":"    pm-\u003ecmd \u003d 0x01;"},{"line_number":395,"context_line":"    pm-\u003ewid \u003d (uint16_t)VD_VERSION;"},{"line_number":396,"context_line":"    pm-\u003ewbytes \u003d pm-\u003erbytes \u003d pm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":397,"context_line":"    if( (rc \u003d wait_server( hsock, pm )) !\u003d 0 ) // communication problem"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"ceda9b01_81017dbb","line":394,"updated":"2021-03-13 12:18:10.000000000","message":"use defines for all magic numbers","commit_id":"5727e30ac46c281e7e3925798abcc8dcba6bd2ff"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"2e89a4332304a59ca4e63ab370c65efe32919420","unresolved":false,"context_lines":[{"line_number":401,"context_line":"      debug_msg( VD_ERR_VERSION, \"vdebug_open: server version %d too old for the client %d\", pm-\u003erid, pm-\u003ewid );"},{"line_number":402,"context_line":"      pm-\u003ecmd \u003d 0x02;                  // let server close the connection"},{"line_number":403,"context_line":"      wait_server( hsock, pm );"},{"line_number":404,"context_line":"      rc \u003d 0x207;"},{"line_number":405,"context_line":"    }"},{"line_number":406,"context_line":"    else"},{"line_number":407,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"ceda9b01_81289d33","line":404,"updated":"2021-03-13 12:18:10.000000000","message":"what is this number?","commit_id":"5727e30ac46c281e7e3925798abcc8dcba6bd2ff"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"2e89a4332304a59ca4e63ab370c65efe32919420","unresolved":false,"context_lines":[{"line_number":583,"context_line":"    }"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    if( !waddr )                       // no action"},{"line_number":586,"context_line":"      ;"},{"line_number":587,"context_line":"    else if( !trans_last )             // buffered request"},{"line_number":588,"context_line":"      pm-\u003eoffseth \u003d waddr + hwords*2;  // offset for next transaction, must be even"},{"line_number":589,"context_line":"    else                               // execute batch of requests"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"ceda9b01_a10601d0","line":586,"updated":"2021-03-13 12:18:10.000000000","message":"i already lost the point in this function, please split it.","commit_id":"5727e30ac46c281e7e3925798abcc8dcba6bd2ff"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"2e89a4332304a59ca4e63ab370c65efe32919420","unresolved":false,"context_lines":[{"line_number":654,"context_line":"    rc \u003d wait_server( hsock, pm );"},{"line_number":655,"context_line":"    if( rc ) "},{"line_number":656,"context_line":"      debug_msg( rc, \"vdebug_mem_open: Error 0x%x opening memory %s\", rc, path );"},{"line_number":657,"context_line":"    else"},{"line_number":658,"context_line":"    {"},{"line_number":659,"context_line":"      mem_width[ndx] \u003d pm-\u003erd32[0]/8;     // memory width in bytes"},{"line_number":660,"context_line":"      mem_depth[ndx] \u003d pm-\u003erd32[1];       // memory depth in words"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"ceda9b01_410b95d9","line":657,"updated":"2021-03-13 12:18:10.000000000","message":"if error\n   return\n\nno need to else here","commit_id":"5727e30ac46c281e7e3925798abcc8dcba6bd2ff"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"2e89a4332304a59ca4e63ab370c65efe32919420","unresolved":false,"context_lines":[{"line_number":685,"context_line":"  {"},{"line_number":686,"context_line":"    pm-\u003ecmd \u003d 0x23;"},{"line_number":687,"context_line":"    pm-\u003ewbytes \u003d num;"},{"line_number":688,"context_line":"    pm-\u003ewwords \u003d (num+mem_width[ndx]-1)/mem_width[ndx];"},{"line_number":689,"context_line":"    pm-\u003erbytes \u003d pm-\u003erwords \u003d 0;"},{"line_number":690,"context_line":"#ifndef _M_IX86"},{"line_number":691,"context_line":"    pm-\u003eoffset \u003d (uint32_t)(addr/mem_width[ndx]);"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"ceda9b01_61101905","line":688,"updated":"2021-03-13 12:18:10.000000000","message":"putting complete function in to if statement harms readability.\n\nif (!pm)\n   return\n\n...\nnormal function flow..","commit_id":"5727e30ac46c281e7e3925798abcc8dcba6bd2ff"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"2e89a4332304a59ca4e63ab370c65efe32919420","unresolved":false,"context_lines":[{"line_number":722,"context_line":"    pollcycles \u003d pollmin;"},{"line_number":723,"context_line":"  vdebug_wait( hsocket, pbuf, pollcycles );"},{"line_number":724,"context_line":"  gettimeofday( \u0026ts, NULL );"},{"line_number":725,"context_line":"  cmdtime \u003d (uint32_t)((te.tv_sec - ts.tv_sec) * 1000000 + te.tv_usec - ts.tv_usec);"},{"line_number":726,"context_line":"  LOG_DEBUG(\"poll state:%u cycles:%u executed in %uus\", pt-\u003estate, pollcycles, cmdtime );"},{"line_number":727,"context_line":"  return rc;"},{"line_number":728,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"ceda9b01_01f58dc7","line":725,"updated":"2021-03-13 12:18:10.000000000","message":"replace 1000000 to some thing like USEC_PER_SEC","commit_id":"5727e30ac46c281e7e3925798abcc8dcba6bd2ff"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"2e89a4332304a59ca4e63ab370c65efe32919420","unresolved":false,"context_lines":[{"line_number":775,"context_line":"  debug_open();"},{"line_number":776,"context_line":"  for( rc \u003d 0; rc \u003c VD_MAX_MEMORIES; rc++ )"},{"line_number":777,"context_line":"    mem_width[rc] \u003d 0;"},{"line_number":778,"context_line":"  pollmin \u003d 1000; pollmax \u003d 5000; pollcycles \u003d pollmax;"},{"line_number":779,"context_line":"  type \u003d VD_BFM_JTAG;"},{"line_number":780,"context_line":"  sig_mask \u003d VD_SIG_RESET | VD_SIG_TRST | VD_SIG_TCKDIV;"},{"line_number":781,"context_line":"  rc \u003d ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"ceda9b01_21f211e0","line":778,"updated":"2021-03-13 12:18:10.000000000","message":"why 1000? why 5000? replace to defines with description, why this numbers","commit_id":"5727e30ac46c281e7e3925798abcc8dcba6bd2ff"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"460b30671c482468a0edc16843b85115485d4238","unresolved":false,"context_lines":[{"line_number":1154,"context_line":"static const struct command_registration vdebug_command_handlers[] \u003d "},{"line_number":1155,"context_line":"{"},{"line_number":1156,"context_line":"  {"},{"line_number":1157,"context_line":"    .name \u003d \"server\","},{"line_number":1158,"context_line":"    .handler \u003d \u0026vdebug_set_server,"},{"line_number":1159,"context_line":"    .mode \u003d COMMAND_CONFIG,"},{"line_number":1160,"context_line":"    .help \u003d \"set the vdebug server name or address\","}],"source_content_type":"text/x-csrc","patch_set":1,"id":"ceda9b01_016eed93","line":1157,"updated":"2021-03-13 11:55:38.000000000","message":"\u0027server\u0027 is very generic ;) Please use subcommands such that your config looks like \u0027vdebug server ...\u0027.\n\nYou can check other drivers to get an idea how this works.","commit_id":"5727e30ac46c281e7e3925798abcc8dcba6bd2ff"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"be7cd3ba2010fdbe86ce01733332fa77c26c7eb0","unresolved":false,"context_lines":[{"line_number":20,"context_line":" *# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE"},{"line_number":21,"context_line":" *# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."},{"line_number":22,"context_line":" *#----------------------------------------------------------------------------"},{"line_number":23,"context_line":" *# Revisions   :"},{"line_number":24,"context_line":" *# 41 10.12.20 : openocd 0.10, based on vd_client and vd_test"},{"line_number":25,"context_line":" *# 42 18.03.21 : openocd 0.11 formatting and style"},{"line_number":26,"context_line":" *#----------------------------------------------------------------------------"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_4f4e6d9d","line":23,"updated":"2021-04-12 18:58:11.000000000","message":"no revision history within the file. it will bitrot with the time","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"be7cd3ba2010fdbe86ce01733332fa77c26c7eb0","unresolved":false,"context_lines":[{"line_number":24,"context_line":" *# 41 10.12.20 : openocd 0.10, based on vd_client and vd_test"},{"line_number":25,"context_line":" *# 42 18.03.21 : openocd 0.11 formatting and style"},{"line_number":26,"context_line":" *#----------------------------------------------------------------------------"},{"line_number":27,"context_line":"*/"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"/*!"},{"line_number":30,"context_line":" * @file"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_af811994","line":27,"updated":"2021-04-12 18:58:11.000000000","message":"Please replace this boiler license plate with SPDX tag:\n// SPDX-License-Identifier: BSD-2-Clause                                                        \n// SPDX-FileCopyrightText: 2020-2021 Cadence Design Systems, Inc.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"2704447e68f4228a4d240bb1dfcdfefb50ac9c58","unresolved":false,"context_lines":[{"line_number":24,"context_line":" *# 41 10.12.20 : openocd 0.10, based on vd_client and vd_test"},{"line_number":25,"context_line":" *# 42 18.03.21 : openocd 0.11 formatting and style"},{"line_number":26,"context_line":" *#----------------------------------------------------------------------------"},{"line_number":27,"context_line":"*/"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"/*!"},{"line_number":30,"context_line":" * @file"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_d20e8237","line":27,"in_reply_to":"aedf27f1_1205ea13","updated":"2021-04-13 09:17:24.000000000","message":"SPDX helps to automatize the check on license, so why not using it for copyright too!\nThere is already a tentative to update checkpatch. I need to continue\nhttp://openocd.zylin.com/#/q/topic:checkpatch\n\nIn mean time let\u0027s use /**/ for C files. This is not in line with what\u0027s written in\nhttp://openocd.zylin.com/#/c/5973/4/LICENSES/license-rules.txt@66\nbut should be fixed asap. Then moving from /**/ to // would be fixed by a simple script.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5db1b09d795246bb2b1a58571cc10ca15b8a6e7a","unresolved":false,"context_lines":[{"line_number":24,"context_line":" *# 41 10.12.20 : openocd 0.10, based on vd_client and vd_test"},{"line_number":25,"context_line":" *# 42 18.03.21 : openocd 0.11 formatting and style"},{"line_number":26,"context_line":" *#----------------------------------------------------------------------------"},{"line_number":27,"context_line":"*/"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"/*!"},{"line_number":30,"context_line":" * @file"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_ef25e1bd","line":27,"in_reply_to":"aedf27f1_af811994","updated":"2021-04-12 23:08:37.000000000","message":"The current checkpatch does not accept the C99 comment \u0027//\u0027. Temporarily we rely to \u0027/* ... */\u0027\nThis should be:\n/* SPDX-License-Identifier: BDS-2-Clause */\nYou can compare the original text with the license just merged from http://openocd.zylin.com/5970/\nI was not expecting to use the tag \u0027SPDX-FileCopyrightText\u0027. In the whole Linux kernel it it present in only 2 DTS files from the same commit. Is it getting commonly used?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"ef1d1a49099319a76ebf36ecef0d89f6fb0d8c87","unresolved":false,"context_lines":[{"line_number":24,"context_line":" *# 41 10.12.20 : openocd 0.10, based on vd_client and vd_test"},{"line_number":25,"context_line":" *# 42 18.03.21 : openocd 0.11 formatting and style"},{"line_number":26,"context_line":" *#----------------------------------------------------------------------------"},{"line_number":27,"context_line":"*/"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"/*!"},{"line_number":30,"context_line":" * @file"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_1205ea13","line":27,"in_reply_to":"aedf27f1_ef25e1bd","updated":"2021-04-13 04:59:23.000000000","message":"Yes, in barebox it is already more or less streamlined:\nhttps://git.pengutronix.de/cgit/barebox/commit/commands/usbgadget.c?id\u003d1a546e28341ba3e733d1f1f9fc6d60de6b195298\n\nOther projects starting using it too.\n\nHere is kernel SPDX recomendation:\nhttps://www.kernel.org/doc/html/v5.11/process/license-rules.html\nC source: // SPDX-License-Identifier: \u003cSPDX License Expression\u003e\nC header: /* SPDX-License-Identifier: \u003cSPDX License Expression\u003e */\nASM:      /* SPDX-License-Identifier: \u003cSPDX License Expression\u003e */\nscripts:  # SPDX-License-Identifier: \u003cSPDX License Expression\u003e\n.rst:     .. SPDX-License-Identifier: \u003cSPDX License Expression\u003e\n.dts{i}:  // SPDX-License-Identifier: \u003cSPDX License Expression\u003e\n\nMay be it make sense to sync with latest kernel checkskript?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"be7cd3ba2010fdbe86ce01733332fa77c26c7eb0","unresolved":false,"context_lines":[{"line_number":76,"context_line":"#include \"helper/log.h\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"#define VD_VERSION 42"},{"line_number":79,"context_line":"#define VD_BUILD \"16.03.21\""},{"line_number":80,"context_line":"#define VD_BUFFER_LEN 4024"},{"line_number":81,"context_line":"#define VD_CHEADER_LEN 24"},{"line_number":82,"context_line":"#define VD_SHEADER_LEN 16"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_6f533144","line":79,"updated":"2021-04-12 18:58:11.000000000","message":"version and build make no sense here. it is separate project, please remove it.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"be7cd3ba2010fdbe86ce01733332fa77c26c7eb0","unresolved":false,"context_lines":[{"line_number":89,"context_line":" * @brief List of transactor types"},{"line_number":90,"context_line":" */"},{"line_number":91,"context_line":"typedef enum {"},{"line_number":92,"context_line":"\tVD_BFM_JTDP   \u003d 0x0001,  /**\u003c transactor DAP JTAG DP */"},{"line_number":93,"context_line":"\tVD_BFM_SWDP   \u003d 0x0002,  /**\u003c transactor DAP SWD DP */"},{"line_number":94,"context_line":"\tVD_BFM_AHB    \u003d 0x0003,  /**\u003c transactor AMBA AHB */"},{"line_number":95,"context_line":"\tVD_BFM_APB    \u003d 0x0004,  /**\u003c transactor AMBA APB */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_0f48658b","line":92,"updated":"2021-04-12 18:58:11.000000000","message":"use comment style: /* bla */","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"be7cd3ba2010fdbe86ce01733332fa77c26c7eb0","unresolved":false,"context_lines":[{"line_number":96,"context_line":"\tVD_BFM_AXI    \u003d 0x0005,  /**\u003c transactor AMBA AXI */"},{"line_number":97,"context_line":"\tVD_BFM_JTAG   \u003d 0x0006,  /**\u003c transactor serial JTAG */"},{"line_number":98,"context_line":"\tVD_BFM_SWD    \u003d 0x0007,  /**\u003c transactor serial SWD */"},{"line_number":99,"context_line":"} vd_bfm_et;"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"/**"},{"line_number":102,"context_line":" * @brief List of signals that can be read or written by the debugger"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_2f4d299c","line":99,"updated":"2021-04-12 18:58:11.000000000","message":"do not use typedef. it makes code harder to read","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"27bf58e2585acb7f856b8f50093815f94a77d9ef","unresolved":false,"context_lines":[{"line_number":159,"context_line":"\tVD_CMD_MEMWRITE   \u003d 0x23,"},{"line_number":160,"context_line":"} vd_cmd_et;"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"struct vd_shm_st {"},{"line_number":163,"context_line":"\tstruct {                     /* VD_CHEADER_LEN written by client */"},{"line_number":164,"context_line":"\t\tuint8_t cmd;             /* 000; command */"},{"line_number":165,"context_line":"\t\tuint8_t type;            /* 001; interface type */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_d2c76299","line":162,"updated":"2021-04-15 07:51:32.000000000","message":"I assume, vd_shm_st means, shared memory struct. This description and this struct makes both no sense.\nFirst of all, it is describing two different buffer types:\n- packet send by the client\n- response send by the server\nCombining this in to one struct makes no sense","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1117930718229718ee8f4a61dfa787a0cceecf42","unresolved":false,"context_lines":[{"line_number":159,"context_line":"\tVD_CMD_MEMWRITE   \u003d 0x23,"},{"line_number":160,"context_line":"} vd_cmd_et;"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"struct vd_shm_st {"},{"line_number":163,"context_line":"\tstruct {                     /* VD_CHEADER_LEN written by client */"},{"line_number":164,"context_line":"\t\tuint8_t cmd;             /* 000; command */"},{"line_number":165,"context_line":"\t\tuint8_t type;            /* 001; interface type */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_3227ce61","line":162,"in_reply_to":"aedf27f1_d2c76299","updated":"2021-04-15 18:18:48.000000000","message":"As you may have guessed it already vdebug does work over a shared memory block and this structure is used to exchange data. This client does not implement shm, but the same struct is used to transfer the data over TCP.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"27bf58e2585acb7f856b8f50093815f94a77d9ef","unresolved":false,"context_lines":[{"line_number":177,"context_line":"\t\tuint8_t wd8[VD_BUFFER_LEN];"},{"line_number":178,"context_line":"\t\tuint32_t wd32[VD_BUFFER_LEN/4];"},{"line_number":179,"context_line":"\t\tuint64_t wd64[VD_BUFFER_LEN/8];"},{"line_number":180,"context_line":"\t};"},{"line_number":181,"context_line":"\tstruct {                     /* VD_SHEADER_LEN written by server */"},{"line_number":182,"context_line":"\t\tuint16_t rid;            /* fd0: request id read */"},{"line_number":183,"context_line":"\t\tuint16_t awords;         /* fd2: actual data words read back */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_f2c4e696","line":180,"updated":"2021-04-15 07:51:32.000000000","message":"what parts of this struct are actually send over network? And what part is actual tx and rx buffers?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"c2109082fdd4b0eb125c77ebf779f58983c8d472","unresolved":false,"context_lines":[{"line_number":177,"context_line":"\t\tuint8_t wd8[VD_BUFFER_LEN];"},{"line_number":178,"context_line":"\t\tuint32_t wd32[VD_BUFFER_LEN/4];"},{"line_number":179,"context_line":"\t\tuint64_t wd64[VD_BUFFER_LEN/8];"},{"line_number":180,"context_line":"\t};"},{"line_number":181,"context_line":"\tstruct {                     /* VD_SHEADER_LEN written by server */"},{"line_number":182,"context_line":"\t\tuint16_t rid;            /* fd0: request id read */"},{"line_number":183,"context_line":"\t\tuint16_t awords;         /* fd2: actual data words read back */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_d2ea02d7","line":180,"in_reply_to":"aedf27f1_92155aec","updated":"2021-04-15 19:10:55.000000000","message":"I assume the max transfer limit is restricted to MTU of network packet?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"c5b2fc58d7ed4481de2d054605e313aea8ee0851","unresolved":false,"context_lines":[{"line_number":177,"context_line":"\t\tuint8_t wd8[VD_BUFFER_LEN];"},{"line_number":178,"context_line":"\t\tuint32_t wd32[VD_BUFFER_LEN/4];"},{"line_number":179,"context_line":"\t\tuint64_t wd64[VD_BUFFER_LEN/8];"},{"line_number":180,"context_line":"\t};"},{"line_number":181,"context_line":"\tstruct {                     /* VD_SHEADER_LEN written by server */"},{"line_number":182,"context_line":"\t\tuint16_t rid;            /* fd0: request id read */"},{"line_number":183,"context_line":"\t\tuint16_t awords;         /* fd2: actual data words read back */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_f254e658","line":180,"in_reply_to":"aedf27f1_d2ea02d7","updated":"2021-04-17 16:01:53.000000000","message":"No, the socket interface take care of that.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1117930718229718ee8f4a61dfa787a0cceecf42","unresolved":false,"context_lines":[{"line_number":177,"context_line":"\t\tuint8_t wd8[VD_BUFFER_LEN];"},{"line_number":178,"context_line":"\t\tuint32_t wd32[VD_BUFFER_LEN/4];"},{"line_number":179,"context_line":"\t\tuint64_t wd64[VD_BUFFER_LEN/8];"},{"line_number":180,"context_line":"\t};"},{"line_number":181,"context_line":"\tstruct {                     /* VD_SHEADER_LEN written by server */"},{"line_number":182,"context_line":"\t\tuint16_t rid;            /* fd0: request id read */"},{"line_number":183,"context_line":"\t\tuint16_t awords;         /* fd2: actual data words read back */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_92155aec","line":180,"in_reply_to":"aedf27f1_f2c4e696","updated":"2021-04-15 18:18:48.000000000","message":"The first 24B and as many wd8 as needed as request\n16B + as many as rd8 as needed","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"09c44fea34a7ac1dea6113c3b3e3de16ca152352","unresolved":false,"context_lines":[{"line_number":185,"context_line":"\t\tuint64_t duttime;        /* fd8; */"},{"line_number":186,"context_line":"\t};"},{"line_number":187,"context_line":"\tunion {                      /* fe0: */"},{"line_number":188,"context_line":"\t\tuint8_t rd8[VD_BUFFER_LEN];"},{"line_number":189,"context_line":"\t\tuint32_t rd32[VD_BUFFER_LEN/4];"},{"line_number":190,"context_line":"\t\tuint64_t rd64[VD_BUFFER_LEN/8];"},{"line_number":191,"context_line":"\t};"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_ec0bab24","line":188,"updated":"2021-07-02 05:34:46.000000000","message":"We expect here 3 types of packets:\nVD_CMD_JTAGSHTAP\nVD_CMD_MEMOPEN\nVD_CMD_CONNECT\nplease create appropriate structures for this types and use content related name for the payload:\nVD_CMD_CONNECT:\n  vdc.buf_width \u003d pm-\u003erd32[0]\n  vdc.addr_bits \u003d pm-\u003erd32[2]\nVD_CMD_MEMOPEN:\n  vdc.mem_width[ndx] \u003d pm-\u003erd32[0] / 8;\n  vdc.mem_depth[ndx] \u003d pm-\u003erd32[1];\nVD_CMD_JTAGSHTAP\n  tdo[j] \u003d (pm-\u003erd8[rwords * 8 + j] ...\n\n\nThe rd64 is misued for pointer and is a no go. It should be removed","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"6ccdd10828dab0dc6aa8424db7ebcaacee6549aa","unresolved":false,"context_lines":[{"line_number":185,"context_line":"\t\tuint64_t duttime;        /* fd8; */"},{"line_number":186,"context_line":"\t};"},{"line_number":187,"context_line":"\tunion {                      /* fe0: */"},{"line_number":188,"context_line":"\t\tuint8_t rd8[VD_BUFFER_LEN];"},{"line_number":189,"context_line":"\t\tuint32_t rd32[VD_BUFFER_LEN/4];"},{"line_number":190,"context_line":"\t\tuint64_t rd64[VD_BUFFER_LEN/8];"},{"line_number":191,"context_line":"\t};"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_cc634fd9","line":188,"in_reply_to":"4eceab4c_6c27bbb2","updated":"2021-07-04 18:51:27.000000000","message":"WTF? \"Ah, there is some shit! Why should I clean up my shit!?\" Really?! This driver is full of brainfuck. Why should reviewers spend more time than needed to calculate each byte to understand how some part of memory is used?\nMaybe, let\u0027s use offset instead of names?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"86f1034d15dd18632d342721ae86560106c79788","unresolved":false,"context_lines":[{"line_number":185,"context_line":"\t\tuint64_t duttime;        /* fd8; */"},{"line_number":186,"context_line":"\t};"},{"line_number":187,"context_line":"\tunion {                      /* fe0: */"},{"line_number":188,"context_line":"\t\tuint8_t rd8[VD_BUFFER_LEN];"},{"line_number":189,"context_line":"\t\tuint32_t rd32[VD_BUFFER_LEN/4];"},{"line_number":190,"context_line":"\t\tuint64_t rd64[VD_BUFFER_LEN/8];"},{"line_number":191,"context_line":"\t};"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_6c27bbb2","line":188,"in_reply_to":"4eceab4c_ec0bab24","updated":"2021-07-02 11:25:34.000000000","message":"I agree it\u0027s nice to have well defined structure for every command, but is it necessary? There is a different interpretation and variable length that makes it too time consuming to have. Is vdebug an exception ? No, take a closer look at other drivers, for most of them struct fields get assigned from a buffer directly.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"27bf58e2585acb7f856b8f50093815f94a77d9ef","unresolved":false,"context_lines":[{"line_number":187,"context_line":"\tunion {                      /* fe0: */"},{"line_number":188,"context_line":"\t\tuint8_t rd8[VD_BUFFER_LEN];"},{"line_number":189,"context_line":"\t\tuint32_t rd32[VD_BUFFER_LEN/4];"},{"line_number":190,"context_line":"\t\tuint64_t rd64[VD_BUFFER_LEN/8];"},{"line_number":191,"context_line":"\t};"},{"line_number":192,"context_line":"\tuint32_t state;              /* 1f98; connection state */"},{"line_number":193,"context_line":"\tuint32_t count;              /* 1f9c; */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_92c1da85","line":190,"updated":"2021-04-15 07:51:32.000000000","message":"Ẁhy this buffers need 4K reserved space? Especially if it is not used for actual transfer","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"032c43ad3b37f08e21b22f69a18c15f9517c08a9","unresolved":false,"context_lines":[{"line_number":187,"context_line":"\tunion {                      /* fe0: */"},{"line_number":188,"context_line":"\t\tuint8_t rd8[VD_BUFFER_LEN];"},{"line_number":189,"context_line":"\t\tuint32_t rd32[VD_BUFFER_LEN/4];"},{"line_number":190,"context_line":"\t\tuint64_t rd64[VD_BUFFER_LEN/8];"},{"line_number":191,"context_line":"\t};"},{"line_number":192,"context_line":"\tuint32_t state;              /* 1f98; connection state */"},{"line_number":193,"context_line":"\tuint32_t count;              /* 1f9c; */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_ac436342","line":190,"in_reply_to":"4eceab4c_0c1cf769","updated":"2021-07-02 12:24:17.000000000","message":"you said \"the amount of data is asymmetric (TDI+TMS in wd) versus TDO in rd.\" I understand it as: rd is always half full. And there is no code to prove something different.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"86f1034d15dd18632d342721ae86560106c79788","unresolved":false,"context_lines":[{"line_number":187,"context_line":"\tunion {                      /* fe0: */"},{"line_number":188,"context_line":"\t\tuint8_t rd8[VD_BUFFER_LEN];"},{"line_number":189,"context_line":"\t\tuint32_t rd32[VD_BUFFER_LEN/4];"},{"line_number":190,"context_line":"\t\tuint64_t rd64[VD_BUFFER_LEN/8];"},{"line_number":191,"context_line":"\t};"},{"line_number":192,"context_line":"\tuint32_t state;              /* 1f98; connection state */"},{"line_number":193,"context_line":"\tuint32_t count;              /* 1f9c; */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_0c1cf769","line":190,"in_reply_to":"4eceab4c_2c0a1325","updated":"2021-07-02 11:25:34.000000000","message":"I have already explained it.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"c5b2fc58d7ed4481de2d054605e313aea8ee0851","unresolved":false,"context_lines":[{"line_number":187,"context_line":"\tunion {                      /* fe0: */"},{"line_number":188,"context_line":"\t\tuint8_t rd8[VD_BUFFER_LEN];"},{"line_number":189,"context_line":"\t\tuint32_t rd32[VD_BUFFER_LEN/4];"},{"line_number":190,"context_line":"\t\tuint64_t rd64[VD_BUFFER_LEN/8];"},{"line_number":191,"context_line":"\t};"},{"line_number":192,"context_line":"\tuint32_t state;              /* 1f98; connection state */"},{"line_number":193,"context_line":"\tuint32_t count;              /* 1f9c; */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_9251da67","line":190,"in_reply_to":"aedf27f1_32e6ee14","updated":"2021-04-17 16:01:53.000000000","message":"For JTAG the amount of data is asymmetric (TDI+TMS in wd) versus TDO in rd, so for JTAG interface the read buffer is used maximum halfway.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"09c44fea34a7ac1dea6113c3b3e3de16ca152352","unresolved":false,"context_lines":[{"line_number":187,"context_line":"\tunion {                      /* fe0: */"},{"line_number":188,"context_line":"\t\tuint8_t rd8[VD_BUFFER_LEN];"},{"line_number":189,"context_line":"\t\tuint32_t rd32[VD_BUFFER_LEN/4];"},{"line_number":190,"context_line":"\t\tuint64_t rd64[VD_BUFFER_LEN/8];"},{"line_number":191,"context_line":"\t};"},{"line_number":192,"context_line":"\tuint32_t state;              /* 1f98; connection state */"},{"line_number":193,"context_line":"\tuint32_t count;              /* 1f9c; */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_2c0a1325","line":190,"in_reply_to":"aedf27f1_9251da67","updated":"2021-07-02 05:34:46.000000000","message":"Why do we need to allocate this amount of data if it is already know to be not used?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1117930718229718ee8f4a61dfa787a0cceecf42","unresolved":false,"context_lines":[{"line_number":187,"context_line":"\tunion {                      /* fe0: */"},{"line_number":188,"context_line":"\t\tuint8_t rd8[VD_BUFFER_LEN];"},{"line_number":189,"context_line":"\t\tuint32_t rd32[VD_BUFFER_LEN/4];"},{"line_number":190,"context_line":"\t\tuint64_t rd64[VD_BUFFER_LEN/8];"},{"line_number":191,"context_line":"\t};"},{"line_number":192,"context_line":"\tuint32_t state;              /* 1f98; connection state */"},{"line_number":193,"context_line":"\tuint32_t count;              /* 1f9c; */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_d21be21f","line":190,"in_reply_to":"aedf27f1_92c1da85","updated":"2021-04-15 18:18:48.000000000","message":"There is quite long shifts to scan the JTAG chain, beside some ops can be batched.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"c2109082fdd4b0eb125c77ebf779f58983c8d472","unresolved":false,"context_lines":[{"line_number":187,"context_line":"\tunion {                      /* fe0: */"},{"line_number":188,"context_line":"\t\tuint8_t rd8[VD_BUFFER_LEN];"},{"line_number":189,"context_line":"\t\tuint32_t rd32[VD_BUFFER_LEN/4];"},{"line_number":190,"context_line":"\t\tuint64_t rd64[VD_BUFFER_LEN/8];"},{"line_number":191,"context_line":"\t};"},{"line_number":192,"context_line":"\tuint32_t state;              /* 1f98; connection state */"},{"line_number":193,"context_line":"\tuint32_t count;              /* 1f9c; */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_32e6ee14","line":190,"in_reply_to":"aedf27f1_d21be21f","updated":"2021-04-15 19:10:55.000000000","message":"well, at least end of this buffer is not used for the jtag chain?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"27bf58e2585acb7f856b8f50093815f94a77d9ef","unresolved":false,"context_lines":[{"line_number":191,"context_line":"\t};"},{"line_number":192,"context_line":"\tuint32_t state;              /* 1f98; connection state */"},{"line_number":193,"context_line":"\tuint32_t count;              /* 1f9c; */"},{"line_number":194,"context_line":"\tuint8_t dummy[96];           /* 1fa0; 48+40B+8B; */"},{"line_number":195,"context_line":"};"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"struct vd_client_st {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_b2be5ef9","line":194,"updated":"2021-04-15 07:51:32.000000000","message":"why dummy is needed? it is never used and seems to be not used for networking","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"c5b2fc58d7ed4481de2d054605e313aea8ee0851","unresolved":false,"context_lines":[{"line_number":191,"context_line":"\t};"},{"line_number":192,"context_line":"\tuint32_t state;              /* 1f98; connection state */"},{"line_number":193,"context_line":"\tuint32_t count;              /* 1f9c; */"},{"line_number":194,"context_line":"\tuint8_t dummy[96];           /* 1fa0; 48+40B+8B; */"},{"line_number":195,"context_line":"};"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"struct vd_client_st {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_b24e5ec3","line":194,"in_reply_to":"aedf27f1_12e16afb","updated":"2021-04-17 16:01:53.000000000","message":"Never.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"4cd45e48d15c4467c3f46bbbf75e7d94064be4a1","unresolved":false,"context_lines":[{"line_number":191,"context_line":"\t};"},{"line_number":192,"context_line":"\tuint32_t state;              /* 1f98; connection state */"},{"line_number":193,"context_line":"\tuint32_t count;              /* 1f9c; */"},{"line_number":194,"context_line":"\tuint8_t dummy[96];           /* 1fa0; 48+40B+8B; */"},{"line_number":195,"context_line":"};"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"struct vd_client_st {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_32d26ed6","line":194,"in_reply_to":"aedf27f1_b24e5ec3","updated":"2021-04-18 11:17:01.000000000","message":"In this case I see no reason to keep this struct as is.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1117930718229718ee8f4a61dfa787a0cceecf42","unresolved":false,"context_lines":[{"line_number":191,"context_line":"\t};"},{"line_number":192,"context_line":"\tuint32_t state;              /* 1f98; connection state */"},{"line_number":193,"context_line":"\tuint32_t count;              /* 1f9c; */"},{"line_number":194,"context_line":"\tuint8_t dummy[96];           /* 1fa0; 48+40B+8B; */"},{"line_number":195,"context_line":"};"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"struct vd_client_st {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_f2186625","line":194,"in_reply_to":"aedf27f1_b2be5ef9","updated":"2021-04-15 18:18:48.000000000","message":"just to pad this struct to the original size as expected by the server","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"c2109082fdd4b0eb125c77ebf779f58983c8d472","unresolved":false,"context_lines":[{"line_number":191,"context_line":"\t};"},{"line_number":192,"context_line":"\tuint32_t state;              /* 1f98; connection state */"},{"line_number":193,"context_line":"\tuint32_t count;              /* 1f9c; */"},{"line_number":194,"context_line":"\tuint8_t dummy[96];           /* 1fa0; 48+40B+8B; */"},{"line_number":195,"context_line":"};"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"struct vd_client_st {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_12e16afb","line":194,"in_reply_to":"aedf27f1_f2186625","updated":"2021-04-15 19:10:55.000000000","message":"But this part is never used as receive buffer. correct?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"09c44fea34a7ac1dea6113c3b3e3de16ca152352","unresolved":false,"context_lines":[{"line_number":362,"context_line":"\treq \u003d rreq \u003d waddr \u003d rwords \u003d 0;/* beginning of request */"},{"line_number":363,"context_line":"\tpm-\u003ewbytes \u003d pm-\u003ewwords*8;"},{"line_number":364,"context_line":"\tpm-\u003erbytes \u003d pm-\u003erwords*8;"},{"line_number":365,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":366,"context_line":"\tdo {                           /* loop over requests to read data and print out */"},{"line_number":367,"context_line":"\t\thwords \u003d pm-\u003ewd32[waddr+1];/* reconstrcut data this request */"},{"line_number":368,"context_line":"\t\tanum \u003d pm-\u003ewd32[waddr] \u0026 0xffff;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_cc0eef37","line":365,"updated":"2021-07-02 05:34:46.000000000","message":"why transfer errors handled after parsing failed buffer? This makes no sense.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"86f1034d15dd18632d342721ae86560106c79788","unresolved":false,"context_lines":[{"line_number":362,"context_line":"\treq \u003d rreq \u003d waddr \u003d rwords \u003d 0;/* beginning of request */"},{"line_number":363,"context_line":"\tpm-\u003ewbytes \u003d pm-\u003ewwords*8;"},{"line_number":364,"context_line":"\tpm-\u003erbytes \u003d pm-\u003erwords*8;"},{"line_number":365,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":366,"context_line":"\tdo {                           /* loop over requests to read data and print out */"},{"line_number":367,"context_line":"\t\thwords \u003d pm-\u003ewd32[waddr+1];/* reconstrcut data this request */"},{"line_number":368,"context_line":"\t\tanum \u003d pm-\u003ewd32[waddr] \u0026 0xffff;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_2c21b39a","line":365,"in_reply_to":"4eceab4c_cc0eef37","updated":"2021-07-02 11:25:34.000000000","message":"Good catch, originally there was a while loop here.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"d43eb218f4115a8314167324e144d5eee4b61129","unresolved":false,"context_lines":[{"line_number":377,"context_line":"\t\tvdc.trans_last \u003d ((uint32_t)(req+1) \u003c count ? 0 : 1);"},{"line_number":378,"context_line":"\t\tvdc.trans_first \u003d (waddr ? 0 : 1);"},{"line_number":379,"context_line":"\t\tif (pm-\u003ewd32[waddr] \u0026 0x80000000) { /* read */"},{"line_number":380,"context_line":"\t\t\ttdo \u003d (uint8_t *)(uintptr_t)pm-\u003erd64[VD_BUFFER_LEN/8-1-rreq++];"},{"line_number":381,"context_line":"\t\t\tfor (j \u003d 0; j \u003c bytes; j++) {"},{"line_number":382,"context_line":"\t\t\t\ttdo[j] \u003d (pm-\u003erd8[rwords*8+j] \u003e\u003e num_pre) | (pm-\u003erd8[rwords*8+j+1] \u003c\u003c (8-num_pre));"},{"line_number":383,"context_line":"\t\t\t\tLOG_DEBUG_IO(\"vd_jtag_shift_tap: %04x D0[%02x]:%02x\", pm-\u003ewid-count+req, j, tdo[j]);"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_32858e5b","line":380,"updated":"2021-04-14 14:34:23.000000000","message":"I do not believe what I see. You received an application internal pointer over network? and use it?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"9add23c1187d124eeb3b4501ef60b61b8a395207","unresolved":false,"context_lines":[{"line_number":377,"context_line":"\t\tvdc.trans_last \u003d ((uint32_t)(req+1) \u003c count ? 0 : 1);"},{"line_number":378,"context_line":"\t\tvdc.trans_first \u003d (waddr ? 0 : 1);"},{"line_number":379,"context_line":"\t\tif (pm-\u003ewd32[waddr] \u0026 0x80000000) { /* read */"},{"line_number":380,"context_line":"\t\t\ttdo \u003d (uint8_t *)(uintptr_t)pm-\u003erd64[VD_BUFFER_LEN/8-1-rreq++];"},{"line_number":381,"context_line":"\t\t\tfor (j \u003d 0; j \u003c bytes; j++) {"},{"line_number":382,"context_line":"\t\t\t\ttdo[j] \u003d (pm-\u003erd8[rwords*8+j] \u003e\u003e num_pre) | (pm-\u003erd8[rwords*8+j+1] \u003c\u003c (8-num_pre));"},{"line_number":383,"context_line":"\t\t\t\tLOG_DEBUG_IO(\"vd_jtag_shift_tap: %04x D0[%02x]:%02x\", pm-\u003ewid-count+req, j, tdo[j]);"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_12f72af4","line":380,"in_reply_to":"aedf27f1_32858e5b","updated":"2021-04-14 18:26:35.000000000","message":"No, it has been stored at the end of the buffer in the jtag_shift routine. Since the end of the read buffer is not used I used it for the temporary storage. It is a hack, a static list would be a proper storage.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"be7cd3ba2010fdbe86ce01733332fa77c26c7eb0","unresolved":false,"context_lines":[{"line_number":540,"context_line":"\t\tpm-\u003ewd32[waddr++] \u003d hwords + (tdo ? (words \u003c\u003c 16) : 0);"},{"line_number":541,"context_line":"\t\tpm-\u003ewid++;           /* BFM data as TDI/TMS word pairs */"},{"line_number":542,"context_line":"\t\tpm-\u003ewd8[4*waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":543,"context_line":"\t\tpm-\u003ewd8[4*waddr+4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":544,"context_line":"\t\tif (num+num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":545,"context_line":"\t\t\tpm-\u003ewd8[4*waddr+4] |\u003d (tms_post \u003c\u003c (num+num_pre-1));"},{"line_number":546,"context_line":"\t\tfor (i \u003d 1, j \u003d 4*waddr; i \u003c bytes; i++) {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_cf61fd02","line":543,"updated":"2021-04-12 18:58:11.000000000","message":"wd32 and wd8 are different types of same union. Can you make sure this code will not introduce corruption?\nPlease remove this union to make this code easier to read for human and machine.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"de8df468803b03caea3181c494e341d61f5a77fb","unresolved":false,"context_lines":[{"line_number":540,"context_line":"\t\tpm-\u003ewd32[waddr++] \u003d hwords + (tdo ? (words \u003c\u003c 16) : 0);"},{"line_number":541,"context_line":"\t\tpm-\u003ewid++;           /* BFM data as TDI/TMS word pairs */"},{"line_number":542,"context_line":"\t\tpm-\u003ewd8[4*waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":543,"context_line":"\t\tpm-\u003ewd8[4*waddr+4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":544,"context_line":"\t\tif (num+num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":545,"context_line":"\t\t\tpm-\u003ewd8[4*waddr+4] |\u003d (tms_post \u003c\u003c (num+num_pre-1));"},{"line_number":546,"context_line":"\t\tfor (i \u003d 1, j \u003d 4*waddr; i \u003c bytes; i++) {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_ecc2cb38","line":543,"in_reply_to":"4eceab4c_0cacf783","updated":"2021-07-04 19:14:23.000000000","message":"1. As we already told, OpenOCD is used on different platforms, it has enough helpers to handle endianness safe coding. You was requested to fix it. \"No\" is not acceptable answer in this case. This driver will not be taken without rework. There is no reason to waste reviewers time on discussing it.\n2. you are using same buffer as union to handle different parts of this data. Some parts accessed as 32bit, some as 8 and some as 64bit. Since I have no reason to trust you, I need to verify correctness of this code. With code implemented in more readable way, I would need less time to verify it. Currently, you decided that my time is less important as yours.\n3. Hiding internal pointer in to transmit or receiver buffer. This pointer is used just in the function called by this function. It is possible to give it over to the function using this pointer, you decided to hide it and waste my time.\n4. Now the maintainer perspective. This kind of code will need a lot of time to reload knowledge about it. If some one will just change some buffer size, this driver will explode in different colors or start leaking important information. Which is just bad.\n\nWith other words, there is a lot of changes needed to make this driver look acceptable.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"b045503b71c8dd2c7cf77640c75a766c6abafc5f","unresolved":false,"context_lines":[{"line_number":540,"context_line":"\t\tpm-\u003ewd32[waddr++] \u003d hwords + (tdo ? (words \u003c\u003c 16) : 0);"},{"line_number":541,"context_line":"\t\tpm-\u003ewid++;           /* BFM data as TDI/TMS word pairs */"},{"line_number":542,"context_line":"\t\tpm-\u003ewd8[4*waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":543,"context_line":"\t\tpm-\u003ewd8[4*waddr+4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":544,"context_line":"\t\tif (num+num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":545,"context_line":"\t\t\tpm-\u003ewd8[4*waddr+4] |\u003d (tms_post \u003c\u003c (num+num_pre-1));"},{"line_number":546,"context_line":"\t\tfor (i \u003d 1, j \u003d 4*waddr; i \u003c bytes; i++) {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_0cacf783","line":543,"in_reply_to":"4eceab4c_4c70bfa3","updated":"2021-07-04 14:39:26.000000000","message":"Any reasonable arguments here ? What is bogus, not maintainable here ? I suggest you take a look at other drivers and see the number comments that explain line by line what the code does...\nAnd you have not addressed how you are going to main the code if you do not run it ?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"86f1034d15dd18632d342721ae86560106c79788","unresolved":false,"context_lines":[{"line_number":540,"context_line":"\t\tpm-\u003ewd32[waddr++] \u003d hwords + (tdo ? (words \u003c\u003c 16) : 0);"},{"line_number":541,"context_line":"\t\tpm-\u003ewid++;           /* BFM data as TDI/TMS word pairs */"},{"line_number":542,"context_line":"\t\tpm-\u003ewd8[4*waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":543,"context_line":"\t\tpm-\u003ewd8[4*waddr+4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":544,"context_line":"\t\tif (num+num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":545,"context_line":"\t\t\tpm-\u003ewd8[4*waddr+4] |\u003d (tms_post \u003c\u003c (num+num_pre-1));"},{"line_number":546,"context_line":"\t\tfor (i \u003d 1, j \u003d 4*waddr; i \u003c bytes; i++) {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_cc358fd9","line":543,"in_reply_to":"4eceab4c_4cfbdf11","updated":"2021-07-02 11:25:34.000000000","message":"What are you talking about here ? All I mentioned is that we do not test the code on big endian host, so we do not plan to address endiannes.\nI do not see anything bogus or not maintainable here. Rest assured actively maintained and supported. Here we deal with variable length bit vector concatenation and manipulation, it is tedious and complex.\nAnd no, you will not be maintaining and supporting this code, even though it is a part of the openocd. Because most likely you won\u0027t be able to run it. We will need to support openocd with vdebug, because it\u0027s a part of the commercial product and maintenance and support of part of the product.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"032c43ad3b37f08e21b22f69a18c15f9517c08a9","unresolved":false,"context_lines":[{"line_number":540,"context_line":"\t\tpm-\u003ewd32[waddr++] \u003d hwords + (tdo ? (words \u003c\u003c 16) : 0);"},{"line_number":541,"context_line":"\t\tpm-\u003ewid++;           /* BFM data as TDI/TMS word pairs */"},{"line_number":542,"context_line":"\t\tpm-\u003ewd8[4*waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":543,"context_line":"\t\tpm-\u003ewd8[4*waddr+4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":544,"context_line":"\t\tif (num+num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":545,"context_line":"\t\t\tpm-\u003ewd8[4*waddr+4] |\u003d (tms_post \u003c\u003c (num+num_pre-1));"},{"line_number":546,"context_line":"\t\tfor (i \u003d 1, j \u003d 4*waddr; i \u003c bytes; i++) {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_4c70bfa3","line":543,"in_reply_to":"4eceab4c_cc358fd9","updated":"2021-07-02 12:24:17.000000000","message":"You just explained me, that there is no reason to spend time on reviewing it or even accepting it.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"09c44fea34a7ac1dea6113c3b3e3de16ca152352","unresolved":false,"context_lines":[{"line_number":540,"context_line":"\t\tpm-\u003ewd32[waddr++] \u003d hwords + (tdo ? (words \u003c\u003c 16) : 0);"},{"line_number":541,"context_line":"\t\tpm-\u003ewid++;           /* BFM data as TDI/TMS word pairs */"},{"line_number":542,"context_line":"\t\tpm-\u003ewd8[4*waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":543,"context_line":"\t\tpm-\u003ewd8[4*waddr+4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":544,"context_line":"\t\tif (num+num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":545,"context_line":"\t\t\tpm-\u003ewd8[4*waddr+4] |\u003d (tms_post \u003c\u003c (num+num_pre-1));"},{"line_number":546,"context_line":"\t\tfor (i \u003d 1, j \u003d 4*waddr; i \u003c bytes; i++) {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_4cfbdf11","line":543,"in_reply_to":"6ec1af18_4d1679ae","updated":"2021-07-02 05:34:46.000000000","message":"Mainlining is transferring responsibility for this code to us. If the code is obviously bogus, or not maintainable or badly readable, we just do not take it over.\nIt means, if you wish that this code goes mainline, you should take care of making the code be readable without comments. Things like hiding pointers in to transmit buffers... is absolute no go.\n\nAfter community was hijacked by security researchers, this driver looks for my like one more attempt to do one more research. If it is not the case, please read something on how to write maintainable code, and how to not waste limited  time of reviewers.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"8add227a0bf7a658ef47e2a7bbe9e2443457f20f","unresolved":false,"context_lines":[{"line_number":540,"context_line":"\t\tpm-\u003ewd32[waddr++] \u003d hwords + (tdo ? (words \u003c\u003c 16) : 0);"},{"line_number":541,"context_line":"\t\tpm-\u003ewid++;           /* BFM data as TDI/TMS word pairs */"},{"line_number":542,"context_line":"\t\tpm-\u003ewd8[4*waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":543,"context_line":"\t\tpm-\u003ewd8[4*waddr+4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":544,"context_line":"\t\tif (num+num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":545,"context_line":"\t\t\tpm-\u003ewd8[4*waddr+4] |\u003d (tms_post \u003c\u003c (num+num_pre-1));"},{"line_number":546,"context_line":"\t\tfor (i \u003d 1, j \u003d 4*waddr; i \u003c bytes; i++) {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"6ec1af18_4d1679ae","line":543,"in_reply_to":"6ec1af18_cd6349d9","updated":"2021-07-01 15:04:40.000000000","message":"We have never actually had any of the debugger running on the big endian host and therefore never addressed and tested the client.\nAnd I am not planning to spend any time soon on supporting this. Can we have as a know problem/limitation for this patch?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"d43eb218f4115a8314167324e144d5eee4b61129","unresolved":false,"context_lines":[{"line_number":540,"context_line":"\t\tpm-\u003ewd32[waddr++] \u003d hwords + (tdo ? (words \u003c\u003c 16) : 0);"},{"line_number":541,"context_line":"\t\tpm-\u003ewid++;           /* BFM data as TDI/TMS word pairs */"},{"line_number":542,"context_line":"\t\tpm-\u003ewd8[4*waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":543,"context_line":"\t\tpm-\u003ewd8[4*waddr+4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":544,"context_line":"\t\tif (num+num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":545,"context_line":"\t\t\tpm-\u003ewd8[4*waddr+4] |\u003d (tms_post \u003c\u003c (num+num_pre-1));"},{"line_number":546,"context_line":"\t\tfor (i \u003d 1, j \u003d 4*waddr; i \u003c bytes; i++) {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_728b1673","line":543,"in_reply_to":"aedf27f1_126acab1","updated":"2021-04-14 14:34:23.000000000","message":"this code describe well defined payload, with header structure and array tms+tdis.\nPlease add a structs describing paylod header,  actual payload since it has a structure.\n\nFor inspiration you can take a look how networking stacks are implemented for example in linux kernel.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"98f3e5bfe6b98d87771d8bac9eb80bf03cd58cae","unresolved":false,"context_lines":[{"line_number":540,"context_line":"\t\tpm-\u003ewd32[waddr++] \u003d hwords + (tdo ? (words \u003c\u003c 16) : 0);"},{"line_number":541,"context_line":"\t\tpm-\u003ewid++;           /* BFM data as TDI/TMS word pairs */"},{"line_number":542,"context_line":"\t\tpm-\u003ewd8[4*waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":543,"context_line":"\t\tpm-\u003ewd8[4*waddr+4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":544,"context_line":"\t\tif (num+num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":545,"context_line":"\t\t\tpm-\u003ewd8[4*waddr+4] |\u003d (tms_post \u003c\u003c (num+num_pre-1));"},{"line_number":546,"context_line":"\t\tfor (i \u003d 1, j \u003d 4*waddr; i \u003c bytes; i++) {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_f2962697","line":543,"in_reply_to":"aedf27f1_728b1673","updated":"2021-04-14 15:47:51.000000000","message":"It\u0027s also an issue with endianess. Client (openocd) and server (Cadence emulator/simulator) can run on machine with different endianess.\nYou can check how this is implemented in\nhttp://openocd.zylin.com/#/c/6097/4/src/jtag/drivers/stlink_usb.c@2388\nwhere either 8, 16 and 32 bits are packed in little-endian in h-\u003ecmdbuf[].","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"0ef122294d0ff6c023f38cf98ed9d0e1987a22a3","unresolved":false,"context_lines":[{"line_number":540,"context_line":"\t\tpm-\u003ewd32[waddr++] \u003d hwords + (tdo ? (words \u003c\u003c 16) : 0);"},{"line_number":541,"context_line":"\t\tpm-\u003ewid++;           /* BFM data as TDI/TMS word pairs */"},{"line_number":542,"context_line":"\t\tpm-\u003ewd8[4*waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":543,"context_line":"\t\tpm-\u003ewd8[4*waddr+4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":544,"context_line":"\t\tif (num+num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":545,"context_line":"\t\t\tpm-\u003ewd8[4*waddr+4] |\u003d (tms_post \u003c\u003c (num+num_pre-1));"},{"line_number":546,"context_line":"\t\tfor (i \u003d 1, j \u003d 4*waddr; i \u003c bytes; i++) {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_126acab1","line":543,"in_reply_to":"aedf27f1_cf61fd02","updated":"2021-04-14 10:18:54.000000000","message":"It does not. The tms/tdi bits are concatenated based on bytes, the header is constructed from 32 bits words.\nActually this union has been introduced to facilitate different access widths, instead of casts. This structure is used to transfer data between the client (here) and the server and different access widths are used across different clients/server.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"fd014fa7e78c159f13a06cad54e1b32a585737c1","unresolved":false,"context_lines":[{"line_number":540,"context_line":"\t\tpm-\u003ewd32[waddr++] \u003d hwords + (tdo ? (words \u003c\u003c 16) : 0);"},{"line_number":541,"context_line":"\t\tpm-\u003ewid++;           /* BFM data as TDI/TMS word pairs */"},{"line_number":542,"context_line":"\t\tpm-\u003ewd8[4*waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":543,"context_line":"\t\tpm-\u003ewd8[4*waddr+4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":544,"context_line":"\t\tif (num+num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":545,"context_line":"\t\t\tpm-\u003ewd8[4*waddr+4] |\u003d (tms_post \u003c\u003c (num+num_pre-1));"},{"line_number":546,"context_line":"\t\tfor (i \u003d 1, j \u003d 4*waddr; i \u003c bytes; i++) {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"6ec1af18_cd6349d9","line":543,"in_reply_to":"aedf27f1_f2962697","updated":"2021-06-25 11:03:01.000000000","message":"None of this issue was addressed.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"be7cd3ba2010fdbe86ce01733332fa77c26c7eb0","unresolved":false,"context_lines":[{"line_number":554,"context_line":"\t\t\t\tpm-\u003ewd8[j+i] \u003d (tdi[i] \u003c\u003c num_pre) | (tdi[i-1] \u003e\u003e (8-num_pre));"},{"line_number":555,"context_line":"\t\t\tif (i % 4 \u003d\u003d 3)"},{"line_number":556,"context_line":"\t\t\t\tj +\u003d 4;"},{"line_number":557,"context_line":"\t\t}"},{"line_number":558,"context_line":"\t\tif (tdi) {"},{"line_number":559,"context_line":"\t\t\tif (num+num_pre \u003e bytes*tobits) /* in case 1 additional byte needed for TDI */"},{"line_number":560,"context_line":"\t\t\t\tpm-\u003ewd8[j+i] \u003d (tdi[i-1] \u003e\u003e (8-num_pre)); /* put last TDI bits there */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_ef5e4148","line":557,"updated":"2021-04-12 18:58:11.000000000","message":"please, make sure there is new line after each scope. It applies to all function in this file.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"d43eb218f4115a8314167324e144d5eee4b61129","unresolved":false,"context_lines":[{"line_number":573,"context_line":"\t\t}"},{"line_number":574,"context_line":"\t\tif (tdo) {"},{"line_number":575,"context_line":"\t\t\tpm-\u003erwords +\u003d words;         /* keep track of the words to read */"},{"line_number":576,"context_line":"\t\t\tpm-\u003erd64[VD_BUFFER_LEN/8-(++pm-\u003eoffset)] \u003d (uintptr_t)tdo;"},{"line_number":577,"context_line":"\t\t}"},{"line_number":578,"context_line":"\t\tpm-\u003ewwords \u003d waddr/2 + hwords;   /* payload size *2 to include both TDI and TMS data */"},{"line_number":579,"context_line":"\t\tpm-\u003ewaddr++;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_12808a4a","line":576,"updated":"2021-04-14 14:34:23.000000000","message":"Do i see it correctly. You just put internal application pointer to send it over network?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"86f1034d15dd18632d342721ae86560106c79788","unresolved":false,"context_lines":[{"line_number":573,"context_line":"\t\t}"},{"line_number":574,"context_line":"\t\tif (tdo) {"},{"line_number":575,"context_line":"\t\t\tpm-\u003erwords +\u003d words;         /* keep track of the words to read */"},{"line_number":576,"context_line":"\t\t\tpm-\u003erd64[VD_BUFFER_LEN/8-(++pm-\u003eoffset)] \u003d (uintptr_t)tdo;"},{"line_number":577,"context_line":"\t\t}"},{"line_number":578,"context_line":"\t\tpm-\u003ewwords \u003d waddr/2 + hwords;   /* payload size *2 to include both TDI and TMS data */"},{"line_number":579,"context_line":"\t\tpm-\u003ewaddr++;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_ec32cbee","line":576,"in_reply_to":"4eceab4c_6c001b05","updated":"2021-07-02 11:25:34.000000000","message":"Yes, with read buffering disabled we need just one pointer, no need for a list.\nPlease also note that even before the pointer was never sent out to the server, it was just stored at the end of buffer.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"09c44fea34a7ac1dea6113c3b3e3de16ca152352","unresolved":false,"context_lines":[{"line_number":573,"context_line":"\t\t}"},{"line_number":574,"context_line":"\t\tif (tdo) {"},{"line_number":575,"context_line":"\t\t\tpm-\u003erwords +\u003d words;         /* keep track of the words to read */"},{"line_number":576,"context_line":"\t\t\tpm-\u003erd64[VD_BUFFER_LEN/8-(++pm-\u003eoffset)] \u003d (uintptr_t)tdo;"},{"line_number":577,"context_line":"\t\t}"},{"line_number":578,"context_line":"\t\tpm-\u003ewwords \u003d waddr/2 + hwords;   /* payload size *2 to include both TDI and TMS data */"},{"line_number":579,"context_line":"\t\tpm-\u003ewaddr++;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_6c001b05","line":576,"in_reply_to":"6ec1af18_6d1b35d5","updated":"2021-07-02 05:34:46.000000000","message":"Will the code be functional after you just removed it?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"8add227a0bf7a658ef47e2a7bbe9e2443457f20f","unresolved":false,"context_lines":[{"line_number":573,"context_line":"\t\t}"},{"line_number":574,"context_line":"\t\tif (tdo) {"},{"line_number":575,"context_line":"\t\t\tpm-\u003erwords +\u003d words;         /* keep track of the words to read */"},{"line_number":576,"context_line":"\t\t\tpm-\u003erd64[VD_BUFFER_LEN/8-(++pm-\u003eoffset)] \u003d (uintptr_t)tdo;"},{"line_number":577,"context_line":"\t\t}"},{"line_number":578,"context_line":"\t\tpm-\u003ewwords \u003d waddr/2 + hwords;   /* payload size *2 to include both TDI and TMS data */"},{"line_number":579,"context_line":"\t\tpm-\u003ewaddr++;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"6ec1af18_6d1b35d5","line":576,"in_reply_to":"6ec1af18_ed6085ce","updated":"2021-07-01 15:04:40.000000000","message":"OK, if you do not like it, I will remove this functionality from this patch, like I did with the memory access and potentially address it in a separate patch. How does it sound ?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"9add23c1187d124eeb3b4501ef60b61b8a395207","unresolved":false,"context_lines":[{"line_number":573,"context_line":"\t\t}"},{"line_number":574,"context_line":"\t\tif (tdo) {"},{"line_number":575,"context_line":"\t\t\tpm-\u003erwords +\u003d words;         /* keep track of the words to read */"},{"line_number":576,"context_line":"\t\t\tpm-\u003erd64[VD_BUFFER_LEN/8-(++pm-\u003eoffset)] \u003d (uintptr_t)tdo;"},{"line_number":577,"context_line":"\t\t}"},{"line_number":578,"context_line":"\t\tpm-\u003ewwords \u003d waddr/2 + hwords;   /* payload size *2 to include both TDI and TMS data */"},{"line_number":579,"context_line":"\t\tpm-\u003ewaddr++;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_32fcaed5","line":576,"in_reply_to":"aedf27f1_12808a4a","updated":"2021-04-14 18:26:35.000000000","message":"No, this part of the buffer is not sent out. It\u0027s a temporary storage.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"fd014fa7e78c159f13a06cad54e1b32a585737c1","unresolved":false,"context_lines":[{"line_number":573,"context_line":"\t\t}"},{"line_number":574,"context_line":"\t\tif (tdo) {"},{"line_number":575,"context_line":"\t\t\tpm-\u003erwords +\u003d words;         /* keep track of the words to read */"},{"line_number":576,"context_line":"\t\t\tpm-\u003erd64[VD_BUFFER_LEN/8-(++pm-\u003eoffset)] \u003d (uintptr_t)tdo;"},{"line_number":577,"context_line":"\t\t}"},{"line_number":578,"context_line":"\t\tpm-\u003ewwords \u003d waddr/2 + hwords;   /* payload size *2 to include both TDI and TMS data */"},{"line_number":579,"context_line":"\t\tpm-\u003ewaddr++;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"6ec1af18_ed6085ce","line":576,"in_reply_to":"aedf27f1_32fcaed5","updated":"2021-06-25 11:03:01.000000000","message":"This is bad idea, please do not do it.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"be7cd3ba2010fdbe86ce01733332fa77c26c7eb0","unresolved":false,"context_lines":[{"line_number":576,"context_line":"\t\t\tpm-\u003erd64[VD_BUFFER_LEN/8-(++pm-\u003eoffset)] \u003d (uintptr_t)tdo;"},{"line_number":577,"context_line":"\t\t}"},{"line_number":578,"context_line":"\t\tpm-\u003ewwords \u003d waddr/2 + hwords;   /* payload size *2 to include both TDI and TMS data */"},{"line_number":579,"context_line":"\t\tpm-\u003ewaddr++;"},{"line_number":580,"context_line":"\t}"},{"line_number":581,"context_line":"\tif (!waddr)                          /* no action */"},{"line_number":582,"context_line":"\t\t;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_8f5bf556","line":579,"updated":"2021-04-12 18:58:11.000000000","message":"this was very long if statement. please move it in to separate function","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"be7cd3ba2010fdbe86ce01733332fa77c26c7eb0","unresolved":false,"context_lines":[{"line_number":578,"context_line":"\t\tpm-\u003ewwords \u003d waddr/2 + hwords;   /* payload size *2 to include both TDI and TMS data */"},{"line_number":579,"context_line":"\t\tpm-\u003ewaddr++;"},{"line_number":580,"context_line":"\t}"},{"line_number":581,"context_line":"\tif (!waddr)                          /* no action */"},{"line_number":582,"context_line":"\t\t;"},{"line_number":583,"context_line":"\telse if (!vdc.trans_last)           /* buffered request */"},{"line_number":584,"context_line":"\t\tpm-\u003eoffseth \u003d waddr + hwords*2;  /* offset for next transaction, must be even */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_af58395a","line":581,"updated":"2021-04-12 18:58:11.000000000","message":"why? it make no sense for reading or executing","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"86f1034d15dd18632d342721ae86560106c79788","unresolved":false,"context_lines":[{"line_number":578,"context_line":"\t\tpm-\u003ewwords \u003d waddr/2 + hwords;   /* payload size *2 to include both TDI and TMS data */"},{"line_number":579,"context_line":"\t\tpm-\u003ewaddr++;"},{"line_number":580,"context_line":"\t}"},{"line_number":581,"context_line":"\tif (!waddr)                          /* no action */"},{"line_number":582,"context_line":"\t\t;"},{"line_number":583,"context_line":"\telse if (!vdc.trans_last)           /* buffered request */"},{"line_number":584,"context_line":"\t\tpm-\u003eoffseth \u003d waddr + hwords*2;  /* offset for next transaction, must be even */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_8c2f8785","line":581,"in_reply_to":"6ec1af18_8d5d411d","updated":"2021-07-02 11:25:34.000000000","message":"it\u0027s for a reason here. This function can be used to force a flush and this condition checks for empty buffer then.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"fd014fa7e78c159f13a06cad54e1b32a585737c1","unresolved":false,"context_lines":[{"line_number":578,"context_line":"\t\tpm-\u003ewwords \u003d waddr/2 + hwords;   /* payload size *2 to include both TDI and TMS data */"},{"line_number":579,"context_line":"\t\tpm-\u003ewaddr++;"},{"line_number":580,"context_line":"\t}"},{"line_number":581,"context_line":"\tif (!waddr)                          /* no action */"},{"line_number":582,"context_line":"\t\t;"},{"line_number":583,"context_line":"\telse if (!vdc.trans_last)           /* buffered request */"},{"line_number":584,"context_line":"\t\tpm-\u003eoffseth \u003d waddr + hwords*2;  /* offset for next transaction, must be even */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"6ec1af18_8d5d411d","line":581,"in_reply_to":"aedf27f1_326fcec2","updated":"2021-06-25 11:03:01.000000000","message":"If this code is doing nothing, then please remove it.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"0ef122294d0ff6c023f38cf98ed9d0e1987a22a3","unresolved":false,"context_lines":[{"line_number":578,"context_line":"\t\tpm-\u003ewwords \u003d waddr/2 + hwords;   /* payload size *2 to include both TDI and TMS data */"},{"line_number":579,"context_line":"\t\tpm-\u003ewaddr++;"},{"line_number":580,"context_line":"\t}"},{"line_number":581,"context_line":"\tif (!waddr)                          /* no action */"},{"line_number":582,"context_line":"\t\t;"},{"line_number":583,"context_line":"\telse if (!vdc.trans_last)           /* buffered request */"},{"line_number":584,"context_line":"\t\tpm-\u003eoffseth \u003d waddr + hwords*2;  /* offset for next transaction, must be even */"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_326fcec2","line":581,"in_reply_to":"aedf27f1_af58395a","updated":"2021-04-14 10:18:54.000000000","message":"This is a way to emphasize that we do not queue anything if there is no data, or no flush. Of course it could be done as if (waddr \u0026\u0026 vdc.trans_last)","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"be7cd3ba2010fdbe86ce01733332fa77c26c7eb0","unresolved":false,"context_lines":[{"line_number":583,"context_line":"\telse if (!vdc.trans_last)           /* buffered request */"},{"line_number":584,"context_line":"\t\tpm-\u003eoffseth \u003d waddr + hwords*2;  /* offset for next transaction, must be even */"},{"line_number":585,"context_line":"\telse                                 /* execute batch of requests */"},{"line_number":586,"context_line":"\t\trc \u003d exec_jtag_queue(hsock, pm, pm-\u003ewaddr);"},{"line_number":587,"context_line":"\tvdc.trans_first \u003d vdc.trans_last; /* flush forces trans_first flag */"},{"line_number":588,"context_line":"\treturn rc;"},{"line_number":589,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_6f3a51e6","line":586,"updated":"2021-04-12 18:58:11.000000000","message":"new line after if scope.. same for all places","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"be7cd3ba2010fdbe86ce01733332fa77c26c7eb0","unresolved":false,"context_lines":[{"line_number":584,"context_line":"\t\tpm-\u003eoffseth \u003d waddr + hwords*2;  /* offset for next transaction, must be even */"},{"line_number":585,"context_line":"\telse                                 /* execute batch of requests */"},{"line_number":586,"context_line":"\t\trc \u003d exec_jtag_queue(hsock, pm, pm-\u003ewaddr);"},{"line_number":587,"context_line":"\tvdc.trans_first \u003d vdc.trans_last; /* flush forces trans_first flag */"},{"line_number":588,"context_line":"\treturn rc;"},{"line_number":589,"context_line":"}"},{"line_number":590,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_4f350df3","line":587,"updated":"2021-04-12 18:58:11.000000000","message":"new line before return","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"be7cd3ba2010fdbe86ce01733332fa77c26c7eb0","unresolved":false,"context_lines":[{"line_number":592,"context_line":"{"},{"line_number":593,"context_line":"\tint rc \u003d VD_ERR_NOT_OPEN;"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":"\tif (path) {"},{"line_number":596,"context_line":"\t\tpm-\u003ecmd \u003d VD_CMD_MEMOPEN;"},{"line_number":597,"context_line":"\t\tpm-\u003ewbytes \u003d (uint16_t)strlen(path)+1;"},{"line_number":598,"context_line":"\t\tpm-\u003erbytes \u003d 8;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_0f3f05d5","line":595,"updated":"2021-04-12 18:58:11.000000000","message":"complete function in one if scope. The code flow is:\nif (!path)\n   return ..;\n\nnormal code ...\n\nSame of other places","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"86f1034d15dd18632d342721ae86560106c79788","unresolved":false,"context_lines":[{"line_number":592,"context_line":"{"},{"line_number":593,"context_line":"\tint rc \u003d VD_ERR_NOT_OPEN;"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":"\tif (path) {"},{"line_number":596,"context_line":"\t\tpm-\u003ecmd \u003d VD_CMD_MEMOPEN;"},{"line_number":597,"context_line":"\t\tpm-\u003ewbytes \u003d (uint16_t)strlen(path)+1;"},{"line_number":598,"context_line":"\t\tpm-\u003erbytes \u003d 8;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_4c499f69","line":595,"in_reply_to":"6ec1af18_ad5a7d20","updated":"2021-07-02 11:25:34.000000000","message":"Hmmm, why is if (blah) return; any better than this? More consistent code style? not a big deal, but it does not make much sense to me.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"fd014fa7e78c159f13a06cad54e1b32a585737c1","unresolved":false,"context_lines":[{"line_number":592,"context_line":"{"},{"line_number":593,"context_line":"\tint rc \u003d VD_ERR_NOT_OPEN;"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":"\tif (path) {"},{"line_number":596,"context_line":"\t\tpm-\u003ecmd \u003d VD_CMD_MEMOPEN;"},{"line_number":597,"context_line":"\t\tpm-\u003ewbytes \u003d (uint16_t)strlen(path)+1;"},{"line_number":598,"context_line":"\t\tpm-\u003erbytes \u003d 8;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"6ec1af18_ad5a7d20","line":595,"in_reply_to":"aedf27f1_0f3f05d5","updated":"2021-06-25 11:03:01.000000000","message":"No addressed","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"09c44fea34a7ac1dea6113c3b3e3de16ca152352","unresolved":false,"context_lines":[{"line_number":597,"context_line":"\t\tpm-\u003ewbytes \u003d (uint16_t)strlen(path)+1;"},{"line_number":598,"context_line":"\t\tpm-\u003erbytes \u003d 8;"},{"line_number":599,"context_line":"\t\tpm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":600,"context_line":"\t\tmemcpy(pm-\u003ewd8, path, pm-\u003ewbytes+1);"},{"line_number":601,"context_line":"\t\trc \u003d wait_server(hsock, pm);"},{"line_number":602,"context_line":"\t\tif (rc)"},{"line_number":603,"context_line":"\t\t\tLOG_WARNING(\"vdebug_mem_open: Error 0x%x opening memory %s\", rc, path);"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_8c18e77b","line":600,"updated":"2021-07-02 05:34:46.000000000","message":"This memcpy is protected by the hope, that the right compiler will set \"static struct vd_client_st vdc;\" to zero.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"b045503b71c8dd2c7cf77640c75a766c6abafc5f","unresolved":false,"context_lines":[{"line_number":597,"context_line":"\t\tpm-\u003ewbytes \u003d (uint16_t)strlen(path)+1;"},{"line_number":598,"context_line":"\t\tpm-\u003erbytes \u003d 8;"},{"line_number":599,"context_line":"\t\tpm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":600,"context_line":"\t\tmemcpy(pm-\u003ewd8, path, pm-\u003ewbytes+1);"},{"line_number":601,"context_line":"\t\trc \u003d wait_server(hsock, pm);"},{"line_number":602,"context_line":"\t\tif (rc)"},{"line_number":603,"context_line":"\t\t\tLOG_WARNING(\"vdebug_mem_open: Error 0x%x opening memory %s\", rc, path);"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_6cb7bbd4","line":600,"in_reply_to":"4eceab4c_0c6ab7b1","updated":"2021-07-04 14:39:26.000000000","message":"I think you should know that C99 standard mandates initializing static variables (without explicit initialization) to zero, section 6.7.8 10, so it\u0027s not only the hope. Any non C99-compliant compilers are supported ?\nYes, I do think it\u0027s a good practice to have explicit initialization, and it exists in the original code branch. In this driver the vdc struct does not have it, due to constant changes resulting from the review process, but once it\u0027s stable it can be added.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"86f1034d15dd18632d342721ae86560106c79788","unresolved":false,"context_lines":[{"line_number":597,"context_line":"\t\tpm-\u003ewbytes \u003d (uint16_t)strlen(path)+1;"},{"line_number":598,"context_line":"\t\tpm-\u003erbytes \u003d 8;"},{"line_number":599,"context_line":"\t\tpm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":600,"context_line":"\t\tmemcpy(pm-\u003ewd8, path, pm-\u003ewbytes+1);"},{"line_number":601,"context_line":"\t\trc \u003d wait_server(hsock, pm);"},{"line_number":602,"context_line":"\t\tif (rc)"},{"line_number":603,"context_line":"\t\t\tLOG_WARNING(\"vdebug_mem_open: Error 0x%x opening memory %s\", rc, path);"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_ac2cc390","line":600,"in_reply_to":"4eceab4c_8c18e77b","updated":"2021-07-02 11:25:34.000000000","message":"Huh? This comment does not make sense to me.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"53d6f3268d4fd044d11306cb558c2816b4978b9e","unresolved":false,"context_lines":[{"line_number":597,"context_line":"\t\tpm-\u003ewbytes \u003d (uint16_t)strlen(path)+1;"},{"line_number":598,"context_line":"\t\tpm-\u003erbytes \u003d 8;"},{"line_number":599,"context_line":"\t\tpm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":600,"context_line":"\t\tmemcpy(pm-\u003ewd8, path, pm-\u003ewbytes+1);"},{"line_number":601,"context_line":"\t\trc \u003d wait_server(hsock, pm);"},{"line_number":602,"context_line":"\t\tif (rc)"},{"line_number":603,"context_line":"\t\t\tLOG_WARNING(\"vdebug_mem_open: Error 0x%x opening memory %s\", rc, path);"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4eceab4c_0c6ab7b1","line":600,"in_reply_to":"4eceab4c_ac2cc390","updated":"2021-07-02 12:56:18.000000000","message":"this memcpy() is limited by strlen(). strlen() detection is based on \"\\0\". So the \"path\" should be with \"\\0\", or we will corrupt memory. The path is \"mem_path[VD_MAX_MEMORIES][128]\"\nWhich is written by:\nstrncpy(vdc.mem_path[vdc.mem_ndx], CMD_ARGV[0], sizeof(vdc.mem_path[vdc.mem_ndx]) - 1);\n\nLet\u0027s read strncpy manual:\nThe  strncpy()  function  is  similar, except that at most n bytes of src are copied.  Warning: If there is no null byte among the first n bytes of src, the string placed in dest will not be null-terminated.\n\nThis means, if user provide long enough string, the buffer will be without null termination. Well, you have kind of protection \"sizeof(vdc.mem_path[vdc.mem_ndx]) - 1\", means there is still one byte which may protect us from overrun. Where is this byte initialized? Ah there it is:\nstatic struct vd_client_st vdc;\n\nActually it is not strictly initialized, but I hope right version of compiler will do it.\n\nDid I missed something?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5db1b09d795246bb2b1a58571cc10ca15b8a6e7a","unresolved":false,"context_lines":[{"line_number":626,"context_line":""},{"line_number":627,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_MEMWRITE;"},{"line_number":628,"context_line":"\tpm-\u003ewbytes \u003d num;"},{"line_number":629,"context_line":"\tpm-\u003ewwords \u003d (num+vdc.mem_width[ndx]-1)/vdc.mem_width[ndx];"},{"line_number":630,"context_line":"\tpm-\u003erbytes \u003d pm-\u003erwords \u003d 0;"},{"line_number":631,"context_line":"#ifndef _M_IX86"},{"line_number":632,"context_line":"\tpm-\u003eoffset \u003d (uint32_t)(addr/vdc.mem_width[ndx]);"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_8f321505","line":629,"updated":"2021-04-12 23:08:37.000000000","message":"always add space around the operators \u0027+\u0027, \u0027-\u0027, \u0027/\u0027 ... all around the file","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5db1b09d795246bb2b1a58571cc10ca15b8a6e7a","unresolved":false,"context_lines":[{"line_number":628,"context_line":"\tpm-\u003ewbytes \u003d num;"},{"line_number":629,"context_line":"\tpm-\u003ewwords \u003d (num+vdc.mem_width[ndx]-1)/vdc.mem_width[ndx];"},{"line_number":630,"context_line":"\tpm-\u003erbytes \u003d pm-\u003erwords \u003d 0;"},{"line_number":631,"context_line":"#ifndef _M_IX86"},{"line_number":632,"context_line":"\tpm-\u003eoffset \u003d (uint32_t)(addr/vdc.mem_width[ndx]);"},{"line_number":633,"context_line":"\tpm-\u003eoffseth \u003d (uint16_t)(addr/vdc.mem_width[ndx] \u003e\u003e 32);"},{"line_number":634,"context_line":"#else"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_af2fd99b","line":631,"updated":"2021-04-12 23:08:37.000000000","message":"I miss something here. The macro _M_IX86 is specific of M$ visual studio. I don\u0027t even expect that OpenOCD compiles in VC, but I haven\u0027t tried; who knows.\nWhat I don\u0027t understand is why having OpenOCD running on a 32 or 64 bit machine could change the protocol!\nEventually is the machine running the vdebug server that defines the protocol.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"9add23c1187d124eeb3b4501ef60b61b8a395207","unresolved":false,"context_lines":[{"line_number":628,"context_line":"\tpm-\u003ewbytes \u003d num;"},{"line_number":629,"context_line":"\tpm-\u003ewwords \u003d (num+vdc.mem_width[ndx]-1)/vdc.mem_width[ndx];"},{"line_number":630,"context_line":"\tpm-\u003erbytes \u003d pm-\u003erwords \u003d 0;"},{"line_number":631,"context_line":"#ifndef _M_IX86"},{"line_number":632,"context_line":"\tpm-\u003eoffset \u003d (uint32_t)(addr/vdc.mem_width[ndx]);"},{"line_number":633,"context_line":"\tpm-\u003eoffseth \u003d (uint16_t)(addr/vdc.mem_width[ndx] \u003e\u003e 32);"},{"line_number":634,"context_line":"#else"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_52edb221","line":631,"in_reply_to":"aedf27f1_92bc7a1c","updated":"2021-04-14 18:26:35.000000000","message":"It was done for MSVC, I do not remember the error. mingw32 does compile the original code, I will remove the ifdef.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"0ef122294d0ff6c023f38cf98ed9d0e1987a22a3","unresolved":false,"context_lines":[{"line_number":628,"context_line":"\tpm-\u003ewbytes \u003d num;"},{"line_number":629,"context_line":"\tpm-\u003ewwords \u003d (num+vdc.mem_width[ndx]-1)/vdc.mem_width[ndx];"},{"line_number":630,"context_line":"\tpm-\u003erbytes \u003d pm-\u003erwords \u003d 0;"},{"line_number":631,"context_line":"#ifndef _M_IX86"},{"line_number":632,"context_line":"\tpm-\u003eoffset \u003d (uint32_t)(addr/vdc.mem_width[ndx]);"},{"line_number":633,"context_line":"\tpm-\u003eoffseth \u003d (uint16_t)(addr/vdc.mem_width[ndx] \u003e\u003e 32);"},{"line_number":634,"context_line":"#else"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_f26066ce","line":631,"in_reply_to":"aedf27f1_af2fd99b","updated":"2021-04-14 10:18:54.000000000","message":"This is a hack, I could not compile/link the code on 32b Windows. This macro exists for mingw32 too. But I think it can be removed.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"ed2cc39c7d4584faff7631470bb2267007726729","unresolved":false,"context_lines":[{"line_number":628,"context_line":"\tpm-\u003ewbytes \u003d num;"},{"line_number":629,"context_line":"\tpm-\u003ewwords \u003d (num+vdc.mem_width[ndx]-1)/vdc.mem_width[ndx];"},{"line_number":630,"context_line":"\tpm-\u003erbytes \u003d pm-\u003erwords \u003d 0;"},{"line_number":631,"context_line":"#ifndef _M_IX86"},{"line_number":632,"context_line":"\tpm-\u003eoffset \u003d (uint32_t)(addr/vdc.mem_width[ndx]);"},{"line_number":633,"context_line":"\tpm-\u003eoffseth \u003d (uint16_t)(addr/vdc.mem_width[ndx] \u003e\u003e 32);"},{"line_number":634,"context_line":"#else"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_92bc7a1c","line":631,"in_reply_to":"aedf27f1_f26066ce","updated":"2021-04-14 13:31:03.000000000","message":"What kind of error do you get?\nHere you compute (uint64_t / uint32_t). Have you tried to use a temporarily uint64_t variable to hold the intermediate result?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5db1b09d795246bb2b1a58571cc10ca15b8a6e7a","unresolved":false,"context_lines":[{"line_number":721,"context_line":"\t\tLOG_ERROR(\"cannot allocate %lu bytes\", sizeof(struct vd_shm_st));"},{"line_number":722,"context_line":"\t\trc \u003d VD_ERR_NO_MEMORY;"},{"line_number":723,"context_line":"\t} else if (vdc.hsocket \u003c\u003d 0) {"},{"line_number":724,"context_line":"\t\tif (pbuf)"},{"line_number":725,"context_line":"\t\t\tfree(pbuf);"},{"line_number":726,"context_line":"\t\tpbuf \u003d NULL;"},{"line_number":727,"context_line":"\t\tLOG_ERROR(\"cannot connect to vdebug server %s:%d\","},{"line_number":728,"context_line":"\t\t\tvdc.server_name, vdc.server_port);"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_4f1c2d7d","line":725,"range":{"start_line":724,"start_character":0,"end_line":725,"end_character":14},"updated":"2021-04-12 23:08:37.000000000","message":"No need to test. Directly\nfree(pbuf);\neverywhere in the file","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5db1b09d795246bb2b1a58571cc10ca15b8a6e7a","unresolved":false,"context_lines":[{"line_number":919,"context_line":""},{"line_number":920,"context_line":"\tfor (cmd \u003d jtag_command_queue; rc \u003d\u003d ERROR_OK \u0026\u0026 cmd !\u003d NULL; cmd \u003d cmd-\u003enext) {"},{"line_number":921,"context_line":"\t\tswitch (cmd-\u003etype) {"},{"line_number":922,"context_line":"\t\t\tcase JTAG_RESET:"},{"line_number":923,"context_line":"\t\t\t\trc \u003d vdebug_reset(cmd-\u003ecmd.reset-\u003etrst, cmd-\u003ecmd.reset-\u003esrst);"},{"line_number":924,"context_line":"\t\t\t\tbreak;"},{"line_number":925,"context_line":"\t\t\tcase JTAG_RUNTEST:"},{"line_number":926,"context_line":"\t\t\t\trc \u003d vdebug_runtest(cmd-\u003ecmd.runtest-\u003enum_cycles, cmd-\u003ecmd.runtest-\u003eend_state, cmd-\u003enext \u003d\u003d NULL);"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_6f21f1ab","line":923,"range":{"start_line":922,"start_character":0,"end_line":923,"end_character":66},"updated":"2021-04-12 23:08:37.000000000","message":"Please move away from this queued reset and use the asynchronous API struct adapter_driver-\u003ereset()","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"0ef122294d0ff6c023f38cf98ed9d0e1987a22a3","unresolved":false,"context_lines":[{"line_number":919,"context_line":""},{"line_number":920,"context_line":"\tfor (cmd \u003d jtag_command_queue; rc \u003d\u003d ERROR_OK \u0026\u0026 cmd !\u003d NULL; cmd \u003d cmd-\u003enext) {"},{"line_number":921,"context_line":"\t\tswitch (cmd-\u003etype) {"},{"line_number":922,"context_line":"\t\t\tcase JTAG_RESET:"},{"line_number":923,"context_line":"\t\t\t\trc \u003d vdebug_reset(cmd-\u003ecmd.reset-\u003etrst, cmd-\u003ecmd.reset-\u003esrst);"},{"line_number":924,"context_line":"\t\t\t\tbreak;"},{"line_number":925,"context_line":"\t\t\tcase JTAG_RUNTEST:"},{"line_number":926,"context_line":"\t\t\t\trc \u003d vdebug_runtest(cmd-\u003ecmd.runtest-\u003enum_cycles, cmd-\u003ecmd.runtest-\u003eend_state, cmd-\u003enext \u003d\u003d NULL);"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_72a47605","line":923,"range":{"start_line":922,"start_character":0,"end_line":923,"end_character":66},"in_reply_to":"aedf27f1_6f21f1ab","updated":"2021-04-14 10:18:54.000000000","message":"Is it OK to ignore this queued reset command here ?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"ed2cc39c7d4584faff7631470bb2267007726729","unresolved":false,"context_lines":[{"line_number":919,"context_line":""},{"line_number":920,"context_line":"\tfor (cmd \u003d jtag_command_queue; rc \u003d\u003d ERROR_OK \u0026\u0026 cmd !\u003d NULL; cmd \u003d cmd-\u003enext) {"},{"line_number":921,"context_line":"\t\tswitch (cmd-\u003etype) {"},{"line_number":922,"context_line":"\t\t\tcase JTAG_RESET:"},{"line_number":923,"context_line":"\t\t\t\trc \u003d vdebug_reset(cmd-\u003ecmd.reset-\u003etrst, cmd-\u003ecmd.reset-\u003esrst);"},{"line_number":924,"context_line":"\t\t\t\tbreak;"},{"line_number":925,"context_line":"\t\t\tcase JTAG_RUNTEST:"},{"line_number":926,"context_line":"\t\t\t\trc \u003d vdebug_runtest(cmd-\u003ecmd.runtest-\u003enum_cycles, cmd-\u003ecmd.runtest-\u003eend_state, cmd-\u003enext \u003d\u003d NULL);"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_f2af06dd","line":923,"range":{"start_line":922,"start_character":0,"end_line":923,"end_character":66},"in_reply_to":"aedf27f1_72a47605","updated":"2021-04-14 13:31:03.000000000","message":"the upper layer will check if there is adapter_driver-\u003ereset() and then either use this async API or queue the reset for the driver that has not migrated to async API yet.\nI\u0027m doing the migration one driver at a time and sometimes it\u0027s complex and I don\u0027t have the devices for test. If you can use the new API since the beginning it would be better, since you can test it in your environment.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5db1b09d795246bb2b1a58571cc10ca15b8a6e7a","unresolved":false,"context_lines":[{"line_number":1058,"context_line":"\t\tvdc.pollmax \u003d atoi(CMD_ARGV[1]);"},{"line_number":1059,"context_line":"\t\tvdc.ptarg \u003d get_target_by_num(0);"},{"line_number":1060,"context_line":"\t\tif ((vdc.ptarg !\u003d NULL) \u0026\u0026 (vdc.ptarg-\u003etype !\u003d NULL)) {"},{"line_number":1061,"context_line":"\t\t\tvdc.targ_poll \u003d vdc.ptarg-\u003etype-\u003epoll;"},{"line_number":1062,"context_line":"\t\t\tvdc.ptarg-\u003etype-\u003epoll \u003d \u0026vdebug_poll;"},{"line_number":1063,"context_line":"\t\t\tLOG_INFO(\"register_target_poll: set min %u max %u cycles\", vdc.pollmin, vdc.pollmax);"},{"line_number":1064,"context_line":"\t\t}"},{"line_number":1065,"context_line":"\t\trc \u003d ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_52fb7211","line":1062,"range":{"start_line":1061,"start_character":0,"end_line":1062,"end_character":40},"updated":"2021-04-12 23:08:37.000000000","message":"this is a huge hack!\nYou replace the target\u0027s poll() and in next you replace target\u0027s write_memory().\nCan you please explain why you are doing this?\nPlus, if you run this command a second time you break everything.\nPlus, it works with first target only.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"0ef122294d0ff6c023f38cf98ed9d0e1987a22a3","unresolved":false,"context_lines":[{"line_number":1058,"context_line":"\t\tvdc.pollmax \u003d atoi(CMD_ARGV[1]);"},{"line_number":1059,"context_line":"\t\tvdc.ptarg \u003d get_target_by_num(0);"},{"line_number":1060,"context_line":"\t\tif ((vdc.ptarg !\u003d NULL) \u0026\u0026 (vdc.ptarg-\u003etype !\u003d NULL)) {"},{"line_number":1061,"context_line":"\t\t\tvdc.targ_poll \u003d vdc.ptarg-\u003etype-\u003epoll;"},{"line_number":1062,"context_line":"\t\t\tvdc.ptarg-\u003etype-\u003epoll \u003d \u0026vdebug_poll;"},{"line_number":1063,"context_line":"\t\t\tLOG_INFO(\"register_target_poll: set min %u max %u cycles\", vdc.pollmin, vdc.pollmax);"},{"line_number":1064,"context_line":"\t\t}"},{"line_number":1065,"context_line":"\t\trc \u003d ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_925d5a1d","line":1062,"range":{"start_line":1061,"start_character":0,"end_line":1062,"end_character":40},"in_reply_to":"aedf27f1_52fb7211","updated":"2021-04-14 10:18:54.000000000","message":"vdebug implements a backdoor access to the target memory. That way the image can be loaded instantly, the backdoor access can also be used for cases where it does not violate cache coherency. Thus hijacking write memory.\nvdebug also needs to throttle the target by issuing HW wait statements when idle, due to synchronous implementation.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"71703f37192f1192b2c424f160ec49df9bbee440","unresolved":false,"context_lines":[{"line_number":1058,"context_line":"\t\tvdc.pollmax \u003d atoi(CMD_ARGV[1]);"},{"line_number":1059,"context_line":"\t\tvdc.ptarg \u003d get_target_by_num(0);"},{"line_number":1060,"context_line":"\t\tif ((vdc.ptarg !\u003d NULL) \u0026\u0026 (vdc.ptarg-\u003etype !\u003d NULL)) {"},{"line_number":1061,"context_line":"\t\t\tvdc.targ_poll \u003d vdc.ptarg-\u003etype-\u003epoll;"},{"line_number":1062,"context_line":"\t\t\tvdc.ptarg-\u003etype-\u003epoll \u003d \u0026vdebug_poll;"},{"line_number":1063,"context_line":"\t\t\tLOG_INFO(\"register_target_poll: set min %u max %u cycles\", vdc.pollmin, vdc.pollmax);"},{"line_number":1064,"context_line":"\t\t}"},{"line_number":1065,"context_line":"\t\trc \u003d ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_32102e04","line":1062,"range":{"start_line":1061,"start_character":0,"end_line":1062,"end_character":40},"in_reply_to":"aedf27f1_72f23605","updated":"2021-04-15 15:18:28.000000000","message":"Using TARGET_TIMER_TYPE_PERIODIC you set the repetition period. Should work fine if you call target_timer_callback_periodic_restart() when you have jtag activity to restart from \"now\". So you guarantee a minimum delay and do not generate extra traffic if the jtag is already busy. But it\u0027s missing an API to get the parameter \u0027struct target_timer_callback *cb\u0027 for target_timer_callback_periodic_restart(). Feel free to propose a fix there.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"ed2cc39c7d4584faff7631470bb2267007726729","unresolved":false,"context_lines":[{"line_number":1058,"context_line":"\t\tvdc.pollmax \u003d atoi(CMD_ARGV[1]);"},{"line_number":1059,"context_line":"\t\tvdc.ptarg \u003d get_target_by_num(0);"},{"line_number":1060,"context_line":"\t\tif ((vdc.ptarg !\u003d NULL) \u0026\u0026 (vdc.ptarg-\u003etype !\u003d NULL)) {"},{"line_number":1061,"context_line":"\t\t\tvdc.targ_poll \u003d vdc.ptarg-\u003etype-\u003epoll;"},{"line_number":1062,"context_line":"\t\t\tvdc.ptarg-\u003etype-\u003epoll \u003d \u0026vdebug_poll;"},{"line_number":1063,"context_line":"\t\t\tLOG_INFO(\"register_target_poll: set min %u max %u cycles\", vdc.pollmin, vdc.pollmax);"},{"line_number":1064,"context_line":"\t\t}"},{"line_number":1065,"context_line":"\t\trc \u003d ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_d2b20248","line":1062,"range":{"start_line":1061,"start_character":0,"end_line":1062,"end_character":40},"in_reply_to":"aedf27f1_925d5a1d","updated":"2021-04-14 13:31:03.000000000","message":"This kind of mix between the adapter driver layer and target layer is not nice from SW architecture point of view.\nI suggest you to split the memory access feature in a second patch on top of this one, so can be discussed and investigated separately (I assume the driver without the memory access hack is still working, even if damned slow).\nFor the wait; do you need the wait statement in sync with OpenOCD target poll or is enough to just periodically call it? If you just need to periodically send a wait statement, you can simply register a timed callback with\ntarget_register_timer_callback(func, time_ms, TARGET_TIMER_TYPE_PERIODIC, privdata);\nThe name of this function is misleading because it is actually not linked to any specific target. It will call periodically your driver function.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"9add23c1187d124eeb3b4501ef60b61b8a395207","unresolved":false,"context_lines":[{"line_number":1058,"context_line":"\t\tvdc.pollmax \u003d atoi(CMD_ARGV[1]);"},{"line_number":1059,"context_line":"\t\tvdc.ptarg \u003d get_target_by_num(0);"},{"line_number":1060,"context_line":"\t\tif ((vdc.ptarg !\u003d NULL) \u0026\u0026 (vdc.ptarg-\u003etype !\u003d NULL)) {"},{"line_number":1061,"context_line":"\t\t\tvdc.targ_poll \u003d vdc.ptarg-\u003etype-\u003epoll;"},{"line_number":1062,"context_line":"\t\t\tvdc.ptarg-\u003etype-\u003epoll \u003d \u0026vdebug_poll;"},{"line_number":1063,"context_line":"\t\t\tLOG_INFO(\"register_target_poll: set min %u max %u cycles\", vdc.pollmin, vdc.pollmax);"},{"line_number":1064,"context_line":"\t\t}"},{"line_number":1065,"context_line":"\t\trc \u003d ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_72f23605","line":1062,"range":{"start_line":1061,"start_character":0,"end_line":1062,"end_character":40},"in_reply_to":"aedf27f1_d2b20248","updated":"2021-04-14 18:26:35.000000000","message":"OK. Will splite the memory access.\nI need to call the wait only if there is no activity, not periodically, because the normal traffic (like JTAG shifts) throttles the hardware. Ideally I\u0027d like to avoid any kind of sleep and busy loop and replace it with wait().","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5db1b09d795246bb2b1a58571cc10ca15b8a6e7a","unresolved":false,"context_lines":[{"line_number":1122,"context_line":"\t\t.mode \u003d COMMAND_EXEC,"},{"line_number":1123,"context_line":"\t\t.help \u003d \"Hook up the direct memory access routines to the memories specified by mem_path\","},{"line_number":1124,"context_line":"\t\t.usage \u003d \"register_target_dma\","},{"line_number":1125,"context_line":"\t},"},{"line_number":1126,"context_line":"\tCOMMAND_REGISTRATION_DONE"},{"line_number":1127,"context_line":"};"},{"line_number":1128,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_cf0fbd3a","line":1125,"updated":"2021-04-12 23:08:37.000000000","message":"none of the commands above is documented in openocd.texi\nThe usage is incorrect. It should not include the command itself. Try typing \u0027usage mem_path\u0027.\nCan you make these command\u0027s names more related to vdebug? Either renaming them \u0027vdebug_*\u0027 or creating a two layers with \u0027vdebug\" followed by subcommand?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5db1b09d795246bb2b1a58571cc10ca15b8a6e7a","unresolved":false,"context_lines":[{"line_number":1133,"context_line":""},{"line_number":1134,"context_line":"struct adapter_driver vdebug_adapter_driver \u003d {"},{"line_number":1135,"context_line":"\t.name \u003d \"vdebug\","},{"line_number":1136,"context_line":"\t.transports \u003d vdebug_transports,"},{"line_number":1137,"context_line":"\t.speed \u003d vdebug_speed,"},{"line_number":1138,"context_line":"\t.khz \u003d vdebug_khz,"},{"line_number":1139,"context_line":"\t.speed_div \u003d vdebug_div,"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_ef0c0148","line":1136,"updated":"2021-04-12 23:08:37.000000000","message":"no need for \u0027vdebug_transports\u0027. Use the generic \u0027jtag_only\u0027","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"ed2cc39c7d4584faff7631470bb2267007726729","unresolved":false,"context_lines":[{"line_number":1133,"context_line":""},{"line_number":1134,"context_line":"struct adapter_driver vdebug_adapter_driver \u003d {"},{"line_number":1135,"context_line":"\t.name \u003d \"vdebug\","},{"line_number":1136,"context_line":"\t.transports \u003d vdebug_transports,"},{"line_number":1137,"context_line":"\t.speed \u003d vdebug_speed,"},{"line_number":1138,"context_line":"\t.khz \u003d vdebug_khz,"},{"line_number":1139,"context_line":"\t.speed_div \u003d vdebug_div,"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_b2b97e2b","line":1136,"in_reply_to":"aedf27f1_529ff2b9","updated":"2021-04-14 13:31:03.000000000","message":"If you do not mind, please use \u0027jtag_only\u0027 now, and then switch to vdebug_transport when you add the new transports.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"0ef122294d0ff6c023f38cf98ed9d0e1987a22a3","unresolved":false,"context_lines":[{"line_number":1133,"context_line":""},{"line_number":1134,"context_line":"struct adapter_driver vdebug_adapter_driver \u003d {"},{"line_number":1135,"context_line":"\t.name \u003d \"vdebug\","},{"line_number":1136,"context_line":"\t.transports \u003d vdebug_transports,"},{"line_number":1137,"context_line":"\t.speed \u003d vdebug_speed,"},{"line_number":1138,"context_line":"\t.khz \u003d vdebug_khz,"},{"line_number":1139,"context_line":"\t.speed_div \u003d vdebug_div,"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"aedf27f1_529ff2b9","line":1136,"in_reply_to":"aedf27f1_ef0c0148","updated":"2021-04-14 10:18:54.000000000","message":"I have purposely declared vdebug_transports, because vdebug does already support 5 different access interfaces (transports). Initially only jtag is implemented, but based on the feedback from users (like ST) other transports will be implemented in the future.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4d4533d0857bfc8b23621453e918f2a64a452aa1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"/* SPDX-License-Identifier: GPL-2.0-or-later */"},{"line_number":2,"context_line":"/*----------------------------------------------------------------------------"},{"line_number":3,"context_line":" * Copyright 2020-2021 Cadence Design Systems, Inc."},{"line_number":4,"context_line":" *"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"aedf27f1_a9f4b1ba","line":1,"updated":"2021-05-17 17:27:18.000000000","message":"there is a license mismatch: GPL-2.0-or-later in the SPDX tag and BSD-2-Clause below.\nGPL is more restrictive than BSD, so you can either write only\n/* SPDX-License-Identifier: BSD-2-Clause */\nor, better, list them both\n/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */","commit_id":"f3b5c9be0b8949651a1ff080f3c82467b09351c0"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4d4533d0857bfc8b23621453e918f2a64a452aa1","unresolved":false,"context_lines":[{"line_number":40,"context_line":"#define WIN32_LEAN_AND_MEAN"},{"line_number":41,"context_line":"#include \u003cwindows.h\u003e"},{"line_number":42,"context_line":"#else"},{"line_number":43,"context_line":"#define SOCKET int"},{"line_number":44,"context_line":"#ifdef HAVE_UNISTD_H"},{"line_number":45,"context_line":"#include \u003cunistd.h\u003e          /* close */"},{"line_number":46,"context_line":"#endif"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"aedf27f1_69bec9d3","line":43,"updated":"2021-05-17 17:27:18.000000000","message":"Don\u0027t use a macro as a typedef. Just use \u0027int\u0027","commit_id":"f3b5c9be0b8949651a1ff080f3c82467b09351c0"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4d4533d0857bfc8b23621453e918f2a64a452aa1","unresolved":false,"context_lines":[{"line_number":114,"context_line":" * @brief List of errors"},{"line_number":115,"context_line":" */"},{"line_number":116,"context_line":"enum {"},{"line_number":117,"context_line":"\tVD_ERR_NONE       \u003d 0x0000,  /* no error */"},{"line_number":118,"context_line":"\tVD_ERR_NOT_IMPL   \u003d 0x0100,  /* feature not implemented */"},{"line_number":119,"context_line":"\tVD_ERR_USAGE      \u003d 0x0101,  /* incorrect usage */"},{"line_number":120,"context_line":"\tVD_ERR_PARAM      \u003d 0x0102,  /* incorrect parameter */"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"aedf27f1_c9c8157a","line":117,"updated":"2021-05-17 17:27:18.000000000","message":"I\u0027m not against adding new error code, if they are useful and aligned with OpenOCD error codes.\nAll these VD_ERR_xxx are positive, not compatible. See helper/log.h or target/target.h\nPlus, you return these codes to OpenOCD, codes that OpenOCD cannot handle! For example vdebug_init().\nI prefer you print-out the error message that explains \"what\" and return a generic ERROR_FAIL. Only if OpenOCD can handle a specific error and can do something with it, then the specific error code should be returned.\nFor no error, return ERROR_OK. It has the same value 0 as VD_ERR_NONE, but makes the code uniform with the rest of OpenOCD","commit_id":"f3b5c9be0b8949651a1ff080f3c82467b09351c0"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4d4533d0857bfc8b23621453e918f2a64a452aa1","unresolved":false,"context_lines":[{"line_number":231,"context_line":"#endif"},{"line_number":232,"context_line":"}"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"static int socket_close(SOCKET hsock)"},{"line_number":235,"context_line":"{"},{"line_number":236,"context_line":"#ifdef _WIN32"},{"line_number":237,"context_line":"\tclosesocket(hsock);"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"aedf27f1_29b8c1e1","line":234,"updated":"2021-05-17 17:27:18.000000000","message":"If you include \"helper/replacements.h\" you get a set of compatibility function to handle sockets in *NIX and Windows.\nThis same function exists and is named close_socket().","commit_id":"f3b5c9be0b8949651a1ff080f3c82467b09351c0"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4d4533d0857bfc8b23621453e918f2a64a452aa1","unresolved":false,"context_lines":[{"line_number":253,"context_line":""},{"line_number":254,"context_line":"#ifdef _WIN32"},{"line_number":255,"context_line":"\tWSADATA ver;"},{"line_number":256,"context_line":"\tif (WSAStartup(MAKEWORD(2, 2), \u0026ver) !\u003d 0)"},{"line_number":257,"context_line":"\t\thsock \u003d INVALID_SOCKET;"},{"line_number":258,"context_line":"\telse"},{"line_number":259,"context_line":"\t\thsock \u003d socket(AF_INET, SOCK_STREAM, IPPROTO_IP);"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"aedf27f1_89c3ed60","line":256,"updated":"2021-05-17 17:27:18.000000000","message":"We already call WSACleanup(MAKEWORD(2,2)..) at OpenOCD start and WSACleanup() at exit. Since you don\u0027t need the returned value \"ver\", you can skip calling them.","commit_id":"f3b5c9be0b8949651a1ff080f3c82467b09351c0"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":156,"context_line":"\tVD_CMD_MEMWRITE   \u003d 0x23,"},{"line_number":157,"context_line":"};"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"struct vd_shm_st {"},{"line_number":160,"context_line":"\tstruct {                     /* VD_CHEADER_LEN written by client */"},{"line_number":161,"context_line":"\t\tuint8_t cmd;             /* 000; command */"},{"line_number":162,"context_line":"\t\tuint8_t type;            /* 001; interface type */"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_0da951dc","line":159,"updated":"2021-06-26 10:39:28.000000000","message":"Don\u0027t use \u0027_st\u0027 as suffix for structs","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":192,"context_line":"};"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"struct vd_client_st {"},{"line_number":195,"context_line":"\tuint8_t trans_batch;"},{"line_number":196,"context_line":"\tuint8_t trans_first;"},{"line_number":197,"context_line":"\tuint8_t trans_last;"},{"line_number":198,"context_line":"\tuint8_t mem_ndx;"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_8dea2104","line":195,"updated":"2021-06-26 10:39:28.000000000","message":"Use enum instead of magic values 0,1,2","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"struct vd_client_st {"},{"line_number":195,"context_line":"\tuint8_t trans_batch;"},{"line_number":196,"context_line":"\tuint8_t trans_first;"},{"line_number":197,"context_line":"\tuint8_t trans_last;"},{"line_number":198,"context_line":"\tuint8_t mem_ndx;"},{"line_number":199,"context_line":"\tuint8_t buf_width;"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_eddde574","line":196,"updated":"2021-06-26 10:39:28.000000000","message":"\u0027bool\u0027 data type?","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"3097cb2c42cd5fcc39ddc2d75ea02f3f8b64cafb","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"struct vd_client_st {"},{"line_number":195,"context_line":"\tuint8_t trans_batch;"},{"line_number":196,"context_line":"\tuint8_t trans_first;"},{"line_number":197,"context_line":"\tuint8_t trans_last;"},{"line_number":198,"context_line":"\tuint8_t mem_ndx;"},{"line_number":199,"context_line":"\tuint8_t buf_width;"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_6d8255cf","line":196,"in_reply_to":"6ec1af18_2d152d9d","updated":"2021-07-01 19:00:32.000000000","message":"Yes, no reason to have \u0027well determined sizes\u0027 here in my opinion","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"8add227a0bf7a658ef47e2a7bbe9e2443457f20f","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"struct vd_client_st {"},{"line_number":195,"context_line":"\tuint8_t trans_batch;"},{"line_number":196,"context_line":"\tuint8_t trans_first;"},{"line_number":197,"context_line":"\tuint8_t trans_last;"},{"line_number":198,"context_line":"\tuint8_t mem_ndx;"},{"line_number":199,"context_line":"\tuint8_t buf_width;"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_2d152d9d","line":196,"in_reply_to":"6ec1af18_eddde574","updated":"2021-07-01 15:04:40.000000000","message":"Yes, it could be used here. We used uint8 to have well determined size on all platforms compilers and get assignments compiled without warnings.\nHere it seem only 1 and 0, and the size does not matter, so could be changed. Do you insist on this ?","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":194,"context_line":"struct vd_client_st {"},{"line_number":195,"context_line":"\tuint8_t trans_batch;"},{"line_number":196,"context_line":"\tuint8_t trans_first;"},{"line_number":197,"context_line":"\tuint8_t trans_last;"},{"line_number":198,"context_line":"\tuint8_t mem_ndx;"},{"line_number":199,"context_line":"\tuint8_t buf_width;"},{"line_number":200,"context_line":"\tuint8_t addr_bits;"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_cde02928","line":197,"updated":"2021-06-26 10:39:28.000000000","message":"\u0027bool\u0027 data type?","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":216,"context_line":"\tchar bfm_path[128];"},{"line_number":217,"context_line":"\tchar mem_path[VD_MAX_MEMORIES][128];"},{"line_number":218,"context_line":"\tenum target_state targ_state;"},{"line_number":219,"context_line":"\tstruct target *ptarg;"},{"line_number":220,"context_line":"};"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"static struct vd_shm_st *pbuf;"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_2dae8de5","line":219,"updated":"2021-06-26 10:39:28.000000000","message":"Don\u0027t use \u0027p\u0027 as prefix for pointers","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":348,"context_line":"\tint rc;"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"\treq \u003d rreq \u003d waddr \u003d rwords \u003d 0;/* beginning of request */"},{"line_number":351,"context_line":"\tpm-\u003ewbytes \u003d pm-\u003ewwords*8;"},{"line_number":352,"context_line":"\tpm-\u003erbytes \u003d pm-\u003erwords*8;"},{"line_number":353,"context_line":"\tts \u003d timeval_ms();"},{"line_number":354,"context_line":"\trc \u003d wait_server(hsock, pm);"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_cdb26948","line":351,"updated":"2021-06-26 10:39:28.000000000","message":"Missing spaces","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"fd014fa7e78c159f13a06cad54e1b32a585737c1","unresolved":false,"context_lines":[{"line_number":366,"context_line":"\t\tvdc.trans_last \u003d ((uint32_t)(req + 1) \u003c count ? 0 : 1);"},{"line_number":367,"context_line":"\t\tvdc.trans_first \u003d (waddr ? 0 : 1);"},{"line_number":368,"context_line":"\t\tif (pm-\u003ewd32[waddr] \u0026 0x80000000) { /* read */"},{"line_number":369,"context_line":"\t\t\ttdo \u003d (uint8_t *)(uintptr_t)pm-\u003erd64[VD_BUFFER_LEN / 8 - 1 - rreq++];"},{"line_number":370,"context_line":"\t\t\tfor (j \u003d 0; j \u003c bytes; j++) {"},{"line_number":371,"context_line":"\t\t\t\ttdo[j] \u003d (pm-\u003erd8[rwords * 8 + j] \u003e\u003e num_pre) | (pm-\u003erd8[rwords * 8 + j + 1] \u003c\u003c (8 - num_pre));"},{"line_number":372,"context_line":"\t\t\t\tLOG_DEBUG_IO(\"vd_jtag_shift_tap: %04x D0[%02x]:%02x\", pm-\u003ewid - count + req, j, tdo[j]);"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_2d6f6dc2","line":369,"updated":"2021-06-25 11:03:01.000000000","message":"As I already wrote, please do not store internal pointers pointers somewhere in the shared buffer.","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"8add227a0bf7a658ef47e2a7bbe9e2443457f20f","unresolved":false,"context_lines":[{"line_number":366,"context_line":"\t\tvdc.trans_last \u003d ((uint32_t)(req + 1) \u003c count ? 0 : 1);"},{"line_number":367,"context_line":"\t\tvdc.trans_first \u003d (waddr ? 0 : 1);"},{"line_number":368,"context_line":"\t\tif (pm-\u003ewd32[waddr] \u0026 0x80000000) { /* read */"},{"line_number":369,"context_line":"\t\t\ttdo \u003d (uint8_t *)(uintptr_t)pm-\u003erd64[VD_BUFFER_LEN / 8 - 1 - rreq++];"},{"line_number":370,"context_line":"\t\t\tfor (j \u003d 0; j \u003c bytes; j++) {"},{"line_number":371,"context_line":"\t\t\t\ttdo[j] \u003d (pm-\u003erd8[rwords * 8 + j] \u003e\u003e num_pre) | (pm-\u003erd8[rwords * 8 + j + 1] \u003c\u003c (8 - num_pre));"},{"line_number":372,"context_line":"\t\t\t\tLOG_DEBUG_IO(\"vd_jtag_shift_tap: %04x D0[%02x]:%02x\", pm-\u003ewid - count + req, j, tdo[j]);"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_0d1071ac","line":369,"in_reply_to":"6ec1af18_2d6f6dc2","updated":"2021-07-01 15:04:40.000000000","message":"will remove it from this patch.","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":513,"context_line":"\treturn rc;"},{"line_number":514,"context_line":"}"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"static int vdebug_jtag_shift_tap(int hsock, struct vd_shm_st *pm, uint8_t num_pre,"},{"line_number":517,"context_line":"\t\t\t\t\t\t\t\t const uint8_t tms_pre, uint32_t num, const uint8_t *tdi,"},{"line_number":518,"context_line":"\t\t\t\t\t\t\t\t uint8_t num_post, const uint8_t tms_post, uint8_t *tdo, uint8_t f_last)"},{"line_number":519,"context_line":"{"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_edaf25dd","line":516,"updated":"2021-06-26 10:39:28.000000000","message":"Line too long","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":551,"context_line":"\t\tpm-\u003ewid++;           /* BFM data as TDI/TMS word pairs */"},{"line_number":552,"context_line":"\t\tpm-\u003ewd8[4 * waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":553,"context_line":"\t\tpm-\u003ewd8[4 * waddr + 4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":554,"context_line":"\t\tif (num+num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":555,"context_line":"\t\t\tpm-\u003ewd8[4 * waddr + 4] |\u003d (tms_post \u003c\u003c (num+num_pre - 1));"},{"line_number":556,"context_line":"\t\tfor (i \u003d 1, j \u003d 4 * waddr; i \u003c bytes; i++) {"},{"line_number":557,"context_line":"\t\t\tif (i \u003d\u003d bytes - 1 \u0026\u0026 num+num_pre \u003c\u003d bytes*tobits)"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_8dbc611c","line":554,"updated":"2021-06-26 10:39:28.000000000","message":"Missing spaces (more below)","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":552,"context_line":"\t\tpm-\u003ewd8[4 * waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":553,"context_line":"\t\tpm-\u003ewd8[4 * waddr + 4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":554,"context_line":"\t\tif (num+num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":555,"context_line":"\t\t\tpm-\u003ewd8[4 * waddr + 4] |\u003d (tms_post \u003c\u003c (num+num_pre - 1));"},{"line_number":556,"context_line":"\t\tfor (i \u003d 1, j \u003d 4 * waddr; i \u003c bytes; i++) {"},{"line_number":557,"context_line":"\t\t\tif (i \u003d\u003d bytes - 1 \u0026\u0026 num+num_pre \u003c\u003d bytes*tobits)"},{"line_number":558,"context_line":"\t\t\t\tpm-\u003ewd8[j + i + 4] \u003d tms_post \u003c\u003c ((num+num_pre - 1) % 8);"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_4d86796c","line":555,"updated":"2021-06-26 10:39:28.000000000","message":"Declare j and i here","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"86f1034d15dd18632d342721ae86560106c79788","unresolved":false,"context_lines":[{"line_number":552,"context_line":"\t\tpm-\u003ewd8[4 * waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":553,"context_line":"\t\tpm-\u003ewd8[4 * waddr + 4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":554,"context_line":"\t\tif (num+num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":555,"context_line":"\t\t\tpm-\u003ewd8[4 * waddr + 4] |\u003d (tms_post \u003c\u003c (num+num_pre - 1));"},{"line_number":556,"context_line":"\t\tfor (i \u003d 1, j \u003d 4 * waddr; i \u003c bytes; i++) {"},{"line_number":557,"context_line":"\t\t\tif (i \u003d\u003d bytes - 1 \u0026\u0026 num+num_pre \u003c\u003d bytes*tobits)"},{"line_number":558,"context_line":"\t\t\t\tpm-\u003ewd8[j + i + 4] \u003d tms_post \u003c\u003c ((num+num_pre - 1) % 8);"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"4eceab4c_6c4edb74","line":555,"in_reply_to":"6ec1af18_0d8711de","updated":"2021-07-02 11:25:34.000000000","message":"hmmm, sorry - what is the point if this if it\u0027s not loop variable ? This is the only scope where i,j is used, so it will be allocated once, regardless in which scope. This code is not written yesterday and there was a time, where we imposed all variable declarations up front.","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"8add227a0bf7a658ef47e2a7bbe9e2443457f20f","unresolved":false,"context_lines":[{"line_number":552,"context_line":"\t\tpm-\u003ewd8[4 * waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":553,"context_line":"\t\tpm-\u003ewd8[4 * waddr + 4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":554,"context_line":"\t\tif (num+num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":555,"context_line":"\t\t\tpm-\u003ewd8[4 * waddr + 4] |\u003d (tms_post \u003c\u003c (num+num_pre - 1));"},{"line_number":556,"context_line":"\t\tfor (i \u003d 1, j \u003d 4 * waddr; i \u003c bytes; i++) {"},{"line_number":557,"context_line":"\t\t\tif (i \u003d\u003d bytes - 1 \u0026\u0026 num+num_pre \u003c\u003d bytes*tobits)"},{"line_number":558,"context_line":"\t\t\t\tpm-\u003ewd8[j + i + 4] \u003d tms_post \u003c\u003c ((num+num_pre - 1) % 8);"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_ad203df3","line":555,"in_reply_to":"6ec1af18_4d86796c","updated":"2021-07-01 15:04:40.000000000","message":"These indexes are used after the loop below to deal with the last data","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"3097cb2c42cd5fcc39ddc2d75ea02f3f8b64cafb","unresolved":false,"context_lines":[{"line_number":552,"context_line":"\t\tpm-\u003ewd8[4 * waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":553,"context_line":"\t\tpm-\u003ewd8[4 * waddr + 4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":554,"context_line":"\t\tif (num+num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":555,"context_line":"\t\t\tpm-\u003ewd8[4 * waddr + 4] |\u003d (tms_post \u003c\u003c (num+num_pre - 1));"},{"line_number":556,"context_line":"\t\tfor (i \u003d 1, j \u003d 4 * waddr; i \u003c bytes; i++) {"},{"line_number":557,"context_line":"\t\t\tif (i \u003d\u003d bytes - 1 \u0026\u0026 num+num_pre \u003c\u003d bytes*tobits)"},{"line_number":558,"context_line":"\t\t\t\tpm-\u003ewd8[j + i + 4] \u003d tms_post \u003c\u003c ((num+num_pre - 1) % 8);"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_0d8711de","line":555,"in_reply_to":"6ec1af18_ad203df3","updated":"2021-07-01 19:00:32.000000000","message":"Not talking about the loop in this case but right before the loop","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":603,"context_line":"\treturn rc;"},{"line_number":604,"context_line":"}"},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"static int vdebug_mem_open(int hsock, struct vd_shm_st *pm, const char* path, uint8_t ndx)"},{"line_number":607,"context_line":"{"},{"line_number":608,"context_line":"\tint rc \u003d ERROR_OK;"},{"line_number":609,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_6d8b3573","line":606,"updated":"2021-06-26 10:39:28.000000000","message":"Function returns ERROR_OK if path is NULL? Inverse logic and return early if path is NULL.","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"8add227a0bf7a658ef47e2a7bbe9e2443457f20f","unresolved":false,"context_lines":[{"line_number":603,"context_line":"\treturn rc;"},{"line_number":604,"context_line":"}"},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"static int vdebug_mem_open(int hsock, struct vd_shm_st *pm, const char* path, uint8_t ndx)"},{"line_number":607,"context_line":"{"},{"line_number":608,"context_line":"\tint rc \u003d ERROR_OK;"},{"line_number":609,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_cd2909e4","line":606,"in_reply_to":"6ec1af18_6d8b3573","updated":"2021-07-01 15:04:40.000000000","message":"Yes, the entry is ignored in that case and program keeps running.","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":642,"context_line":"\tint rc \u003d ERROR_OK;"},{"line_number":643,"context_line":"\tint64_t ts, te;"},{"line_number":644,"context_line":"\tuint32_t cmdtime;"},{"line_number":645,"context_line":"\tstruct target **pt \u003d (struct target **)priv;"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"\tif (*pt \u0026\u0026 vdc.targ_state !\u003d (*pt)-\u003estate) {"},{"line_number":648,"context_line":"\t\tvdc.targ_state \u003d (*pt)-\u003estate;"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_0d80714a","line":645,"updated":"2021-06-26 10:39:28.000000000","message":"Useless pointer prefix \u0027p\u0027","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":643,"context_line":"\tint64_t ts, te;"},{"line_number":644,"context_line":"\tuint32_t cmdtime;"},{"line_number":645,"context_line":"\tstruct target **pt \u003d (struct target **)priv;"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"\tif (*pt \u0026\u0026 vdc.targ_state !\u003d (*pt)-\u003estate) {"},{"line_number":648,"context_line":"\t\tvdc.targ_state \u003d (*pt)-\u003estate;"},{"line_number":649,"context_line":"\t\tvdc.poll_cycles \u003d vdc.poll_max; /* reset polling when target state changes */"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_2d852d5b","line":646,"updated":"2021-06-26 10:39:28.000000000","message":"We don\u0027t use target code in adapter driver code, looks like a layer violation. Other opinions on that?","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"8add227a0bf7a658ef47e2a7bbe9e2443457f20f","unresolved":false,"context_lines":[{"line_number":643,"context_line":"\tint64_t ts, te;"},{"line_number":644,"context_line":"\tuint32_t cmdtime;"},{"line_number":645,"context_line":"\tstruct target **pt \u003d (struct target **)priv;"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"\tif (*pt \u0026\u0026 vdc.targ_state !\u003d (*pt)-\u003estate) {"},{"line_number":648,"context_line":"\t\tvdc.targ_state \u003d (*pt)-\u003estate;"},{"line_number":649,"context_line":"\t\tvdc.poll_cycles \u003d vdc.poll_max; /* reset polling when target state changes */"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_ed264511","line":646,"in_reply_to":"6ec1af18_2d852d5b","updated":"2021-07-01 15:04:40.000000000","message":"The driver polling interval depends on the state of the core, which can be only read from the target structure. \nWhat is the alternative, we do not want to include (virtual) driver-specific options in the target code.","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"86f1034d15dd18632d342721ae86560106c79788","unresolved":false,"context_lines":[{"line_number":643,"context_line":"\tint64_t ts, te;"},{"line_number":644,"context_line":"\tuint32_t cmdtime;"},{"line_number":645,"context_line":"\tstruct target **pt \u003d (struct target **)priv;"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"\tif (*pt \u0026\u0026 vdc.targ_state !\u003d (*pt)-\u003estate) {"},{"line_number":648,"context_line":"\t\tvdc.targ_state \u003d (*pt)-\u003estate;"},{"line_number":649,"context_line":"\t\tvdc.poll_cycles \u003d vdc.poll_max; /* reset polling when target state changes */"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"4eceab4c_0c53971b","line":646,"in_reply_to":"6ec1af18_cd70290a","updated":"2021-07-02 11:25:34.000000000","message":"It\u0027s a virtual driver. It is because of the way the emulated target works with software, it\u0027s not like a real target that it just runs in parallel, it\u0027s stop/sync/start, polling controls this mechanism.\nIt\u0027s quite interesting and challenging problem that has been discussed with Antonio, the callback he mentioned helps, but there is room for improvement still.","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"3097cb2c42cd5fcc39ddc2d75ea02f3f8b64cafb","unresolved":false,"context_lines":[{"line_number":643,"context_line":"\tint64_t ts, te;"},{"line_number":644,"context_line":"\tuint32_t cmdtime;"},{"line_number":645,"context_line":"\tstruct target **pt \u003d (struct target **)priv;"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"\tif (*pt \u0026\u0026 vdc.targ_state !\u003d (*pt)-\u003estate) {"},{"line_number":648,"context_line":"\t\tvdc.targ_state \u003d (*pt)-\u003estate;"},{"line_number":649,"context_line":"\t\tvdc.poll_cycles \u003d vdc.poll_max; /* reset polling when target state changes */"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_cd70290a","line":646,"in_reply_to":"6ec1af18_ed264511","updated":"2021-07-01 19:00:32.000000000","message":"We don\u0027t have a similar feature in other drivers as far as I know. Why do you need this polling? ôO","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":697,"context_line":"\t\t\tfree(pbuf);"},{"line_number":698,"context_line":"\t\t\tpbuf \u003d NULL;"},{"line_number":699,"context_line":"\t\t} else {"},{"line_number":700,"context_line":"\t\t\tfor (i \u003d 0; i \u003c vdc.mem_ndx; i++) {"},{"line_number":701,"context_line":"\t\t\t\trc \u003d vdebug_mem_open(vdc.hsocket, pbuf, vdc.mem_path[i], i);"},{"line_number":702,"context_line":"\t\t\t\tif (rc !\u003d 0)"},{"line_number":703,"context_line":"\t\t\t\t\tLOG_WARNING(\"cannot connect to %s, Error 0x%x\", vdc.mem_path[i], rc);"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_cd9909ca","line":700,"updated":"2021-06-26 10:39:28.000000000","message":"Declare \u0027i\u0027 here. Wrong data type for \u0027i\u0027?","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":718,"context_line":"\tint i, rc;"},{"line_number":719,"context_line":""},{"line_number":720,"context_line":"\ttarget_unregister_timer_callback(vdebug_poll, vdc.ptarg);"},{"line_number":721,"context_line":"\tfor (i \u003d 0; i \u003c vdc.mem_ndx; i++)"},{"line_number":722,"context_line":"\t\tif (vdc.mem_width[i])"},{"line_number":723,"context_line":"\t\t\tvdebug_mem_close(vdc.hsocket, pbuf, i);"},{"line_number":724,"context_line":"\trc \u003d vdebug_close(vdc.hsocket, pbuf, VD_BFM_JTAG);"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_ed964597","line":721,"updated":"2021-06-26 10:39:28.000000000","message":"Same","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":769,"context_line":""},{"line_number":770,"context_line":"\tmemset(tms, 0, DIV_ROUND_UP(cmd-\u003enum_states, 8));"},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"\tfor (int i \u003d 0; i \u003c cmd-\u003enum_states; i++) {"},{"line_number":773,"context_line":"\t\tif (tap_state_transition(tap_get_state(), true) \u003d\u003d cmd-\u003epath[i])"},{"line_number":774,"context_line":"\t\t\tbuf_set_u32(tms, i, 1, 1);"},{"line_number":775,"context_line":"\t\ttap_set_state(cmd-\u003epath[i]);"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_8d9301a6","line":772,"updated":"2021-06-26 10:39:28.000000000","message":"Wrong data type?","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":815,"context_line":"\tnum_bits \u003d jtag_scan_size(cmd);"},{"line_number":816,"context_line":"\tLOG_DEBUG(\"scan len:%d fields:%d ir/!dr:%d state cur:%x end:%x\","},{"line_number":817,"context_line":"\t\t\t  num_bits, cmd-\u003enum_fields, cmd-\u003eir_scan, cur, cmd-\u003eend_state);"},{"line_number":818,"context_line":"\tfor (i \u003d 0, rc \u003d 0; rc \u003d\u003d 0 \u0026\u0026 i \u003c cmd-\u003enum_fields; i++)"},{"line_number":819,"context_line":"\t\trc \u003d vdebug_jtag_shift_tap(vdc.hsocket, pbuf, (i \u003d\u003d 0 ? num_pre : 0),"},{"line_number":820,"context_line":"\t\t\t(i \u003d\u003d 0 ? tms_pre : 0), cmd-\u003efields[i].num_bits, cmd-\u003efields[i].out_value,"},{"line_number":821,"context_line":"\t\t\t(i \u003d\u003d cmd-\u003enum_fields-1 ? num_post : 0), (i \u003d\u003d cmd-\u003enum_fields-1 ? tms_post : 0),"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_ad903d99","line":818,"updated":"2021-06-26 10:39:28.000000000","message":"Use \u0027break\u0027 instead of the condition here because it\u0027s easy to overloop IMO. Check data types.","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":899,"context_line":"\tstruct jtag_command *cmd;"},{"line_number":900,"context_line":"\tint rc \u003d ERROR_OK;"},{"line_number":901,"context_line":""},{"line_number":902,"context_line":"\tfor (cmd \u003d jtag_command_queue; rc \u003d\u003d ERROR_OK \u0026\u0026 cmd !\u003d NULL; cmd \u003d cmd-\u003enext) {"},{"line_number":903,"context_line":"\t\tswitch (cmd-\u003etype) {"},{"line_number":904,"context_line":"\t\t\tcase JTAG_RUNTEST:"},{"line_number":905,"context_line":"\t\t\t\trc \u003d vdebug_runtest(cmd-\u003ecmd.runtest-\u003enum_cycles, cmd-\u003ecmd.runtest-\u003eend_state, cmd-\u003enext \u003d\u003d NULL);"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_4ded1922","line":902,"updated":"2021-06-26 10:39:28.000000000","message":"Declare cmd here","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":901,"context_line":""},{"line_number":902,"context_line":"\tfor (cmd \u003d jtag_command_queue; rc \u003d\u003d ERROR_OK \u0026\u0026 cmd !\u003d NULL; cmd \u003d cmd-\u003enext) {"},{"line_number":903,"context_line":"\t\tswitch (cmd-\u003etype) {"},{"line_number":904,"context_line":"\t\t\tcase JTAG_RUNTEST:"},{"line_number":905,"context_line":"\t\t\t\trc \u003d vdebug_runtest(cmd-\u003ecmd.runtest-\u003enum_cycles, cmd-\u003ecmd.runtest-\u003eend_state, cmd-\u003enext \u003d\u003d NULL);"},{"line_number":906,"context_line":"\t\t\t\tbreak;"},{"line_number":907,"context_line":"\t\t\tcase JTAG_STABLECLOCKS:"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_6df25505","line":904,"updated":"2021-06-26 10:39:28.000000000","message":"Use same indentation as \u0027switch\u0027","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"86f1034d15dd18632d342721ae86560106c79788","unresolved":false,"context_lines":[{"line_number":901,"context_line":""},{"line_number":902,"context_line":"\tfor (cmd \u003d jtag_command_queue; rc \u003d\u003d ERROR_OK \u0026\u0026 cmd !\u003d NULL; cmd \u003d cmd-\u003enext) {"},{"line_number":903,"context_line":"\t\tswitch (cmd-\u003etype) {"},{"line_number":904,"context_line":"\t\t\tcase JTAG_RUNTEST:"},{"line_number":905,"context_line":"\t\t\t\trc \u003d vdebug_runtest(cmd-\u003ecmd.runtest-\u003enum_cycles, cmd-\u003ecmd.runtest-\u003eend_state, cmd-\u003enext \u003d\u003d NULL);"},{"line_number":906,"context_line":"\t\t\t\tbreak;"},{"line_number":907,"context_line":"\t\t\tcase JTAG_STABLECLOCKS:"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"4eceab4c_cc3cafbf","line":904,"in_reply_to":"6ec1af18_6df25505","updated":"2021-07-02 11:25:34.000000000","message":"Hmm, are you sure ? All drivers I have seen have case indentation. Style change?","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":960,"context_line":"\t\tstrncpy(vdc.bfm_path, CMD_ARGV[0], sizeof(vdc.bfm_path)-1);"},{"line_number":961,"context_line":"\t\tif (sscanf(CMD_ARGV[1], \"%u%cs*\", \u0026vdc.bfm_period, \u0026prefix) \u003d\u003d 2) {"},{"line_number":962,"context_line":"\t\t\tswitch (prefix) {"},{"line_number":963,"context_line":"\t\t\t\tcase \u0027u\u0027:"},{"line_number":964,"context_line":"\t\t\t\t\tvdc.bfm_period *\u003d 1000000;"},{"line_number":965,"context_line":"\t\t\t\t\tbreak;"},{"line_number":966,"context_line":"\t\t\t\tcase \u0027n\u0027:"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_0df711f4","line":963,"updated":"2021-06-26 10:39:28.000000000","message":"Same","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"4041027ed41cbe9106bb53e0f08005e539df9c61","unresolved":false,"context_lines":[{"line_number":1045,"context_line":"\treturn ERROR_OK;"},{"line_number":1046,"context_line":"}"},{"line_number":1047,"context_line":""},{"line_number":1048,"context_line":"static const struct command_registration vdebug_command_handlers[] \u003d {"},{"line_number":1049,"context_line":"\t{"},{"line_number":1050,"context_line":"\t\t.name \u003d \"vdebug_server\","},{"line_number":1051,"context_line":"\t\t.handler \u003d \u0026vdebug_set_server,"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_2dfc4dd5","line":1048,"updated":"2021-06-26 10:39:28.000000000","message":"Use a command group \u0027vdebug\u0027 with subcommands","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"86f1034d15dd18632d342721ae86560106c79788","unresolved":false,"context_lines":[{"line_number":1045,"context_line":"\treturn ERROR_OK;"},{"line_number":1046,"context_line":"}"},{"line_number":1047,"context_line":""},{"line_number":1048,"context_line":"static const struct command_registration vdebug_command_handlers[] \u003d {"},{"line_number":1049,"context_line":"\t{"},{"line_number":1050,"context_line":"\t\t.name \u003d \"vdebug_server\","},{"line_number":1051,"context_line":"\t\t.handler \u003d \u0026vdebug_set_server,"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"4eceab4c_ec396bcc","line":1048,"in_reply_to":"6ec1af18_2d8c4dff","updated":"2021-07-02 11:25:34.000000000","message":"Sigh... OK","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"8add227a0bf7a658ef47e2a7bbe9e2443457f20f","unresolved":false,"context_lines":[{"line_number":1045,"context_line":"\treturn ERROR_OK;"},{"line_number":1046,"context_line":"}"},{"line_number":1047,"context_line":""},{"line_number":1048,"context_line":"static const struct command_registration vdebug_command_handlers[] \u003d {"},{"line_number":1049,"context_line":"\t{"},{"line_number":1050,"context_line":"\t\t.name \u003d \"vdebug_server\","},{"line_number":1051,"context_line":"\t\t.handler \u003d \u0026vdebug_set_server,"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_8d230100","line":1048,"in_reply_to":"6ec1af18_2dfc4dd5","updated":"2021-07-01 15:04:40.000000000","message":"I have seen two variants to customize driver configuration parameters throughout openocd code. One of them is the command group, the other is the prefix. I have already implemented the prefix, can we move ahead with it ?","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"3097cb2c42cd5fcc39ddc2d75ea02f3f8b64cafb","unresolved":false,"context_lines":[{"line_number":1045,"context_line":"\treturn ERROR_OK;"},{"line_number":1046,"context_line":"}"},{"line_number":1047,"context_line":""},{"line_number":1048,"context_line":"static const struct command_registration vdebug_command_handlers[] \u003d {"},{"line_number":1049,"context_line":"\t{"},{"line_number":1050,"context_line":"\t\t.name \u003d \"vdebug_server\","},{"line_number":1051,"context_line":"\t\t.handler \u003d \u0026vdebug_set_server,"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"6ec1af18_2d8c4dff","line":1048,"in_reply_to":"6ec1af18_8d230100","updated":"2021-07-01 19:00:32.000000000","message":"We change the drivers towards the command group approach. So I would appreciate it if you change it now, because it means more work later on.","commit_id":"0c525276762ff2486217df549d7246014a183421"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":179,"context_line":"\t};"},{"line_number":180,"context_line":"\tunion {                      /* 018; */"},{"line_number":181,"context_line":"\t\tuint8_t wd8[VD_BUFFER_LEN];"},{"line_number":182,"context_line":"\t\tuint16_t wd16[VD_BUFFER_LEN/2];"},{"line_number":183,"context_line":"\t\tuint32_t wd32[VD_BUFFER_LEN/4];"},{"line_number":184,"context_line":"\t\tuint64_t wd64[VD_BUFFER_LEN/8];"},{"line_number":185,"context_line":"\t};"},{"line_number":186,"context_line":"\tstruct {                     /* VD_SHEADER_LEN written by server */"},{"line_number":187,"context_line":"\t\tuint16_t rid;            /* fd0: request id read */"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"1a35fd6e_3de50caf","line":184,"range":{"start_line":182,"start_character":2,"end_line":184,"end_character":33},"updated":"2021-09-11 22:07:17.000000000","message":"add space around \u0027/\u0027","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":179,"context_line":"\t};"},{"line_number":180,"context_line":"\tunion {                      /* 018; */"},{"line_number":181,"context_line":"\t\tuint8_t wd8[VD_BUFFER_LEN];"},{"line_number":182,"context_line":"\t\tuint16_t wd16[VD_BUFFER_LEN/2];"},{"line_number":183,"context_line":"\t\tuint32_t wd32[VD_BUFFER_LEN/4];"},{"line_number":184,"context_line":"\t\tuint64_t wd64[VD_BUFFER_LEN/8];"},{"line_number":185,"context_line":"\t};"},{"line_number":186,"context_line":"\tstruct {                     /* VD_SHEADER_LEN written by server */"},{"line_number":187,"context_line":"\t\tuint16_t rid;            /* fd0: request id read */"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"907fac22_0c46948d","line":184,"range":{"start_line":182,"start_character":2,"end_line":184,"end_character":33},"in_reply_to":"1a35fd6e_3de50caf","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":191,"context_line":"\t};"},{"line_number":192,"context_line":"\tunion {                      /* fe0: */"},{"line_number":193,"context_line":"\t\tuint8_t rd8[VD_BUFFER_LEN];"},{"line_number":194,"context_line":"\t\tuint16_t rd16[VD_BUFFER_LEN/2];"},{"line_number":195,"context_line":"\t\tuint32_t rd32[VD_BUFFER_LEN/4];"},{"line_number":196,"context_line":"\t\tuint64_t rd64[VD_BUFFER_LEN/8];"},{"line_number":197,"context_line":"\t};"},{"line_number":198,"context_line":"\tuint32_t state;              /* 1f98; connection state */"},{"line_number":199,"context_line":"\tuint32_t count;              /* 1f9c; */"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"4f859a1b_e28c147a","line":196,"range":{"start_line":194,"start_character":2,"end_line":196,"end_character":33},"updated":"2021-09-11 22:07:17.000000000","message":"space around \u0027/\u0027","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":191,"context_line":"\t};"},{"line_number":192,"context_line":"\tunion {                      /* fe0: */"},{"line_number":193,"context_line":"\t\tuint8_t rd8[VD_BUFFER_LEN];"},{"line_number":194,"context_line":"\t\tuint16_t rd16[VD_BUFFER_LEN/2];"},{"line_number":195,"context_line":"\t\tuint32_t rd32[VD_BUFFER_LEN/4];"},{"line_number":196,"context_line":"\t\tuint64_t rd64[VD_BUFFER_LEN/8];"},{"line_number":197,"context_line":"\t};"},{"line_number":198,"context_line":"\tuint32_t state;              /* 1f98; connection state */"},{"line_number":199,"context_line":"\tuint32_t count;              /* 1f9c; */"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"951fbffa_d299f097","line":196,"range":{"start_line":194,"start_character":2,"end_line":196,"end_character":33},"in_reply_to":"4f859a1b_e28c147a","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":281,"context_line":"\telse if (getaddrinfo(server_addr, NULL, \u0026ahint, \u0026ainfo) !\u003d 0) {"},{"line_number":282,"context_line":"\t\tLOG_ERROR(\"socket_open: cannot resolve address %s, error %d\", server_addr, socket_error());"},{"line_number":283,"context_line":"\t\trc \u003d VD_ERR_SOC_ADDR;"},{"line_number":284,"context_line":"\t} else {"},{"line_number":285,"context_line":"\t\t((struct sockaddr_in *)(ainfo-\u003eai_addr))-\u003esin_port \u003d htons(port);"},{"line_number":286,"context_line":"\t\tif (connect(hsock, ainfo-\u003eai_addr, sizeof(struct sockaddr)) \u003c 0) {"},{"line_number":287,"context_line":"\t\t\tLOG_ERROR(\"socket_open: cannot connect to %s:%d, error %d\", server_addr, port, socket_error());"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"68986d94_80fd1f3c","line":284,"updated":"2021-09-11 22:07:17.000000000","message":"Or all branches of \u0027if()\u0027, \u0027else if()\u0027, \u0027else\u0027 have {} or all don\u0027t have.\nBecause of this line, all branches require {}\n\nAnyway this long sequence if/elseif/else with a single exit point for the function remembers me VHDL/Verilog style.\nThis is sequential C code; no need to cover through if/elseif/else all the possible cases and no need for single exit point.\nIf socket() fails, simply return socket_error()","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":281,"context_line":"\telse if (getaddrinfo(server_addr, NULL, \u0026ahint, \u0026ainfo) !\u003d 0) {"},{"line_number":282,"context_line":"\t\tLOG_ERROR(\"socket_open: cannot resolve address %s, error %d\", server_addr, socket_error());"},{"line_number":283,"context_line":"\t\trc \u003d VD_ERR_SOC_ADDR;"},{"line_number":284,"context_line":"\t} else {"},{"line_number":285,"context_line":"\t\t((struct sockaddr_in *)(ainfo-\u003eai_addr))-\u003esin_port \u003d htons(port);"},{"line_number":286,"context_line":"\t\tif (connect(hsock, ainfo-\u003eai_addr, sizeof(struct sockaddr)) \u003c 0) {"},{"line_number":287,"context_line":"\t\t\tLOG_ERROR(\"socket_open: cannot connect to %s:%d, error %d\", server_addr, port, socket_error());"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"54194d57_9e061f9c","line":284,"in_reply_to":"68986d94_80fd1f3c","updated":"2021-09-16 09:48:59.000000000","message":"Added {} to all branches.\nThe style here helps with the cleanup, in case of failure - socket gets closed and addrinfo freed when needed. With multiple exit points the close_socket would have to be called almost every time.","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":312,"context_line":"\t\trc \u003d recv(hsock, pb + offset, to_receive, 0);"},{"line_number":313,"context_line":"\t\tif (rc \u003c\u003d 0)"},{"line_number":314,"context_line":"\t\t\tbreak;"},{"line_number":315,"context_line":"\t\telse {              /* the data can come in pieces */"},{"line_number":316,"context_line":"\t\t\tto_receive -\u003d rc;"},{"line_number":317,"context_line":"\t\t\toffset +\u003d rc;"},{"line_number":318,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"ec5a6e47_9574e118","line":315,"updated":"2021-09-11 22:07:17.000000000","message":"after \u0027break\u0027 you can remove the \u0027else\u0027 and continue at the same indentation level of the \u0027if\u0027 above\nBetter, instead of break and further code out of the loop, simply\nif (rc \u003c\u003d 0) {\nLOG_WARNING(\"socket_receive: recv failed, error %d:, socket_error());\nreturn rc;\n}\nBy the way, socket_error() for *nix too?","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":312,"context_line":"\t\trc \u003d recv(hsock, pb + offset, to_receive, 0);"},{"line_number":313,"context_line":"\t\tif (rc \u003c\u003d 0)"},{"line_number":314,"context_line":"\t\t\tbreak;"},{"line_number":315,"context_line":"\t\telse {              /* the data can come in pieces */"},{"line_number":316,"context_line":"\t\t\tto_receive -\u003d rc;"},{"line_number":317,"context_line":"\t\t\toffset +\u003d rc;"},{"line_number":318,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"c8043856_4b055b85","line":315,"in_reply_to":"ec5a6e47_9574e118","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":350,"context_line":"\t\trc \u003d VD_ERR_SOC_SEND;"},{"line_number":351,"context_line":"\telse if (rd  \u003c\u003d 0)"},{"line_number":352,"context_line":"\t\trc \u003d VD_ERR_SOC_RECV;"},{"line_number":353,"context_line":"\telse {"},{"line_number":354,"context_line":"\t\trc \u003d pmem-\u003estatus;"},{"line_number":355,"context_line":"\t\tLOG_DEBUG_IO(\"wait_server: cmd %02hx done, sent %d, rcvd %d, status %d\","},{"line_number":356,"context_line":"\t\t\t\t\tpmem-\u003ecmd, st, rd, rc);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"7b1e0130_f5e14574","line":353,"updated":"2021-09-11 22:07:17.000000000","message":"again {} on all branches","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":350,"context_line":"\t\trc \u003d VD_ERR_SOC_SEND;"},{"line_number":351,"context_line":"\telse if (rd  \u003c\u003d 0)"},{"line_number":352,"context_line":"\t\trc \u003d VD_ERR_SOC_RECV;"},{"line_number":353,"context_line":"\telse {"},{"line_number":354,"context_line":"\t\trc \u003d pmem-\u003estatus;"},{"line_number":355,"context_line":"\t\tLOG_DEBUG_IO(\"wait_server: cmd %02hx done, sent %d, rcvd %d, status %d\","},{"line_number":356,"context_line":"\t\t\t\t\tpmem-\u003ecmd, st, rd, rc);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"3cab0617_4e8fcb9d","line":353,"in_reply_to":"7b1e0130_f5e14574","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":369,"context_line":"\tint rc;"},{"line_number":370,"context_line":"\tstruct vd_jtag_hdr *hdr;"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"\treq \u003d rreq \u003d waddr \u003d rwords \u003d 0;/* beginning of request */"},{"line_number":373,"context_line":"\tpm-\u003ewbytes \u003d pm-\u003ewwords * 8;"},{"line_number":374,"context_line":"\tpm-\u003erbytes \u003d pm-\u003erwords * 8;"},{"line_number":375,"context_line":"\tts \u003d timeval_ms();"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"f4e81be2_e0bbbe9c","line":372,"updated":"2021-09-11 22:07:17.000000000","message":"please do not do multiple assignments in a single line.\nreq \u003d 0;\nrreq \u003d 0;\nwaddr \u003d 0;\nrwords \u003d 0;\nor initialize them at variable definition:\nuint16_t req \u003d 0, rreq \u003d 0, waddr \u003d 0, rwords \u003d 0;","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":369,"context_line":"\tint rc;"},{"line_number":370,"context_line":"\tstruct vd_jtag_hdr *hdr;"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"\treq \u003d rreq \u003d waddr \u003d rwords \u003d 0;/* beginning of request */"},{"line_number":373,"context_line":"\tpm-\u003ewbytes \u003d pm-\u003ewwords * 8;"},{"line_number":374,"context_line":"\tpm-\u003erbytes \u003d pm-\u003erwords * 8;"},{"line_number":375,"context_line":"\tts \u003d timeval_ms();"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"ced0621e_0e1c314e","line":372,"in_reply_to":"f4e81be2_e0bbbe9c","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":386,"context_line":"\t\telse"},{"line_number":387,"context_line":"\t\t\tnum \u003d anum - num_pre;"},{"line_number":388,"context_line":"\t\tbytes \u003d (num + 7) / 8;"},{"line_number":389,"context_line":"\t\tvdc.trans_last \u003d ((uint32_t)(req + 1) \u003c count ? 0 : 1);"},{"line_number":390,"context_line":"\t\tvdc.trans_first \u003d (waddr ? 0 : 1);"},{"line_number":391,"context_line":"\t\tif (hdr-\u003ecmd \u003d\u003d 3) { /* read */"},{"line_number":392,"context_line":"\t\t\ttdo \u003d vdc.tdo;"},{"line_number":393,"context_line":"\t\t\tfor (j \u003d 0; j \u003c bytes; j++) {"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"bdb716f3_12af3ff4","line":390,"range":{"start_line":389,"start_character":2,"end_line":390,"end_character":36},"updated":"2021-09-11 22:07:17.000000000","message":"no need for parenthesis around the value after \u0027\u003d\u0027","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":386,"context_line":"\t\telse"},{"line_number":387,"context_line":"\t\t\tnum \u003d anum - num_pre;"},{"line_number":388,"context_line":"\t\tbytes \u003d (num + 7) / 8;"},{"line_number":389,"context_line":"\t\tvdc.trans_last \u003d ((uint32_t)(req + 1) \u003c count ? 0 : 1);"},{"line_number":390,"context_line":"\t\tvdc.trans_first \u003d (waddr ? 0 : 1);"},{"line_number":391,"context_line":"\t\tif (hdr-\u003ecmd \u003d\u003d 3) { /* read */"},{"line_number":392,"context_line":"\t\t\ttdo \u003d vdc.tdo;"},{"line_number":393,"context_line":"\t\t\tfor (j \u003d 0; j \u003c bytes; j++) {"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"e1ba1b8e_9db45c9a","line":390,"range":{"start_line":389,"start_character":2,"end_line":390,"end_character":36},"in_reply_to":"bdb716f3_12af3ff4","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":395,"context_line":"\t\t\t\tLOG_DEBUG_IO(\"%04x D0[%02x]:%02x\", pm-\u003ewid - count + req, j, tdo[j]);"},{"line_number":396,"context_line":"\t\t\t}"},{"line_number":397,"context_line":"\t\t\trwords +\u003d words;           /* read data offset */"},{"line_number":398,"context_line":"\t\t} else"},{"line_number":399,"context_line":"\t\t\ttdo \u003d NULL;"},{"line_number":400,"context_line":"\t\twaddr +\u003d 2;                    /* waddr past header */"},{"line_number":401,"context_line":"\t\ttdi \u003d (pm-\u003ewd8[waddr * 4] \u003e\u003e num_pre) | (pm-\u003ewd8[waddr * 4 + 1] \u003c\u003c (8 - num_pre));"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"decbac7f_a35043d8","line":398,"updated":"2021-09-11 22:07:17.000000000","message":"balanced {} on both sides of the else. Has to be\n} else {","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":395,"context_line":"\t\t\t\tLOG_DEBUG_IO(\"%04x D0[%02x]:%02x\", pm-\u003ewid - count + req, j, tdo[j]);"},{"line_number":396,"context_line":"\t\t\t}"},{"line_number":397,"context_line":"\t\t\trwords +\u003d words;           /* read data offset */"},{"line_number":398,"context_line":"\t\t} else"},{"line_number":399,"context_line":"\t\t\ttdo \u003d NULL;"},{"line_number":400,"context_line":"\t\twaddr +\u003d 2;                    /* waddr past header */"},{"line_number":401,"context_line":"\t\ttdi \u003d (pm-\u003ewd8[waddr * 4] \u003e\u003e num_pre) | (pm-\u003ewd8[waddr * 4 + 1] \u003c\u003c (8 - num_pre));"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"8f699e8d_e9642295","line":398,"in_reply_to":"decbac7f_a35043d8","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":401,"context_line":"\t\ttdi \u003d (pm-\u003ewd8[waddr * 4] \u003e\u003e num_pre) | (pm-\u003ewd8[waddr * 4 + 1] \u003c\u003c (8 - num_pre));"},{"line_number":402,"context_line":"\t\ttms \u003d (pm-\u003ewd8[waddr * 4 + 4] \u003e\u003e num_pre) | (pm-\u003ewd8[waddr * 4 + 4 + 1] \u003c\u003c (8 - num_pre));"},{"line_number":403,"context_line":"\t\tLOG_DEBUG(\"%04x L:%02d O:%05x @%03x DI:%02x MS:%02x DO:%02x\","},{"line_number":404,"context_line":"\t\t\tpm-\u003ewid-count+req, num, ((vdc.trans_first \u003c\u003c 14)|(vdc.trans_last \u003c\u003c 15)),"},{"line_number":405,"context_line":"\t\t\twaddr - 2, tdi, tms, (tdo ? tdo[0] : 0xdd));"},{"line_number":406,"context_line":"\t\twaddr +\u003d hwords * 2;           /* start of next request */"},{"line_number":407,"context_line":"\t\treq +\u003d 1;"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"b8d692e7_670a6778","line":404,"updated":"2021-09-11 22:07:17.000000000","message":"space around \u0027+\u0027 and around \u0027|\u0027\nno ned for () around function parameter","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":401,"context_line":"\t\ttdi \u003d (pm-\u003ewd8[waddr * 4] \u003e\u003e num_pre) | (pm-\u003ewd8[waddr * 4 + 1] \u003c\u003c (8 - num_pre));"},{"line_number":402,"context_line":"\t\ttms \u003d (pm-\u003ewd8[waddr * 4 + 4] \u003e\u003e num_pre) | (pm-\u003ewd8[waddr * 4 + 4 + 1] \u003c\u003c (8 - num_pre));"},{"line_number":403,"context_line":"\t\tLOG_DEBUG(\"%04x L:%02d O:%05x @%03x DI:%02x MS:%02x DO:%02x\","},{"line_number":404,"context_line":"\t\t\tpm-\u003ewid-count+req, num, ((vdc.trans_first \u003c\u003c 14)|(vdc.trans_last \u003c\u003c 15)),"},{"line_number":405,"context_line":"\t\t\twaddr - 2, tdi, tms, (tdo ? tdo[0] : 0xdd));"},{"line_number":406,"context_line":"\t\twaddr +\u003d hwords * 2;           /* start of next request */"},{"line_number":407,"context_line":"\t\treq +\u003d 1;"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"7f4c4428_c1059fbf","line":404,"in_reply_to":"b8d692e7_670a6778","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":429,"context_line":""},{"line_number":430,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_OPEN;"},{"line_number":431,"context_line":"\tpm-\u003ewid \u003d (uint16_t)VD_VERSION;    /* client version */"},{"line_number":432,"context_line":"\tpm-\u003ewbytes \u003d pm-\u003erbytes \u003d pm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":433,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":434,"context_line":"\tif (rc !\u003d 0)                   /* communication problem */"},{"line_number":435,"context_line":"\t\tLOG_ERROR(\"Error 0x%x connecting to server\", rc);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"9f70a8d4_9a279d29","line":432,"updated":"2021-09-11 22:07:17.000000000","message":"no multiple assignments","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":429,"context_line":""},{"line_number":430,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_OPEN;"},{"line_number":431,"context_line":"\tpm-\u003ewid \u003d (uint16_t)VD_VERSION;    /* client version */"},{"line_number":432,"context_line":"\tpm-\u003ewbytes \u003d pm-\u003erbytes \u003d pm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":433,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":434,"context_line":"\tif (rc !\u003d 0)                   /* communication problem */"},{"line_number":435,"context_line":"\t\tLOG_ERROR(\"Error 0x%x connecting to server\", rc);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"cbef27c3_d09b734d","line":432,"in_reply_to":"9f70a8d4_9a279d29","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":438,"context_line":"\t\tpm-\u003ecmd \u003d VD_CMD_CLOSE;    /* let server close the connection */"},{"line_number":439,"context_line":"\t\twait_server(hsock, pm);"},{"line_number":440,"context_line":"\t\trc \u003d VD_ERR_VERSION;"},{"line_number":441,"context_line":"\t} else {"},{"line_number":442,"context_line":"\t\tpm-\u003ecmd \u003d VD_CMD_CONNECT;"},{"line_number":443,"context_line":"\t\tpm-\u003etype \u003d (uint8_t)type;      /* BFM type to connect to, here JTAG */"},{"line_number":444,"context_line":"\t\tpm-\u003erwdata \u003d sig_mask | VD_SIG_BUF | (VD_SIG_BUF \u003c\u003c 16);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"a7ac8df1_2d44f1e9","line":441,"updated":"2021-09-11 22:07:17.000000000","message":"all branches need {}","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":438,"context_line":"\t\tpm-\u003ecmd \u003d VD_CMD_CLOSE;    /* let server close the connection */"},{"line_number":439,"context_line":"\t\twait_server(hsock, pm);"},{"line_number":440,"context_line":"\t\trc \u003d VD_ERR_VERSION;"},{"line_number":441,"context_line":"\t} else {"},{"line_number":442,"context_line":"\t\tpm-\u003ecmd \u003d VD_CMD_CONNECT;"},{"line_number":443,"context_line":"\t\tpm-\u003etype \u003d (uint8_t)type;      /* BFM type to connect to, here JTAG */"},{"line_number":444,"context_line":"\t\tpm-\u003erwdata \u003d sig_mask | VD_SIG_BUF | (VD_SIG_BUF \u003c\u003c 16);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"c4b7ee93_bdf973f0","line":441,"in_reply_to":"a7ac8df1_2d44f1e9","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":445,"context_line":"\t\tpm-\u003ewbytes \u003d (uint16_t)strlen(path) + 1;"},{"line_number":446,"context_line":"\t\tpm-\u003erbytes \u003d 12;"},{"line_number":447,"context_line":"\t\tpm-\u003ewid \u003d 0;               /* reset wid for transaction ID */"},{"line_number":448,"context_line":"\t\tpm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":449,"context_line":"\t\tmemcpy(pm-\u003ewd8, path, pm-\u003ewbytes + 1);"},{"line_number":450,"context_line":"\t\trc \u003d wait_server(hsock, pm);"},{"line_number":451,"context_line":"\t\tvdc.sig_read \u003d (uint16_t)(pm-\u003erwdata \u003e\u003e 16);    /* signal read mask */"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"c059f0f4_add88229","line":448,"updated":"2021-09-11 22:07:17.000000000","message":"no multiple assignments","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":445,"context_line":"\t\tpm-\u003ewbytes \u003d (uint16_t)strlen(path) + 1;"},{"line_number":446,"context_line":"\t\tpm-\u003erbytes \u003d 12;"},{"line_number":447,"context_line":"\t\tpm-\u003ewid \u003d 0;               /* reset wid for transaction ID */"},{"line_number":448,"context_line":"\t\tpm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":449,"context_line":"\t\tmemcpy(pm-\u003ewd8, path, pm-\u003ewbytes + 1);"},{"line_number":450,"context_line":"\t\trc \u003d wait_server(hsock, pm);"},{"line_number":451,"context_line":"\t\tvdc.sig_read \u003d (uint16_t)(pm-\u003erwdata \u003e\u003e 16);    /* signal read mask */"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"4670a92f_c0c84ac3","line":448,"in_reply_to":"c059f0f4_add88229","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":458,"context_line":"\tif (rc) {"},{"line_number":459,"context_line":"\t\tLOG_ERROR(\"Error 0x%x connecting to BFM %s\", rc, path);"},{"line_number":460,"context_line":"\t\trc \u003d ERROR_FAIL;"},{"line_number":461,"context_line":"\t} else"},{"line_number":462,"context_line":"\t\tLOG_DEBUG(\"%s type %0x, period %dps, buffer %dx%dB signals r%04xw%04x\","},{"line_number":463,"context_line":"\t\t\tpath, type, vdc.bfm_period, VD_BUFFER_LEN / vdc.buf_width,"},{"line_number":464,"context_line":"\t\t\tvdc.buf_width, vdc.sig_read, vdc.sig_write);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"14a3bc22_65f4a498","line":461,"updated":"2021-09-11 22:07:17.000000000","message":"all branches with {}.\nBetter, just return ERROR_FAIL and remove the \u0027else\u0027!","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":458,"context_line":"\tif (rc) {"},{"line_number":459,"context_line":"\t\tLOG_ERROR(\"Error 0x%x connecting to BFM %s\", rc, path);"},{"line_number":460,"context_line":"\t\trc \u003d ERROR_FAIL;"},{"line_number":461,"context_line":"\t} else"},{"line_number":462,"context_line":"\t\tLOG_DEBUG(\"%s type %0x, period %dps, buffer %dx%dB signals r%04xw%04x\","},{"line_number":463,"context_line":"\t\t\tpath, type, vdc.bfm_period, VD_BUFFER_LEN / vdc.buf_width,"},{"line_number":464,"context_line":"\t\t\tvdc.buf_width, vdc.sig_read, vdc.sig_write);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"eeae6e98_0fd8311c","line":461,"in_reply_to":"14a3bc22_65f4a498","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":470,"context_line":"{"},{"line_number":471,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_DISCONNECT;"},{"line_number":472,"context_line":"\tpm-\u003etype \u003d (uint8_t)type;          /* BFM type, here JTAG */"},{"line_number":473,"context_line":"\tpm-\u003ewbytes \u003d pm-\u003erbytes \u003d pm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":474,"context_line":"\twait_server(hsock, pm);"},{"line_number":475,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_CLOSE;"},{"line_number":476,"context_line":"\tpm-\u003ewid \u003d (uint16_t)VD_VERSION;    /* client version */"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"125abe9a_1e9dd47c","line":473,"updated":"2021-09-11 22:07:17.000000000","message":"no multiple assignements","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":470,"context_line":"{"},{"line_number":471,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_DISCONNECT;"},{"line_number":472,"context_line":"\tpm-\u003etype \u003d (uint8_t)type;          /* BFM type, here JTAG */"},{"line_number":473,"context_line":"\tpm-\u003ewbytes \u003d pm-\u003erbytes \u003d pm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":474,"context_line":"\twait_server(hsock, pm);"},{"line_number":475,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_CLOSE;"},{"line_number":476,"context_line":"\tpm-\u003ewid \u003d (uint16_t)VD_VERSION;    /* client version */"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"eea00673_6d05f95f","line":473,"in_reply_to":"125abe9a_1e9dd47c","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":474,"context_line":"\twait_server(hsock, pm);"},{"line_number":475,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_CLOSE;"},{"line_number":476,"context_line":"\tpm-\u003ewid \u003d (uint16_t)VD_VERSION;    /* client version */"},{"line_number":477,"context_line":"\tpm-\u003ewbytes \u003d pm-\u003erbytes \u003d pm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":478,"context_line":"\twait_server(hsock, pm);"},{"line_number":479,"context_line":"\tLOG_DEBUG(\"type %0x\", type);"},{"line_number":480,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":10,"id":"ee70bf7f_1304e36a","line":477,"updated":"2021-09-11 22:07:17.000000000","message":"no multiple assignments","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":474,"context_line":"\twait_server(hsock, pm);"},{"line_number":475,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_CLOSE;"},{"line_number":476,"context_line":"\tpm-\u003ewid \u003d (uint16_t)VD_VERSION;    /* client version */"},{"line_number":477,"context_line":"\tpm-\u003ewbytes \u003d pm-\u003erbytes \u003d pm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":478,"context_line":"\twait_server(hsock, pm);"},{"line_number":479,"context_line":"\tLOG_DEBUG(\"type %0x\", type);"},{"line_number":480,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":10,"id":"e9cffc54_a484a229","line":477,"in_reply_to":"ee70bf7f_1304e36a","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":495,"context_line":""},{"line_number":496,"context_line":"\tif (rc) {"},{"line_number":497,"context_line":"\t\tLOG_ERROR(\"Error 0x%x waiting %d cycles\", rc, cycles);"},{"line_number":498,"context_line":"\t\trc \u003d ERROR_FAIL;"},{"line_number":499,"context_line":"\t} else"},{"line_number":500,"context_line":"\t\tLOG_DEBUG(\"%d cycles\", cycles);"},{"line_number":501,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":10,"id":"2a383d5a_7db1f5a7","line":498,"updated":"2021-09-11 22:07:17.000000000","message":"just return ERROR_FAIL;","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":495,"context_line":""},{"line_number":496,"context_line":"\tif (rc) {"},{"line_number":497,"context_line":"\t\tLOG_ERROR(\"Error 0x%x waiting %d cycles\", rc, cycles);"},{"line_number":498,"context_line":"\t\trc \u003d ERROR_FAIL;"},{"line_number":499,"context_line":"\t} else"},{"line_number":500,"context_line":"\t\tLOG_DEBUG(\"%d cycles\", cycles);"},{"line_number":501,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":10,"id":"da49dfa4_88671c84","line":498,"in_reply_to":"2a383d5a_7db1f5a7","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":513,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":514,"context_line":"\tif (rc) {"},{"line_number":515,"context_line":"\t\tLOG_WARNING(\"Error 0x%x setting signals %04x\", rc, write_mask);"},{"line_number":516,"context_line":"\t\trc \u003d ERROR_FAIL;"},{"line_number":517,"context_line":"\t} else"},{"line_number":518,"context_line":"\t\tLOG_DEBUG(\"setting signals %04x to %04x\", write_mask, value);"},{"line_number":519,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":10,"id":"51c310f1_deb6ee74","line":516,"updated":"2021-09-11 22:07:17.000000000","message":"just return ERROR_FAIL;","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":513,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":514,"context_line":"\tif (rc) {"},{"line_number":515,"context_line":"\t\tLOG_WARNING(\"Error 0x%x setting signals %04x\", rc, write_mask);"},{"line_number":516,"context_line":"\t\trc \u003d ERROR_FAIL;"},{"line_number":517,"context_line":"\t} else"},{"line_number":518,"context_line":"\t\tLOG_DEBUG(\"setting signals %04x to %04x\", write_mask, value);"},{"line_number":519,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":10,"id":"71938d13_561c4c63","line":516,"in_reply_to":"51c310f1_deb6ee74","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":531,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":532,"context_line":"\tif (rc) {"},{"line_number":533,"context_line":"\t\tLOG_WARNING(\"Error 0x%x setting jtag_clock\", rc);"},{"line_number":534,"context_line":"\t\trc \u003d ERROR_FAIL;"},{"line_number":535,"context_line":"\t} else"},{"line_number":536,"context_line":"\t\tLOG_DEBUG(\"setting jtag clock divider to %d\", value);"},{"line_number":537,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":10,"id":"68182d7c_9d71342b","line":534,"updated":"2021-09-11 22:07:17.000000000","message":"return ERROR_FAIL;","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":531,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":532,"context_line":"\tif (rc) {"},{"line_number":533,"context_line":"\t\tLOG_WARNING(\"Error 0x%x setting jtag_clock\", rc);"},{"line_number":534,"context_line":"\t\trc \u003d ERROR_FAIL;"},{"line_number":535,"context_line":"\t} else"},{"line_number":536,"context_line":"\t\tLOG_DEBUG(\"setting jtag clock divider to %d\", value);"},{"line_number":537,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":10,"id":"6b2e29af_d85210e9","line":534,"in_reply_to":"68182d7c_9d71342b","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":559,"context_line":"\t\tanum \u003d num + num_pre + num_post - 1;"},{"line_number":560,"context_line":"\telse"},{"line_number":561,"context_line":"\t\tanum \u003d num + num_pre;"},{"line_number":562,"context_line":"\thwords \u003d (anum + 4 * vdc.buf_width - 1)/(4 * vdc.buf_width); /* in 4B TDI/TMS words */"},{"line_number":563,"context_line":"\twords \u003d (hwords + 1) / 2;    /* in 8B TDO words to read */"},{"line_number":564,"context_line":"\tbytes \u003d (num + 7) / 8;       /* data only portion in bytes */"},{"line_number":565,"context_line":"\t/* buffer overflow check and flush */"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"2ba8916b_e03dcfdd","line":562,"updated":"2021-09-11 22:07:17.000000000","message":"space around \u0027/\u0027","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":559,"context_line":"\t\tanum \u003d num + num_pre + num_post - 1;"},{"line_number":560,"context_line":"\telse"},{"line_number":561,"context_line":"\t\tanum \u003d num + num_pre;"},{"line_number":562,"context_line":"\thwords \u003d (anum + 4 * vdc.buf_width - 1)/(4 * vdc.buf_width); /* in 4B TDI/TMS words */"},{"line_number":563,"context_line":"\twords \u003d (hwords + 1) / 2;    /* in 8B TDO words to read */"},{"line_number":564,"context_line":"\tbytes \u003d (num + 7) / 8;       /* data only portion in bytes */"},{"line_number":565,"context_line":"\t/* buffer overflow check and flush */"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"cc92b2cb_6530ca80","line":562,"in_reply_to":"2ba8916b_e03dcfdd","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":563,"context_line":"\twords \u003d (hwords + 1) / 2;    /* in 8B TDO words to read */"},{"line_number":564,"context_line":"\tbytes \u003d (num + 7) / 8;       /* data only portion in bytes */"},{"line_number":565,"context_line":"\t/* buffer overflow check and flush */"},{"line_number":566,"context_line":"\tif (waddr + 2 + 2 * hwords + 16 \u003e VD_BUFFER_LEN/4)"},{"line_number":567,"context_line":"\t\tvdc.trans_last \u003d 1;        /* force flush within 64B of buffer end */"},{"line_number":568,"context_line":"\telse if (waddr + 2 + 2 * hwords \u003e VD_BUFFER_LEN/4) {"},{"line_number":569,"context_line":"\t\t/* this req does not fit, discard it */"},{"line_number":570,"context_line":"\t\tLOG_WARNING(\"%04x L:%02d O:%05x @%04x too many bits, Error\","},{"line_number":571,"context_line":"\t\t\tpm-\u003ewid, anum, ((vdc.trans_first \u003c\u003c 14)|(vdc.trans_last \u003c\u003c 15)), waddr);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"f8a01c6f_00cc4e06","line":568,"range":{"start_line":566,"start_character":1,"end_line":568,"end_character":53},"updated":"2021-09-11 22:07:17.000000000","message":"space around \u0027/\u0027\nall branches with {}","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":563,"context_line":"\twords \u003d (hwords + 1) / 2;    /* in 8B TDO words to read */"},{"line_number":564,"context_line":"\tbytes \u003d (num + 7) / 8;       /* data only portion in bytes */"},{"line_number":565,"context_line":"\t/* buffer overflow check and flush */"},{"line_number":566,"context_line":"\tif (waddr + 2 + 2 * hwords + 16 \u003e VD_BUFFER_LEN/4)"},{"line_number":567,"context_line":"\t\tvdc.trans_last \u003d 1;        /* force flush within 64B of buffer end */"},{"line_number":568,"context_line":"\telse if (waddr + 2 + 2 * hwords \u003e VD_BUFFER_LEN/4) {"},{"line_number":569,"context_line":"\t\t/* this req does not fit, discard it */"},{"line_number":570,"context_line":"\t\tLOG_WARNING(\"%04x L:%02d O:%05x @%04x too many bits, Error\","},{"line_number":571,"context_line":"\t\t\tpm-\u003ewid, anum, ((vdc.trans_first \u003c\u003c 14)|(vdc.trans_last \u003c\u003c 15)), waddr);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"fad3134e_1e78ff41","line":568,"range":{"start_line":566,"start_character":1,"end_line":568,"end_character":53},"in_reply_to":"f8a01c6f_00cc4e06","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":568,"context_line":"\telse if (waddr + 2 + 2 * hwords \u003e VD_BUFFER_LEN/4) {"},{"line_number":569,"context_line":"\t\t/* this req does not fit, discard it */"},{"line_number":570,"context_line":"\t\tLOG_WARNING(\"%04x L:%02d O:%05x @%04x too many bits, Error\","},{"line_number":571,"context_line":"\t\t\tpm-\u003ewid, anum, ((vdc.trans_first \u003c\u003c 14)|(vdc.trans_last \u003c\u003c 15)), waddr);"},{"line_number":572,"context_line":"\t\trc \u003d ERROR_FAIL;"},{"line_number":573,"context_line":"\t}"},{"line_number":574,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":10,"id":"1e21b4e4_cbe1afa5","line":571,"updated":"2021-09-11 22:07:17.000000000","message":"space around \u0027|\u0027 and no () around function parameter","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":568,"context_line":"\telse if (waddr + 2 + 2 * hwords \u003e VD_BUFFER_LEN/4) {"},{"line_number":569,"context_line":"\t\t/* this req does not fit, discard it */"},{"line_number":570,"context_line":"\t\tLOG_WARNING(\"%04x L:%02d O:%05x @%04x too many bits, Error\","},{"line_number":571,"context_line":"\t\t\tpm-\u003ewid, anum, ((vdc.trans_first \u003c\u003c 14)|(vdc.trans_last \u003c\u003c 15)), waddr);"},{"line_number":572,"context_line":"\t\trc \u003d ERROR_FAIL;"},{"line_number":573,"context_line":"\t}"},{"line_number":574,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":10,"id":"0d0eed28_419cb3f4","line":571,"in_reply_to":"1e21b4e4_cbe1afa5","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":586,"context_line":"\t\tpm-\u003ewd8[4 * waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":587,"context_line":"\t\tpm-\u003ewd8[4 * waddr + 4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":588,"context_line":"\t\tif (num + num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":589,"context_line":"\t\t\tpm-\u003ewd8[4 * waddr + 4] |\u003d (tms_post \u003c\u003c (num+num_pre - 1));"},{"line_number":590,"context_line":"\t\tfor (i \u003d 1, j \u003d 4 * waddr; i \u003c bytes; i++) {"},{"line_number":591,"context_line":"\t\t\tif (i \u003d\u003d bytes - 1 \u0026\u0026 num + num_pre \u003c\u003d bytes*tobits)"},{"line_number":592,"context_line":"\t\t\t\tpm-\u003ewd8[j + i + 4] \u003d tms_post \u003c\u003c ((num + num_pre - 1) % 8);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"d10c85f0_01858211","line":589,"updated":"2021-09-11 22:07:17.000000000","message":"space around \u0027+\u0027","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":586,"context_line":"\t\tpm-\u003ewd8[4 * waddr] \u003d (tdi ? (tdi[0] \u003c\u003c num_pre) : 0);"},{"line_number":587,"context_line":"\t\tpm-\u003ewd8[4 * waddr + 4] \u003d tms_pre;    /* init with tms_pre */"},{"line_number":588,"context_line":"\t\tif (num + num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":589,"context_line":"\t\t\tpm-\u003ewd8[4 * waddr + 4] |\u003d (tms_post \u003c\u003c (num+num_pre - 1));"},{"line_number":590,"context_line":"\t\tfor (i \u003d 1, j \u003d 4 * waddr; i \u003c bytes; i++) {"},{"line_number":591,"context_line":"\t\t\tif (i \u003d\u003d bytes - 1 \u0026\u0026 num + num_pre \u003c\u003d bytes*tobits)"},{"line_number":592,"context_line":"\t\t\t\tpm-\u003ewd8[j + i + 4] \u003d tms_post \u003c\u003c ((num + num_pre - 1) % 8);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"aa0820b2_1a3b3e21","line":589,"in_reply_to":"d10c85f0_01858211","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":588,"context_line":"\t\tif (num + num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":589,"context_line":"\t\t\tpm-\u003ewd8[4 * waddr + 4] |\u003d (tms_post \u003c\u003c (num+num_pre - 1));"},{"line_number":590,"context_line":"\t\tfor (i \u003d 1, j \u003d 4 * waddr; i \u003c bytes; i++) {"},{"line_number":591,"context_line":"\t\t\tif (i \u003d\u003d bytes - 1 \u0026\u0026 num + num_pre \u003c\u003d bytes*tobits)"},{"line_number":592,"context_line":"\t\t\t\tpm-\u003ewd8[j + i + 4] \u003d tms_post \u003c\u003c ((num + num_pre - 1) % 8);"},{"line_number":593,"context_line":"\t\t\telse"},{"line_number":594,"context_line":"\t\t\t\tpm-\u003ewd8[j + i + 4] \u003d 0x0;/* placing 4 bytes of TMS bits into high word */"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"84c91e43_61c138b8","line":591,"updated":"2021-09-11 22:07:17.000000000","message":"space around \u0027*\u0027","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":588,"context_line":"\t\tif (num + num_pre \u003c\u003d 8)            /* and tms_post for num \u003c\u003d4 */"},{"line_number":589,"context_line":"\t\t\tpm-\u003ewd8[4 * waddr + 4] |\u003d (tms_post \u003c\u003c (num+num_pre - 1));"},{"line_number":590,"context_line":"\t\tfor (i \u003d 1, j \u003d 4 * waddr; i \u003c bytes; i++) {"},{"line_number":591,"context_line":"\t\t\tif (i \u003d\u003d bytes - 1 \u0026\u0026 num + num_pre \u003c\u003d bytes*tobits)"},{"line_number":592,"context_line":"\t\t\t\tpm-\u003ewd8[j + i + 4] \u003d tms_post \u003c\u003c ((num + num_pre - 1) % 8);"},{"line_number":593,"context_line":"\t\t\telse"},{"line_number":594,"context_line":"\t\t\t\tpm-\u003ewd8[j + i + 4] \u003d 0x0;/* placing 4 bytes of TMS bits into high word */"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"328ccd3e_f584ef65","line":591,"in_reply_to":"84c91e43_61c138b8","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":600,"context_line":"\t\t\t\tj +\u003d 4;"},{"line_number":601,"context_line":"\t\t}"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":"\t\tif (tdi) {"},{"line_number":604,"context_line":"\t\t\tif (num + num_pre \u003e bytes*tobits) /* in case 1 additional byte needed for TDI */"},{"line_number":605,"context_line":"\t\t\t\tpm-\u003ewd8[j + i] \u003d (tdi[i - 1] \u003e\u003e (8 - num_pre)); /* put last TDI bits there */"},{"line_number":606,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"4ceef911_527f2c8c","line":603,"updated":"2021-09-11 22:07:17.000000000","message":"No need for {}","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":600,"context_line":"\t\t\t\tj +\u003d 4;"},{"line_number":601,"context_line":"\t\t}"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":"\t\tif (tdi) {"},{"line_number":604,"context_line":"\t\t\tif (num + num_pre \u003e bytes*tobits) /* in case 1 additional byte needed for TDI */"},{"line_number":605,"context_line":"\t\t\t\tpm-\u003ewd8[j + i] \u003d (tdi[i - 1] \u003e\u003e (8 - num_pre)); /* put last TDI bits there */"},{"line_number":606,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"2f116b8a_ee22c6f1","line":603,"in_reply_to":"4ceef911_527f2c8c","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":601,"context_line":"\t\t}"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":"\t\tif (tdi) {"},{"line_number":604,"context_line":"\t\t\tif (num + num_pre \u003e bytes*tobits) /* in case 1 additional byte needed for TDI */"},{"line_number":605,"context_line":"\t\t\t\tpm-\u003ewd8[j + i] \u003d (tdi[i - 1] \u003e\u003e (8 - num_pre)); /* put last TDI bits there */"},{"line_number":606,"context_line":"\t\t}"},{"line_number":607,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":10,"id":"ccaada94_b59ee609","line":604,"updated":"2021-09-11 22:07:17.000000000","message":"space around \u0027*\u0027","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":601,"context_line":"\t\t}"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":"\t\tif (tdi) {"},{"line_number":604,"context_line":"\t\t\tif (num + num_pre \u003e bytes*tobits) /* in case 1 additional byte needed for TDI */"},{"line_number":605,"context_line":"\t\t\t\tpm-\u003ewd8[j + i] \u003d (tdi[i - 1] \u003e\u003e (8 - num_pre)); /* put last TDI bits there */"},{"line_number":606,"context_line":"\t\t}"},{"line_number":607,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":10,"id":"f39027ce_7738c4f1","line":604,"in_reply_to":"ccaada94_b59ee609","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":610,"context_line":"\t\t/* in case exactly 1 additional byte needed */"},{"line_number":611,"context_line":"\t\telse if (num + num_pre \u003e bytes * tobits \u0026\u0026 anum \u003c\u003d (bytes + 1) * tobits)"},{"line_number":612,"context_line":"\t\t\tpm-\u003ewd8[j + i + 4] \u003d tms_post \u003c\u003c ((num + num_pre - 1) % 8); /* add whole tms_post */"},{"line_number":613,"context_line":"\t\telse {                           /* in case 2 additional bytes, tms_post split */"},{"line_number":614,"context_line":"\t\t\tpm-\u003ewd8[j + i + 4] \u003d tms_post \u003c\u003c ((num + num_pre - 1) % 8);/* add lower part of tms_post */"},{"line_number":615,"context_line":"\t\t\tif (i % 4 \u003d\u003d 3)              /* next byte is in the next 32b word */"},{"line_number":616,"context_line":"\t\t\t\tpm-\u003ewd8[j + i + 4 + 5] \u003d tms_post \u003e\u003e (8-(num + num_pre - 1) % 8); /* and higher part */"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"95cc1d9f_d33e4a6c","line":613,"updated":"2021-09-11 22:07:17.000000000","message":"all branches with {}","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":610,"context_line":"\t\t/* in case exactly 1 additional byte needed */"},{"line_number":611,"context_line":"\t\telse if (num + num_pre \u003e bytes * tobits \u0026\u0026 anum \u003c\u003d (bytes + 1) * tobits)"},{"line_number":612,"context_line":"\t\t\tpm-\u003ewd8[j + i + 4] \u003d tms_post \u003c\u003c ((num + num_pre - 1) % 8); /* add whole tms_post */"},{"line_number":613,"context_line":"\t\telse {                           /* in case 2 additional bytes, tms_post split */"},{"line_number":614,"context_line":"\t\t\tpm-\u003ewd8[j + i + 4] \u003d tms_post \u003c\u003c ((num + num_pre - 1) % 8);/* add lower part of tms_post */"},{"line_number":615,"context_line":"\t\t\tif (i % 4 \u003d\u003d 3)              /* next byte is in the next 32b word */"},{"line_number":616,"context_line":"\t\t\t\tpm-\u003ewd8[j + i + 4 + 5] \u003d tms_post \u003e\u003e (8-(num + num_pre - 1) % 8); /* and higher part */"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"a02b8543_389d8744","line":613,"in_reply_to":"95cc1d9f_d33e4a6c","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":613,"context_line":"\t\telse {                           /* in case 2 additional bytes, tms_post split */"},{"line_number":614,"context_line":"\t\t\tpm-\u003ewd8[j + i + 4] \u003d tms_post \u003c\u003c ((num + num_pre - 1) % 8);/* add lower part of tms_post */"},{"line_number":615,"context_line":"\t\t\tif (i % 4 \u003d\u003d 3)              /* next byte is in the next 32b word */"},{"line_number":616,"context_line":"\t\t\t\tpm-\u003ewd8[j + i + 4 + 5] \u003d tms_post \u003e\u003e (8-(num + num_pre - 1) % 8); /* and higher part */"},{"line_number":617,"context_line":"\t\t\telse                         /* next byte is in the same 32b word */"},{"line_number":618,"context_line":"\t\t\t\tpm-\u003ewd8[j + i + 4 + 1] \u003d tms_post \u003e\u003e (8-(num + num_pre - 1) % 8); /* and higher part */"},{"line_number":619,"context_line":"\t\t}"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"\t\tif (tdo) {"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"18f58077_b9208ad7","line":618,"range":{"start_line":616,"start_character":4,"end_line":618,"end_character":67},"updated":"2021-09-11 22:07:17.000000000","message":"add space around \u0027-\u0027","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":613,"context_line":"\t\telse {                           /* in case 2 additional bytes, tms_post split */"},{"line_number":614,"context_line":"\t\t\tpm-\u003ewd8[j + i + 4] \u003d tms_post \u003c\u003c ((num + num_pre - 1) % 8);/* add lower part of tms_post */"},{"line_number":615,"context_line":"\t\t\tif (i % 4 \u003d\u003d 3)              /* next byte is in the next 32b word */"},{"line_number":616,"context_line":"\t\t\t\tpm-\u003ewd8[j + i + 4 + 5] \u003d tms_post \u003e\u003e (8-(num + num_pre - 1) % 8); /* and higher part */"},{"line_number":617,"context_line":"\t\t\telse                         /* next byte is in the same 32b word */"},{"line_number":618,"context_line":"\t\t\t\tpm-\u003ewd8[j + i + 4 + 1] \u003d tms_post \u003e\u003e (8-(num + num_pre - 1) % 8); /* and higher part */"},{"line_number":619,"context_line":"\t\t}"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"\t\tif (tdo) {"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"d3865017_43f476d1","line":618,"range":{"start_line":616,"start_character":4,"end_line":618,"end_character":67},"in_reply_to":"18f58077_b9208ad7","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":647,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_MEMOPEN;"},{"line_number":648,"context_line":"\tpm-\u003ewbytes \u003d (uint16_t)strlen(path) + 1;   /* includes terminating 0 */"},{"line_number":649,"context_line":"\tpm-\u003erbytes \u003d 8;"},{"line_number":650,"context_line":"\tpm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":651,"context_line":"\tmemcpy(pm-\u003ewd8, path, pm-\u003ewbytes);"},{"line_number":652,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":653,"context_line":"\tif (rc) {"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"4bb6ab2f_ceb12ab7","line":650,"updated":"2021-09-11 22:07:17.000000000","message":"no multiple assignement","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":647,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_MEMOPEN;"},{"line_number":648,"context_line":"\tpm-\u003ewbytes \u003d (uint16_t)strlen(path) + 1;   /* includes terminating 0 */"},{"line_number":649,"context_line":"\tpm-\u003erbytes \u003d 8;"},{"line_number":650,"context_line":"\tpm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":651,"context_line":"\tmemcpy(pm-\u003ewd8, path, pm-\u003ewbytes);"},{"line_number":652,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":653,"context_line":"\tif (rc) {"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"aa7fa3ce_663c5940","line":650,"in_reply_to":"4bb6ab2f_ceb12ab7","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":653,"context_line":"\tif (rc) {"},{"line_number":654,"context_line":"\t\tLOG_WARNING(\"Error 0x%x opening memory %s\", rc, path);"},{"line_number":655,"context_line":"\t} else if (ndx !\u003d pm-\u003erd16[1]) {"},{"line_number":656,"context_line":"\t\tLOG_WARNING(\"Invalid memory index %hu returned from server\", pm-\u003erd16[1]);"},{"line_number":657,"context_line":"\t} else {"},{"line_number":658,"context_line":"\t\tvdc.mem_width[ndx] \u003d pm-\u003erd16[0] / 8;   /* memory width in bytes */"},{"line_number":659,"context_line":"\t\tvdc.mem_depth[ndx] \u003d pm-\u003erd32[1];       /* memory depth in words */"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"2e20373d_461c3e5b","line":656,"updated":"2021-09-11 22:07:17.000000000","message":"Is pm-\u003erd16[1] of uint16_t type? Then use PRIu16 instead of \u0027hu\u0027","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":653,"context_line":"\tif (rc) {"},{"line_number":654,"context_line":"\t\tLOG_WARNING(\"Error 0x%x opening memory %s\", rc, path);"},{"line_number":655,"context_line":"\t} else if (ndx !\u003d pm-\u003erd16[1]) {"},{"line_number":656,"context_line":"\t\tLOG_WARNING(\"Invalid memory index %hu returned from server\", pm-\u003erd16[1]);"},{"line_number":657,"context_line":"\t} else {"},{"line_number":658,"context_line":"\t\tvdc.mem_width[ndx] \u003d pm-\u003erd16[0] / 8;   /* memory width in bytes */"},{"line_number":659,"context_line":"\t\tvdc.mem_depth[ndx] \u003d pm-\u003erd32[1];       /* memory depth in words */"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"d3a9683a_f29a0f7b","line":656,"in_reply_to":"2e20373d_461c3e5b","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":668,"context_line":"{"},{"line_number":669,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_MEMCLOSE;"},{"line_number":670,"context_line":"\tpm-\u003erwdata \u003d ndx;        /* which memory */"},{"line_number":671,"context_line":"\tpm-\u003ewbytes \u003d pm-\u003erbytes \u003d pm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":672,"context_line":"\twait_server(hsock, pm);"},{"line_number":673,"context_line":"\tLOG_DEBUG(\"%u: %s\", ndx, vdc.mem_path[ndx]);"},{"line_number":674,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"0067fb60_5f08f6d6","line":671,"updated":"2021-09-11 22:07:17.000000000","message":"no multiple assignments","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":668,"context_line":"{"},{"line_number":669,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_MEMCLOSE;"},{"line_number":670,"context_line":"\tpm-\u003erwdata \u003d ndx;        /* which memory */"},{"line_number":671,"context_line":"\tpm-\u003ewbytes \u003d pm-\u003erbytes \u003d pm-\u003ewwords \u003d pm-\u003erwords \u003d 0;"},{"line_number":672,"context_line":"\twait_server(hsock, pm);"},{"line_number":673,"context_line":"\tLOG_DEBUG(\"%u: %s\", ndx, vdc.mem_path[ndx]);"},{"line_number":674,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"191ce32b_262e97c8","line":671,"in_reply_to":"0067fb60_5f08f6d6","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":681,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_MEMWRITE;"},{"line_number":682,"context_line":"\tpm-\u003erwdata \u003d ndx;        /* memory ID  v43 */"},{"line_number":683,"context_line":"\tpm-\u003ewbytes \u003d num;"},{"line_number":684,"context_line":"\tpm-\u003ewwords \u003d (num+vdc.mem_width[ndx] - 1) / vdc.mem_width[ndx];"},{"line_number":685,"context_line":"\tpm-\u003erbytes \u003d pm-\u003erwords \u003d 0;"},{"line_number":686,"context_line":"\tpm-\u003eoffset \u003d (uint32_t)(addr / vdc.mem_width[ndx]);"},{"line_number":687,"context_line":"\tpm-\u003eoffseth \u003d (uint16_t)((addr / vdc.mem_width[ndx]) \u003e\u003e 32);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"5fdc79e4_93643b28","line":684,"updated":"2021-09-11 22:07:17.000000000","message":"space around \u0027+\u0027","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":681,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_MEMWRITE;"},{"line_number":682,"context_line":"\tpm-\u003erwdata \u003d ndx;        /* memory ID  v43 */"},{"line_number":683,"context_line":"\tpm-\u003ewbytes \u003d num;"},{"line_number":684,"context_line":"\tpm-\u003ewwords \u003d (num+vdc.mem_width[ndx] - 1) / vdc.mem_width[ndx];"},{"line_number":685,"context_line":"\tpm-\u003erbytes \u003d pm-\u003erwords \u003d 0;"},{"line_number":686,"context_line":"\tpm-\u003eoffset \u003d (uint32_t)(addr / vdc.mem_width[ndx]);"},{"line_number":687,"context_line":"\tpm-\u003eoffseth \u003d (uint16_t)((addr / vdc.mem_width[ndx]) \u003e\u003e 32);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"d042b9c2_7c285428","line":684,"in_reply_to":"5fdc79e4_93643b28","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":682,"context_line":"\tpm-\u003erwdata \u003d ndx;        /* memory ID  v43 */"},{"line_number":683,"context_line":"\tpm-\u003ewbytes \u003d num;"},{"line_number":684,"context_line":"\tpm-\u003ewwords \u003d (num+vdc.mem_width[ndx] - 1) / vdc.mem_width[ndx];"},{"line_number":685,"context_line":"\tpm-\u003erbytes \u003d pm-\u003erwords \u003d 0;"},{"line_number":686,"context_line":"\tpm-\u003eoffset \u003d (uint32_t)(addr / vdc.mem_width[ndx]);"},{"line_number":687,"context_line":"\tpm-\u003eoffseth \u003d (uint16_t)((addr / vdc.mem_width[ndx]) \u003e\u003e 32);"},{"line_number":688,"context_line":"\tmemcpy(pm-\u003ewd8, data, num);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"45637736_366b710f","line":685,"updated":"2021-09-11 22:07:17.000000000","message":"no multiple assignments","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":682,"context_line":"\tpm-\u003erwdata \u003d ndx;        /* memory ID  v43 */"},{"line_number":683,"context_line":"\tpm-\u003ewbytes \u003d num;"},{"line_number":684,"context_line":"\tpm-\u003ewwords \u003d (num+vdc.mem_width[ndx] - 1) / vdc.mem_width[ndx];"},{"line_number":685,"context_line":"\tpm-\u003erbytes \u003d pm-\u003erwords \u003d 0;"},{"line_number":686,"context_line":"\tpm-\u003eoffset \u003d (uint32_t)(addr / vdc.mem_width[ndx]);"},{"line_number":687,"context_line":"\tpm-\u003eoffseth \u003d (uint16_t)((addr / vdc.mem_width[ndx]) \u003e\u003e 32);"},{"line_number":688,"context_line":"\tmemcpy(pm-\u003ewd8, data, num);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"fcc8b47e_818b6496","line":685,"in_reply_to":"45637736_366b710f","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":688,"context_line":"\tmemcpy(pm-\u003ewd8, data, num);"},{"line_number":689,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":690,"context_line":"\tif (rc)"},{"line_number":691,"context_line":"\t\tLOG_WARNING(\"Error 0x%x writing %d bytes at %\"PRIx64, rc, num, addr);"},{"line_number":692,"context_line":"\telse"},{"line_number":693,"context_line":"\t\tLOG_DEBUG(\"%u: A:%08\"PRIx64\" L:%d D:%08x\", ndx, addr, num, pm-\u003ewd32[0]);"},{"line_number":694,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":10,"id":"d009fbeb_94f7f125","line":691,"updated":"2021-09-11 22:07:17.000000000","message":"space between string and PRIx64","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":688,"context_line":"\tmemcpy(pm-\u003ewd8, data, num);"},{"line_number":689,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":690,"context_line":"\tif (rc)"},{"line_number":691,"context_line":"\t\tLOG_WARNING(\"Error 0x%x writing %d bytes at %\"PRIx64, rc, num, addr);"},{"line_number":692,"context_line":"\telse"},{"line_number":693,"context_line":"\t\tLOG_DEBUG(\"%u: A:%08\"PRIx64\" L:%d D:%08x\", ndx, addr, num, pm-\u003ewd32[0]);"},{"line_number":694,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":10,"id":"360507d1_501a35b5","line":691,"in_reply_to":"d009fbeb_94f7f125","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":690,"context_line":"\tif (rc)"},{"line_number":691,"context_line":"\t\tLOG_WARNING(\"Error 0x%x writing %d bytes at %\"PRIx64, rc, num, addr);"},{"line_number":692,"context_line":"\telse"},{"line_number":693,"context_line":"\t\tLOG_DEBUG(\"%u: A:%08\"PRIx64\" L:%d D:%08x\", ndx, addr, num, pm-\u003ewd32[0]);"},{"line_number":694,"context_line":""},{"line_number":695,"context_line":"\tpm-\u003eoffset \u003d 0;"},{"line_number":696,"context_line":"\tpm-\u003eoffseth \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"3cb70b82_05e7073e","line":693,"updated":"2021-09-11 22:07:17.000000000","message":"space around PRIx64","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":690,"context_line":"\tif (rc)"},{"line_number":691,"context_line":"\t\tLOG_WARNING(\"Error 0x%x writing %d bytes at %\"PRIx64, rc, num, addr);"},{"line_number":692,"context_line":"\telse"},{"line_number":693,"context_line":"\t\tLOG_DEBUG(\"%u: A:%08\"PRIx64\" L:%d D:%08x\", ndx, addr, num, pm-\u003ewd32[0]);"},{"line_number":694,"context_line":""},{"line_number":695,"context_line":"\tpm-\u003eoffset \u003d 0;"},{"line_number":696,"context_line":"\tpm-\u003eoffseth \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"2aaec56a_9e6d9fe4","line":693,"in_reply_to":"3cb70b82_05e7073e","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":700,"context_line":""},{"line_number":701,"context_line":"/* function gets invoked through a callback every (vdc.poll_min + vdc.poll_max) / 2"},{"line_number":702,"context_line":" * if the data transfer functions took less than poll_min ms, measured by targ_time"},{"line_number":703,"context_line":" * wait fucntion is called and its time measured and wait cycles adjusted."},{"line_number":704,"context_line":" * The wait allows hardware to advance, when no data activity from the vdebug occurs"},{"line_number":705,"context_line":" */"},{"line_number":706,"context_line":"static int vdebug_poll(void *priv)"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"695fb9a9_e1063c0a","line":703,"updated":"2021-09-11 22:07:17.000000000","message":"typo s/fucntion/function/","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":700,"context_line":""},{"line_number":701,"context_line":"/* function gets invoked through a callback every (vdc.poll_min + vdc.poll_max) / 2"},{"line_number":702,"context_line":" * if the data transfer functions took less than poll_min ms, measured by targ_time"},{"line_number":703,"context_line":" * wait fucntion is called and its time measured and wait cycles adjusted."},{"line_number":704,"context_line":" * The wait allows hardware to advance, when no data activity from the vdebug occurs"},{"line_number":705,"context_line":" */"},{"line_number":706,"context_line":"static int vdebug_poll(void *priv)"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"8493ef4e_9a259b14","line":703,"in_reply_to":"695fb9a9_e1063c0a","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":758,"context_line":"\t\t\toffset +\u003d towrite;"},{"line_number":759,"context_line":"\t\t\twritten +\u003d towrite;"},{"line_number":760,"context_line":"\t\t}"},{"line_number":761,"context_line":"\t} else if (vdc.targ_write_memory)"},{"line_number":762,"context_line":"\t\trc \u003d vdc.targ_write_memory(pt, address, size, count, buffer);"},{"line_number":763,"context_line":""},{"line_number":764,"context_line":"\tLOG_DEBUG(TARGET_ADDR_FMT \" n:%d w:%d\", address, count, size);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"931cf10c_e9c8c48e","line":761,"updated":"2021-09-11 22:07:17.000000000","message":"all branches with {}","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":758,"context_line":"\t\t\toffset +\u003d towrite;"},{"line_number":759,"context_line":"\t\t\twritten +\u003d towrite;"},{"line_number":760,"context_line":"\t\t}"},{"line_number":761,"context_line":"\t} else if (vdc.targ_write_memory)"},{"line_number":762,"context_line":"\t\trc \u003d vdc.targ_write_memory(pt, address, size, count, buffer);"},{"line_number":763,"context_line":""},{"line_number":764,"context_line":"\tLOG_DEBUG(TARGET_ADDR_FMT \" n:%d w:%d\", address, count, size);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"37c0db1a_276022dd","line":761,"in_reply_to":"931cf10c_e9c8c48e","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":918,"context_line":"\tfor (int i \u003d 0; i \u003c cmd-\u003enum_fields; i++) {"},{"line_number":919,"context_line":"\t\trc \u003d vdebug_jtag_shift_tap(vdc.hsocket, pbuf, (i \u003d\u003d 0 ? num_pre : 0),"},{"line_number":920,"context_line":"\t\t\t(i \u003d\u003d 0 ? tms_pre : 0), cmd-\u003efields[i].num_bits, cmd-\u003efields[i].out_value,"},{"line_number":921,"context_line":"\t\t\t(i \u003d\u003d cmd-\u003enum_fields-1 ? num_post : 0), (i \u003d\u003d cmd-\u003enum_fields-1 ? tms_post : 0),"},{"line_number":922,"context_line":"\t\t\tcmd-\u003efields[i].in_value, (i \u003d\u003d cmd-\u003enum_fields-1 ? f_flush : 0));"},{"line_number":923,"context_line":"\t\tif (rc)"},{"line_number":924,"context_line":"\t\t\tbreak;"},{"line_number":925,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"05e5becd_e6be7c70","line":922,"range":{"start_line":921,"start_character":1,"end_line":922,"end_character":54},"updated":"2021-09-11 22:07:17.000000000","message":"space around \u0027-\u0027, three times\nNo need to enclose in () the parameters of the function.","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":918,"context_line":"\tfor (int i \u003d 0; i \u003c cmd-\u003enum_fields; i++) {"},{"line_number":919,"context_line":"\t\trc \u003d vdebug_jtag_shift_tap(vdc.hsocket, pbuf, (i \u003d\u003d 0 ? num_pre : 0),"},{"line_number":920,"context_line":"\t\t\t(i \u003d\u003d 0 ? tms_pre : 0), cmd-\u003efields[i].num_bits, cmd-\u003efields[i].out_value,"},{"line_number":921,"context_line":"\t\t\t(i \u003d\u003d cmd-\u003enum_fields-1 ? num_post : 0), (i \u003d\u003d cmd-\u003enum_fields-1 ? tms_post : 0),"},{"line_number":922,"context_line":"\t\t\tcmd-\u003efields[i].in_value, (i \u003d\u003d cmd-\u003enum_fields-1 ? f_flush : 0));"},{"line_number":923,"context_line":"\t\tif (rc)"},{"line_number":924,"context_line":"\t\t\tbreak;"},{"line_number":925,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"74697a29_40d39da8","line":922,"range":{"start_line":921,"start_character":1,"end_line":922,"end_character":54},"in_reply_to":"05e5becd_e6be7c70","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":970,"context_line":"\tuint32_t divval, clkmax;"},{"line_number":971,"context_line":"\tint rc;"},{"line_number":972,"context_line":""},{"line_number":973,"context_line":"\tclkmax \u003d VD_SCALE_PSTOMS/(vdc.bfm_period * 2); /* kHz */"},{"line_number":974,"context_line":"\tdivval \u003d clkmax / speed;"},{"line_number":975,"context_line":"\tLOG_INFO(\"jclk speed:%d kHz set, BFM divider %u\", speed, divval);"},{"line_number":976,"context_line":"\trc \u003d vdebug_jtag_clock(vdc.hsocket, pbuf, divval);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"7fd0d204_1f07f3b4","line":973,"updated":"2021-09-11 22:07:17.000000000","message":"space around \u0027/\u0027","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":970,"context_line":"\tuint32_t divval, clkmax;"},{"line_number":971,"context_line":"\tint rc;"},{"line_number":972,"context_line":""},{"line_number":973,"context_line":"\tclkmax \u003d VD_SCALE_PSTOMS/(vdc.bfm_period * 2); /* kHz */"},{"line_number":974,"context_line":"\tdivval \u003d clkmax / speed;"},{"line_number":975,"context_line":"\tLOG_INFO(\"jclk speed:%d kHz set, BFM divider %u\", speed, divval);"},{"line_number":976,"context_line":"\trc \u003d vdebug_jtag_clock(vdc.hsocket, pbuf, divval);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"bbffdf12_cb4881aa","line":973,"in_reply_to":"7fd0d204_1f07f3b4","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":982,"context_line":"{"},{"line_number":983,"context_line":"\tuint32_t divval, clkmax;"},{"line_number":984,"context_line":""},{"line_number":985,"context_line":"\tclkmax \u003d VD_SCALE_PSTOMS/(vdc.bfm_period * 2); /* kHz */"},{"line_number":986,"context_line":"\tdivval \u003d khz ? clkmax / khz : 1;"},{"line_number":987,"context_line":"\t*jtag_speed \u003d clkmax / divval;"},{"line_number":988,"context_line":"\tLOG_DEBUG(\"khz  speed:%d from khz:%d\", *jtag_speed, khz);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"b70dac7c_a0819a0c","line":985,"updated":"2021-09-11 22:07:17.000000000","message":"space around \u0027/\u0027","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":982,"context_line":"{"},{"line_number":983,"context_line":"\tuint32_t divval, clkmax;"},{"line_number":984,"context_line":""},{"line_number":985,"context_line":"\tclkmax \u003d VD_SCALE_PSTOMS/(vdc.bfm_period * 2); /* kHz */"},{"line_number":986,"context_line":"\tdivval \u003d khz ? clkmax / khz : 1;"},{"line_number":987,"context_line":"\t*jtag_speed \u003d clkmax / divval;"},{"line_number":988,"context_line":"\tLOG_DEBUG(\"khz  speed:%d from khz:%d\", *jtag_speed, khz);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"71a2d934_c382d206","line":985,"in_reply_to":"b70dac7c_a0819a0c","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":1002,"context_line":"{"},{"line_number":1003,"context_line":"\tint rc \u003d ERROR_OK;"},{"line_number":1004,"context_line":""},{"line_number":1005,"context_line":"\tfor (struct jtag_command *cmd \u003d jtag_command_queue; rc \u003d\u003d ERROR_OK \u0026\u0026 cmd !\u003d NULL; cmd \u003d cmd-\u003enext) {"},{"line_number":1006,"context_line":"\t\tswitch (cmd-\u003etype) {"},{"line_number":1007,"context_line":"\t\tcase JTAG_RUNTEST:"},{"line_number":1008,"context_line":"\t\t\trc \u003d vdebug_runtest(cmd-\u003ecmd.runtest-\u003enum_cycles, cmd-\u003ecmd.runtest-\u003eend_state, cmd-\u003enext \u003d\u003d NULL);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"baf8000d_c093bc35","line":1005,"updated":"2021-09-11 22:07:17.000000000","message":"no NULL comparison\n; rc \u003d\u003d ERROR_OK \u0026\u0026 cmd;","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":1002,"context_line":"{"},{"line_number":1003,"context_line":"\tint rc \u003d ERROR_OK;"},{"line_number":1004,"context_line":""},{"line_number":1005,"context_line":"\tfor (struct jtag_command *cmd \u003d jtag_command_queue; rc \u003d\u003d ERROR_OK \u0026\u0026 cmd !\u003d NULL; cmd \u003d cmd-\u003enext) {"},{"line_number":1006,"context_line":"\t\tswitch (cmd-\u003etype) {"},{"line_number":1007,"context_line":"\t\tcase JTAG_RUNTEST:"},{"line_number":1008,"context_line":"\t\t\trc \u003d vdebug_runtest(cmd-\u003ecmd.runtest-\u003enum_cycles, cmd-\u003ecmd.runtest-\u003eend_state, cmd-\u003enext \u003d\u003d NULL);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"c0e347e2_8d40041b","line":1005,"in_reply_to":"baf8000d_c093bc35","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":1005,"context_line":"\tfor (struct jtag_command *cmd \u003d jtag_command_queue; rc \u003d\u003d ERROR_OK \u0026\u0026 cmd !\u003d NULL; cmd \u003d cmd-\u003enext) {"},{"line_number":1006,"context_line":"\t\tswitch (cmd-\u003etype) {"},{"line_number":1007,"context_line":"\t\tcase JTAG_RUNTEST:"},{"line_number":1008,"context_line":"\t\t\trc \u003d vdebug_runtest(cmd-\u003ecmd.runtest-\u003enum_cycles, cmd-\u003ecmd.runtest-\u003eend_state, cmd-\u003enext \u003d\u003d NULL);"},{"line_number":1009,"context_line":"\t\t\tbreak;"},{"line_number":1010,"context_line":"\t\tcase JTAG_STABLECLOCKS:"},{"line_number":1011,"context_line":"\t\t\trc \u003d vdebug_stableclocks(cmd-\u003ecmd.stableclocks-\u003enum_cycles, cmd-\u003enext \u003d\u003d NULL);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"4830a96e_bc44ddd1","line":1008,"updated":"2021-09-11 22:07:17.000000000","message":"no NULL comparison:\n..., !cmd-\u003enext);\nsame below","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":1005,"context_line":"\tfor (struct jtag_command *cmd \u003d jtag_command_queue; rc \u003d\u003d ERROR_OK \u0026\u0026 cmd !\u003d NULL; cmd \u003d cmd-\u003enext) {"},{"line_number":1006,"context_line":"\t\tswitch (cmd-\u003etype) {"},{"line_number":1007,"context_line":"\t\tcase JTAG_RUNTEST:"},{"line_number":1008,"context_line":"\t\t\trc \u003d vdebug_runtest(cmd-\u003ecmd.runtest-\u003enum_cycles, cmd-\u003ecmd.runtest-\u003eend_state, cmd-\u003enext \u003d\u003d NULL);"},{"line_number":1009,"context_line":"\t\t\tbreak;"},{"line_number":1010,"context_line":"\t\tcase JTAG_STABLECLOCKS:"},{"line_number":1011,"context_line":"\t\t\trc \u003d vdebug_stableclocks(cmd-\u003ecmd.stableclocks-\u003enum_cycles, cmd-\u003enext \u003d\u003d NULL);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"f9f7d858_4f9ef233","line":1008,"in_reply_to":"4830a96e_bc44ddd1","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":1038,"context_line":"{"},{"line_number":1039,"context_line":"\tchar *pchar;"},{"line_number":1040,"context_line":"\tint rc \u003d ERROR_FAIL;"},{"line_number":1041,"context_line":"\tif ((CMD_ARGC !\u003d 1) || (strchr(CMD_ARGV[0], \u0027:\u0027) \u003d\u003d NULL))"},{"line_number":1042,"context_line":"\t\tLOG_ERROR(\"server \u003chost\u003e:\u003cport\u003e\");"},{"line_number":1043,"context_line":"\telse {"},{"line_number":1044,"context_line":"\t\tpchar \u003d strchr(CMD_ARGV[0], \u0027:\u0027);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"3cd109bf_a4933439","line":1041,"updated":"2021-09-11 22:07:17.000000000","message":"no NULL comparison\nif (CMD_ARGC !\u003d 1 || !strchr(CMD_ARGV[0], \u0027:\u0027))","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":1038,"context_line":"{"},{"line_number":1039,"context_line":"\tchar *pchar;"},{"line_number":1040,"context_line":"\tint rc \u003d ERROR_FAIL;"},{"line_number":1041,"context_line":"\tif ((CMD_ARGC !\u003d 1) || (strchr(CMD_ARGV[0], \u0027:\u0027) \u003d\u003d NULL))"},{"line_number":1042,"context_line":"\t\tLOG_ERROR(\"server \u003chost\u003e:\u003cport\u003e\");"},{"line_number":1043,"context_line":"\telse {"},{"line_number":1044,"context_line":"\t\tpchar \u003d strchr(CMD_ARGV[0], \u0027:\u0027);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"11b9c1ac_0c2e30df","line":1041,"in_reply_to":"3cd109bf_a4933439","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":1039,"context_line":"\tchar *pchar;"},{"line_number":1040,"context_line":"\tint rc \u003d ERROR_FAIL;"},{"line_number":1041,"context_line":"\tif ((CMD_ARGC !\u003d 1) || (strchr(CMD_ARGV[0], \u0027:\u0027) \u003d\u003d NULL))"},{"line_number":1042,"context_line":"\t\tLOG_ERROR(\"server \u003chost\u003e:\u003cport\u003e\");"},{"line_number":1043,"context_line":"\telse {"},{"line_number":1044,"context_line":"\t\tpchar \u003d strchr(CMD_ARGV[0], \u0027:\u0027);"},{"line_number":1045,"context_line":"\t\t*pchar \u003d \u0027\\0\u0027;"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"2bf094ec_0ee05e30","line":1042,"updated":"2021-09-11 22:07:17.000000000","message":"No need to propose the correct syntax, this is automatically managed by\nreturn ERROR_COMMAND_SYNTAX_ERROR;\nthen there is no need for the \"else\" statement after this return. Also rc variable can be dropped\nSimilar situation in all the commands below","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":1039,"context_line":"\tchar *pchar;"},{"line_number":1040,"context_line":"\tint rc \u003d ERROR_FAIL;"},{"line_number":1041,"context_line":"\tif ((CMD_ARGC !\u003d 1) || (strchr(CMD_ARGV[0], \u0027:\u0027) \u003d\u003d NULL))"},{"line_number":1042,"context_line":"\t\tLOG_ERROR(\"server \u003chost\u003e:\u003cport\u003e\");"},{"line_number":1043,"context_line":"\telse {"},{"line_number":1044,"context_line":"\t\tpchar \u003d strchr(CMD_ARGV[0], \u0027:\u0027);"},{"line_number":1045,"context_line":"\t\t*pchar \u003d \u0027\\0\u0027;"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"cd8df25e_ef1cb233","line":1042,"in_reply_to":"2bf094ec_0ee05e30","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":1043,"context_line":"\telse {"},{"line_number":1044,"context_line":"\t\tpchar \u003d strchr(CMD_ARGV[0], \u0027:\u0027);"},{"line_number":1045,"context_line":"\t\t*pchar \u003d \u0027\\0\u0027;"},{"line_number":1046,"context_line":"\t\tstrncpy(vdc.server_name, CMD_ARGV[0], sizeof(vdc.server_name)-1);"},{"line_number":1047,"context_line":"\t\tvdc.server_port \u003d atoi(++pchar);"},{"line_number":1048,"context_line":"\t\trc \u003d ERROR_OK;"},{"line_number":1049,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"da1c7c4c_02c8cdea","line":1046,"updated":"2021-09-11 22:07:17.000000000","message":"add space around \u0027-\u0027","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":1043,"context_line":"\telse {"},{"line_number":1044,"context_line":"\t\tpchar \u003d strchr(CMD_ARGV[0], \u0027:\u0027);"},{"line_number":1045,"context_line":"\t\t*pchar \u003d \u0027\\0\u0027;"},{"line_number":1046,"context_line":"\t\tstrncpy(vdc.server_name, CMD_ARGV[0], sizeof(vdc.server_name)-1);"},{"line_number":1047,"context_line":"\t\tvdc.server_port \u003d atoi(++pchar);"},{"line_number":1048,"context_line":"\t\trc \u003d ERROR_OK;"},{"line_number":1049,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"1a4b763a_8c17471e","line":1046,"in_reply_to":"da1c7c4c_02c8cdea","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":1140,"context_line":""},{"line_number":1141,"context_line":"COMMAND_HANDLER(vdebug_register_target)"},{"line_number":1142,"context_line":"{"},{"line_number":1143,"context_line":"\tif (vdc.targ !\u003d NULL)"},{"line_number":1144,"context_line":"\t\tLOG_WARNING(\"target already registetred, ignoring\");"},{"line_number":1145,"context_line":"\telse {"},{"line_number":1146,"context_line":"\t\tvdc.targ \u003d get_target_by_num(0);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"fb03e7d7_87ea002d","line":1143,"updated":"2021-09-11 22:07:17.000000000","message":"No NULL comparison. Use\nif (vdc.targ) {","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":1140,"context_line":""},{"line_number":1141,"context_line":"COMMAND_HANDLER(vdebug_register_target)"},{"line_number":1142,"context_line":"{"},{"line_number":1143,"context_line":"\tif (vdc.targ !\u003d NULL)"},{"line_number":1144,"context_line":"\t\tLOG_WARNING(\"target already registetred, ignoring\");"},{"line_number":1145,"context_line":"\telse {"},{"line_number":1146,"context_line":"\t\tvdc.targ \u003d get_target_by_num(0);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"315ce63b_090b5a31","line":1143,"in_reply_to":"fb03e7d7_87ea002d","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":1141,"context_line":"COMMAND_HANDLER(vdebug_register_target)"},{"line_number":1142,"context_line":"{"},{"line_number":1143,"context_line":"\tif (vdc.targ !\u003d NULL)"},{"line_number":1144,"context_line":"\t\tLOG_WARNING(\"target already registetred, ignoring\");"},{"line_number":1145,"context_line":"\telse {"},{"line_number":1146,"context_line":"\t\tvdc.targ \u003d get_target_by_num(0);"},{"line_number":1147,"context_line":"\t\tif ((vdc.targ !\u003d NULL) \u0026\u0026 (vdc.targ-\u003etype !\u003d NULL)) {"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"6355d89b_cace3c05","line":1144,"updated":"2021-09-11 22:07:17.000000000","message":"typeo! s/registetred/registred/","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":1141,"context_line":"COMMAND_HANDLER(vdebug_register_target)"},{"line_number":1142,"context_line":"{"},{"line_number":1143,"context_line":"\tif (vdc.targ !\u003d NULL)"},{"line_number":1144,"context_line":"\t\tLOG_WARNING(\"target already registetred, ignoring\");"},{"line_number":1145,"context_line":"\telse {"},{"line_number":1146,"context_line":"\t\tvdc.targ \u003d get_target_by_num(0);"},{"line_number":1147,"context_line":"\t\tif ((vdc.targ !\u003d NULL) \u0026\u0026 (vdc.targ-\u003etype !\u003d NULL)) {"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"dcc42874_acfd0b41","line":1144,"in_reply_to":"6355d89b_cace3c05","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":1142,"context_line":"{"},{"line_number":1143,"context_line":"\tif (vdc.targ !\u003d NULL)"},{"line_number":1144,"context_line":"\t\tLOG_WARNING(\"target already registetred, ignoring\");"},{"line_number":1145,"context_line":"\telse {"},{"line_number":1146,"context_line":"\t\tvdc.targ \u003d get_target_by_num(0);"},{"line_number":1147,"context_line":"\t\tif ((vdc.targ !\u003d NULL) \u0026\u0026 (vdc.targ-\u003etype !\u003d NULL)) {"},{"line_number":1148,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"339aafcf_69f1b01e","line":1145,"updated":"2021-09-11 22:07:17.000000000","message":"balance } else {","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":1142,"context_line":"{"},{"line_number":1143,"context_line":"\tif (vdc.targ !\u003d NULL)"},{"line_number":1144,"context_line":"\t\tLOG_WARNING(\"target already registetred, ignoring\");"},{"line_number":1145,"context_line":"\telse {"},{"line_number":1146,"context_line":"\t\tvdc.targ \u003d get_target_by_num(0);"},{"line_number":1147,"context_line":"\t\tif ((vdc.targ !\u003d NULL) \u0026\u0026 (vdc.targ-\u003etype !\u003d NULL)) {"},{"line_number":1148,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"a23e4ed7_6247280a","line":1145,"in_reply_to":"339aafcf_69f1b01e","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":1144,"context_line":"\t\tLOG_WARNING(\"target already registetred, ignoring\");"},{"line_number":1145,"context_line":"\telse {"},{"line_number":1146,"context_line":"\t\tvdc.targ \u003d get_target_by_num(0);"},{"line_number":1147,"context_line":"\t\tif ((vdc.targ !\u003d NULL) \u0026\u0026 (vdc.targ-\u003etype !\u003d NULL)) {"},{"line_number":1148,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"},{"line_number":1149,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"},{"line_number":1150,"context_line":"\t\t\tLOG_INFO(\"%s: %u target memories registered\", target_type_name(vdc.targ), vdc.mem_ndx);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"3870fe7f_8e54ffa4","line":1147,"updated":"2021-09-11 22:07:17.000000000","message":"No NULL comparison:\nif (vdc.targ \u0026\u0026 vdc.targ-\u003etype) {","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":1144,"context_line":"\t\tLOG_WARNING(\"target already registetred, ignoring\");"},{"line_number":1145,"context_line":"\telse {"},{"line_number":1146,"context_line":"\t\tvdc.targ \u003d get_target_by_num(0);"},{"line_number":1147,"context_line":"\t\tif ((vdc.targ !\u003d NULL) \u0026\u0026 (vdc.targ-\u003etype !\u003d NULL)) {"},{"line_number":1148,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"},{"line_number":1149,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"},{"line_number":1150,"context_line":"\t\t\tLOG_INFO(\"%s: %u target memories registered\", target_type_name(vdc.targ), vdc.mem_ndx);"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"52218ea1_8058332a","line":1147,"in_reply_to":"3870fe7f_8e54ffa4","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6edc06785c272e3e94c557982dea50b4f08a2982","unresolved":true,"context_lines":[{"line_number":1148,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"},{"line_number":1149,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"},{"line_number":1150,"context_line":"\t\t\tLOG_INFO(\"%s: %u target memories registered\", target_type_name(vdc.targ), vdc.mem_ndx);"},{"line_number":1151,"context_line":"\t\t} else"},{"line_number":1152,"context_line":"\t\t\tLOG_ERROR(\"registering target failed, NULL target\");"},{"line_number":1153,"context_line":"\t}"},{"line_number":1154,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":10,"id":"081d5d30_4442acf8","line":1151,"updated":"2021-09-11 22:07:17.000000000","message":"balance } else {","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":1148,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"},{"line_number":1149,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"},{"line_number":1150,"context_line":"\t\t\tLOG_INFO(\"%s: %u target memories registered\", target_type_name(vdc.targ), vdc.mem_ndx);"},{"line_number":1151,"context_line":"\t\t} else"},{"line_number":1152,"context_line":"\t\t\tLOG_ERROR(\"registering target failed, NULL target\");"},{"line_number":1153,"context_line":"\t}"},{"line_number":1154,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":10,"id":"dd22f786_b4ecdce4","line":1151,"in_reply_to":"081d5d30_4442acf8","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":215,"context_line":"\tuint32_t mem_size[VD_MAX_MEMORIES];"},{"line_number":216,"context_line":"\tuint32_t mem_width[VD_MAX_MEMORIES];"},{"line_number":217,"context_line":"\tuint32_t mem_depth[VD_MAX_MEMORIES];"},{"line_number":218,"context_line":"\tuint32_t server_port;"},{"line_number":219,"context_line":"\tuint32_t poll_cycles;"},{"line_number":220,"context_line":"\tuint32_t poll_min;"},{"line_number":221,"context_line":"\tuint32_t poll_max;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"954d51b5_b4031bdb","line":218,"updated":"2021-09-18 13:02:26.000000000","message":"I see an extensive use of \u003cstdint.h\u003e types even when not required.\nCoding style say:\nuse native types (int or unsigned int) if the type is not important.\nif size matters, use the types from \u003cstdint.h\u003e or \u003cinttypes.h\u003e\nserver_port is an IP port, that fits in \u0027unsigned short\u0027. Unsigned int would be ok too.\nBy using uint32_t you are also abusing at line 288, 801, 824, 842, ... of a %d to print it, while should be used PRIu32.\nI would suggest you switch to unsigned short, including the second parameter of socket_open()\nWhat about the other values in this struct?","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"973f318d74ea45e4cce277d4aa25f515636f2198","unresolved":false,"context_lines":[{"line_number":215,"context_line":"\tuint32_t mem_size[VD_MAX_MEMORIES];"},{"line_number":216,"context_line":"\tuint32_t mem_width[VD_MAX_MEMORIES];"},{"line_number":217,"context_line":"\tuint32_t mem_depth[VD_MAX_MEMORIES];"},{"line_number":218,"context_line":"\tuint32_t server_port;"},{"line_number":219,"context_line":"\tuint32_t poll_cycles;"},{"line_number":220,"context_line":"\tuint32_t poll_min;"},{"line_number":221,"context_line":"\tuint32_t poll_max;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"2c9d0959_267b63e3","line":218,"in_reply_to":"43345864_29f1ea28","updated":"2021-11-04 08:50:15.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":true,"context_lines":[{"line_number":215,"context_line":"\tuint32_t mem_size[VD_MAX_MEMORIES];"},{"line_number":216,"context_line":"\tuint32_t mem_width[VD_MAX_MEMORIES];"},{"line_number":217,"context_line":"\tuint32_t mem_depth[VD_MAX_MEMORIES];"},{"line_number":218,"context_line":"\tuint32_t server_port;"},{"line_number":219,"context_line":"\tuint32_t poll_cycles;"},{"line_number":220,"context_line":"\tuint32_t poll_min;"},{"line_number":221,"context_line":"\tuint32_t poll_max;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"43345864_29f1ea28","line":218,"in_reply_to":"954d51b5_b4031bdb","updated":"2021-10-07 15:25:41.000000000","message":"I missed this coding style recommendation and it is the first time that it has been brought up. Yes, you can see the stdint types all over the code, because its been our preferred type over standard types. Yes, they all can be changed to unsigned int, but this would result in the need to change fucntion parameters, which would bloat the lines over the limit. I\u0027d like to avoid that, if possible.   \nYes, server_port should be 16b,","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":304,"context_line":"static int socket_receive(int hsock, struct vd_shm *pmem)"},{"line_number":305,"context_line":"{"},{"line_number":306,"context_line":"\tint rc;"},{"line_number":307,"context_line":"\tuint16_t dreceived \u003d 0;"},{"line_number":308,"context_line":"\tuint16_t offset \u003d (uint8_t *)\u0026pmem-\u003erid - \u0026pmem-\u003ecmd;"},{"line_number":309,"context_line":"\tuint16_t to_receive \u003d VD_SHEADER_LEN + pmem-\u003erbytes;"},{"line_number":310,"context_line":"\tchar *pb \u003d (char *)pmem;"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"\tdo {"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"4683b9cf_846f1fcc","line":309,"range":{"start_line":307,"start_character":1,"end_line":309,"end_character":9},"updated":"2021-09-18 13:02:26.000000000","message":"none of these is required to be uint16_t. Can be either unsigned int, int, size_t, ssize_t.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":304,"context_line":"static int socket_receive(int hsock, struct vd_shm *pmem)"},{"line_number":305,"context_line":"{"},{"line_number":306,"context_line":"\tint rc;"},{"line_number":307,"context_line":"\tuint16_t dreceived \u003d 0;"},{"line_number":308,"context_line":"\tuint16_t offset \u003d (uint8_t *)\u0026pmem-\u003erid - \u0026pmem-\u003ecmd;"},{"line_number":309,"context_line":"\tuint16_t to_receive \u003d VD_SHEADER_LEN + pmem-\u003erbytes;"},{"line_number":310,"context_line":"\tchar *pb \u003d (char *)pmem;"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"\tdo {"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"aa15c266_d3f9653c","line":309,"range":{"start_line":307,"start_character":1,"end_line":309,"end_character":9},"in_reply_to":"4683b9cf_846f1fcc","updated":"2021-10-07 15:25:41.000000000","message":"These values are uint16_t, because the transfer size are limited by the max buffer size. They can be changed to int or unsigned int. The size_t can be of different types and can generate warnings when formatting on different platforms.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":317,"context_line":"\t\t}"},{"line_number":318,"context_line":"\t\tto_receive -\u003d rc;"},{"line_number":319,"context_line":"\t\toffset +\u003d rc;"},{"line_number":320,"context_line":"\t\tLOG_DEBUG_IO(\"socket_receive: received %u, to receive %u\", rc, to_receive);"},{"line_number":321,"context_line":"\t\tdreceived +\u003d rc;"},{"line_number":322,"context_line":"\t} while (to_receive);"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"8abb0d19_9294a138","line":320,"updated":"2021-09-18 13:02:26.000000000","message":"\u0027rc\u0027 is of type int; use %d\nif not changed, \u0027to_receive\u0027 is uint16_t; use PRIu16","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":317,"context_line":"\t\t}"},{"line_number":318,"context_line":"\t\tto_receive -\u003d rc;"},{"line_number":319,"context_line":"\t\toffset +\u003d rc;"},{"line_number":320,"context_line":"\t\tLOG_DEBUG_IO(\"socket_receive: received %u, to receive %u\", rc, to_receive);"},{"line_number":321,"context_line":"\t\tdreceived +\u003d rc;"},{"line_number":322,"context_line":"\t} while (to_receive);"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"078293de_4ec446a8","line":320,"in_reply_to":"8abb0d19_9294a138","updated":"2021-10-07 15:25:41.000000000","message":"Good point, rc should not be used here.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":330,"context_line":"\tif (rc \u003c\u003d 0)"},{"line_number":331,"context_line":"\t\tLOG_WARNING(\"socket_send: send failed, error %d\", socket_error());"},{"line_number":332,"context_line":"\telse"},{"line_number":333,"context_line":"\t\tLOG_DEBUG_IO(\"socket_send: sent %u, to send %u\", rc, 0);"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"\treturn rc;"},{"line_number":336,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"7169bebb_9b84484f","line":333,"updated":"2021-09-18 13:02:26.000000000","message":"\u0027rc\u0027 is int, use %d\nWhy pass constant zero? can be moved in the string?","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":330,"context_line":"\tif (rc \u003c\u003d 0)"},{"line_number":331,"context_line":"\t\tLOG_WARNING(\"socket_send: send failed, error %d\", socket_error());"},{"line_number":332,"context_line":"\telse"},{"line_number":333,"context_line":"\t\tLOG_DEBUG_IO(\"socket_send: sent %u, to send %u\", rc, 0);"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"\treturn rc;"},{"line_number":336,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"165c2786_f257f04f","line":333,"in_reply_to":"7169bebb_9b84484f","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":338,"context_line":"static uint32_t wait_server(int hsock, struct vd_shm *pmem)"},{"line_number":339,"context_line":"{"},{"line_number":340,"context_line":"\tint rc;"},{"line_number":341,"context_line":"\tint st \u003d socket_send(hsock, pmem);"},{"line_number":342,"context_line":"\tint rd \u003d socket_receive(hsock, pmem);"},{"line_number":343,"context_line":"\tif (!hsock) {"},{"line_number":344,"context_line":"\t\trc \u003d VD_ERR_SOC_OPEN;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"a3e27914_d0bae5ff","line":341,"updated":"2021-09-18 13:02:26.000000000","message":"inside socket_send() and socket_receive() you do not test if hsock is valid!\nBut you check it below; too late!\nDeconstruct the long if/then/else below and put before this call:\nif (!hsock)\nreturn VD_ERR_SOC_OPEN;","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":338,"context_line":"static uint32_t wait_server(int hsock, struct vd_shm *pmem)"},{"line_number":339,"context_line":"{"},{"line_number":340,"context_line":"\tint rc;"},{"line_number":341,"context_line":"\tint st \u003d socket_send(hsock, pmem);"},{"line_number":342,"context_line":"\tint rd \u003d socket_receive(hsock, pmem);"},{"line_number":343,"context_line":"\tif (!hsock) {"},{"line_number":344,"context_line":"\t\trc \u003d VD_ERR_SOC_OPEN;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"ea5b6158_a88ed6b6","line":341,"in_reply_to":"a3e27914_d0bae5ff","updated":"2021-10-07 15:25:41.000000000","message":"I do not test hsock in these functions, because the underlying send/recv return \u003c0 and set errno. This structure however is a result of a rewrite to avoid the assignment in the if() clause, yes it is somewhat clumsy and could be improved.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"522f4a49a8b491bd0ad7f8eddd349eec8269dc09","unresolved":false,"context_lines":[{"line_number":338,"context_line":"static uint32_t wait_server(int hsock, struct vd_shm *pmem)"},{"line_number":339,"context_line":"{"},{"line_number":340,"context_line":"\tint rc;"},{"line_number":341,"context_line":"\tint st \u003d socket_send(hsock, pmem);"},{"line_number":342,"context_line":"\tint rd \u003d socket_receive(hsock, pmem);"},{"line_number":343,"context_line":"\tif (!hsock) {"},{"line_number":344,"context_line":"\t\trc \u003d VD_ERR_SOC_OPEN;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"089786b8_79d2a463","line":341,"in_reply_to":"ea5b6158_a88ed6b6","updated":"2021-10-12 09:30:57.000000000","message":"Do you need send/recv to fail and set errno in case of hsock invalid? Can the test on hsock be moved as first line of this function so send/recv is not called?","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":347,"context_line":"\t} else if (rd  \u003c\u003d 0) {"},{"line_number":348,"context_line":"\t\trc \u003d VD_ERR_SOC_RECV;"},{"line_number":349,"context_line":"\t} else {"},{"line_number":350,"context_line":"\t\trc \u003d pmem-\u003estatus;"},{"line_number":351,"context_line":"\t\tLOG_DEBUG_IO(\"wait_server: cmd %02hx done, sent %d, rcvd %d, status %d\","},{"line_number":352,"context_line":"\t\t\t\t\tpmem-\u003ecmd, st, rd, rc);"},{"line_number":353,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"f772d5fa_ef631c74","line":350,"updated":"2021-09-18 13:02:26.000000000","message":"and go ahead deconstructing:\nif (st \u003c\u003d 0)\nreturn VD_ERR_SOC_SEND;\nif (rd \u003c\u003d 0)\nreturn VD_ERR_SOC_RECV;\nand remove the last \u0027else\u0027\nHere I expect it is your will to run both socket_send() and socket_receive() and the check the two returned values. If not, interleave call and test of returned value.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":347,"context_line":"\t} else if (rd  \u003c\u003d 0) {"},{"line_number":348,"context_line":"\t\trc \u003d VD_ERR_SOC_RECV;"},{"line_number":349,"context_line":"\t} else {"},{"line_number":350,"context_line":"\t\trc \u003d pmem-\u003estatus;"},{"line_number":351,"context_line":"\t\tLOG_DEBUG_IO(\"wait_server: cmd %02hx done, sent %d, rcvd %d, status %d\","},{"line_number":352,"context_line":"\t\t\t\t\tpmem-\u003ecmd, st, rd, rc);"},{"line_number":353,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"52f6070c_399a120d","line":350,"in_reply_to":"f772d5fa_ef631c74","updated":"2021-10-07 15:25:41.000000000","message":"Yes, I want to always call receive after the send.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":348,"context_line":"\t\trc \u003d VD_ERR_SOC_RECV;"},{"line_number":349,"context_line":"\t} else {"},{"line_number":350,"context_line":"\t\trc \u003d pmem-\u003estatus;"},{"line_number":351,"context_line":"\t\tLOG_DEBUG_IO(\"wait_server: cmd %02hx done, sent %d, rcvd %d, status %d\","},{"line_number":352,"context_line":"\t\t\t\t\tpmem-\u003ecmd, st, rd, rc);"},{"line_number":353,"context_line":"\t}"},{"line_number":354,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"45f6817c_3170d89a","line":351,"updated":"2021-09-18 13:02:26.000000000","message":"pmem-\u003ecmd is uint8_t; use PRIx8","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":348,"context_line":"\t\trc \u003d VD_ERR_SOC_RECV;"},{"line_number":349,"context_line":"\t} else {"},{"line_number":350,"context_line":"\t\trc \u003d pmem-\u003estatus;"},{"line_number":351,"context_line":"\t\tLOG_DEBUG_IO(\"wait_server: cmd %02hx done, sent %d, rcvd %d, status %d\","},{"line_number":352,"context_line":"\t\t\t\t\tpmem-\u003ecmd, st, rd, rc);"},{"line_number":353,"context_line":"\t}"},{"line_number":354,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"296d825f_59b505e1","line":351,"in_reply_to":"45f6817c_3170d89a","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":357,"context_line":""},{"line_number":358,"context_line":"int exec_jtag_queue(int hsock, struct vd_shm *pm, uint32_t count)"},{"line_number":359,"context_line":"{"},{"line_number":360,"context_line":"\tuint8_t  num_pre, num_post, tdi, tms;"},{"line_number":361,"context_line":"\tuint16_t num, anum, bytes, hwords, words, j;"},{"line_number":362,"context_line":"\tuint16_t req, waddr, rwords;"},{"line_number":363,"context_line":"\tint64_t ts, te;"},{"line_number":364,"context_line":"\tuint8_t *tdo;"},{"line_number":365,"context_line":"\tint rc;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"a0b51fa7_72531ae1","line":362,"range":{"start_line":360,"start_character":1,"end_line":362,"end_character":28},"updated":"2021-09-18 13:02:26.000000000","message":"I do not see reason for using uintX_t for any of the above, including the parameter \u0027count\u0027.\nThis rises questions in the comparison between uint16_t and uint32_t.\nCan all become unsigned int?","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":357,"context_line":""},{"line_number":358,"context_line":"int exec_jtag_queue(int hsock, struct vd_shm *pm, uint32_t count)"},{"line_number":359,"context_line":"{"},{"line_number":360,"context_line":"\tuint8_t  num_pre, num_post, tdi, tms;"},{"line_number":361,"context_line":"\tuint16_t num, anum, bytes, hwords, words, j;"},{"line_number":362,"context_line":"\tuint16_t req, waddr, rwords;"},{"line_number":363,"context_line":"\tint64_t ts, te;"},{"line_number":364,"context_line":"\tuint8_t *tdo;"},{"line_number":365,"context_line":"\tint rc;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"ebb1c9b5_b3845a30","line":362,"range":{"start_line":360,"start_character":1,"end_line":362,"end_character":28},"in_reply_to":"a0b51fa7_72531ae1","updated":"2021-10-07 15:25:41.000000000","message":"Yes, unsigned it is fine.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":384,"context_line":"\t\telse"},{"line_number":385,"context_line":"\t\t\tnum \u003d anum - num_pre;"},{"line_number":386,"context_line":"\t\tbytes \u003d (num + 7) / 8;"},{"line_number":387,"context_line":"\t\tvdc.trans_last \u003d (uint32_t)(req + 1) \u003c count ? 0 : 1;"},{"line_number":388,"context_line":"\t\tvdc.trans_first \u003d waddr ? 0 : 1;"},{"line_number":389,"context_line":"\t\tif (hdr-\u003ecmd \u003d\u003d 3) { /* read */"},{"line_number":390,"context_line":"\t\t\ttdo \u003d vdc.tdo;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"988c905b_4803cd4c","line":387,"updated":"2021-09-18 13:02:26.000000000","message":"cast not needed","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":384,"context_line":"\t\telse"},{"line_number":385,"context_line":"\t\t\tnum \u003d anum - num_pre;"},{"line_number":386,"context_line":"\t\tbytes \u003d (num + 7) / 8;"},{"line_number":387,"context_line":"\t\tvdc.trans_last \u003d (uint32_t)(req + 1) \u003c count ? 0 : 1;"},{"line_number":388,"context_line":"\t\tvdc.trans_first \u003d waddr ? 0 : 1;"},{"line_number":389,"context_line":"\t\tif (hdr-\u003ecmd \u003d\u003d 3) { /* read */"},{"line_number":390,"context_line":"\t\t\ttdo \u003d vdc.tdo;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"8736d70f_83bc7b25","line":387,"in_reply_to":"988c905b_4803cd4c","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":412,"context_line":"\t}"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"\tte \u003d timeval_ms();"},{"line_number":415,"context_line":"\tvdc.targ_time +\u003d (uint32_t)(te - ts);"},{"line_number":416,"context_line":"\tpm-\u003eoffseth \u003d 0;     /* reset buffer write address */"},{"line_number":417,"context_line":"\tpm-\u003eoffset \u003d 0;"},{"line_number":418,"context_line":"\tpm-\u003erwords \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"f85d998d_2e7b5863","line":415,"updated":"2021-09-18 13:02:26.000000000","message":"cast not needed. targ_time is uint32_t, so cast will not save you in case of overflow!","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"973f318d74ea45e4cce277d4aa25f515636f2198","unresolved":false,"context_lines":[{"line_number":412,"context_line":"\t}"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"\tte \u003d timeval_ms();"},{"line_number":415,"context_line":"\tvdc.targ_time +\u003d (uint32_t)(te - ts);"},{"line_number":416,"context_line":"\tpm-\u003eoffseth \u003d 0;     /* reset buffer write address */"},{"line_number":417,"context_line":"\tpm-\u003eoffset \u003d 0;"},{"line_number":418,"context_line":"\tpm-\u003erwords \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"6f957837_7cf9a5df","line":415,"in_reply_to":"a3c8b447_192b3a0a","updated":"2021-11-04 08:50:15.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":true,"context_lines":[{"line_number":412,"context_line":"\t}"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"\tte \u003d timeval_ms();"},{"line_number":415,"context_line":"\tvdc.targ_time +\u003d (uint32_t)(te - ts);"},{"line_number":416,"context_line":"\tpm-\u003eoffseth \u003d 0;     /* reset buffer write address */"},{"line_number":417,"context_line":"\tpm-\u003eoffset \u003d 0;"},{"line_number":418,"context_line":"\tpm-\u003erwords \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"a3c8b447_192b3a0a","line":415,"in_reply_to":"f85d998d_2e7b5863","updated":"2021-10-07 15:25:41.000000000","message":"Yes, but here this explicit cast indicates the precision lost in the conversion. 64b values for target time are not practical.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":427,"context_line":"\tint rc \u003d VD_ERR_NOT_OPEN;"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_OPEN;"},{"line_number":430,"context_line":"\tpm-\u003ewid \u003d (uint16_t)VD_VERSION;    /* client version */"},{"line_number":431,"context_line":"\tpm-\u003ewbytes \u003d 0;"},{"line_number":432,"context_line":"\tpm-\u003erbytes \u003d 0;"},{"line_number":433,"context_line":"\tpm-\u003ewwords \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"5afaf21d_6a9a3404","line":430,"updated":"2021-09-18 13:02:26.000000000","message":"no need for cast","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":427,"context_line":"\tint rc \u003d VD_ERR_NOT_OPEN;"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_OPEN;"},{"line_number":430,"context_line":"\tpm-\u003ewid \u003d (uint16_t)VD_VERSION;    /* client version */"},{"line_number":431,"context_line":"\tpm-\u003ewbytes \u003d 0;"},{"line_number":432,"context_line":"\tpm-\u003erbytes \u003d 0;"},{"line_number":433,"context_line":"\tpm-\u003ewwords \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"7155affe_69a6ff6c","line":430,"in_reply_to":"5afaf21d_6a9a3404","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":442,"context_line":"\t\trc \u003d VD_ERR_VERSION;"},{"line_number":443,"context_line":"\t} else {"},{"line_number":444,"context_line":"\t\tpm-\u003ecmd \u003d VD_CMD_CONNECT;"},{"line_number":445,"context_line":"\t\tpm-\u003etype \u003d (uint8_t)type;      /* BFM type to connect to, here JTAG */"},{"line_number":446,"context_line":"\t\tpm-\u003erwdata \u003d sig_mask | VD_SIG_BUF | (VD_SIG_BUF \u003c\u003c 16);"},{"line_number":447,"context_line":"\t\tpm-\u003ewbytes \u003d (uint16_t)strlen(path) + 1;"},{"line_number":448,"context_line":"\t\tpm-\u003erbytes \u003d 12;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"5ff8bda2_ea4c474d","line":445,"updated":"2021-09-18 13:02:26.000000000","message":"no need for cast. Actually the function parameter \u0027type\u0027 should be uint8_t since you use it for this assignment only.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":442,"context_line":"\t\trc \u003d VD_ERR_VERSION;"},{"line_number":443,"context_line":"\t} else {"},{"line_number":444,"context_line":"\t\tpm-\u003ecmd \u003d VD_CMD_CONNECT;"},{"line_number":445,"context_line":"\t\tpm-\u003etype \u003d (uint8_t)type;      /* BFM type to connect to, here JTAG */"},{"line_number":446,"context_line":"\t\tpm-\u003erwdata \u003d sig_mask | VD_SIG_BUF | (VD_SIG_BUF \u003c\u003c 16);"},{"line_number":447,"context_line":"\t\tpm-\u003ewbytes \u003d (uint16_t)strlen(path) + 1;"},{"line_number":448,"context_line":"\t\tpm-\u003erbytes \u003d 12;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"77f92306_4cc2f216","line":445,"in_reply_to":"5ff8bda2_ea4c474d","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":444,"context_line":"\t\tpm-\u003ecmd \u003d VD_CMD_CONNECT;"},{"line_number":445,"context_line":"\t\tpm-\u003etype \u003d (uint8_t)type;      /* BFM type to connect to, here JTAG */"},{"line_number":446,"context_line":"\t\tpm-\u003erwdata \u003d sig_mask | VD_SIG_BUF | (VD_SIG_BUF \u003c\u003c 16);"},{"line_number":447,"context_line":"\t\tpm-\u003ewbytes \u003d (uint16_t)strlen(path) + 1;"},{"line_number":448,"context_line":"\t\tpm-\u003erbytes \u003d 12;"},{"line_number":449,"context_line":"\t\tpm-\u003ewid \u003d 0;               /* reset wid for transaction ID */"},{"line_number":450,"context_line":"\t\tpm-\u003ewwords \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"77690860_352727b3","line":447,"updated":"2021-09-18 13:02:26.000000000","message":"no need for cast","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":444,"context_line":"\t\tpm-\u003ecmd \u003d VD_CMD_CONNECT;"},{"line_number":445,"context_line":"\t\tpm-\u003etype \u003d (uint8_t)type;      /* BFM type to connect to, here JTAG */"},{"line_number":446,"context_line":"\t\tpm-\u003erwdata \u003d sig_mask | VD_SIG_BUF | (VD_SIG_BUF \u003c\u003c 16);"},{"line_number":447,"context_line":"\t\tpm-\u003ewbytes \u003d (uint16_t)strlen(path) + 1;"},{"line_number":448,"context_line":"\t\tpm-\u003erbytes \u003d 12;"},{"line_number":449,"context_line":"\t\tpm-\u003ewid \u003d 0;               /* reset wid for transaction ID */"},{"line_number":450,"context_line":"\t\tpm-\u003ewwords \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"e23a3f20_c072ec1e","line":447,"in_reply_to":"77690860_352727b3","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":451,"context_line":"\t\tpm-\u003erwords \u003d 0;"},{"line_number":452,"context_line":"\t\tmemcpy(pm-\u003ewd8, path, pm-\u003ewbytes + 1);"},{"line_number":453,"context_line":"\t\trc \u003d wait_server(hsock, pm);"},{"line_number":454,"context_line":"\t\tvdc.sig_read \u003d (uint16_t)(pm-\u003erwdata \u003e\u003e 16);    /* signal read mask */"},{"line_number":455,"context_line":"\t\tvdc.sig_write \u003d (uint16_t)pm-\u003erwdata;   /* signal write mask */"},{"line_number":456,"context_line":"\t\tvdc.bfm_period \u003d period_ps;"},{"line_number":457,"context_line":"\t\tvdc.buf_width \u003d pm-\u003erd32[0] / 8;/* access width in bytes */"},{"line_number":458,"context_line":"\t\tvdc.addr_bits \u003d pm-\u003erd32[2];    /* supported address bits */"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"af6a2297_801fb78a","line":455,"range":{"start_line":454,"start_character":17,"end_line":455,"end_character":28},"updated":"2021-09-18 13:02:26.000000000","message":"no need for cast","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":451,"context_line":"\t\tpm-\u003erwords \u003d 0;"},{"line_number":452,"context_line":"\t\tmemcpy(pm-\u003ewd8, path, pm-\u003ewbytes + 1);"},{"line_number":453,"context_line":"\t\trc \u003d wait_server(hsock, pm);"},{"line_number":454,"context_line":"\t\tvdc.sig_read \u003d (uint16_t)(pm-\u003erwdata \u003e\u003e 16);    /* signal read mask */"},{"line_number":455,"context_line":"\t\tvdc.sig_write \u003d (uint16_t)pm-\u003erwdata;   /* signal write mask */"},{"line_number":456,"context_line":"\t\tvdc.bfm_period \u003d period_ps;"},{"line_number":457,"context_line":"\t\tvdc.buf_width \u003d pm-\u003erd32[0] / 8;/* access width in bytes */"},{"line_number":458,"context_line":"\t\tvdc.addr_bits \u003d pm-\u003erd32[2];    /* supported address bits */"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"083dcae1_7521ef58","line":455,"range":{"start_line":454,"start_character":17,"end_line":455,"end_character":28},"in_reply_to":"af6a2297_801fb78a","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":473,"context_line":"static int vdebug_close(int hsock, struct vd_shm *pm, uint32_t type)"},{"line_number":474,"context_line":"{"},{"line_number":475,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_DISCONNECT;"},{"line_number":476,"context_line":"\tpm-\u003etype \u003d (uint8_t)type;          /* BFM type, here JTAG */"},{"line_number":477,"context_line":"\tpm-\u003ewbytes \u003d 0;"},{"line_number":478,"context_line":"\tpm-\u003erbytes \u003d 0;"},{"line_number":479,"context_line":"\tpm-\u003ewwords \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"321787ee_dfd078f5","line":476,"updated":"2021-09-18 13:02:26.000000000","message":"no need for cast","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":473,"context_line":"static int vdebug_close(int hsock, struct vd_shm *pm, uint32_t type)"},{"line_number":474,"context_line":"{"},{"line_number":475,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_DISCONNECT;"},{"line_number":476,"context_line":"\tpm-\u003etype \u003d (uint8_t)type;          /* BFM type, here JTAG */"},{"line_number":477,"context_line":"\tpm-\u003ewbytes \u003d 0;"},{"line_number":478,"context_line":"\tpm-\u003erbytes \u003d 0;"},{"line_number":479,"context_line":"\tpm-\u003ewwords \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"ba7d6b8a_12142e51","line":476,"in_reply_to":"321787ee_dfd078f5","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":480,"context_line":"\tpm-\u003erwords \u003d 0;"},{"line_number":481,"context_line":"\twait_server(hsock, pm);"},{"line_number":482,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_CLOSE;"},{"line_number":483,"context_line":"\tpm-\u003ewid \u003d (uint16_t)VD_VERSION;    /* client version */"},{"line_number":484,"context_line":"\tpm-\u003ewbytes \u003d 0;"},{"line_number":485,"context_line":"\tpm-\u003erbytes \u003d 0;"},{"line_number":486,"context_line":"\tpm-\u003ewwords \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"a0f0861d_c3116bbe","line":483,"updated":"2021-09-18 13:02:26.000000000","message":"no need for cast","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":480,"context_line":"\tpm-\u003erwords \u003d 0;"},{"line_number":481,"context_line":"\twait_server(hsock, pm);"},{"line_number":482,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_CLOSE;"},{"line_number":483,"context_line":"\tpm-\u003ewid \u003d (uint16_t)VD_VERSION;    /* client version */"},{"line_number":484,"context_line":"\tpm-\u003ewbytes \u003d 0;"},{"line_number":485,"context_line":"\tpm-\u003erbytes \u003d 0;"},{"line_number":486,"context_line":"\tpm-\u003ewwords \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"259fdc86_9270c59d","line":483,"in_reply_to":"a0f0861d_c3116bbe","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":503,"context_line":"\t\trc \u003d wait_server(hsock, pm);"},{"line_number":504,"context_line":"\t}"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"\tif (rc) {"},{"line_number":507,"context_line":"\t\tLOG_ERROR(\"Error 0x%x waiting %d cycles\", rc, cycles);"},{"line_number":508,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":509,"context_line":"\t}"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"\tLOG_DEBUG(\"%d cycles\", cycles);"},{"line_number":512,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"3474f915_78081d6b","line":509,"range":{"start_line":506,"start_character":1,"end_line":509,"end_character":2},"updated":"2021-09-18 13:02:26.000000000","message":"this should be inside the above if(cycles){}","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":503,"context_line":"\t\trc \u003d wait_server(hsock, pm);"},{"line_number":504,"context_line":"\t}"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"\tif (rc) {"},{"line_number":507,"context_line":"\t\tLOG_ERROR(\"Error 0x%x waiting %d cycles\", rc, cycles);"},{"line_number":508,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":509,"context_line":"\t}"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"\tLOG_DEBUG(\"%d cycles\", cycles);"},{"line_number":512,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"1df8e65d_66b416a7","line":509,"range":{"start_line":506,"start_character":1,"end_line":509,"end_character":2},"in_reply_to":"3474f915_78081d6b","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":521,"context_line":"\tpm-\u003ewbytes \u003d 0;"},{"line_number":522,"context_line":"\tpm-\u003erbytes \u003d 0;"},{"line_number":523,"context_line":"\tpm-\u003erwdata \u003d (write_mask \u003c\u003c 16) | (value \u0026 0xffff); /* mask and value of signals to set */"},{"line_number":524,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":525,"context_line":"\tif (rc) {"},{"line_number":526,"context_line":"\t\tLOG_WARNING(\"Error 0x%x setting signals %04x\", rc, write_mask);"},{"line_number":527,"context_line":"\t\treturn ERROR_FAIL;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"8603a8ff_58583f52","line":524,"updated":"2021-09-18 13:02:26.000000000","message":"move here the definition:\nint rc \u003d wait...","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":521,"context_line":"\tpm-\u003ewbytes \u003d 0;"},{"line_number":522,"context_line":"\tpm-\u003erbytes \u003d 0;"},{"line_number":523,"context_line":"\tpm-\u003erwdata \u003d (write_mask \u003c\u003c 16) | (value \u0026 0xffff); /* mask and value of signals to set */"},{"line_number":524,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":525,"context_line":"\tif (rc) {"},{"line_number":526,"context_line":"\t\tLOG_WARNING(\"Error 0x%x setting signals %04x\", rc, write_mask);"},{"line_number":527,"context_line":"\t\treturn ERROR_FAIL;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"409c0eaa_7d39a1f7","line":524,"in_reply_to":"8603a8ff_58583f52","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":540,"context_line":"\tpm-\u003ewbytes \u003d 0;"},{"line_number":541,"context_line":"\tpm-\u003erbytes \u003d 0;"},{"line_number":542,"context_line":"\tpm-\u003erwdata \u003d value;  /* divider value */"},{"line_number":543,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":544,"context_line":"\tif (rc) {"},{"line_number":545,"context_line":"\t\tLOG_WARNING(\"Error 0x%x setting jtag_clock\", rc);"},{"line_number":546,"context_line":"\t\treturn ERROR_FAIL;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"96d0487e_9c6c5903","line":543,"updated":"2021-09-18 13:02:26.000000000","message":"move here the definition\nint rc \u003d ...","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":540,"context_line":"\tpm-\u003ewbytes \u003d 0;"},{"line_number":541,"context_line":"\tpm-\u003erbytes \u003d 0;"},{"line_number":542,"context_line":"\tpm-\u003erwdata \u003d value;  /* divider value */"},{"line_number":543,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":544,"context_line":"\tif (rc) {"},{"line_number":545,"context_line":"\t\tLOG_WARNING(\"Error 0x%x setting jtag_clock\", rc);"},{"line_number":546,"context_line":"\t\treturn ERROR_FAIL;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"3254dab3_5c49bb6b","line":543,"in_reply_to":"96d0487e_9c6c5903","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":563,"context_line":"\tstruct vd_jtag_hdr *hdr;"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_JTAGSHTAP;"},{"line_number":566,"context_line":"\tvdc.trans_last \u003d f_last || (vdc.trans_batch \u003d\u003d VD_BATCH_NO) || (tdo !\u003d NULL);"},{"line_number":567,"context_line":"\tif (vdc.trans_first)"},{"line_number":568,"context_line":"\t\twaddr \u003d 0;             /* reset buffer offset */"},{"line_number":569,"context_line":"\telse"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"a143a239_7db646b4","line":566,"updated":"2021-09-18 13:02:26.000000000","message":"no NULL comparison","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":563,"context_line":"\tstruct vd_jtag_hdr *hdr;"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_JTAGSHTAP;"},{"line_number":566,"context_line":"\tvdc.trans_last \u003d f_last || (vdc.trans_batch \u003d\u003d VD_BATCH_NO) || (tdo !\u003d NULL);"},{"line_number":567,"context_line":"\tif (vdc.trans_first)"},{"line_number":568,"context_line":"\t\twaddr \u003d 0;             /* reset buffer offset */"},{"line_number":569,"context_line":"\telse"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"fb62f5af_1193e744","line":566,"in_reply_to":"a143a239_7db646b4","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":657,"context_line":"\t\treturn ERROR_OK;"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_MEMOPEN;"},{"line_number":660,"context_line":"\tpm-\u003ewbytes \u003d (uint16_t)strlen(path) + 1;   /* includes terminating 0 */"},{"line_number":661,"context_line":"\tpm-\u003erbytes \u003d 8;"},{"line_number":662,"context_line":"\tpm-\u003ewwords \u003d 0;"},{"line_number":663,"context_line":"\tpm-\u003erwords \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"5e241ba0_788fa29f","line":660,"updated":"2021-09-18 13:02:26.000000000","message":"no need for cast","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":657,"context_line":"\t\treturn ERROR_OK;"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"\tpm-\u003ecmd \u003d VD_CMD_MEMOPEN;"},{"line_number":660,"context_line":"\tpm-\u003ewbytes \u003d (uint16_t)strlen(path) + 1;   /* includes terminating 0 */"},{"line_number":661,"context_line":"\tpm-\u003erbytes \u003d 8;"},{"line_number":662,"context_line":"\tpm-\u003ewwords \u003d 0;"},{"line_number":663,"context_line":"\tpm-\u003erwords \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"dec019c8_d40409fa","line":660,"in_reply_to":"5e241ba0_788fa29f","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":662,"context_line":"\tpm-\u003ewwords \u003d 0;"},{"line_number":663,"context_line":"\tpm-\u003erwords \u003d 0;"},{"line_number":664,"context_line":"\tmemcpy(pm-\u003ewd8, path, pm-\u003ewbytes);"},{"line_number":665,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":666,"context_line":"\tif (rc) {"},{"line_number":667,"context_line":"\t\tLOG_WARNING(\"Error 0x%x opening memory %s\", rc, path);"},{"line_number":668,"context_line":"\t} else if (ndx !\u003d pm-\u003erd16[1]) {"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"5e6fe6b3_693e0487","line":665,"updated":"2021-09-18 13:02:26.000000000","message":"int rc \u003d ...","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":662,"context_line":"\tpm-\u003ewwords \u003d 0;"},{"line_number":663,"context_line":"\tpm-\u003erwords \u003d 0;"},{"line_number":664,"context_line":"\tmemcpy(pm-\u003ewd8, path, pm-\u003ewbytes);"},{"line_number":665,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":666,"context_line":"\tif (rc) {"},{"line_number":667,"context_line":"\t\tLOG_WARNING(\"Error 0x%x opening memory %s\", rc, path);"},{"line_number":668,"context_line":"\t} else if (ndx !\u003d pm-\u003erd16[1]) {"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"92e206dc_8c6b88e0","line":665,"in_reply_to":"5e6fe6b3_693e0487","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":670,"context_line":"\t} else {"},{"line_number":671,"context_line":"\t\tvdc.mem_width[ndx] \u003d pm-\u003erd16[0] / 8;   /* memory width in bytes */"},{"line_number":672,"context_line":"\t\tvdc.mem_depth[ndx] \u003d pm-\u003erd32[1];       /* memory depth in words */"},{"line_number":673,"context_line":"\t\tLOG_DEBUG(\"%u: %s memory %xx%dB, buffer %dx%dB\", ndx, path,"},{"line_number":674,"context_line":"\t\t\tvdc.mem_depth[ndx], vdc.mem_width[ndx], VD_BUFFER_LEN / vdc.mem_width[ndx], vdc.mem_width[ndx]);"},{"line_number":675,"context_line":"\t}"},{"line_number":676,"context_line":""},{"line_number":677,"context_line":"\treturn ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"264b3a3c_3c31e689","line":674,"range":{"start_line":673,"start_character":2,"end_line":674,"end_character":99},"updated":"2021-09-18 13:02:26.000000000","message":"ndx is uint8_t, use PRIu8\nmem_depth, mem_width are uint32_t, use PRIu32 (no need for hexadecimal on mem_depth)","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":670,"context_line":"\t} else {"},{"line_number":671,"context_line":"\t\tvdc.mem_width[ndx] \u003d pm-\u003erd16[0] / 8;   /* memory width in bytes */"},{"line_number":672,"context_line":"\t\tvdc.mem_depth[ndx] \u003d pm-\u003erd32[1];       /* memory depth in words */"},{"line_number":673,"context_line":"\t\tLOG_DEBUG(\"%u: %s memory %xx%dB, buffer %dx%dB\", ndx, path,"},{"line_number":674,"context_line":"\t\t\tvdc.mem_depth[ndx], vdc.mem_width[ndx], VD_BUFFER_LEN / vdc.mem_width[ndx], vdc.mem_width[ndx]);"},{"line_number":675,"context_line":"\t}"},{"line_number":676,"context_line":""},{"line_number":677,"context_line":"\treturn ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"461aaa63_a8e3d080","line":674,"range":{"start_line":673,"start_character":2,"end_line":674,"end_character":99},"in_reply_to":"264b3a3c_3c31e689","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":700,"context_line":"\tpm-\u003ewwords \u003d (num + vdc.mem_width[ndx] - 1) / vdc.mem_width[ndx];"},{"line_number":701,"context_line":"\tpm-\u003erbytes \u003d 0;"},{"line_number":702,"context_line":"\tpm-\u003erwords \u003d 0;"},{"line_number":703,"context_line":"\tpm-\u003eoffset \u003d (uint32_t)(addr / vdc.mem_width[ndx]);"},{"line_number":704,"context_line":"\tpm-\u003eoffseth \u003d (uint16_t)((addr / vdc.mem_width[ndx]) \u003e\u003e 32);"},{"line_number":705,"context_line":"\tmemcpy(pm-\u003ewd8, data, num);"},{"line_number":706,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":707,"context_line":"\tif (rc)"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"1c1402ce_ff72690b","line":704,"range":{"start_line":703,"start_character":14,"end_line":704,"end_character":25},"updated":"2021-09-18 13:02:26.000000000","message":"no need for cast","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":true,"context_lines":[{"line_number":700,"context_line":"\tpm-\u003ewwords \u003d (num + vdc.mem_width[ndx] - 1) / vdc.mem_width[ndx];"},{"line_number":701,"context_line":"\tpm-\u003erbytes \u003d 0;"},{"line_number":702,"context_line":"\tpm-\u003erwords \u003d 0;"},{"line_number":703,"context_line":"\tpm-\u003eoffset \u003d (uint32_t)(addr / vdc.mem_width[ndx]);"},{"line_number":704,"context_line":"\tpm-\u003eoffseth \u003d (uint16_t)((addr / vdc.mem_width[ndx]) \u003e\u003e 32);"},{"line_number":705,"context_line":"\tmemcpy(pm-\u003ewd8, data, num);"},{"line_number":706,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":707,"context_line":"\tif (rc)"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"767b1a70_4044a9d9","line":704,"range":{"start_line":703,"start_character":14,"end_line":704,"end_character":25},"in_reply_to":"1c1402ce_ff72690b","updated":"2021-10-07 15:25:41.000000000","message":"I want to keep this explicit cast to show how the address is split into two parts in the structure that holds it.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"973f318d74ea45e4cce277d4aa25f515636f2198","unresolved":false,"context_lines":[{"line_number":700,"context_line":"\tpm-\u003ewwords \u003d (num + vdc.mem_width[ndx] - 1) / vdc.mem_width[ndx];"},{"line_number":701,"context_line":"\tpm-\u003erbytes \u003d 0;"},{"line_number":702,"context_line":"\tpm-\u003erwords \u003d 0;"},{"line_number":703,"context_line":"\tpm-\u003eoffset \u003d (uint32_t)(addr / vdc.mem_width[ndx]);"},{"line_number":704,"context_line":"\tpm-\u003eoffseth \u003d (uint16_t)((addr / vdc.mem_width[ndx]) \u003e\u003e 32);"},{"line_number":705,"context_line":"\tmemcpy(pm-\u003ewd8, data, num);"},{"line_number":706,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":707,"context_line":"\tif (rc)"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"9c2f91a3_029506a1","line":704,"range":{"start_line":703,"start_character":14,"end_line":704,"end_character":25},"in_reply_to":"767b1a70_4044a9d9","updated":"2021-11-04 08:50:15.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":703,"context_line":"\tpm-\u003eoffset \u003d (uint32_t)(addr / vdc.mem_width[ndx]);"},{"line_number":704,"context_line":"\tpm-\u003eoffseth \u003d (uint16_t)((addr / vdc.mem_width[ndx]) \u003e\u003e 32);"},{"line_number":705,"context_line":"\tmemcpy(pm-\u003ewd8, data, num);"},{"line_number":706,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":707,"context_line":"\tif (rc)"},{"line_number":708,"context_line":"\t\tLOG_WARNING(\"Error 0x%x writing %d bytes at %\" PRIx64, rc, num, addr);"},{"line_number":709,"context_line":"\telse"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"9d4be358_5c41c7c2","line":706,"updated":"2021-09-18 13:02:26.000000000","message":"int rc \u003d ...","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":703,"context_line":"\tpm-\u003eoffset \u003d (uint32_t)(addr / vdc.mem_width[ndx]);"},{"line_number":704,"context_line":"\tpm-\u003eoffseth \u003d (uint16_t)((addr / vdc.mem_width[ndx]) \u003e\u003e 32);"},{"line_number":705,"context_line":"\tmemcpy(pm-\u003ewd8, data, num);"},{"line_number":706,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":707,"context_line":"\tif (rc)"},{"line_number":708,"context_line":"\t\tLOG_WARNING(\"Error 0x%x writing %d bytes at %\" PRIx64, rc, num, addr);"},{"line_number":709,"context_line":"\telse"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"0a08a564_cec8c873","line":706,"in_reply_to":"9d4be358_5c41c7c2","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":724,"context_line":"{"},{"line_number":725,"context_line":"\tint64_t ts, te;"},{"line_number":726,"context_line":"\tuint32_t cmdtime \u003d 0;"},{"line_number":727,"context_line":"\tstruct target **t \u003d (struct target **)priv;"},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"\tif (*t \u0026\u0026 vdc.targ_state !\u003d (*t)-\u003estate) {"},{"line_number":730,"context_line":"\t\tvdc.targ_state \u003d (*t)-\u003estate;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"d7f0088f_54a8247b","line":727,"updated":"2021-09-18 13:02:26.000000000","message":"no need for cast","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":724,"context_line":"{"},{"line_number":725,"context_line":"\tint64_t ts, te;"},{"line_number":726,"context_line":"\tuint32_t cmdtime \u003d 0;"},{"line_number":727,"context_line":"\tstruct target **t \u003d (struct target **)priv;"},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"\tif (*t \u0026\u0026 vdc.targ_state !\u003d (*t)-\u003estate) {"},{"line_number":730,"context_line":"\t\tvdc.targ_state \u003d (*t)-\u003estate;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"8490963e_0ea9c272","line":727,"in_reply_to":"d7f0088f_54a8247b","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":735,"context_line":"\t\tts \u003d timeval_ms();"},{"line_number":736,"context_line":"\t\tvdebug_wait(vdc.hsocket, pbuf, vdc.poll_cycles);"},{"line_number":737,"context_line":"\t\tte \u003d timeval_ms();"},{"line_number":738,"context_line":"\t\tcmdtime \u003d (uint32_t)(te - ts);"},{"line_number":739,"context_line":"\t\tif (cmdtime \u003c ((vdc.poll_min + vdc.poll_max) / 3))"},{"line_number":740,"context_line":"\t\t\tvdc.poll_cycles *\u003d 2;"},{"line_number":741,"context_line":"\t\telse if (cmdtime \u003e ((vdc.poll_min + vdc.poll_max) / 2))"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"81f845fb_7581380c","line":738,"updated":"2021-09-18 13:02:26.000000000","message":"no need for cast. Maybe cmdtime can be changed to uint64_t or int64_t?","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"973f318d74ea45e4cce277d4aa25f515636f2198","unresolved":false,"context_lines":[{"line_number":735,"context_line":"\t\tts \u003d timeval_ms();"},{"line_number":736,"context_line":"\t\tvdebug_wait(vdc.hsocket, pbuf, vdc.poll_cycles);"},{"line_number":737,"context_line":"\t\tte \u003d timeval_ms();"},{"line_number":738,"context_line":"\t\tcmdtime \u003d (uint32_t)(te - ts);"},{"line_number":739,"context_line":"\t\tif (cmdtime \u003c ((vdc.poll_min + vdc.poll_max) / 3))"},{"line_number":740,"context_line":"\t\t\tvdc.poll_cycles *\u003d 2;"},{"line_number":741,"context_line":"\t\telse if (cmdtime \u003e ((vdc.poll_min + vdc.poll_max) / 2))"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"3e3c214e_db163c7b","line":738,"in_reply_to":"2bb89dfd_2a0dcf9c","updated":"2021-11-04 08:50:15.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":true,"context_lines":[{"line_number":735,"context_line":"\t\tts \u003d timeval_ms();"},{"line_number":736,"context_line":"\t\tvdebug_wait(vdc.hsocket, pbuf, vdc.poll_cycles);"},{"line_number":737,"context_line":"\t\tte \u003d timeval_ms();"},{"line_number":738,"context_line":"\t\tcmdtime \u003d (uint32_t)(te - ts);"},{"line_number":739,"context_line":"\t\tif (cmdtime \u003c ((vdc.poll_min + vdc.poll_max) / 3))"},{"line_number":740,"context_line":"\t\t\tvdc.poll_cycles *\u003d 2;"},{"line_number":741,"context_line":"\t\telse if (cmdtime \u003e ((vdc.poll_min + vdc.poll_max) / 2))"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"2bb89dfd_2a0dcf9c","line":738,"in_reply_to":"81f845fb_7581380c","updated":"2021-10-07 15:25:41.000000000","message":"I keep cmdtime is 32bit, because the 64b values are just not practical here, they represent months of runtime... The explicit cast shows this conversion losing precision.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":745,"context_line":"\t}"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"\tLOG_DEBUG(\"poll after %ums in state %u; wait %u cycles in %ums\","},{"line_number":748,"context_line":"\t\tvdc.targ_time, vdc.targ_state, vdc.poll_cycles, cmdtime);"},{"line_number":749,"context_line":"\tvdc.targ_time \u003d 0;                 /* reset target time counter */"},{"line_number":750,"context_line":""},{"line_number":751,"context_line":"\treturn ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"816f0fc3_24601b73","line":748,"updated":"2021-09-18 13:02:26.000000000","message":"none of them is unsigned int, so %u is incorrect","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":745,"context_line":"\t}"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"\tLOG_DEBUG(\"poll after %ums in state %u; wait %u cycles in %ums\","},{"line_number":748,"context_line":"\t\tvdc.targ_time, vdc.targ_state, vdc.poll_cycles, cmdtime);"},{"line_number":749,"context_line":"\tvdc.targ_time \u003d 0;                 /* reset target time counter */"},{"line_number":750,"context_line":""},{"line_number":751,"context_line":"\treturn ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"579fb299_2734890b","line":748,"in_reply_to":"816f0fc3_24601b73","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":754,"context_line":"static int vdebug_write_memory(struct target *pt, target_addr_t address,"},{"line_number":755,"context_line":"\t\t\t\t\t\t\t   uint32_t size, uint32_t count, const uint8_t *buffer)"},{"line_number":756,"context_line":"{"},{"line_number":757,"context_line":"\tuint8_t ndx;"},{"line_number":758,"context_line":"\tuint32_t offset;"},{"line_number":759,"context_line":"\tuint32_t written;"},{"line_number":760,"context_line":"\tuint32_t towrite;"},{"line_number":761,"context_line":"\tint rc \u003d ERROR_OK;"},{"line_number":762,"context_line":""},{"line_number":763,"context_line":"\tfor (ndx \u003d 0; ndx \u003c vdc.mem_ndx; ndx++)"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"bf8cf345_305ee842","line":760,"range":{"start_line":757,"start_character":1,"end_line":760,"end_character":18},"updated":"2021-09-18 13:02:26.000000000","message":"please reconsider the type of these variables. I don\u0027t see the need for these types, unsigned int seems ok. With current type all the LOG_XX in the function have incorrect format string","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"973f318d74ea45e4cce277d4aa25f515636f2198","unresolved":false,"context_lines":[{"line_number":754,"context_line":"static int vdebug_write_memory(struct target *pt, target_addr_t address,"},{"line_number":755,"context_line":"\t\t\t\t\t\t\t   uint32_t size, uint32_t count, const uint8_t *buffer)"},{"line_number":756,"context_line":"{"},{"line_number":757,"context_line":"\tuint8_t ndx;"},{"line_number":758,"context_line":"\tuint32_t offset;"},{"line_number":759,"context_line":"\tuint32_t written;"},{"line_number":760,"context_line":"\tuint32_t towrite;"},{"line_number":761,"context_line":"\tint rc \u003d ERROR_OK;"},{"line_number":762,"context_line":""},{"line_number":763,"context_line":"\tfor (ndx \u003d 0; ndx \u003c vdc.mem_ndx; ndx++)"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"c149f88d_4b68358f","line":760,"range":{"start_line":757,"start_character":1,"end_line":760,"end_character":18},"in_reply_to":"8d9f0886_e0d50b28","updated":"2021-11-04 08:50:15.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":true,"context_lines":[{"line_number":754,"context_line":"static int vdebug_write_memory(struct target *pt, target_addr_t address,"},{"line_number":755,"context_line":"\t\t\t\t\t\t\t   uint32_t size, uint32_t count, const uint8_t *buffer)"},{"line_number":756,"context_line":"{"},{"line_number":757,"context_line":"\tuint8_t ndx;"},{"line_number":758,"context_line":"\tuint32_t offset;"},{"line_number":759,"context_line":"\tuint32_t written;"},{"line_number":760,"context_line":"\tuint32_t towrite;"},{"line_number":761,"context_line":"\tint rc \u003d ERROR_OK;"},{"line_number":762,"context_line":""},{"line_number":763,"context_line":"\tfor (ndx \u003d 0; ndx \u003c vdc.mem_ndx; ndx++)"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"8d9f0886_e0d50b28","line":760,"range":{"start_line":757,"start_character":1,"end_line":760,"end_character":18},"in_reply_to":"bf8cf345_305ee842","updated":"2021-10-07 15:25:41.000000000","message":"These types match the target write_memory argument types, so I think they are appropriate here. I have changed the format strings.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":789,"context_line":"\tint rc;"},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"\tvdc.hsocket \u003d socket_open(vdc.server_name, vdc.server_port);"},{"line_number":792,"context_line":"\tpbuf \u003d (struct vd_shm *)calloc(1, sizeof(struct vd_shm));"},{"line_number":793,"context_line":"\tif (!pbuf) {"},{"line_number":794,"context_line":"\t\tclose_socket(vdc.hsocket);"},{"line_number":795,"context_line":"\t\tvdc.hsocket \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"bd98c553_9dddf81d","line":792,"updated":"2021-09-18 13:02:26.000000000","message":"no need to cast the void* returned by calloc()","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":789,"context_line":"\tint rc;"},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"\tvdc.hsocket \u003d socket_open(vdc.server_name, vdc.server_port);"},{"line_number":792,"context_line":"\tpbuf \u003d (struct vd_shm *)calloc(1, sizeof(struct vd_shm));"},{"line_number":793,"context_line":"\tif (!pbuf) {"},{"line_number":794,"context_line":"\t\tclose_socket(vdc.hsocket);"},{"line_number":795,"context_line":"\t\tvdc.hsocket \u003d 0;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"7e9ce166_2ada547c","line":792,"in_reply_to":"bd98c553_9dddf81d","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":794,"context_line":"\t\tclose_socket(vdc.hsocket);"},{"line_number":795,"context_line":"\t\tvdc.hsocket \u003d 0;"},{"line_number":796,"context_line":"\t\tLOG_ERROR(\"cannot allocate %lu bytes\", sizeof(struct vd_shm));"},{"line_number":797,"context_line":"\t\trc \u003d ERROR_FAIL;"},{"line_number":798,"context_line":"\t} else if (vdc.hsocket \u003c\u003d 0) {"},{"line_number":799,"context_line":"\t\tfree(pbuf);"},{"line_number":800,"context_line":"\t\tpbuf \u003d NULL;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"953c1c67_fc3b7340","line":797,"updated":"2021-09-18 13:02:26.000000000","message":"return ERROR_FAIL directly and remove the following else","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":794,"context_line":"\t\tclose_socket(vdc.hsocket);"},{"line_number":795,"context_line":"\t\tvdc.hsocket \u003d 0;"},{"line_number":796,"context_line":"\t\tLOG_ERROR(\"cannot allocate %lu bytes\", sizeof(struct vd_shm));"},{"line_number":797,"context_line":"\t\trc \u003d ERROR_FAIL;"},{"line_number":798,"context_line":"\t} else if (vdc.hsocket \u003c\u003d 0) {"},{"line_number":799,"context_line":"\t\tfree(pbuf);"},{"line_number":800,"context_line":"\t\tpbuf \u003d NULL;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"9f4300bd_3d4e4cc9","line":797,"in_reply_to":"953c1c67_fc3b7340","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":800,"context_line":"\t\tpbuf \u003d NULL;"},{"line_number":801,"context_line":"\t\tLOG_ERROR(\"cannot connect to vdebug server %s:%d\","},{"line_number":802,"context_line":"\t\t\tvdc.server_name, vdc.server_port);"},{"line_number":803,"context_line":"\t\trc \u003d ERROR_FAIL;"},{"line_number":804,"context_line":"\t} else {"},{"line_number":805,"context_line":"\t\tvdc.trans_first \u003d 1;"},{"line_number":806,"context_line":"\t\tvdc.poll_cycles \u003d vdc.poll_max;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"3c915f50_0abc5e4a","line":803,"updated":"2021-09-18 13:02:26.000000000","message":"return ERROR_FAIL directly and remove the following else","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":800,"context_line":"\t\tpbuf \u003d NULL;"},{"line_number":801,"context_line":"\t\tLOG_ERROR(\"cannot connect to vdebug server %s:%d\","},{"line_number":802,"context_line":"\t\t\tvdc.server_name, vdc.server_port);"},{"line_number":803,"context_line":"\t\trc \u003d ERROR_FAIL;"},{"line_number":804,"context_line":"\t} else {"},{"line_number":805,"context_line":"\t\tvdc.trans_first \u003d 1;"},{"line_number":806,"context_line":"\t\tvdc.poll_cycles \u003d vdc.poll_max;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"1b29bcf3_fe7195cc","line":803,"in_reply_to":"3c915f50_0abc5e4a","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":811,"context_line":"\t\t\tclose_socket(vdc.hsocket);"},{"line_number":812,"context_line":"\t\t\tvdc.hsocket \u003d 0;"},{"line_number":813,"context_line":"\t\t\tfree(pbuf);"},{"line_number":814,"context_line":"\t\t\tpbuf \u003d NULL;"},{"line_number":815,"context_line":"\t\t} else {"},{"line_number":816,"context_line":"\t\t\tfor (uint8_t i \u003d 0; i \u003c vdc.mem_ndx; i++) {"},{"line_number":817,"context_line":"\t\t\t\trc \u003d vdebug_mem_open(vdc.hsocket, pbuf, vdc.mem_path[i], i);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"a750e5fd_842215b2","line":814,"updated":"2021-09-18 13:02:26.000000000","message":"return rc; directly and remove the following else","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":811,"context_line":"\t\t\tclose_socket(vdc.hsocket);"},{"line_number":812,"context_line":"\t\t\tvdc.hsocket \u003d 0;"},{"line_number":813,"context_line":"\t\t\tfree(pbuf);"},{"line_number":814,"context_line":"\t\t\tpbuf \u003d NULL;"},{"line_number":815,"context_line":"\t\t} else {"},{"line_number":816,"context_line":"\t\t\tfor (uint8_t i \u003d 0; i \u003c vdc.mem_ndx; i++) {"},{"line_number":817,"context_line":"\t\t\t\trc \u003d vdebug_mem_open(vdc.hsocket, pbuf, vdc.mem_path[i], i);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"4c4621fa_bbfc6924","line":814,"in_reply_to":"a750e5fd_842215b2","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":864,"context_line":"\t\t\tsig_val \u0026\u003d ~VD_SIG_TRST; /* active low */"},{"line_number":865,"context_line":"\t}"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":"\tLOG_INFO(\"rst trst:%d srst:%d mask:%x val:%x\", trst, srst, sig_mask, sig_val);"},{"line_number":868,"context_line":"\trc \u003d vdebug_sig_set(vdc.hsocket, pbuf, sig_mask, sig_val);"},{"line_number":869,"context_line":"\tif (rc \u003d\u003d 0)"},{"line_number":870,"context_line":"\t\trc \u003d vdebug_wait(vdc.hsocket, pbuf, 20); /* 20 clock cycles pulse */"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"4dfc04be_c3fc0a98","line":867,"updated":"2021-09-18 13:02:26.000000000","message":"sig_mask and sig_val are uint16_t; use PRIx16\nI stop here with these comments, please continue by yourself","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":864,"context_line":"\t\t\tsig_val \u0026\u003d ~VD_SIG_TRST; /* active low */"},{"line_number":865,"context_line":"\t}"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":"\tLOG_INFO(\"rst trst:%d srst:%d mask:%x val:%x\", trst, srst, sig_mask, sig_val);"},{"line_number":868,"context_line":"\trc \u003d vdebug_sig_set(vdc.hsocket, pbuf, sig_mask, sig_val);"},{"line_number":869,"context_line":"\tif (rc \u003d\u003d 0)"},{"line_number":870,"context_line":"\t\trc \u003d vdebug_wait(vdc.hsocket, pbuf, 20); /* 20 clock cycles pulse */"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"00a5aadd_1c2ed6c0","line":867,"in_reply_to":"4dfc04be_c3fc0a98","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":865,"context_line":"\t}"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":"\tLOG_INFO(\"rst trst:%d srst:%d mask:%x val:%x\", trst, srst, sig_mask, sig_val);"},{"line_number":868,"context_line":"\trc \u003d vdebug_sig_set(vdc.hsocket, pbuf, sig_mask, sig_val);"},{"line_number":869,"context_line":"\tif (rc \u003d\u003d 0)"},{"line_number":870,"context_line":"\t\trc \u003d vdebug_wait(vdc.hsocket, pbuf, 20); /* 20 clock cycles pulse */"},{"line_number":871,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"1ab11c1f_174ae38b","line":868,"updated":"2021-09-18 13:02:26.000000000","message":"int rc \u003d ...","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":865,"context_line":"\t}"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":"\tLOG_INFO(\"rst trst:%d srst:%d mask:%x val:%x\", trst, srst, sig_mask, sig_val);"},{"line_number":868,"context_line":"\trc \u003d vdebug_sig_set(vdc.hsocket, pbuf, sig_mask, sig_val);"},{"line_number":869,"context_line":"\tif (rc \u003d\u003d 0)"},{"line_number":870,"context_line":"\t\trc \u003d vdebug_wait(vdc.hsocket, pbuf, 20); /* 20 clock cycles pulse */"},{"line_number":871,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"ce3a5a2e_71e91c4a","line":868,"in_reply_to":"1ab11c1f_174ae38b","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":958,"context_line":"\ttms_pre \u003d tap_get_tms_path(cur, state);"},{"line_number":959,"context_line":"\tnum_pre \u003d tap_get_tms_path_len(cur, state);"},{"line_number":960,"context_line":"\tLOG_DEBUG(\"idle len:%d state cur:%x end:%x\", cycles, cur, state);"},{"line_number":961,"context_line":"\trc \u003d vdebug_jtag_shift_tap(vdc.hsocket, pbuf, num_pre, tms_pre, cycles, NULL, 0, 0, NULL, f_flush);"},{"line_number":962,"context_line":"\tif (cur !\u003d state)"},{"line_number":963,"context_line":"\t\ttap_set_state(state);"},{"line_number":964,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"42341e7e_c77c4315","line":961,"updated":"2021-09-18 13:02:26.000000000","message":"uint8_t cur \u003d ...\nuint8_t tms_pre \u003d ...\nuint8_t num_pre \u003d ...\nint rc \u003d ...","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":958,"context_line":"\ttms_pre \u003d tap_get_tms_path(cur, state);"},{"line_number":959,"context_line":"\tnum_pre \u003d tap_get_tms_path_len(cur, state);"},{"line_number":960,"context_line":"\tLOG_DEBUG(\"idle len:%d state cur:%x end:%x\", cycles, cur, state);"},{"line_number":961,"context_line":"\trc \u003d vdebug_jtag_shift_tap(vdc.hsocket, pbuf, num_pre, tms_pre, cycles, NULL, 0, 0, NULL, f_flush);"},{"line_number":962,"context_line":"\tif (cur !\u003d state)"},{"line_number":963,"context_line":"\t\ttap_set_state(state);"},{"line_number":964,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"370db479_135f4e71","line":961,"in_reply_to":"42341e7e_c77c4315","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":977,"context_line":"\tint rc;"},{"line_number":978,"context_line":""},{"line_number":979,"context_line":"\tLOG_INFO(\"sleep %d us\", us);"},{"line_number":980,"context_line":"\trc \u003d vdebug_wait(vdc.hsocket, pbuf, us / 1000);"},{"line_number":981,"context_line":""},{"line_number":982,"context_line":"\treturn rc;"},{"line_number":983,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"f7b92a91_ba8753ba","line":980,"updated":"2021-09-18 13:02:26.000000000","message":"return vdebug_...","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":977,"context_line":"\tint rc;"},{"line_number":978,"context_line":""},{"line_number":979,"context_line":"\tLOG_INFO(\"sleep %d us\", us);"},{"line_number":980,"context_line":"\trc \u003d vdebug_wait(vdc.hsocket, pbuf, us / 1000);"},{"line_number":981,"context_line":""},{"line_number":982,"context_line":"\treturn rc;"},{"line_number":983,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"345f5ff9_0ec1608f","line":980,"in_reply_to":"f7b92a91_ba8753ba","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":990,"context_line":"\tclkmax \u003d VD_SCALE_PSTOMS / (vdc.bfm_period * 2); /* kHz */"},{"line_number":991,"context_line":"\tdivval \u003d clkmax / speed;"},{"line_number":992,"context_line":"\tLOG_INFO(\"jclk speed:%d kHz set, BFM divider %u\", speed, divval);"},{"line_number":993,"context_line":"\trc \u003d vdebug_jtag_clock(vdc.hsocket, pbuf, divval);"},{"line_number":994,"context_line":""},{"line_number":995,"context_line":"\treturn rc;"},{"line_number":996,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"355cca6c_779c63ee","line":993,"updated":"2021-09-18 13:02:26.000000000","message":"return vdebug_...","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":990,"context_line":"\tclkmax \u003d VD_SCALE_PSTOMS / (vdc.bfm_period * 2); /* kHz */"},{"line_number":991,"context_line":"\tdivval \u003d clkmax / speed;"},{"line_number":992,"context_line":"\tLOG_INFO(\"jclk speed:%d kHz set, BFM divider %u\", speed, divval);"},{"line_number":993,"context_line":"\trc \u003d vdebug_jtag_clock(vdc.hsocket, pbuf, divval);"},{"line_number":994,"context_line":""},{"line_number":995,"context_line":"\treturn rc;"},{"line_number":996,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"612859d6_a6691eb1","line":993,"in_reply_to":"355cca6c_779c63ee","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":1055,"context_line":"{"},{"line_number":1056,"context_line":"\tchar *pchar;"},{"line_number":1057,"context_line":""},{"line_number":1058,"context_line":"\tif ((CMD_ARGC !\u003d 1) || (strchr(CMD_ARGV[0], \u0027:\u0027) \u003d\u003d NULL))"},{"line_number":1059,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1060,"context_line":""},{"line_number":1061,"context_line":"\tpchar \u003d strchr(CMD_ARGV[0], \u0027:\u0027);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"d963ea46_22749ea4","line":1058,"updated":"2021-09-18 13:02:26.000000000","message":"no NULL comparison","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":1055,"context_line":"{"},{"line_number":1056,"context_line":"\tchar *pchar;"},{"line_number":1057,"context_line":""},{"line_number":1058,"context_line":"\tif ((CMD_ARGC !\u003d 1) || (strchr(CMD_ARGV[0], \u0027:\u0027) \u003d\u003d NULL))"},{"line_number":1059,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1060,"context_line":""},{"line_number":1061,"context_line":"\tpchar \u003d strchr(CMD_ARGV[0], \u0027:\u0027);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"05b12766_34c8645c","line":1058,"in_reply_to":"d963ea46_22749ea4","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":1058,"context_line":"\tif ((CMD_ARGC !\u003d 1) || (strchr(CMD_ARGV[0], \u0027:\u0027) \u003d\u003d NULL))"},{"line_number":1059,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1060,"context_line":""},{"line_number":1061,"context_line":"\tpchar \u003d strchr(CMD_ARGV[0], \u0027:\u0027);"},{"line_number":1062,"context_line":"\t*pchar \u003d \u0027\\0\u0027;"},{"line_number":1063,"context_line":"\tstrncpy(vdc.server_name, CMD_ARGV[0], sizeof(vdc.server_name) - 1);"},{"line_number":1064,"context_line":"\tvdc.server_port \u003d atoi(++pchar);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"92a99760_2104c6c2","line":1061,"updated":"2021-09-18 13:02:26.000000000","message":"char *pchar \u003d ...","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":1058,"context_line":"\tif ((CMD_ARGC !\u003d 1) || (strchr(CMD_ARGV[0], \u0027:\u0027) \u003d\u003d NULL))"},{"line_number":1059,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1060,"context_line":""},{"line_number":1061,"context_line":"\tpchar \u003d strchr(CMD_ARGV[0], \u0027:\u0027);"},{"line_number":1062,"context_line":"\t*pchar \u003d \u0027\\0\u0027;"},{"line_number":1063,"context_line":"\tstrncpy(vdc.server_name, CMD_ARGV[0], sizeof(vdc.server_name) - 1);"},{"line_number":1064,"context_line":"\tvdc.server_port \u003d atoi(++pchar);"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"0d834aa0_e986f30c","line":1061,"in_reply_to":"92a99760_2104c6c2","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":1061,"context_line":"\tpchar \u003d strchr(CMD_ARGV[0], \u0027:\u0027);"},{"line_number":1062,"context_line":"\t*pchar \u003d \u0027\\0\u0027;"},{"line_number":1063,"context_line":"\tstrncpy(vdc.server_name, CMD_ARGV[0], sizeof(vdc.server_name) - 1);"},{"line_number":1064,"context_line":"\tvdc.server_port \u003d atoi(++pchar);"},{"line_number":1065,"context_line":"\tLOG_DEBUG(\"server: %s port %u\", vdc.server_name, vdc.server_port);"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"\treturn ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"5d3db599_d78d4ccd","line":1064,"range":{"start_line":1064,"start_character":5,"end_line":1064,"end_character":16},"updated":"2021-09-18 13:02:26.000000000","message":"add a check it is a valid port number:\nint port \u003d atoi(++pchar);\nif (port \u003c\u003d 0 || port \u003e\u003d 65536) {\nLOG_ERROR(...);\nreturn ERROR_COMMAND_SYNTAX_ERROR;\n}\nvdc.server_port \u003d port;","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":1061,"context_line":"\tpchar \u003d strchr(CMD_ARGV[0], \u0027:\u0027);"},{"line_number":1062,"context_line":"\t*pchar \u003d \u0027\\0\u0027;"},{"line_number":1063,"context_line":"\tstrncpy(vdc.server_name, CMD_ARGV[0], sizeof(vdc.server_name) - 1);"},{"line_number":1064,"context_line":"\tvdc.server_port \u003d atoi(++pchar);"},{"line_number":1065,"context_line":"\tLOG_DEBUG(\"server: %s port %u\", vdc.server_name, vdc.server_port);"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"\treturn ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"85416c6b_6e357385","line":1064,"range":{"start_line":1064,"start_character":5,"end_line":1064,"end_character":16},"in_reply_to":"5d3db599_d78d4ccd","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":1075,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1076,"context_line":""},{"line_number":1077,"context_line":"\tstrncpy(vdc.bfm_path, CMD_ARGV[0], sizeof(vdc.bfm_path) - 1);"},{"line_number":1078,"context_line":"\tif (sscanf(CMD_ARGV[1], \"%u%cs*\", \u0026vdc.bfm_period, \u0026prefix) \u003d\u003d 2) {"},{"line_number":1079,"context_line":"\t\tswitch (prefix) {"},{"line_number":1080,"context_line":"\t\tcase \u0027u\u0027:"},{"line_number":1081,"context_line":"\t\t\tvdc.bfm_period *\u003d 1000000;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"b1a368cc_576881d9","line":1078,"updated":"2021-09-18 13:02:26.000000000","message":"no error message if the period cannot be read and sscanf returns !\u003d 2?\nIs the \u0027*\u0027 char required at the end of the format string?\nFrom my tests the \u0027s\u0027 character is ignored and can be anything. Should the test be enforced?","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":1075,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1076,"context_line":""},{"line_number":1077,"context_line":"\tstrncpy(vdc.bfm_path, CMD_ARGV[0], sizeof(vdc.bfm_path) - 1);"},{"line_number":1078,"context_line":"\tif (sscanf(CMD_ARGV[1], \"%u%cs*\", \u0026vdc.bfm_period, \u0026prefix) \u003d\u003d 2) {"},{"line_number":1079,"context_line":"\t\tswitch (prefix) {"},{"line_number":1080,"context_line":"\t\tcase \u0027u\u0027:"},{"line_number":1081,"context_line":"\t\t\tvdc.bfm_period *\u003d 1000000;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"3dcb60fe_dcd734f7","line":1078,"in_reply_to":"b1a368cc_576881d9","updated":"2021-10-07 15:25:41.000000000","message":"Yes, the s* an be removed.\nI have checked for the number of conversions.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":1119,"context_line":"\tif (CMD_ARGC !\u003d 1)"},{"line_number":1120,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1121,"context_line":""},{"line_number":1122,"context_line":"\tif (isdigit((int)CMD_ARGV[0][0]))"},{"line_number":1123,"context_line":"\t\tvdc.trans_batch \u003d (CMD_ARGV[0][0] \u003d\u003d \u00270\u0027 ? 0 : (CMD_ARGV[0][0] \u003d\u003d \u00271\u0027 ? 1 : 2));"},{"line_number":1124,"context_line":"\telse if (CMD_ARGV[0][0] \u003d\u003d \u0027r\u0027)"},{"line_number":1125,"context_line":"\t\tvdc.trans_batch \u003d VD_BATCH_WR;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"6d714bd4_5a730c53","line":1122,"updated":"2021-09-18 13:02:26.000000000","message":"The correct cast is to (unsigned char). See the comments in https://review.openocd.org/c/openocd/+/6444","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"522f4a49a8b491bd0ad7f8eddd349eec8269dc09","unresolved":true,"context_lines":[{"line_number":1119,"context_line":"\tif (CMD_ARGC !\u003d 1)"},{"line_number":1120,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1121,"context_line":""},{"line_number":1122,"context_line":"\tif (isdigit((int)CMD_ARGV[0][0]))"},{"line_number":1123,"context_line":"\t\tvdc.trans_batch \u003d (CMD_ARGV[0][0] \u003d\u003d \u00270\u0027 ? 0 : (CMD_ARGV[0][0] \u003d\u003d \u00271\u0027 ? 1 : 2));"},{"line_number":1124,"context_line":"\telse if (CMD_ARGV[0][0] \u003d\u003d \u0027r\u0027)"},{"line_number":1125,"context_line":"\t\tvdc.trans_batch \u003d VD_BATCH_WR;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"9ea05a5e_de5b75c7","line":1122,"in_reply_to":"5a37eab2_a7f76880","updated":"2021-10-12 09:30:57.000000000","message":"In some library the functions isdigit(), isblank() and so on are implemented through indexing an array of 256 entries with no check on the array boundary, something similar to:\n#define isdigit(x) (array[x] \u0026 ISDIGIT_BIT)\nThat\u0027s why passing through unsigned char is the only portable solution.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":true,"context_lines":[{"line_number":1119,"context_line":"\tif (CMD_ARGC !\u003d 1)"},{"line_number":1120,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1121,"context_line":""},{"line_number":1122,"context_line":"\tif (isdigit((int)CMD_ARGV[0][0]))"},{"line_number":1123,"context_line":"\t\tvdc.trans_batch \u003d (CMD_ARGV[0][0] \u003d\u003d \u00270\u0027 ? 0 : (CMD_ARGV[0][0] \u003d\u003d \u00271\u0027 ? 1 : 2));"},{"line_number":1124,"context_line":"\telse if (CMD_ARGV[0][0] \u003d\u003d \u0027r\u0027)"},{"line_number":1125,"context_line":"\t\tvdc.trans_batch \u003d VD_BATCH_WR;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"5a37eab2_a7f76880","line":1122,"in_reply_to":"6d714bd4_5a730c53","updated":"2021-10-07 15:25:41.000000000","message":"This was introduced as mingw threw a warning for on eof my colleagues. I do not see how (int) can be harmful here. Actually I see a universal (unsigned char) cast as more problematic, because it will convert EOF (to 255?) The function isdigit() will work in both cases, because the CMD_ARGV strings can contain only characters. I do not mind the change, but would like to understand the comment.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"8a16719b5d4a09b1086659de330df1f8032ec76e","unresolved":false,"context_lines":[{"line_number":1119,"context_line":"\tif (CMD_ARGC !\u003d 1)"},{"line_number":1120,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1121,"context_line":""},{"line_number":1122,"context_line":"\tif (isdigit((int)CMD_ARGV[0][0]))"},{"line_number":1123,"context_line":"\t\tvdc.trans_batch \u003d (CMD_ARGV[0][0] \u003d\u003d \u00270\u0027 ? 0 : (CMD_ARGV[0][0] \u003d\u003d \u00271\u0027 ? 1 : 2));"},{"line_number":1124,"context_line":"\telse if (CMD_ARGV[0][0] \u003d\u003d \u0027r\u0027)"},{"line_number":1125,"context_line":"\t\tvdc.trans_batch \u003d VD_BATCH_WR;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"a71e98db_9105d985","line":1122,"in_reply_to":"9ea05a5e_de5b75c7","updated":"2021-10-12 18:00:08.000000000","message":"Thank you for your explanation, patch #12 includes the modified cast","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":1149,"context_line":"\tif (vdc.targ) {"},{"line_number":1150,"context_line":"\t\tLOG_WARNING(\"target already registered, ignoring\");"},{"line_number":1151,"context_line":"\t} else {"},{"line_number":1152,"context_line":"\t\tvdc.targ \u003d get_target_by_num(0);"},{"line_number":1153,"context_line":"\t\tif (vdc.targ \u0026\u0026 vdc.targ-\u003etype) {"},{"line_number":1154,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"},{"line_number":1155,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"5757a809_388a401b","line":1152,"updated":"2021-09-18 13:02:26.000000000","message":"Today this works for a single target only, so you get it from get_target_by_num(0).\nI expect it will/could be improved in the future.\nCan we pass the target name as parameter of this command?\nYou are free to ignore the parameter, in the current implementation, and just add a comment that the target name is ignored.\nThis will avoid changing the command syntax later on.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":1149,"context_line":"\tif (vdc.targ) {"},{"line_number":1150,"context_line":"\t\tLOG_WARNING(\"target already registered, ignoring\");"},{"line_number":1151,"context_line":"\t} else {"},{"line_number":1152,"context_line":"\t\tvdc.targ \u003d get_target_by_num(0);"},{"line_number":1153,"context_line":"\t\tif (vdc.targ \u0026\u0026 vdc.targ-\u003etype) {"},{"line_number":1154,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"},{"line_number":1155,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"2ff5bfe6_55e33ca0","line":1152,"in_reply_to":"5757a809_388a401b","updated":"2021-10-07 15:25:41.000000000","message":"I will add the comment. I used this command as I am not sure how to work with multiple targets, the current driver has substantial restrictions in that area.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":1152,"context_line":"\t\tvdc.targ \u003d get_target_by_num(0);"},{"line_number":1153,"context_line":"\t\tif (vdc.targ \u0026\u0026 vdc.targ-\u003etype) {"},{"line_number":1154,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"},{"line_number":1155,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"},{"line_number":1156,"context_line":"\t\t\tLOG_INFO(\"%s: %u target memories registered\", target_type_name(vdc.targ), vdc.mem_ndx);"},{"line_number":1157,"context_line":"\t\t} else {"},{"line_number":1158,"context_line":"\t\t\tLOG_ERROR(\"registering target failed, NULL target\");"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"bc8588eb_20d4d779","line":1155,"updated":"2021-09-18 13:02:26.000000000","message":"This is the first case of a driver that overrides the target\u0027s internal APIs.\nI would prefer you create a function in src/target/target.c, exported by target.h\nint target_override_write_memory(int (*new_write_memory)(...), int (**old_write_memory)(...));\nthat does the override.\nThis helps separating what belongs to target and what to adapter drivers.\nIn fact drivers are optionally compiled in, and someone could modify the target\u0027s code missing this unusual part here.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":true,"context_lines":[{"line_number":1152,"context_line":"\t\tvdc.targ \u003d get_target_by_num(0);"},{"line_number":1153,"context_line":"\t\tif (vdc.targ \u0026\u0026 vdc.targ-\u003etype) {"},{"line_number":1154,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"},{"line_number":1155,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"},{"line_number":1156,"context_line":"\t\t\tLOG_INFO(\"%s: %u target memories registered\", target_type_name(vdc.targ), vdc.mem_ndx);"},{"line_number":1157,"context_line":"\t\t} else {"},{"line_number":1158,"context_line":"\t\t\tLOG_ERROR(\"registering target failed, NULL target\");"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"1eb79a2c_bf891961","line":1155,"in_reply_to":"0187817a_c22ca6cb","updated":"2021-10-07 15:25:41.000000000","message":"Yes, it address the image load, one of the sw debug pain points, the driver registers this routine and redirects it to use backdoor load only in case of bulk write into one of the configured memories with matching address ranges.\nYes, I could propose such a change to the target interface, but this would introduce dependency on the modified target which I would like to avoid, especially in this patch. Can we postpone this issue for the next/future patch, where another target-specific functionality may need to be redirected?","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"522f4a49a8b491bd0ad7f8eddd349eec8269dc09","unresolved":true,"context_lines":[{"line_number":1152,"context_line":"\t\tvdc.targ \u003d get_target_by_num(0);"},{"line_number":1153,"context_line":"\t\tif (vdc.targ \u0026\u0026 vdc.targ-\u003etype) {"},{"line_number":1154,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"},{"line_number":1155,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"},{"line_number":1156,"context_line":"\t\t\tLOG_INFO(\"%s: %u target memories registered\", target_type_name(vdc.targ), vdc.mem_ndx);"},{"line_number":1157,"context_line":"\t\t} else {"},{"line_number":1158,"context_line":"\t\t\tLOG_ERROR(\"registering target failed, NULL target\");"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"42373d9c_cc028fe3","line":1155,"in_reply_to":"1eb79a2c_bf891961","updated":"2021-10-12 09:30:57.000000000","message":"Let\u0027s speed-up this patch submission in a different way.\nWhat about splitting this patch in two parts? The first containing all except this command register target; this patch could be merged easily. Then a second patch that only adds the command register target and its documentation.\nThis split would allow more reviewer to comment the second part. Plus it would be easier if later we need to revert or replace the second patch with different code/implementation.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"8a16719b5d4a09b1086659de330df1f8032ec76e","unresolved":true,"context_lines":[{"line_number":1152,"context_line":"\t\tvdc.targ \u003d get_target_by_num(0);"},{"line_number":1153,"context_line":"\t\tif (vdc.targ \u0026\u0026 vdc.targ-\u003etype) {"},{"line_number":1154,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"},{"line_number":1155,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"},{"line_number":1156,"context_line":"\t\t\tLOG_INFO(\"%s: %u target memories registered\", target_type_name(vdc.targ), vdc.mem_ndx);"},{"line_number":1157,"context_line":"\t\t} else {"},{"line_number":1158,"context_line":"\t\t\tLOG_ERROR(\"registering target failed, NULL target\");"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"c7a8e21b_3b1113c0","line":1155,"in_reply_to":"42373d9c_cc028fe3","updated":"2021-10-12 18:00:08.000000000","message":"If this can speed up the merge - OK. I can remove it from this patch and create a new separate patch for target-related functionality. \nActually there is already an interest/request to implement another, target (or better yet architecture)-dependent transport in this driver. I think the only way to do it would be to register/override another function I guess. DAP-level access is an exampel of such a transport.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d73fa3cb7ad2e4c641a9fd3a90ab7924808c67c4","unresolved":true,"context_lines":[{"line_number":1152,"context_line":"\t\tvdc.targ \u003d get_target_by_num(0);"},{"line_number":1153,"context_line":"\t\tif (vdc.targ \u0026\u0026 vdc.targ-\u003etype) {"},{"line_number":1154,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"},{"line_number":1155,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"},{"line_number":1156,"context_line":"\t\t\tLOG_INFO(\"%s: %u target memories registered\", target_type_name(vdc.targ), vdc.mem_ndx);"},{"line_number":1157,"context_line":"\t\t} else {"},{"line_number":1158,"context_line":"\t\t\tLOG_ERROR(\"registering target failed, NULL target\");"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"0187817a_c22ca6cb","line":1155,"in_reply_to":"bc8588eb_20d4d779","updated":"2021-09-18 13:08:50.000000000","message":"I think this is to speed-up loading data in target\u0027s memory.\nIs overriding write_memory() enough? There are also write_buffer() and write_phys_memory(), but probably not useful for you purposes.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"973f318d74ea45e4cce277d4aa25f515636f2198","unresolved":false,"context_lines":[{"line_number":1152,"context_line":"\t\tvdc.targ \u003d get_target_by_num(0);"},{"line_number":1153,"context_line":"\t\tif (vdc.targ \u0026\u0026 vdc.targ-\u003etype) {"},{"line_number":1154,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"},{"line_number":1155,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"},{"line_number":1156,"context_line":"\t\t\tLOG_INFO(\"%s: %u target memories registered\", target_type_name(vdc.targ), vdc.mem_ndx);"},{"line_number":1157,"context_line":"\t\t} else {"},{"line_number":1158,"context_line":"\t\t\tLOG_ERROR(\"registering target failed, NULL target\");"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"ac0d6b19_c0823547","line":1155,"in_reply_to":"c7a8e21b_3b1113c0","updated":"2021-11-04 08:50:15.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":1153,"context_line":"\t\tif (vdc.targ \u0026\u0026 vdc.targ-\u003etype) {"},{"line_number":1154,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"},{"line_number":1155,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"},{"line_number":1156,"context_line":"\t\t\tLOG_INFO(\"%s: %u target memories registered\", target_type_name(vdc.targ), vdc.mem_ndx);"},{"line_number":1157,"context_line":"\t\t} else {"},{"line_number":1158,"context_line":"\t\t\tLOG_ERROR(\"registering target failed, NULL target\");"},{"line_number":1159,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"c1234a88_df1e568c","line":1156,"updated":"2021-09-18 13:02:26.000000000","message":"I prefer a more explicit message: \"target memory writes redirected to vdebug driver\"","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"973f318d74ea45e4cce277d4aa25f515636f2198","unresolved":false,"context_lines":[{"line_number":1153,"context_line":"\t\tif (vdc.targ \u0026\u0026 vdc.targ-\u003etype) {"},{"line_number":1154,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"},{"line_number":1155,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"},{"line_number":1156,"context_line":"\t\t\tLOG_INFO(\"%s: %u target memories registered\", target_type_name(vdc.targ), vdc.mem_ndx);"},{"line_number":1157,"context_line":"\t\t} else {"},{"line_number":1158,"context_line":"\t\t\tLOG_ERROR(\"registering target failed, NULL target\");"},{"line_number":1159,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"2cf94412_870db265","line":1156,"in_reply_to":"bcc56d49_0ae540db","updated":"2021-11-04 08:50:15.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":true,"context_lines":[{"line_number":1153,"context_line":"\t\tif (vdc.targ \u0026\u0026 vdc.targ-\u003etype) {"},{"line_number":1154,"context_line":"\t\t\tvdc.targ_write_memory \u003d vdc.targ-\u003etype-\u003ewrite_memory;"},{"line_number":1155,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"},{"line_number":1156,"context_line":"\t\t\tLOG_INFO(\"%s: %u target memories registered\", target_type_name(vdc.targ), vdc.mem_ndx);"},{"line_number":1157,"context_line":"\t\t} else {"},{"line_number":1158,"context_line":"\t\t\tLOG_ERROR(\"registering target failed, NULL target\");"},{"line_number":1159,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"bcc56d49_0ae540db","line":1156,"in_reply_to":"c1234a88_df1e568c","updated":"2021-10-07 15:25:41.000000000","message":"Here is just the target registration. The actual redirection happens only in specific cases in the vdebug_write_memory, where it can be explicitly printed out, if you wish.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":1155,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"},{"line_number":1156,"context_line":"\t\t\tLOG_INFO(\"%s: %u target memories registered\", target_type_name(vdc.targ), vdc.mem_ndx);"},{"line_number":1157,"context_line":"\t\t} else {"},{"line_number":1158,"context_line":"\t\t\tLOG_ERROR(\"registering target failed, NULL target\");"},{"line_number":1159,"context_line":"\t\t}"},{"line_number":1160,"context_line":"\t}"},{"line_number":1161,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"5fd02a69_89a5003f","line":1158,"updated":"2021-09-18 13:02:26.000000000","message":"return ERROR_something?","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[{"line_number":1155,"context_line":"\t\t\tvdc.targ-\u003etype-\u003ewrite_memory \u003d \u0026vdebug_write_memory;"},{"line_number":1156,"context_line":"\t\t\tLOG_INFO(\"%s: %u target memories registered\", target_type_name(vdc.targ), vdc.mem_ndx);"},{"line_number":1157,"context_line":"\t\t} else {"},{"line_number":1158,"context_line":"\t\t\tLOG_ERROR(\"registering target failed, NULL target\");"},{"line_number":1159,"context_line":"\t\t}"},{"line_number":1160,"context_line":"\t}"},{"line_number":1161,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"1ffc1eaa_09dc4af8","line":1158,"in_reply_to":"5fd02a69_89a5003f","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[{"line_number":1168,"context_line":"\t\t.handler \u003d \u0026vdebug_set_server,"},{"line_number":1169,"context_line":"\t\t.mode \u003d COMMAND_CONFIG,"},{"line_number":1170,"context_line":"\t\t.help \u003d \"set the vdebug server name or address\","},{"line_number":1171,"context_line":"\t\t.usage \u003d \"\u003chost:port\u003e\","},{"line_number":1172,"context_line":"\t},"},{"line_number":1173,"context_line":"\t{"},{"line_number":1174,"context_line":"\t\t.name \u003d \"bfm_path\","}],"source_content_type":"text/x-csrc","patch_set":11,"id":"71925e3c_95f0b209","line":1171,"updated":"2021-09-18 13:02:26.000000000","message":"remove the \u0027\u003c\u0027 and \u0027\u003e\u0027, these are not used in any other command usage string\nAlso below","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"522f4a49a8b491bd0ad7f8eddd349eec8269dc09","unresolved":true,"context_lines":[{"line_number":1168,"context_line":"\t\t.handler \u003d \u0026vdebug_set_server,"},{"line_number":1169,"context_line":"\t\t.mode \u003d COMMAND_CONFIG,"},{"line_number":1170,"context_line":"\t\t.help \u003d \"set the vdebug server name or address\","},{"line_number":1171,"context_line":"\t\t.usage \u003d \"\u003chost:port\u003e\","},{"line_number":1172,"context_line":"\t},"},{"line_number":1173,"context_line":"\t{"},{"line_number":1174,"context_line":"\t\t.name \u003d \"bfm_path\","}],"source_content_type":"text/x-csrc","patch_set":11,"id":"d737e03b_df0b4383","line":1171,"in_reply_to":"1f316a9c_3b31d6c3","updated":"2021-10-12 09:30:57.000000000","message":"There is no strict guideline for this, just my personal TODO list to cleanup each of them.\nActually these are TCL commands, so somehow the usage string should follow TCL error messages, but honestly I failed to find a document for these TCL errors too.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":true,"context_lines":[{"line_number":1168,"context_line":"\t\t.handler \u003d \u0026vdebug_set_server,"},{"line_number":1169,"context_line":"\t\t.mode \u003d COMMAND_CONFIG,"},{"line_number":1170,"context_line":"\t\t.help \u003d \"set the vdebug server name or address\","},{"line_number":1171,"context_line":"\t\t.usage \u003d \"\u003chost:port\u003e\","},{"line_number":1172,"context_line":"\t},"},{"line_number":1173,"context_line":"\t{"},{"line_number":1174,"context_line":"\t\t.name \u003d \"bfm_path\","}],"source_content_type":"text/x-csrc","patch_set":11,"id":"1f316a9c_3b31d6c3","line":1171,"in_reply_to":"71925e3c_95f0b209","updated":"2021-10-07 15:25:41.000000000","message":"This syntax is used in all the vdebug commands and also in many other drivers like vslink, stlink, buspirate to name a few. Is this a part of all driver cleanup or new guideline?","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"973f318d74ea45e4cce277d4aa25f515636f2198","unresolved":false,"context_lines":[{"line_number":1168,"context_line":"\t\t.handler \u003d \u0026vdebug_set_server,"},{"line_number":1169,"context_line":"\t\t.mode \u003d COMMAND_CONFIG,"},{"line_number":1170,"context_line":"\t\t.help \u003d \"set the vdebug server name or address\","},{"line_number":1171,"context_line":"\t\t.usage \u003d \"\u003chost:port\u003e\","},{"line_number":1172,"context_line":"\t},"},{"line_number":1173,"context_line":"\t{"},{"line_number":1174,"context_line":"\t\t.name \u003d \"bfm_path\","}],"source_content_type":"text/x-csrc","patch_set":11,"id":"9add5c73_f4a7d791","line":1171,"in_reply_to":"d737e03b_df0b4383","updated":"2021-11-04 08:50:15.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"589ad6d1_422b5ec6","line":1239,"updated":"2021-09-18 13:02:26.000000000","message":"remove the empty line at the end of the file","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"522f4a49a8b491bd0ad7f8eddd349eec8269dc09","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"90f99722_405964b5","line":1239,"in_reply_to":"02f283ba_1b2a24d2","updated":"2021-10-12 09:30:57.000000000","message":"You are right, it\u0027s the new gerrit interface that adds an empty line while the patch does not contains it.","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"02f283ba_1b2a24d2","line":1239,"in_reply_to":"589ad6d1_422b5ec6","updated":"2021-10-07 15:25:41.000000000","message":"If I remove the line I get a warning:\ntools/scripts/checkpatch.pl -f src/jtag/drivers/vdebug.c \nWARNING: adding a line without newline at end of file\n#1200: FILE: jtag/drivers/vdebug.c:1200:\n+};\nit looks like it is needed, otherwise jenkins check fails?","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"522f4a49a8b491bd0ad7f8eddd349eec8269dc09","unresolved":true,"context_lines":[{"line_number":21,"context_line":" * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE"},{"line_number":22,"context_line":" * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."},{"line_number":23,"context_line":" *----------------------------------------------------------------------------"},{"line_number":24,"context_line":"*/"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"/*!"},{"line_number":27,"context_line":" * @file"}],"source_content_type":"text/x-csrc","patch_set":12,"id":"c200df90_826c2f2c","line":24,"updated":"2021-10-12 09:30:57.000000000","message":"Shortly I will rework all the file\u0027s copyright and license, including this one, to be compliant with SPDX that is now ISO/IEC 5962:2021 standard.\nThis header will become:\n/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */\n/* Copyright (C) 2020-2021 Cadence Design Systems, Inc. */\nor even\n/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */\n/* SPDX-FileCopyrightText: Copyright (C) 2020-2021 Cadence Design Systems, Inc. */\n\nIs there any concern from you or your legal dept?","commit_id":"3f85385b604c745788c68c8f3ed760c6d7685c71"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"973f318d74ea45e4cce277d4aa25f515636f2198","unresolved":false,"context_lines":[{"line_number":21,"context_line":" * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE"},{"line_number":22,"context_line":" * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."},{"line_number":23,"context_line":" *----------------------------------------------------------------------------"},{"line_number":24,"context_line":"*/"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"/*!"},{"line_number":27,"context_line":" * @file"}],"source_content_type":"text/x-csrc","patch_set":12,"id":"b6027dff_e2d32355","line":24,"in_reply_to":"35e46c98_abe056c6","updated":"2021-11-04 08:50:15.000000000","message":"Done","commit_id":"3f85385b604c745788c68c8f3ed760c6d7685c71"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"8a16719b5d4a09b1086659de330df1f8032ec76e","unresolved":true,"context_lines":[{"line_number":21,"context_line":" * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE"},{"line_number":22,"context_line":" * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."},{"line_number":23,"context_line":" *----------------------------------------------------------------------------"},{"line_number":24,"context_line":"*/"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"/*!"},{"line_number":27,"context_line":" * @file"}],"source_content_type":"text/x-csrc","patch_set":12,"id":"35e46c98_abe056c6","line":24,"in_reply_to":"c200df90_826c2f2c","updated":"2021-10-12 18:00:08.000000000","message":"I do not think so, as long as the copyright remains there","commit_id":"3f85385b604c745788c68c8f3ed760c6d7685c71"},{"author":{"_account_id":1001661,"name":"Daniel Goehring","email":"dgoehrin@os.amperecomputing.com","username":"dgoehrin"},"change_message_id":"5548365bd4af4032f28daea7d616f040e1f6435d","unresolved":true,"context_lines":[{"line_number":72,"context_line":"#include \"helper/replacements.h\""},{"line_number":73,"context_line":"#include \"helper/log.h\""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"#define VD_VERSION 43"},{"line_number":76,"context_line":"#define VD_BUFFER_LEN 4024"},{"line_number":77,"context_line":"#define VD_CHEADER_LEN 24"},{"line_number":78,"context_line":"#define VD_SHEADER_LEN 16"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"9d270d60_fb67306e","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":21},"updated":"2021-11-08 16:24:13.000000000","message":"Should this be a configuration file setting that is overridable at runtime? Various models could potentially have been built with different vdebug server versions. Having it overridable in a configuration file would be nice. For example, I tested the code on a version 42 of the vdebug server and thus needed to change the VD_VERSION from 43 to 42.","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"d17e4ee3760bf3e14f9b1bd4fedf12a1f8cdaeef","unresolved":false,"context_lines":[{"line_number":72,"context_line":"#include \"helper/replacements.h\""},{"line_number":73,"context_line":"#include \"helper/log.h\""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"#define VD_VERSION 43"},{"line_number":76,"context_line":"#define VD_BUFFER_LEN 4024"},{"line_number":77,"context_line":"#define VD_CHEADER_LEN 24"},{"line_number":78,"context_line":"#define VD_SHEADER_LEN 16"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"eaf86ea9_53b19e79","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":21},"in_reply_to":"62b5d79b_49f6fc3b","updated":"2021-12-09 18:51:29.000000000","message":"No, this is an integral part of every client build. The version number is used for cross compatibility checking across 3 vdebug components and cannot be overridden at run time at a convenience. A current version is put in there and tested with the given server and BFMs version. Of course one can modify it in the source at the risk of breaking the functionality, when the server does not implement what all the functionality that client requires.","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"03d6a9a6d05f7b013dacd231b51ec87a2ffad5a5","unresolved":true,"context_lines":[{"line_number":72,"context_line":"#include \"helper/replacements.h\""},{"line_number":73,"context_line":"#include \"helper/log.h\""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"#define VD_VERSION 43"},{"line_number":76,"context_line":"#define VD_BUFFER_LEN 4024"},{"line_number":77,"context_line":"#define VD_CHEADER_LEN 24"},{"line_number":78,"context_line":"#define VD_SHEADER_LEN 16"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"62b5d79b_49f6fc3b","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":21},"in_reply_to":"9d270d60_fb67306e","updated":"2021-11-19 09:09:38.000000000","message":"I assume this option can be added or discussed after the patch was merged. Making more options and changes will make mainlining even more fuzzy :)","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"714e0aec355378b80c7b0b8b0c6cdae1771ad0dd","unresolved":true,"context_lines":[{"line_number":381,"context_line":"\t\tvdc.trans_first \u003d waddr ? 0 : 1;"},{"line_number":382,"context_line":"\t\tif (hdr-\u003ecmd \u003d\u003d 3) { /* read */"},{"line_number":383,"context_line":"\t\t\ttdo \u003d vdc.tdo;"},{"line_number":384,"context_line":"\t\t\tfor (j \u003d 0; j \u003c bytes; j++) {"},{"line_number":385,"context_line":"\t\t\t\ttdo[j] \u003d (pm-\u003erd8[rwords * 8 + j] \u003e\u003e num_pre) | (pm-\u003erd8[rwords * 8 + j + 1] \u003c\u003c (8 - num_pre));"},{"line_number":386,"context_line":"\t\t\t\tLOG_DEBUG_IO(\"%04x D0[%02x]:%02x\", pm-\u003ewid - count + req, j, tdo[j]);"},{"line_number":387,"context_line":"\t\t\t}"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"dd7e92de_eef5ad17","line":384,"updated":"2021-11-24 17:50:20.000000000","message":"Variable declaration here","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"d17e4ee3760bf3e14f9b1bd4fedf12a1f8cdaeef","unresolved":false,"context_lines":[{"line_number":381,"context_line":"\t\tvdc.trans_first \u003d waddr ? 0 : 1;"},{"line_number":382,"context_line":"\t\tif (hdr-\u003ecmd \u003d\u003d 3) { /* read */"},{"line_number":383,"context_line":"\t\t\ttdo \u003d vdc.tdo;"},{"line_number":384,"context_line":"\t\t\tfor (j \u003d 0; j \u003c bytes; j++) {"},{"line_number":385,"context_line":"\t\t\t\ttdo[j] \u003d (pm-\u003erd8[rwords * 8 + j] \u003e\u003e num_pre) | (pm-\u003erd8[rwords * 8 + j + 1] \u003c\u003c (8 - num_pre));"},{"line_number":386,"context_line":"\t\t\t\tLOG_DEBUG_IO(\"%04x D0[%02x]:%02x\", pm-\u003ewid - count + req, j, tdo[j]);"},{"line_number":387,"context_line":"\t\t\t}"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"235a6eaa_dec0c365","line":384,"in_reply_to":"dd7e92de_eef5ad17","updated":"2021-12-09 18:51:29.000000000","message":"Done","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"714e0aec355378b80c7b0b8b0c6cdae1771ad0dd","unresolved":true,"context_lines":[{"line_number":427,"context_line":"\tpm-\u003erwords \u003d 0;"},{"line_number":428,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":429,"context_line":"\tif (rc !\u003d 0) {                     /* communication problem */"},{"line_number":430,"context_line":"\t\tLOG_ERROR(\"Error 0x%x connecting to server\", rc);"},{"line_number":431,"context_line":"\t} else if (pm-\u003erid \u003c pm-\u003ewid) {"},{"line_number":432,"context_line":"\t\tLOG_ERROR(\"Error server version %d too old for the client %d\", pm-\u003erid, pm-\u003ewid);"},{"line_number":433,"context_line":"\t\tpm-\u003ecmd \u003d VD_CMD_CLOSE;        /* let server close the connection */"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"6d5521b6_e53906d3","line":430,"updated":"2021-11-24 17:50:20.000000000","message":"\"Error\" prefix is redundant, LOG_ERROR() already prints it (same below and probably somewhere else)","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"d17e4ee3760bf3e14f9b1bd4fedf12a1f8cdaeef","unresolved":false,"context_lines":[{"line_number":427,"context_line":"\tpm-\u003erwords \u003d 0;"},{"line_number":428,"context_line":"\trc \u003d wait_server(hsock, pm);"},{"line_number":429,"context_line":"\tif (rc !\u003d 0) {                     /* communication problem */"},{"line_number":430,"context_line":"\t\tLOG_ERROR(\"Error 0x%x connecting to server\", rc);"},{"line_number":431,"context_line":"\t} else if (pm-\u003erid \u003c pm-\u003ewid) {"},{"line_number":432,"context_line":"\t\tLOG_ERROR(\"Error server version %d too old for the client %d\", pm-\u003erid, pm-\u003ewid);"},{"line_number":433,"context_line":"\t\tpm-\u003ecmd \u003d VD_CMD_CLOSE;        /* let server close the connection */"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"c25bfad7_74cb54da","line":430,"in_reply_to":"6d5521b6_e53906d3","updated":"2021-12-09 18:51:29.000000000","message":"Done","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"714e0aec355378b80c7b0b8b0c6cdae1771ad0dd","unresolved":true,"context_lines":[{"line_number":510,"context_line":"\tpm-\u003erwdata \u003d (write_mask \u003c\u003c 16) | (value \u0026 0xffff); /* mask and value of signals to set */"},{"line_number":511,"context_line":"\tint rc \u003d wait_server(hsock, pm);"},{"line_number":512,"context_line":"\tif (rc) {"},{"line_number":513,"context_line":"\t\tLOG_WARNING(\"Error 0x%x setting signals %04\" PRIx32, rc, write_mask);"},{"line_number":514,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":515,"context_line":"\t}"},{"line_number":516,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"030bed75_1c9007c6","line":513,"updated":"2021-11-24 17:50:20.000000000","message":"LOG_WARNING but \"Error ...\" and ERROR_FAIL return code?","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"d17e4ee3760bf3e14f9b1bd4fedf12a1f8cdaeef","unresolved":false,"context_lines":[{"line_number":510,"context_line":"\tpm-\u003erwdata \u003d (write_mask \u003c\u003c 16) | (value \u0026 0xffff); /* mask and value of signals to set */"},{"line_number":511,"context_line":"\tint rc \u003d wait_server(hsock, pm);"},{"line_number":512,"context_line":"\tif (rc) {"},{"line_number":513,"context_line":"\t\tLOG_WARNING(\"Error 0x%x setting signals %04\" PRIx32, rc, write_mask);"},{"line_number":514,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":515,"context_line":"\t}"},{"line_number":516,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"0976918c_2ded44dd","line":513,"in_reply_to":"030bed75_1c9007c6","updated":"2021-12-09 18:51:29.000000000","message":"In the original client there are errors and fatal errors, and non fatal errors, which does not need to close the client have been ported to LOG_WARNING. I have changed them to errors here and below.","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"714e0aec355378b80c7b0b8b0c6cdae1771ad0dd","unresolved":true,"context_lines":[{"line_number":527,"context_line":"\tpm-\u003erwdata \u003d value;  /* divider value */"},{"line_number":528,"context_line":"\tint rc \u003d wait_server(hsock, pm);"},{"line_number":529,"context_line":"\tif (rc) {"},{"line_number":530,"context_line":"\t\tLOG_WARNING(\"Error 0x%x setting jtag_clock\", rc);"},{"line_number":531,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":532,"context_line":"\t}"},{"line_number":533,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"a6d05ed2_eecd883a","line":530,"updated":"2021-11-24 17:50:20.000000000","message":"Same here","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"d17e4ee3760bf3e14f9b1bd4fedf12a1f8cdaeef","unresolved":false,"context_lines":[{"line_number":527,"context_line":"\tpm-\u003erwdata \u003d value;  /* divider value */"},{"line_number":528,"context_line":"\tint rc \u003d wait_server(hsock, pm);"},{"line_number":529,"context_line":"\tif (rc) {"},{"line_number":530,"context_line":"\t\tLOG_WARNING(\"Error 0x%x setting jtag_clock\", rc);"},{"line_number":531,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":532,"context_line":"\t}"},{"line_number":533,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"5275e471_61cf8dec","line":530,"in_reply_to":"a6d05ed2_eecd883a","updated":"2021-12-09 18:51:29.000000000","message":"Done","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"714e0aec355378b80c7b0b8b0c6cdae1771ad0dd","unresolved":true,"context_lines":[{"line_number":565,"context_line":"\t\tvdc.trans_last \u003d 1;        /* force flush within 64B of buffer end */"},{"line_number":566,"context_line":"\t} else if (waddr + 2 + 2 * hwords \u003e VD_BUFFER_LEN / 4) {"},{"line_number":567,"context_line":"\t\t/* this req does not fit, discard it */"},{"line_number":568,"context_line":"\t\tLOG_WARNING(\"%04x L:%02d O:%05x @%04x too many bits, Error\","},{"line_number":569,"context_line":"\t\t\tpm-\u003ewid, anum, (vdc.trans_first \u003c\u003c 14) | (vdc.trans_last \u003c\u003c 15), waddr);"},{"line_number":570,"context_line":"\t\trc \u003d ERROR_FAIL;"},{"line_number":571,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"be299691_3e6c8943","line":568,"updated":"2021-11-24 17:50:20.000000000","message":"LOG_WARNING() but \"... Error\" and ERROR_FAIL","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"d17e4ee3760bf3e14f9b1bd4fedf12a1f8cdaeef","unresolved":false,"context_lines":[{"line_number":565,"context_line":"\t\tvdc.trans_last \u003d 1;        /* force flush within 64B of buffer end */"},{"line_number":566,"context_line":"\t} else if (waddr + 2 + 2 * hwords \u003e VD_BUFFER_LEN / 4) {"},{"line_number":567,"context_line":"\t\t/* this req does not fit, discard it */"},{"line_number":568,"context_line":"\t\tLOG_WARNING(\"%04x L:%02d O:%05x @%04x too many bits, Error\","},{"line_number":569,"context_line":"\t\t\tpm-\u003ewid, anum, (vdc.trans_first \u003c\u003c 14) | (vdc.trans_last \u003c\u003c 15), waddr);"},{"line_number":570,"context_line":"\t\trc \u003d ERROR_FAIL;"},{"line_number":571,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"df7b84c0_443c317d","line":568,"in_reply_to":"be299691_3e6c8943","updated":"2021-12-09 18:51:29.000000000","message":"Done","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"714e0aec355378b80c7b0b8b0c6cdae1771ad0dd","unresolved":true,"context_lines":[{"line_number":571,"context_line":"\t}"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"\tif (!rc \u0026\u0026 anum) {"},{"line_number":574,"context_line":"\t\thdr \u003d (struct vd_jtag_hdr *)\u0026pm-\u003ewd8[4 * waddr]; /* 8 bytes header */"},{"line_number":575,"context_line":"\t\thdr-\u003ecmd \u003d (tdo ? 3 : 1); /* R and W bits */"},{"line_number":576,"context_line":"\t\thdr-\u003epre \u003d num_pre;"},{"line_number":577,"context_line":"\t\thdr-\u003epost \u003d num_post;"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"05f718c0_4295fe3c","line":574,"updated":"2021-11-24 17:50:20.000000000","message":"Declare i and j here?","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"d17e4ee3760bf3e14f9b1bd4fedf12a1f8cdaeef","unresolved":false,"context_lines":[{"line_number":571,"context_line":"\t}"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"\tif (!rc \u0026\u0026 anum) {"},{"line_number":574,"context_line":"\t\thdr \u003d (struct vd_jtag_hdr *)\u0026pm-\u003ewd8[4 * waddr]; /* 8 bytes header */"},{"line_number":575,"context_line":"\t\thdr-\u003ecmd \u003d (tdo ? 3 : 1); /* R and W bits */"},{"line_number":576,"context_line":"\t\thdr-\u003epre \u003d num_pre;"},{"line_number":577,"context_line":"\t\thdr-\u003epost \u003d num_post;"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"0d837f92_675f42b3","line":574,"in_reply_to":"05f718c0_4295fe3c","updated":"2021-12-09 18:51:29.000000000","message":"Done","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"714e0aec355378b80c7b0b8b0c6cdae1771ad0dd","unresolved":true,"context_lines":[{"line_number":806,"context_line":"\tLOG_DEBUG(\"scan len:%d fields:%d ir/!dr:%d state cur:%x end:%x\","},{"line_number":807,"context_line":"\t\t\t  num_bits, cmd-\u003enum_fields, cmd-\u003eir_scan, cur, cmd-\u003eend_state);"},{"line_number":808,"context_line":"\tfor (int i \u003d 0; i \u003c cmd-\u003enum_fields; i++) {"},{"line_number":809,"context_line":"\t\trc \u003d vdebug_jtag_shift_tap(vdc.hsocket, pbuf, i \u003d\u003d 0 ? num_pre : 0,"},{"line_number":810,"context_line":"\t\t\ti \u003d\u003d 0 ? tms_pre : 0, cmd-\u003efields[i].num_bits, cmd-\u003efields[i].out_value,"},{"line_number":811,"context_line":"\t\t\ti \u003d\u003d cmd-\u003enum_fields - 1 ? num_post : 0, i \u003d\u003d cmd-\u003enum_fields - 1 ? tms_post : 0,"},{"line_number":812,"context_line":"\t\t\tcmd-\u003efields[i].in_value, i \u003d\u003d cmd-\u003enum_fields - 1 ? f_flush : 0);"},{"line_number":813,"context_line":"\t\tif (rc)"},{"line_number":814,"context_line":"\t\t\tbreak;"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"76b1f84a_6ac3dc1b","line":811,"range":{"start_line":809,"start_character":1,"end_line":811,"end_character":78},"updated":"2021-11-24 17:50:20.000000000","message":"Maybe you want to introduce some variables here...","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"d17e4ee3760bf3e14f9b1bd4fedf12a1f8cdaeef","unresolved":false,"context_lines":[{"line_number":806,"context_line":"\tLOG_DEBUG(\"scan len:%d fields:%d ir/!dr:%d state cur:%x end:%x\","},{"line_number":807,"context_line":"\t\t\t  num_bits, cmd-\u003enum_fields, cmd-\u003eir_scan, cur, cmd-\u003eend_state);"},{"line_number":808,"context_line":"\tfor (int i \u003d 0; i \u003c cmd-\u003enum_fields; i++) {"},{"line_number":809,"context_line":"\t\trc \u003d vdebug_jtag_shift_tap(vdc.hsocket, pbuf, i \u003d\u003d 0 ? num_pre : 0,"},{"line_number":810,"context_line":"\t\t\ti \u003d\u003d 0 ? tms_pre : 0, cmd-\u003efields[i].num_bits, cmd-\u003efields[i].out_value,"},{"line_number":811,"context_line":"\t\t\ti \u003d\u003d cmd-\u003enum_fields - 1 ? num_post : 0, i \u003d\u003d cmd-\u003enum_fields - 1 ? tms_post : 0,"},{"line_number":812,"context_line":"\t\t\tcmd-\u003efields[i].in_value, i \u003d\u003d cmd-\u003enum_fields - 1 ? f_flush : 0);"},{"line_number":813,"context_line":"\t\tif (rc)"},{"line_number":814,"context_line":"\t\t\tbreak;"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"7e8d3c34_373c5b90","line":811,"range":{"start_line":809,"start_character":1,"end_line":811,"end_character":78},"in_reply_to":"76b1f84a_6ac3dc1b","updated":"2021-12-09 18:51:29.000000000","message":"Done","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"}],"tcl/board/vd_a53x2_jtag.cfg":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"0d920195_dc230605","line":15,"updated":"2021-09-18 13:02:26.000000000","message":"remove the empty line at the end of the file","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"7088f236_2a13fb7e","line":15,"in_reply_to":"0d920195_dc230605","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"}],"tcl/board/vd_m7f_jtag.cfg":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"ef59721d_d09b5146","line":15,"updated":"2021-09-18 13:02:26.000000000","message":"remove the empty line at the end of the file","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"b2eba270_3130e75e","line":15,"in_reply_to":"ef59721d_d09b5146","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"}],"tcl/board/vd_pulpissimo_jtag.cfg":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"64d6ffab_89ec25ff","line":15,"updated":"2021-09-18 13:02:26.000000000","message":"remove the empty line at the end of the file","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"bdb6b6f2_2fc26a35","line":15,"in_reply_to":"64d6ffab_89ec25ff","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"}],"tcl/board/vd_swerv_jtag.cfg":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"40988294_5a9c6b58","line":15,"updated":"2021-09-18 13:02:26.000000000","message":"remove the empty line at the end of the file","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"b16c0a56_8c2b87f4","line":15,"in_reply_to":"40988294_5a9c6b58","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"}],"tcl/interface/vdebug.cfg":[{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"be7cd3ba2010fdbe86ce01733332fa77c26c7eb0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Cadence virtual debug interface"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"adapter driver vdebug"},{"line_number":5,"context_line":"# vdebug server:port"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"aedf27f1_8f8455a5","line":2,"updated":"2021-04-12 18:58:11.000000000","message":"I\u0027m not sure if it actually make sense to mainline this config. No distribution can use it.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5db1b09d795246bb2b1a58571cc10ca15b8a6e7a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Cadence virtual debug interface"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"adapter driver vdebug"},{"line_number":5,"context_line":"# vdebug server:port"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"aedf27f1_0f16255b","line":2,"in_reply_to":"aedf27f1_8f8455a5","updated":"2021-04-12 23:08:37.000000000","message":"It makes sense to have tcl/interface vebug.cfg, but not in this form.\n- add the license SPDX tag as first line (preceeded by \u0027#\u0027)","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5db1b09d795246bb2b1a58571cc10ca15b8a6e7a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"adapter driver vdebug"},{"line_number":5,"context_line":"# vdebug server:port"},{"line_number":6,"context_line":"vdebug_server localhost:8192"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"# debug level and log"},{"line_number":9,"context_line":"#debug_level 3"},{"line_number":10,"context_line":"#log_output vd_ocd.log"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"aedf27f1_2f1be983","line":7,"updated":"2021-04-12 23:08:37.000000000","message":"all the lines after this one are not supposed to be part of this file.","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"29268d64de4e930a2e545f0935d46ac6e073457d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"adapter driver vdebug"},{"line_number":5,"context_line":"# vdebug server:port"},{"line_number":6,"context_line":"vdebug_server localhost:8192"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"# debug level and log"},{"line_number":9,"context_line":"#debug_level 3"},{"line_number":10,"context_line":"#log_output vd_ocd.log"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"aedf27f1_527052a3","line":7,"in_reply_to":"aedf27f1_2f1be983","updated":"2021-04-14 09:40:14.000000000","message":"OK. Where do I specify them ? It looks to me a like a general configuration, which apply to all the targets/boards, so best to set them per debug driver ?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"f578c18d_7004a94e","line":25,"updated":"2021-09-18 13:02:26.000000000","message":"remove the empty line at the end of the file","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"ed61039a_bd5de74a","line":25,"in_reply_to":"f578c18d_7004a94e","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001661,"name":"Daniel Goehring","email":"dgoehrin@os.amperecomputing.com","username":"dgoehrin"},"change_message_id":"5548365bd4af4032f28daea7d616f040e1f6435d","unresolved":true,"context_lines":[{"line_number":5,"context_line":"# vdebug server:port"},{"line_number":6,"context_line":"vdebug server localhost:8192"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"# debug level and log"},{"line_number":9,"context_line":"#debug_level 3"},{"line_number":10,"context_line":"#log_output vd_ocd.log"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"# listen on all interfaces"},{"line_number":13,"context_line":"bindto 0.0.0.0"},{"line_number":14,"context_line":"gdb_port 3333"},{"line_number":15,"context_line":"#gdb_report_data_abort enable"},{"line_number":16,"context_line":"#gdb_report_register_access_error enable"},{"line_number":17,"context_line":"#telnet_port disabled"},{"line_number":18,"context_line":"tcl_port disabled"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# transaction batching: 0 - no batching, 1 - (default) wr, 2 - rw"},{"line_number":21,"context_line":"vdebug batching 2"}],"source_content_type":"text/x-ttcn-cfg","patch_set":13,"id":"bb54611b_83dcdf3b","line":18,"range":{"start_line":8,"start_character":0,"end_line":18,"end_character":17},"updated":"2021-11-08 16:24:13.000000000","message":"For cleanup I\u0027d remove this code. This belongs in a top-level user config file.","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"d17e4ee3760bf3e14f9b1bd4fedf12a1f8cdaeef","unresolved":false,"context_lines":[{"line_number":5,"context_line":"# vdebug server:port"},{"line_number":6,"context_line":"vdebug server localhost:8192"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"# debug level and log"},{"line_number":9,"context_line":"#debug_level 3"},{"line_number":10,"context_line":"#log_output vd_ocd.log"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"# listen on all interfaces"},{"line_number":13,"context_line":"bindto 0.0.0.0"},{"line_number":14,"context_line":"gdb_port 3333"},{"line_number":15,"context_line":"#gdb_report_data_abort enable"},{"line_number":16,"context_line":"#gdb_report_register_access_error enable"},{"line_number":17,"context_line":"#telnet_port disabled"},{"line_number":18,"context_line":"tcl_port disabled"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# transaction batching: 0 - no batching, 1 - (default) wr, 2 - rw"},{"line_number":21,"context_line":"vdebug batching 2"}],"source_content_type":"text/x-ttcn-cfg","patch_set":13,"id":"fbe58c51_110dd915","line":18,"range":{"start_line":8,"start_character":0,"end_line":18,"end_character":17},"in_reply_to":"1ba1376a_9524a71e","updated":"2021-12-09 18:51:29.000000000","message":"Yes, these commands are put there as an examples, quick to modify for unexperienced user. Most of them commented out, saved for the bind, which I think saves some frustration and support calls. openocd.cfg does not exists after install. \nYes, agree. The port (and host) override can be useful.","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1001661,"name":"Daniel Goehring","email":"dgoehrin@os.amperecomputing.com","username":"dgoehrin"},"change_message_id":"ca78e84a29386b4b7e806ee8b78971e4204eb2e7","unresolved":true,"context_lines":[{"line_number":5,"context_line":"# vdebug server:port"},{"line_number":6,"context_line":"vdebug server localhost:8192"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"# debug level and log"},{"line_number":9,"context_line":"#debug_level 3"},{"line_number":10,"context_line":"#log_output vd_ocd.log"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"# listen on all interfaces"},{"line_number":13,"context_line":"bindto 0.0.0.0"},{"line_number":14,"context_line":"gdb_port 3333"},{"line_number":15,"context_line":"#gdb_report_data_abort enable"},{"line_number":16,"context_line":"#gdb_report_register_access_error enable"},{"line_number":17,"context_line":"#telnet_port disabled"},{"line_number":18,"context_line":"tcl_port disabled"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# transaction batching: 0 - no batching, 1 - (default) wr, 2 - rw"},{"line_number":21,"context_line":"vdebug batching 2"}],"source_content_type":"text/x-ttcn-cfg","patch_set":13,"id":"1ba1376a_9524a71e","line":18,"range":{"start_line":8,"start_character":0,"end_line":18,"end_character":17},"in_reply_to":"2d4d4efe_065bc90a","updated":"2021-11-19 14:21:37.000000000","message":"None of the other interface configuration files in OpenOCD do this and are ready to go after OpenOCD installation.\n\nIf it is kept as an example, my recommendation would be to comment out the following lines:\n\nbindto 0.0.0.0\ngdb_port 3333\ntcl_port disabled\n\nThis is optional, but I would also consider modifying the line that sets the vdebug server port to...\n\n\tif { [info exists VDEBUGPORT] } {\n\t\tvdebug server localhost:$VDEBUGPORT\n\t} else {\n\t\tvdebug server localhost:8192\n\t}\n\nThis allows users to override the default 8192 port value if necessary.","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"03d6a9a6d05f7b013dacd231b51ec87a2ffad5a5","unresolved":true,"context_lines":[{"line_number":5,"context_line":"# vdebug server:port"},{"line_number":6,"context_line":"vdebug server localhost:8192"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"# debug level and log"},{"line_number":9,"context_line":"#debug_level 3"},{"line_number":10,"context_line":"#log_output vd_ocd.log"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"# listen on all interfaces"},{"line_number":13,"context_line":"bindto 0.0.0.0"},{"line_number":14,"context_line":"gdb_port 3333"},{"line_number":15,"context_line":"#gdb_report_data_abort enable"},{"line_number":16,"context_line":"#gdb_report_register_access_error enable"},{"line_number":17,"context_line":"#telnet_port disabled"},{"line_number":18,"context_line":"tcl_port disabled"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# transaction batching: 0 - no batching, 1 - (default) wr, 2 - rw"},{"line_number":21,"context_line":"vdebug batching 2"}],"source_content_type":"text/x-ttcn-cfg","patch_set":13,"id":"2d4d4efe_065bc90a","line":18,"range":{"start_line":8,"start_character":0,"end_line":18,"end_character":17},"in_reply_to":"bb54611b_83dcdf3b","updated":"2021-11-19 09:09:38.000000000","message":"Yes, but we decided to keep it as example","commit_id":"8bff5a722b17bfb679d756b469e24bfba62da95b"}],"tcl/target/vd_a53x2_jtag.cfg":[{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"863a7e1e36b646d82433f39a90f2675f739d3e0a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"interface vdebug"},{"line_number":5,"context_line":"# vdebug server:port"},{"line_number":6,"context_line":"server localhost:8192"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"# debug level and log"},{"line_number":9,"context_line":"#debug_level 2"},{"line_number":10,"context_line":"#log_output vd_ocd.log"}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"ceda9b01_815addf7","line":7,"updated":"2021-03-13 11:52:02.000000000","message":"interface or workspace specific code","commit_id":"5727e30ac46c281e7e3925798abcc8dcba6bd2ff"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"863a7e1e36b646d82433f39a90f2675f739d3e0a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"gdb_report_data_abort enable"},{"line_number":16,"context_line":"gdb_report_register_access_error enable"},{"line_number":17,"context_line":"telnet_port disabled"},{"line_number":18,"context_line":"tcl_port disabled"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# target specific data"},{"line_number":21,"context_line":"set _CHIPNAME a53x2"}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"ceda9b01_a15fe1e7","line":18,"updated":"2021-03-13 11:52:02.000000000","message":"interface or workspace specific code","commit_id":"5727e30ac46c281e7e3925798abcc8dcba6bd2ff"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"863a7e1e36b646d82433f39a90f2675f739d3e0a","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"reset_config trst_and_srst"},{"line_number":40,"context_line":"adapter speed 50000"},{"line_number":41,"context_line":"adapter srst delay 5"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"ceda9b01_4154f5c9","line":41,"updated":"2021-03-13 11:52:02.000000000","message":"interface or workspace specific code","commit_id":"5727e30ac46c281e7e3925798abcc8dcba6bd2ff"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5db1b09d795246bb2b1a58571cc10ca15b8a6e7a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Cadence virtual debug interface"},{"line_number":2,"context_line":"# Arm Cortex A53x2 through JTAG"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"source [find interface/vdebug.cfg]"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"aedf27f1_8f09b536","line":1,"updated":"2021-04-12 23:08:37.000000000","message":"Please add the SPDX tag as first line. Either\n# SPDX-License-Identifier: GPL-2.0-or-later\nas all OpenOCD, or the license you prefer.\n\nThen, this is a target config file, not an interface","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5db1b09d795246bb2b1a58571cc10ca15b8a6e7a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Cadence virtual debug interface"},{"line_number":2,"context_line":"# Arm Cortex A53x2 through JTAG"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"source [find interface/vdebug.cfg]"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"# vdebug select JTAG transport"},{"line_number":7,"context_line":"transport select jtag"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"aedf27f1_af06f921","line":4,"updated":"2021-04-12 23:08:37.000000000","message":"It\u0027s clear that this is a virtual platform, but I would prefer keeping the hierarchy \u0027board\u0027 file that includes \u0027interface\u0027 and \u0027target\u0027.\nHere in target config is not the place to include interface, nor to define reset delay (line 11 below).\nBut then you have other vdebug commands in examine-end event ... I need to think it over...","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"29268d64de4e930a2e545f0935d46ac6e073457d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Cadence virtual debug interface"},{"line_number":2,"context_line":"# Arm Cortex A53x2 through JTAG"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"source [find interface/vdebug.cfg]"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"# vdebug select JTAG transport"},{"line_number":7,"context_line":"transport select jtag"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"aedf27f1_f23946cc","line":4,"in_reply_to":"aedf27f1_af06f921","updated":"2021-04-14 09:40:14.000000000","message":"Thanks. It is not very clear to me what target and board specific settings are. A simulated/emulated SoC corresponds really to a target board, so from the virtual connection perspective there is no difference between a board and target. \nFor other debuggers I keep separate configs for target/board when I specify different transport protocol.\nShould we keep this file under target and create a board that includes it together with the vdebug interface ?","commit_id":"b30b1cee69f1aabe67633b025798d637043c7c87"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"663c3258_09433821","line":54,"updated":"2021-09-18 13:02:26.000000000","message":"remove the empty line at the end of the file","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"f5be0ade_0f3945bd","line":54,"in_reply_to":"663c3258_09433821","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"}],"tcl/target/vd_m7f_jtag.cfg":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"460a5e88_a7883566","line":31,"updated":"2021-09-18 13:02:26.000000000","message":"remove the empty line at the end of the file","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"2177315f_430c04d2","line":31,"in_reply_to":"460a5e88_a7883566","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"}],"tcl/target/vd_pulpissimo_jtag.cfg":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"0f37fcf9bc5ec67c44b2b523cae32f3df77ab103","unresolved":true,"context_lines":[{"line_number":13,"context_line":"vdebug mem_path tbench.soc_domain_i.pulp_soc_i.gen_mem_l2_pri\\[1\\].sram_i.mem_array 0x1c008000 0x8000"},{"line_number":14,"context_line":"vdebug mem_path tbench.soc_domain_i.pulp_soc_i.gen_mem_l2\\[0\\].sram_i.mem_array 0x1c010000 0x80000"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# need to explicitely define riscv tap, autoprobing does not work for icapture !\u003d 0x01"},{"line_number":17,"context_line":"jtag newtap $_CHIPNAME cpu -irlen 5 -ircapture 0x05 -irmask 0x1f -expected-id $_CPUTAPID"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"jtag arp_init-reset"}],"source_content_type":"text/x-ttcn-cfg","patch_set":10,"id":"0f9c7f05_409f1a38","line":16,"range":{"start_line":16,"start_character":10,"end_line":16,"end_character":21},"updated":"2021-09-12 20:48:27.000000000","message":"typo s/explicitely/explicitly/","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":13,"context_line":"vdebug mem_path tbench.soc_domain_i.pulp_soc_i.gen_mem_l2_pri\\[1\\].sram_i.mem_array 0x1c008000 0x8000"},{"line_number":14,"context_line":"vdebug mem_path tbench.soc_domain_i.pulp_soc_i.gen_mem_l2\\[0\\].sram_i.mem_array 0x1c010000 0x80000"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# need to explicitely define riscv tap, autoprobing does not work for icapture !\u003d 0x01"},{"line_number":17,"context_line":"jtag newtap $_CHIPNAME cpu -irlen 5 -ircapture 0x05 -irmask 0x1f -expected-id $_CPUTAPID"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"jtag arp_init-reset"}],"source_content_type":"text/x-ttcn-cfg","patch_set":10,"id":"2da38c0b_7feb81bc","line":16,"range":{"start_line":16,"start_character":10,"end_line":16,"end_character":21},"in_reply_to":"0f9c7f05_409f1a38","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"6b61cf97_813cc394","line":35,"updated":"2021-09-18 13:02:26.000000000","message":"remove the empty line at the end of the file","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"2bfbf55f_d349f146","line":35,"in_reply_to":"6b61cf97_813cc394","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"}],"tcl/target/vd_swerv_jtag.cfg":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"0f37fcf9bc5ec67c44b2b523cae32f3df77ab103","unresolved":true,"context_lines":[{"line_number":13,"context_line":"# DMA Memories to access backdoor (up to 4)"},{"line_number":14,"context_line":"vdebug mem_path tbench.u_ahb_ic.mem $_MEMSTART $_MEMSIZE"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# need to explicitely define riscv tap, autoprobing does not work for icapture !\u003d 0x01"},{"line_number":17,"context_line":"jtag newtap $_CHIPNAME cpu -irlen 5 -ircapture 0x01 -irmask 0x1f -expected-id $_CPUTAPID"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"jtag arp_init-reset"}],"source_content_type":"text/x-ttcn-cfg","patch_set":10,"id":"65bbaef6_299293fe","line":16,"updated":"2021-09-12 20:48:27.000000000","message":"typo s/explicitely/explicitly/","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"1373c4c98e58fcf886dfb2dc21b4f530da94de18","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# DMA Memories to access backdoor (up to 4)"},{"line_number":14,"context_line":"vdebug mem_path tbench.u_ahb_ic.mem $_MEMSTART $_MEMSIZE"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# need to explicitely define riscv tap, autoprobing does not work for icapture !\u003d 0x01"},{"line_number":17,"context_line":"jtag newtap $_CHIPNAME cpu -irlen 5 -ircapture 0x01 -irmask 0x1f -expected-id $_CPUTAPID"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"jtag arp_init-reset"}],"source_content_type":"text/x-ttcn-cfg","patch_set":10,"id":"02941ce0_7bdffa6e","line":16,"in_reply_to":"65bbaef6_299293fe","updated":"2021-09-16 09:48:59.000000000","message":"Done","commit_id":"d5feacc5b6ef6075fe3a36e8a8661a8092c1bf49"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eb866144abd97e99e9b14d2df15c126ef9407310","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"9512c7f9_50286a17","line":35,"updated":"2021-09-18 13:02:26.000000000","message":"remove the empty line at the end of the file","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"},{"author":{"_account_id":1001872,"name":"Jacek Wuwer","email":"jacekmw8@gmail.com","username":"jacekmw8"},"change_message_id":"762bb5cdbb2dfe373ac0c94495a649742f96ad99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"205b154c_dc870eda","line":35,"in_reply_to":"9512c7f9_50286a17","updated":"2021-10-07 15:25:41.000000000","message":"Done","commit_id":"4fd6e4209a318bafb926e5f1b42dcc1ee2e068a5"}]}
