Print this page
13275 bhyve needs richer INIT/SIPI support
Reviewed by: Robert Mustacchi <rm@fingolfin.org>
Approved by: Gordon Ross <gordon.w.ross@gmail.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libvmmapi/common/vmmapi.h
          +++ new/usr/src/lib/libvmmapi/common/vmmapi.h
↓ open down ↓ 296 lines elided ↑ open up ↑
 297  297  /* CPU topology */
 298  298  int     vm_set_topology(struct vmctx *ctx, uint16_t sockets, uint16_t cores,
 299  299              uint16_t threads, uint16_t maxcpus);
 300  300  int     vm_get_topology(struct vmctx *ctx, uint16_t *sockets, uint16_t *cores,
 301  301              uint16_t *threads, uint16_t *maxcpus);
 302  302  
 303  303  #ifndef __FreeBSD__
 304  304  /* illumos-specific APIs */
 305  305  int     vm_pmtmr_set_location(struct vmctx *ctx, uint16_t ioport);
 306  306  int     vm_wrlock_cycle(struct vmctx *ctx);
      307 +int vm_get_run_state(struct vmctx *ctx, int vcpu, enum vcpu_run_state *state,
      308 +    uint8_t *sipi_vector);
      309 +int vm_set_run_state(struct vmctx *ctx, int vcpu, enum vcpu_run_state state,
      310 +    uint8_t sipi_vector);
 307  311  #endif  /* __FreeBSD__ */
 308  312  
 309  313  #ifdef  __FreeBSD__
 310  314  /*
 311  315   * FreeBSD specific APIs
 312  316   */
 313  317  int     vm_setup_freebsd_registers(struct vmctx *ctx, int vcpu,
 314  318                                  uint64_t rip, uint64_t cr3, uint64_t gdtbase,
 315  319                                  uint64_t rsp);
 316  320  int     vm_setup_freebsd_registers_i386(struct vmctx *vmctx, int vcpu,
 317  321                                          uint32_t eip, uint32_t gdtbase,
 318  322                                          uint32_t esp);
 319  323  void    vm_setup_freebsd_gdt(uint64_t *gdtr);
 320  324  #endif
 321  325  #endif  /* _VMMAPI_H_ */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX