Lines Matching defs:buf
85 static int arm_spe_get_payload(const unsigned char *buf, size_t len,
88 size_t payload_len = payloadlen(buf[0]);
93 buf++;
96 case 1: packet->payload = *(uint8_t *)buf; break;
97 case 2: packet->payload = le16_to_cpu(*(uint16_t *)buf); break;
98 case 4: packet->payload = le32_to_cpu(*(uint32_t *)buf); break;
99 case 8: packet->payload = le64_to_cpu(*(uint64_t *)buf); break;
112 static int arm_spe_get_alignment(const unsigned char *buf, size_t len,
115 unsigned int alignment = 1 << ((buf[0] & 0xf) + 1);
121 return alignment - (((uintptr_t)buf) & (alignment - 1));
130 static int arm_spe_get_timestamp(const unsigned char *buf, size_t len,
134 return arm_spe_get_payload(buf, len, packet);
137 static int arm_spe_get_events(const unsigned char *buf, size_t len,
140 int ret = arm_spe_get_payload(buf, len, packet);
154 static int arm_spe_get_data_source(const unsigned char *buf, size_t len,
158 return arm_spe_get_payload(buf, len, packet);
161 static int arm_spe_get_context(const unsigned char *buf, size_t len,
165 packet->index = buf[0] & 0x3;
167 return arm_spe_get_payload(buf, len, packet);
170 static int arm_spe_get_op_type(const unsigned char *buf, size_t len,
174 packet->index = buf[0] & 0x3;
175 return arm_spe_get_payload(buf, len, packet);
178 static int arm_spe_get_counter(const unsigned char *buf, size_t len,
186 packet->index = ((buf[0] & 0x3) << 3) | (buf[1] & 0x7);
188 packet->index = buf[0] & 0x7;
190 packet->payload = le16_to_cpu(*(uint16_t *)(buf + 1));
195 static int arm_spe_get_addr(const unsigned char *buf, size_t len,
203 packet->index = ((buf[0] & 0x3) << 3) | (buf[1] & 0x7);
205 packet->index = buf[0] & 0x7;
207 memcpy_le64(&packet->payload, buf + 1, 8);
212 static int arm_spe_do_get_packet(const unsigned char *buf, size_t len,
222 byte = buf[0];
230 return arm_spe_get_addr(buf, len, 0, packet);
232 return arm_spe_get_counter(buf, len, 0, packet);
235 return arm_spe_get_timestamp(buf, len, packet);
237 return arm_spe_get_events(buf, len, packet);
239 return arm_spe_get_data_source(buf, len, packet);
241 return arm_spe_get_context(buf, len, packet);
243 return arm_spe_get_op_type(buf, len, packet);
246 byte = buf[1];
248 return arm_spe_get_alignment(buf, len, packet);
250 return arm_spe_get_addr(buf, len, 1, packet);
252 return arm_spe_get_counter(buf, len, 1, packet);
258 int arm_spe_get_packet(const unsigned char *buf, size_t len,
263 ret = arm_spe_do_get_packet(buf, len, packet);
268 while (ret < 16 && len > (size_t)ret && !buf[ret])
274 int arm_spe_pkt_desc(const struct arm_spe_pkt *packet, char *buf,
285 return snprintf(buf, buf_len, "%s", name);
290 ret = snprintf(buf, buf_len, "EV");
291 buf += ret;
294 ret = snprintf(buf, buf_len, " EXCEPTION-GEN");
295 buf += ret;
299 ret = snprintf(buf, buf_len, " RETIRED");
300 buf += ret;
304 ret = snprintf(buf, buf_len, " L1D-ACCESS");
305 buf += ret;
309 ret = snprintf(buf, buf_len, " L1D-REFILL");
310 buf += ret;
314 ret = snprintf(buf, buf_len, " TLB-ACCESS");
315 buf += ret;
319 ret = snprintf(buf, buf_len, " TLB-REFILL");
320 buf += ret;
324 ret = snprintf(buf, buf_len, " NOT-TAKEN");
325 buf += ret;
329 ret = snprintf(buf, buf_len, " MISPRED");
330 buf += ret;
335 ret = snprintf(buf, buf_len, " LLC-ACCESS");
336 buf += ret;
340 ret = snprintf(buf, buf_len, " LLC-REFILL");
341 buf += ret;
345 ret = snprintf(buf, buf_len, " REMOTE-ACCESS");
346 buf += ret;
357 case 0: return snprintf(buf, buf_len, "%s", payload & 0x1 ?
363 ret = snprintf(buf, buf_len, "ST");
365 ret = snprintf(buf, buf_len, "LD");
366 buf += ret;
370 ret = snprintf(buf, buf_len, " AT");
371 buf += ret;
375 ret = snprintf(buf, buf_len, " EXCL");
376 buf += ret;
380 ret = snprintf(buf, buf_len, " AR");
381 buf += ret;
385 ret = snprintf(buf, buf_len, " SIMD-FP");
386 buf += ret;
397 ret = snprintf(buf, buf_len, "B");
398 buf += ret;
401 ret = snprintf(buf, buf_len, " COND");
402 buf += ret;
406 ret = snprintf(buf, buf_len, " IND");
407 buf += ret;
419 return snprintf(buf, buf_len, "%s %lld", name, payload);
426 return snprintf(buf, buf_len, "%s 0x%llx el%d ns=%d",
428 case 2: return snprintf(buf, buf_len, "VA 0x%llx", payload);
431 return snprintf(buf, buf_len, "PA 0x%llx ns=%d",
436 return snprintf(buf, buf_len, "%s 0x%lx el%d", name,
441 ret = snprintf(buf, buf_len, "%s %d ", name,
443 buf += ret;
446 case 0: ret = snprintf(buf, buf_len, "TOT"); break;
447 case 1: ret = snprintf(buf, buf_len, "ISSUE"); break;
448 case 2: ret = snprintf(buf, buf_len, "XLAT"); break;
460 return snprintf(buf, buf_len, "%s 0x%llx (%d)",