kientzle [Sun, 8 Mar 2009 06:03:15 +0000 (06:03 +0000)]
Merge r687-689,691,693-701,720 from libarchive.googlecode.com:
Translate getdate.y into C for portability. Make the get_date()
function easier to test as well:
* Have it accept a time_t "now" to use as a reference so that test
code can verify relative time specifications against known starting
points.
* Set up default date after parsing the string so that we
can use the specified timezone (if any) instead of the local
default. Otherwise, local DST makes it almost impossible to
reliably test time specifications such as "sunday UTC"
kientzle [Sun, 8 Mar 2009 05:47:21 +0000 (05:47 +0000)]
Merger r629-631,633-646,648,654,678,681,682 from libarchive.googlecode.com:
Many changes for Windows compatibility. bsdtar_test now runs successfully
on both POSIX platforms and Windows.
kientzle [Sun, 8 Mar 2009 05:38:45 +0000 (05:38 +0000)]
Merge r368,496,625,626 from libarchive.googlecode.com: A number of
style and portability tweaks to the test harness. Most significantly,
don't use getopt().
kientzle [Sun, 8 Mar 2009 05:22:50 +0000 (05:22 +0000)]
Merge r283,r423 from libarchive.googlecode.com: Use libarchive's new
archive_read_disk API to pull metadata off of disk. This
removes a lot of platform-specific knowledge of things like
ACLs, file flags, and extended attributes from bsdtar.
kientzle [Sun, 8 Mar 2009 05:14:16 +0000 (05:14 +0000)]
Merge r278 from libarchive.googlecode.com: Reduce the number of
patterns tested here from 200 to 170, which seems to be the
most that Cygwin can handle.
kientzle [Sun, 8 Mar 2009 04:32:38 +0000 (04:32 +0000)]
Set version to 2.6.901a to indicate this now matches
libarchive.googlecode.com r745. (Except for the lzma/xz support,
which needs a little more attention before it can be merged.)
kientzle [Sun, 8 Mar 2009 04:20:19 +0000 (04:20 +0000)]
Merge a bunch of changes through r722 from libarchive.googlecode.com:
mtree writer now supports a variety of checksum keys; it also provides
option hooks to set what keys get written.
rwatson [Sun, 8 Mar 2009 00:50:37 +0000 (00:50 +0000)]
Add static DTrace probes for MAC Framework access control checks and
privilege grants so that dtrace can be more easily used to monitor
the security decisions being generated by the MAC Framework following
policy invocation.
Successful access control checks will be reported by:
mac_framework:kernel:<entrypoint>:mac_check_ok
Failed access control checks will be reported by:
mac_framework:kernel:<entrypoint>:mac_check_err
Successful privilege grants will be reported by:
mac_framework:kernel:priv_grant:mac_grant_ok
Failed privilege grants will be reported by:
mac_framework:kernel:priv_grant:mac_grant_err
In all cases, the return value (always 0 for _ok, otherwise an errno
for _err) will be reported via arg0 on the probe, and subsequent
arguments will hold entrypoint-specific data, in a style similar to
privilege tracing.
Obtained from: TrustedBSD Project
Sponsored by: Google, Inc.
rwatson [Sat, 7 Mar 2009 22:17:44 +0000 (22:17 +0000)]
When resetting a BPF descriptor, properly check that zero-copy buffers
are not currently owned by userspace before clearing or rotating them.
Otherwise we may not play by the rules of the shared memory protocol,
potentially corrupting packet data or causing userspace applications
that are playing by the rules to spin due to being notified that a
buffer is complete but the shared memory header not reflecting that.
This behavior was seen with pflogd by a number of reporters; note that
this fix is not sufficient to get pflogd properly working with
zero-copy BPF, due to pflogd opening the BPF device before forking,
leading to the shared memory buffer not being propery inherited in the
privilege-separated child. We're still deciding how to fix that
problem.
This change exposes buffer-model specific strategy information in
reset_d(), which will be fixed at a later date once we've decided how
best to improve the BPF buffer abstraction.
marcel [Sat, 7 Mar 2009 22:05:58 +0000 (22:05 +0000)]
Revert the part of change 107879 that employs the unused bytes after
the disklabel in the 2nd sector for boot code. Even with both UFS1
and UFS2 supported, there's enough bytes left that we don't have to
nibble from the disklabel.
Thus, the entire 2nd sector is now reserved for the disklabel, which
makes the bootcode compatible again with disklabels that have more
than 8 partitions -- such as those created and supported by gpart.
i386: 135 bytes available
amd64: 151 bytes available
rnoland [Sat, 7 Mar 2009 21:36:57 +0000 (21:36 +0000)]
Import support for ATI Radeon R600 and R700 series chips.
Tested on an HD3850 (RV670) on loan from Warren Block.
Currently, you need one of the following for this to be useful:
x11-drivers/xf86-video-radeonhd-devel (not tested)
xf86-video-ati from git (EXA works, xv is too fast)
xf86-video-radeonhd from git (EXA works, xv works)
There is no 3d support available from dri just yet.
thompsa [Sat, 7 Mar 2009 19:49:47 +0000 (19:49 +0000)]
(re)merge r186415,186416 from the old usb stack;
o add Transaction Translator support (still missing ISOC xfers)
o add EHCI_SCFLG_BIGEMMIO flag to force big-endian byte-select to be
set in USBMODE
o split reset work into new public routine ehci_reset so bus shim drivers
can force big-endian byte-select before ehci_init
o enable TT and big-endian MMIO
o force a reset before ehci_init to get byte-select setup
Also go back to using USB_EHCI_BIG_ENDIAN_DESC at compile time to enable the
byteswapping and reduce diffs to the original commits.
This fixes the new USB stack on the Cambria board.
rwatson [Sat, 7 Mar 2009 10:21:37 +0000 (10:21 +0000)]
Clarify some comments, fix some types, and rename ZBUF_FLAG_IMMUTABLE to
ZBUF_FLAG_ASSIGNED to make it clear why the buffer can't be written to:
it is assigned to userspace.
weongyo [Sat, 7 Mar 2009 07:26:22 +0000 (07:26 +0000)]
o port NDIS USB support from USB1 to the new usb(USB2).
o implement URB_FUNCTION_ABORT_PIPE handling.
o remove unused code related with canceling the timer list for USB
drivers.
o whitespace cleanup and style(9)
kientzle [Sat, 7 Mar 2009 07:23:04 +0000 (07:23 +0000)]
Merge r718 from libarchive.googlecode.com: Some additional
tests of restoring files to disk with unusual characters, specifically
to exercise Windows issues.
kientzle [Sat, 7 Mar 2009 03:41:29 +0000 (03:41 +0000)]
Merge r348 from libarchive.googlecode.com: Suppress testing invalid
conversions if there aren't any. In particular, Cygwin's "C" locale
has no invalid inputs for wctomb().
kientzle [Sat, 7 Mar 2009 03:30:35 +0000 (03:30 +0000)]
Merge r335,653,676 from libarchive.googlecode.com: Instead of
conditioning tests on HAVE_ZLIB, etc, just ask libarchive for the
service and handle the failure coming back from libarchive. This
gives us better test coverage of common client usage where clients
simply try to use libarchive services and handle the errors coming
back instead of trying to second-guess which libarchive services are
compiled in.
kientzle [Sat, 7 Mar 2009 03:16:16 +0000 (03:16 +0000)]
Merge r280,281,496,595,675,712 from libarchive.googlecode.com: Various
test improvements, including some work on Windows compatibility and an
extra check to verify that no test leaves open file descriptors
around.
kientzle [Sat, 7 Mar 2009 02:51:18 +0000 (02:51 +0000)]
Merge r585,r669 from libarchive.googlecode.com: If zlib is unavailable,
use external "gunzip" instead. With this in place, we can unconditionally
enable gzip read support.
kientzle [Sat, 7 Mar 2009 02:47:04 +0000 (02:47 +0000)]
Merge r550,584,587,609,647,674 from libarchive.googlecode.com:
Refactor the read_compression_program to add two new abilities:
* Public API: You can now include a signature string when you
register a program; the program will run only on input that
matches the signature string.
* Internal API: You can use the init() function to instantiate
an external program as part of a filter pipeline. This
can be used for graceful fallback (if zlib is unavailable, use
external gzip instead) and to use external programs with
bidders that are more sophisticated than a static signature check.
kientzle [Sat, 7 Mar 2009 02:24:32 +0000 (02:24 +0000)]
Merge r558,567,569,571,581,582,583,598 from libarchive.googlecode.com:
Support Joliet extensions. This currently ignores Rockridge extensions
if both exist on the same disk unless the '!joliet' option is provided.
e.g.: tar -xvf example.iso --options '!joliet'
Thanks to: Andreas Henriksson
kientzle [Sat, 7 Mar 2009 01:21:46 +0000 (01:21 +0000)]
Merge r714,r715 from libarchive.googlecode.com: Fix Debian bug #516577.
Don't crash if client does not provide a skip function. Extend one
of the test cases to use archive_read_open2() with only a read callback.
kientzle [Sat, 7 Mar 2009 00:25:33 +0000 (00:25 +0000)]
Merge r659 from libarchive.googlecode.com: Correctly report "none"
as the compression name when no other read filter bid. Add some
assertions to various tests to verify that read filters are properly
setting the textual name as well as the compression code.
sam [Fri, 6 Mar 2009 23:32:45 +0000 (23:32 +0000)]
Cleanup virtual device mapping some more:
o improves understandability by replacing numerous relative address
calculations with fixed addresses; everything should now match up
more easily with the vm layout shown at the top of the file
o move the expansion bus chip select regions to be contiguous with
the expansion bus configuration area; this is not exploited right
now but allows map consolidation in the future
o leave a gap between the expansion bus regions and the pci config
space in case we want to map more exp bus cs regions
lulf [Fri, 6 Mar 2009 20:17:16 +0000 (20:17 +0000)]
- Try to handle rcsfile write failures in the same way as cvsup, as they are not
necessarily fatal. If the file was incorrectly written, the checksum will
detect it and the file will be retransferred.
thompsa [Fri, 6 Mar 2009 17:04:47 +0000 (17:04 +0000)]
Ensure the cached rq pointer is still valid before waking up the address, the
zyd_cmd function may have timed out. It wouldnt cause a panic but could wakeup
someone.
kib [Fri, 6 Mar 2009 15:35:37 +0000 (15:35 +0000)]
Extract the no_poll() and vop_nopoll() code into the common routine
poll_no_poll().
Return a poll_no_poll() result from devfs_poll_f() when
filedescriptor does not reference the live cdev, instead of ENXIO.
rrs [Fri, 6 Mar 2009 11:03:52 +0000 (11:03 +0000)]
Fixes for window probes:
1) WP should never be marked unless flight size is 0
2) When recovering from wp if the peer ack's it we don't mark for retran
3) When recovering, we must assure a timer is still running.
kientzle [Fri, 6 Mar 2009 06:14:44 +0000 (06:14 +0000)]
Merge r668 from libarchive.googlecode.com: Style correction to the
'ar' reader: Don't redefine 'isdigit' and don't create a macro that's
only used once.
kientzle [Fri, 6 Mar 2009 05:58:56 +0000 (05:58 +0000)]
Merge r491,493,500,507,510,530,543 from libarchive.googlecode.com:
This implements the new generic options framework that provides a way
to override format- and compression-specific parameters.
kientzle [Fri, 6 Mar 2009 05:14:55 +0000 (05:14 +0000)]
Merge r505 from libarchive.googlecode.com: Fix %ju support. Simplify
the code here a bit by making the int formatting functions static to
archive_string_sprintf.c, which is the only place this has ever been
used.
kientzle [Fri, 6 Mar 2009 05:13:12 +0000 (05:13 +0000)]
Merge r457 from libarchive.googlecode.com: Stop appending strerror()
information to error strings. This caused a lot of unnecessary
duplication in error messages; in particular, there are a few cases
where error messages get copied from one archive object to another
and this would cause the strerror() info to get appended each time.
kientzle [Fri, 6 Mar 2009 04:50:39 +0000 (04:50 +0000)]
Merge r407,r508 from libarchive.googlecode.com: Correctly handle
Zip entries that are zero length but stored with deflate. This
is arguably a silly thing to do (deflating a zero-length file actually
makes it bigger) but apparently quite a few Zip writers do this.
This was broken in two places: archive_write_disk disliked being asked
to write data to zero-length files (even if the write was zero-length)
and zip_read_file_header tripped over itself when non-regular files
had compressed bodies.
kientzle [Fri, 6 Mar 2009 04:35:31 +0000 (04:35 +0000)]
Merge r399,401,402,405,415,430,440,452,453,458,506,533,536,538,544,590
from libarchive.googlecode.com: Add a new "archive_read_disk" API
that provides the important service of reading metadata from the
disk. In particular, this will make it possible to remove all
knowledge of extended attributes, ACLs, etc, from clients such
as bsdtar and bsdcpio.
Closely related, this API also provides pluggable uid->uname
and gid->gname lookup and caching services similar to
the uname->uid and gname->gid services provided by archive_write_disk.
Remember this is also required for correct ACL management.
kientzle [Thu, 5 Mar 2009 21:18:10 +0000 (21:18 +0000)]
Merge r390,r391,r392,r397 from libarchive.googlecode.com: Virtualize
"close" and "finish" across both read and write interfaces.
(Someday, "finish" should be renamed to "free" to better reflect
what it actually does...)
jhb [Thu, 5 Mar 2009 19:42:11 +0000 (19:42 +0000)]
A better fix for handling different FPU initial control words for different
ABIs:
- Store the FPU initial control word in the pcb for each thread.
- When first using the FPU, load the initial control word after restoring
the clean state if it is not the standard control word.
- Provide a correct control word for Linux/i386 binaries under
FreeBSD/amd64.
- Adjust the control word returned for fpugetregs()/npxgetregs() when a
thread hasn't used the FPU yet to reflect the real initial control
word for the current ABI.
- The Linux/i386 ABI for FreeBSD/i386 now properly sets the right control
word instead of trashing whatever the current state of the FPU is.
jhb [Thu, 5 Mar 2009 19:10:17 +0000 (19:10 +0000)]
Allow syscons to work on amd64 and i386 without any hints:
- Enable keyboard autodetection by default for ISA syscons attachments.
- If there are no syscons hints at all, assume there is a single sc0 device
anyway. The console probe will still fail unless a VGA adapter is found.
jhb [Thu, 5 Mar 2009 18:32:43 +0000 (18:32 +0000)]
Some cleanups to the i386 FPU support:
- Remove the control word parameter to npxinit(). It was always set
to __INITIAL_NPXCW__.
- Remove npx_cleanstate_ready as the cleanstate is always initalized
when it is used.
- Improve the handling of the case when the FPU isn't present. Now
the npx0 device no longer succeeds in its probe so all of npx_attach()
is skipped. Also, we allow this case with SMP (though that shouldn't
actually occur as all i386 systems that support SMP have FPUs) now.
SMP was only an issue back when we had an FPU emulator which was not
per-CPU.
- MFamd64: Clear some of the state in npx_cleanstate rather than leaving
it as garbage.
- MFamd64: When a user thread first uses the FPU, use npx_cleanstate for
the initial FPU state.
kientzle [Thu, 5 Mar 2009 18:30:50 +0000 (18:30 +0000)]
Merge r386,r395,r451 from libarchive.googlecode.com: On Windows, break
into the debugger on test setup failures (otherwise, the console window
just goes away and you can't see what went wrong). On all platforms,
clean up a stray buffer before exiting.
alc [Thu, 5 Mar 2009 18:11:26 +0000 (18:11 +0000)]
Make pmap_copy() more TLB friendly. Specifically, make it use the kernel's
direct map instead of the pmap's recursive mapping to access the lowest
level in the page table.
jhb [Thu, 5 Mar 2009 16:56:16 +0000 (16:56 +0000)]
A few cleanups to the FPU code on amd64:
- fpudna() always returned 1 since amd64 CPUs always have FPUs. Change
the function to return void and adjust the calling code in trap() to
assume the return 1 case is the only case.
- Remove fpu_cleanstate_ready as it is always true when it is tested.
Also, only initialize fpu_cleanstate when fpuinit() is called on the BSP.
jhb [Thu, 5 Mar 2009 16:43:33 +0000 (16:43 +0000)]
Add support for the single-port NetMos NM9835 serial adapter. The puc(4)
entry is a specific entry to override the generic NetMos entry so that
puc(4) will leave this device alone and let uart(4) claim it.