If GPIO tracing is enabled, then the system will track various GPIO pin events. Signed-off-by: Alexander Lay <alexanderlay@tenstorrent.com> Signed-off-by: Yang Xu <yangxu@tenstorrent.com>
1050 lines
14 KiB
Plaintext
1050 lines
14 KiB
Plaintext
/* CTF 1.8 */
|
|
typealias integer { size = 8; align = 8; signed = true; } := int8_t;
|
|
typealias integer { size = 8; align = 8; signed = false; } := uint8_t;
|
|
typealias integer { size = 16; align = 8; signed = false; } := uint16_t;
|
|
typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
|
|
typealias integer { size = 32; align = 8; signed = true; } := int32_t;
|
|
typealias integer { size = 64; align = 8; signed = false; } := uint64_t;
|
|
typealias integer { size = 8; align = 8; signed = false; encoding = ASCII; } := ctf_bounded_string_t;
|
|
|
|
struct event_header {
|
|
uint32_t timestamp;
|
|
uint8_t id;
|
|
};
|
|
|
|
trace {
|
|
major = 1;
|
|
minor = 8;
|
|
byte_order = le;
|
|
};
|
|
|
|
stream {
|
|
event.header := struct event_header;
|
|
};
|
|
|
|
event {
|
|
name = thread_switched_out;
|
|
id = 0x10;
|
|
fields := struct {
|
|
uint32_t thread_id;
|
|
ctf_bounded_string_t name[20];
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = thread_switched_in;
|
|
id = 0x11;
|
|
fields := struct {
|
|
uint32_t thread_id;
|
|
ctf_bounded_string_t name[20];
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = thread_priority_set;
|
|
id = 0x12;
|
|
fields := struct {
|
|
uint32_t thread_id;
|
|
ctf_bounded_string_t name[20];
|
|
int8_t prio;
|
|
};
|
|
|
|
};
|
|
|
|
event {
|
|
name = thread_create;
|
|
id = 0x13;
|
|
fields := struct {
|
|
uint32_t thread_id;
|
|
ctf_bounded_string_t name[20];
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = thread_abort;
|
|
id = 0x14;
|
|
fields := struct {
|
|
uint32_t thread_id;
|
|
ctf_bounded_string_t name[20];
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = thread_suspend;
|
|
id = 0x15;
|
|
fields := struct {
|
|
uint32_t thread_id;
|
|
ctf_bounded_string_t name[20];
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = thread_resume;
|
|
id = 0x16;
|
|
fields := struct {
|
|
uint32_t thread_id;
|
|
ctf_bounded_string_t name[20];
|
|
};
|
|
};
|
|
event {
|
|
name = thread_ready;
|
|
id = 0x17;
|
|
fields := struct {
|
|
uint32_t thread_id;
|
|
ctf_bounded_string_t name[20];
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = thread_pending;
|
|
id = 0x18;
|
|
fields := struct {
|
|
uint32_t thread_id;
|
|
ctf_bounded_string_t name[20];
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = thread_info;
|
|
id = 0x19;
|
|
fields := struct {
|
|
uint32_t thread_id;
|
|
ctf_bounded_string_t name[20];
|
|
uint32_t stack_base;
|
|
uint32_t stack_size;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = thread_name_set;
|
|
id = 0x1a;
|
|
fields := struct {
|
|
uint32_t thread_id;
|
|
ctf_bounded_string_t name[20];
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = isr_enter;
|
|
id = 0x1B;
|
|
};
|
|
|
|
event {
|
|
name = isr_exit;
|
|
id = 0x1C;
|
|
};
|
|
|
|
event {
|
|
name = isr_exit_to_scheduler;
|
|
id = 0x1D;
|
|
};
|
|
|
|
event {
|
|
name = idle;
|
|
id = 0x1E;
|
|
};
|
|
|
|
event {
|
|
name = semaphore_init;
|
|
id = 0x21;
|
|
fields := struct {
|
|
uint32_t id;
|
|
int32_t ret;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = semaphore_give_enter;
|
|
id = 0x22;
|
|
fields := struct {
|
|
uint32_t id;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = semaphore_give_exit;
|
|
id = 0x23;
|
|
fields := struct {
|
|
uint32_t id;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = semaphore_take_enter;
|
|
id = 0x24;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t timeout;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = semaphore_take_exit;
|
|
id = 0x26;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t timeout;
|
|
int32_t ret;
|
|
};
|
|
};
|
|
|
|
|
|
event {
|
|
name = semaphore_take_blocking;
|
|
id = 0x25;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t timeout;
|
|
};
|
|
};
|
|
|
|
|
|
event {
|
|
name = semaphore_reset;
|
|
id = 0x27;
|
|
fields := struct {
|
|
uint32_t id;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = mutex_init;
|
|
id = 0x28;
|
|
fields := struct {
|
|
uint32_t id;
|
|
int32_t ret;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = mutex_lock_enter;
|
|
id = 0x29;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t timeout;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = mutex_lock_blocking;
|
|
id = 0x2A;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t timeout;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = mutex_lock_exit;
|
|
id = 0x2B;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t timeout;
|
|
int32_t ret;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = mutex_unlock_enter;
|
|
id = 0x2C;
|
|
fields := struct {
|
|
uint32_t id;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = mutex_unlock_exit;
|
|
id = 0x2D;
|
|
fields := struct {
|
|
uint32_t id;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = timer_init;
|
|
id = 0x2E;
|
|
fields := struct {
|
|
uint32_t id;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = timer_start;
|
|
id = 0x2F;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t duration;
|
|
uint32_t period;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = timer_stop;
|
|
id = 0x30;
|
|
fields := struct {
|
|
uint32_t id;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = timer_status_sync_enter;
|
|
id = 0x31;
|
|
fields := struct {
|
|
uint32_t id;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = timer_status_sync_blocking;
|
|
id = 0x32;
|
|
fields := struct {
|
|
uint32_t id;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = timer_status_sync_exit;
|
|
id = 0x33;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = user_mode_enter;
|
|
id = 0x34;
|
|
fields := struct {
|
|
uint32_t thread_id;
|
|
ctf_bounded_string_t name[20];
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = thread_wakeup;
|
|
id = 0x35;
|
|
fields := struct {
|
|
uint32_t thread_id;
|
|
ctf_bounded_string_t name[20];
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_init;
|
|
id = 0x36;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t family;
|
|
uint32_t type;
|
|
uint32_t proto;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_close_enter;
|
|
id = 0x37;
|
|
fields := struct {
|
|
uint32_t id;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_close_exit;
|
|
id = 0x38;
|
|
fields := struct {
|
|
uint32_t id;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_shutdown_enter;
|
|
id = 0x39;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t how;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_shutdown_exit;
|
|
id = 0x3A;
|
|
fields := struct {
|
|
uint32_t id;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_bind_enter;
|
|
id = 0x3B;
|
|
fields := struct {
|
|
uint32_t id;
|
|
ctf_bounded_string_t address[46];
|
|
uint32_t address_length;
|
|
uint16_t port;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_bind_exit;
|
|
id = 0x3C;
|
|
fields := struct {
|
|
uint32_t id;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_connect_enter;
|
|
id = 0x3D;
|
|
fields := struct {
|
|
uint32_t id;
|
|
ctf_bounded_string_t address[46];
|
|
uint32_t address_length;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_connect_exit;
|
|
id = 0x3E;
|
|
fields := struct {
|
|
uint32_t id;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_listen_enter;
|
|
id = 0x3F;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t backlog;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_listen_exit;
|
|
id = 0x40;
|
|
fields := struct {
|
|
uint32_t id;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_accept_enter;
|
|
id = 0x41;
|
|
fields := struct {
|
|
uint32_t id;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_accept_exit;
|
|
id = 0x42;
|
|
fields := struct {
|
|
uint32_t id;
|
|
ctf_bounded_string_t address[46];
|
|
uint32_t address_length;
|
|
uint16_t port;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_sendto_enter;
|
|
id = 0x43;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t data_length;
|
|
uint32_t flags;
|
|
ctf_bounded_string_t address[46];
|
|
uint32_t address_length;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_sendto_exit;
|
|
id = 0x44;
|
|
fields := struct {
|
|
uint32_t id;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_sendmsg_enter;
|
|
id = 0x45;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t flags;
|
|
uint32_t msghdr;
|
|
ctf_bounded_string_t address[46];
|
|
uint32_t data_length;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_sendmsg_exit;
|
|
id = 0x46;
|
|
fields := struct {
|
|
uint32_t id;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_recvfrom_enter;
|
|
id = 0x47;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t max_length;
|
|
uint32_t flags;
|
|
uint32_t address;
|
|
uint32_t address_length;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_recvfrom_exit;
|
|
id = 0x48;
|
|
fields := struct {
|
|
uint32_t id;
|
|
ctf_bounded_string_t address[46];
|
|
uint32_t address_length;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_recvmsg_enter;
|
|
id = 0x49;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t msg;
|
|
uint32_t max_msg_length;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_recvmsg_exit;
|
|
id = 0x4A;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t msg_length;
|
|
ctf_bounded_string_t address[46];
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_fcntl_enter;
|
|
id = 0x4B;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t cmd;
|
|
uint32_t flags;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_fcntl_exit;
|
|
id = 0x4C;
|
|
fields := struct {
|
|
uint32_t id;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_ioctl_enter;
|
|
id = 0x4D;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t request;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_ioctl_exit;
|
|
id = 0x4E;
|
|
fields := struct {
|
|
uint32_t id;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_poll_enter;
|
|
id = 0x4F;
|
|
fields := struct {
|
|
uint32_t fds;
|
|
uint32_t num_fds;
|
|
int32_t timeout;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_poll_value;
|
|
id = 0x50;
|
|
fields := struct {
|
|
int32_t fd;
|
|
uint16_t events;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_poll_exit;
|
|
id = 0x51;
|
|
fields := struct {
|
|
uint32_t fds;
|
|
uint32_t num_fds;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_getsockopt_enter;
|
|
id = 0x52;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t level;
|
|
uint32_t optname;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_getsockopt_exit;
|
|
id = 0x53;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t level;
|
|
uint32_t optname;
|
|
uint32_t optval;
|
|
uint32_t optlen;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_setsockopt_enter;
|
|
id = 0x54;
|
|
fields := struct {
|
|
uint32_t id;
|
|
uint32_t level;
|
|
uint32_t optname;
|
|
uint32_t optval;
|
|
uint32_t optlen;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_setsockopt_exit;
|
|
id = 0x55;
|
|
fields := struct {
|
|
uint32_t id;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_getpeername_enter;
|
|
id = 0x56;
|
|
fields := struct {
|
|
uint32_t id;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_getpeername_exit;
|
|
id = 0x57;
|
|
fields := struct {
|
|
uint32_t id;
|
|
ctf_bounded_string_t address[46];
|
|
uint32_t address_length;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_getsockname_enter;
|
|
id = 0x58;
|
|
fields := struct {
|
|
uint32_t id;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_getsockname_exit;
|
|
id = 0x59;
|
|
fields := struct {
|
|
uint32_t id;
|
|
ctf_bounded_string_t address[46];
|
|
uint32_t address_length;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_socketpair_enter;
|
|
id = 0x5A;
|
|
fields := struct {
|
|
uint32_t family;
|
|
uint32_t type;
|
|
uint32_t proto;
|
|
uint32_t sv;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = socket_socketpair_exit;
|
|
id = 0x5B;
|
|
fields := struct {
|
|
int32_t socket0;
|
|
int32_t socket1;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = net_recv_data_enter;
|
|
id = 0x5C;
|
|
fields := struct {
|
|
int32_t if_index;
|
|
uint32_t iface;
|
|
uint32_t pkt;
|
|
uint32_t pkt_len;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = net_recv_data_exit;
|
|
id = 0x5D;
|
|
fields := struct {
|
|
int32_t if_index;
|
|
uint32_t iface;
|
|
uint32_t pkt;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = net_send_data_enter;
|
|
id = 0x5E;
|
|
fields := struct {
|
|
int32_t if_index;
|
|
uint32_t iface;
|
|
uint32_t pkt;
|
|
uint32_t pkt_len;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = net_send_data_exit;
|
|
id = 0x5F;
|
|
fields := struct {
|
|
int32_t if_index;
|
|
uint32_t iface;
|
|
uint32_t pkt;
|
|
int32_t result;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = net_rx_time;
|
|
id = 0x60;
|
|
fields := struct {
|
|
int32_t if_index;
|
|
uint32_t iface;
|
|
uint32_t pkt;
|
|
uint32_t priority;
|
|
uint32_t traffic_class;
|
|
uint32_t duration_us;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = net_tx_time;
|
|
id = 0x61;
|
|
fields := struct {
|
|
int32_t if_index;
|
|
uint32_t iface;
|
|
uint32_t pkt;
|
|
uint32_t priority;
|
|
uint32_t traffic_class;
|
|
uint32_t duration_us;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = named_event;
|
|
id = 0x62;
|
|
fields := struct {
|
|
ctf_bounded_string_t name[20];
|
|
uint32_t arg0;
|
|
uint32_t arg1;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_pin_configure_interrupt_enter;
|
|
id = 0x63;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t pin;
|
|
uint32_t flags;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_pin_configure_interrupt_exit;
|
|
id = 0x64;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t pin;
|
|
uint32_t ret;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_pin_configure_enter;
|
|
id = 0x65;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t pin;
|
|
uint32_t flags;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_pin_configure_exit;
|
|
id = 0x66;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t pin;
|
|
uint32_t ret;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_port_get_direction_enter;
|
|
id = 0x67;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t map;
|
|
uint32_t inputs;
|
|
uint32_t outputs;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_port_get_direction_exit;
|
|
id = 0x68;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t ret;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_pin_get_config_enter;
|
|
id = 0x69;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t pin;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_pin_get_config_exit;
|
|
id = 0x6A;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t pin;
|
|
uint32_t ret;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_port_get_raw_enter;
|
|
id = 0x6B;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t value;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_port_get_raw_exit;
|
|
id = 0x6C;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t ret;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_port_set_masked_raw_enter;
|
|
id = 0x6D;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t mask;
|
|
uint32_t value;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_port_set_masked_raw_exit;
|
|
id = 0x6E;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t ret;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_port_set_bits_raw_enter;
|
|
id = 0x6F;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t pins;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_port_set_bits_raw_exit;
|
|
id = 0x70;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t ret;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_port_clear_bits_raw_enter;
|
|
id = 0x71;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t pins;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_port_clear_bits_raw_exit;
|
|
id = 0x72;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t ret;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_port_toggle_bits_enter;
|
|
id = 0x73;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t pins;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_port_toggle_bits_exit;
|
|
id = 0x74;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t ret;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_init_callback_enter;
|
|
id = 0x75;
|
|
fields := struct {
|
|
uint32_t callback;
|
|
uint32_t handler;
|
|
uint32_t pin_mask;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_init_callback_exit;
|
|
id = 0x76;
|
|
fields := struct {
|
|
uint32_t callback;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_add_callback_enter;
|
|
id = 0x77;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t callback;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_add_callback_exit;
|
|
id = 0x78;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t ret;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_remove_callback_enter;
|
|
id = 0x79;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t callback;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_remove_callback_exit;
|
|
id = 0x7A;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t ret;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_get_pending_int_enter;
|
|
id = 0x7B;
|
|
fields := struct {
|
|
uint32_t dev;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_get_pending_int_exit;
|
|
id = 0x7C;
|
|
fields := struct {
|
|
uint32_t dev;
|
|
uint32_t ret;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_fire_callbacks_enter;
|
|
id = 0x7D;
|
|
fields := struct {
|
|
uint32_t list;
|
|
uint32_t port;
|
|
uint32_t pins;
|
|
};
|
|
};
|
|
|
|
event {
|
|
name = gpio_fire_callback;
|
|
id = 0x7E;
|
|
fields := struct {
|
|
uint32_t port;
|
|
uint32_t cb;
|
|
};
|
|
};
|