Commit graph

146 commits

Author SHA1 Message Date
David van Moolenbroek
3814aed560 libsa: add string precision support to vprintf
We already had a hack to ignore the precision, but the ACPI driver
requires an actual implementation--it prints garbage at the end of
some strings otherwise.  This patch adds support for precision for
strings only, limiting printing to the given number of characters.
For all other specifiers, precision is still unsupported.

Change-Id: I1d41fc70a0d0494db695c22ba609262a50b86e08
2015-02-10 13:47:28 +00:00
David van Moolenbroek
3b0299dd65 bootloader: pass memory map to kernel
Previously, the bootloader would only provide a single memory range.
At least on VirtualBox, this memory range includes the ACPI tables,
which the kernel then happily overwrites when executing VM.  Much of
the infrastructure to use a fullblown memory map is already in place;
this patch adds the last (and strangely missing) bit of generating
the memory map in a multiboot-compatible way.

It should be noted that both the bootloader and the kernel actually
violate the multiboot specification by not packing the structure for
the memory ranges.  This is a NetBSD bug, but it is also a nonissue
for (our) practical purposes.  It can be fixed without changing the
code added in this patch.

Change-Id: I7c0a307a8a8133239531e1d2b80f376849f90247
2015-02-10 13:47:28 +00:00
Ben Gras
5ae1a533c7 ARM: can build with llvm, switch to EABI
. bitcode fixes
	. switch to compiler-rt instead of netbsd libc functions
	  or libgcc for support functions for both x86 and arm
	. minor build fixes
	. allow  build with llvm without crossbuilding llvm itself
	. can now build minix/arm using llvm and eabi - without C++
	  support for now (hence crossbuilding llvm itself is turned off
	  for minix/arm)

Change-Id: If5c44ef766f5b4fc4394d4586ecc289927a0d6eb
2014-12-12 13:04:56 +01:00
Ben Gras
ad8bffad67 ARM: remove minix type exception
. clean fix for minix/arm llvm build problem
	. was needed for gcc but isn't any more it seems

Change-Id: Iea1edffbe3149c5c954ae009a388b7ea492f3d1a
2014-12-10 16:46:29 +01:00
Lionel Sambuc
971bb1a587 Importing external/mit/xorg support rules
Change-Id: Ib11d8659485a444797bf3a2118182a1d4e316b50
2014-11-10 14:43:29 +01:00
Lionel Sambuc
5d8311761a Turn PCI into a character driver
Change-Id: Ia9c83af4d52e82e845b6a847c3e82e33d1920ae0
2014-11-10 14:43:27 +01:00
Lionel Sambuc
3641562f44 Use NetBSD PCI ID DB
Change-Id: I3fcbce5983b4e0b45e6cc8fac076947c6a84928d
2014-11-07 16:20:39 +01:00
Lionel Sambuc
7eb99bda90 Importing lib/libpci
Change-Id: I21ae1e409286cec27c5e35677de3778a3f505d1e
2014-11-07 16:20:39 +01:00
David van Moolenbroek
f4bd5678c6 sys/ioccom.h: remove _MINIX_IOCTL_IORW
It is unused, and does not do what the context suggests it does.

Change-Id: Ic5df9c77e2566a7754e01a444126a6caad2850fc
2014-09-29 16:16:17 +00:00
David van Moolenbroek
e5c9686c0f tty/pty: change back default CERASE to ^H
Alternatives should be considered (such as changing our keymaps to
better match NetBSD) in due time, but for now, the current default
is incredibly annoying!

Change-Id: I4cab5d6a9f39983ee8aa80362768fdb9cf3db948
2014-08-28 16:28:54 +00:00
Ben Gras
7f5f010bbd netbsd ping & traceroute
. remove minix ping
	. add support for socket(AF_INET, SOCK_RAW, {IPPROTO_ICMP,IPPROTO_UDP})
	. gives test48 a better chance of detecting network connectivity

