This is an automated email from the ASF dual-hosted git repository.

pkarashchenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git

commit 054cf3b1cb2697fc4f1c114a52c030d5a88a6899
Author: Xiang Xiao <xiaoxi...@xiaomi.com>
AuthorDate: Wed Aug 16 01:12:50 2023 +0800

    Change all sizeof(arr)/sizeof(arr[0]) to nitems
    
    Signed-off-by: Xiang Xiao <xiaoxi...@xiaomi.com>
---
 builtin/builtin_list.c                              |  3 ++-
 canutils/libcanutils/lib.c                          | 15 ++++++---------
 examples/adxl372_test/adxl372_test_main.c           |  9 ++++-----
 examples/dac/dac_main.c                             | 11 ++++-------
 examples/ft80x/ft80x_main.c                         |  8 +++-----
 examples/ftpd/ftpd_main.c                           |  4 ++--
 examples/lsm330spi_test/lsm330spi_test_main.c       |  9 ++++-----
 examples/pdcurses/testcurs_main.c                   |  3 ++-
 examples/usrsocktest/usrsocktest_daemon.c           | 17 +++++++----------
 examples/usrsocktest/usrsocktest_main.c             |  4 ----
 examples/usrsocktest/usrsocktest_multi_thread.c     | 15 ++++++---------
 examples/usrsocktest/usrsocktest_wake_with_signal.c |  4 ----
 graphics/lvgl/port/lv_port_keypad.c                 |  3 ++-
 interpreters/bas/bas_statement.c                    |  3 ++-
 netutils/dhcp6c/dhcp6c.c                            |  7 +++----
 netutils/iperf/iperf_main.c                         |  5 ++---
 netutils/ntpclient/ntpclient.c                      |  7 ++-----
 netutils/thttpd/libhttpd.c                          |  5 +++--
 netutils/thttpd/mime_types.h                        |  5 +++--
 netutils/thttpd/tdate_parse.c                       | 10 ++++------
 netutils/webserver/Kconfig                          |  8 ++++----
 netutils/webserver/httpd.c                          |  3 ++-
 system/iptables/iptables.c                          |  2 +-
 system/nxplayer/nxplayer.c                          |  3 ++-
 system/nxplayer/nxplayer_mp3.c                      |  4 ++--
 system/tcpdump/tcpdump.c                            |  2 +-
 system/ubloxmodem/ubloxmodem_main.c                 |  8 +++-----
 system/uorb/test/unit_test.c                        |  3 ++-
 testing/crypto/aescbc.c                             |  3 ++-
 testing/crypto/aesctr.c                             |  2 +-
 testing/crypto/aesxts.c                             |  4 ++--
 testing/crypto/hash.c                               |  9 +++++----
 testing/crypto/hmac.c                               |  7 ++++---
 testing/drivertest/drivertest_framebuffer.c         |  3 ++-
 testing/drivertest/drivertest_lcd.c                 |  3 ++-
 testing/scanftest/scanftest_main.c                  |  7 +++----
 testing/sensortest/sensortest.c                     |  4 ++--
 wireless/ieee802154/i8sak/i8sak_main.c              |  5 ++---
 wireless/iwpan/src/iwpan.c                          |  5 ++---
 wireless/wapi/src/wapi.c                            |  5 ++---
 40 files changed, 107 insertions(+), 130 deletions(-)

diff --git a/builtin/builtin_list.c b/builtin/builtin_list.c
index f8fe389b1..dcc10e10b 100644
--- a/builtin/builtin_list.c
+++ b/builtin/builtin_list.c
@@ -25,6 +25,7 @@
 #include <nuttx/config.h>
 
 #include <nuttx/lib/builtin.h>
+#include <sys/param.h>
 
 #include <sys/stat.h>
 
@@ -52,7 +53,7 @@ const struct builtin_s g_builtins[] =
 #endif
 };
 
-const int g_builtin_count = sizeof(g_builtins) / sizeof(g_builtins[0]);
+const int g_builtin_count = nitems(g_builtins);
 
 /****************************************************************************
  * Private Data
diff --git a/canutils/libcanutils/lib.c b/canutils/libcanutils/lib.c
index f12cfc3f7..f84974a81 100644
--- a/canutils/libcanutils/lib.c
+++ b/canutils/libcanutils/lib.c
@@ -46,6 +46,7 @@
 #include <string.h>
 #include <stdint.h>
 
+#include <sys/param.h>
 #include <sys/socket.h> /* for sa_family_t */
 #include <nuttx/can.h>
 #include <netpacket/can.h>
@@ -496,10 +497,6 @@ static const char *protocol_violation_locations[] = {
        "unspecified",
 };
 
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
-#endif
-
 static int snprintf_error_data(char *buf, size_t len, uint8_t err,
                               const char **arr, int arr_len)
 {
@@ -537,7 +534,7 @@ static int snprintf_error_ctrl(char *buf, size_t len, const 
struct canfd_frame *
        n += snprintf(buf + n, len - n, "{");
        n += snprintf_error_data(buf + n, len - n, cf->data[1],
                                controller_problems,
-                               ARRAY_SIZE(controller_problems));
+                               nitems(controller_problems));
        n += snprintf(buf + n, len - n, "}");
 
        return n;
@@ -553,10 +550,10 @@ static int snprintf_error_prot(char *buf, size_t len, 
const struct canfd_frame *
        n += snprintf(buf + n, len - n, "{{");
        n += snprintf_error_data(buf + n, len - n, cf->data[2],
                                protocol_violation_types,
-                               ARRAY_SIZE(protocol_violation_types));
+                               nitems(protocol_violation_types));
        n += snprintf(buf + n, len - n, "}{");
        if (cf->data[3] > 0 &&
-           cf->data[3] < ARRAY_SIZE(protocol_violation_locations))
+           cf->data[3] < nitems(protocol_violation_locations))
                n += snprintf(buf + n, len - n, "%s",
                              protocol_violation_locations[cf->data[3]]);
        n += snprintf(buf + n, len - n, "}}");
