Commit Graph

102392 Commits

Author SHA1 Message Date
tsutsui
929c691c07 Preserve wscons(4) device numbers for forthcoming udl(4) USB display. 2009-11-14 09:14:22 +00:00
nakayama
933215c182 comcons in dev/ic/com.c is now declared as static, so don't peek it
directly but use it via cn_tab.

Tested on my Netra X1.
2009-11-14 03:43:52 +00:00
joerg
a5fad62a18 Simplify ifreq_setaddr:
- Drop the INET6 block. The commands are never given to this function
  and truncating the sockaddr is arguably not the desired result anyway.
- Clear the address before copying. This fixes SIOCGIFNETMASK and possible
  other ioctls for users that don't check sa_len. This includes
  COMPAT_43 and Linux emulation.

OK dyoung@
2009-11-13 23:11:08 +00:00
dsl
659c7fee7d tlbstate is 'int', so use 'cmpl' not 'cmpq'.
Fixes gprof on amd64 PR/40960.
2009-11-13 22:49:46 +00:00
joerg
e7123f329a Return the result of copyout. Reminded by Niolas Joly. 2009-11-13 22:39:35 +00:00
joerg
8277e92195 Provide SIOCGIFNAME. 2009-11-13 21:45:03 +00:00
dsl
f3583ee6ce Fix clrbits() so that it doesn't mask no bits out of the byte after the
range (when the last bit to be cleared is the msb of a byte).
Fixes PR/42312 in a slightly better way than proposed.
2009-11-13 19:15:24 +00:00
dsl
be258d919e Change args to clrbits() to be unsigned for efficiency. 2009-11-13 19:00:15 +00:00
dyoung
0db5f71432 Don't use com_activate(), it's gone away. Thanks to Andreas Wrede
for pointing out that these drivers still used com_activate().

Use device_private().  Join some lines.

Remove superfluous activation hooks.

Add child-detachment hooks (not used, yet).

TBD: device_t/softc split.
2009-11-13 01:14:35 +00:00
dyoung
3ea78c91dc Use TAILQ_FOREACH() instead of open-coding it.
I applied this patch with Coccinelle's semantic patch tool, spatch(1).
I installed Coccinelle from pkgsrc: devel/coccinelle/.  I wrote
tailq.spatch and kdefs.h (see below) and ran this command,

spatch -debug -macro_file_builtins ./kdefs.h -outplace \
    -sp_file sys/kern/tailq.spatch sys/kern/subr_autoconf.c

which wrote the transformed source file to /tmp/subr_autoconf.c.  Then I
used indent(1) to fix the indentation.

::::::::::::::::::::
::: tailq.spatch :::
::::::::::::::::::::

@@
identifier I, N;
expression H;
statement S;
iterator name TAILQ_FOREACH;
@@

- for (I = TAILQ_FIRST(H); I != NULL; I = TAILQ_NEXT(I, N)) S
+ TAILQ_FOREACH(I, H, N) S

:::::::::::::::
::: kdefs.h :::
:::::::::::::::

#define MAXUSERS 64
#define _KERNEL
#define _KERNEL_OPT
#define i386

/*
 * Tail queue definitions.
 */
#define	_TAILQ_HEAD(name, type, qual)					\
struct name {								\
	qual type *tqh_first;		/* first element */		\
	qual type *qual *tqh_last;	/* addr of last next element */	\
}
#define TAILQ_HEAD(name, type)	_TAILQ_HEAD(name, struct type,)

#define	TAILQ_HEAD_INITIALIZER(head)					\
	{ NULL, &(head).tqh_first }

#define	_TAILQ_ENTRY(type, qual)					\
struct {								\
	qual type *tqe_next;		/* next element */		\
	qual type *qual *tqe_prev;	/* address of previous next element */\
}
#define TAILQ_ENTRY(type)	_TAILQ_ENTRY(struct type,)

#define	PMF_FN_PROTO1	pmf_qual_t
#define	PMF_FN_ARGS1	pmf_qual_t qual
#define	PMF_FN_CALL1	qual

