Message ID | 20200901112323.94969-3-f4bug@amsat.org |
---|---|
State | New |
Headers | show |
Series | hw/core: Move hw_error() out of cpus.c | expand |
On 01/09/2020 13.23, Philippe Mathieu-Daudé wrote: > As hw_error() is unrelated to CPU error - for which we have > cpu_abort() - move it out of cpus.c, under the hw/ directory. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > Couldn't find better file/name to put it in... > --- > hw/core/error.c | 38 ++++++++++++++++++++++++++++++++++++++ > softmmu/cpus.c | 12 ------------ > hw/core/meson.build | 1 + > 3 files changed, 39 insertions(+), 12 deletions(-) > create mode 100644 hw/core/error.c > > diff --git a/hw/core/error.c b/hw/core/error.c > new file mode 100644 > index 00000000000..5a783c82dff > --- /dev/null > +++ b/hw/core/error.c > @@ -0,0 +1,38 @@ > +/* > + * Peripheral error reporting > + * > + * Copyright (c) 2003-2008 Fabrice Bellard > + * > + * Permission is hereby granted, free of charge, to any person obtaining a copy > + * of this software and associated documentation files (the "Software"), to deal > + * in the Software without restriction, including without limitation the rights > + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > + * copies of the Software, and to permit persons to whom the Software is > + * furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice shall be included in > + * all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > + * THE SOFTWARE. > + */ > + > +#include "qemu/osdep.h" > +#include "hw/hw.h" > + > +void hw_error(const char *fmt, ...) > +{ > + va_list ap; > + > + va_start(ap, fmt); > + fprintf(stderr, "qemu: hardware error: "); > + vfprintf(stderr, fmt, ap); > + fprintf(stderr, "\n"); > + va_end(ap); > + abort(); > +} > diff --git a/softmmu/cpus.c b/softmmu/cpus.c > index c96a04d7f18..eca57c76c9b 100644 > --- a/softmmu/cpus.c > +++ b/softmmu/cpus.c > @@ -59,7 +59,6 @@ > #include "sysemu/replay.h" > #include "sysemu/runstate.h" > #include "hw/boards.h" > -#include "hw/hw.h" > > #include "sysemu/cpu-throttle.h" > > @@ -910,17 +909,6 @@ static void stop_tcg_kick_timer(void) > } > > /***********************************************************/ > -void hw_error(const char *fmt, ...) > -{ > - va_list ap; > - > - va_start(ap, fmt); > - fprintf(stderr, "qemu: hardware error: "); > - vfprintf(stderr, fmt, ap); > - fprintf(stderr, "\n"); > - va_end(ap); > - abort(); > -} > > void cpu_synchronize_all_states(void) > { > diff --git a/hw/core/meson.build b/hw/core/meson.build > index fc91f980758..99466dc93fd 100644 > --- a/hw/core/meson.build > +++ b/hw/core/meson.build > @@ -1,6 +1,7 @@ > # core qdev-related obj files, also used by *-user and unit tests > hwcore_files = files( > 'bus.c', > + 'error.c', > 'fw-path-provider.c', > 'hotplug.c', > 'qdev-properties.c', > Reviewed-by: Thomas Huth <thuth@redhat.com> Alternative ideas: - Move the function as "static inline" into the header file instead - it's not so big, so an inline function should be ok here. - Add a big fat warning comment to the header that this function should not be used for new code anymore. Thomas
On 9/1/20 11:37 PM, Thomas Huth wrote: > - Move the function as "static inline" into the header file > instead - it's not so big, so an inline function should be > ok here. stdarg and inline do not mix. > - Add a big fat warning comment to the header that this > function should not be used for new code anymore. But certainly this. r~
On 9/2/20 5:38 PM, Richard Henderson wrote: > On 9/1/20 11:37 PM, Thomas Huth wrote: >> - Move the function as "static inline" into the header file >> instead - it's not so big, so an inline function should be >> ok here. > > stdarg and inline do not mix. > >> - Add a big fat warning comment to the header that this >> function should not be used for new code anymore. > > But certainly this. Will do, but this has been proven to not work well... > > > r~ >
On 02/09/2020 17.59, Philippe Mathieu-Daudé wrote: > On 9/2/20 5:38 PM, Richard Henderson wrote: >> On 9/1/20 11:37 PM, Thomas Huth wrote: >>> - Move the function as "static inline" into the header file >>> instead - it's not so big, so an inline function should be >>> ok here. >> >> stdarg and inline do not mix. >> >>> - Add a big fat warning comment to the header that this >>> function should not be used for new code anymore. >> >> But certainly this. > > Will do, but this has been proven to not work well... ... or add a warning to checkpatch.pl ? Thomas
On 9/2/20 6:02 PM, Thomas Huth wrote: > On 02/09/2020 17.59, Philippe Mathieu-Daudé wrote: >> On 9/2/20 5:38 PM, Richard Henderson wrote: >>> On 9/1/20 11:37 PM, Thomas Huth wrote: >>>> - Move the function as "static inline" into the header file >>>> instead - it's not so big, so an inline function should be >>>> ok here. >>> >>> stdarg and inline do not mix. >>> >>>> - Add a big fat warning comment to the header that this >>>> function should not be used for new code anymore. >>> >>> But certainly this. >> >> Will do, but this has been proven to not work well... > > ... or add a warning to checkpatch.pl ? This certainly works better :) > > Thomas > >
diff --git a/hw/core/error.c b/hw/core/error.c new file mode 100644 index 00000000000..5a783c82dff --- /dev/null +++ b/hw/core/error.c @@ -0,0 +1,38 @@ +/* + * Peripheral error reporting + * + * Copyright (c) 2003-2008 Fabrice Bellard + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "qemu/osdep.h" +#include "hw/hw.h" + +void hw_error(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + fprintf(stderr, "qemu: hardware error: "); + vfprintf(stderr, fmt, ap); + fprintf(stderr, "\n"); + va_end(ap); + abort(); +} diff --git a/softmmu/cpus.c b/softmmu/cpus.c index c96a04d7f18..eca57c76c9b 100644 --- a/softmmu/cpus.c +++ b/softmmu/cpus.c @@ -59,7 +59,6 @@ #include "sysemu/replay.h" #include "sysemu/runstate.h" #include "hw/boards.h" -#include "hw/hw.h" #include "sysemu/cpu-throttle.h" @@ -910,17 +909,6 @@ static void stop_tcg_kick_timer(void) } /***********************************************************/ -void hw_error(const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - fprintf(stderr, "qemu: hardware error: "); - vfprintf(stderr, fmt, ap); - fprintf(stderr, "\n"); - va_end(ap); - abort(); -} void cpu_synchronize_all_states(void) { diff --git a/hw/core/meson.build b/hw/core/meson.build index fc91f980758..99466dc93fd 100644 --- a/hw/core/meson.build +++ b/hw/core/meson.build @@ -1,6 +1,7 @@ # core qdev-related obj files, also used by *-user and unit tests hwcore_files = files( 'bus.c', + 'error.c', 'fw-path-provider.c', 'hotplug.c', 'qdev-properties.c',
As hw_error() is unrelated to CPU error - for which we have cpu_abort() - move it out of cpus.c, under the hw/ directory. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- Couldn't find better file/name to put it in... --- hw/core/error.c | 38 ++++++++++++++++++++++++++++++++++++++ softmmu/cpus.c | 12 ------------ hw/core/meson.build | 1 + 3 files changed, 39 insertions(+), 12 deletions(-) create mode 100644 hw/core/error.c