trivial patches for 2015-07-27
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJVtot2AAoJEL7lnXSkw9fbqd4H+wXuxLw8bN3MQ9vWUgUhrTwd D8Zd4mB6SdZY/IPbbvG+GMJzU13ESOc5bdCKolI0DhpoDnv6oYi/x0BXzWGLDnYg Sx7eoW/UG796KunKlYgKvgCd2ILe0g72w4eYqoGXiqsCR22rDXuv5QMWU0L26UJx Z3tOuEQm1GQbo14iIC6dTqljgIi0Xhy2ri11dy3aJ4XTQuhqc/PMkbEPMnRkHo07 4XtL7YWRmPsvojMf5IgEsoAuG57D1HCa+Se8LjaGY8pueE72Ub1bbiWVUo7HV/ap XGBF6pu3hw4Xh3AiPtkIy/sCdBNN2vzqFwgnYOXJUq8DiH/4LVbXnDIert6pG7A= =El+V -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/mjt/tags/pull-trivial-patches-2015-07-27' into staging trivial patches for 2015-07-27 # gpg: Signature made Mon Jul 27 20:50:14 2015 BST using RSA key ID A4C3D7DB # gpg: Good signature from "Michael Tokarev <mjt@tls.msk.ru>" # gpg: aka "Michael Tokarev <mjt@corpit.ru>" # gpg: aka "Michael Tokarev <mjt@debian.org>" * remotes/mjt/tags/pull-trivial-patches-2015-07-27: gdbstub: Set current CPU on interruptions qapi: add missing @ Fix Cortex-A9 global timer gitignore: Ignore shader generated files vmstate: remove unused declaration make: Clean build messages qemu-common.h: Document cutils.c string functions device_tree: Fix a typo hw/acpi/ich9: clean up stale comment about KVM not supporting SMM hw/acpi/ich9: clear smi_en on reset Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
776f878451
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -17,6 +17,8 @@
|
||||||
/trace/generated-tcg-tracers.h
|
/trace/generated-tcg-tracers.h
|
||||||
/trace/generated-ust-provider.h
|
/trace/generated-ust-provider.h
|
||||||
/trace/generated-ust.c
|
/trace/generated-ust.c
|
||||||
|
/ui/shader/texture-blit-frag.h
|
||||||
|
/ui/shader/texture-blit-vert.h
|
||||||
/libcacard/trace/generated-tracers.c
|
/libcacard/trace/generated-tracers.c
|
||||||
*-timestamp
|
*-timestamp
|
||||||
/*-softmmu
|
/*-softmmu
|
||||||
|
|
|
@ -241,7 +241,7 @@ uint32_t qemu_fdt_alloc_phandle(void *fdt)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We need to find out if the user gave us special instruction at
|
* We need to find out if the user gave us special instruction at
|
||||||
* which phandle id to start allocting phandles.
|
* which phandle id to start allocating phandles.
|
||||||
*/
|
*/
|
||||||
if (!phandle) {
|
if (!phandle) {
|
||||||
phandle = machine_phandle_start(current_machine);
|
phandle = machine_phandle_start(current_machine);
|
||||||
|
|
|
@ -1285,6 +1285,7 @@ static void gdb_vm_state_change(void *opaque, int running, RunState state)
|
||||||
ret = GDB_SIGNAL_UNKNOWN;
|
ret = GDB_SIGNAL_UNKNOWN;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
gdb_set_stop_cpu(cpu);
|
||||||
snprintf(buf, sizeof(buf), "T%02xthread:%02x;", ret, cpu_index(cpu));
|
snprintf(buf, sizeof(buf), "T%02xthread:%02x;", ret, cpu_index(cpu));
|
||||||
|
|
||||||
send_packet:
|
send_packet:
|
||||||
|
|
|
@ -221,9 +221,9 @@ static void pm_reset(void *opaque)
|
||||||
acpi_pm_tmr_reset(&pm->acpi_regs);
|
acpi_pm_tmr_reset(&pm->acpi_regs);
|
||||||
acpi_gpe_reset(&pm->acpi_regs);
|
acpi_gpe_reset(&pm->acpi_regs);
|
||||||
|
|
||||||
|
pm->smi_en = 0;
|
||||||
if (!pm->smm_enabled) {
|
if (!pm->smm_enabled) {
|
||||||
/* Mark SMM as already inited to prevent SMM from running. KVM does not
|
/* Mark SMM as already inited to prevent SMM from running. */
|
||||||
* support SMM mode. */
|
|
||||||
pm->smi_en |= ICH9_PMIO_SMI_EN_APMC_EN;
|
pm->smi_en |= ICH9_PMIO_SMI_EN_APMC_EN;
|
||||||
}
|
}
|
||||||
pm->smi_en_wmask = ~0;
|
pm->smi_en_wmask = ~0;
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
#define R_CONTROL_TIMER_ENABLE (1 << 0)
|
#define R_CONTROL_TIMER_ENABLE (1 << 0)
|
||||||
#define R_CONTROL_COMP_ENABLE (1 << 1)
|
#define R_CONTROL_COMP_ENABLE (1 << 1)
|
||||||
#define R_CONTROL_IRQ_ENABLE (1 << 2)
|
#define R_CONTROL_IRQ_ENABLE (1 << 2)
|
||||||
#define R_CONTROL_AUTO_INCREMENT (1 << 2)
|
#define R_CONTROL_AUTO_INCREMENT (1 << 3)
|
||||||
#define R_CONTROL_PRESCALER_SHIFT 8
|
#define R_CONTROL_PRESCALER_SHIFT 8
|
||||||
#define R_CONTROL_PRESCALER_LEN 8
|
#define R_CONTROL_PRESCALER_LEN 8
|
||||||
#define R_CONTROL_PRESCALER_MASK (((1 << R_CONTROL_PRESCALER_LEN) - 1) << \
|
#define R_CONTROL_PRESCALER_MASK (((1 << R_CONTROL_PRESCALER_LEN) - 1) << \
|
||||||
|
|
|
@ -75,9 +75,6 @@ int register_savevm_live(DeviceState *dev,
|
||||||
void *opaque);
|
void *opaque);
|
||||||
|
|
||||||
void unregister_savevm(DeviceState *dev, const char *idstr, void *opaque);
|
void unregister_savevm(DeviceState *dev, const char *idstr, void *opaque);
|
||||||
void register_device_unmigratable(DeviceState *dev, const char *idstr,
|
|
||||||
void *opaque);
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct VMStateInfo VMStateInfo;
|
typedef struct VMStateInfo VMStateInfo;
|
||||||
typedef struct VMStateDescription VMStateDescription;
|
typedef struct VMStateDescription VMStateDescription;
|
||||||
|
|
|
@ -148,13 +148,125 @@ static inline bool is_help_option(const char *s)
|
||||||
return !strcmp(s, "?") || !strcmp(s, "help");
|
return !strcmp(s, "?") || !strcmp(s, "help");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* cutils.c */
|
/* util/cutils.c */
|
||||||
|
/**
|
||||||
|
* pstrcpy:
|
||||||
|
* @buf: buffer to copy string into
|
||||||
|
* @buf_size: size of @buf in bytes
|
||||||
|
* @str: string to copy
|
||||||
|
*
|
||||||
|
* Copy @str into @buf, including the trailing NUL, but do not
|
||||||
|
* write more than @buf_size bytes. The resulting buffer is
|
||||||
|
* always NUL terminated (even if the source string was too long).
|
||||||
|
* If @buf_size is zero or negative then no bytes are copied.
|
||||||
|
*
|
||||||
|
* This function is similar to strncpy(), but avoids two of that
|
||||||
|
* function's problems:
|
||||||
|
* * if @str fits in the buffer, pstrcpy() does not zero-fill the
|
||||||
|
* remaining space at the end of @buf
|
||||||
|
* * if @str is too long, pstrcpy() will copy the first @buf_size-1
|
||||||
|
* bytes and then add a NUL
|
||||||
|
*/
|
||||||
void pstrcpy(char *buf, int buf_size, const char *str);
|
void pstrcpy(char *buf, int buf_size, const char *str);
|
||||||
|
/**
|
||||||
|
* strpadcpy:
|
||||||
|
* @buf: buffer to copy string into
|
||||||
|
* @buf_size: size of @buf in bytes
|
||||||
|
* @str: string to copy
|
||||||
|
* @pad: character to pad the remainder of @buf with
|
||||||
|
*
|
||||||
|
* Copy @str into @buf (but *not* its trailing NUL!), and then pad the
|
||||||
|
* rest of the buffer with the @pad character. If @str is too large
|
||||||
|
* for the buffer then it is truncated, so that @buf contains the
|
||||||
|
* first @buf_size characters of @str, with no terminator.
|
||||||
|
*/
|
||||||
void strpadcpy(char *buf, int buf_size, const char *str, char pad);
|
void strpadcpy(char *buf, int buf_size, const char *str, char pad);
|
||||||
|
/**
|
||||||
|
* pstrcat:
|
||||||
|
* @buf: buffer containing existing string
|
||||||
|
* @buf_size: size of @buf in bytes
|
||||||
|
* @s: string to concatenate to @buf
|
||||||
|
*
|
||||||
|
* Append a copy of @s to the string already in @buf, but do not
|
||||||
|
* allow the buffer to overflow. If the existing contents of @buf
|
||||||
|
* plus @str would total more than @buf_size bytes, then write
|
||||||
|
* as much of @str as will fit followed by a NUL terminator.
|
||||||
|
*
|
||||||
|
* @buf must already contain a NUL-terminated string, or the
|
||||||
|
* behaviour is undefined.
|
||||||
|
*
|
||||||
|
* Returns: @buf.
|
||||||
|
*/
|
||||||
char *pstrcat(char *buf, int buf_size, const char *s);
|
char *pstrcat(char *buf, int buf_size, const char *s);
|
||||||
|
/**
|
||||||
|
* strstart:
|
||||||
|
* @str: string to test
|
||||||
|
* @val: prefix string to look for
|
||||||
|
* @ptr: NULL, or pointer to be written to indicate start of
|
||||||
|
* the remainder of the string
|
||||||
|
*
|
||||||
|
* Test whether @str starts with the prefix @val.
|
||||||
|
* If it does (including the degenerate case where @str and @val
|
||||||
|
* are equal) then return true. If @ptr is not NULL then a
|
||||||
|
* pointer to the first character following the prefix is written
|
||||||
|
* to it. If @val is not a prefix of @str then return false (and
|
||||||
|
* @ptr is not written to).
|
||||||
|
*
|
||||||
|
* Returns: true if @str starts with prefix @val, false otherwise.
|
||||||
|
*/
|
||||||
int strstart(const char *str, const char *val, const char **ptr);
|
int strstart(const char *str, const char *val, const char **ptr);
|
||||||
|
/**
|
||||||
|
* stristart:
|
||||||
|
* @str: string to test
|
||||||
|
* @val: prefix string to look for
|
||||||
|
* @ptr: NULL, or pointer to be written to indicate start of
|
||||||
|
* the remainder of the string
|
||||||
|
*
|
||||||
|
* Test whether @str starts with the case-insensitive prefix @val.
|
||||||
|
* This function behaves identically to strstart(), except that the
|
||||||
|
* comparison is made after calling qemu_toupper() on each pair of
|
||||||
|
* characters.
|
||||||
|
*
|
||||||
|
* Returns: true if @str starts with case-insensitive prefix @val,
|
||||||
|
* false otherwise.
|
||||||
|
*/
|
||||||
int stristart(const char *str, const char *val, const char **ptr);
|
int stristart(const char *str, const char *val, const char **ptr);
|
||||||
|
/**
|
||||||
|
* qemu_strnlen:
|
||||||
|
* @s: string
|
||||||
|
* @max_len: maximum number of bytes in @s to scan
|
||||||
|
*
|
||||||
|
* Return the length of the string @s, like strlen(), but do not
|
||||||
|
* examine more than @max_len bytes of the memory pointed to by @s.
|
||||||
|
* If no NUL terminator is found within @max_len bytes, then return
|
||||||
|
* @max_len instead.
|
||||||
|
*
|
||||||
|
* This function has the same behaviour as the POSIX strnlen()
|
||||||
|
* function.
|
||||||
|
*
|
||||||
|
* Returns: length of @s in bytes, or @max_len, whichever is smaller.
|
||||||
|
*/
|
||||||
int qemu_strnlen(const char *s, int max_len);
|
int qemu_strnlen(const char *s, int max_len);
|
||||||
|
/**
|
||||||
|
* qemu_strsep:
|
||||||
|
* @input: pointer to string to parse
|
||||||
|
* @delim: string containing delimiter characters to search for
|
||||||
|
*
|
||||||
|
* Locate the first occurrence of any character in @delim within
|
||||||
|
* the string referenced by @input, and replace it with a NUL.
|
||||||
|
* The location of the next character after the delimiter character
|
||||||
|
* is stored into @input.
|
||||||
|
* If the end of the string was reached without finding a delimiter
|
||||||
|
* character, then NULL is stored into @input.
|
||||||
|
* If @input points to a NULL pointer on entry, return NULL.
|
||||||
|
* The return value is always the original value of *@input (and
|
||||||
|
* so now points to a NUL-terminated string corresponding to the
|
||||||
|
* part of the input up to the first delimiter).
|
||||||
|
*
|
||||||
|
* This function has the same behaviour as the BSD strsep() function.
|
||||||
|
*
|
||||||
|
* Returns: the pointer originally in @input.
|
||||||
|
*/
|
||||||
char *qemu_strsep(char **input, const char *delim);
|
char *qemu_strsep(char **input, const char *delim);
|
||||||
time_t mktimegm(struct tm *tm);
|
time_t mktimegm(struct tm *tm);
|
||||||
int qemu_fls(int i);
|
int qemu_fls(int i);
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
{ 'include': 'qapi/trace.json' }
|
{ 'include': 'qapi/trace.json' }
|
||||||
|
|
||||||
##
|
##
|
||||||
# LostTickPolicy:
|
# @LostTickPolicy:
|
||||||
#
|
#
|
||||||
# Policy for handling lost ticks in timer devices.
|
# Policy for handling lost ticks in timer devices.
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in a new issue