ia64/xen-unstable

changeset 4430:344290c77cab

bitkeeper revision 1.1236.1.190 (424d7799Fdmy2lgwgEC3NOA1bzXAfg)

Un-PACK the dom0_op structures and bump the interface version number.
Signed-off-by: Keir Fraser <keir@xensource.com>
author kaf24@firebug.cl.cam.ac.uk
date Fri Apr 01 16:32:25 2005 +0000 (2005-04-01)
parents b0da7900bbbb
children 7535a4b0ae76
files xen/include/public/dom0_ops.h
line diff
     1.1 --- a/xen/include/public/dom0_ops.h	Fri Apr 01 16:31:40 2005 +0000
     1.2 +++ b/xen/include/public/dom0_ops.h	Fri Apr 01 16:32:25 2005 +0000
     1.3 @@ -19,24 +19,19 @@
     1.4   * This makes sure that old versions of dom0 tools will stop working in a
     1.5   * well-defined way (rather than crashing the machine, for instance).
     1.6   */
     1.7 -#define DOM0_INTERFACE_VERSION   0xAAAA1002
     1.8 +#define DOM0_INTERFACE_VERSION   0xAAAA1003
     1.9  
    1.10  /************************************************************************/
    1.11  
    1.12  #define DOM0_GETMEMLIST        2
    1.13  typedef struct {
    1.14      /* IN variables. */
    1.15 -    domid_t       domain;             /*  0 */
    1.16 -    u16           __pad0;
    1.17 -    u32           __pad1;
    1.18 -    memory_t      max_pfns;           /*  8 */
    1.19 -    MEMORY_PADDING;
    1.20 -    void         *buffer;             /* 16 */
    1.21 -    MEMORY_PADDING;
    1.22 +    domid_t       domain;
    1.23 +    memory_t      max_pfns;
    1.24 +    void         *buffer;
    1.25      /* OUT variables. */
    1.26 -    memory_t      num_pfns;           /* 24 */
    1.27 -    MEMORY_PADDING;
    1.28 -} PACKED dom0_getmemlist_t; /* 32 bytes */
    1.29 +    memory_t      num_pfns;
    1.30 +} dom0_getmemlist_t;
    1.31  
    1.32  #define DOM0_SCHEDCTL          6
    1.33   /* struct sched_ctl_cmd is from sched-ctl.h   */
    1.34 @@ -49,42 +44,36 @@ typedef struct sched_adjdom_cmd dom0_adj
    1.35  #define DOM0_CREATEDOMAIN      8
    1.36  typedef struct {
    1.37      /* IN parameters. */
    1.38 -    memory_t     memory_kb;           /*  0 */
    1.39 -    MEMORY_PADDING;
    1.40 -    u32          cpu;                 /*  8 */
    1.41 -    u32          __pad0;              /* 12 */
    1.42 +    memory_t     memory_kb;
    1.43 +    u32          cpu;
    1.44      /* IN/OUT parameters. */
    1.45      /* If 0, domain is allocated. If non-zero use it unless in use. */
    1.46 -    domid_t      domain;              /* 16 */
    1.47 -    u16          __pad1;
    1.48 +    domid_t      domain;
    1.49      /* OUT parameters. */
    1.50 -} PACKED dom0_createdomain_t; /* 20 bytes */
    1.51 +} dom0_createdomain_t;
    1.52  
    1.53  #define DOM0_DESTROYDOMAIN     9
    1.54  typedef struct {
    1.55      /* IN variables. */
    1.56 -    domid_t      domain;              /*  0 */
    1.57 -    u16          __pad;
    1.58 -} PACKED dom0_destroydomain_t; /* 4 bytes */
    1.59 +    domid_t      domain;
    1.60 +} dom0_destroydomain_t;
    1.61  
    1.62  #define DOM0_PAUSEDOMAIN      10
    1.63  typedef struct {
    1.64      /* IN parameters. */
    1.65 -    domid_t domain;                   /*  0 */
    1.66 -    u16     __pad;
    1.67 -} PACKED dom0_pausedomain_t; /* 4 bytes */
    1.68 +    domid_t domain;
    1.69 +} dom0_pausedomain_t;
    1.70  
    1.71  #define DOM0_UNPAUSEDOMAIN    11
    1.72  typedef struct {
    1.73      /* IN parameters. */
    1.74 -    domid_t domain;                   /*  0 */
    1.75 -    u16     __pad;
    1.76 -} PACKED dom0_unpausedomain_t; /* 4 bytes */
    1.77 +    domid_t domain;
    1.78 +} dom0_unpausedomain_t;
    1.79  
    1.80  #define DOM0_GETDOMAININFO    12
    1.81  typedef struct {
    1.82      /* IN variables. */
    1.83 -    domid_t  domain;                  /*  0 */ /* NB. IN/OUT variable. */
    1.84 +    domid_t  domain;                  /* NB. IN/OUT variable. */
    1.85      u16      exec_domain;
    1.86      /* OUT variables. */
    1.87  #define DOMFLAGS_DYING     (1<<0) /* Domain is scheduled to die.             */
    1.88 @@ -97,57 +86,50 @@ typedef struct {
    1.89  #define DOMFLAGS_CPUSHIFT       8
    1.90  #define DOMFLAGS_SHUTDOWNMASK 255 /* DOMFLAGS_SHUTDOWN guest-supplied code.  */
    1.91  #define DOMFLAGS_SHUTDOWNSHIFT 16
    1.92 -    u32      flags;                   /*  4 */
    1.93 -    full_execution_context_t *ctxt;   /*  8 */ /* NB. IN/OUT variable. */
    1.94 -    MEMORY_PADDING;
    1.95 -    memory_t tot_pages;               /* 16 */
    1.96 -    MEMORY_PADDING;
    1.97 -    memory_t max_pages;               /* 24 */
    1.98 -    MEMORY_PADDING;
    1.99 -    memory_t shared_info_frame;       /* 32: MFN of shared_info struct */
   1.100 -    MEMORY_PADDING;
   1.101 -    u64      cpu_time;                /* 40 */
   1.102 -} PACKED dom0_getdomaininfo_t; /* 48 bytes */
   1.103 +    u32      flags;
   1.104 +    full_execution_context_t *ctxt;   /* NB. IN/OUT variable. */
   1.105 +    memory_t tot_pages;
   1.106 +    memory_t max_pages;
   1.107 +    memory_t shared_info_frame;       /* MFN of shared_info struct */
   1.108 +    u64      cpu_time;
   1.109 +} dom0_getdomaininfo_t;
   1.110  
   1.111  #define DOM0_SETDOMAININFO      13
   1.112  typedef struct {
   1.113      /* IN variables. */
   1.114 -    domid_t                   domain;       /*  0 */
   1.115 -    u16                       exec_domain;  /*  2 */
   1.116 -    u32                       __pad0;       /*  4 */
   1.117 +    domid_t                   domain;
   1.118 +    u16                       exec_domain;
   1.119      /* IN/OUT parameters */
   1.120 -    full_execution_context_t *ctxt;         /*  8 */
   1.121 -    MEMORY_PADDING;
   1.122 -} PACKED dom0_setdomaininfo_t;              /* 16 bytes */
   1.123 +    full_execution_context_t *ctxt;
   1.124 +} dom0_setdomaininfo_t;
   1.125  
   1.126  #define DOM0_MSR              15
   1.127  typedef struct {
   1.128      /* IN variables. */
   1.129 -    u32 write;                        /*  0 */
   1.130 -    u32 cpu_mask;                     /*  4 */
   1.131 -    u32 msr;                          /*  8 */
   1.132 -    u32 in1;                          /* 12 */
   1.133 -    u32 in2;                          /* 16 */
   1.134 +    u32 write;
   1.135 +    u32 cpu_mask;
   1.136 +    u32 msr;
   1.137 +    u32 in1;
   1.138 +    u32 in2;
   1.139      /* OUT variables. */
   1.140 -    u32 out1;                         /* 20 */
   1.141 -    u32 out2;                         /* 24 */
   1.142 -} PACKED dom0_msr_t; /* 28 bytes */
   1.143 +    u32 out1;
   1.144 +    u32 out2;
   1.145 +} dom0_msr_t;
   1.146  
   1.147  #define DOM0_DEBUG            16
   1.148  typedef struct {
   1.149      /* IN variables. */
   1.150 -    domid_t domain;                   /*  0 */
   1.151 -    u8  opcode;                       /*  2 */
   1.152 -    u8  __pad;
   1.153 -    u32 in1;                          /*  4 */
   1.154 -    u32 in2;                          /*  8 */
   1.155 -    u32 in3;                          /* 12 */
   1.156 -    u32 in4;                          /* 16 */
   1.157 +    domid_t domain;
   1.158 +    u8  opcode;
   1.159 +    u32 in1;
   1.160 +    u32 in2;
   1.161 +    u32 in3;
   1.162 +    u32 in4;
   1.163      /* OUT variables. */
   1.164 -    u32 status;                       /* 20 */
   1.165 -    u32 out1;                         /* 24 */
   1.166 -    u32 out2;                         /* 28 */
   1.167 -} PACKED dom0_debug_t; /* 32 bytes */
   1.168 +    u32 status;
   1.169 +    u32 out1;
   1.170 +    u32 out2;
   1.171 +} dom0_debug_t;
   1.172  
   1.173  /*
   1.174   * Set clock such that it would read <secs,usecs> after 00:00:00 UTC,
   1.175 @@ -156,10 +138,10 @@ typedef struct {
   1.176  #define DOM0_SETTIME          17
   1.177  typedef struct {
   1.178      /* IN variables. */
   1.179 -    u32 secs;                         /*  0 */
   1.180 -    u32 usecs;                        /*  4 */
   1.181 -    u64 system_time;                  /*  8 */
   1.182 -} PACKED dom0_settime_t; /* 16 bytes */
   1.183 +    u32 secs;
   1.184 +    u32 usecs;
   1.185 +    u64 system_time;
   1.186 +} dom0_settime_t;
   1.187  
   1.188  #define DOM0_GETPAGEFRAMEINFO 18
   1.189  #define NOTAB 0         /* normal page */
   1.190 @@ -174,25 +156,22 @@ typedef struct {
   1.191  
   1.192  typedef struct {
   1.193      /* IN variables. */
   1.194 -    memory_t pfn;          /*  0: Machine page frame number to query.       */
   1.195 -    MEMORY_PADDING;
   1.196 -    domid_t domain;        /*  8: To which domain does the frame belong?    */
   1.197 -    u16     __pad;
   1.198 +    memory_t pfn;          /* Machine page frame number to query.       */
   1.199 +    domid_t domain;        /* To which domain does the frame belong?    */
   1.200      /* OUT variables. */
   1.201      /* Is the page PINNED to a type? */
   1.202 -    u32 type;              /* 12: see above type defs */
   1.203 -} PACKED dom0_getpageframeinfo_t; /* 16 bytes */
   1.204 +    u32 type;              /* see above type defs */
   1.205 +} dom0_getpageframeinfo_t;
   1.206  
   1.207  /*
   1.208   * Read console content from Xen buffer ring.
   1.209   */
   1.210  #define DOM0_READCONSOLE      19
   1.211  typedef struct {
   1.212 -    memory_t str;                     /*  0 */
   1.213 -    MEMORY_PADDING;
   1.214 -    u32      count;                   /*  8 */
   1.215 -    u32      cmd;                     /* 12 */
   1.216 -} PACKED dom0_readconsole_t; /* 16 bytes */
   1.217 +    memory_t str;
   1.218 +    u32      count;
   1.219 +    u32      cmd;
   1.220 +} dom0_readconsole_t;
   1.221  
   1.222  /* 
   1.223   * Pin Domain to a particular CPU  (use -1 to unpin)
   1.224 @@ -200,34 +179,30 @@ typedef struct {
   1.225  #define DOM0_PINCPUDOMAIN     20
   1.226  typedef struct {
   1.227      /* IN variables. */
   1.228 -    domid_t      domain;              /*  0 */
   1.229 +    domid_t      domain;
   1.230      u16          exec_domain;
   1.231 -    s32          cpu;                 /*  4: -1 implies unpin */
   1.232 -} PACKED dom0_pincpudomain_t; /* 8 bytes */
   1.233 +    s32          cpu;                 /*  -1 implies unpin */
   1.234 +} dom0_pincpudomain_t;
   1.235  
   1.236  /* Get trace buffers machine base address */
   1.237  #define DOM0_GETTBUFS         21
   1.238  typedef struct {
   1.239      /* OUT variables */
   1.240 -    memory_t mach_addr;   /*  0: location of the trace buffers       */
   1.241 -    MEMORY_PADDING;
   1.242 -    u32      size;        /*  8: size of each trace buffer, in bytes */
   1.243 -} PACKED dom0_gettbufs_t; /* 12 bytes */
   1.244 +    memory_t mach_addr;
   1.245 +    u32      size;
   1.246 +} dom0_gettbufs_t;
   1.247  
   1.248  /*
   1.249   * Get physical information about the host machine
   1.250   */
   1.251  #define DOM0_PHYSINFO         22
   1.252  typedef struct {
   1.253 -    u32      ht_per_core;             /*  0 */
   1.254 -    u32      cores;                   /*  4 */
   1.255 -    u32      cpu_khz;                 /*  8 */
   1.256 -    u32      __pad;                   /* 12 */
   1.257 -    memory_t total_pages;             /* 16 */
   1.258 -    MEMORY_PADDING;
   1.259 -    memory_t free_pages;              /* 24 */
   1.260 -    MEMORY_PADDING;
   1.261 -} PACKED dom0_physinfo_t; /* 32 bytes */
   1.262 +    u32      ht_per_core;
   1.263 +    u32      cores;
   1.264 +    u32      cpu_khz;
   1.265 +    memory_t total_pages;
   1.266 +    memory_t free_pages;
   1.267 +} dom0_physinfo_t;
   1.268  
   1.269  /* 
   1.270   * Allow a domain access to a physical PCI device
   1.271 @@ -235,13 +210,12 @@ typedef struct {
   1.272  #define DOM0_PCIDEV_ACCESS    23
   1.273  typedef struct {
   1.274      /* IN variables. */
   1.275 -    domid_t      domain;              /*  0 */
   1.276 -    u16          __pad;
   1.277 -    u32          bus;                 /*  4 */
   1.278 -    u32          dev;                 /*  8 */
   1.279 -    u32          func;                /* 12 */
   1.280 -    u32          enable;              /* 16 */
   1.281 -} PACKED dom0_pcidev_access_t; /* 20 bytes */
   1.282 +    domid_t      domain;
   1.283 +    u32          bus;
   1.284 +    u32          dev;
   1.285 +    u32          func;
   1.286 +    u32          enable;
   1.287 +} dom0_pcidev_access_t;
   1.288  
   1.289  /*
   1.290   * Get the ID of the current scheduler.
   1.291 @@ -249,8 +223,8 @@ typedef struct {
   1.292  #define DOM0_SCHED_ID        24
   1.293  typedef struct {
   1.294      /* OUT variable */
   1.295 -    u32 sched_id;                     /*  0 */
   1.296 -} PACKED dom0_sched_id_t; /* 4 bytes */
   1.297 +    u32 sched_id;
   1.298 +} dom0_sched_id_t;
   1.299  
   1.300  /* 
   1.301   * Control shadow pagetables operation
   1.302 @@ -275,50 +249,37 @@ typedef struct dom0_shadow_control
   1.303  
   1.304  typedef struct {
   1.305      /* IN variables. */
   1.306 -    domid_t        domain;            /*  0 */
   1.307 -    u16            __pad;
   1.308 -    u32            op;                /*  4 */
   1.309 -    unsigned long *dirty_bitmap;      /*  8: pointer to locked buffer */
   1.310 -    MEMORY_PADDING;
   1.311 +    domid_t        domain;
   1.312 +    u32            op;
   1.313 +    unsigned long *dirty_bitmap; /* pointer to locked buffer */
   1.314      /* IN/OUT variables. */
   1.315 -    memory_t       pages;  /* 16: size of buffer, updated with actual size */
   1.316 -    MEMORY_PADDING;
   1.317 +    memory_t       pages;        /* size of buffer, updated with actual size */
   1.318      /* OUT variables. */
   1.319      dom0_shadow_control_stats_t stats;
   1.320 -} PACKED dom0_shadow_control_t;
   1.321 +} dom0_shadow_control_t;
   1.322  
   1.323  #define DOM0_SETDOMAININITIALMEM   27
   1.324  typedef struct {
   1.325      /* IN variables. */
   1.326 -    domid_t     domain;               /*  0 */
   1.327 -    u16         __pad0;
   1.328 -    u32         __pad1;
   1.329 -    memory_t    initial_memkb;        /*  8 */
   1.330 -    MEMORY_PADDING;
   1.331 -} PACKED dom0_setdomaininitialmem_t; /* 16 bytes */
   1.332 +    domid_t     domain;
   1.333 +    memory_t    initial_memkb;
   1.334 +} dom0_setdomaininitialmem_t;
   1.335  
   1.336  #define DOM0_SETDOMAINMAXMEM   28
   1.337  typedef struct {
   1.338      /* IN variables. */
   1.339 -    domid_t     domain;               /*  0 */
   1.340 -    u16         __pad0;
   1.341 -    u32         __pad1;
   1.342 -    memory_t    max_memkb;            /*  8 */
   1.343 -    MEMORY_PADDING;
   1.344 -} PACKED dom0_setdomainmaxmem_t; /* 16 bytes */
   1.345 +    domid_t     domain;
   1.346 +    memory_t    max_memkb;
   1.347 +} dom0_setdomainmaxmem_t;
   1.348  
   1.349  #define DOM0_GETPAGEFRAMEINFO2 29   /* batched interface */
   1.350  typedef struct {
   1.351      /* IN variables. */
   1.352 -    domid_t  domain;                  /*  0 */
   1.353 -    u16      __pad0;
   1.354 -    u32      __pad1;
   1.355 -    memory_t num;                     /*  8 */
   1.356 -    MEMORY_PADDING;
   1.357 +    domid_t  domain;
   1.358 +    memory_t num;
   1.359      /* IN/OUT variables. */
   1.360 -    unsigned long *array;             /* 16 */
   1.361 -    MEMORY_PADDING;
   1.362 -} PACKED dom0_getpageframeinfo2_t; /* 24 bytes */
   1.363 +    unsigned long *array;
   1.364 +} dom0_getpageframeinfo2_t;
   1.365  
   1.366  /*
   1.367   * Request memory range (@pfn, @pfn+@nr_pfns-1) to have type @type.
   1.368 @@ -330,16 +291,13 @@ typedef struct {
   1.369  #define DOM0_ADD_MEMTYPE         31
   1.370  typedef struct {
   1.371      /* IN variables. */
   1.372 -    memory_t pfn;                     /*  0 */
   1.373 -    MEMORY_PADDING;
   1.374 -    memory_t nr_pfns;                 /*  8 */
   1.375 -    MEMORY_PADDING;
   1.376 -    u32      type;                    /* 16 */
   1.377 -    u32      __pad0;
   1.378 +    memory_t pfn;
   1.379 +    memory_t nr_pfns;
   1.380 +    u32      type;
   1.381      /* OUT variables. */
   1.382 -    u32      handle;                  /* 24 */
   1.383 -    u32      reg;                     /* 28 */
   1.384 -} PACKED dom0_add_memtype_t; /* 32 bytes */
   1.385 +    u32      handle;
   1.386 +    u32      reg;
   1.387 +} dom0_add_memtype_t;
   1.388  
   1.389  /*
   1.390   * Tear down an existing memory-range type. If @handle is remembered then it
   1.391 @@ -351,24 +309,20 @@ typedef struct {
   1.392  #define DOM0_DEL_MEMTYPE         32
   1.393  typedef struct {
   1.394      /* IN variables. */
   1.395 -    u32      handle;                  /*  0 */
   1.396 -    u32      reg;                     /*  4 */
   1.397 -} PACKED dom0_del_memtype_t; /* 8 bytes */
   1.398 +    u32      handle;
   1.399 +    u32      reg;
   1.400 +} dom0_del_memtype_t;
   1.401  
   1.402  /* Read current type of an MTRR (x86-specific). */
   1.403  #define DOM0_READ_MEMTYPE        33
   1.404  typedef struct {
   1.405      /* IN variables. */
   1.406 -    u32      reg;                     /*  0 */
   1.407 -    u32      __pad0;
   1.408 +    u32      reg;
   1.409      /* OUT variables. */
   1.410 -    memory_t pfn;                     /*  8 */
   1.411 -    MEMORY_PADDING;
   1.412 -    memory_t nr_pfns;                 /* 16 */
   1.413 -    MEMORY_PADDING;
   1.414 -    u32      type;                    /* 24 */
   1.415 -    u32      __pad1;
   1.416 -} PACKED dom0_read_memtype_t; /* 32 bytes */
   1.417 +    memory_t pfn;
   1.418 +    memory_t nr_pfns;
   1.419 +    u32      type;
   1.420 +} dom0_read_memtype_t;
   1.421  
   1.422  /* Interface for controlling Xen software performance counters. */
   1.423  #define DOM0_PERFCCONTROL        34
   1.424 @@ -376,41 +330,37 @@ typedef struct {
   1.425  #define DOM0_PERFCCONTROL_OP_RESET 1   /* Reset all counters to zero. */
   1.426  #define DOM0_PERFCCONTROL_OP_QUERY 2   /* Get perfctr information. */
   1.427  typedef struct {
   1.428 -    u8      name[80];               /*  0: name of perf counter */
   1.429 -    u32     nr_vals;                /* 80: number of values for this counter */
   1.430 -    u32     vals[64];               /* 84: array of values */
   1.431 -} PACKED dom0_perfc_desc_t; /* 340 bytes */
   1.432 +    u8      name[80];               /*  name of perf counter */
   1.433 +    u32     nr_vals;                /* number of values for this counter */
   1.434 +    u32     vals[64];               /* array of values */
   1.435 +} dom0_perfc_desc_t;
   1.436  typedef struct {
   1.437      /* IN variables. */
   1.438 -    u32            op;                /*  0: DOM0_PERFCCONTROL_OP_??? */
   1.439 +    u32            op;                /*  DOM0_PERFCCONTROL_OP_??? */
   1.440      /* OUT variables. */
   1.441 -    u32            nr_counters;       /*  4: number of counters */
   1.442 -    dom0_perfc_desc_t *desc;          /*  8: counter information (or NULL) */
   1.443 -    MEMORY_PADDING;
   1.444 -} PACKED dom0_perfccontrol_t; /* 16 bytes */
   1.445 +    u32            nr_counters;       /*  number of counters */
   1.446 +    dom0_perfc_desc_t *desc;          /*  counter information (or NULL) */
   1.447 +} dom0_perfccontrol_t;
   1.448  
   1.449  #define DOM0_MICROCODE           35
   1.450  typedef struct {
   1.451      /* IN variables. */
   1.452 -    void   *data;                     /* 0: Pointer to microcode data */
   1.453 -    MEMORY_PADDING;
   1.454 -    u32     length;                   /* 8: Length of microcode data. */
   1.455 -    u32     _pad0;
   1.456 -} PACKED dom0_microcode_t; /* 16 bytes */
   1.457 +    void   *data;                     /* Pointer to microcode data */
   1.458 +    u32     length;                   /* Length of microcode data. */
   1.459 +} dom0_microcode_t;
   1.460  
   1.461  #define DOM0_IOPORT_PERMISSION   36
   1.462  typedef struct {
   1.463 -    domid_t domain;                   /* 0: domain to be affected */
   1.464 -    u16     first_port;               /* 2: first port int range */
   1.465 -    u16     nr_ports;                 /* 4: size of port range */
   1.466 -    u16     allow_access;             /* 6: allow or deny access to range? */
   1.467 -} PACKED dom0_ioport_permission_t; /* 8 bytes */
   1.468 +    domid_t domain;                   /* domain to be affected */
   1.469 +    u16     first_port;               /* first port int range */
   1.470 +    u16     nr_ports;                 /* size of port range */
   1.471 +    u16     allow_access;             /* allow or deny access to range? */
   1.472 +} dom0_ioport_permission_t;
   1.473  
   1.474  typedef struct {
   1.475 -    u32 cmd;                          /* 0 */
   1.476 -    u32 interface_version;            /* 4 */ /* DOM0_INTERFACE_VERSION */
   1.477 -    union {                           /* 8 */
   1.478 -	u32                      dummy[18]; /* 72 bytes */
   1.479 +    u32 cmd;
   1.480 +    u32 interface_version; /* DOM0_INTERFACE_VERSION */
   1.481 +    union {
   1.482          dom0_createdomain_t      createdomain;
   1.483          dom0_pausedomain_t       pausedomain;
   1.484          dom0_unpausedomain_t     unpausedomain;
   1.485 @@ -440,7 +390,7 @@ typedef struct {
   1.486          dom0_perfccontrol_t      perfccontrol;
   1.487          dom0_microcode_t         microcode;
   1.488          dom0_ioport_permission_t ioport_permission;
   1.489 -    } PACKED u;
   1.490 -} PACKED dom0_op_t; /* 80 bytes */
   1.491 +    } u;
   1.492 +} dom0_op_t;
   1.493  
   1.494  #endif /* __XEN_PUBLIC_DOM0_OPS_H__ */