Change-Id: Ia678546d27ac378642f1160a141e1fc33458cce2
2014-08-21 08:07:39 -04:00
Lionel Sambuc
433d6423c3 New sources layout
Change-Id: Ic716f336b7071063997cf5b4dae6d50e0b4631e9
2014-07-31 16:00:30 +02:00
Ben Gras
fc05cedbdd <sys/socket.h>: turn off MSG_NOSIGNAL
. this unimplemented flag causes runtime problems (ENOSYS on
	  send()) for e.g. libfetch when used
	. restores functionality of pkg_add (remote), fetch
2014-07-28 17:06:15 +02:00
Ben Gras
b029fb598a new libunwind, updated to netbsd b1f513eedd
existing libunwind used '0' in lsda_encoding as 'not present,'
whereas that is a valid encoding and does occur and would be
ignored. a missing encoding is actually 0xff.

The commit that addresses this is:

commit 8d4b51028d1a12b58d616f4b605254a877caafcf
Author: joerg <joerg>
Date:   Tue Mar 11 23:52:17 2014 +0000

    0 is a valid LSDA encoding and can be seen in statically linked
    programs. Initialize lsdaEncoding to DW_EH_PE_omit and check for that
    value to decide whether a value should be decoded.

more bugfixes are necessary. this update is up to:

commit b1f513eedd332426d88acbb118b6e9070966dcb9
Author: joerg <joerg>
Date:   Wed May 14 22:13:36 2014 +0000

    Lazy VFP processing works a lot better if the functions contain a return
    instruction.
2014-07-28 17:06:01 +02:00
Lionel Sambuc
472758f313 Importing sys/libunwind for clang
Change-Id: Ib073b27e3b883837e682414ef7df56c84ca10816
2014-07-28 17:06:01 +02:00
Lionel Sambuc
4684ddb6aa LLVM Minix changes
- import libcxx
 - reduce targets to the one when compiled as a tools

Change-Id: Iabb8427f80ff8e89463559a28bcb8b4f2bdbc496
2014-07-28 17:05:59 +02:00
Ben Gras
f80046feea size_t declaration 2014-07-28 17:05:55 +02:00
Ben Gras
6611dddc31 gold -Ttext=.. workaround
replace invocations of -Ttext=.. with --section-start=.text=.. for
gnu gold-ld. it was giving very weird results when given page-rounded
values. --section-start=.text=.. works for both bfd-ld and gold.
2014-07-28 17:05:50 +02:00
Kees Jongenburger
51b1cfd6ea libminc:vsnprintf add support for NULL destination pointer.
-Add support for returning the amount of characters that would have been
written if the buffer was large enough.
-Protect code against NULL dereference.

Change-Id: Ifb2041f4757e8a99f255d94768ba19621bc0ea16

http://gerrit.minix3.org/#/c/2560/
2014-07-28 17:05:38 +02:00
Kees Jongenburger
ec92655ec2 remove __BIT_TYPES_DEFINED__ because they are actually not defined.
Change-Id: Iae6489c013ff92042f001d50e9a9983a409c268e
2014-07-28 17:05:24 +02:00
Lionel Sambuc
78cfc9712b Prefix libc (u)mount with minix_
The goal is to prevent a name collision with the expected mount/umount
function signatures, if we decide one day to allow any application
using those to work on MINIX.

At this moment the caller has to start the required services, but if we
implement that logic inside the mount/unmout function, this would allow
any application to call those function successfully.

By renaming those now, we prevent a possible ABI break in the future.

Change-Id: Iaf6a9472bca0dda6bfe634bdb6029b3aa2e1ea3b
2014-07-28 17:05:23 +02:00
Lionel Sambuc
307904234c in6.h
Change-Id: Id548a6a144ca77ef3a7bb76f24b8b902efd680b4
2014-07-28 17:05:23 +02:00
Lionel Sambuc
193733f9e2 Hide SO_PASSCRED and SO_PEERCRED by default.
This cause in some software to assume we are linux, as this is rightly
only used there.

