[rtems-libbsd commit] Add RTEMS_BSD_CONFIG_DOMAIN_PAGE_MBUFS_SIZE.

Chris Johns chrisj at rtems.org
Thu Jun 30 01:43:35 UTC 2016


Module:    rtems-libbsd
Branch:    master
Commit:    f01b1f7209230dc47b1edc315e78a608062aad16
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=f01b1f7209230dc47b1edc315e78a608062aad16

Author:    Chris Johns <chrisj at rtems.org>
Date:      Thu Jun 30 11:42:49 2016 +1000

Add RTEMS_BSD_CONFIG_DOMAIN_PAGE_MBUFS_SIZE.

The domain allocator page abd mbuf size can be configured by the
user using RTEMS_BSD_CONFIG_DOMAIN_PAGE_MBUFS_SIZE.

---

 libbsd.py                                          |  1 +
 libbsd_waf.py                                      |  1 +
 rtemsbsd/include/machine/rtems-bsd-config.h        | 70 ++++++++++++++--------
 rtemsbsd/include/rtems/bsd/bsd.h                   |  6 ++
 rtemsbsd/rtems/rtems-bsd-allocator-domain-size.c   | 43 +++++++++++++
 .../rtems/rtems-bsd-get-allocator-domain-size.c    |  2 -
 testsuite/include/rtems/bsd/test/default-init.h    |  5 --
 .../include/rtems/bsd/test/default-network-init.h  | 20 +++----
 .../include/rtems/bsd/test/network-config.h.in     |  2 +-
 9 files changed, 107 insertions(+), 43 deletions(-)

diff --git a/libbsd.py b/libbsd.py
index 13dad6d..e116d05 100755
--- a/libbsd.py
+++ b/libbsd.py
@@ -58,6 +58,7 @@ def rtems(mm):
             'local/mmcbr_if.c',
             'rtems/ipsec_get_policylen.c',
             'rtems/rtems-bsd-arp-processor.c',
+            'rtems/rtems-bsd-allocator-domain-size.c',
             'rtems/rtems-bsd-get-allocator-domain-size.c',
             'rtems/rtems-bsd-get-ethernet-addr.c',
             'rtems/rtems-bsd-get-mac-address.c',
diff --git a/libbsd_waf.py b/libbsd_waf.py
index 9ea85be..4414f1d 100644
--- a/libbsd_waf.py
+++ b/libbsd_waf.py
@@ -1049,6 +1049,7 @@ def build(bld):
               'rtemsbsd/pppd/upap.c',
               'rtemsbsd/pppd/utils.c',
               'rtemsbsd/rtems/ipsec_get_policylen.c',
+              'rtemsbsd/rtems/rtems-bsd-allocator-domain-size.c',
               'rtemsbsd/rtems/rtems-bsd-arp-processor.c',
               'rtemsbsd/rtems/rtems-bsd-get-allocator-domain-size.c',
               'rtemsbsd/rtems/rtems-bsd-get-ethernet-addr.c',
diff --git a/rtemsbsd/include/machine/rtems-bsd-config.h b/rtemsbsd/include/machine/rtems-bsd-config.h
index 8bab767..1f8876c 100644
--- a/rtemsbsd/include/machine/rtems-bsd-config.h
+++ b/rtemsbsd/include/machine/rtems-bsd-config.h
@@ -28,12 +28,13 @@
  *
  * Configuration defines:
  *
- *  RTEMS_BSD_CONFIG_NET_PF_UNIX     : Packet Filter.
- *  RTEMS_BSD_CONFIG_NET_IF_LAGG     : Link Aggregetion and Failover.
- *  RTEMS_BSD_CONFIG_NET_IF_VLAN     : Virtual LAN.
- *  RTEMS_BSD_CONFIG_SERVICE_FTPD    : File Transfer Protocol (FTP).
- *  RTEMS_BSD_CONFIG_BSP_CONFIG      : Configure default BSP devices.
- *  RTEMS_BSD_CONFIG_INIT            : Configure the LibBSD support.
+ *  RTEMS_BSD_CONFIG_DOMAIN_PAGE_MBUFS_SIZE : Memory in bytes for mbufs
+ *  RTEMS_BSD_CONFIG_NET_PF_UNIX            : Packet Filter.
+ *  RTEMS_BSD_CONFIG_NET_IF_LAGG            : Link Aggregetion and Failover.
+ *  RTEMS_BSD_CONFIG_NET_IF_VLAN            : Virtual LAN.
+ *  RTEMS_BSD_CONFIG_SERVICE_FTPD           : File Transfer Protocol (FTP).
+ *  RTEMS_BSD_CONFIG_BSP_CONFIG             : Configure default BSP devices.
+ *  RTEMS_BSD_CONFIG_INIT                   : Configure the LibBSD support.
  *
  * Rules for adding to this file:
  *  1. All user visible defines start with 'RTEMS_BSD_CONFIG_'.
