qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

hax-windows.h (3648B)


      1 /*
      2  * QEMU HAXM support
      3  *
      4  * Copyright IBM, Corp. 2008
      5  *
      6  * Authors:
      7  *  Anthony Liguori   <aliguori@us.ibm.com>
      8  *
      9  * Copyright (c) 2011 Intel Corporation
     10  *  Written by:
     11  *  Jiang Yunhong<yunhong.jiang@intel.com>
     12  *  Xin Xiaohui<xiaohui.xin@intel.com>
     13  *  Zhang Xiantao<xiantao.zhang@intel.com>
     14  *
     15  * This work is licensed under the terms of the GNU GPL, version 2 or later.
     16  * See the COPYING file in the top-level directory.
     17  *
     18  */
     19 
     20 #ifndef TARGET_I386_HAX_WINDOWS_H
     21 #define TARGET_I386_HAX_WINDOWS_H
     22 
     23 #include <winioctl.h>
     24 #include <windef.h>
     25 
     26 #include "hax-accel-ops.h"
     27 
     28 #define HAX_INVALID_FD INVALID_HANDLE_VALUE
     29 
     30 static inline void hax_mod_close(struct hax_state *hax)
     31 {
     32     CloseHandle(hax->fd);
     33 }
     34 
     35 static inline void hax_close_fd(hax_fd fd)
     36 {
     37     CloseHandle(fd);
     38 }
     39 
     40 static inline int hax_invalid_fd(hax_fd fd)
     41 {
     42     return (fd == INVALID_HANDLE_VALUE);
     43 }
     44 
     45 #define HAX_DEVICE_TYPE 0x4000
     46 
     47 #define HAX_IOCTL_VERSION       CTL_CODE(HAX_DEVICE_TYPE, 0x900, \
     48                                          METHOD_BUFFERED, FILE_ANY_ACCESS)
     49 #define HAX_IOCTL_CREATE_VM     CTL_CODE(HAX_DEVICE_TYPE, 0x901, \
     50                                          METHOD_BUFFERED, FILE_ANY_ACCESS)
     51 #define HAX_IOCTL_CAPABILITY    CTL_CODE(HAX_DEVICE_TYPE, 0x910, \
     52                                          METHOD_BUFFERED, FILE_ANY_ACCESS)
     53 
     54 #define HAX_VM_IOCTL_VCPU_CREATE   CTL_CODE(HAX_DEVICE_TYPE, 0x902, \
     55                                             METHOD_BUFFERED, FILE_ANY_ACCESS)
     56 #define HAX_VM_IOCTL_ALLOC_RAM     CTL_CODE(HAX_DEVICE_TYPE, 0x903, \
     57                                             METHOD_BUFFERED, FILE_ANY_ACCESS)
     58 #define HAX_VM_IOCTL_SET_RAM       CTL_CODE(HAX_DEVICE_TYPE, 0x904, \
     59                                             METHOD_BUFFERED, FILE_ANY_ACCESS)
     60 #define HAX_VM_IOCTL_VCPU_DESTROY  CTL_CODE(HAX_DEVICE_TYPE, 0x905, \
     61                                             METHOD_BUFFERED, FILE_ANY_ACCESS)
     62 #define HAX_VM_IOCTL_ADD_RAMBLOCK  CTL_CODE(HAX_DEVICE_TYPE, 0x913, \
     63                                             METHOD_BUFFERED, FILE_ANY_ACCESS)
     64 
     65 #define HAX_VCPU_IOCTL_RUN      CTL_CODE(HAX_DEVICE_TYPE, 0x906, \
     66                                          METHOD_BUFFERED, FILE_ANY_ACCESS)
     67 #define HAX_VCPU_IOCTL_SET_MSRS CTL_CODE(HAX_DEVICE_TYPE, 0x907, \
     68                                          METHOD_BUFFERED, FILE_ANY_ACCESS)
     69 #define HAX_VCPU_IOCTL_GET_MSRS CTL_CODE(HAX_DEVICE_TYPE, 0x908, \
     70                                          METHOD_BUFFERED, FILE_ANY_ACCESS)
     71 #define HAX_VCPU_IOCTL_SET_FPU  CTL_CODE(HAX_DEVICE_TYPE, 0x909, \
     72                                          METHOD_BUFFERED, FILE_ANY_ACCESS)
     73 #define HAX_VCPU_IOCTL_GET_FPU  CTL_CODE(HAX_DEVICE_TYPE, 0x90a, \
     74                                          METHOD_BUFFERED, FILE_ANY_ACCESS)
     75 
     76 #define HAX_VCPU_IOCTL_SETUP_TUNNEL  CTL_CODE(HAX_DEVICE_TYPE, 0x90b, \
     77                                               METHOD_BUFFERED, FILE_ANY_ACCESS)
     78 #define HAX_VCPU_IOCTL_INTERRUPT     CTL_CODE(HAX_DEVICE_TYPE, 0x90c, \
     79                                               METHOD_BUFFERED, FILE_ANY_ACCESS)
     80 #define HAX_VCPU_SET_REGS            CTL_CODE(HAX_DEVICE_TYPE, 0x90d, \
     81                                               METHOD_BUFFERED, FILE_ANY_ACCESS)
     82 #define HAX_VCPU_GET_REGS            CTL_CODE(HAX_DEVICE_TYPE, 0x90e, \
     83                                               METHOD_BUFFERED, FILE_ANY_ACCESS)
     84 
     85 #define HAX_VM_IOCTL_NOTIFY_QEMU_VERSION CTL_CODE(HAX_DEVICE_TYPE, 0x910, \
     86                                                   METHOD_BUFFERED,        \
     87                                                   FILE_ANY_ACCESS)
     88 #endif /* TARGET_I386_HAX_WINDOWS_H */