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

« back to all changes in this revision

Viewing changes to .pc/ubuntu/arm64/0018-target-arm-Clean-up-handling-of-AArch64-PSTATE.patch/target-arm/gdbstub64.c

  • 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:
1
 
/*
2
 
 * ARM gdb server stub: AArch64 specific functions.
3
 
 *
4
 
 * Copyright (c) 2013 SUSE LINUX Products GmbH
5
 
 *
6
 
 * This library is free software; you can redistribute it and/or
7
 
 * modify it under the terms of the GNU Lesser General Public
8
 
 * License as published by the Free Software Foundation; either
9
 
 * version 2 of the License, or (at your option) any later version.
10
 
 *
11
 
 * This library is distributed in the hope that it will be useful,
12
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
 
 * Lesser General Public License for more details.
15
 
 *
16
 
 * You should have received a copy of the GNU Lesser General Public
17
 
 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
18
 
 */
19
 
#include "config.h"
20
 
#include "qemu-common.h"
21
 
#include "exec/gdbstub.h"
22
 
 
23
 
int aarch64_cpu_gdb_read_register(CPUState *cs, uint8_t *mem_buf, int n)
24
 
{
25
 
    ARMCPU *cpu = ARM_CPU(cs);
26
 
    CPUARMState *env = &cpu->env;
27
 
 
28
 
    if (n < 31) {
29
 
        /* Core integer register.  */
30
 
        return gdb_get_reg64(mem_buf, env->xregs[n]);
31
 
    }
32
 
    switch (n) {
33
 
    case 31:
34
 
        return gdb_get_reg64(mem_buf, env->xregs[31]);
35
 
        break;
36
 
    case 32:
37
 
        return gdb_get_reg64(mem_buf, env->pc);
38
 
        break;
39
 
    case 33:
40
 
        return gdb_get_reg32(mem_buf, env->pstate);
41
 
    }
42
 
    /* Unknown register.  */
43
 
    return 0;
44
 
}
45
 
 
46
 
int aarch64_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
47
 
{
48
 
    ARMCPU *cpu = ARM_CPU(cs);
49
 
    CPUARMState *env = &cpu->env;
50
 
    uint64_t tmp;
51
 
 
52
 
    tmp = ldq_p(mem_buf);
53
 
 
54
 
    if (n < 31) {
55
 
        /* Core integer register.  */
56
 
        env->xregs[n] = tmp;
57
 
        return 8;
58
 
    }
59
 
    switch (n) {
60
 
    case 31:
61
 
        env->xregs[31] = tmp;
62
 
        return 8;
63
 
    case 32:
64
 
        env->pc = tmp;
65
 
        return 8;
66
 
    case 33:
67
 
        /* CPSR */
68
 
        env->pstate = tmp;
69
 
        return 4;
70
 
    }
71
 
    /* Unknown register.  */
72
 
    return 0;
73
 
}