Ignore:
Timestamp:
2006-08-01T17:27:11Z (19 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0fbfa0d
Parents:
e386cbf
Message:

xen32: use writable page tables, cleanup mm

File:
1 edited

Legend:

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

    re386cbf re12ccc5  
    3737
    3838#define GUEST_CMDLINE   1024
     39#define VIRT_CPUS               32
    3940#define START_INFO_SIZE 1104
     41
    4042#define BOOT_OFFSET             0x0000
     43#define XEN_VIRT_START  0xFC000000
     44
     45#define TEMP_STACK_SIZE 0x1000
    4146
    4247#ifndef __ASM__
    4348
     49#define mp_map ((pfn_t *) XEN_VIRT_START)
     50
    4451#include <arch/types.h>
     52
     53typedef uint32_t evtchn_t;
     54
     55typedef struct {
     56        uint32_t version;
     57        uint32_t pad0;
     58        uint64_t tsc_timestamp;   /**< TSC at last update of time vals */
     59        uint64_t system_time;     /**< Time, in nanosecs, since boot */
     60        uint32_t tsc_to_system_mul;
     61        int8_t tsc_shift;
     62        int8_t pad1[3];
     63} vcpu_time_info_t;
     64
     65typedef struct {
     66        uint32_t cr2;
     67        uint32_t pad[5];
     68} arch_vcpu_info_t;
     69
     70typedef struct arch_shared_info {
     71        pfn_t max_pfn;                  /**< max pfn that appears in table */
     72        uint32_t pfn_to_mfn_frame_list_list;
     73    uint32_t nmi_reason;
     74} arch_shared_info_t;
     75
     76typedef struct {
     77        uint8_t evtchn_upcall_pending;
     78        uint8_t evtchn_upcall_mask;
     79        evtchn_t evtchn_pending_sel;
     80        arch_vcpu_info_t arch;
     81        vcpu_time_info_t time;
     82} vcpu_info_t;
     83
     84typedef struct {
     85        vcpu_info_t vcpu_info[VIRT_CPUS];
     86        evtchn_t evtchn_pending[32];
     87        evtchn_t evtchn_mask[32];
     88       
     89        uint32_t wc_version;                  /**< Version counter */
     90        uint32_t wc_sec;                      /**< Secs  00:00:00 UTC, Jan 1, 1970 */
     91        uint32_t wc_nsec;                     /**< Nsecs 00:00:00 UTC, Jan 1, 1970 */
     92       
     93        arch_shared_info_t arch;
     94} shared_info_t;
    4595
    4696typedef struct {
    4797        int8_t magic[32];           /**< "xen-<version>-<platform>" */
    4898        uint32_t frames;            /**< Available frames */
    49         void *shared_info;          /**< Shared info structure (machine address) */
     99        shared_info_t *shared_info; /**< Shared info structure (machine address) */
    50100        uint32_t flags;             /**< SIF_xxx flags */
    51101        pfn_t store_mfn;            /**< Shared page (machine page) */
    52         uint32_t store_evtchn;      /**< Event channel for store communication */
     102        evtchn_t store_evtchn;      /**< Event channel for store communication */
    53103        void *console_mfn;          /**< Console page (machine address) */
    54         uint32_t console_evtchn;    /**< Event channel for console messages */
     104        evtchn_t console_evtchn;    /**< Event channel for console messages */
    55105        pte_t *ptl0;                /**< Boot PTL0 (kernel address) */
    56106        uint32_t pt_frames;         /**< Number of bootstrap page table frames */
     
    61111} start_info_t;
    62112
     113typedef struct {
     114        pfn_t start;
     115        pfn_t size;
     116        pfn_t reserved;
     117} memzone_t;
     118
    63119extern start_info_t start_info;
     120extern shared_info_t shared_info;
     121extern memzone_t meminfo;
    64122
    65123#endif
Note: See TracChangeset for help on using the changeset viewer.