@@ -575,7 +572,7 @@ void snprintf_can_error_frame(char *buf, size_t len, const 
struct canfd_frame *c
                return;
 
        class = cf->can_id & CAN_EFF_MASK;
-       if (class > (1 << ARRAY_SIZE(error_classes))) {
+       if (class > (1 << nitems(error_classes))) {
                fprintf(stderr, "Error class %#jx is invalid\n", 
(uintmax_t)class);
                return;
        }
@@ -583,7 +580,7 @@ void snprintf_can_error_frame(char *buf, size_t len, const 
struct canfd_frame *c
        if (!sep)
                sep = defsep;
 
-       for (i = 0; i < (int)ARRAY_SIZE(error_classes); i++) {
+       for (i = 0; i < (int)nitems(error_classes); i++) {
                mask = 1 << i;
                if (class & mask) {
                        if (classes)
diff --git a/examples/adxl372_test/adxl372_test_main.c 
b/examples/adxl372_test/adxl372_test_main.c
index e30155945..2c05d61ba 100644
--- a/examples/adxl372_test/adxl372_test_main.c
+++ b/examples/adxl372_test/adxl372_test_main.c
@@ -27,7 +27,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <fcntl.h>
-#include <nuttx/fs/fs.h>
+#include <sys/param.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <unistd.h>
@@ -41,7 +41,6 @@
  * Pre-processor Definitions
  ****************************************************************************/
 
-#define ARRAYSIZE(x) (sizeof((x)) / sizeof((x)[0]))
 #define PASSED        0
 
 #define SUB_PROMPT   "stst >"
@@ -394,7 +393,7 @@ int main(int argc, FAR char *argv[])
       adxl372_test,   /* ADXL372 accelerometer tests */
     };
 
-  FAR char *test_path[ARRAYSIZE(test_ptr_array)];
+  FAR char *test_path[nitems(test_ptr_array)];
 
   if (argc < 1 || *argv[1] == 0 || *(argv[1] + 1) == 0)
     {
@@ -490,7 +489,7 @@ int main(int argc, FAR char *argv[])
                   printf("Set to batch mode.\n");
                 }
             }
-          else if (ui >= ARRAYSIZE(test_ptr_array))
+          else if (ui >= nitems(test_ptr_array))
             {
               printf("Huh?\n");
             }
@@ -511,7 +510,7 @@ int main(int argc, FAR char *argv[])
     {
       printf("ADXL372 sensor diagnostic started in batch mode...\n");
 
-      for (ui = 0; ui < ARRAYSIZE(test_ptr_array); ui++)
+      for (ui = 0; ui < nitems(test_ptr_array); ui++)
         {
           step_rc = 0;
           if (test_ptr_array[ui] != 0)
diff --git a/examples/dac/dac_main.c b/examples/dac/dac_main.c
index c4f335b29..d9dda7010 100644
--- a/examples/dac/dac_main.c
+++ b/examples/dac/dac_main.c
@@ -32,6 +32,7 @@
 #include <unistd.h>
 
 #include <sys/ioctl.h>
+#include <sys/param.h>
 #include <nuttx/analog/dac.h>
 #include <nuttx/arch.h>
 
@@ -47,10 +48,6 @@
 #  define CONFIG_EXAMPLES_DAC_DEVPATH "/dev/dac0"
 #endif
 
-#ifndef ARRAY_SIZE
-#  define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-#endif
-
 /****************************************************************************
  * Private Types
  ****************************************************************************/
@@ -226,7 +223,7 @@ static int cmd_dac_put(int argc, FAR const char *argv[])
     {
       msgs[0].am_channel = g_dacstate.channel;
       msgs[0].am_data = data;
-      ret = dac_put(g_dacstate.devpath, msgs, ARRAY_SIZE(msgs), delay);
+      ret = dac_put(g_dacstate.devpath, msgs, nitems(msgs), delay);
       printf("ret=%d\n", ret);
     }
 
@@ -277,7 +274,7 @@ static void dac_help(void)
          "Default: %s Current: %s\n",
          CONFIG_EXAMPLES_DAC_DEVPATH,
          g_dacstate.devpath ? g_dacstate.devpath : "NONE");
-  print_cmds("\nCommands:\n", commands, ARRAY_SIZE(commands), "\n");
+  print_cmds("\nCommands:\n", commands, nitems(commands), "\n");
 }
 
 static int arg_string(FAR const char **arg, FAR const char **value)
@@ -422,7 +419,7 @@ int main(int argc, FAR const char *argv[])
     }
   else
     {
-      ret = execute_cmd(argc, argv, commands, ARRAY_SIZE(commands));
+      ret = execute_cmd(argc, argv, commands, nitems(commands));
     }
 
   return (ret >= 0) ? EXIT_SUCCESS : EXIT_FAILURE;
diff --git a/examples/ft80x/ft80x_main.c b/examples/ft80x/ft80x_main.c
index da79bf92a..c88919747 100644
--- a/examples/ft80x/ft80x_main.c
+++ b/examples/ft80x/ft80x_main.c
@@ -30,6 +30,7 @@
 #include <fcntl.h>
 #include <errno.h>
 
+#include <sys/param.h>
 #include <nuttx/lcd/ft80x.h>
 
 #include "graphics/ft80x.h"
@@ -88,7 +89,6 @@ static const struct ft80x_exampleinfo_s g_primitives[] =
   { "Alpha Blend",  ft80x_prim_alphablend }
 };
 
-#define NPRIMITIVES (sizeof(g_primitives) / sizeof(struct ft80x_exampleinfo_s))
 #endif /* CONFIG_EXAMPLES_FT80X_PRIMITIVES */
 
 /* Co-processor display examples.  Only a small, but interesting, subset
@@ -139,8 +139,6 @@ static const struct ft80x_exampleinfo_s g_coproc[] =
   { "Logo",           ft80x_coproc_logo }
 };
 
-#define NCOPROC (sizeof(g_coproc) / sizeof(struct ft80x_exampleinfo_s))
-
 /****************************************************************************
  * Private Functions
  ****************************************************************************/
@@ -308,7 +306,7 @@ int main(int argc, FAR char *argv[])
 
   ft80x_info("FT80x Primitive Functions\n");
 
-  for (i = 0; i < NPRIMITIVES; i++)
+  for (i = 0; i < nitems(g_primitives); i++)
     {
       ft80x_example(fd, buffer, &g_primitives[i]);
     }
@@ -318,7 +316,7 @@ int main(int argc, FAR char *argv[])
 
   ft80x_info("FT80x Co-processor Functions\n");
 
-  for (i = 0; i < NCOPROC; i++)
+  for (i = 0; i < nitems(g_coproc); i++)
     {
       ft80x_example(fd, buffer, &g_coproc[i]);
     }
diff --git a/examples/ftpd/ftpd_main.c b/examples/ftpd/ftpd_main.c
index e0eda11b4..d1052b50c 100644
--- a/examples/ftpd/ftpd_main.c
+++ b/examples/ftpd/ftpd_main.c
@@ -33,6 +33,7 @@
 #include <errno.h>
 #include <debug.h>
 
+#include <sys/param.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
@@ -65,7 +66,6 @@ static const struct fptd_account_s g_ftpdaccounts[] =
   { FTPD_ACCOUNTFLAG_GUEST,  "ftp",       NULL,     NULL },
   { FTPD_ACCOUNTFLAG_GUEST,  "anonymous", NULL,     NULL },
 };
-#define NACCOUNTS (sizeof(g_ftpdaccounts) / sizeof(struct fptd_account_s))
 
 /****************************************************************************
  * Public Data
@@ -139,7 +139,7 @@ static void ftpd_accounts(FTPD_SESSION handle)
   int i;
 
   printf("Adding accounts:\n");
-  for (i = 0; i < NACCOUNTS; i++)
+  for (i = 0; i < nitems(g_ftpdaccounts); i++)
     {
       account = &g_ftpdaccounts[i];
 
diff --git a/examples/lsm330spi_test/lsm330spi_test_main.c 
b/examples/lsm330spi_test/lsm330spi_test_main.c
index ca1a5361d..f78032a6f 100644
--- a/examples/lsm330spi_test/lsm330spi_test_main.c
+++ b/examples/lsm330spi_test/lsm330spi_test_main.c
@@ -27,7 +27,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <fcntl.h>
-#include <nuttx/fs/fs.h>
+#include <sys/param.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <unistd.h>
@@ -41,7 +41,6 @@
  * Pre-processor Definitions
  ****************************************************************************/
 
-#define ARRAYSIZE(x)  (sizeof((x)) / sizeof((x)[0]))
 #define PASSED        0
 
 #define SUB_PROMPT    "stst >"
@@ -631,7 +630,7 @@ int main(int argc, FAR char *argv[])
       lsm330gyro_test,  /* LSM330 gyroscope tests */
     };
 