By default hide it behind _MINIX_SYSTEM, until we have removed traces
of it from getpeereid/[gs]etsocketopt and replaced it by the NetBSD
mechanism.

Change-Id: Iacd4cc1b152bcb7e90f5b1249185a222c90351d6
2014-07-28 17:05:22 +02:00
Ben Gras
0b79eac642 mmap: accept non-PROT_WRITE MAP_SHARED mappings
Currently we don't accept writable file mmap()s, as there is no
system in place to guarantee dirty buffers would make it back to
disk. But we can actually accept MAP_SHARED for PROT_READ mappings,
meaning the ranges aren't writable at all (and no private copy is
made as with MAP_PRIVATE), as it turns out a fairly large class of
usage.

	. fail writable MAP_SHARED mappings at runtime
	. reduces some minix-specific patches
	. lets binutils gold build on minix without further patching

Change-Id: If2896c0a555328ac5b324afa706063fc6d86519e
2014-07-28 17:05:20 +02:00
Ben Gras
3f38115c7b _MINIX_SYSTEM - fixes for in-minix crossbuild
. define _MINIX_SYSTEM for all system code from minix.service.mk
	. hide some system-level declarations and definitions
	  behind _MINIX_SYSTEM to cleanly fix host tool build problems on
	  Minix (such as: NONE being defined and paddr_t being used but not
	  declared)
	. the similar definition _SYSTEM is unsuitable as it changes the
	  values of errno definitions

Change-Id: I407de79e2575115243a074b16e79546a279cfa3e
2014-07-28 17:05:14 +02:00
Ben Gras
58b8ff5ffa VFS: add F_FLUSH_FS_CACHE fcntl
This fcntl requests all cached blocks associated with the minor device
number associated with the regular file are invalidated. If the file
is a block special, invalidate the blocks associated with that minor
device instead.

This is to be used for a test that tests unmapped file-mapped memory
ranges whose blocks are not in the cache and therefore must be fetched
from a FS.

Change-Id: Ide914b2e88413aa90bd731ae587ca06fa5f13ebc
2014-07-28 17:05:14 +02:00
Lionel Sambuc
84d9c625bf Synchronize on NetBSD-CVS (2013/12/1 12:00:00 UTC)
- Fix for possible unset uid/gid in toproto
 - Fix for default mtree style
 - Update libelf
 - Importing libexecinfo
 - Resynchronize GCC, mpc, gmp, mpfr
 - build.sh: Replace params with show-params.
     This has been done as the make target has been renamed in the same
     way, while a new target named params has been added. This new
     target generates a file containing all the parameters, instead of
     printing it on the console.
 - Update test48 with new etc/services (Fix by Ben Gras <ben@minix3.org)
     get getservbyport() out of the inner loop

Change-Id: Ie6ad5226fa2621ff9f0dee8782ea48f9443d2091
2014-07-28 17:05:06 +02:00
Ben Gras
ff10274392 i386 param.h
Change-Id: I880dbe83ad611cc0736d2a76a9f67b133f2fc025
2014-03-03 20:47:07 +01:00
Ben Gras
7597f4a8fc <machine/signal.h>
. use netbsd sigframe, sigcontext struct
	. netbsd sigframe *contains* sigcontext; use that directly
	  in kernel sigsend
	. drop two fields from minix x86 stackframe.h (process context)
	  that were unused, retadr and st

use in-sigframe sigcontext

Change-Id: Ib59d699596dc3a78163dee59f19730482fdddf11
2014-03-03 20:47:07 +01:00
Ben Gras
66a4f9a240 i386 cpu.h
Change-Id: Iae6d8727ba6e005a8b6e3bed4008f3f3282a1a81
2014-03-03 20:47:06 +01:00
Ben Gras
7435a20c91 <sys/poll.h>
Change-Id: I8758d224115bdd1344cd00da6e636c529b1c191e
2014-03-03 20:47:06 +01:00
Ben Gras
aae07bc777 <sys/ioccom.h>, <sys/ioctl.h>
. use <sys/ioccom.h> to make ioctls
	. use netbsd <sys/ioctl.h>, include minix ioctls
	. convert to varargs ioctl() like netbsd

