Lines Matching refs:reader
63 /* set the log reader pos to current pos */
148 wait_queue_head_t wait_queue_head; /* wait queue head for reader */
166 bool r_all; /* whether this reader can read all entries */
176 struct tlogger_reader *reader = NULL;
178 reader = file->private_data;
179 if (!reader)
182 return reader->log;
276 static ssize_t get_buffer_info(struct tlogger_reader *reader,
283 log = reader->log;
310 const struct tlogger_reader *reader, uint32_t *log_last_pos, uint32_t *is_read)
320 if (*log_last_pos == reader->r_off &&
321 log_flag->write_loops == reader->r_loops)
331 if (reader->r_off > log_flag->max_len) {
333 reader->r_off, log_flag->max_len);
351 const struct tlogger_reader *reader)
359 g_last_read_offset = reader->r_off;
384 struct tlogger_reader *reader)
391 if (buffer_flag->write_loops == reader->r_loops) {
393 buffer_flag->max_len, reader->r_off, log_last_pos);
396 &reader->r_off, &user_buffer_left);
398 return proc_read_ret(buf_written, reader);
401 if (buffer_flag->write_loops > (reader->r_loops +1) ||
402 ((buffer_flag->write_loops == (reader->r_loops + 1)) &&
403 (reader->r_off < log_last_pos))) {
404 reader->r_off = log_last_pos;
405 reader->r_loops = buffer_flag->write_loops - 1;
409 buffer_flag->max_len, reader->r_off, buffer_flag->max_len);
412 &reader->r_off, &user_buffer_left);
420 &reader->r_off, &user_buffer_left);
422 reader->r_loops = buffer_flag->write_loops;
425 return proc_read_ret(buf_written, reader);
431 struct tlogger_reader *reader = NULL;
444 reader = file->private_data;
445 if (!reader)
448 ret = get_buffer_info(reader, &buffer_flag, &log_buffer);
452 ret = get_last_read_pos(&buffer_flag, reader, &last_pos, &is_read);
456 return trigger_parse_log(buf, count, last_pos, log_buffer, reader);
495 struct tlogger_reader *reader = NULL;
508 reader = kmalloc(sizeof(*reader), GFP_KERNEL);
509 if (ZERO_OR_NULL_PTR((unsigned long)(uintptr_t)reader))
512 reader->log = log;
513 reader->r_all = true;
514 reader->r_off = 0;
515 reader->r_loops = 0;
516 reader->r_sn = 0;
517 reader->r_failtimes = 0;
518 reader->r_is_tlogf = 0;
519 reader ->r_from_cur = 0;
521 INIT_LIST_HEAD(&reader->list);
524 list_add_tail(&reader->list, &log->readers);
528 file->private_data = reader;
539 struct tlogger_reader *reader = NULL;
549 reader = file->private_data;
550 if (!reader) {
551 tloge("reader is null\n");
555 log = reader->log;
562 list_del(&reader->list);
567 tlogd("logger_release r_is_tlogf-%u\n", reader->r_is_tlogf);
569 if (reader->r_is_tlogf != 0)
572 kfree(reader);
580 struct tlogger_reader *reader = NULL;
591 reader = file->private_data;
592 if (!reader) {
597 log = reader->log;
611 if (buffer->flag.last_pos != reader->r_off)
620 struct tlogger_reader *reader = NULL;
624 reader = file->private_data;
625 if (!reader)
628 log = reader->log;
636 reader->r_from_cur = SET_READ_POS;
637 reader->r_off = buffer->flag.last_pos;
638 reader->r_loops = buffer->flag.write_loops;
643 struct tlogger_reader *reader = NULL;
648 reader = file->private_data;
649 if (!reader)
652 reader->r_is_tlogf = 1;