X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/de355530ae67247cbd0da700edb3a2a1dae884c2..13fec9890cf095cc781fdf7b8917cb03bf32dd4c:/bsd/sys/resourcevar.h diff --git a/bsd/sys/resourcevar.h b/bsd/sys/resourcevar.h index 77b30d6fd..8593ed6ef 100644 --- a/bsd/sys/resourcevar.h +++ b/bsd/sys/resourcevar.h @@ -85,6 +85,17 @@ struct pstats { struct itimerval p_timer[3]; /* virtual-time timers */ #define pstat_endcopy p_start struct timeval p_start; /* starting time */ +#ifdef KERNEL + struct user_uprof { /* profile arguments */ + struct user_uprof *pr_next; /* multiple prof buffers allowed */ + user_addr_t pr_base; /* buffer base */ + user_size_t pr_size; /* buffer size */ + user_ulong_t pr_off; /* pc offset */ + user_ulong_t pr_scale; /* pc scaling */ + user_ulong_t pr_addr; /* temp storage for addr until AST */ + user_ulong_t pr_ticks; /* temp storage for ticks until AST */ + } user_p_prof; +#endif // KERNEL }; /* @@ -102,18 +113,21 @@ struct plimit { int p_refcnt; /* number of references */ }; +#ifdef KERNEL /* add user profiling from AST */ #define ADDUPROF(p) \ - addupc_task(p, \ - (p)->p_stats->p_prof.pr_addr, (p)->p_stats->p_prof.pr_ticks) + addupc_task(p, \ + (proc_is64bit((p)) ? (p)->p_stats->user_p_prof.pr_addr \ + : CAST_USER_ADDR_T((p)->p_stats->p_prof.pr_addr)), \ + (proc_is64bit((p)) ? (p)->p_stats->user_p_prof.pr_ticks \ + : (p)->p_stats->p_prof.pr_ticks)) -#ifdef KERNEL -void addupc_intr __P((struct proc *p, u_long pc, u_int ticks)); -void addupc_task __P((struct proc *p, u_long pc, u_int ticks)); -void calcru __P((struct proc *p, struct timeval *up, struct timeval *sp, - struct timeval *ip)); -void ruadd __P((struct rusage *ru, struct rusage *ru2)); -struct plimit *limcopy __P((struct plimit *lim)); +void addupc_intr(struct proc *p, u_long pc, u_int ticks); +void addupc_task(struct proc *p, user_addr_t pc, u_int ticks); +void calcru(struct proc *p, struct timeval *up, struct timeval *sp, + struct timeval *ip); +void ruadd(struct rusage *ru, struct rusage *ru2); +struct plimit *limcopy(struct plimit *lim); #endif /* KERNEL */ #endif /* __APPLE_API_PRIVATE */