656 extern void restore_mstate(kthread_t *);
657 extern void term_mstate(kthread_t *);
658 extern void estimate_msacct(kthread_t *, hrtime_t);
659 extern void disable_msacct(proc_t *);
660 extern hrtime_t mstate_aggr_state(proc_t *, int);
661 extern hrtime_t mstate_thread_onproc_time(kthread_t *);
662 extern void mstate_systhread_times(kthread_t *, hrtime_t *, hrtime_t *);
663 extern void syscall_mstate(int, int);
664
665 extern uint_t cpu_update_pct(kthread_t *, hrtime_t);
666
667 extern void set_proc_pre_sys(proc_t *p);
668 extern void set_proc_post_sys(proc_t *p);
669 extern void set_proc_sys(proc_t *p);
670 extern void set_proc_ast(proc_t *p);
671 extern void set_all_proc_sys(void);
672 extern void set_all_zone_usr_proc_sys(zoneid_t);
673
674 /* thread function prototypes */
675
676 extern kthread_t *thread_create(
677 caddr_t stk,
678 size_t stksize,
679 void (*proc)(),
680 void *arg,
681 size_t len,
682 proc_t *pp,
683 int state,
684 pri_t pri);
685 extern void thread_exit(void) __NORETURN;
686 extern void thread_free(kthread_t *);
687 extern void thread_rele(kthread_t *);
688 extern void thread_join(kt_did_t);
689 extern int reaper(void);
690 extern void installctx(kthread_t *, void *, void (*)(), void (*)(),
691 void (*)(), void (*)(), void (*)(), void (*)());
692 extern int removectx(kthread_t *, void *, void (*)(), void (*)(),
693 void (*)(), void (*)(), void (*)(), void (*)());
694 extern void savectx(kthread_t *);
695 extern void restorectx(kthread_t *);
696 extern void forkctx(kthread_t *, kthread_t *);
697 extern void lwp_createctx(kthread_t *, kthread_t *);
698 extern void exitctx(kthread_t *);
699 extern void freectx(kthread_t *, int);
700 extern void installpctx(proc_t *, void *, void (*)(), void (*)(),
701 void (*)(), void (*)(), void (*)());
702 extern int removepctx(proc_t *, void *, void (*)(), void (*)(),
703 void (*)(), void (*)(), void (*)());
704 extern void savepctx(proc_t *);
705 extern void restorepctx(proc_t *);
706 extern void forkpctx(proc_t *, proc_t *);
707 extern void exitpctx(proc_t *);
708 extern void freepctx(proc_t *, int);
709 extern kthread_t *thread_unpin(void);
710 extern void thread_init(void);
711 extern void thread_load(kthread_t *, void (*)(), caddr_t, size_t);
712
713 extern void tsd_create(uint_t *, void (*)(void *));
714 extern void tsd_destroy(uint_t *);
715 extern void *tsd_getcreate(uint_t *, void (*)(void *), void *(*)(void));
716 extern void *tsd_get(uint_t);
717 extern int tsd_set(uint_t, void *);
718 extern void tsd_exit(void);
719 extern void *tsd_agent_get(kthread_t *, uint_t);
720 extern int tsd_agent_set(kthread_t *, uint_t, void *);
721
722 /* lwp function prototypes */
723
724 extern kthread_t *lwp_kernel_create(proc_t *, void (*)(), void *, int, pri_t);
725 extern klwp_t *lwp_create(
726 void (*proc)(),
727 caddr_t arg,
728 size_t len,
729 proc_t *p,
730 int state,
731 int pri,
732 const k_sigset_t *smask,
733 int cid,
734 id_t lwpid);
735 extern kthread_t *idtot(proc_t *, id_t);
736 extern void lwp_hash_in(proc_t *, lwpent_t *, tidhash_t *, uint_t, int);
737 extern void lwp_hash_out(proc_t *, id_t);
738 extern lwpdir_t *lwp_hash_lookup(proc_t *, id_t);
739 extern lwpdir_t *lwp_hash_lookup_and_lock(proc_t *, id_t, kmutex_t **);
740 extern void lwp_create_done(kthread_t *);
741 extern void lwp_exit(void);
742 extern void lwp_pcb_exit(void);
743 extern void lwp_cleanup(void);
744 extern int lwp_suspend(kthread_t *);
745 extern void lwp_continue(kthread_t *);
746 extern void holdlwp(void);
747 extern void stoplwp(void);
748 extern int holdlwps(int);
749 extern int holdwatch(void);
750 extern void pokelwps(proc_t *);
751 extern void continuelwps(proc_t *);
752 extern int exitlwps(int);
753 extern void lwp_ctmpl_copy(klwp_t *, klwp_t *);
754 extern void lwp_ctmpl_clear(klwp_t *);
|
656 extern void restore_mstate(kthread_t *);
657 extern void term_mstate(kthread_t *);
658 extern void estimate_msacct(kthread_t *, hrtime_t);
659 extern void disable_msacct(proc_t *);
660 extern hrtime_t mstate_aggr_state(proc_t *, int);
661 extern hrtime_t mstate_thread_onproc_time(kthread_t *);
662 extern void mstate_systhread_times(kthread_t *, hrtime_t *, hrtime_t *);
663 extern void syscall_mstate(int, int);
664
665 extern uint_t cpu_update_pct(kthread_t *, hrtime_t);
666
667 extern void set_proc_pre_sys(proc_t *p);
668 extern void set_proc_post_sys(proc_t *p);
669 extern void set_proc_sys(proc_t *p);
670 extern void set_proc_ast(proc_t *p);
671 extern void set_all_proc_sys(void);
672 extern void set_all_zone_usr_proc_sys(zoneid_t);
673
674 /* thread function prototypes */
675
676 extern kthread_t *thread_create(caddr_t, size_t, void (*)(), void *,
677 size_t, proc_t *, int, pri_t);
678 extern void thread_exit(void) __NORETURN;
679 extern void thread_free(kthread_t *);
680 extern void thread_rele(kthread_t *);
681 extern void thread_join(kt_did_t);
682 extern int reaper(void);
683 extern void installctx(kthread_t *, void *, void (*)(), void (*)(),
684 void (*)(), void (*)(), void (*)(), void (*)());
685 extern int removectx(kthread_t *, void *, void (*)(), void (*)(),
686 void (*)(), void (*)(), void (*)(), void (*)());
687 extern void savectx(kthread_t *);
688 extern void restorectx(kthread_t *);
689 extern void forkctx(kthread_t *, kthread_t *);
690 extern void lwp_createctx(kthread_t *, kthread_t *);
691 extern void exitctx(kthread_t *);
692 extern void freectx(kthread_t *, int);
693 extern void installpctx(proc_t *, void *, void (*)(), void (*)(),
694 void (*)(), void (*)(), void (*)());
695 extern int removepctx(proc_t *, void *, void (*)(), void (*)(),
696 void (*)(), void (*)(), void (*)());
697 extern void savepctx(proc_t *);
698 extern void restorepctx(proc_t *);
699 extern void forkpctx(proc_t *, proc_t *);
700 extern void exitpctx(proc_t *);
701 extern void freepctx(proc_t *, int);
702 extern kthread_t *thread_unpin(void);
703 extern void thread_init(void);
704 extern void thread_load(kthread_t *, void (*)(), caddr_t, size_t);
705
706 extern void tsd_create(uint_t *, void (*)(void *));
707 extern void tsd_destroy(uint_t *);
708 extern void *tsd_getcreate(uint_t *, void (*)(void *), void *(*)(void));
709 extern void *tsd_get(uint_t);
710 extern int tsd_set(uint_t, void *);
711 extern void tsd_exit(void);
712 extern void *tsd_agent_get(kthread_t *, uint_t);
713 extern int tsd_agent_set(kthread_t *, uint_t, void *);
714
715 /* lwp function prototypes */
716
717 extern kthread_t *lwp_kernel_create(proc_t *, void (*)(), void *, int, pri_t);
718 extern klwp_t *lwp_create(void (*)(), caddr_t, size_t, proc_t *, int, int,
719 const k_sigset_t *, int, id_t);
720 extern kthread_t *idtot(proc_t *, id_t);
721 extern void lwp_hash_in(proc_t *, lwpent_t *, tidhash_t *, uint_t, int);
722 extern void lwp_hash_out(proc_t *, id_t);
723 extern lwpdir_t *lwp_hash_lookup(proc_t *, id_t);
724 extern lwpdir_t *lwp_hash_lookup_and_lock(proc_t *, id_t, kmutex_t **);
725 extern void lwp_create_done(kthread_t *);
726 extern void lwp_exit(void);
727 extern void lwp_pcb_exit(void);
728 extern void lwp_cleanup(void);
729 extern int lwp_suspend(kthread_t *);
730 extern void lwp_continue(kthread_t *);
731 extern void holdlwp(void);
732 extern void stoplwp(void);
733 extern int holdlwps(int);
734 extern int holdwatch(void);
735 extern void pokelwps(proc_t *);
736 extern void continuelwps(proc_t *);
737 extern int exitlwps(int);
738 extern void lwp_ctmpl_copy(klwp_t *, klwp_t *);
739 extern void lwp_ctmpl_clear(klwp_t *);
|