summaryrefslogtreecommitdiffstats
path: root/rtemsbsd/rtems
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-10-07 15:10:20 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-01-10 09:53:31 +0100
commitc40e45b75eb76d79a05c7fa85c1fa9b5c728a12f (patch)
treead4f2519067709f00ab98b3c591186c26dc3a21f /rtemsbsd/rtems
parentuserspace-header-gen.py: Simplify program ports (diff)
downloadrtems-libbsd-c40e45b75eb76d79a05c7fa85c1fa9b5c728a12f.tar.bz2
Update to FreeBSD head 2016-08-23
Git mirror commit 9fe7c416e6abb28b1398fd3e5687099846800cfd.
Diffstat (limited to 'rtemsbsd/rtems')
-rwxr-xr-xrtemsbsd/rtems/generate_kvm_symbols100
-rw-r--r--rtemsbsd/rtems/rtems-kernel-init.c29
-rw-r--r--rtemsbsd/rtems/rtems-kernel-irqs.c2
-rw-r--r--rtemsbsd/rtems/rtems-kernel-jail.c4
-rw-r--r--rtemsbsd/rtems/rtems-kernel-malloc.c3
-rw-r--r--rtemsbsd/rtems/rtems-kernel-mutex.c2
-rw-r--r--rtemsbsd/rtems/rtems-kernel-nexus.c6
-rw-r--r--rtemsbsd/rtems/rtems-kernel-page.c6
-rw-r--r--rtemsbsd/rtems/rtems-kernel-sx.c6
-rw-r--r--rtemsbsd/rtems/rtems-legacy-rtrequest.c3
10 files changed, 101 insertions, 60 deletions
diff --git a/rtemsbsd/rtems/generate_kvm_symbols b/rtemsbsd/rtems/generate_kvm_symbols
index 8097c516..5be75664 100755
--- a/rtemsbsd/rtems/generate_kvm_symbols
+++ b/rtemsbsd/rtems/generate_kvm_symbols
@@ -8,62 +8,76 @@ while read sym
do
symbols="${symbols} ${sym}"
done <<EOF
-_ifnet
-_rtstat
-_rt_tables
-_mrtstat
-_mfchashtbl
-_viftable
-_ipxpcb_list
-_ipxstat
-_spx_istat
-_ddpstat
+_ahstat
+_arpstat
+_carpstats
+_clust_hiwm
+_clust_lowm
_ddpcb
-_ngsocklist
-_ip6stat
+_ddpstat
+_divcbinfo
+_espstat
_icmp6stat
+_icmpstat
+_ifnet
+_igmpstat
+_ip6stat
+_ipcompstat
_ipsec4stat
_ipsec6stat
-_pim6stat
-_mrt6stat
-_mf6ctable
-_mif6table
-_pfkeystat
+_ipstat
+_ipxpcb_list
+_ipxstat
_mbstat
+_mb_statpcpu
_mbtypes
+_mbuf_hiwm
+_mbuf_lowm
+_mf6ctable
+_mfchashtbl
+_mfctablesize
+_mif6table
+_mrt6stat
+_mrtstat
+_netisr_bindthreads
+_netisr_defaultqlimit
+_netisr_dispatch_policy
+_netisr_maxprot
+_netisr_maxqlimit
+_netisr_maxthreads
+_netisr_proto
+_ngsocklist
_nmbclusters
_nmbufs
-_mbuf_hiwm
-_clust_hiwm
-_smp_cpus
+_nws
+_nws_array
+_nws_count
_pagesize
-_mb_statpcpu
-_rttrash
-_mbuf_lowm
-_clust_lowm
-_carpstats
+_pfkeystat
_pfsyncstats
-_ahstat
-_espstat
-_ipcompstat
-_tcpstat
-_udpstat
-_ipstat
-_icmpstat
-_igmpstat
+_pim6stat
_pimstat
+_rip6stat
+_ripcbinfo
+_rtree
+_rtstat
+_rt_tables
+_rttrash
+_sctpstat
+_sfstat
+_smp_cpus
+_spx_istat
_tcbinfo
+_tcps_states
+_tcpstat
_udbinfo
-_divcbinfo
-_ripcbinfo
+_udpstat
_unp_count
-_unp_gencnt
_unp_dhead
+_unp_gencnt
_unp_shead
-_rip6stat
-_sctpstat
-_mfctablesize
-_arpstat
+_unp_sphead
+_viftable
EOF
cat <<EOF
@@ -85,8 +99,7 @@ cat <<EOF
EOF
for sym in ${symbols}
do
- no_underscore=`echo $sym | sed -e 's/^_//' `
- echo "extern int ${no_underscore} __attribute((weak));"
+ echo "extern int _bsd${sym} __attribute((weak));"
done
cat <<EOF
@@ -99,8 +112,7 @@ const kvm_symval_t rtems_kvm_symbols[] = {
EOF
for sym in ${symbols}
do
- no_underscore=`echo $sym | sed -e 's/^_//' `
- echo " { \"${sym}\", (uintptr_t) &${no_underscore} },"
+ echo " { \"${sym}\", (uintptr_t) &_bsd${sym} },"
done
cat <<EOF
diff --git a/rtemsbsd/rtems/rtems-kernel-init.c b/rtemsbsd/rtems/rtems-kernel-init.c
index a60024a0..d6ba174c 100644
--- a/rtemsbsd/rtems/rtems-kernel-init.c
+++ b/rtemsbsd/rtems/rtems-kernel-init.c
@@ -69,6 +69,14 @@ void mi_startup(void);
int hz;
int tick;
+sbintime_t tick_sbt;
+struct bintime bt_timethreshold;
+struct bintime bt_tickthreshold;
+sbintime_t sbt_timethreshold;
+sbintime_t sbt_tickthreshold;
+struct bintime tc_tick_bt;
+sbintime_t tc_tick_sbt;
+int tc_precexp;
int maxusers; /* base tunable */
static SYSCTL_NODE(_kern, OID_AUTO, smp, CTLFLAG_RD|CTLFLAG_CAPRD, NULL,
@@ -91,6 +99,18 @@ volatile uint32_t _Watchdog_Ticks_since_boot;
extern volatile int32_t _bsd_ticks
__attribute__ ((__alias__("_Watchdog_Ticks_since_boot")));
+__attribute__((__weak__)) void _arc4random_getentropy_fail(void)
+{
+
+}
+
+__attribute__((__weak__)) int getentropy(void *buf, size_t n)
+{
+
+ memset(buf, 0, n);
+ return (0);
+}
+
rtems_status_code
rtems_bsd_initialize(void)
{
@@ -99,6 +119,15 @@ rtems_bsd_initialize(void)
hz = (int) rtems_clock_get_ticks_per_second();
tick = 1000000 / hz;
+ tick_sbt = SBT_1S / hz;
+ FREQ2BT(hz, &tc_tick_bt);
+ tc_tick_sbt = bttosbt(tc_tick_bt);
+ tc_precexp = 31;
+ bt_timethreshold.sec = INT_MAX;
+ bt_timethreshold.frac = ~(uint64_t)0;
+ bt_tickthreshold = bt_timethreshold;
+ sbt_timethreshold = bttosbt(bt_timethreshold);
+ sbt_tickthreshold = bttosbt(bt_tickthreshold);
maxusers = 1;
maxid_maxcpus = (int) rtems_get_processor_count();
diff --git a/rtemsbsd/rtems/rtems-kernel-irqs.c b/rtemsbsd/rtems/rtems-kernel-irqs.c
index 4331c05d..41331b57 100644
--- a/rtemsbsd/rtems/rtems-kernel-irqs.c
+++ b/rtemsbsd/rtems/rtems-kernel-irqs.c
@@ -60,4 +60,4 @@ irqs_sysinit(void)
);
BSD_ASSERT(status == RTEMS_SUCCESSFUL);
}
-SYSINIT(irqs, SI_SUB_SETTINGS, SI_ORDER_ANY, irqs_sysinit, NULL);
+SYSINIT(irqs, SI_SUB_TUNABLES, SI_ORDER_ANY, irqs_sysinit, NULL);
diff --git a/rtemsbsd/rtems/rtems-kernel-jail.c b/rtemsbsd/rtems/rtems-kernel-jail.c
index 663c9348..2499846f 100644
--- a/rtemsbsd/rtems/rtems-kernel-jail.c
+++ b/rtemsbsd/rtems/rtems-kernel-jail.c
@@ -162,7 +162,7 @@ prison_saddrsel_ip6(struct ucred *cred, struct in6_addr *ia6)
* doesn't allow IPv4. Address passed in in NBO.
*/
int
-prison_check_ip4(struct ucred *cred, struct in_addr *ia)
+prison_check_ip4(const struct ucred *cred, const struct in_addr *ia)
{
return 0;
}
@@ -173,7 +173,7 @@ prison_check_ip4(struct ucred *cred, struct in_addr *ia)
* NOTE: RTEMS does not restrict via a jail so return 0.
*/
int
-prison_check_ip6(struct ucred *cred, struct in6_addr *ia6)
+prison_check_ip6(const struct ucred *cred, const struct in6_addr *ia6)
{
return 0;
}
diff --git a/rtemsbsd/rtems/rtems-kernel-malloc.c b/rtemsbsd/rtems/rtems-kernel-malloc.c
index 3c9d877f..b61f2911 100644
--- a/rtemsbsd/rtems/rtems-kernel-malloc.c
+++ b/rtemsbsd/rtems/rtems-kernel-malloc.c
@@ -50,9 +50,6 @@ MALLOC_DEFINE(M_DEVBUF, "devbuf", "device driver memory");
MALLOC_DEFINE(M_TEMP, "temp", "misc temporary data buffers");
-MALLOC_DEFINE(M_IP6OPT, "ip6opt", "IPv6 options");
-MALLOC_DEFINE(M_IP6NDP, "ip6ndp", "IPv6 Neighbor Discovery");
-
MALLOC_DEFINE(M_IOV, "iov", "large iov's");
void
diff --git a/rtemsbsd/rtems/rtems-kernel-mutex.c b/rtemsbsd/rtems/rtems-kernel-mutex.c
index 84ea9e53..8e8e1cd5 100644
--- a/rtemsbsd/rtems/rtems-kernel-mutex.c
+++ b/rtemsbsd/rtems/rtems-kernel-mutex.c
@@ -146,7 +146,7 @@ _mtx_lock_flags(struct mtx *m, int opts, const char *file, int line)
}
int
-_mtx_trylock(struct mtx *m, int opts, const char *file, int line)
+mtx_trylock_flags_(struct mtx *m, int opts, const char *file, int line)
{
return (rtems_bsd_mutex_trylock(&m->lock_object, &m->mutex));
}
diff --git a/rtemsbsd/rtems/rtems-kernel-nexus.c b/rtemsbsd/rtems/rtems-kernel-nexus.c
index a9c2427a..04638cca 100644
--- a/rtemsbsd/rtems/rtems-kernel-nexus.c
+++ b/rtemsbsd/rtems/rtems-kernel-nexus.c
@@ -121,9 +121,9 @@ nexus_probe(device_t dev)
}
static bool
-nexus_get_start(const rtems_bsd_device *nd, int type, u_long *start)
+nexus_get_start(const rtems_bsd_device *nd, int type, rman_res_t *start)
{
- u_long sr = *start;
+ u_long sr = (u_long)*start;
size_t i;
for (i = 0; i < nd->resource_count; ++i) {
@@ -141,7 +141,7 @@ nexus_get_start(const rtems_bsd_device *nd, int type, u_long *start)
static struct resource *
nexus_alloc_resource(device_t bus, device_t child, int type, int *rid,
- u_long start, u_long end, u_long count, u_int flags)
+ rman_res_t start, rman_res_t end, rman_res_t count, u_int flags)
{
struct resource *res = NULL;
struct rman *rm;
diff --git a/rtemsbsd/rtems/rtems-kernel-page.c b/rtemsbsd/rtems/rtems-kernel-page.c
index cfcbb1a0..8f8c235a 100644
--- a/rtemsbsd/rtems/rtems-kernel-page.c
+++ b/rtemsbsd/rtems/rtems-kernel-page.c
@@ -94,10 +94,12 @@ rtems_bsd_page_alloc(uintptr_t size_in_bytes, int wait)
mtx_unlock(&page_heap_mtx);
#ifdef INVARIANTS
- if (addr != NULL) {
+ wait |= M_ZERO;
+#endif
+
+ if (addr != NULL && (wait & M_ZERO) != 0) {
memset(addr, 0, size_in_bytes);
}
-#endif
return (addr);
}
diff --git a/rtemsbsd/rtems/rtems-kernel-sx.c b/rtemsbsd/rtems/rtems-kernel-sx.c
index 84523a9a..ea0cf04e 100644
--- a/rtemsbsd/rtems/rtems-kernel-sx.c
+++ b/rtemsbsd/rtems/rtems-kernel-sx.c
@@ -146,7 +146,7 @@ _sx_xlock(struct sx *sx, int opts, const char *file, int line)
}
int
-_sx_try_xlock(struct sx *sx, const char *file, int line)
+sx_try_xlock_(struct sx *sx, const char *file, int line)
{
return (rtems_bsd_mutex_trylock(&sx->lock_object, &sx->mutex));
}
@@ -158,13 +158,13 @@ _sx_xunlock(struct sx *sx, const char *file, int line)
}
int
-_sx_try_upgrade(struct sx *sx, const char *file, int line)
+sx_try_upgrade_(struct sx *sx, const char *file, int line)
{
return (1);
}
void
-_sx_downgrade(struct sx *sx, const char *file, int line)
+sx_downgrade_(struct sx *sx, const char *file, int line)
{
/* Do nothing */
}
diff --git a/rtemsbsd/rtems/rtems-legacy-rtrequest.c b/rtemsbsd/rtems/rtems-legacy-rtrequest.c
index e1269be9..2223ab09 100644
--- a/rtemsbsd/rtems/rtems-legacy-rtrequest.c
+++ b/rtemsbsd/rtems/rtems-legacy-rtrequest.c
@@ -44,7 +44,8 @@ rtems_bsdnet_rtrequest(int req, struct sockaddr *dst, struct sockaddr *gateway,
{
int error;
- error = rtrequest(req, dst, gateway, netmask, flags, net_nrt);
+ error = rtrequest_fib(req, dst, gateway, netmask, flags, net_nrt,
+ BSD_DEFAULT_FIB);
if (error != 0) {
errno = error;