X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/1c79356b52d46aa6b508fb032f5ae709b1f2897b..13fec9890cf095cc781fdf7b8917cb03bf32dd4c:/bsd/sys/resourcevar.h diff --git a/bsd/sys/resourcevar.h b/bsd/sys/resourcevar.h index 4865dedf7..8593ed6ef 100644 --- a/bsd/sys/resourcevar.h +++ b/bsd/sys/resourcevar.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -58,6 +58,9 @@ #ifndef _SYS_RESOURCEVAR_H_ #define _SYS_RESOURCEVAR_H_ +#include + +#ifdef __APPLE_API_PRIVATE /* * Kernel per-process accounting / statistics * (not necessarily resident except when running). @@ -82,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 }; /* @@ -99,19 +113,23 @@ 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)); -struct plimit - *limcopy __P((struct plimit *lim)); -void ruadd __P((struct rusage *ru, struct rusage *ru2)); -#endif +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 */ #endif /* !_SYS_RESOURCEVAR_H_ */