Stackdb
Stackdb is a stackable, multi-target and -level source debugger and memory forensics library.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Data Structures | Macros | Typedefs | Functions
target_os_linux_generic.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  os_linux_state
 
struct  os_linux_vma
 
struct  os_linux_mm
 
struct  os_linux_thread_state
 

Macros

#define PAGE_SIZE   0x1000
 
#define THREAD_SIZE   8192
 
#define KERNEL_STACK_OFFSET   (5*8)
 
#define THREAD_INFO_GET_CPL(tid)   (((tid) & (0x3 << 62)) >> 62)
 
#define THREAD_INFO_GET_TID(tid)   ((tid) & 0xffffffff)
 
#define THREAD_INFO_SET_CPL(tid, cpl)   (tid) |= (((cpl) & 0x3) << 62)
 
#define THREAD_INFO_SET_TID(tid, pid)   (tid) |= (0xffffffff & (pid))
 
#define TIF_32_SYSCALL_TRACE   0 /* syscall trace active */
 
#define TIF_32_NOTIFY_RESUME   1 /* resumption notification requested */
 
#define TIF_32_SIGPENDING   2 /* signal pending */
 
#define TIF_32_NEED_RESCHED   3 /* rescheduling necessary */
 
#define TIF_32_SINGLESTEP   4 /* restore singlestep on return to user mode */
 
#define TIF_32_IRET   5 /* return with iret */
 
#define TIF_32_SYSCALL_EMU   6 /* syscall emulation active */
 
#define TIF_32_SYSCALL_AUDIT   7 /* syscall auditing active */
 
#define TIF_32_SECCOMP   8 /* secure computing */
 
#define TIF_32_RESTORE_SIGMASK   9 /* restore signal mask in do_signal() */
 
#define TIF_32_MEMDIE   16
 
#define TIF_32_DEBUG   17 /* uses debug registers */
 
#define TIF_32_IO_BITMAP   18 /* uses I/O bitmap */
 
#define _TIF_32_SYSCALL_TRACE   (1<<TIF_32_SYSCALL_TRACE)
 
#define _TIF_32_NOTIFY_RESUME   (1<<TIF_32_NOTIFY_RESUME)
 
#define _TIF_32_SIGPENDING   (1<<TIF_32_SIGPENDING)
 
#define _TIF_32_NEED_RESCHED   (1<<TIF_32_NEED_RESCHED)
 
#define _TIF_32_SINGLESTEP   (1<<TIF_32_SINGLESTEP)
 
#define _TIF_32_IRET   (1<<TIF_32_IRET)
 
#define _TIF_32_SYSCALL_EMU   (1<<TIF_32_SYSCALL_EMU)
 
#define _TIF_32_SYSCALL_AUDIT   (1<<TIF_32_SYSCALL_AUDIT)
 
#define _TIF_32_SECCOMP   (1<<TIF_32_SECCOMP)
 
#define _TIF_32_RESTORE_SIGMASK   (1<<TIF_32_RESTORE_SIGMASK)
 
#define _TIF_32_DEBUG   (1<<TIF_32_DEBUG)
 
#define _TIF_32_IO_BITMAP   (1<<TIF_32_IO_BITMAP)
 
#define TIF_64_SYSCALL_TRACE   0 /* syscall trace active */
 
#define TIF_64_NOTIFY_RESUME   1 /* resumption notification requested */
 
#define TIF_64_SIGPENDING   2 /* signal pending */
 
#define TIF_64_NEED_RESCHED   3 /* rescheduling necessary */
 
#define TIF_64_SINGLESTEP   4 /* reenable singlestep on user return*/
 
#define TIF_64_IRET   5 /* force IRET */
 
#define TIF_64_SYSCALL_AUDIT   7 /* syscall auditing active */
 
#define TIF_64_SECCOMP   8 /* secure computing */
 
#define TIF_64_IA32   17 /* 32bit process */
 
#define TIF_64_FORK   18 /* ret_from_fork */
 
#define TIF_64_ABI_PENDING   19
 
#define TIF_64_MEMDIE   20
 
#define _TIF_64_SYSCALL_TRACE   (1<<TIF_64_SYSCALL_TRACE)
 
#define _TIF_64_NOTIFY_RESUME   (1<<TIF_64_NOTIFY_RESUME)
 
#define _TIF_64_SIGPENDING   (1<<TIF_64_SIGPENDING)
 
#define _TIF_64_SINGLESTEP   (1<<TIF_64_SINGLESTEP)
 
#define _TIF_64_NEED_RESCHED   (1<<TIF_64_NEED_RESCHED)
 
#define _TIF_64_IRET   (1<<TIF_64_IRET)
 
