Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\unwind_orc.c Create Date:2022-07-28 08:51:09
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:__unwind_start

Proto:void __unwind_start(struct unwind_state *state, struct task_struct *task, struct pt_regs *regs, unsigned long *first_frame)

Type:void

Parameter:

TypeParameterName
struct unwind_state *state
struct task_struct *task
struct pt_regs *regs
unsigned long *first_frame
585  memset(state, 0, size of state )
586  task = task
593  If task_on_another_cpu(task) Then Go to done
596  If regs Then
597  If ser_mode(regs) determines whether a register set came from user* mode Then Go to done
600  ip = Return frame for iretq
601  sp = sp
602  bp = bp
603  regs = regs
604  full_regs = true
605  signal = true
607  Else if task == current process Then
608  asm volatile
614  Else
615  frame = sp
617  sp = sp
618  bp = Use READ_ONCE_NOCHECK() instead of READ_ONCE() if you need* to hide memory access from KASAN.(These two fields must be together. They form a stack frame header,* needed by get_frame_pointer().)
619  ip = Use READ_ONCE_NOCHECK() instead of READ_ONCE() if you need* to hide memory access from KASAN.(ret_addr)
622  If get_stack_info((unsignedlong * )sp, task, & stack_info, & stack_mask) Then
630  next_page = align the pointer to the (next) page boundary ((unsignedlong)sp)
631  If get_stack_info(next_page, task, & stack_info, & stack_mask) Then Return
643  If regs Then
644  unwind_next_frame(state)
645  Return
649  When Not unwind_done(state) && ( Not on_stack( & stack_info, first_frame, sizeof(long)) || sp <= first_frame ) cycle
652  unwind_next_frame(state)
654  Return
656  done :
657  type = STACK_TYPE_UNKNOWN
658  Return