!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.3.27 

uname -a: Linux pdx1-shared-a4-04 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64 

uid=6659440(dh_z2jmpm) gid=2086089(pg10499364) groups=2086089(pg10499364)  

Safe-mode: OFF (not secure)

/usr/src/linux-hwe-6.5-headers-6.5.0-45/arch/loongarch/include/asm/   drwxr-xr-x
Free 712.33 GB of 879.6 GB (80.98%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     unwind.h (2.15 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Most of this ideas comes from x86.
 *
 * Copyright (C) 2022 Loongson Technology Corporation Limited
 */
#ifndef _ASM_UNWIND_H
#define _ASM_UNWIND_H

#include <linux/sched.h>
#include <linux/ftrace.h>

#include <asm/ptrace.h>
#include <asm/stacktrace.h>

enum unwinder_type {
    UNWINDER_GUESS,
    UNWINDER_PROLOGUE,
};

struct unwind_state {
    char type; /* UNWINDER_XXX */
    struct stack_info stack_info;
    struct task_struct *task;
    bool first, error, reset;
    int graph_idx;
    unsigned long sp, pc, ra;
};

bool default_next_frame(struct unwind_state *state);

void unwind_start(struct unwind_state *state,
          struct task_struct *task, struct pt_regs *regs);
bool unwind_next_frame(struct unwind_state *state);
unsigned long unwind_get_return_address(struct unwind_state *state);

static inline bool unwind_done(struct unwind_state *state)
{
    return state->stack_info.type == STACK_TYPE_UNKNOWN;
}

static inline bool unwind_error(struct unwind_state *state)
{
    return state->error;
}

#define GRAPH_FAKE_OFFSET (sizeof(struct pt_regs) - offsetof(struct pt_regs, regs[1]))

static inline unsigned long unwind_graph_addr(struct unwind_state *state,
                    unsigned long pc, unsigned long cfa)
{
    return ftrace_graph_ret_addr(state->task, &state->graph_idx,
                     pc, (unsigned long *)(cfa - GRAPH_FAKE_OFFSET));
}

static __always_inline void __unwind_start(struct unwind_state *state,
                    struct task_struct *task, struct pt_regs *regs)
{
    memset(state, 0, sizeof(*state));
    if (regs) {
        state->sp = regs->regs[3];
        state->pc = regs->csr_era;
        state->ra = regs->regs[1];
    } else if (task && task != current) {
        state->sp = thread_saved_fp(task);
        state->pc = thread_saved_ra(task);
        state->ra = 0;
    } else {
        state->sp = (unsigned long)__builtin_frame_address(0);
        state->pc = (unsigned long)__builtin_return_address(0);
        state->ra = 0;
    }
    state->task = task;
    get_stack_info(state->sp, state->task, &state->stack_info);
    state->pc = unwind_graph_addr(state, state->pc, state->sp);
}

static __always_inline unsigned long __unwind_get_return_address(struct unwind_state *state)
{
    return unwind_done(state) ? 0 : state->pc;
}
#endif /* _ASM_UNWIND_H */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0119 ]--