lcc/clcc/remote/event_out/event_out.c (37 lines of code) (raw):

#include <stdlib.h> #include <stdio.h> #include <unistd.h> #include "clcc.h" #define TASK_COMM_LEN 16 struct data_t { unsigned int c_pid; unsigned int p_pid; char c_comm[TASK_COMM_LEN]; char p_comm[TASK_COMM_LEN]; }; void event_cb(void *ctx, int cpu, void *data, unsigned int size){ struct data_t *e = (struct data_t *)data; printf("poll message: c_pid:%d, p_pid:%d\n", e->c_pid, e->p_pid); printf("c_comm:%s, p_comm:%s\n", e->c_comm, e->p_comm); } void event_run(struct clcc_struct* pclcc) { int event_id; event_id = pclcc->get_maps_id("e_out"); if (event_id < 0) { return; } pclcc->set_event_cb(event_id, event_cb, NULL); pclcc->event_loop(event_id, -1); } int main(int argc,char *argv[]) { struct clcc_struct* pclcc = clcc_init("./"SO_NAME); if (pclcc == NULL) { printf("open so file failed.\n"); exit(-1); } pclcc->init(-1, 1); event_run(pclcc); pclcc->exit(); clcc_deinit(pclcc); return 0; }