|
@@ -31,6 +31,8 @@
|
|
#endif
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
+#define CS_ETM_INVAL_ADDR 0xdeadbeefdeadbeefUL
|
|
|
|
+
|
|
struct cs_etm_decoder {
|
|
struct cs_etm_decoder {
|
|
void *data;
|
|
void *data;
|
|
void (*packet_printer)(const char *msg);
|
|
void (*packet_printer)(const char *msg);
|
|
@@ -261,8 +263,8 @@ static void cs_etm_decoder__clear_buffer(struct cs_etm_decoder *decoder)
|
|
decoder->tail = 0;
|
|
decoder->tail = 0;
|
|
decoder->packet_count = 0;
|
|
decoder->packet_count = 0;
|
|
for (i = 0; i < MAX_BUFFER; i++) {
|
|
for (i = 0; i < MAX_BUFFER; i++) {
|
|
- decoder->packet_buffer[i].start_addr = 0xdeadbeefdeadbeefUL;
|
|
|
|
- decoder->packet_buffer[i].end_addr = 0xdeadbeefdeadbeefUL;
|
|
|
|
|
|
+ decoder->packet_buffer[i].start_addr = CS_ETM_INVAL_ADDR;
|
|
|
|
+ decoder->packet_buffer[i].end_addr = CS_ETM_INVAL_ADDR;
|
|
decoder->packet_buffer[i].last_instr_taken_branch = false;
|
|
decoder->packet_buffer[i].last_instr_taken_branch = false;
|
|
decoder->packet_buffer[i].exc = false;
|
|
decoder->packet_buffer[i].exc = false;
|
|
decoder->packet_buffer[i].exc_ret = false;
|
|
decoder->packet_buffer[i].exc_ret = false;
|
|
@@ -295,8 +297,8 @@ cs_etm_decoder__buffer_packet(struct cs_etm_decoder *decoder,
|
|
decoder->packet_buffer[et].exc = false;
|
|
decoder->packet_buffer[et].exc = false;
|
|
decoder->packet_buffer[et].exc_ret = false;
|
|
decoder->packet_buffer[et].exc_ret = false;
|
|
decoder->packet_buffer[et].cpu = *((int *)inode->priv);
|
|
decoder->packet_buffer[et].cpu = *((int *)inode->priv);
|
|
- decoder->packet_buffer[et].start_addr = 0xdeadbeefdeadbeefUL;
|
|
|
|
- decoder->packet_buffer[et].end_addr = 0xdeadbeefdeadbeefUL;
|
|
|
|
|
|
+ decoder->packet_buffer[et].start_addr = CS_ETM_INVAL_ADDR;
|
|
|
|
+ decoder->packet_buffer[et].end_addr = CS_ETM_INVAL_ADDR;
|
|
|
|
|
|
if (decoder->packet_count == MAX_BUFFER - 1)
|
|
if (decoder->packet_count == MAX_BUFFER - 1)
|
|
return OCSD_RESP_WAIT;
|
|
return OCSD_RESP_WAIT;
|