#define _TIF_64_SYSCALL_AUDIT   (1<<TIF_64_SYSCALL_AUDIT)
 
#define _TIF_64_SECCOMP   (1<<TIF_64_SECCOMP)
 
#define _TIF_64_IA32   (1<<TIF_64_IA32)
 
#define _TIF_64_FORK   (1<<TIF_64_FORK)
 
#define _TIF_64_ABI_PENDING   (1<<TIF_64_ABI_PENDING)
 
#define PREEMPT_MASK   0x000000ff
 
#define SOFTIRQ_MASK   0x0000ff00
 
#define HARDIRQ_MASK   0x0fff0000
 
#define PREEMPT_ACTIVE   0x10000000
 
#define PREEMPT_NEED_RESCHED   0x80000000
 
#define PREEMPT_BITSHIFT   0
 
#define SOFTIRQ_BITSHIFT   8
 
#define HARDIRQ_BITSHIFT   16
 
#define PREEMPT_COUNT(p)   (((p) & PREEMPT_MASK) >> PREEMPT_BITSHIFT)
 
#define SOFTIRQ_COUNT(p)   (((p) & SOFTIRQ_MASK) >> SOFTIRQ_BITSHIFT)
 
#define HARDIRQ_COUNT(p)   (((p) & HARDIRQ_MASK) >> HARDIRQ_BITSHIFT)
 

Typedefs

typedef int(* os_linux_list_iterator_t )(struct target *t, struct value *value, void *data)
 

Functions

struct symbolos_linux_get_task_struct_type (struct target *target)
 
struct symbolos_linux_get_task_struct_type_ptr (struct target *target)
 
struct symbolos_linux_get_thread_info_type (struct target *target)
 
struct valueos_linux_load_current_task (struct target *target, REGVAL kernel_esp)
 
struct valueos_linux_load_current_task_as_type (struct target *target, struct symbol *datatype, REGVAL kernel_esp)
 
int os_linux_get_task_pid (struct target *target, struct value *task)
 
int os_linux_get_task_tid (struct target *target, struct value *task)
 
struct valueos_linux_get_task (struct target *target, tid_t tid)
 
struct valueos_linux_load_current_thread_as_type (struct target *target, struct symbol *datatype, REGVAL kernel_esp)
 
char * os_linux_file_get_path (struct target *target, struct value *task, struct value *file, char *buf, int buflen)
 
num_t os_linux_get_preempt_count (struct target *target)
 
int os_linux_list_for_each_struct (struct target *t, struct bsymbol *bsymbol, char *list_head_member_name, int nofree, os_linux_list_iterator_t iterator, void *data)
 
int os_linux_list_for_each_entry (struct target *t, struct bsymbol *btype, struct bsymbol *list_head, char *list_head_member_name, int nofree, os_linux_list_iterator_t iterator, void *data)
 

Macro Definition Documentation

#define _TIF_32_DEBUG   (1<<TIF_32_DEBUG)

Definition at line 58 of file target_os_linux_generic.h.

#define _TIF_32_IO_BITMAP   (1<<TIF_32_IO_BITMAP)

Definition at line 59 of file target_os_linux_generic.h.

#define _TIF_32_IRET   (1<<TIF_32_IRET)

Definition at line 53 of file target_os_linux_generic.h.

#define _TIF_32_NEED_RESCHED   (1<<TIF_32_NEED_RESCHED)

Definition at line 51 of file target_os_linux_generic.h.

#define _TIF_32_NOTIFY_RESUME   (1<<TIF_32_NOTIFY_RESUME)

Definition at line 49 of file target_os_linux_generic.h.

#define _TIF_32_RESTORE_SIGMASK   (1<<TIF_32_RESTORE_SIGMASK)

Definition at line 57 of file target_os_linux_generic.h.

#define _TIF_32_SECCOMP   (1<<TIF_32_SECCOMP)

Definition at line 56 of file target_os_linux_generic.h.

#define _TIF_32_SIGPENDING   (1<<TIF_32_SIGPENDING)

Definition at line 50 of file target_os_linux_generic.h.

#define _TIF_32_SINGLESTEP   (1<<TIF_32_SINGLESTEP)

Definition at line 52 of file target_os_linux_generic.h.

#define _TIF_32_SYSCALL_AUDIT   (1<<TIF_32_SYSCALL_AUDIT)

Definition at line 55 of file target_os_linux_generic.h.

#define _TIF_32_SYSCALL_EMU   (1<<TIF_32_SYSCALL_EMU)

Definition at line 54 of file target_os_linux_generic.h.

#define _TIF_32_SYSCALL_TRACE   (1<<TIF_32_SYSCALL_TRACE)

Definition at line 48 of file target_os_linux_generic.h.

#define _TIF_64_ABI_PENDING   (1<<TIF_64_ABI_PENDING)