@@ -63,11 +64,25 @@
  */
 #include <machine/rtems-bsd-rc-conf-services.h>
 
+/*
+ * Include the RTEMS BSD support.
+ */
+#include <rtems/bsd/bsd.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
 /*
+ * BSD Kernel configuration.
+ */
+#if defined(RTEMS_BSD_CONFIG_DOMAIN_PAGE_MBUFS_SIZE)
+  #define RTEMS_BSD_CFGDECL_DOMAIN_PAGE_MBUFS_SIZE RTEMS_BSD_CONFIG_DOMAIN_PAGE_MBUFS_SIZE
+#else
+  #define RTEMS_BSD_CFGDECL_DOMAIN_PAGE_MBUFS_SIZE RTEMS_BSD_ALLOCATOR_DOMAIN_PAGE_MBUF_DEFAULT
+#endif
+
+/*
  * BSD Kernel modules.
  */
 
@@ -106,24 +121,31 @@ extern "C" {
  * Configure the system.
  */
 #if defined(RTEMS_BSD_CONFIG_INIT)
- /*
-  * If a BSP configuration is requested include the Nexus bus BSP configuration.
-  */
- #if defined(RTEMS_BSD_CONFIG_BSP_CONFIG)
-  #include <bsp/nexus-devices.h>
- #endif
-
- /*
-  * Create the networking modules and interfaces.
-  */
- RTEMS_BSD_CFGDECL_NET_PF_UNIX;
- RTEMS_BSD_CFGDECL_IF_LAGG;
- RTEMS_BSD_CFGDECL_NET_IF_VLAN;
-
- /*
-  * Create the services.
-  */
- RTEMS_BSD_CFGDECL_FTPD;
+  /*
+   * Configure the domain allocation memory size.
+   */
+  uintptr_t rtems_bsd_allocator_domain_page_mbuf_size = \
+    RTEMS_BSD_CFGDECL_DOMAIN_PAGE_MBUFS_SIZE;
+
+  /*
+   * If a BSP configuration is requested include the Nexus bus BSP
+   * configuration.
+   */
+  #if defined(RTEMS_BSD_CONFIG_BSP_CONFIG)
+    #include <bsp/nexus-devices.h>
+  #endif /* RTEMS_BSD_CONFIG_BSP_CONFIG */
+
+  /*
+   * Create the networking modules and interfaces.
+   */
+  RTEMS_BSD_CFGDECL_NET_PF_UNIX;
+  RTEMS_BSD_CFGDECL_IF_LAGG;
+  RTEMS_BSD_CFGDECL_NET_IF_VLAN;
+
+  /*
+   * Create the services.
+   */
+  RTEMS_BSD_CFGDECL_FTPD;
 #endif /* RTEMS_BSD_CONFIG_INIT */
 
 #ifdef __cplusplus
diff --git a/rtemsbsd/include/rtems/bsd/bsd.h b/rtemsbsd/include/rtems/bsd/bsd.h
index f687eaf..2b09b18 100644
--- a/rtemsbsd/include/rtems/bsd/bsd.h
+++ b/rtemsbsd/include/rtems/bsd/bsd.h
@@ -52,6 +52,12 @@
 extern "C" {
 #endif /* __cplusplus */
 
+/*
+ * The default memory size. Do not change, use
+ * RTEMS_BSD_CONFIG_DOMAIN_PAGE_MBUFS_SIZE to override for your application.
+ */
+#define RTEMS_BSD_ALLOCATOR_DOMAIN_PAGE_MBUF_DEFAULT (8 * 1024 * 1024)
+
 typedef enum {
 	RTEMS_BSD_RES_IRQ = 1,
 	RTEMS_BSD_RES_MEMORY = 3
diff --git a/rtemsbsd/rtems/rtems-bsd-allocator-domain-size.c b/rtemsbsd/rtems/rtems-bsd-allocator-domain-size.c
new file mode 100644
index 0000000..089ba74
--- /dev/null
+++ b/rtemsbsd/rtems/rtems-bsd-allocator-domain-size.c
@@ -0,0 +1,43 @@
+/**
+ * @file
+ *
+ * @ingroup rtems_bsd_rtems
+ *
+ * @brief The rtems_bsd_allocator_domain_page_mbuf_size variable with the
+ *        default for those users who do not use <rtems-bsd-config.h>.
+ */
+
+/*
+ * Copyright (c) 2015 embedded brains GmbH.  All rights reserved.
+ *
+ *  embedded brains GmbH
+ *  Dornierstr. 4
+ *  82178 Puchheim
+ *  Germany
+ *  <rtems at embedded-brains.de>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <rtems/bsd/bsd.h>
+
+uintptr_t rtems_bsd_allocator_domain_page_mbuf_size = RTEMS_BSD_ALLOCATOR_DOMAIN_PAGE_MBUF_DEFAULT;
diff --git a/rtemsbsd/rtems/rtems-bsd-get-allocator-domain-size.c b/rtemsbsd/rtems/rtems-bsd-get-allocator-domain-size.c
index a52ee50..d94a719 100644
--- a/rtemsbsd/rtems/rtems-bsd-get-allocator-domain-size.c
+++ b/rtemsbsd/rtems/rtems-bsd-get-allocator-domain-size.c
@@ -39,8 +39,6 @@
 
 #include <rtems/bsd/bsd.h>
 
-uintptr_t rtems_bsd_allocator_domain_page_mbuf_size = 8 * 1024 * 1024;
-
 uintptr_t
 rtems_bsd_get_allocator_domain_size(rtems_bsd_allocator_domain domain)
 {
diff --git a/testsuite/include/rtems/bsd/test/default-init.h b/testsuite/include/rtems/bsd/test/default-init.h
index a23b1ee..ab2ab3a 100644
--- a/testsuite/include/rtems/bsd/test/default-init.h
+++ b/testsuite/include/rtems/bsd/test/default-init.h
@@ -53,11 +53,6 @@ rtems_task Init(
   early_initialization();
 #endif
 
-#ifdef DEFAULT_NETWORK_PAGE_MBUFS_SIZE
-  rtems_bsd_allocator_domain_page_mbuf_size =
-    DEFAULT_NETWORK_PAGE_MBUFS_SIZE;
-#endif
-
   /* Let other tasks run to complete background work */
   default_set_self_prio( RTEMS_MAXIMUM_PRIORITY - 1 );
 
diff --git a/testsuite/include/rtems/bsd/test/default-network-init.h b/testsuite/include/rtems/bsd/test/default-network-init.h
index b627b1c..d009f0f 100644
--- a/testsuite/include/rtems/bsd/test/default-network-init.h
+++ b/testsuite/include/rtems/bsd/test/default-network-init.h
@@ -263,11 +263,6 @@ Init(rtems_task_argument arg)
 	assert(sc == RTEMS_SUCCESSFUL);
 #endif
 
-#ifdef DEFAULT_NETWORK_PAGE_MBUFS_SIZE
-	rtems_bsd_allocator_domain_page_mbuf_size =
-	  DEFAULT_NETWORK_PAGE_MBUFS_SIZE;
-#endif
-
 	rtems_bsd_initialize();
 
 #ifndef DEFAULT_NETWORK_NO_INTERFACE_0
@@ -295,13 +290,16 @@ Init(rtems_task_argument arg)
 	assert(0);
 }
 
-#include <machine/rtems-bsd-sysinit.h>
-
-SYSINIT_NEED_NET_PF_UNIX;
-SYSINIT_NEED_NET_IF_LAGG;
-SYSINIT_NEED_NET_IF_VLAN;
+/*
+ * Configure LibBSD.
+ */
+#define RTEMS_BSD_CONFIG_NET_PF_UNIX
+#define RTEMS_BSD_CONFIG_NET_IF_LAGG
+#define RTEMS_BSD_CONFIG_NET_IF_VLAN
+#define RTEMS_BSD_CONFIG_BSP_CONFIG
+#define RTEMS_BSD_CONFIG_INIT
 
-#include <bsp/nexus-devices.h>
+#include <machine/rtems-bsd-config.h>
 
 #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
 #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
diff --git a/testsuite/include/rtems/bsd/test/network-config.h.in b/testsuite/include/rtems/bsd/test/network-config.h.in
index eca4241..34c48b4 100644
--- a/testsuite/include/rtems/bsd/test/network-config.h.in
+++ b/testsuite/include/rtems/bsd/test/network-config.h.in
@@ -47,7 +47,7 @@
 #endif
 
 #if defined(LIBBSP_I386_PC386_BSP_H)
-#define DEFAULT_NETWORK_PAGE_MBUFS_SIZE (64 * 1024 * 1024)
+#define RTEMS_BSD_CONFIG_DOMAIN_PAGE_MBUFS_SIZE (64 * 1024 * 1024)
 #endif
 
 #define NET_CFG_SELF_IP "@NET_CFG_SELF_IP@"




More information about the vc mailing list