From 29f5385263367ada481cb91fb5f44b6c1f90c59c Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Tue, 5 Aug 2014 21:19:07 -0400 Subject: Fix up some more red find_first_set_bit() becomes a small inline on ARMv5+ and checkwps now gets made with -std=gnu99 (it eats all the GCCOPTS) like the rest of things. Change-Id: Ie6039b17fec057a3dcb0f453d8fd5efac984df89 --- apps/gui/viewport.h | 14 ++++++++------ firmware/export/system.h | 5 +++++ tools/checkwps/checkwps.make | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/apps/gui/viewport.h b/apps/gui/viewport.h index 3da001e190..ecbd325946 100644 --- a/apps/gui/viewport.h +++ b/apps/gui/viewport.h @@ -38,19 +38,21 @@ int viewport_get_nb_lines(const struct viewport *vp); #define THEME_LISTS (BIT_N(3)) #define THEME_ALL (~(0u)) +/* These are needed in checkwps */ +void viewport_set_defaults(struct viewport *vp, + const enum screen_type screen); +void viewport_set_fullscreen(struct viewport *vp, + const enum screen_type screen); +int get_viewport_default_colour(enum screen_type screen, bool fgcolour); + #ifndef __PCTOOL__ + /* * Initialize the viewportmanager, which in turns initializes the UI vp and * statusbar stuff */ void viewportmanager_init(void) INIT_ATTR; -void viewport_set_defaults(struct viewport *vp, - const enum screen_type screen); -void viewport_set_fullscreen(struct viewport *vp, - const enum screen_type screen); -int get_viewport_default_colour(enum screen_type screen, bool fgcolour); - #ifdef HAVE_LCD_BITMAP void viewportmanager_theme_enable(enum screen_type screen, bool enable, struct viewport *viewport); diff --git a/firmware/export/system.h b/firmware/export/system.h index f6d441ef2a..0a13ec2208 100644 --- a/firmware/export/system.h +++ b/firmware/export/system.h @@ -157,7 +157,12 @@ int get_cpu_boost_counter(void); ((type *)((intptr_t)(memberptr) - OFFSETOF(type, membername))) /* returns index of first set bit or 32 if no bits are set */ +#if defined(CPU_ARM) && ARM_ARCH >= 5 && !defined(__thumb__) +static inline int find_first_set_bit(uint32_t val) + { return LIKELY(val) ? __builtin_ctz(val) : 32; } +#else int find_first_set_bit(uint32_t val); +#endif static inline __attribute__((always_inline)) uint32_t isolate_first_bit(uint32_t val) diff --git a/tools/checkwps/checkwps.make b/tools/checkwps/checkwps.make index 2ae15903a7..3720637595 100644 --- a/tools/checkwps/checkwps.make +++ b/tools/checkwps/checkwps.make @@ -7,7 +7,7 @@ # $Id$ # -GCCOPTS=-g -D__PCTOOL__ -DCHECKWPS $(TARGET) +GCCOPTS=-std=gnu99 -g -D__PCTOOL__ -DCHECKWPS $(TARGET) CHECKWPS_SRC = $(call preprocess, $(TOOLSDIR)/checkwps/SOURCES) CHECKWPS_OBJ = $(call c2obj,$(CHECKWPS_SRC)) -- cgit v1.2.3