Definition at line 86 of file target_os_linux_generic.h.

#define _TIF_64_FORK   (1<<TIF_64_FORK)

Definition at line 85 of file target_os_linux_generic.h.

#define _TIF_64_IA32   (1<<TIF_64_IA32)

Definition at line 84 of file target_os_linux_generic.h.

#define _TIF_64_IRET   (1<<TIF_64_IRET)

Definition at line 81 of file target_os_linux_generic.h.

#define _TIF_64_NEED_RESCHED   (1<<TIF_64_NEED_RESCHED)

Definition at line 80 of file target_os_linux_generic.h.

#define _TIF_64_NOTIFY_RESUME   (1<<TIF_64_NOTIFY_RESUME)

Definition at line 77 of file target_os_linux_generic.h.

#define _TIF_64_SECCOMP   (1<<TIF_64_SECCOMP)

Definition at line 83 of file target_os_linux_generic.h.

#define _TIF_64_SIGPENDING   (1<<TIF_64_SIGPENDING)

Definition at line 78 of file target_os_linux_generic.h.

#define _TIF_64_SINGLESTEP   (1<<TIF_64_SINGLESTEP)

Definition at line 79 of file target_os_linux_generic.h.

#define _TIF_64_SYSCALL_AUDIT   (1<<TIF_64_SYSCALL_AUDIT)

Definition at line 82 of file target_os_linux_generic.h.

#define _TIF_64_SYSCALL_TRACE   (1<<TIF_64_SYSCALL_TRACE)

Definition at line 76 of file target_os_linux_generic.h.

#define HARDIRQ_BITSHIFT   16

Definition at line 327 of file target_os_linux_generic.h.

#define HARDIRQ_COUNT (   p)    (((p) & HARDIRQ_MASK) >> HARDIRQ_BITSHIFT)

Definition at line 334 of file target_os_linux_generic.h.

#define HARDIRQ_MASK   0x0fff0000

Definition at line 322 of file target_os_linux_generic.h.

#define KERNEL_STACK_OFFSET   (5*8)

Definition at line 27 of file target_os_linux_generic.h.

#define PAGE_SIZE   0x1000

Definition at line 23 of file target_os_linux_generic.h.

#define PREEMPT_ACTIVE   0x10000000

Definition at line 323 of file target_os_linux_generic.h.

#define PREEMPT_BITSHIFT   0

Definition at line 325 of file target_os_linux_generic.h.

#define PREEMPT_COUNT (   p)    (((p) & PREEMPT_MASK) >> PREEMPT_BITSHIFT)

Definition at line 332 of file target_os_linux_generic.h.

#define PREEMPT_MASK   0x000000ff

Definition at line 320 of file target_os_linux_generic.h.

#define PREEMPT_NEED_RESCHED   0x80000000

Definition at line 324 of file target_os_linux_generic.h.

#define SOFTIRQ_BITSHIFT   8

Definition at line 326 of file target_os_linux_generic.h.

#define SOFTIRQ_COUNT (   p)    (((p) & SOFTIRQ_MASK) >> SOFTIRQ_BITSHIFT)

Definition at line 333 of file target_os_linux_generic.h.

#define SOFTIRQ_MASK   0x0000ff00

Definition at line 321 of file target_os_linux_generic.h.

#define THREAD_INFO_GET_CPL (   tid)    (((tid) & (0x3 << 62)) >> 62)

Definition at line 29 of file target_os_linux_generic.h.

#define THREAD_INFO_GET_TID (   tid)    ((tid) & 0xffffffff)

Definition at line 30 of file target_os_linux_generic.h.

#define THREAD_INFO_SET_CPL (   tid,
  cpl 
)    (tid) |= (((cpl) & 0x3) << 62)

Definition at line 31 of file target_os_linux_generic.h.

#define THREAD_INFO_SET_TID (   tid,
  pid 
)    (tid) |= (0xffffffff & (pid))

Definition at line 32 of file target_os_linux_generic.h.

#define THREAD_SIZE   8192

Definition at line 25 of file target_os_linux_generic.h.

#define TIF_32_DEBUG   17 /* uses debug registers */

Definition at line 45 of file target_os_linux_generic.h.

#define TIF_32_IO_BITMAP   18 /* uses I/O bitmap */

Definition at line 46 of file target_os_linux_generic.h.

#define TIF_32_IRET   5 /* return with iret */

Definition at line 39 of file target_os_linux_generic.h.

#define TIF_32_MEMDIE   16

Definition at line 44 of file target_os_linux_generic.h.

#define TIF_32_NEED_RESCHED   3 /* rescheduling necessary */

Definition at line 37 of file target_os_linux_generic.h.

