diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-10-07 15:10:20 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-01-10 09:53:31 +0100 |
commit | c40e45b75eb76d79a05c7fa85c1fa9b5c728a12f (patch) | |
tree | ad4f2519067709f00ab98b3c591186c26dc3a21f /rtemsbsd/rtems | |
parent | userspace-header-gen.py: Simplify program ports (diff) | |
download | rtems-libbsd-c40e45b75eb76d79a05c7fa85c1fa9b5c728a12f.tar.bz2 |
Update to FreeBSD head 2016-08-23
Git mirror commit 9fe7c416e6abb28b1398fd3e5687099846800cfd.
Diffstat (limited to 'rtemsbsd/rtems')
-rwxr-xr-x | rtemsbsd/rtems/generate_kvm_symbols | 100 | ||||
-rw-r--r-- | rtemsbsd/rtems/rtems-kernel-init.c | 29 | ||||
-rw-r--r-- | rtemsbsd/rtems/rtems-kernel-irqs.c | 2 | ||||
-rw-r--r-- | rtemsbsd/rtems/rtems-kernel-jail.c | 4 | ||||
-rw-r--r-- | rtemsbsd/rtems/rtems-kernel-malloc.c | 3 | ||||
-rw-r--r-- | rtemsbsd/rtems/rtems-kernel-mutex.c | 2 | ||||
-rw-r--r-- | rtemsbsd/rtems/rtems-kernel-nexus.c | 6 | ||||
-rw-r--r-- | rtemsbsd/rtems/rtems-kernel-page.c | 6 | ||||
-rw-r--r-- | rtemsbsd/rtems/rtems-kernel-sx.c | 6 | ||||
-rw-r--r-- | rtemsbsd/rtems/rtems-legacy-rtrequest.c | 3 |
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; |