1. 22 8月, 2011 21 次提交
    • B
      fdc: avoid structure holes spotted by pahole · 242cca4f
      Blue Swirl 提交于
      Edited report from pahole on amd64 host:
      struct FDCtrl {
      	uint8_t                    version;              /*     0     1 */
      
      	/* XXX 7 bytes hole, try to pack */
      
      	qemu_irq                   irq;                  /*     8     8 */
      	int                        dma_chann;            /*    16     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      ...
      	uint8_t                    status2;              /*    42     1 */
      
      	/* XXX 5 bytes hole, try to pack */
      
      	uint8_t *                  fifo;                 /*    48     8 */
      ...
      	uint8_t                    pwrd;                 /*    76     1 */
      
      	/* XXX 3 bytes hole, try to pack */
      
      	int                        sun4m;                /*    80     4 */
      	uint8_t                    num_floppies;         /*    84     1 */
      
      	/* XXX 3 bytes hole, try to pack */
      
      	FDrive                     drives[2];            /*    88    64 */
      	/* --- cacheline 2 boundary (128 bytes) was 24 bytes ago --- */
      	int                        reset_sensei;         /*   152     4 */
      
      	/* size: 160, cachelines: 3 */
      	/* sum members: 134, holes: 5, sum holes: 22 */
      	/* padding: 4 */
      	/* last cacheline: 32 bytes */
      };	/* definitions: 1 */
      
      Fix by rearranging the structure to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      242cca4f
    • B
      pcnet: avoid structure holes spotted by pahole · fe87aa83
      Blue Swirl 提交于
      Edited report from pahole on amd64 host:
      struct PCNetState_st {
      ...
      	uint16_t                   bcr[32];              /*   340    64 */
      
      	/* XXX 4 bytes hole, try to pack */
      ...
      	int                        tx_busy;              /*  4520     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	qemu_irq                   irq;                  /*  4528     8 */
      	void                       (*phys_mem_read)(void *, target_phys_addr_t, uint8_t *, int, int); /*  4536     8 */
      	/* --- cacheline 71 boundary (4544 bytes) --- */
      	void                       (*phys_mem_write)(void *, target_phys_addr_t, uint8_t *, int, int); /*  4544     8 */
      	void *                     dma_opaque;           /*  4552     8 */
      	int                        looptest;             /*  4560     4 */
      
      	/* size: 4568, cachelines: 72 */
      	/* sum members: 4556, holes: 2, sum holes: 8 */
      	/* padding: 4 */
      	/* last cacheline: 24 bytes */
      };	/* definitions: 2 */
      
      Fix by rearranging the structure to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      fe87aa83
    • B
      esp: avoid structure holes spotted by pahole · 9a975d63
      Blue Swirl 提交于
      Report from pahole on amd64 host:
      struct ESPState {
      	SysBusDevice               busdev;               /*     0  5648 */
      	/* --- cacheline 88 boundary (5632 bytes) was 16 bytes ago --- */
      	uint32_t                   it_shift;             /*  5648     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	qemu_irq                   irq;                  /*  5656     8 */
      	uint8_t                    rregs[16];            /*  5664    16 */
      	uint8_t                    wregs[16];            /*  5680    16 */
      	/* --- cacheline 89 boundary (5696 bytes) --- */
      	int32_t                    ti_size;              /*  5696     4 */
      	uint32_t                   ti_rptr;              /*  5700     4 */
      	uint32_t                   ti_wptr;              /*  5704     4 */
      	uint8_t                    ti_buf[16];           /*  5708    16 */
      	uint32_t                   status;               /*  5724     4 */
      	uint32_t                   dma;                  /*  5728     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	SCSIBus                    bus;                  /*  5736  2120 */
      	/* --- cacheline 122 boundary (7808 bytes) was 48 bytes ago --- */
      	SCSIDevice *               current_dev;          /*  7856     8 */
      	SCSIRequest *              current_req;          /*  7864     8 */
      	/* --- cacheline 123 boundary (7872 bytes) --- */
      	uint8_t                    cmdbuf[16];           /*  7872    16 */
      	uint32_t                   cmdlen;               /*  7888     4 */
      	uint32_t                   do_cmd;               /*  7892     4 */
      	uint32_t                   dma_left;             /*  7896     4 */
      	uint32_t                   dma_counter;          /*  7900     4 */
      	uint8_t *                  async_buf;            /*  7904     8 */
      	uint32_t                   async_len;            /*  7912     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	ESPDMAMemoryReadWriteFunc  dma_memory_read;      /*  7920     8 */
      	ESPDMAMemoryReadWriteFunc  dma_memory_write;     /*  7928     8 */
      	/* --- cacheline 124 boundary (7936 bytes) --- */
      	void *                     dma_opaque;           /*  7936     8 */
      	int                        dma_enabled;          /*  7944     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	void                       (*dma_cb)(ESPState *); /*  7952     8 */
      
      	/* size: 7960, cachelines: 125 */
      	/* sum members: 7944, holes: 4, sum holes: 16 */
      	/* last cacheline: 24 bytes */
      };	/* definitions: 1 */
      
      Fix by rearranging the structure to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      9a975d63
    • B
      sun4m: avoid structure holes spotted by pahole · 61999750
      Blue Swirl 提交于
      Edited report from pahole on amd64 host:
      struct sun4c_hwdef {
      ...
      	uint8_t                    nvram_machine_id;     /*   112     1 */
      
      	/* XXX 1 byte hole, try to pack */
      ...
      	/* size: 136, cachelines: 3 */
      	/* sum members: 135, holes: 1, sum holes: 1 */
      	/* last cacheline: 8 bytes */
      };	/* definitions: 1 */
      
      struct sun4d_hwdef {
      ...
      	uint8_t                    nvram_machine_id;     /*   128     1 */
      
      	/* XXX 1 byte hole, try to pack */
      ...
      	/* size: 152, cachelines: 3 */
      	/* sum members: 151, holes: 1, sum holes: 1 */
      	/* last cacheline: 24 bytes */
      };	/* definitions: 1 */
      
      struct sun4m_hwdef {
      ...
      	uint8_t                    nvram_machine_id;     /*   260     1 */
      
      	/* XXX 1 byte hole, try to pack */
      
      	uint16_t                   machine_id;           /*   262     2 */
      	uint32_t                   iommu_version;        /*   264     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      ...
      	/* size: 288, cachelines: 5 */
      	/* sum members: 283, holes: 2, sum holes: 5 */
      	/* last cacheline: 32 bytes */
      };	/* definitions: 1 */
      
      Fix by rearranging the structures to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      61999750
    • B
      tcx: avoid structure holes spotted by pahole · 427a66c3
      Blue Swirl 提交于
      Report from pahole on amd64 host:
      struct TCXState {
      	SysBusDevice               busdev;               /*     0  5648 */
      	/* --- cacheline 88 boundary (5632 bytes) was 16 bytes ago --- */
      	target_phys_addr_t         addr;                 /*  5648     8 */
      	DisplayState *             ds;                   /*  5656     8 */
      	uint8_t *                  vram;                 /*  5664     8 */
      	uint32_t *                 vram24;               /*  5672     8 */
      	uint32_t *                 cplane;               /*  5680     8 */
      	ram_addr_t                 vram_offset;          /*  5688     8 */
      	/* --- cacheline 89 boundary (5696 bytes) --- */
      	ram_addr_t                 vram24_offset;        /*  5696     8 */
      	ram_addr_t                 cplane_offset;        /*  5704     8 */
      	uint32_t                   vram_size;            /*  5712     4 */
      	uint16_t                   width;                /*  5716     2 */
      	uint16_t                   height;               /*  5718     2 */
      	uint16_t                   depth;                /*  5720     2 */
      	uint8_t                    r[256];               /*  5722   256 */
      	/* --- cacheline 93 boundary (5952 bytes) was 26 bytes ago --- */
      	uint8_t                    g[256];               /*  5978   256 */
      	/* --- cacheline 97 boundary (6208 bytes) was 26 bytes ago --- */
      	uint8_t                    b[256];               /*  6234   256 */
      
      	/* XXX 2 bytes hole, try to pack */
      
      	/* --- cacheline 101 boundary (6464 bytes) was 28 bytes ago --- */
      	uint32_t                   palette[256];         /*  6492  1024 */
      	/* --- cacheline 117 boundary (7488 bytes) was 28 bytes ago --- */
      	uint8_t                    dac_index;            /*  7516     1 */
      	uint8_t                    dac_state;            /*  7517     1 */
      
      	/* size: 7520, cachelines: 118 */
      	/* sum members: 7516, holes: 1, sum holes: 2 */
      	/* padding: 2 */
      	/* last cacheline: 32 bytes */
      };	/* definitions: 1 */
      
      Fix by rearranging the structure to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      427a66c3
    • B
      sun4m_iommu: avoid structure holes spotted by pahole · 149e1ea1
      Blue Swirl 提交于
      Report from pahole on amd64 host:
      struct IOMMUState {
      	SysBusDevice               busdev;               /*     0  5648 */
      	/* --- cacheline 88 boundary (5632 bytes) was 16 bytes ago --- */
      	uint32_t                   regs[4096];           /*  5648 16384 */
      	/* --- cacheline 344 boundary (22016 bytes) was 16 bytes ago --- */
      	target_phys_addr_t         iostart;              /* 22032     8 */
      	uint32_t                   version;              /* 22040     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	qemu_irq                   irq;                  /* 22048     8 */
      
      	/* size: 22056, cachelines: 345 */
      	/* sum members: 22052, holes: 1, sum holes: 4 */
      	/* last cacheline: 40 bytes */
      };	/* definitions: 1 */
      
      Fix by rearranging the structure to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      149e1ea1
    • B
      slavio_intctl: avoid structure holes spotted by pahole · 07dd0035
      Blue Swirl 提交于
      Report from pahole on amd64 host:
      struct SLAVIO_INTCTLState {
      	SysBusDevice               busdev;               /*     0  5648 */
      	/* --- cacheline 88 boundary (5632 bytes) was 16 bytes ago --- */
      	uint32_t                   intregm_pending;      /*  5648     4 */
      	uint32_t                   intregm_disabled;     /*  5652     4 */
      	uint32_t                   target_cpu;           /*  5656     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	qemu_irq                   cpu_irqs[16][16];     /*  5664  2048 */
      	/* --- cacheline 120 boundary (7680 bytes) was 32 bytes ago --- */
      	SLAVIO_CPUINTCTLState      slaves[16];           /*  7712   384 */
      	/* --- cacheline 126 boundary (8064 bytes) was 32 bytes ago --- */
      
      	/* size: 8096, cachelines: 127 */
      	/* sum members: 8092, holes: 1, sum holes: 4 */
      	/* last cacheline: 32 bytes */
      };	/* definitions: 1 */
      
      struct SLAVIO_CPUINTCTLState {
      	uint32_t                   intreg_pending;       /*     0     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	struct SLAVIO_INTCTLState * master;              /*     8     8 */
      	uint32_t                   cpu;                  /*    16     4 */
      	uint32_t                   irl_out;              /*    20     4 */
      
      	/* size: 24, cachelines: 1 */
      	/* sum members: 20, holes: 1, sum holes: 4 */
      	/* last cacheline: 24 bytes */
      };	/* definitions: 1 */
      
      Fix by rearranging the structures to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      07dd0035
    • B
      slavio_misc: avoid structure holes spotted by pahole · 97bbb109
      Blue Swirl 提交于
      Report from pahole on amd64 host:
      struct MiscState {
      	SysBusDevice               busdev;               /*     0  5648 */
      	/* --- cacheline 88 boundary (5632 bytes) was 16 bytes ago --- */
      	qemu_irq                   irq;                  /*  5648     8 */
      	uint32_t                   dummy;                /*  5656     4 */
      	uint8_t                    config;               /*  5660     1 */
      	uint8_t                    aux1;                 /*  5661     1 */
      	uint8_t                    aux2;                 /*  5662     1 */
      	uint8_t                    diag;                 /*  5663     1 */
      	uint8_t                    mctrl;                /*  5664     1 */
      	uint8_t                    sysctrl;              /*  5665     1 */
      	uint16_t                   leds;                 /*  5666     2 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	qemu_irq                   fdc_tc;               /*  5672     8 */
      
      	/* size: 5680, cachelines: 89 */
      	/* sum members: 5676, holes: 1, sum holes: 4 */
      	/* last cacheline: 48 bytes */
      };	/* definitions: 1 */
      
      Fix by rearranging the structure to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      97bbb109
    • B
      slavio_timer: avoid structure holes spotted by pahole · f90074f4
      Blue Swirl 提交于
      Report from pahole on amd64 host:
      struct SLAVIO_TIMERState {
      	SysBusDevice               busdev;               /*     0  5648 */
      	/* --- cacheline 88 boundary (5632 bytes) was 16 bytes ago --- */
      	uint32_t                   num_cpus;             /*  5648     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	CPUTimerState              cputimer[17];         /*  5656   816 */
      	/* --- cacheline 101 boundary (6464 bytes) was 8 bytes ago --- */
      	uint32_t                   cputimer_mode;        /*  6472     4 */
      
      	/* size: 6480, cachelines: 102 */
      	/* sum members: 6472, holes: 1, sum holes: 4 */
      	/* padding: 4 */
      	/* last cacheline: 16 bytes */
      };	/* definitions: 1 */
      
      struct CPUTimerState {
      	qemu_irq                   irq;                  /*     0     8 */
      	ptimer_state *             timer;                /*     8     8 */
      	uint32_t                   count;                /*    16     4 */
      	uint32_t                   counthigh;            /*    20     4 */
      	uint32_t                   reached;              /*    24     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	uint64_t                   limit;                /*    32     8 */
      	uint32_t                   running;              /*    40     4 */
      
      	/* size: 48, cachelines: 1 */
      	/* sum members: 40, holes: 1, sum holes: 4 */
      	/* padding: 4 */
      	/* last cacheline: 48 bytes */
      };	/* definitions: 1 */
      
      Fix by rearranging the structures to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      f90074f4
    • A
      monitor: Prevent sign-extension of 32-bit addresses printed by info tlb · 94ac5cd2
      Austin Clements 提交于
      This is the same fix that was recently applied to info mem.  Before
      this change, info tlb output looked like:
      
      ffffffffffffc000: 000000000fffc000 --------W
      ffffffffffffd000: 000000000fffd000 --------W
      ffffffffffffe000: 000000000fffe000 --------W
      fffffffffffff000: 000000000ffff000 --------W
      
      With this change, it looks like
      
      00000000ffffc000: 000000000fffc000 --------W
      00000000ffffd000: 000000000fffd000 --------W
      00000000ffffe000: 000000000fffe000 --------W
      00000000fffff000: 000000000ffff000 --------W
      Signed-off-by: NAustin Clements <amdragon@mit.edu>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      94ac5cd2
    • B
      Merge branch 'queues/slirp' of git://git.kiszka.org/qemu · aec7c6dc
      Blue Swirl 提交于
      * 'queues/slirp' of git://git.kiszka.org/qemu:
        slirp: Fix bit field types in IP header structs
      aec7c6dc
    • R
      64ba39af
    • R
      6e6a9924
    • R
      cb25c80a
    • R
      tcg: Always define all of the TCGOpcode enum members. · 25c4d9cc
      Richard Henderson 提交于
      By always defining these symbols, we can eliminate a lot of ifdefs.
      
      To allow this to be checked reliably, the semantics of the
      TCG_TARGET_HAS_* macros must be changed from def/undef to true/false.
      This allows even more ifdefs to be removed, converting them into
      C if statements.
      Signed-off-by: NRichard Henderson <rth@twiddle.net>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      25c4d9cc
    • R
      tcg: Add and use TCG_OPF_64BIT. · 8399ad59
      Richard Henderson 提交于
      This allows the simplification of the op_bits function from
      tcg/optimize.c.
      Signed-off-by: NRichard Henderson <rth@twiddle.net>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      8399ad59
    • B
      Check for presence of compiler -pthread flag. · 4b29ec41
      Brad 提交于
      OpenBSD / FreeBSD and some other OS's require the use of
      cc -pthread to link threaded programs so have QEMU's
      configure script check for the presence of the flag
      and use it if so.
      Signed-off-by: NBrad Smith <brad@comstyle.com>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      4b29ec41
    • B
      Convert last qemu_free and qemu_malloc uses · 58a06675
      Blue Swirl 提交于
      7267c094 missed
      a few cases, fix them.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      58a06675
    • A
      monitor: Show combined protection bits in "info mem" · c76c8416
      Austin Clements 提交于
      Previously, "info mem" considered and displayed only the last-level
      protection bits for a memory range, which doesn't accurrately
      represent the protection of that range.  Now it shows the combined
      protection.
      Signed-off-by: NAustin Clements <amdragon@mit.edu>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      c76c8416
    • A
      monitor: Fix "info mem" to print the last memory range · 8a94b8ca
      Austin Clements 提交于
      "info mem" groups its output into contiguous ranges with identical
      protection bits, but previously forgot to print the last range.
      Signed-off-by: NAustin Clements <amdragon@mit.edu>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      8a94b8ca
    • A
      monitor: Prevent sign-extension of 32-bit addresses printed by info mem · b49ca72d
      Austin Clements 提交于
      Previously, on 32-bit i386, info mem used signed 32-bit int's to store
      the page table indexes.  As a result, address calculation was done in
      32 bits and then incorrectly sign-extended to 64 bits, yielding output
      like
      
      ffffffffef000000-ffffffffef031000 0000000000031000 ur-
      ffffffffef7bc000-ffffffffef7bd000 0000000000001000 urw
      ffffffffef7bd000-ffffffffef7be000 0000000000001000 ur-
      
      This makes these indexes unsigned, which yields correct output
      
      00000000ef000000-00000000ef031000 0000000000031000 ur-
      00000000ef7bc000-00000000ef7bd000 0000000000001000 urw
      00000000ef7bd000-00000000ef7be000 0000000000001000 ur-
      Signed-off-by: NAustin Clements <amdragon@mit.edu>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      b49ca72d
  2. 21 8月, 2011 10 次提交
  3. 20 8月, 2011 2 次提交
  4. 17 8月, 2011 1 次提交
  5. 15 8月, 2011 2 次提交
  6. 12 8月, 2011 4 次提交