Commit Graph

10288 Commits

Author SHA1 Message Date
Colin Percival
79653046d8 Add a new sysctl, "security.jail.chflags_allowed", which controls the
behaviour of chflags within a jail.  If set to 0 (the default), then a
jailed root user is treated as an unprivileged user; if set to 1, then
a jailed root user is treated the same as an unjailed root user.

This is necessary to allow "make installworld" to work inside a jail,
since it attempts to manipulate the system immutable flag on certain
files.

Discussed with:	csjp, rwatson
MFC after:	2 weeks
2005-02-08 21:31:11 +00:00
Bill Paul
b545a3b822 Next step on the road to IRPs: create and use an imitation of the
Windows DRIVER_OBJECT and DEVICE_OBJECT mechanism so that we can
simulate driver stacking.

In Windows, each loaded driver image is attached to a DRIVER_OBJECT
structure. Windows uses the registry to match up a given vendor/device
ID combination with a corresponding DRIVER_OBJECT. When a driver image
is first loaded, its DriverEntry() routine is invoked, which sets up
the AddDevice() function pointer in the DRIVER_OBJECT and creates
a dispatch table (based on IRP major codes). When a Windows bus driver
detects a new device, it creates a Physical Device Object (PDO) for
it. This is a DEVICE_OBJECT structure, with semantics analagous to
that of a device_t in FreeBSD. The Windows PNP manager will invoke
the driver's AddDevice() function and pass it pointers to the DRIVER_OBJECT
and the PDO.

The AddDevice() function then creates a new DRIVER_OBJECT structure of
its own. This is known as the Functional Device Object (FDO) and
corresponds roughly to a private softc instance. The driver uses
IoAttachDeviceToDeviceStack() to add this device object to the
driver stack for this PDO. Subsequent drivers (called filter drivers
in Windows-speak) can be loaded which add themselves to the stack.
When someone issues an IRP to a device, it travel along the stack
passing through several possible filter drivers until it reaches
the functional driver (which actually knows how to talk to the hardware)
at which point it will be completed. This is how Windows achieves
driver layering.