#define	PMF_FN_PROTO	, pmf_qual_t
#define	PMF_FN_ARGS	, pmf_qual_t qual
#define	PMF_FN_CALL	, qual

#define __KERNEL_RCSID(a, b)
2009-11-12 23:16:28 +00:00
dyoung
a9d7fca27d Don't use com_activate(), it's gone away. Delete superfluous
activation hook, pcmcom_activate().

Add a child-detachment hook and use it.

Use device_private().

Cosmetic: use __arraycount().  Join a couple of lines.  Delete a
set of superfluous parentheses.
2009-11-12 22:46:47 +00:00
dyoung
021235e4a6 Remove some dead code. 2009-11-12 20:38:35 +00:00
dyoung
05a97b4287 Delete definition of com_activate(), it's been removed. 2009-11-12 20:37:44 +00:00
dyoung
b2f2de753f Move the code in com_activate() to com_detach(), where it always
belonged.  Remove com_activate().

Consolidate information about the console on com(4) in a new struct
comcons_info.

Support detachment & re-attachment of a system console on com(4).
Re-attachment is somehow incomplete.  Ideally, if some other device
could take over as console, it would, but we're not quite there,
yet.
2009-11-12 20:37:09 +00:00
dyoung
90c2b25e8f Don't use com_activate(), it's going away. 2009-11-12 20:30:10 +00:00
dyoung
9ab08beb52 Call com_detach() before doing any bus-specific detachment.
Don't use com_activate(), it's going away.
2009-11-12 20:29:30 +00:00
dyoung
bb858bb7d5 Call the common detach routine, com_detach(), and get out on error,
before starting the bus-specific detachment.

com_activate() is going away, so don't use it any more.
2009-11-12 20:28:32 +00:00
dyoung
8e38167faa Remove definition of spc_activate(), it has gone away. 2009-11-12 20:15:02 +00:00
dyoung
2957bfb586 Remove superfluous activation hook.
Add a child-detachment hook.
2009-11-12 20:14:04 +00:00
dyoung
af7d639aad Re-order operations in usb_detach() so that if a usb(4) instance's
children will not detach, the instance is not left in an inconsistent
state.

If uhub(4) port is disconnected, forcefully detach the children on
that port.

Simplify detachment hooks.  (sc_dying must die!)

Pass along and respect detachment flags, esp. DETACH_FORCE,
throughout.
2009-11-12 20:11:35 +00:00
dyoung
f611b6f9fc Simplify activation hooks. (sc_dying must die!) 2009-11-12 19:58:27 +00:00
dyoung
edcba9e1df Simplify activation hook. (sc_dying must die!)
unifdef -D__NetBSD__ -U__FreeBSD__ -U__OpenBSD__.
2009-11-12 19:53:56 +00:00
dyoung
8f3030b535 Simplify activation hook. (sc_dying must die!) 2009-11-12 19:53:14 +00:00
dyoung
189c253b00 Remove superfluous activation hook. 2009-11-12 19:52:14 +00:00
dyoung
8d5198657e Simplify activation hooks. (sc_dying must die!) 2009-11-12 19:51:44 +00:00
dyoung
43acd4eaa8 Simplify activation hook. (sc_dying must die!)
s/device_ptr_t/device_t/.
2009-11-12 19:50:01 +00:00
dyoung
ed1618c692 Simplify activation hook. (sc_dying must die!)
unifdef -D__NetBSD__ -U__FreeBSD__ -U__OpenBSD__.
2009-11-12 19:49:03 +00:00
dyoung
8488e3e07c Simplify activation hook.
(sc_dying must die!)
2009-11-12 19:46:01 +00:00
dyoung
acb06354f1 Remove superfluous activation hooks. 2009-11-12 19:44:17 +00:00
dyoung
240fa6310f Remove superfluous activation hook. 2009-11-12 19:39:26 +00:00
dyoung
b5d9476c14 Simplify activation hook. 2009-11-12 19:38:35 +00:00
dyoung
04b4cf9e54 Remove superfluous activation hook. 2009-11-12 19:37:17 +00:00
dyoung
d061cb2faa Simplify activation hook. 2009-11-12 19:35:59 +00:00
dyoung
3e567daf68 Simplify activation hook. Replace each use of sc_invalid by either
calling config_deactivate(9) or device_is_active(9).
2009-11-12 19:32:14 +00:00
dyoung
a6c5930eb6 Simplify activation hook. 2009-11-12 19:30:49 +00:00
dyoung
91901a7869 Simplify activation hook. Replace each use of sc_invalid by either
calling config_deactivate(9) or device_is_active(9).
2009-11-12 19:28:59 +00:00
dyoung
e33ae76976 Remove superfluous activation hook. 2009-11-12 19:25:08 +00:00
dyoung
f4ac73e2da Don't use the superfluous activation hook.
Cosmetic: while I'm here, join two lines.
2009-11-12 19:24:06 +00:00
dyoung
171b2851cf Simplify activation hook. 2009-11-12 19:22:08 +00:00
dyoung
310df30dc7 Remove superfluous activation hook. 2009-11-12 19:20:08 +00:00
dyoung
e4fd5e4f38 Simplify activation hook. 2009-11-12 19:18:55 +00:00
dyoung
972989f5e3 Move a device-deactivation pattern that is replicated throughout
the system into config_deactivate(dev): deactivate dev and all of
its descendants.  Block all interrupts while calling each device's
activation hook, ca_activate.  Now it is possible to simplify or
to delete several device-activation hooks throughout the system.

