Lines Matching refs:reader
39 static reader_struct *reader; variable
246 static int create_reader(reader_struct * reader, uint32_t dev_id) in create_reader() argument
250 if (snprintf(reader->dev_name, DEV_PATH_LEN, "/dev/%s%u", dev_prefix, dev_id) in create_reader()
254 reader->param.devid = dev_id; in create_reader()
256 reader->dev_fd = open(reader->dev_name, O_RDWR); in create_reader()
257 if (reader->dev_fd < 0) { in create_reader()
258 pr_err("Failed to open %s, err %d\n", reader->dev_name, errno); in create_reader()
259 reader->dev_fd = 0; in create_reader()
263 reader->param.sbuf = mmap(NULL, MMAP_SIZE, in create_reader()
265 MAP_SHARED, reader->dev_fd, 0); in create_reader()
266 if (reader->param.sbuf == MAP_FAILED) { in create_reader()
267 pr_err("mmap failed for %s, errno %d\n", reader->dev_name, errno); in create_reader()
268 reader->param.sbuf = NULL; in create_reader()
273 dev_id, reader->param.sbuf->magic, reader->param.sbuf->ele_num, in create_reader()
274 reader->param.sbuf->ele_size); in create_reader()
279 reader->param.trace_fd = open(trace_file_name, in create_reader()
281 if (!reader->param.trace_fd) { in create_reader()
287 trace_file_name, reader->dev_name); in create_reader()
289 if (pthread_create(&reader->thrd, NULL, in create_reader()
290 (void *)&reader_fn, &reader->param)) { in create_reader()
298 static void destory_reader(reader_struct * reader) in destory_reader() argument
300 if (reader->thrd) { in destory_reader()
301 pthread_cancel(reader->thrd); in destory_reader()
302 if (pthread_join(reader->thrd, NULL) != 0) in destory_reader()
303 pr_err("failed to cancel thread[%lu]\n", reader->thrd); in destory_reader()
305 reader->thrd = 0; in destory_reader()
308 if (reader->param.sbuf) { in destory_reader()
309 munmap(reader->param.sbuf, MMAP_SIZE); in destory_reader()
310 reader->param.sbuf = NULL; in destory_reader()
313 if (reader->dev_fd) { in destory_reader()
314 close(reader->dev_fd); in destory_reader()
315 reader->dev_fd = 0; in destory_reader()
318 if (reader->param.trace_fd) { in destory_reader()
319 close(reader->param.trace_fd); in destory_reader()
335 destory_reader(&reader[dev_id]); in handle_on_exit()
368 reader = calloc(1, sizeof(reader_struct) * dev_cnt); in main()
369 if (!reader) { in main()
395 if (create_reader(&reader[dev_id], dev_id) < 0) in main()
411 destory_reader(&reader[dev_id]); in main()
414 free(reader); in main()