~ubuntu-branches/ubuntu/vivid/qemu/vivid

« back to all changes in this revision

Viewing changes to include/exec/cpu-defs.h

  • Committer: Package Import Robot
  • Author(s): Serge Hallyn
  • Date: 2014-02-25 22:31:43 UTC
  • mfrom: (1.8.5)
  • Revision ID: package-import@ubuntu.com-20140225223143-odhqxfc60wxrjl15
Tags: 2.0.0~rc1+dfsg-0ubuntu1
* Merge 2.0.0-rc1
* debian/rules: consolidate ppc filter entries.
* Move qemu-system-arch64 into qemu-system-arm
* debian/patches/define-trusty-machine-type.patch: define a trusty machine
  type, currently the same as pc-i440fx-2.0, to put is in a better position
  to enable live migrations from trusty onward.  (LP: #1294823)
* debian/control: build-dep on libfdt >= 1.4.0  (LP: #1295072)
* Merge latest upstream git to commit dc9528f
* Debian/rules:
  - remove -enable-uname-release=2.6.32
  - don't make the aarch64 target Ubuntu-specific.
* Remove patches which are now upstream:
  - fix-smb-security-share.patch
  - slirp-smb-redirect-port-445-too.patch 
  - linux-user-Implement-sendmmsg-syscall.patch (better version is upstream)
  - signal-added-a-wrapper-for-sigprocmask-function.patch
  - ubuntu/signal-sigsegv-protection-on-do_sigprocmask.patch
  - ubuntu/Don-t-block-SIGSEGV-at-more-places.patch
  - ubuntu/ppc-force-cpu-threads-count-to-be-power-of-2.patch
* add link for /usr/share/qemu/bios-256k.bin
* Remove all linaro patches.
* Remove all arm64/ patches.  Many but not all are upstream.
* Remove CVE-2013-4377.patch which is upstream.
* debian/control-in: don't make qemu-system-aarch64 ubuntu-specific

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
#endif
25
25
 
26
26
#include "config.h"
27
 
#include <setjmp.h>
28
27
#include <inttypes.h>
29
28
#include "qemu/osdep.h"
30
29
#include "qemu/queue.h"
59
58
#define EXCP_HLT        0x10001 /* hlt instruction reached */
60
59
#define EXCP_DEBUG      0x10002 /* cpu stopped after a breakpoint or singlestep */
61
60
#define EXCP_HALTED     0x10003 /* cpu is halted (waiting for external event) */
62
 
 
63
 
#define TB_JMP_CACHE_BITS 12
64
 
#define TB_JMP_CACHE_SIZE (1 << TB_JMP_CACHE_BITS)
 
61
#define EXCP_YIELD      0x10004 /* cpu wants to yield timeslice to another */
65
62
 
66
63
/* Only the bottom TB_JMP_PAGE_BITS of the jump cache hash bits vary for
67
64
   addresses on the same page.  The top bits are the same.  This allows
117
114
#endif
118
115
 
119
116
 
120
 
#ifdef HOST_WORDS_BIGENDIAN
121
 
typedef struct icount_decr_u16 {
122
 
    uint16_t high;
123
 
    uint16_t low;
124
 
} icount_decr_u16;
125
 
#else
126
 
typedef struct icount_decr_u16 {
127
 
    uint16_t low;
128
 
    uint16_t high;
129
 
} icount_decr_u16;
130
 
#endif
131
 
 
132
 
typedef struct CPUBreakpoint {
133
 
    target_ulong pc;
134
 
    int flags; /* BP_* */
135
 
    QTAILQ_ENTRY(CPUBreakpoint) entry;
136
 
} CPUBreakpoint;
137
 
 
138
 
typedef struct CPUWatchpoint {
139
 
    target_ulong vaddr;
140
 
    target_ulong len_mask;
141
 
    int flags; /* BP_* */
142
 
    QTAILQ_ENTRY(CPUWatchpoint) entry;
143
 
} CPUWatchpoint;
144
 
 
145
117
#define CPU_TEMP_BUF_NLONGS 128
146
118
#define CPU_COMMON                                                      \
147
119
    /* soft mmu support */                                              \
148
 
    /* in order to avoid passing too many arguments to the MMIO         \
149
 
       helpers, we store some rarely used information in the CPU        \
150
 
       context) */                                                      \
151
 
    uintptr_t mem_io_pc; /* host pc at which the memory was             \
152
 
                            accessed */                                 \
153
 
    target_ulong mem_io_vaddr; /* target virtual addr at which the      \
154
 
                                     memory was accessed */             \
155
120
    CPU_COMMON_TLB                                                      \
156
 
    struct TranslationBlock *tb_jmp_cache[TB_JMP_CACHE_SIZE];           \
157
 
                                                                        \
158
 
    int64_t icount_extra; /* Instructions until next timer event.  */   \
159
 
    /* Number of cycles left, with interrupt flag in high bit.          \
160
 
       This allows a single read-compare-cbranch-write sequence to test \
161
 
       for both decrementer underflow and exceptions.  */               \
162
 
    union {                                                             \
163
 
        uint32_t u32;                                                   \
164
 
        icount_decr_u16 u16;                                            \
165
 
    } icount_decr;                                                      \
166
 
    uint32_t can_do_io; /* nonzero if memory mapped IO is safe.  */     \
167
 
                                                                        \
168
 
    /* from this point: preserved by CPU reset */                       \
169
 
    /* ice debug support */                                             \
170
 
    QTAILQ_HEAD(breakpoints_head, CPUBreakpoint) breakpoints;            \
171
 
                                                                        \
172
 
    QTAILQ_HEAD(watchpoints_head, CPUWatchpoint) watchpoints;            \
173
 
    CPUWatchpoint *watchpoint_hit;                                      \
174
 
                                                                        \
175
 
    /* Core interrupt code */                                           \
176
 
    sigjmp_buf jmp_env;                                                 \
177
 
    int exception_index;                                                \
178
 
                                                                        \
179
 
    /* user data */                                                     \
180
 
    void *opaque;                                                       \
181
121
 
182
122
#endif