Revision 80b7cd73

b/include/sysemu/kvm.h
169 169
void kvm_setup_guest_memory(void *start, size_t size);
170 170
void kvm_flush_coalesced_mmio_buffer(void);
171 171

  
172
int kvm_insert_breakpoint(CPUArchState *current_env, target_ulong addr,
172
int kvm_insert_breakpoint(CPUArchState *env, target_ulong addr,
173 173
                          target_ulong len, int type);
174
int kvm_remove_breakpoint(CPUArchState *current_env, target_ulong addr,
174
int kvm_remove_breakpoint(CPUArchState *env, target_ulong addr,
175 175
                          target_ulong len, int type);
176
void kvm_remove_all_breakpoints(CPUArchState *current_env);
176
void kvm_remove_all_breakpoints(CPUArchState *env);
177 177
int kvm_update_guest_debug(CPUArchState *env, unsigned long reinject_trap);
178 178
#ifndef _WIN32
179 179
int kvm_set_signal_mask(CPUState *cpu, const sigset_t *sigset);
......
252 252

  
253 253
int kvm_sw_breakpoints_active(CPUState *cpu);
254 254

  
255
int kvm_arch_insert_sw_breakpoint(CPUState *current_cpu,
255
int kvm_arch_insert_sw_breakpoint(CPUState *cpu,
256 256
                                  struct kvm_sw_breakpoint *bp);
257
int kvm_arch_remove_sw_breakpoint(CPUState *current_cpu,
257
int kvm_arch_remove_sw_breakpoint(CPUState *cpu,
258 258
                                  struct kvm_sw_breakpoint *bp);
259 259
int kvm_arch_insert_hw_breakpoint(target_ulong addr,
260 260
                                  target_ulong len, int type);
b/kvm-all.c
1903 1903
    return data.err;
1904 1904
}
1905 1905

  
1906
int kvm_insert_breakpoint(CPUArchState *current_env, target_ulong addr,
1906
int kvm_insert_breakpoint(CPUArchState *env, target_ulong addr,
1907 1907
                          target_ulong len, int type)
1908 1908
{
1909
    CPUState *current_cpu = ENV_GET_CPU(current_env);
1909
    CPUState *cpu = ENV_GET_CPU(env);
1910 1910
    struct kvm_sw_breakpoint *bp;
1911
    CPUArchState *env;
1912 1911
    int err;
1913 1912

  
1914 1913
    if (type == GDB_BREAKPOINT_SW) {
1915
        bp = kvm_find_sw_breakpoint(current_cpu, addr);
1914
        bp = kvm_find_sw_breakpoint(cpu, addr);
1916 1915
        if (bp) {
1917 1916
            bp->use_count++;
1918 1917
            return 0;
......
1925 1924

  
1926 1925
        bp->pc = addr;
1927 1926
        bp->use_count = 1;
1928
        err = kvm_arch_insert_sw_breakpoint(current_cpu, bp);
1927
        err = kvm_arch_insert_sw_breakpoint(cpu, bp);
1929 1928
        if (err) {
1930 1929
            g_free(bp);
1931 1930
            return err;
1932 1931
        }
1933 1932

  
1934
        QTAILQ_INSERT_HEAD(&current_cpu->kvm_state->kvm_sw_breakpoints,
1935
                          bp, entry);
1933
        QTAILQ_INSERT_HEAD(&cpu->kvm_state->kvm_sw_breakpoints, bp, entry);
1936 1934
    } else {
1937 1935
        err = kvm_arch_insert_hw_breakpoint(addr, len, type);
1938 1936
        if (err) {
......
1949 1947
    return 0;
1950 1948
}
1951 1949

  
1952
int kvm_remove_breakpoint(CPUArchState *current_env, target_ulong addr,
1950
int kvm_remove_breakpoint(CPUArchState *env, target_ulong addr,
1953 1951
                          target_ulong len, int type)
1954 1952
{
1955
    CPUState *current_cpu = ENV_GET_CPU(current_env);
1953
    CPUState *cpu = ENV_GET_CPU(env);
1956 1954
    struct kvm_sw_breakpoint *bp;
1957
    CPUArchState *env;
1958 1955
    int err;
1959 1956

  
1960 1957
    if (type == GDB_BREAKPOINT_SW) {
1961
        bp = kvm_find_sw_breakpoint(current_cpu, addr);
1958
        bp = kvm_find_sw_breakpoint(cpu, addr);
1962 1959
        if (!bp) {
1963 1960
            return -ENOENT;
1964 1961
        }
......
1968 1965
            return 0;
1969 1966
        }
1970 1967

  
1971
        err = kvm_arch_remove_sw_breakpoint(current_cpu, bp);
1968
        err = kvm_arch_remove_sw_breakpoint(cpu, bp);
1972 1969
        if (err) {
1973 1970
            return err;
1974 1971
        }
1975 1972

  
1976
        QTAILQ_REMOVE(&current_cpu->kvm_state->kvm_sw_breakpoints, bp, entry);
1973
        QTAILQ_REMOVE(&cpu->kvm_state->kvm_sw_breakpoints, bp, entry);
1977 1974
        g_free(bp);
1978 1975
    } else {
1979 1976
        err = kvm_arch_remove_hw_breakpoint(addr, len, type);
......
1991 1988
    return 0;
1992 1989
}
1993 1990

  
1994
void kvm_remove_all_breakpoints(CPUArchState *current_env)
1991
void kvm_remove_all_breakpoints(CPUArchState *env)
1995 1992
{
1996
    CPUState *current_cpu = ENV_GET_CPU(current_env);
1993
    CPUState *cpu = ENV_GET_CPU(env);
1997 1994
    struct kvm_sw_breakpoint *bp, *next;
1998
    KVMState *s = current_cpu->kvm_state;
1999
    CPUArchState *env;
2000
    CPUState *cpu;
1995
    KVMState *s = cpu->kvm_state;
2001 1996

  
2002 1997
    QTAILQ_FOREACH_SAFE(bp, &s->kvm_sw_breakpoints, entry, next) {
2003
        if (kvm_arch_remove_sw_breakpoint(current_cpu, bp) != 0) {
1998
        if (kvm_arch_remove_sw_breakpoint(cpu, bp) != 0) {
2004 1999
            /* Try harder to find a CPU that currently sees the breakpoint. */
2005 2000
            for (env = first_cpu; env != NULL; env = env->next_cpu) {
2006 2001
                cpu = ENV_GET_CPU(env);
......
2026 2021
    return -EINVAL;
2027 2022
}
2028 2023

  
2029
int kvm_insert_breakpoint(CPUArchState *current_env, target_ulong addr,
2024
int kvm_insert_breakpoint(CPUArchState *env, target_ulong addr,
2030 2025
                          target_ulong len, int type)
2031 2026
{
2032 2027
    return -EINVAL;
2033 2028
}
2034 2029

  
2035
int kvm_remove_breakpoint(CPUArchState *current_env, target_ulong addr,
2030
int kvm_remove_breakpoint(CPUArchState *env, target_ulong addr,
2036 2031
                          target_ulong len, int type)
2037 2032
{
2038 2033
    return -EINVAL;
2039 2034
}
2040 2035

  
2041
void kvm_remove_all_breakpoints(CPUArchState *current_env)
2036
void kvm_remove_all_breakpoints(CPUArchState *env)
2042 2037
{
2043 2038
}
2044 2039
#endif /* !KVM_CAP_SET_GUEST_DEBUG */
b/kvm-stub.c
83 83
    return -ENOSYS;
84 84
}
85 85

  
86
int kvm_insert_breakpoint(CPUArchState *current_env, target_ulong addr,
86
int kvm_insert_breakpoint(CPUArchState *env, target_ulong addr,
87 87
                          target_ulong len, int type)
88 88
{
89 89
    return -EINVAL;
90 90
}
91 91

  
92
int kvm_remove_breakpoint(CPUArchState *current_env, target_ulong addr,
92
int kvm_remove_breakpoint(CPUArchState *env, target_ulong addr,
93 93
                          target_ulong len, int type)
94 94
{
95 95
    return -EINVAL;
96 96
}
97 97

  
98
void kvm_remove_all_breakpoints(CPUArchState *current_env)
98
void kvm_remove_all_breakpoints(CPUArchState *env)
99 99
{
100 100
}
101 101

  

Also available in: Unified diff