All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.unidbg.ios.struct.sysctl.ExternProc32 Maven / Gradle / Ivy

The newest version!
package com.github.unidbg.ios.struct.sysctl;

import com.github.unidbg.pointer.UnidbgStructure;
import com.github.unidbg.unix.struct.ITimerVal32;
import com.github.unidbg.unix.struct.TimeVal32;
import com.sun.jna.Pointer;

import java.util.Arrays;
import java.util.List;

/**
 * extern_proc
 */
public class ExternProc32 extends UnidbgStructure {

    private static final int MAXCOMLEN = 16; /* max command name remembered */

    public ExternProc32(Pointer p) {
        super(p);
    }

    public int __p_forw; // ptr
    public int __p_back; // ptr

    public int p_vmspace; /* Address space. */
    public int p_sigacts; /* Signal actions, state (PROC ONLY). */

    public int p_flag; /* P_* flags. */
    public byte p_stat; /* S* process status. */

    public int p_pid; /* Process identifier. */
    public int p_oppid; /* Save parent pid during ptrace. XXX */

    public int p_dupfd; /* Sideways return value from fdopen. XXX */

    public int user_stack; /* where user stack was allocated */
    public int exit_thread; /* XXX Which thread is exiting? */

    public int p_debugger; /* allow to debug */
    public boolean sigwait; /* indication to suspend */
    public int p_estcpu; /* Time averaged value of p_cpticks. */
    public int p_cpticks; /* Ticks of cpu time. */
    public int p_pctcpu; /* %cpu for this process during p_swtime */

    public int p_wchan; /* Sleep address. */
    public int p_wmesg; /* Reason for sleep. */

    public int p_swtime; /* Time swapped in or out. */
    public int p_slptime; /* Time since last blocked. */

    public ITimerVal32 p_realtimer; /* Alarm timer. */
    public TimeVal32 p_rtime; /* Real time. */

    public long p_uticks; /* Statclock hits in user mode. */
    public long p_sticks; /* Statclock hits in system mode. */
    public long p_iticks; /* Statclock hits processing intr. */

    public int p_traceflag; /* Kernel trace points. */
    public int p_tracep; /* Trace to vnode. */
    public int p_siglist;
    public int p_textvp; /* Vnode of executable. */
    public int p_holdcnt; /* If non-zero, don't swap. */

    public int p_sigmask;
    public int p_sigignore; /* Signals being ignored. */
    public int p_sigcatch; /* Signals being caught by user. */

    public byte p_priority; /* Process priority. */
    public byte p_usrpri; /* User-priority based on p_cpu and p_nice. */
    public byte p_nice; /* Process "nice" value. */
    public byte[] p_comm = new byte[MAXCOMLEN + 1];

    public int p_pgrp; /* Pointer to process group. */
    public int p_addr; /* Kernel virtual addr of u-area (PROC ONLY). */
    public short p_xstat; /* Exit status for wait; also stop signal. */
    public short p_acflag; /* Accounting flags. */
    public int p_ru; /* Exit information. XXX */

    @Override
    protected List getFieldOrder() {
        return Arrays.asList("__p_forw", "__p_back", "p_vmspace", "p_sigacts", "p_flag", "p_stat",
                "p_pid", "p_oppid", "p_dupfd", "user_stack", "exit_thread", "p_debugger",
                "sigwait", "p_estcpu", "p_cpticks", "p_pctcpu", "p_wchan", "p_wmesg",
                "p_swtime", "p_slptime", "p_realtimer", "p_rtime", "p_uticks", "p_sticks", "p_iticks",
                "p_traceflag", "p_tracep", "p_siglist", "p_textvp", "p_holdcnt", "p_sigmask", "p_sigignore", "p_sigcatch",
                "p_priority", "p_usrpri", "p_nice", "p_comm", "p_pgrp", "p_addr", "p_xstat", "p_acflag", "p_ru");
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy