freebsd-skq/sys
marcel 5d4c069fc5 Rewrite the code that uses the try/catch paradigm implemented by
goto and abstracted by the itry, ithrow and icatch macros (among
others). The problem with this code is that it doesn't compile on
ia64. The compiler is sufficiently confused that it inserts a call
to __ia64_save_stack_nonlock(). This is a magic function that saves
enough of the stack to allow for non-local gotos, such as would be
the case for nested functions. Since it's not a compiler defined
function, it needs a runtime implementation. This we have not in a
standalone compilation as is the kernel.

There's no indication that the compiler is not confused on other
platforms. It's likely that saving the stack in those cases is
trivial enough that the compiler doesn't need to off-load the
complexity to a runtime function.

The code is believed to be correctly translated, but has not been
tested. The overall structure remained the same, except that it's
made explicit. The macros that implement the try/catch construct
have been removed to avoid reintroduction of their use. It's not
a good idea.

In general the rewritten code is slightly more optimal in that it
doesn't need as much stack space and generally is smaller in size.

Found by: LINT
2003-08-23 21:43:33 +00:00
..
alpha Prefer new location of pci include files (which have only been in the 2003-08-22 07:20:27 +00:00
amd64 AMD64 mtrr driver. 2003-08-23 00:27:58 +00:00
arm Style sync. 2003-08-03 07:50:19 +00:00
boot Many newer CF do not handle having the entire track read from them at 2003-08-22 01:59:28 +00:00
cam Add the DA_Q_NO_PREVENT quirk which keeps da(4) from sending PREVENT/ALLOW 2003-08-22 16:35:53 +00:00
coda Add a "int fd" argument to VOP_OPEN() which in the future will 2003-07-26 07:32:23 +00:00
compat Switch to using the emulator in the common compat area. 2003-08-23 00:04:53 +00:00
conf AGP GART driver for NVIDIA nForce/nForce2 chipsets. 2003-08-23 18:00:31 +00:00
contrib Prefer new location of pci include files (which have only been in the 2003-08-22 15:28:22 +00:00
crypto Use __FBSDID(). 2003-06-10 21:44:29 +00:00
ddb Further cleanup <machine/cpu.h> and <machine/md_var.h>: move the MI 2003-08-16 16:57:57 +00:00
dev When present use ogain instead of master for surround sound channels. 2003-08-23 21:39:51 +00:00
fs Use the requested page's object field instead of the vnode's. In some 2003-08-22 17:50:32 +00:00
geom Change the the size fields to daddr_t to support greater than 2TB ccd volumes. 2003-08-22 11:21:06 +00:00
gnu Add compilation support for extfs on ia64, primarily to support LINT. 2003-08-23 03:58:11 +00:00
i4b Prefer new location of pci include files (which have only been in the 2003-08-22 15:06:24 +00:00
i386 Even though this driver says it is broken, fix the location of the pci 2003-08-23 16:59:16 +00:00
ia64 Remove PAGE_SIZE_4K, PAGE_SIZE_8K and PAGE_SIZE_16K and replace them 2003-08-23 03:39:55 +00:00
isa Give timecounters a numeric quality field. 2003-08-16 08:23:53 +00:00
isofs/cd9660 Do not call VOP_BMAP() on our own vnodes. 2003-08-17 23:00:30 +00:00
kern Hold the page queues lock when performing vm_page_clear_dirty() and 2003-08-23 18:11:53 +00:00
libkern Lock down arc4random so it can be safely called w/o Giant. 2003-08-15 06:34:47 +00:00
modules AGP GART driver for NVIDIA nForce/nForce2 chipsets. 2003-08-23 18:00:31 +00:00
net Change instances of callout_init that specify MPSAFE behaviour to 2003-08-19 17:51:11 +00:00
net80211 MFp4 changes to fix locking issues and correct reference 2003-08-19 22:17:04 +00:00
netatalk - Use if_broadcastaddr from struct ifnet rather than relying on 2003-03-21 17:53:16 +00:00
netatm The number of prefixes can never be negative so use an u_int for this. 2003-07-29 13:46:43 +00:00
netgraph Add Protocol Independent Multicast protocol. 2003-08-20 22:11:58 +00:00
netinet Introduce two new MAC Framework and MAC policy entry points: 2003-08-21 18:39:16 +00:00
netinet6 introduced a flag bit "ND6_IFF_ACCEPT_RTADV" in the nd_ifinfo structure to 2003-08-05 14:57:11 +00:00
netipsec make sure the packets contains a complete inner header 2003-08-13 22:36:24 +00:00
netipx Use __FBSDID(). 2003-06-11 05:37:42 +00:00
netkey Use __FBSDID(). 2003-06-11 05:37:42 +00:00
netnatm Remove the last vestiges of ATM raw mode. This has not been useful for a 2003-08-06 14:34:38 +00:00
netncp size_t != int. Make this compile on 64 bit platforms (eg: amd64). 2003-07-24 01:59:18 +00:00
netsmb Rewrite the code that uses the try/catch paradigm implemented by 2003-08-23 21:43:33 +00:00
nfs Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
nfsclient Remove the magic way of configuring NFS backed swap. 2003-08-15 12:04:02 +00:00
nfsserver Change idle state sleep identifier to "-" for nfsd. 2003-07-02 08:08:32 +00:00
opencrypto consolidate callback optimization check in one location by adding a flag 2003-06-30 05:09:32 +00:00
pc98 MFi386: revisions 1.202 and 1.203. 2003-08-23 06:06:55 +00:00
pccard Add comment point o2micro people to NEWCARD 2003-08-01 16:10:48 +00:00
pci PCI header files live in dev/pci. 2003-08-23 19:32:18 +00:00
posix4 Use __FBSDID(). 2003-06-11 06:34:30 +00:00
powerpc Prefer new location of pci include files (which have only been in the 2003-08-22 07:39:05 +00:00
rpc
security Make the elements argument to mac_prepare() be const. 2003-08-22 17:49:59 +00:00
sparc64 s#<mk48txx/mk48txxreg.h>#<dev/mk48txx/mk48txxreg.h># 2003-08-23 05:56:58 +00:00
sys Make the elements argument to mac_prepare() be const. 2003-08-22 17:49:59 +00:00
tools Don't check the state of the vnode interlock if the specification says 2003-06-22 21:20:06 +00:00
ufs The previous change necessitates the addition of a new #include. Otherwise, 2003-08-18 17:27:08 +00:00
vm Held pages, just like wired pages, should not be added to the cache queues. 2003-08-23 20:29:29 +00:00
Makefile Revert exclusion for amd64 that stopped boot/ being built. 2003-06-26 03:52:48 +00:00