file always after creation to cache the inode number given by the
backend file system. Otherwise we would not find a newly created
node from incore and create another one. In practise this was
pretty well hidden by the kernel name cache.
avoid wasting OS flag bits. In the future we'll probably use fileassoc to
achieve this (once there is a way to make fileassoc persistent) or in the
shorter term libelf, so that we can add and remove the note on demand instead
of burning bits on each binary. Of course since this is a tool, this means
that we'll need to think about how to handle libelf...
this one, since it's a good exercise ..
Add icfs, which does the same thing as the refuse-based icfs agc
added earlier this week, i.e. null-mounts & converts the entire
namespace to lowercase. However, it's a fun comparison, since this
is implemented in a completely different fashion from the refuse
version.
so that it isn't necessary to copy data to/from the stackgap.
Given the nature of the code in this file, it is now probably slightly
more broken than previously. but nothing serious should be worse!
in order to avoid the stackgap (etc).
Note that since changing the darwin socket address is simply a matter of
translating the address family and adding sa_len, it can easily be done
on the mbuf resident address before/after copying to/from userspace.
Simplify the convertion of AF_LOCAL addresses by usingthe user-supplied
buffer length instead of dowing an unbounded strlen().
Untested - did this work before?
'name' is wanted in kernel code.
Similarly split sys_accept() and change the split in recvmsg() so that it
is useful to the compat functions, recvit() is removed and replaced by
do_sys_recvmsg().
Factor out the code that writes socked names to userspace (from mbuf) to
avoid replicated code.
Extract the code that writes socket 'control' (CMSG) data out to userspace,
being more careful about the 'fd' that may exist inside SCM_RIGHTS msgs.
(they still get lost if some of the latter copyout calls fail).
Since these are new functions, and old LKMs will fail to load.
and destroyed, but not yet reclaimed. This prevents puffs_pn_nodewalk()
from returning stale entries. Make nullfs use this (some file
systems are a bit too happy with recycling inode numbers).
Add vendors and products from FreeBSD/OpenBSD.
- for aue(4):
ADMtek AN986A Ethernet
Add vendor ELCON Systemtechnik and its product Goldpfeil P-LAN
ELECOM LD-USB20
Mobility EasiDock Ethernet
SIIG2 USB TO Ethernet
- for axe(4):
Acer Communications & Multimedia EP-1427X-2 Ethernet
ASIX AX88178 USB 2.0 10/100 Ethernet adapter
ATen UC210T Ethernet
Belkin F5D5055 Ethernet adapter
Billionton USB2AR Ethernet
D-Link DUB-E100 rev B1
Good Way Technology GWUSB2E
I-O DATA ETG-US2
Ethernet port in the JVC MP-PRX1 port replicator.
Add new vender ID for Linksys (LINKSYS4) and its product USB1000
OQO model 01+ Ethernet
- for cdce(4):
Acer Labs M5632 USB 2.0 Data Link
Add vendor Ambit Microsystems and its product NTL 250 cable modem
COMPAQ iPAQ Linux
Add vendor G.Mate Inc. and its product YP3X00 PDA
Two Motorola devices (FreeBSD/OpenBSD don't have the details)
NetChip Linux Ethernet/RNDIS gadgets
- for kue(4):
Silicom Psion Gold Port Ethernet
- for ural(4):
Belkin F5D7051 54g USB Network Adapter
GIGABYTE GN-54G
Siemens Info 54g USB Network Adapter
- for url(4):
AboCom RTL8151
RealTek RTL8151 PNA
ZyXEL Prestige
Remove duplicates.
Whitespace police.
config_handle_wedges() and read_disk_sectors(). On x86, handle_wedges()
is a thin wrapper for config_handle_wedges(). Share opendisk()
across architectures.
Add kernel code in support of specifying a root partition by wedge
name. E.g., root specifications "wedge:wd0a", "wedge:David's Root
Volume" are possible. (Patches for config(1) coming soon.)
In support of moving disks between architectures (esp. i386 <->
evbmips), I've written a routine convertdisklabel() that ensures
that the raw partition is at RAW_DISK by following these steps:
0 If we have read a disklabel that has a RAW_PART with
p_offset == 0 and p_size != 0, then use that raw partition.
1 If we have read a disklabel that has both partitions 'c'
and 'd', and RAW_PART has p_offset != 0 or p_size == 0,
but the other partition is suitable for a raw partition
(p_offset == 0, p_size != 0), then swap the two partitions
and use the new raw partition.
2 If the architecture's raw partition is 'd', and if there
is no partition 'd', but there is a partition 'c' that
is suitable for a raw partition, then copy partition 'c'
to partition 'd'.
3 Determine the drive's last sector, using either the
d_secperunit the drive reported, or by guessing (0x1fffffff).
If we cannot read the drive's last sector, then fail.
4 If we have read a disklabel that has no partition slot
RAW_PART, then create a partition RAW_PART. Make it span
the whole drive.
5 If there are fewer than MAXPARTITIONS partitions,
then "slide" the unsuitable raw partition RAW_PART, and
subsequent partitions, into partition slots RAW_PART+1
and subsequent slots. Create a raw partition at RAW_PART.
Make it span the whole drive.
The convertdisklabel() procedure can probably stand to be simplified,
but it ought to deal with all but an extraordinarily broken disklabel,
now.
i386: compiled and tested, sparc64: compiled, evbmips: compiled.