1 /*
   2  * This file and its contents are supplied under the terms of the
   3  * Common Development and Distribution License ("CDDL"), version 1.0.
   4  * You may only use this file in accordance with the terms of version
   5  * 1.0 of the CDDL.
   6  *
   7  * A full copy of the text of the CDDL should have accompanied this
   8  * source.  A copy of the CDDL is also available via the Internet at
   9  * http://www.illumos.org/license/CDDL.
  10  */
  11 
  12 /*
  13  * Copyright 2018 Joyent, Inc.
  14  */
  15 
  16 #ifndef _SYS_HT_H
  17 #define _SYS_HT_H
  18 
  19 #include <sys/types.h>
  20 #include <sys/thread.h>
  21 
  22 #ifdef  __cplusplus
  23 extern "C" {
  24 #endif
  25 
  26 struct cpu;
  27 
  28 extern void ht_init(void);
  29 extern void ht_intr_alloc_pil(uint_t);
  30 
  31 extern int ht_acquire(void);
  32 extern void ht_release(void);
  33 extern void ht_mark(void);
  34 extern void ht_begin_unsafe(void);
  35 extern void ht_end_unsafe(void);
  36 extern void ht_begin_intr(uint_t);
  37 extern void ht_end_intr(void);
  38 extern void ht_mark_as_vcpu(void);
  39 
  40 extern boolean_t ht_should_run(kthread_t *, struct cpu *);
  41 extern pri_t ht_adjust_cpu_score(kthread_t *, struct cpu *, pri_t);
  42 
  43 #ifdef  __cplusplus
  44 }
  45 #endif
  46 
  47 #endif  /* _SYS_HT_H */