Project Evil now simulates most of this. if_ndis now has a modevent
handler which will use MOD_LOAD and MOD_UNLOAD events to drive the
creation and destruction of DRIVER_OBJECTs. (The load event also
does the relocation/dynalinking of the image.) We don't have a registry,
so the DRIVER_OBJECTS are stored in a linked list for now. Eventually,
the list entry will contain the vendor/device ID list extracted from
the .INF file. When ndis_probe() is called and detectes a supported
device, it will create a PDO for the device instance and attach it
to the DRIVER_OBJECT just as in Windows. ndis_attach() will then call
our NdisAddDevice() handler to create the FDO. The NDIS miniport block
is now a device extension hung off the FDO, just as it is in Windows.
The miniport characteristics table is now an extension hung off the
DRIVER_OBJECT as well (the characteristics are the same for all devices
handled by a given driver, so they don't need to be per-instance.)
We also do an IoAttachDeviceToDeviceStack() to put the FDO on the
stack for the PDO. There are a couple of fake bus drivers created
for the PCI and pccard buses. Eventually, there will be one for USB,
which will actually accept USB IRP.s

Things should still work just as before, only now we do things in
the proper order and maintain the correct framework to support passing
IRPs between drivers.

Various changes:

- corrected the comments about IRQL handling in subr_hal.c to more
  accurately reflect reality
- update ndiscvt to make the drv_data symbol in ndis_driver_data.h a
  global so that if_ndis_pci.o and/or if_ndis_pccard.o can see it.
- Obtain the softc pointer from the miniport block by referencing
  the PDO rather than a private pointer of our own (nmb_ifp is no
  longer used)
- implement IoAttachDeviceToDeviceStack(), IoDetachDevice(),
  IoGetAttachedDevice(), IoAllocateDriverObjectExtension(),
  IoGetDriverObjectExtension(), IoCreateDevice(), IoDeleteDevice(),
  IoAllocateIrp(), IoReuseIrp(), IoMakeAssociatedIrp(), IoFreeIrp(),
  IoInitializeIrp()
- fix a few mistakes in the driver_object and device_object definitions
- add a new module, kern_windrv.c, to handle the driver registration
  and relocation/dynalinkign duties (which don't really belong in
  kern_ndis.c).
- made ndis_block and ndis_chars in the ndis_softc stucture pointers
  and modified all references to it
- fixed NdisMRegisterMiniport() and NdisInitializeWrapper() so they
  work correctly with the new driver_object mechanism
- changed ndis_attach() to call NdisAddDevice() instead of ndis_load_driver()
  (which is now deprecated)
- used ExAllocatePoolWithTag()/ExFreePool() in lookaside list routines
  instead of kludged up alloc/free routines
- added kern_windrv.c to sys/modules/ndis/Makefile and files.i386.
2005-02-08 17:23:25 +00:00
Brian Somers
23417e56ea Use the correct length when copying trailing data!!
PR:		77104
Submitted by:	Martin Birgmeier martin at email dot aon dot at
MFC after:	3 days
2005-02-08 10:38:24 +00:00
David E. O'Brien
bf716a5a75 Remove /stand when we are done with it.
Submitted by:	Ryan Sommers <ryans@gamersimpact.com>
2005-02-07 04:25:34 +00:00
Gleb Smirnoff
c41ba5f041 Remove code, inherited from ipacctctl, which sets socket to non-blocking
mode, since this introduces problems on SMP.
2005-02-06 14:00:57 +00:00
David E. O'Brien
0446a99e41 Remove the useless "version" number output.
We don't give a version number each userland binary.
2005-02-06 12:54:54 +00:00
Maxim Konovalov
212a79b010 o Implement net.inet.tcp.drop sysctl and userland part, tcpdrop(8)
utility:

    The tcpdrop command drops the TCP connection specified by the
    local address laddr, port lport and the foreign address faddr,
    port fport.

Obtained from:	OpenBSD
Reviewed by:	rwatson (locking), ru (man page), -current
MFC after:	1 month
2005-02-06 10:47:12 +00:00
Maxim Konovalov
c44e20ebec Backout rev. 1.17 per ru@ request: there are net.graph.recvspace and
net.graph.maxdgram sysctls.
2005-02-04 20:09:11 +00:00
Jun Kuriyama
2d914e9670 - Use svc_getrpccaller() rather than svc_getcaller() for using
xt_rtaddr member of SVCXPRT structure.  This allows to use IPv6
  address stored in "struct sockaddr_storage" in "struct netbuf".
- Output the reason of getnameinfo() error.

Reviewed by:	alfred
2005-02-03 22:21:19 +00:00
Ruslan Ermilov
9b059d8fec Utilize bsd.files.mk. 2005-01-28 16:22:46 +00:00
Ruslan Ermilov
254dd1666e Let bsd.prog.mk set SRCS and MAN to their default values. 2005-01-28 16:08:11 +00:00
Xin LI
c49d3c9bac Remove unnecessary SRCS= where could be guessed directly by our
bsd.*.mk infrasture.

Obtained from:	ru
2005-01-27 14:52:47 +00:00
Xin LI
3e7cb94c9c WARNS?=6 cleanup for [gs]et[fp]mac:
- Constify structure members that should not be changed
	  during process.
	- Apply static where needed
	- signed/unsigned madness
	- Bump WARNS?= levels from 2 to 6

(this is a diff reduction for a subsequent commit against these
Makefile's)
2005-01-27 14:44:39 +00:00
Brian Somers
880447787d Add a radius_Flush() function that waits for the response (or timeout) to
any pending RADIUS transaction.  Use this before sending RAD_STOP RADIUS
messages so that we definitely ``stop'' the session.

It was discovered that sometimes when the link timed out, we got lucky
enough to have an un-ACK'd RADIUS accounting transaction in progress,
resulting in the RAD_STOP message failing to send.

Original report found on:	A russion news group
Text translated by:		glebius
Tested by:			Alexey Popov llp at iteranet dot com
MFC after:			7 days
2005-01-27 14:09:33 +00:00
Suleiman Souhlal
e65b439414 Remove useless mode argument to open().
Reported by:	Liam J. Foy <liamfoy@gmail.com>
Approved by:	grehan (mentor)
2005-01-25 14:25:18 +00:00
Makoto Matsushita
8272aecfc7 Add "NTP pool servers" to the list, including Worldwide, Asia, Europe,
Oceania, and North America.

Obtained from:	http://ntp.isc.org/bin/view/Servers/NTPPoolServers
MFC after: 1 week
2005-01-25 02:56:17 +00:00
Makoto Matsushita
beda0fa4ef ntp.cyber-fleet.net is not in DNS database, remove it.
Reported by: sarumaru at ReichaNet IRC, users-jp@jp.FreeBSD.org, etc.
2005-01-25 02:51:47 +00:00
Maxim Konovalov
19beed5e2e o Reorganize the previous delta to make it more style(9) compliant.
Submitted by:	ru

o Reduce an amount of memory we ask in advance.
2005-01-24 17:01:48 +00:00
Maxim Konovalov
66658902ed o Try hard to guess a buffer size for a fast growing routing table.
An approach taken from killall/killall.c.

PR:		bin/76075
Submitted by:	Dmitrij Tejblum
MFC after:	3 weeks
2005-01-24 13:27:24 +00:00
Robert Watson
3f7c86a8c3 Bump the default maximum on nfsd processes from 20 to 256. Real-world
measurements suggest that higher degrees of parallelism for large
numbers of clients help performance substantially.

Submitted by:	Eric Anderson <anderson at centtech dot com>
2005-01-23 21:34:00 +00:00
Ruslan Ermilov
ead5223f54 Fixed punctuation in xrefs. 2005-01-21 20:48:00 +00:00
Ruslan Ermilov
3ac17feb8a Fixed xref. 2005-01-21 10:48:35 +00:00
Ruslan Ermilov
5c8e5f2462 Fixed xrefs. 2005-01-21 10:35:40 +00:00
Ruslan Ermilov
2bae942814 Fixed .Xr call. 2005-01-21 09:07:47 +00:00
Ruslan Ermilov
951e4d1c91 In crunchgen(1), when calling make(1), don't redirect stderr to stdout,
just rely on the exit status to detect an error.  This makes crunchgen(1)
safe to use with certain make(1) debugging flags.

MFC after:	1 week
2005-01-20 10:49:03 +00:00
Ruslan Ermilov
6b7349ee43 Fixed formatting in the AUTHORS section. 2005-01-18 20:04:14 +00:00
Ruslan Ermilov
59a3c79da6 Sort sections. 2005-01-18 20:02:45 +00:00
Gleb Smirnoff
f0f77f69d7 Remove redundant parameter inherited from ipacctctl. 2005-01-18 09:24:32 +00:00
Ruslan Ermilov
e1554781bb One of the DIAGNOSTICS sections should be EXIT STATUS. 2005-01-18 09:17:49 +00:00
Ruslan Ermilov
a866e17077 Added the EXIT STATUS section where appropriate. 2005-01-17 07:44:44 +00:00
Philippe Charnier
e05179a4c3 Add prototypes and remove unused variables for WARNS=6 compliance. Add
'usage: ' in front of usage string. Use warnx(3) instead of fprintf in error
messages to get progname prepended.
2005-01-16 10:49:48 +00:00
Ruslan Ermilov
6a5796e734 Eliminate macro calls inside literal displays. 2005-01-15 12:28:01 +00:00
Ruslan Ermilov
62890a391d Fixed display type. 2005-01-15 12:26:29 +00:00
Ruslan Ermilov
17100a2a55 Removed bitrot. 2005-01-13 13:34:00 +00:00
Xin LI
9a03b27dba WANRS=6 cleanup for vidcontrol(1):
- Use foo(void) instead of foo().
	- Use static where applicable.
	- Apply more const's when passing parameters
	- signed/unsigned madness
	- Avoid namespace collision by adding underscores.
	- For 64-bit architectures, use %zx instead of %x
	  when necessary.
	- When storing constants, use const instead of
	  variable.
	- Bump WARNS?= from 2 to 6
2005-01-13 03:59:44 +00:00
Maksim Yevmenkin
9fbe483ab9 Fix typo %d -> %x
That should fix the problem with invalid PSM returned from bthidcontrol.
Pointy hat goes to me.

PR:		misc/76107
Submitted by:	Hiroyuki Aizu < aizu at navi dot org >
MFC after:	1 day
2005-01-12 20:06:16 +00:00
Philip Paeps
ba13327812 Document the -U option a bit more clearly.
Submitted by:	keramida
2005-01-11 17:16:31 +00:00
Ruslan Ermilov
1a74e6a157 Scheduled mdoc(7) sweep. 2005-01-11 11:47:22 +00:00
Ruslan Ermilov
48b9142f64 Add -q to usage() and mark the "index" argument as optional. 2005-01-11 11:23:59 +00:00
Simon L. B. Nielsen
59bd95005e - mdoc(7) cleanup.
- Bump document date for last content change.

Extended mdoc clue:	ru
2005-01-11 10:59:31 +00:00
Ruslan Ermilov
9046f8cd17 Add -c to SYNOPSIS and usage(). 2005-01-11 10:53:09 +00:00
Brian Somers
ec91ed9155 Use the standard BSD copyright as per OpenBSD and /sys/net/slcompress* 2005-01-10 11:47:17 +00:00
Brian Somers
00d9db0314 Cast unsigned variables to int 2005-01-10 11:12:36 +00:00
Brian Somers
50be714be3 ifr_flagshigh is FreeBSD specific 2005-01-10 11:12:10 +00:00
Brian Somers
eb1ecbb230 Integrate some OpenBSD alignment fixes. This hopefully also fixes PR 38058...
Obtained from:	Brad <brad@comstyle.com>
2005-01-10 09:48:51 +00:00
Tom Rhodes
a3fe8ea3ed Wording nit. 2005-01-10 00:35:54 +00:00
Xin LI
4c1f1c62ca Cleanup usr.sbin/fd* so they can compile under WARNS=6.
fdcontrol/fdcontrol.c:
	- Add const constraint to an intermediate value
	  which is not supposed to be changed elsewhere.
fdread/fdread.c:
	- Use _devname in favor of devname to avoid name
	  conflicit.
	- -1 is less than any positive number so in order
	  to get the block to function, we should get the
	  block a little earlier.
	- Cast to remove signed when we are sure that a
	  return value is positive, or is compared with
	  an positive number (tracknumber of a floppy
	  disk is not likely to have UINT_MAX/2 anyway)
fdread/fdutil.c:
	- Use more specific initializer
fdwrite/fdwrite.c:
	- Use static on format_track since it's not
	  referenced in other places.
	- Use const char* to represent string constant.

Bump WARNS accordingly.
2005-01-08 15:46:06 +00:00
Xin LI
e152198a83 Follow style.Makefile(5):
WARNS comes before CFLAGS

This reduces diff against my local branch.
2005-01-08 15:15:42 +00:00
Brooks Davis
539905192f Change the USB keyboard example to use /dev/ukbd0 instead of /dev/kbd1.
This example caused me to incorrectly believe that you must use the
generic device nodes when you can in fact use either.  It's often better
to use the driver specific node.
2005-01-08 06:02:56 +00:00
Xin LI
1a842e2500 WARNS=6 cleanup. This includes:
- Apply __unused on unused parameters
	- Use const where suitable
	- Use PRIu64 instead of the deprecated %q
	- Bump WARNS to 6
2005-01-07 12:06:30 +00:00