crash.subsystem.printk.lockless_ringbuffer module
*************************************************

class crash.subsystem.printk.lockless_ringbuffer.DevPrintkInfo(info: Value)

   Bases: "object"

   Kernel struct dev_printk_info

   device: str

   subsystem: str

exception crash.subsystem.printk.lockless_ringbuffer.LogConsistencyException

   Bases: "Exception"

class crash.subsystem.printk.lockless_ringbuffer.PrbDataBlkLPos(blk_lpos: Value)

   Bases: "object"

   Kernel struct prb_data_blk_pos

   begin: int

   next: int

class crash.subsystem.printk.lockless_ringbuffer.PrbDataBlock(dr: Value)

   Bases: "object"

   Kernel struct prb_data_block

   data: Value

   id: int

class crash.subsystem.printk.lockless_ringbuffer.PrbDataRing(dr: Value)

   Bases: "object"

   Kernel struct prb_data_ring

   data: Value

   get_data_block(blk_lpos: PrbDataBlkLPos) -> PrbDataBlock

      Return PrbDataBlock for the given blk_lpos

   get_text(blk_lpos: PrbDataBlkLPos, _len: int) -> str

      return string stored at the given blk_lpos

   lpos_mask: int

   size_bits: int

class crash.subsystem.printk.lockless_ringbuffer.PrbDesc(desc: Value)

   Bases: "object"

   Kernel struct prb_desc

   desc_state() -> int

      Return state of the descriptor

   is_finalized() -> bool

      Finalized desriptor points to a valid (deta) message

   is_reusable() -> bool

      Reusable descriptor still has a valid sequence number but the
      data are gone.

   state_var: int

   sv_mask: int

   sv_shift: int

   text_blk_lpos: PrbDataBlkLPos

class crash.subsystem.printk.lockless_ringbuffer.PrbDescRing(dr: Value)

   Bases: "object"

   Kernel struct prb_desc_ring

   count_bits: int

   descs: Value

   get_desc(_id: int) -> PrbDesc

      Return prb_desc structure for the given id

   get_idx(_id: int) -> int

      Return index to the desc ring for the given id

   get_info(_id: int) -> PrintkInfo

      return printk_info structure for the given id

   head_id: int

   infos: Value

   mask_id: int

   tail_id: int

class crash.subsystem.printk.lockless_ringbuffer.PrbRingBuffer(prb: Value)

   Bases: "object"

   Kernel struct prb_ring_buffer

   data_ring: PrbDataRing

   desc_ring: PrbDescRing

   first_seq() -> int

      Get sequence number of the tail entry.

   is_valid_desc(desc: PrbDesc, info: PrintkInfo, seq: int) -> bool

      Does the descritor constains consistent values?

   show_log(args: Namespace) -> None

      Show the entire log

   show_msg(desc: PrbDesc, info: PrintkInfo, args: Namespace) -> None

      Show the message for the gived descriptor, printk info. The
      output is mofified by pylog parameters.

class crash.subsystem.printk.lockless_ringbuffer.PrintkInfo(info: Value)

   Bases: "object"

   Kernel struct printk_info

   caller_id: int

   dev_info: DevPrintkInfo

   facility: int

   flags: int

   level: int

   seq: int

   text_len: int

   ts_nsec: int

crash.subsystem.printk.lockless_ringbuffer.atomic_long_read(val: Value) -> int

crash.subsystem.printk.lockless_ringbuffer.lockless_rb_show(args: Namespace) -> None

   Try to show printk log stored in the lockless ringbuffer

   This type of ringbuffer has replaced the structured ring buffer in
   kernel-5.10.

   Raises:
      **LogTypeException** -- The log is not in the lockless
      ringbuffer.

crash.subsystem.printk.lockless_ringbuffer.read_null_end_string(buf: Value) -> str

   Read null-terminated string from a given buffer.
