Annotation of Gnu-Mach/xen/public/dom0_ops.h, revision 1.1.1.1

1.1       root        1: /******************************************************************************
                      2:  * dom0_ops.h
                      3:  * 
                      4:  * Process command requests from domain-0 guest OS.
                      5:  * 
                      6:  * Permission is hereby granted, free of charge, to any person obtaining a copy
                      7:  * of this software and associated documentation files (the "Software"), to
                      8:  * deal in the Software without restriction, including without limitation the
                      9:  * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
                     10:  * sell copies of the Software, and to permit persons to whom the Software is
                     11:  * furnished to do so, subject to the following conditions:
                     12:  *
                     13:  * The above copyright notice and this permission notice shall be included in
                     14:  * all copies or substantial portions of the Software.
                     15:  *
                     16:  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
                     17:  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
                     18:  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
                     19:  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
                     20:  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
                     21:  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
                     22:  * DEALINGS IN THE SOFTWARE.
                     23:  *
                     24:  * Copyright (c) 2002-2003, B Dragovic
                     25:  * Copyright (c) 2002-2006, K Fraser
                     26:  */
                     27: 
                     28: #ifndef __XEN_PUBLIC_DOM0_OPS_H__
                     29: #define __XEN_PUBLIC_DOM0_OPS_H__
                     30: 
                     31: #include "xen.h"
                     32: #include "platform.h"
                     33: 
                     34: #if __XEN_INTERFACE_VERSION__ >= 0x00030204
                     35: #error "dom0_ops.h is a compatibility interface only"
                     36: #endif
                     37: 
                     38: #define DOM0_INTERFACE_VERSION XENPF_INTERFACE_VERSION
                     39: 
                     40: #define DOM0_SETTIME          XENPF_settime
                     41: #define dom0_settime          xenpf_settime
                     42: #define dom0_settime_t        xenpf_settime_t
                     43: 
                     44: #define DOM0_ADD_MEMTYPE      XENPF_add_memtype
                     45: #define dom0_add_memtype      xenpf_add_memtype
                     46: #define dom0_add_memtype_t    xenpf_add_memtype_t
                     47: 
                     48: #define DOM0_DEL_MEMTYPE      XENPF_del_memtype
                     49: #define dom0_del_memtype      xenpf_del_memtype
                     50: #define dom0_del_memtype_t    xenpf_del_memtype_t
                     51: 
                     52: #define DOM0_READ_MEMTYPE     XENPF_read_memtype
                     53: #define dom0_read_memtype     xenpf_read_memtype
                     54: #define dom0_read_memtype_t   xenpf_read_memtype_t
                     55: 
                     56: #define DOM0_MICROCODE        XENPF_microcode_update
                     57: #define dom0_microcode        xenpf_microcode_update
                     58: #define dom0_microcode_t      xenpf_microcode_update_t
                     59: 
                     60: #define DOM0_PLATFORM_QUIRK   XENPF_platform_quirk
                     61: #define dom0_platform_quirk   xenpf_platform_quirk
                     62: #define dom0_platform_quirk_t xenpf_platform_quirk_t
                     63: 
                     64: typedef uint64_t cpumap_t;
                     65: 
                     66: /* Unsupported legacy operation -- defined for API compatibility. */
                     67: #define DOM0_MSR                 15
                     68: struct dom0_msr {
                     69:     /* IN variables. */
                     70:     uint32_t write;
                     71:     cpumap_t cpu_mask;
                     72:     uint32_t msr;
                     73:     uint32_t in1;
                     74:     uint32_t in2;
                     75:     /* OUT variables. */
                     76:     uint32_t out1;
                     77:     uint32_t out2;
                     78: };
                     79: typedef struct dom0_msr dom0_msr_t;
                     80: DEFINE_XEN_GUEST_HANDLE(dom0_msr_t);
                     81: 
                     82: /* Unsupported legacy operation -- defined for API compatibility. */
                     83: #define DOM0_PHYSICAL_MEMORY_MAP 40
                     84: struct dom0_memory_map_entry {
                     85:     uint64_t start, end;
                     86:     uint32_t flags; /* reserved */
                     87:     uint8_t  is_ram;
                     88: };
                     89: typedef struct dom0_memory_map_entry dom0_memory_map_entry_t;
                     90: DEFINE_XEN_GUEST_HANDLE(dom0_memory_map_entry_t);
                     91: 
                     92: struct dom0_op {
                     93:     uint32_t cmd;
                     94:     uint32_t interface_version; /* DOM0_INTERFACE_VERSION */
                     95:     union {
                     96:         struct dom0_msr               msr;
                     97:         struct dom0_settime           settime;
                     98:         struct dom0_add_memtype       add_memtype;
                     99:         struct dom0_del_memtype       del_memtype;
                    100:         struct dom0_read_memtype      read_memtype;
                    101:         struct dom0_microcode         microcode;
                    102:         struct dom0_platform_quirk    platform_quirk;
                    103:         struct dom0_memory_map_entry  physical_memory_map;
                    104:         uint8_t                       pad[128];
                    105:     } u;
                    106: };
                    107: typedef struct dom0_op dom0_op_t;
                    108: DEFINE_XEN_GUEST_HANDLE(dom0_op_t);
                    109: 
                    110: #endif /* __XEN_PUBLIC_DOM0_OPS_H__ */
                    111: 
                    112: /*
                    113:  * Local variables:
                    114:  * mode: C
                    115:  * c-set-style: "BSD"
                    116:  * c-basic-offset: 4
                    117:  * tab-width: 4
                    118:  * indent-tabs-mode: nil
                    119:  * End:
                    120:  */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.