Change-Id: Id5165780df48172b28bf0003603516d30d7c1abb
2014-03-03 20:47:06 +01:00
Ben Gras
ad9df9a490 <sys/syslimits.h>
reduces differences, raise NAME_MAX

Change-Id: I2e5f6296e6539162c52fdf13fb1fd27a56587e0c
2014-03-03 20:47:06 +01:00
Ben Gras
bd27a0696b <sys/siginfo.h>
Change-Id: I1fcfd04308639c5340cd0a5c2e8a926d7edc5abf
2014-03-03 20:47:06 +01:00
Ben Gras
a1e1ae5ade <sys/fcntl.h>, remove O_REOPEN
Change-Id: Id6493f30bb0fec7460d01f357ada9b2c2a4f5eb7
2014-03-03 20:47:06 +01:00
Ben Gras
46b89a731b <sys/resource.h>
Change-Id: I5858e1b56e65fc9cf480120d96c68770d3a11dd2
2014-03-03 20:47:06 +01:00
Ben Gras
7d303e6311 <sys/endian.h>
Change-Id: I0148722ecd96f88e4bc5c08b23c7997166ddb976
2014-03-03 20:47:05 +01:00
Ben Gras
0222260628 import / small alignment of many arm includes
Change-Id: I4a7631409190474546c0ba03312c23454c99d62a
2014-03-03 20:47:05 +01:00
Ben Gras
be9fe09e97 x86 multiboot.h
Change-Id: I245564a98fb9e2572b88f8feb7411ad6800a543c
2014-03-03 20:47:05 +01:00
Ben Gras
7df88eaa69 <sys/mount.h>, <sys/statvfs.h>
Change-Id: I98d4f90b6ca74d3898db158d95faf98605c7c1af
2014-03-03 20:47:05 +01:00
Ben Gras
28b9cb9a52 <sys/mtio.h>
Change-Id: I8629f90393c555f15208833d2b3f9fb6efc541c3
2014-03-03 20:47:05 +01:00
Ben Gras
515ae0a3e9 <sys/{ipc,sem,shm}.h>
Change-Id: I0cf021813cb73a01b1c9f9a1b302bde1a2b4ff7e
2014-03-03 20:47:05 +01:00
Ben Gras
09fab4dc04 <sys/ttydefaults.h>
Change-Id: I237e141e2a6409c7100db4adb14a90fbb46294b4
2014-03-03 20:47:04 +01:00
Ben Gras
6cf86998df <net/if_ether.h>
Change-Id: I7425aae72ab43e3fcec8373f7c589273d36f7fcb
2014-03-03 20:47:04 +01:00
Ben Gras
1ef83ee923 <sys/param.h>
Change-Id: I53d0ca207789f27e3a01acdd184ade24630d9a00
2014-03-03 20:47:04 +01:00
Ben Gras
9c031c9d7f <sys/ptrace.h>
Change-Id: Ib930c661c1e6de05b2e0d5fce4ffc1ae2269fc6a
2014-03-03 20:47:04 +01:00
Ben Gras
f4f382d8c0 align ARM cpu.h importing & using armreg.h
Change-Id: I4793517d936f71b0bb7088fbfe67e73a65fafb11
2014-03-03 20:47:04 +01:00
Ben Gras
81473dbba0 <vmparam.h>
Change-Id: I941ea3111703ed089bfdaf87d26158ab8697a80d
2014-03-03 20:47:04 +01:00
Ben Gras
5cecdfcb3e <machine/mcontext.h>
Change-Id: I2ad64018f3f402e7ccc5c4dc037dd0a3fe56a929
2014-03-03 20:47:03 +01:00
Ben Gras
17587738d3 align <sys/ucontext.h> <sys/uio.h> <sys/un.h>
Change-Id: I70adf01fddf931a3a6931083adaa4bbe647ea6a3
2014-03-03 20:47:03 +01:00