Commit Graph

151 Commits

Author SHA1 Message Date
Sebastian Huber
1d99262f59 libkern.h: Avoid call overhead for bcmp() 2018-08-09 07:59:38 +02:00
Christian Mauderer
9ea8664ba2 random: Implement read_random via getentropy. 2018-08-01 09:55:27 +02:00
Sebastian Huber
137250239e Make sure CALLOUT_DFRMIGRATION is not used
This flag supports the callout migration in FreeBSD.  This feature is
not supported by libbsd.
2018-07-26 14:49:35 +02:00
Sebastian Huber
e37f03e47a Make sure CALLOUT_PROCESSED is not used
This flag is only used in combination with the callout expire list,
which we do not use in libbsd.
2018-07-26 14:35:56 +02:00
Sebastian Huber
6d9d7b1956 Critical bug fix for callouts
FreeBSD has two callout executors, one in software and one in hardware
interrupt context.  In libbsd, all callouts are executed by the timer
server.  Entirely remove the different execution contexts for libbsd.
Previously, this was not properly done which could result an invalid
callout_drain() sequence leading to system memory corruption.
2018-07-26 14:12:46 +02:00
Sebastian Huber
94b5368388 Avoid malloc() in getsockaddr()
The getsockaddr() function is used to allocate a struct sockaddr of the
right length and initialize it with userspace provided data.  It is used
for the connect(), bind() and sendit() family functions.  In particular,
the sendit() function is used by the UDP send functions.  This means
each UDP send needs a malloc() and free() invocation.  This is a
performance problem in RTEMS (first-fit heap) and may lead to heap
fragmentation.  Replace the malloc() allocation with a stack allocation.
This requires SOCK_MAXADDRLEN (= 255) of additional stack space for
libbsd.

A further optimization would be to get rid of the stack copy of the
socket address.  However, this would require to check each consumer of
the address to ensure that it is not modified.
2018-07-04 07:20:37 +02:00
Sebastian Huber
4e17f143de DEVICE(9): Fix __BUS_ACCESSOR() 2018-01-08 14:01:02 +01:00
Sebastian Huber
c360b1a2dc Revert "RWLOCK(9): Add reader/writer lock implementation"
This was accidentally committed.

This reverts commit 97a98f6cd7.
2017-11-17 10:49:59 +01:00
Sebastian Huber
b5822c2a0a Revert "SX(9): Implement with reader/writer lock"
This was accidentally committed.

This reverts commit cc7a8d87e7.
2017-11-17 10:49:31 +01:00
Sebastian Huber
cc7a8d87e7 SX(9): Implement with reader/writer lock 2017-11-16 09:02:28 +01:00
Sebastian Huber
97a98f6cd7 RWLOCK(9): Add reader/writer lock implementation 2017-11-16 09:02:24 +01:00
Sebastian Huber
06f06d4fdf Fix warning 2017-11-10 14:19:29 +01:00
Christian Mauderer
e7f3260886 freebsd/bus: Check return value of bus_accessor. 2017-11-10 14:13:18 +01:00
Sebastian Huber
72d5fa11a8 Fix reference counting for file descriptors
Update #3132.
2017-11-10 11:01:54 +01:00
Sebastian Huber
f7f3c4b0de blist: Import from FreeBSD 2017-10-20 14:59:55 +02:00
Sebastian Huber
62c8ca0ead Fix INVARIANTS support 2017-10-20 14:59:55 +02:00
Sebastian Huber
894c965d95 Support reference counting for file descriptors
Close #3132.
2017-09-15 12:46:57 +02:00
Sebastian Huber
666a56883a Include missing <string.h> and <limits.h>
Fix warnings.

Update #2132.
Update #2133.
2017-08-25 14:23:50 +02:00
Sichen Zhao
bd3c01a126 Import am335x usb driver file from FreeBSD. 2017-07-13 07:30:02 +02:00
Sebastian Huber
9128d209e5 libkern.h: Add ffsll() 2017-07-10 08:33:15 +02:00
Sebastian Huber
127296ce97 libkern.h: Avoid conflict with <strings.h> 2017-07-10 08:27:47 +02:00
Sebastian Huber
3c967ca238 Use <sys/lock.h> provided by Newlib 2017-06-08 13:20:09 +02:00
Sebastian Huber
02373194fe Update due to Newlib 2017-06-07 changes
The following files are now provided by Newlib:

  * arpa/inet.h
  * net/if.h
  * netinet/in.h
  * netinet/tcp.h
  * sys/socket.h
  * sys/uio.h
  * sys/un.h