Do not deactivate a driver while detaching it!  If the driver was
already deactivated (because of accidental/emergency removal), let
the driver cope with the knowledge that DVF_ACTIVE has been cleared.
Otherwise, let the driver access the underlying hardware (so that
it can flush caches, restore original register settings, et cetera)
until it exits its device-detachment hook.

Let multiple readers and writers simultaneously access the system's
device_t list, alldevs, from either interrupt or thread context:
postpone changing alldevs linkages and freeing autoconf device
structures until a garbage-collection phase that runs after all
readers & writers have left the list.

Give device iterators (deviter(9)) a consistent view of alldevs no
matter whether device_t's are added and deleted during iteration:
keep a global alldevs generation number.  When an iterator enters
alldevs, record the current generation number in the iterator and
increase the global number.  When a device_t is created, label it
with the current global generation number.  When a device_t is
deleted, add a second label, the current global generation number.
During iteration, compare a device_t's added- and deleted-generation
with the iterator's generation and skip a device_t that was deleted
before the iterator entered the list or added after the iterator
entered the list.

The alldevs generation number is never 0.  The garbage collector
reaps device_t's whose delete-generation number is non-zero.

Make alldevs private to sys/kern/subr_autoconf.c.  Use deviter(9)
to access it.
2009-11-12 19:10:30 +00:00
snj
b839469ef3 igsfb needs videomode. 2009-11-12 18:37:10 +00:00
tron
6ff18287ac Turn on Stack Smash Protection (SSP) for the "ALL" kernel to get at least
compile time coverage during a full release build.

Suggested by Mindaugas Rasiukevicius.
2009-11-12 14:58:09 +00:00
uebayasi
49fdab3079 Comment & whitespace. 2009-11-12 08:54:00 +00:00
uebayasi
024d1252f2 Style. 2009-11-12 08:41:49 +00:00
uebayasi
4a2c3ae0e4 Whitespace & style. 2009-11-12 08:32:57 +00:00
uebayasi
4633367fa2 usbd_do_request_flags(..., 0, 0, USBD_CONFIG_TIMEOUT) is equivalent to
usbd_do_request(...).  Remove an unneeded cast.  No functional changes.
2009-11-12 08:28:31 +00:00
uebayasi
f3b7685602 Indent. 2009-11-12 08:16:50 +00:00
uebayasi
0ee2b2ae9b Typo in a debug printf. 2009-11-12 07:58:32 +00:00