-  FAR char *test_path[ARRAYSIZE(test_ptr_array)];
+  FAR char *test_path[nitems(test_ptr_array)];
 
   if (argc < 2 || *argv[1] == 0 || *(argv[1] + 1) == 0)
     {
@@ -737,7 +736,7 @@ int main(int argc, FAR char *argv[])
                   printf("Set to batch mode.\n");
                 }
             }
-          else if (ui >= ARRAYSIZE(test_ptr_array))
+          else if (ui >= nitems(test_ptr_array))
             {
               printf("Huh?\n");
             }
@@ -757,7 +756,7 @@ int main(int argc, FAR char *argv[])
   else /* not interactive mode */
     {
       printf("LSM330 sensor diagnostic started in batch mode...\n");
-      for (ui = 0; ui < ARRAYSIZE(test_ptr_array); ui++)
+      for (ui = 0; ui < nitems(test_ptr_array); ui++)
         {
           step_rc = 0;
           if (test_ptr_array[ui] != 0)
diff --git a/examples/pdcurses/testcurs_main.c 
b/examples/pdcurses/testcurs_main.c
index 14ac2ed88..14d2951d2 100644
--- a/examples/pdcurses/testcurs_main.c
+++ b/examples/pdcurses/testcurs_main.c
@@ -29,6 +29,7 @@
 #include <stdio.h>
 #include <ctype.h>
 #include <string.h>
+#include <sys/param.h>
 
 #include "graphics/curses.h"
 
@@ -123,7 +124,7 @@ static const COMMAND command[] =
 #endif
 };
 
-#define MAX_OPTIONS (sizeof(command) / sizeof(COMMAND))
+#define MAX_OPTIONS nitems(command)
 
 static int height;
 static int width;
diff --git a/examples/usrsocktest/usrsocktest_daemon.c 
b/examples/usrsocktest/usrsocktest_daemon.c
index e2b15888b..37303fec1 100644
--- a/examples/usrsocktest/usrsocktest_daemon.c
+++ b/examples/usrsocktest/usrsocktest_daemon.c
@@ -36,6 +36,7 @@
 #include <pthread.h>
 #include <unistd.h>
 
+#include <sys/param.h>
 #include <sys/socket.h>
 #include <sys/ioctl.h>
 #include <netinet/in.h>
@@ -58,10 +59,6 @@
 #define TEST_SOCKET_SOCKID_BASE 10000U
 #define TEST_SOCKET_COUNT 8
 
-#ifndef ARRAY_SIZE
-#  define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-#endif
-
 #define noinline
 
 /****************************************************************************
@@ -140,7 +137,7 @@ static int test_socket_alloc(FAR struct daemon_priv_s *priv)
 {
   int i;
 
-  for (i = 0; i < ARRAY_SIZE(priv->test_sockets); i++)
+  for (i = 0; i < nitems(priv->test_sockets); i++)
     {
       FAR struct test_socket_s *tsock = &priv->test_sockets[i];
 
@@ -172,7 +169,7 @@ static FAR struct test_socket_s *test_socket_get(
     }
 
   sockid -= TEST_SOCKET_SOCKID_BASE;
-  if (sockid >= ARRAY_SIZE(priv->test_sockets))
+  if (sockid >= nitems(priv->test_sockets))
     {
       return NULL;
     }
@@ -245,13 +242,13 @@ static int tsock_send_event(int fd, FAR struct 
daemon_priv_s *priv,
   event.head.flags = USRSOCK_MESSAGE_FLAG_EVENT;
   event.head.msgid = USRSOCK_MESSAGE_SOCKET_EVENT;
 
-  for (i = 0; i < ARRAY_SIZE(priv->test_sockets); i++)
+  for (i = 0; i < nitems(priv->test_sockets); i++)
     {
       if (tsock == &priv->test_sockets[i])
         break;
     }
 
-  if (i == ARRAY_SIZE(priv->test_sockets))
+  if (i == nitems(priv->test_sockets))
     {
       return -EINVAL;
     }
@@ -1777,7 +1774,7 @@ static int for_each_connection(int fd, FAR struct 
daemon_priv_s *priv,
 {
   int i;
 
-  for (i = 0; i < ARRAY_SIZE(priv->test_sockets); i++)
+  for (i = 0; i < nitems(priv->test_sockets); i++)
     {
       FAR struct test_socket_s *tsock = &priv->test_sockets[i];
 
@@ -2114,7 +2111,7 @@ int usrsocktest_daemon_stop(void)
       goto out;
     }
 
-  for (i = 0; i < ARRAY_SIZE(priv->test_sockets); i++)
+  for (i = 0; i < nitems(priv->test_sockets); i++)
     {
       if (priv->test_sockets[i].opened && priv->test_sockets[i].endp != NULL)
         {
diff --git a/examples/usrsocktest/usrsocktest_main.c 
b/examples/usrsocktest/usrsocktest_main.c
index 2d854d87a..9545eac07 100644
--- a/examples/usrsocktest/usrsocktest_main.c
+++ b/examples/usrsocktest/usrsocktest_main.c
@@ -54,10 +54,6 @@
 
 #define usrsocktest_dbg(...) ((void)0)
 
-#ifndef ARRAY_SIZE
-#  define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-#endif
-
 /****************************************************************************
  * Private Data
  ****************************************************************************/
diff --git a/examples/usrsocktest/usrsocktest_multi_thread.c 
b/examples/usrsocktest/usrsocktest_multi_thread.c
index e9f56fbd3..a233f3e34 100644
--- a/examples/usrsocktest/usrsocktest_multi_thread.c
+++ b/examples/usrsocktest/usrsocktest_multi_thread.c
@@ -22,6 +22,7 @@
  * Included Files
  ****************************************************************************/
 
+#include <sys/param.h>
 #include <sys/socket.h>
 #include <assert.h>
 #include <netinet/in.h>
@@ -34,10 +35,6 @@
  * Pre-processor Definitions
  ****************************************************************************/
 
-#ifndef ARRAY_SIZE
-#  define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-#endif
-
 /****************************************************************************
  * Private Types
  ****************************************************************************/
@@ -115,12 +112,12 @@ TEST_SETUP(multithread)
 {
   int i;
 
-  for (i = 0; i < ARRAY_SIZE(sds); i++)
+  for (i = 0; i < nitems(sds); i++)
     {
       sds[i] = -1;
     }
 
-  for (i = 0; i < ARRAY_SIZE(tids); i++)
+  for (i = 0; i < nitems(tids); i++)
     {
       tids[i] = -1;
     }
@@ -150,7 +147,7 @@ TEST_TEAR_DOWN(multithread)
   int ret;
   int i;
 
-  for (i = 0; i < ARRAY_SIZE(tids); i++)
+  for (i = 0; i < nitems(tids); i++)
     {
       if (tids[i] != -1)
         {
@@ -161,7 +158,7 @@ TEST_TEAR_DOWN(multithread)
         }
     }
 
-  for (i = 0; i < ARRAY_SIZE(sds); i++)
+  for (i = 0; i < nitems(sds); i++)
     {
       if (sds[i] != -1)
         {
@@ -213,7 +210,7 @@ TEST(multithread, open_close)
 
   /* Launch worker threads. */
 
-  for (i = 0; i < ARRAY_SIZE(tids); i++)
+  for (i = 0; i < nitems(tids); i++)
     {
       ret = pthread_create(&tids[i], NULL, usrsock_socket_multitask_thread,
                            sds + i);
diff --git a/examples/usrsocktest/usrsocktest_wake_with_signal.c 
b/examples/usrsocktest/usrsocktest_wake_with_signal.c
index 8cf0af443..ceb84fca5 100644
--- a/examples/usrsocktest/usrsocktest_wake_with_signal.c
+++ b/examples/usrsocktest/usrsocktest_wake_with_signal.c
@@ -38,10 +38,6 @@
  * Pre-processor Definitions
  ****************************************************************************/
 
-#ifndef ARRAY_SIZE
-#  define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-#endif
-
 #define TEST_FLAG_PAUSE_USRSOCK_HANDLING (1 << 0)
 #define TEST_FLAG_DAEMON_ABORT           (1 << 1)
 #define TEST_FLAG_MULTI_THREAD           (1 << 2)
diff --git a/graphics/lvgl/port/lv_port_keypad.c 
b/graphics/lvgl/port/lv_port_keypad.c
index f45099ca5..e80f6d774 100644
--- a/graphics/lvgl/port/lv_port_keypad.c
+++ b/graphics/lvgl/port/lv_port_keypad.c
@@ -24,6 +24,7 @@
 
 #include <sys/types.h>
 #include <sys/ioctl.h>
+#include <sys/param.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -114,7 +115,7 @@ static uint32_t keypad_get_key(int fd)
       return 0;
     }
 
-  for (i = 0; i < sizeof(g_keypad_map) / sizeof(struct keypad_map_s); i++)
+  for (i = 0; i < nitems(g_keypad_map); i++)
     {
       int bit = g_keypad_map[i].bit;
 
diff --git a/interpreters/bas/bas_statement.c b/interpreters/bas/bas_statement.c
index 194123677..482f94f62 100644
--- a/interpreters/bas/bas_statement.c
+++ b/interpreters/bas/bas_statement.c
@@ -32,6 +32,7 @@
 #include <stdlib.h>
 #include <strings.h>
 #include <assert.h>
+#include <sys/param.h>
 
 #include "bas_statement.h"
 
@@ -1181,7 +1182,7 @@ struct Value *stmt_EDIT(struct Value *value)
       String_new(&cmd);
       String_appendChars(&cmd, visual);
       String_appendChar(&cmd, ' ');
-      for (i = 0; i < sizeof(gotoLine) / sizeof(gotoLine[0]); ++i)
+      for (i = 0; i < nitems(gotoLine); ++i)
         {
           if (strcmp(basename, gotoLine[i].editor) == 0)
             {
diff --git a/netutils/dhcp6c/dhcp6c.c b/netutils/dhcp6c/dhcp6c.c
index 8fc9f8210..678ce4db5 100644
--- a/netutils/dhcp6c/dhcp6c.c
+++ b/netutils/dhcp6c/dhcp6c.c
@@ -24,6 +24,7 @@
 
 #include <nuttx/config.h>
 #include <nuttx/compiler.h>
+#include <nuttx/clock.h>
 
 #include <time.h>
 #include <fcntl.h>
@@ -40,7 +41,7 @@
 #include <malloc.h>
 #include <pthread.h>
 #include <sys/time.h>
-#include <nuttx/clock.h>
+#include <sys/param.h>
 #include <sys/ioctl.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
@@ -63,8 +64,6 @@
 #define DHCPV6_DUID_LLADDR 3
 #define DHCPV6_REQ_DELAY 1
 
-#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
-
 #define dhcpv6_for_each_option(_o, start, end, otype, olen, odata)\
     for ((_o) = (FAR uint8_t *)(start); (_o) + 4 <= (FAR uint8_t *)(end) &&\
         ((otype) = (_o)[0] << 8 | (_o)[1]) && ((odata) = (FAR void *)&(_o)[4]) 
&&\
@@ -614,7 +613,7 @@ static void dhcp6c_send(FAR void *handle, enum dhcpv6_msg_e 
type,
   dhcp6c_set_iov(&iov[9], &hdr_ia_pd, sizeof(hdr_ia_pd));
   dhcp6c_set_iov(&iov[10], ia_pd, ia_pd_len);
 
-  cnt = ARRAY_SIZE(iov);
+  cnt = nitems(iov);
   if (type == DHCPV6_MSG_INFO_REQ)
     {
       cnt = 5;
diff --git a/netutils/iperf/iperf_main.c b/netutils/iperf/iperf_main.c
index a51359091..46abf8bbb 100644
--- a/netutils/iperf/iperf_main.c
+++ b/netutils/iperf/iperf_main.c
@@ -85,7 +85,7 @@ static void iperf_showusage(FAR const char *progname,
   printf("iperf command:\n");
   arg_print_glossary(stdout, (FAR void **)args, NULL);
 
-  arg_freetable((FAR void **)args, sizeof(*args) / sizeof(FAR void *));
+  arg_freetable((FAR void **)args, 1);
   exit(exitcode);
 }
 
@@ -301,8 +301,7 @@ int main(int argc, FAR char *argv[])
   iperf_start(&cfg);
 
 out:
-  arg_freetable((FAR void **)&iperf_args,
-                sizeof(iperf_args) / sizeof(FAR void *));
+  arg_freetable((FAR void **)&iperf_args, 1);
 
   return 0;
 }
diff --git a/netutils/ntpclient/ntpclient.c b/netutils/ntpclient/ntpclient.c
index 7374c00a2..8ec85d22e 100644
--- a/netutils/ntpclient/ntpclient.c
+++ b/netutils/ntpclient/ntpclient.c
@@ -27,6 +27,7 @@
 #include <stdbool.h>
 #include <stdint.h>
 
+#include <sys/param.h>
 #include <sys/socket.h>
 #include <sys/time.h>
 
@@ -100,10 +101,6 @@
 
 #define MAX_SERVER_SELECTION_RETRIES 3
 
-#ifndef ARRAY_SIZE
-#  define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-#endif
-
 #ifndef STR
 #  define STR2(x) #x
 #  define STR(x) STR2(x)
@@ -1003,7 +1000,7 @@ static int ntp_get_next_hostip(FAR struct ntp_servers_s 
*srvs,
       /* Refresh DNS for new IP-addresses. */
 
       ret = ntp_gethostip_multi(hostname, srvs->list,
-                                ARRAY_SIZE(srvs->list));
+                                nitems(srvs->list));
       if (ret <= 0)
         {
           return ERROR;
diff --git a/netutils/thttpd/libhttpd.c b/netutils/thttpd/libhttpd.c
index bdc747caf..9c07f93e7 100644
--- a/netutils/thttpd/libhttpd.c
+++ b/netutils/thttpd/libhttpd.c
@@ -43,6 +43,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/time.h>
+#include <sys/param.h>
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -1503,7 +1504,7 @@ static void figure_mime(httpd_conn *hc)
           if (ext_len == enc_tab[i].ext_len &&
               strncasecmp(ext, enc_tab[i].ext, ext_len) == 0)
             {
-              if (n_me_indexes < sizeof(me_indexes) / sizeof(*me_indexes))
+              if (n_me_indexes < nitems(me_indexes))
                 {
                   me_indexes[n_me_indexes] = i;
                   ++n_me_indexes;
@@ -3284,7 +3285,7 @@ int httpd_start_request(httpd_conn *hc, struct timeval 
*nowp)
 
       /* Check for an index file. */
 
-      for (i = 0; i < sizeof(index_names) / sizeof(char *); ++i)
+      for (i = 0; i < nitems(index_names); ++i)
         {
           httpd_realloc_str(&indexname, &maxindexname,
                             expnlen + 1 + strlen(index_names[i]));
diff --git a/netutils/thttpd/mime_types.h b/netutils/thttpd/mime_types.h
index 5c14a74b8..6b6b29005 100644
--- a/netutils/thttpd/mime_types.h
+++ b/netutils/thttpd/mime_types.h
@@ -45,6 +45,7 @@
  ****************************************************************************/
 
 #include <sys/types.h>
+#include <sys/param.h>
 
 /****************************************************************************
  * Private Types
@@ -73,7 +74,7 @@ static struct mime_entry enc_tab[] =
   { "gz",      0, "gzip",       0 },
   { "uu",      0, "x-uuencode", 0 },
 };
-static const int n_enc_tab = sizeof(enc_tab) / sizeof(*enc_tab);
+static const int n_enc_tab = nitems(enc_tab);
 
 /* A list of file extensions followed by the corresponding MIME type.
  * Extensions not found in the table are returned as text/plain.
@@ -273,6 +274,6 @@ static struct mime_entry typ_tab[] =
   { "xyz",     0, "chemical/x-xyz", 0 },
   { "zip",     0, "application/zip", 0 },
 };
-static const int n_typ_tab = sizeof(typ_tab) / sizeof(*typ_tab);
+static const int n_typ_tab = nitems(typ_tab);
 
 #endif /* __APPS_NETUTILS_THTTPD_MIME_TYPES_H */
diff --git a/netutils/thttpd/tdate_parse.c b/netutils/thttpd/tdate_parse.c
index de3f8851d..995af3a95 100644
--- a/netutils/thttpd/tdate_parse.c
+++ b/netutils/thttpd/tdate_parse.c
@@ -143,14 +143,13 @@ static int scan_wday(char *str_wday, long *tm_wdayP)
 
   if (!sorted)
     {
-      qsort(wday_tab, sizeof(wday_tab) / sizeof(struct strlong),
+      qsort(wday_tab, nitems(wday_tab),
             sizeof(struct strlong), strlong_compare);
       sorted = 1;
     }
 
   pound_case(str_wday);
-  return strlong_search(str_wday, wday_tab,
-                        sizeof(wday_tab) / sizeof(struct strlong), tm_wdayP);
+  return strlong_search(str_wday, wday_tab, nitems(wday_tab), tm_wdayP);
 }
 #endif /* Day of week not yet supported by NuttX */
 
@@ -176,14 +175,13 @@ static int scan_mon(char *str_mon, long *tm_monP)
 
   if (!sorted)
     {
-      qsort(mon_tab, sizeof(mon_tab) / sizeof(struct strlong),
+      qsort(mon_tab, nitems(mon_tab),
             sizeof(struct strlong), strlong_compare);
       sorted = 1;
     }
 
   pound_case(str_mon);
-  return strlong_search(str_mon, mon_tab,
-                        sizeof(mon_tab) / sizeof(struct strlong), tm_monP);
+  return strlong_search(str_mon, mon_tab, nitems(mon_tab), tm_monP);
 }
 #endif
 
diff --git a/netutils/webserver/Kconfig b/netutils/webserver/Kconfig
index 1140f0c56..6f33542e6 100644
--- a/netutils/webserver/Kconfig
+++ b/netutils/webserver/Kconfig
@@ -57,12 +57,12 @@ config NETUTILS_HTTPD_CGIPATH
                used thus:
 
                const static struct httpd_cgi_call a[] = {
-               { NULL, "/abc", cgi_abc },
-               { NULL, "/xyz", cgi_xyz }
+                       { NULL, "/abc", cgi_abc },
+                       { NULL, "/xyz", cgi_xyz }
                };
 
-               for (i = 0; i < sizeof a / sizeof *a; i++) {
-               httpd_cgi_register(&a[i]);
+               for (i = 0; i < nitems(a); i++) {
+                       httpd_cgi_register(&a[i]);
                }
 
                Where (under NETUTILS_HTTPD_CGIPATH) the "/xyz" is a URL path,
diff --git a/netutils/webserver/httpd.c b/netutils/webserver/httpd.c
index 14aa2a33f..4602e65e9 100644
--- a/netutils/webserver/httpd.c
+++ b/netutils/webserver/httpd.c
@@ -50,6 +50,7 @@
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/time.h>
+#include <sys/param.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -988,7 +989,7 @@ int httpd_send_headers(struct httpd_state *pstate, int 
status, int len)
     {
       mime = "text/plain";
 
-      for (i = 0; i < sizeof a / sizeof *a; i++)
+      for (i = 0; i < nitems(a); i++)
         {
           if (strncmp(a[i].ext, ptr + 1, strlen(a[i].ext)) == 0)
             {
diff --git a/system/iptables/iptables.c b/system/iptables/iptables.c
index 8cbc958ac..3021619bb 100644
--- a/system/iptables/iptables.c
+++ b/system/iptables/iptables.c
@@ -455,6 +455,6 @@ int main(int argc, FAR char *argv[])
       printf("Unknown table: %s\n", args.table->sval[0]);
     }
 
-  arg_freetable((FAR void **)&args, sizeof(args) / sizeof(FAR void *));
+  arg_freetable((FAR void **)&args, 1);
   return ret;
 }
diff --git a/system/nxplayer/nxplayer.c b/system/nxplayer/nxplayer.c
index 626000982..a0d10e590 100644
--- a/system/nxplayer/nxplayer.c
+++ b/system/nxplayer/nxplayer.c
@@ -38,6 +38,7 @@
 #include <strings.h>
 #include <sys/ioctl.h>
 #include <sys/types.h>
+#include <sys/param.h>
 #include <unistd.h>
 #ifdef CONFIG_NXPLAYER_HTTP_STREAMING_SUPPORT
 #  include <sys/time.h>
@@ -1900,7 +1901,7 @@ static int nxplayer_playinternal(FAR struct nxplayer_s 
*pplayer,
       goto err_out_nodev;
     }
 
-  for (c = 0; c < sizeof(g_dec_ops) / sizeof(g_dec_ops[0]); c++)
+  for (c = 0; c < nitems(g_dec_ops); c++)
     {
       if (g_dec_ops[c].format == filefmt)
         {
diff --git a/system/nxplayer/nxplayer_mp3.c b/system/nxplayer/nxplayer_mp3.c
index 7f62241a5..445fe29dd 100644
--- a/system/nxplayer/nxplayer_mp3.c
+++ b/system/nxplayer/nxplayer_mp3.c
@@ -29,6 +29,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <sys/types.h>
+#include <sys/param.h>
 #include <unistd.h>
 
 #include <nuttx/audio/audio.h>
@@ -157,8 +158,7 @@ static int nxplayer_parse_mpeg(uint32_t header, FAR 
uint32_t *samplerate,
   padding = (header >> 9) & 1;
   mode    = (header >> 6) & 3;
 
-  if (sr_idx >= sizeof(g_mpa_freq_tab) / sizeof(g_mpa_freq_tab[0]) ||
-      br_idx >= 0xf)
+  if (sr_idx >= nitems(g_mpa_freq_tab) || br_idx >= 0xf)
     {
       return -EINVAL;
     }
diff --git a/system/tcpdump/tcpdump.c b/system/tcpdump/tcpdump.c
index 2a43cfc36..c1988d401 100644
--- a/system/tcpdump/tcpdump.c
+++ b/system/tcpdump/tcpdump.c
@@ -312,6 +312,6 @@ int main(int argc, FAR char *argv[])
   close(cfgs.fd);
 
 out:
-  arg_freetable((FAR void **)&args, sizeof(args) / sizeof(FAR void *));
+  arg_freetable((FAR void **)&args, 1);
   return 0;
 }
diff --git a/system/ubloxmodem/ubloxmodem_main.c 
b/system/ubloxmodem/ubloxmodem_main.c
index 2f49f9254..76f827f62 100644
--- a/system/ubloxmodem/ubloxmodem_main.c
+++ b/system/ubloxmodem/ubloxmodem_main.c
@@ -42,6 +42,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/ioctl.h>
+#include <sys/param.h>
 
 #include <debug.h>
 #include <errno.h>
@@ -247,9 +248,7 @@ static int ubloxmodem_help(FAR struct ubloxmodem_cxt *cxt)
 
   printf("Usage: ubloxmodem <cmd> [arguments]\n"
          "  where <cmd> is one of\n");
-  for (i = 0;
-       i < sizeof(cmdmap) / sizeof(struct cmdinfo);
-       i++)
+  for (i = 0; i < nitems(cmdmap); i++)
     {
       printf("%s\n  %s\n  %s\n",
              cmdmap[i].name,
@@ -375,8 +374,7 @@ static int ubloxmodem_parse(FAR struct ubloxmodem_cxt *cxt)
 {
   int i;
 
-  for (i = 0;
-       i < sizeof(cmdmap) / sizeof(struct cmdinfo) &&
+  for (i = 0; i < nitems(cmdmap) &&
          cxt->cmd == UBLOXMODEM_CMD_UNKNOWN;
        i++)
     {
diff --git a/system/uorb/test/unit_test.c b/system/uorb/test/unit_test.c
index 902acde3d..471b471c3 100644
--- a/system/uorb/test/unit_test.c
+++ b/system/uorb/test/unit_test.c
@@ -30,6 +30,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
+#include <sys/param.h>
 
 #include "utility.h"
 
@@ -89,7 +90,7 @@ static int pubsubtest_thread_entry(int argc, FAR char *argv[])
 
       /* wait for up to 500ms for data */
 
-      pret = poll(&fds[0], (sizeof(fds) / sizeof(fds[0])), 500);
+      pret = poll(&fds[0], nitems(fds), 500);
       if (fds[0].revents & POLLIN)
         {
           unsigned elt;
diff --git a/testing/crypto/aescbc.c b/testing/crypto/aescbc.c
index e21d23548..638f4f411 100644
--- a/testing/crypto/aescbc.c
+++ b/testing/crypto/aescbc.c
@@ -27,6 +27,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <sys/ioctl.h>
+#include <sys/param.h>
 #include <crypto/cryptodev.h>
 #include <crypto/md5.h>
 #include <crypto/sha1.h>
@@ -192,7 +193,7 @@ int main(int argc, char *argv[])
   int ret;
   unsigned char out[64];
 
-  for (int i = 0; i < sizeof(testcase) / sizeof(struct tb); i++)
+  for (int i = 0; i < nitems(testcase); i++)
     {
       ret = syscrypt(testcase[i].key, 16, testcase[i].iv, testcase[i].plain,
                      out, testcase[i].len, 1);
diff --git a/testing/crypto/aesctr.c b/testing/crypto/aesctr.c
index ee6e13c97..852b179eb 100644
--- a/testing/crypto/aesctr.c
+++ b/testing/crypto/aesctr.c
@@ -351,7 +351,7 @@ int main(int argc, FAR char **argv)
   int fail = 0;
   int i;
 
-  for (i = 0; i < (sizeof(tests) / sizeof(tests[0])); i++)
+  for (i = 0; i < nitems(tests); i++)
     {
       fail += run(i);
     }
diff --git a/testing/crypto/aesxts.c b/testing/crypto/aesxts.c
index b99698db3..dce7a9166 100644
--- a/testing/crypto/aesxts.c
+++ b/testing/crypto/aesxts.c
@@ -32,6 +32,7 @@
 
 #include <sys/types.h>
 #include <sys/ioctl.h>
+#include <sys/param.h>
 #include <crypto/rijndael.h>
 #include <crypto/cryptodev.h>
 #include <err.h>
@@ -1727,7 +1728,6 @@ struct aes_xts_tv aes_xts_test_vectors[] =
     },
   },
 };
-#define N_VECTORS (sizeof(aes_xts_test_vectors) / 
sizeof(*aes_xts_test_vectors))
 
 static int match(FAR unsigned char *a, FAR unsigned char *b, size_t len)
 {
@@ -1837,7 +1837,7 @@ int main(int argc, FAR char **argv)
   int fail = 0;
   size_t i;
 
-  for (i = 0; i < N_VECTORS; i++)
+  for (i = 0; i < nitems(aes_xts_test_vectors); i++)
     {
       tv = &aes_xts_test_vectors[i];
 
diff --git a/testing/crypto/hash.c b/testing/crypto/hash.c
index 175853fe9..5490c92aa 100644
--- a/testing/crypto/hash.c
+++ b/testing/crypto/hash.c
@@ -25,6 +25,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <sys/ioctl.h>
+#include <sys/param.h>
 #include <crypto/cryptodev.h>
 #include <crypto/md5.h>
 #include <crypto/sha1.h>
@@ -329,7 +330,7 @@ int main(void)
       printf("syshash init failed\n");
     }
 
-  for (i = 0; i < sizeof(md5_testcase) / sizeof(tb); i++)
+  for (i = 0; i < nitems(md5_testcase); i++)
     {
       ret = syshash_start(&md5_ctx, CRYPTO_MD5);
       if (ret != 0)
@@ -365,7 +366,7 @@ int main(void)
         }
     }
 
-  for (i = 0; i < sizeof(sha_testcase) / sizeof(struct tb); i++)
+  for (i = 0; i < nitems(sha_testcase); i++)
     {
       ret = syshash_start(&sha1_ctx, CRYPTO_SHA1);
       if (ret != 0)
@@ -420,7 +421,7 @@ int main(void)
         }
     }
 
-  for (i = 0; i < sizeof(sha_testcase) / sizeof(struct tb); i++)
+  for (i = 0; i < nitems(sha_testcase); i++)
     {
       ret = syshash_start(&sha2_256_ctx, CRYPTO_SHA2_256);
       if (ret != 0)
@@ -473,7 +474,7 @@ int main(void)
         }
     }
 
-  for (i = 0; i < sizeof(sha512_testcase) / sizeof(struct tb); i++)
+  for (i = 0; i < nitems(sha512_testcase); i++)
     {
       ret = syshash_start(&sha2_512_ctx, CRYPTO_SHA2_512);
       if (ret != 0)
diff --git a/testing/crypto/hmac.c b/testing/crypto/hmac.c
index fda24dd27..cbad8decb 100644
--- a/testing/crypto/hmac.c
+++ b/testing/crypto/hmac.c
@@ -25,6 +25,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <sys/ioctl.h>
+#include <sys/param.h>
 #include <crypto/cryptodev.h>
 #include <crypto/md5.h>
 #include <crypto/sha1.h>
@@ -192,7 +193,7 @@ int main(void)
 {
   char output[32];
   int ret = 0;
-  for (int i = 0; i < sizeof(testcase) / sizeof(struct tb); i++)
+  for (int i = 0; i < nitems(testcase) i++)
     {
       ret += syshmac(CRYPTO_MD5_HMAC, testcase[i].key,
                      testcase[i].keylen,
@@ -215,7 +216,7 @@ int main(void)
         }
     }
 
-  for (int i = 0; i < sizeof(testcase) / sizeof(struct tb); i++)
+  for (int i = 0; i < nitems(testcase); i++)
     {
       ret = syshmac(CRYPTO_SHA1_HMAC, testcase[i].key,
                     testcase[i].keylen,
@@ -238,7 +239,7 @@ int main(void)
         }
     }
 
-  for (int i = 0; i < sizeof(testcase) / sizeof(struct tb); i++)
+  for (int i = 0; i < nitems(testcase); i++)
     {
       ret = syshmac(CRYPTO_SHA2_256_HMAC, testcase[i].key,
                     testcase[i].keylen,
diff --git a/testing/drivertest/drivertest_framebuffer.c 
b/testing/drivertest/drivertest_framebuffer.c
index 5302c5919..a0566cea8 100644
--- a/testing/drivertest/drivertest_framebuffer.c
+++ b/testing/drivertest/drivertest_framebuffer.c
@@ -30,6 +30,7 @@
 #include <sys/mman.h>
 #include <sys/stat.h>
 #include <sys/types.h>
+#include <sys/param.h>
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -283,7 +284,7 @@ static void test_case_fb_2(FAR void **state)
   const uint32_t xres = fb_state->fb_info.video_info.xres;
   const uint32_t yres = fb_state->fb_info.video_info.yres;
 
-  step_num = sizeof(colors_to_show) / sizeof(uint32_t);
+  step_num = nitems(colors_to_show);
   step_width = xres / step_num;
   for (i = 0; i < step_num; i++)
     {
diff --git a/testing/drivertest/drivertest_lcd.c 
b/testing/drivertest/drivertest_lcd.c
index 2e0a2f687..e9ca3713f 100644
--- a/testing/drivertest/drivertest_lcd.c
+++ b/testing/drivertest/drivertest_lcd.c
@@ -32,6 +32,7 @@
 #include <sys/mman.h>
 #include <sys/stat.h>
 #include <sys/types.h>
+#include <sys/param.h>
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -342,7 +343,7 @@ static void test_case_lcd_2(FAR void **state)
   const uint32_t xres = lcd_state->lcd_info.video_info.xres;
   const uint32_t yres = lcd_state->lcd_info.video_info.yres;
 
-  step_num = sizeof(colors_to_show) / sizeof(uint32_t);
+  step_num = nitems(colors_to_show);
   step_width = xres / step_num;
   for (i = 0; i < step_num; i++)
     {
diff --git a/testing/scanftest/scanftest_main.c 
b/testing/scanftest/scanftest_main.c
index df1d7791b..b51bea89d 100644
--- a/testing/scanftest/scanftest_main.c
+++ b/testing/scanftest/scanftest_main.c
@@ -61,6 +61,7 @@
 #include <nuttx/config.h>
 
 #include <sys/types.h>
+#include <sys/param.h>
 #include <stdint.h>
 #include <stdbool.h>
 
@@ -78,8 +79,6 @@
  * Pre-processor Definitions
  ****************************************************************************/
 
-#define ARRAYSIZE(a) (sizeof (a) / sizeof (a)[0])
-
 /****************************************************************************
  * Private Types
  ****************************************************************************/
@@ -1152,7 +1151,7 @@ int main(int argc, FAR char *argv[])
              "assignments...\n",
              i ? 'f' : 's');
 
-      for (t = 0; t < ARRAYSIZE(test_data); ++t)
+      for (t = 0; t < nitems(test_data); ++t)
         {
           /* Prefill the arguments with zeroes. */
 
@@ -1329,7 +1328,7 @@ int main(int argc, FAR char *argv[])
   /* Test the char, short, and long specification-modifiers. */
 
   printf("\nTesting scanf()'s type-modifiers...\n");
-  for (t = 0; t < ARRAYSIZE(type_data); ++t)
+  for (t = 0; t < nitems(type_data); ++t)
     {
       unsigned char hhu;
       unsigned short hu;
diff --git a/testing/sensortest/sensortest.c b/testing/sensortest/sensortest.c
index 847db9523..76c004b68 100644
--- a/testing/sensortest/sensortest.c
+++ b/testing/sensortest/sensortest.c
@@ -31,6 +31,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <sys/ioctl.h>
+#include <sys/param.h>
 #include <unistd.h>
 
 #include <nuttx/sensors/sensor.h>
@@ -39,7 +40,6 @@
  * Pre-processor Definitions
  ****************************************************************************/
 
-#define ARRAYSIZE(a)       (sizeof(a) / sizeof(a)[0])
 #define DEVNAME_FMT        "/dev/uorb/sensor_%s"
 #define DEVNAME_MAX        64
 
@@ -317,7 +317,7 @@ int main(int argc, FAR char *argv[])
   if (optind < argc)
     {
       name = argv[optind];
-      for (idx = 0; idx < ARRAYSIZE(g_sensor_info); idx++)
+      for (idx = 0; idx < nitems(g_sensor_info); idx++)
         {
           if (!strncmp(name, g_sensor_info[idx].name,
               strlen(g_sensor_info[idx].name)))
diff --git a/wireless/ieee802154/i8sak/i8sak_main.c 
b/wireless/ieee802154/i8sak/i8sak_main.c
index f7ad5ebea..f052dc0e0 100644
--- a/wireless/ieee802154/i8sak/i8sak_main.c
+++ b/wireless/ieee802154/i8sak/i8sak_main.c
@@ -44,6 +44,7 @@
 #include <fcntl.h>
 #include <unistd.h>
 #include <sys/ioctl.h>
+#include <sys/param.h>
 #include <arpa/inet.h>
 
 #include <nuttx/queue.h>
@@ -102,8 +103,6 @@ static const struct i8sak_command_s g_i8sak_commands[] =
   {"tx",          (CODE void *)i8sak_tx_cmd},
 };
 
-#define NCOMMANDS (sizeof(g_i8sak_commands) / sizeof(struct i8sak_command_s))
-
 static sq_queue_t g_i8sak_free;
 static sq_queue_t g_i8sak_instances;
 static struct i8sak_s g_i8sak_pool[CONFIG_IEEE802154_I8SAK_NINSTANCES];
@@ -893,7 +892,7 @@ int main(int argc, FAR char *argv[])
   /* Find the command in the g_i8sak_command[] list */
 
   i8sakcmd = NULL;
-  for (i = 0; i < NCOMMANDS; i++)
+  for (i = 0; i < nitems(g_i8sak_commands); i++)
     {
       FAR const struct i8sak_command_s *cmd = &g_i8sak_commands[i];
       if (strcmp(argv[argind], cmd->name) == 0)
diff --git a/wireless/iwpan/src/iwpan.c b/wireless/iwpan/src/iwpan.c
index 4c32ee3bf..d4114a03b 100644
--- a/wireless/iwpan/src/iwpan.c
+++ b/wireless/iwpan/src/iwpan.c
@@ -22,6 +22,7 @@
  * Included Files
  ****************************************************************************/
 
+#include <sys/param.h>
 #include <sys/socket.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -94,8 +95,6 @@ static const struct iwpan_command_s g_iwpan_commands[] =
   {"txpwr",   2, (CODE void *)iwpan_txpwr_cmd},
 };
 
-#define NCOMMANDS (sizeof(g_iwpan_commands) / sizeof(struct iwpan_command_s))
-
 /****************************************************************************
  * Private Functions
  ****************************************************************************/
@@ -660,7 +659,7 @@ int main(int argc, FAR char *argv[])
   /* Find the command in the g_iwpan_command[] list */
 
   iwpancmd = NULL;
-  for (i = 0; i < NCOMMANDS; i++)
+  for (i = 0; i < nitems(g_iwpan_commands); i++)
     {
       FAR const struct iwpan_command_s *cmd = &g_iwpan_commands[i];
       if (strcmp(cmdname, cmd->name) == 0)
diff --git a/wireless/wapi/src/wapi.c b/wireless/wapi/src/wapi.c
index 15c5eb89b..f5b35142c 100644
--- a/wireless/wapi/src/wapi.c
+++ b/wireless/wapi/src/wapi.c
@@ -44,6 +44,7 @@
 #include <stdlib.h>
 #include <unistd.h>
 #include <strings.h>
+#include <sys/param.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
@@ -137,8 +138,6 @@ static const struct wapi_command_s g_wapi_commands[] =
  * Pre-processor Definitions
  ****************************************************************************/
 
-#define NCOMMANDS (sizeof(g_wapi_commands) / sizeof(struct wapi_command_s))
-
 /* Maximum length of the PASSPHRASE, refer to IEEE802.11i specification */
 
 #define PASSPHRASE_MAX_LEN  (64)
@@ -1200,7 +1199,7 @@ int main(int argc, FAR char *argv[])
   /* Find the command in the g_wapi_command[] list */
 
   wapicmd = NULL;
-  for (i = 0; i < NCOMMANDS; i++)
+  for (i = 0; i < nitems(g_wapi_commands); i++)
     {
       FAR const struct wapi_command_s *cmd = &g_wapi_commands[i];
       if (strcmp(cmdname, cmd->name) == 0)


Reply via email to