The <sys/param.h> and <sys/cpuset.h> are now compatible enough to be
used directly.

Update #2833.
2017-06-08 13:19:54 +02:00
Kevin Kirspel
427ee3e9eb Redirect FREEBSD's kern_yield to RTEMS sched_yield 2017-05-19 07:24:30 +02:00
Kevin Kirspel
fb2aa6ea99 Add bitcount inlinesfor RTEMS. These are found in FREEBSDs types.h 2017-05-19 07:24:30 +02:00
Kevin Kirspel
3e7de301c1 Add FREEBSD USB input device files 2017-05-19 07:24:29 +02:00
Kevin Kirspel
41d2784207 Add FREEBSD keyboard driver files 2017-05-19 07:24:29 +02:00
Kevin Kirspel
817cbf7201 devfs: Fix some issues
Fix issue with cdev private data usage with RTEMS iop structure. Add
support for cdev alias device names. Add support for cdev fstat.
2017-05-12 14:20:33 +02:00
Kevin Kirspel
4a8f953f62 Updating FREEBSD for tty support 2017-05-11 11:15:41 +02:00
Kevin Kirspel
f6c52e086d Adding tty support files from FREEBSD tree 2017-05-11 11:15:41 +02:00
Sebastian Huber
de8a76da2f Update to FreeBSD head 2017-04-04
Git mirror commit 642b174daddbd0efd9bb5f242c43f4ab4db6869f.
2017-04-04 14:46:23 +02:00
Sebastian Huber
f0dd0c506a FDT(4): Import from FreeBSD 2017-03-08 09:00:03 +01:00
Sebastian Huber
18a623e5b2 Provide strtoq() and strtouq() 2017-03-06 12:09:54 +01:00
Kevin Kirspel
ea395a736d Add ordered Nexus devices
Add support for ordering the initialization of Nexus devices. This can
be used to make sure a device is initialized before a dependant device.
2017-02-14 09:36:40 +01:00
Sebastian Huber
1fd5083234 SLEEPQUEUE(9): Add wmesg to thread wait info 2017-01-31 09:50:45 +01:00
Sebastian Huber
ee94f8a8ea rtems-bsd-mutex: Use thread queue name 2017-01-31 09:49:49 +01:00
Christian Mauderer
2e8dd24b7c firmware: Import from FreeBSD. 2017-01-17 12:50:57 +01:00
Sebastian Huber
172f2acb2b Use thread name support
Update #2858.
2017-01-13 09:20:43 +01:00
Sebastian Huber
0577772720 Update to FreeBSD head 2017-01-09
Git mirror commit 1f8e4a995a6ede4bdb24e6d335ccda2bdb0175ab.
2017-01-10 11:03:27 +01:00
Sebastian Huber
75b706fde4 Update to FreeBSD head 2016-12-10
Git mirror commit 80c55f08a05ab3b26a73b226ccb56adc3122a55c.
2017-01-10 09:53:34 +01:00
Sebastian Huber
b86b09782a Fix warings in <sys/seq.h> 2017-01-10 09:53:33 +01:00
Sebastian Huber
11750f1f83 Fix warnings in <sys/refcount.h> 2017-01-10 09:53:33 +01:00
Sebastian Huber
2956924a34 Fix atomic ops in <sys/buf_ring.h> 2017-01-10 09:53:33 +01:00
Sebastian Huber
c40e45b75e Update to FreeBSD head 2016-08-23
Git mirror commit 9fe7c416e6abb28b1398fd3e5687099846800cfd.
2017-01-10 09:53:31 +01:00
Kevin Kirspel
b1580fb039 PIPE(2): Port to RTEMS 2016-12-23 08:26:14 +01:00
Kevin Kirspel
6959face72 PIPE(2): Import from FreeBSD 2016-12-23 08:24:12 +01:00
Sebastian Huber
cc8f00d614 Fix warnings for linker sets 2016-11-09 09:56:01 +01:00
Sebastian Huber
617dc0f5a1 Really robust linker sets
The previous attempt to fix this issue failed.

See also:

https://gcc.gnu.org/ml/gcc/2016-09/msg00114.htm
2016-11-09 09:13:48 +01:00
Sebastian Huber
ed499fab5b More robust linker sets
See also:

https://gcc.gnu.org/ml/gcc/2016-09/msg00114.html
2016-10-26 14:38:23 +02:00
Sebastian Huber
7eb064cda1 Make <sys/proc.h> self-sufficient 2016-10-24 08:08:59 +02:00