Ignore:
Timestamp:
2006-07-25T00:47:29Z (18 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a0c12f5
Parents:
aecf79f
Message:

xen32 work: create identity mapping for the main memory zone,
make several dummy modifications to get to the banner

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/xen32/include/hypercall.h

    raecf79f rc59dd1a2  
    3434
    3535
     36typedef uint16_t domid_t;
     37
     38typedef struct {
     39    uint64_t ptr;  /**< Machine address of PTE */
     40    uint64_t val;  /**< New contents of PTE */
     41} mmu_update_t;
     42
     43typedef struct {
     44    unsigned int cmd;
     45    union {
     46        unsigned long mfn;
     47        unsigned long linear_addr;
     48    } arg1;
     49    union {
     50        unsigned int nr_ents;
     51        void *vcpumask;
     52    } arg2;
     53} mmuext_op_t;
     54
     55
     56#define XEN_MMU_UPDATE  1
    3657#define XEN_CONSOLE_IO  18
     58#define XEN_MMUEXT_OP   26
    3759
    3860
     
    4466
    4567
     68#define MMUEXT_PIN_L1_TABLE      0
     69#define MMUEXT_PIN_L2_TABLE      1
     70#define MMUEXT_PIN_L3_TABLE      2
     71#define MMUEXT_PIN_L4_TABLE      3
     72#define MMUEXT_UNPIN_TABLE       4
     73#define MMUEXT_NEW_BASEPTR       5
     74#define MMUEXT_TLB_FLUSH_LOCAL   6
     75#define MMUEXT_INVLPG_LOCAL      7
     76#define MMUEXT_TLB_FLUSH_MULTI   8
     77#define MMUEXT_INVLPG_MULTI      9
     78#define MMUEXT_TLB_FLUSH_ALL    10
     79#define MMUEXT_INVLPG_ALL       11
     80#define MMUEXT_FLUSH_CACHE      12
     81#define MMUEXT_SET_LDT          13
     82#define MMUEXT_NEW_USER_BASEPTR 15
     83
     84
     85#define DOMID_SELF (0x7FF0U)
     86#define DOMID_IO   (0x7FF1U)
     87
     88
    4689#define hypercall0(id)  \
    4790        ({      \
     
    142185
    143186
    144 static inline int xen_console_io(const int cmd, const int count, const char *str)
     187static inline int xen_console_io(const unsigned int cmd, const unsigned int count, const char *str)
    145188{
    146189        return hypercall3(XEN_CONSOLE_IO, cmd, count, str);
    147190}
    148191
     192static inline int xen_mmu_update(const mmu_update_t *req, const unsigned int count, unsigned int *success_count, domid_t domid)
     193{
     194        return hypercall4(XEN_MMU_UPDATE, req, count, success_count, domid);
     195}
     196
     197static inline int xen_mmuext_op(const mmuext_op_t *op, const unsigned int count, unsigned int *success_count, domid_t domid)
     198{
     199        return hypercall4(XEN_MMUEXT_OP, op, count, success_count, domid);
     200}
     201
    149202#endif
Note: See TracChangeset for help on using the changeset viewer.