#define TIF_32_NOTIFY_RESUME   1 /* resumption notification requested */

Definition at line 35 of file target_os_linux_generic.h.

#define TIF_32_RESTORE_SIGMASK   9 /* restore signal mask in do_signal() */

Definition at line 43 of file target_os_linux_generic.h.

#define TIF_32_SECCOMP   8 /* secure computing */

Definition at line 42 of file target_os_linux_generic.h.

#define TIF_32_SIGPENDING   2 /* signal pending */

Definition at line 36 of file target_os_linux_generic.h.

#define TIF_32_SINGLESTEP   4 /* restore singlestep on return to user mode */

Definition at line 38 of file target_os_linux_generic.h.

#define TIF_32_SYSCALL_AUDIT   7 /* syscall auditing active */

Definition at line 41 of file target_os_linux_generic.h.

#define TIF_32_SYSCALL_EMU   6 /* syscall emulation active */

Definition at line 40 of file target_os_linux_generic.h.

#define TIF_32_SYSCALL_TRACE   0 /* syscall trace active */

Definition at line 34 of file target_os_linux_generic.h.

#define TIF_64_ABI_PENDING   19

Definition at line 73 of file target_os_linux_generic.h.

#define TIF_64_FORK   18 /* ret_from_fork */

Definition at line 72 of file target_os_linux_generic.h.

#define TIF_64_IA32   17 /* 32bit process */

Definition at line 71 of file target_os_linux_generic.h.

#define TIF_64_IRET   5 /* force IRET */

Definition at line 67 of file target_os_linux_generic.h.

#define TIF_64_MEMDIE   20

Definition at line 74 of file target_os_linux_generic.h.

#define TIF_64_NEED_RESCHED   3 /* rescheduling necessary */

Definition at line 65 of file target_os_linux_generic.h.

#define TIF_64_NOTIFY_RESUME   1 /* resumption notification requested */

Definition at line 63 of file target_os_linux_generic.h.

#define TIF_64_SECCOMP   8 /* secure computing */

Definition at line 69 of file target_os_linux_generic.h.

#define TIF_64_SIGPENDING   2 /* signal pending */

Definition at line 64 of file target_os_linux_generic.h.

#define TIF_64_SINGLESTEP   4 /* reenable singlestep on user return*/

Definition at line 66 of file target_os_linux_generic.h.

#define TIF_64_SYSCALL_AUDIT   7 /* syscall auditing active */

Definition at line 68 of file target_os_linux_generic.h.

#define TIF_64_SYSCALL_TRACE   0 /* syscall trace active */

Definition at line 62 of file target_os_linux_generic.h.

Typedef Documentation

typedef int(* os_linux_list_iterator_t)(struct target *t, struct value *value, void *data)

Definition at line 343 of file target_os_linux_generic.h.

Function Documentation

char* os_linux_file_get_path ( struct target target,
struct value task,
struct value file,
char *  buf,
int  buflen 
)

Definition at line 3687 of file target_os_linux_generic.c.

num_t os_linux_get_preempt_count ( struct target target)

Definition at line 3101 of file target_os_linux_generic.c.

struct value* os_linux_get_task ( struct target target,
tid_t  tid 
)

Definition at line 3438 of file target_os_linux_generic.c.

int os_linux_get_task_pid ( struct target target,
struct value task 
)

Definition at line 3390 of file target_os_linux_generic.c.

struct symbol* os_linux_get_task_struct_type ( struct target target)

Definition at line 3285 of file target_os_linux_generic.c.

struct symbol* os_linux_get_task_struct_type_ptr ( struct target target)

Definition at line 3299 of file target_os_linux_generic.c.

int os_linux_get_task_tid ( struct target target,
struct value task 
)
struct symbol* os_linux_get_thread_info_type ( struct target target)
int os_linux_list_for_each_entry ( struct target t,
struct bsymbol btype,
struct bsymbol list_head,
char *  list_head_member_name,
int  nofree,
os_linux_list_iterator_t  iterator,
void *  data 
)

Definition at line 3877 of file target_os_linux_generic.c.

int os_linux_list_for_each_struct ( struct target t,
struct bsymbol bsymbol,
char *  list_head_member_name,
int  nofree,
os_linux_list_iterator_t  iterator,
void *  data 
)

Definition at line 3770 of file target_os_linux_generic.c.

struct value* os_linux_load_current_task ( struct target target,
REGVAL  kernel_esp 
)
struct value* os_linux_load_current_task_as_type ( struct target target,
struct symbol datatype,
REGVAL  kernel_esp 
)
struct value* os_linux_load_current_thread_as_type ( struct target target,
struct symbol datatype,
REGVAL  kernel_esp 
)

Definition at line 3372 of file target_os_linux_generic.c.