text:
Up to [DragonFly] / src / sys / dev / serial / sio
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
Synchronize some of the machine-independant AMD64 bits. Obtained-from: Jordan Gordeev <firstname.lastname@example.com>
* Fix some cases where NULL was used but 0 was meant (and vice versa). * Remove some bogus casts of NULL to (void *).
Merge ACPI resource manager changes From FreeBSD: acpi.c,v 1.158, acpivar.h,v 1.70 Associate a device_t with an ACPI_HANDLE. This make AcpiWalkNamespace more useful. If ACPI-CA allowed null object handlers, we wouldn't need the placeholder function. acpi.c,v 1.159-1.160 and others: Add support to ACPI to manage its own resources. Previously, resource allocation was passed up to nexus. Now, we probe sysresource objects and manage the resources they describe in a local rman pool. This helps devices which attach/detach varying resources (like the _CST object) and module loads/unloads. The allocation/release routines now check to see if the resource is described in a child sysresource object and if so, allocate from the local rman. Sysresource objects add their resources to the pool and reserve them upon boot. This means sysresources need to be probed before other ACPI devices. Changes include: * Add ordering to the child device probe. The current order is: system resource objects, embedded controllers, then everything else. * Make acpi_MatchHid take a handle instead of a device_t arg. * Replace acpi_{get,set}_resource with the generic equivalents. acpi.c,v 1.175: Call device_identify routines after doing the namespace walk. This is needed so that sysresource objects are created first to reserve all regions, then other devices can allocate from them. Otherwise, acpi_timer (the only ACPI device with an identify routine), would allocate its resources from the nexus, causing the later sysresource reserve to fail. Debugging by: Taku YAMAMOTO, Andrea Campi And add ACPI attachment to some devices trying to obtain resources from the ISA bus.
Give the device major / minor numbers their own separate 32 bit fields in the kernel. Change dev_ops to use a RB tree to index major device numbers and remove the 256 device major number limitation. Build a dynamic major number assignment feature into dev_ops_add() and adjust ASR (which already had a hand-rolled one), and MFS to use the feature. MFS at least does not require any filesystem visibility to access its backing device. Major devices numbers >= 256 are used for dynamic assignment. Retain filesystem compatibility for device numbers that fall within the range that can be represented in UFS or struct stat (which is a single 32 bit field supporting 8 bit major numbers and 24 bit minor numbers).
Changes to consdev - low level kernel console initialization. The consdev API was calling make_dev() extremely early in the boot sequence, but except for a little code in syscons didn't really need the abstraction to operate the kernel console during boot. Change the consdev API to no longer require the use the device abstraction to operate. This will allow the device ABI (cdev_t) to be converted to use SYSREF.
Ansify parameter declarations.
Rename printf -> kprintf in sys/ and add some defines where necessary (files which are used in userland, too).
Remove system dependancies on <machine/ipl.h>. Only architecture files need it now. SWI_* defines moved from the MD <machine/ipl.h> to the MI <sys/interrupt.h> directory.
Do a major clean-up of the BUSDMA architecture. A large number of essentially machine-independant drivers use the structures and definitions in machine-dependant directories that are really machine-independant in nature. Split <machine/bus_dma.h> into machine-depdendant and machine-independant parts and make the primary access run through <sys/bus_dma.h>. Remove <machine/bus.h>, <machine/bus_memio.h> and <machine/bus_pio.h>. The optimizations related to bus_memio.h and bus_pio.h made a huge mess, introduced machine-specific knowledge into essentially machine-independant drivers, and required specific #include file orderings to do their job. They may be reintroduced in some other form later on. Move <machine/resource.h> to <sys/bus_resource.h>. The contents of the file is machine-independant or can be made a superset across many platforms. Make <sys/bus.h> include <sys/bus_dma.h> and <sys/bus_resource.h> and include <sys/bus.h> where necessary. Remove all #include's of <machine/resource.h> and <machine/bus.h>. That is, make the BUSDMA infrastructure integral to I/O-mapped and memory-mapped accesses to devices and remove a large chunk of machine-specific dependancies from drivers. bus_if.h and device_if.h are now required to be present when using <sys/bus.h>.
Change the kernel dev_t, representing a pointer to a specinfo structure, to cdev_t. Change struct specinfo to struct cdev. The name 'cdev' was taken from FreeBSD. Remove the dev_t shim for the kernel. This commit generally removes the overloading of 'dev_t' between userland and the kernel. Also fix a bug in libkvm where a kernel dev_t (now cdev_t) was not being properly converted to a userland dev_t.
Rename the kernel NODEV to NOCDEV to avoid conflicts with the userland NODEV.
Rename malloc->kmalloc, free->kfree, and realloc->krealloc. Pass 1
MASSIVE reorganization of the device operations vector. Change cdevsw to dev_ops. dev_ops is a syslink-compatible operations vector structure similar to the vop_ops structure used by vnodes. Remove a huge number of instances where a thread pointer is still being passed as an argument to various device ops and other related routines. The device OPEN and IOCTL calls now take a ucred instead of a thread pointer, and the CLOSE call no longer takes a thread pointer.
Major cleanup of the interrupt registration subsystem. * Collapse the separate registrations in the kernel interrupt thread and i386 layers into a single machine-independant kernel interrupt thread layer in kern/kern_intr.c. Get rid of the i386 layer's 'MUX' code entirely. * Have the interrupt vector assembly code (icu_vector.s and apic_vector.s) call a machine-independant function in the kernel interrupt thread layer to figure out how to process an interrupt. * Move a lot of assembly into the new C interrupt processing function. * Add support for INTR_MPSAFE. If a device driver registers an interrupt as being MPSAFE, the Big Giant Lock will not be obtained or required. * Temporarily just schedule the ithread if a FAST interrupt cannot be executed due to its serializer being locked. * Add LWKT serialization support for a non-blocking 'try' function. * Get rid of ointhand2_t and adjust all old ISA code to use inthand2_t. * Supply a frame pointer as a pointer rather then embedding it on th stack. * Allow FAST and SLOW interrupts to be mixed on the same IRQ, though this will not necessarily result in optimal operation. * Remove direct APIC/ICU vector calls from the apic/icu vector assembly code. Everything goes through the new routine in kern/kern_intr.c now. * Add a new flag, INTR_NOPOLL. Interrupts registered with the flag will not be polled by the upcoming emergency general interrupt polling sysctl (e.g. ATA cannot be safely polled due to the way ATA register access interferes with ATA DMA). * Remove most of the distinction in the i386 assembly layers between FAST and SLOW interrupts (part 1/2). * Revamp the interrupt name array returned to userland to list multiple drivers associated with the same IRQ.
Remove the INTR_TYPE_* flags. The interrupt type is no longer used to figure out which spl*() set an interrupt belongs to, because, well, spl's no longer exist.
Add some missing crit_exit()'s. The original code just assumed that the SPL would be cleaned up by the caller, but the SPL->crit conversion really requires that the routines be more self-contained.
Remove all remaining SPL code. Replace the mtd_cpl field in the machine dependant thread structure and the CPL field in the interrupt stack frame with dummies (so structural sizes do not change, yet). Remove all interrupt handler SPL mask and mask pointer code. Remove all spl*() functions except for splz(). Note that doreti uses a temporary CPL mask internally to accumulate a bitmap of FAST interrupts which could not be executed due to not being able to get the BGL. This mask has no outside visibility. Note that gd_fpending and gd_ipending still exist to support critical section interrupt deferment.
Remove unused variables.
Remove spl*() in src/sys/dev/serial/{cy,rc,rp,si,sio,stl,stli} and replace them with critical sections.
Implement a new cputimer infrastructure to allow us to support different time bases. This is in preparation for adding support for the ACPI timer as the system's free-running counter instead of the i8254 timer 1 or timer 2.
Get rid of bus_{disable,enable}_intr(), it wasn't generic enough for our needs. Implement some generic atomic.h functions to aid in the implementation of a low level mutex. Implement a generic low level sleep-mutex serializer, kern/lwkt_serialize.c. The serializer is designed to be a replacement for SPL calls but may also be used for other very low level work (e.g. lockmgr interlocks). Add a serializer argument to BUS_SETUP_INTR(). When non-NULL, the interrupt handler will no longer be protected by an SPL so e.g. spl*() will no longer protect against that device's interrupts. The IF queueing and dequeueing mechanisms may no longer depend on outside SPL state because network driver interrupt handlers are no longer required to enter splnet(). Use critical sections for the moment. The IFQ and IFF_OACTIVE interactions are not yet MP safe.
Remove DEC Alpha support.
Add a intrmask_t pointer to register_int() and register_swi(), and make the interrupt thread loop set the spl for the duration of the call to the handler. Allow interrupt threads to be run with or without a critical section based on the kern.int_use_crit_section sysctl. The default is to conservatively run with a critical section for now. Turning this off will cause cpu usage in interrupts to be properly accounted for by top, systat, and ps.
Add a missing com_unlock() to the serial port drain test code. This code is necessary to detect non-existant serial ports on machines (such as the eMachines laptop) which don't have any serial port hardware at all, but the missing com_unlock() caused systems to crash in certain situations for obvious reasons. Many thanks to Glenn Johnson <firstname.lastname@example.com> for keeping on my back about the issue and for testing the fix. This should also fix the last of the serial-port related bug reports stemming from the original 1.0A release.
timeout/untimeout ==> callout_*
malloc() M_NOWAIT -> M_WAITOK, plus remove bzero's in favor of M_ZERO.
timeout/untimeout ==> callout_*
Make sure a serial port exists by determining whether it is possible to drain its RX queue, before we turn on its interrupt or do other things. If we can't then the serial port is disabled. This fixes drain lockups on laptops and newer desktops that occur when a non-existant serial port is opened and allows us to ship a CD with a getty on ttyd0 without locking up the system.
Device layer rollup commit. * cdevsw_add() is now required. cdevsw_add() and cdevsw_remove() may specify a mask/match indicating the range of supported minor numbers. Multiple cdevsw_add()'s using the same major number, but distinctly different ranges, may be issued. All devices that failed to call cdevsw_add() before now do. * cdevsw_remove() now automatically marks all devices within its supported range as being destroyed. * vnode->v_rdev is no longer resolved when the vnode is created. Instead, only v_udev (a newly added field) is resolved. v_rdev is resolved when the vnode is opened and cleared on the last close. * A great deal of code was making rather dubious assumptions with regards to the validity of devices associated with vnodes, primarily due to the persistence of a device structure due to being indexed by (major, minor) instead of by (cdevsw, major, minor). In particular, if you run a program which connects to a USB device and then you pull the USB device and plug it back in, the vnode subsystem will continue to believe that the device is open when, in fact, it isn't (because it was destroyed and recreated). In particular, note that all the VFS mount procedures now check devices via v_udev instead of v_rdev prior to calling VOP_OPEN(), since v_rdev is NULL prior to the first open. * The disk layer's device interaction has been rewritten. The disk layer (i.e. the slice and disklabel management layer) no longer overloads its data onto the device structure representing the underlying physical disk. Instead, the disk layer uses the new cdevsw_add() functionality to register its own cdevsw using the underlying device's major number, and simply does NOT register the underlying device's cdevsw. No confusion is created because the device hash is now based on (cdevsw,major,minor) rather then (major,minor). NOTE: This also means that underlying raw disk devices may use the entire device minor number instead of having to reserve the bits used by the disk layer, and also means that can we (theoretically) stack a fully disklabel-supported 'disk' on top of any block device. * The new reference counting scheme prevents this by associating a device with a cdevsw and disconnecting the device from its cdevsw when the cdevsw is removed. Additionally, all udev2dev() lookups run through the cdevsw mask/match and only successfully find devices still associated with an active cdevsw. * Major work on MFS: MFS no longer shortcuts vnode and device creation. It now creates a real vnode and a real device and implements real open and close VOPs. Additionally, due to the disk layer changes, MFS is no longer limited to 255 mounts. The new limit is 16 million. Since MFS creates a real device node, mount_mfs will now create a real /dev/mfs<PID> device that can be read from userland (e.g. so you can dump an MFS filesystem). * BUF AND DEVICE STRATEGY changes. The struct buf contains a b_dev field. In order to properly handle stacked devices we now require that the b_dev field be initialized before the device strategy routine is called. This required some additional work in various VFS implementations. To enforce this requirement, biodone() now sets b_dev to NODEV. The new disk layer will adjust b_dev before forwarding a request to the actual physical device. * A bug in the ISO CD boot sequence which resulted in a panic has been fixed. Testing by: lots of people, but David Rhodus found the most aggregious bugs.
device switch 1/many: Remove d_autoq, add d_clone (where d_autoq was). d_autoq was used to allow the device port dispatch to mix old-style synchronous calls with new style messaging calls within a particular device. It was never used for that purpose. d_clone will be more fully implemented as work continues. We are going to install d_port in the dev_t (struct specinfo) structure itself and d_clone will be needed to allow devices to 'revector' the port on a minor-number by minor-number basis, in particular allowing minor numbers to be directly dispatched to distinct threads. This is something we will be needing later on.
Synchronize a bunch of things from FreeBSD-5 in preparation for the new ACPICA driver support. * Bring in a lot of new bus and pci DEV_METHODs from FreeBSD-5 * split apic.h into apicreg.h and apicio.h * rename INTR_TYPE_FAST -> INTR_FAST and move the #define * rename INTR_TYPE_EXCL -> INTR_EXCL and move the #define * rename some PCIR_ registers and add additional macros from FreeBSD-5 * note: new pcib bus call, host_pcib_get_busno() imported. * kern/subr_power.c no longer optional. Other changes: * machine/smp.h machine smp/smptests.h can now be #included unconditionally, and some APIC_IO vs SMP separation has been done as well. * gd_acpi_id and gd_apic_id added to machine/globaldata.h prep for new ACPI code. Despite all the changes, the generated code should be virtually the same. These were mostly additions which the pre-existing code does not (yet) use.
This commit represents a major revamping of the clock interrupt and timebase infrastructure in DragonFly. * Rip out the existing 8254 timer 0 code, and also disable the use of Timer 2 (which means that the PC speaker will no longer go beep). Timer 0 used to represent a periodic interrupt and a great deal of code was in place to attempt to obtain a timebase off of that periodic interrupt. Timer 0 is now used in software retriggerable one-shot mode to produce variable-delay interrupts. A new hardware interrupt clock abstraction called SYSTIMERS has been introduced which allows threads to register periodic or one-shot interrupt/IPI callbacks at approximately 1uS granularity. Timer 2 is now set in continuous periodic mode with a period of 65536 and provides the timebase for the system, abstracted to 32 bits. All the old platform-integrated hardclock() and statclock() code has been rewritten. The old IPI forwarding code has been #if 0'd out and will soon be entirely removed (the systimer abstraction takes care of multi-cpu registrations now). The architecture-specific clkintr() now simply calls an entry point into the systimer and provides a Timer 0 reload and Timer 2 timebase function API. * On both UP and SMP systems, cpus register systimer interrupts for the Hz interrupt, the stat interrupt, and the scheduler round-robin interrupt. The abstraction is carefully designed to allow multiple interrupts occuring at the same time to be processed in a single hardware interrupt. While we currently use IPI's to distribute requested interrupts from other cpu's, the intent is to use the abstraction to take advantage of per-cpu timers when available (e.g. on the LAPIC) in the future. systimer interrupts run OUTSIDE THE MP LOCK. Entry points may be called from the hard interrupt or via an IPI message (IPI messages have always run outside the MP lock). * Rip out timecounters and disable alternative timecounter code for other time sources. This is temporary. Eventually other time sources, such as the TSC, will be reintegrated as independant, parallel-running entities. There will be no 'time switching' per-say, subsystems will be able to select which timebase they wish to use. It is desireable to reintegrate at least the TSC to improve [get]{micro,nano}[up]time() performance. WARNING: PPS events may not work properly. They were not removed, but they have not been retested with the new code either. * Remove spl protection around [get]{micro,nano}[up]time() calls, they are now internally protected. * Use uptime instead of realtime in certain CAM timeout tests * Remove struct clockframe. Use struct intrframe everywhere where clockframe used to be used. * Replace most splstatclock() protections with crit_*() protections, because such protections must now also protect against IPI messaging interrupts. * Add fields to the per-cpu globaldata structure to access timebase related information using only a critical section rather then a mutex. However, the 8254 Timer 2 access code still uses spin locks. More work needs to be done here, the 'realtime' correction is still done in a single global 'struct timespec basetime' structure. * Remove the CLKINTR_PENDING icu and apic interrupt hacks. * Augment the IPI Messaging code to make an intrframe available to callbacks. * Document 8254 timing modes in i386/sai/timerreg.h. Note that at the moment we assume an 8254 instead of an 8253 as we are using TIMER_SWSTROBE mode. This may or may not have to be changed to an 8253 mode. * Integrate the NTP correction code into the new timebase subsystem. * Separate boottime from basettime. Once boottime is believed to be stable it is no longer effected by NTP or other time corrections. CAVETS: * PC speaker no longer works * Profiling interrupt rate not increased (it needs work to be made operational on a per-cpu basis rather then system-wide). * The native timebase API is function-based, but currently hardwired. * There might or might not be issues with 486 systems due to the timer mode I am using.
Cleanup the duel-macro specifications in sioreg.h and ns16550.h by having sioreg.h include ns16550.h. Submitted-by: Robert Garrett <firstname.lastname@example.com>
Split off the PCCARD specific driver parts of fd and sio and remove last uses of NCARD and use_card.h. The header will go with the NEWCARD merge.
lets go ahead and commit this before we hit the network interfaces __P removal
kernel tree reorganization stage 1: Major cvs repository work (not logged as commits) plus a major reworking of the #include's to accomodate the relocations. * CVS repository files manually moved. Old directories left intact and empty (temporary). * Reorganize all filesystems into vfs/, most devices into dev/, sub-divide devices by function. * Begin to move device-specific architecture files to the device subdirs rather then throwing them all into, e.g. i386/include * Reorganize files related to system busses, placing the related code in a new bus/ directory. Also move cam to bus/cam though this may not have been the best idea in retrospect. * Reorganize emulation code and place it in a new emulation/ directory. * Remove the -I- compiler option in order to allow #include file localization, rename all config generated X.h files to use_X.h to clean up the conflicts. * Remove /usr/src/include (or /usr/include) dependancies during the kernel build, beyond what is normally needed to compile helper programs. * Make config create 'machine' softlinks for architecture specific directories outside of the standard <arch>/include. * Bump the config rev. WARNING! after this commit /usr/include and /usr/src/sys/compile/* should be regenerated from scratch.
DEV messaging stage 1/4: Rearrange struct cdevsw and add a message port and auto-queueing mask. The mask will tell us which message functions can be safely queued to another thread and which still need to run in the context of the caller. Primary configuration fields (name, cmaj, flags, port, autoq mask) are now at the head of the structure. Function vectors, which may eventually go away, are at the end. The port and autoq fields are non-functional in this stage. The old BDEV device major number support has also been removed from cdevsw, and code has been added to translate the bootdev passed from the boot code (the boot code has always passed the now defunct block device major numbers and we obviously need to keep that compatibility intact).
Remove the priority part of the priority|flags argument to tsleep(). Only flags are passed now. The priority was a user scheduler thingy that is not used by the LWKT subsystem. For process statistics assume sleeps without P_SINTR set to be disk-waits, and sleeps with it set to be normal sleeps. This commit should not contain any operational changes.
MP Implementation 1/2: Get the APIC code working again, sweetly integrate the MP lock into the LWKT scheduler, replace the old simplelock code with tokens or spin locks as appropriate. In particular, the vnode interlock (and most other interlocks) are now tokens. Also clean up a few curproc/cred sequences that are no longer needed. The APs are left in degenerate state with non IPI interrupts disabled as additional LWKT work must be done before we can really make use of them, and FAST interrupts are not managed by the MP lock yet. The main thing for this stage was to get the system working with an APIC again. buildworld tested on UP and 2xCPU/MP (Dell 2550)
threaded interrupts 1: Rewrite the ICU interrupt code, splz, and doreti code. The APIC code hasn't been done yet. Consolidate many interrupt thread related functions into MI code, especially software interrupts. All normal interrupts and software interrupts are now threaded, and I'm almost ready to deal with interrupt-thread-only preemption. At the moment I run interrupt threads in a critical section and probably will continue to do so until I can make them MP safe.
proc->thread stage 4: rework the VFS and DEVICE subsystems to take thread pointers instead of process pointers as arguments, similar to what FreeBSD-5 did. Note however that ultimately both APIs are going to be message-passing which means the current thread context will not be useable for creds and descriptor access.
proc->thread stage 2: MAJOR revamping of system calls, ucred, jail API, and some work on the low level device interface (proc arg -> thread arg). As -current did, I have removed p_cred and incorporated its functions into p_ucred. p_prison has also been moved into p_ucred and adjusted accordingly. The jail interface tests now uses ucreds rather then processes. The syscall(p,uap) interface has been changed to just (uap). This is inclusive of the emulation code. It makes little sense to pass a proc pointer around which confuses the MP readability of the code, because most system call code will only work with the current process anyway. Note that eventually *ALL* syscall emulation code will be moved to a kernel-protected userland layer because it really makes no sense whatsoever to implement these emulations in the kernel. suser() now takes no arguments and only operates with the current process. The process argument has been removed from suser_xxx() so it now just takes a ucred and flags. The sysctl interface was adjusted somewhat.
Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids. Most ids have been removed from !lint sections and moved into comment sections.
import from FreeBSD RELENG_4 1.291.2.35


text:
Freeport Falcons Spring Athletes of the Year
HARRISON STIVERS, Junior-Track
All-state, honorable mention
Class C state champion, 400
Class C state champion, 800
WMC Division II all-star, first-team, 800
Stivers cemented his reputation as a premier middle-distance runner with a sensational performance on the biggest stage.
Stivers, who also plays sweeper in soccer during the fall, began running as a freshman indoors and quickly worked his way up the ladder as one of the finest middle distance runners in the state. He scored in the 400 (seventh) as a freshman, was runner-up in that event (and was part of a state champion 3,200 relay team) as a sophomore and after finishing second in the 400 indoors, set about producing a dominant junior campaign this spring.
Stivers was the Division II champion of the 800 at the Western Maine Conference championship meet (2 minutes, 4.47 seconds), then turned it up a notch at the Class C state meet, capturing the 800 in 2:02.51 and the 400 in 50.74 seconds.
"I hoped to win one title," Stivers said. "The 800 was a surprise. It was a good day for me and not a great day for others."
Stivers accounted for all 20 of his team's points at states and only 13 teams had more.
At New Englands, Stivers was 22nd in the 400 (52.53) and 26th in the 800 (2:02.58).
"I like running a lot," Stivers said. "I'm very determined and I hate to lose. I love running with a group. It builds camaraderie."
Stivers is looking to break the 50 second mark in the 400 (50.7 is his best time) and the 2-minute mark in the 800 (2:02 is his current best). He runs in the summer to stay in shape and hopes to compete in college. At press time, Hobart/William Smith, Dickinson and Muhlenberg Colleges are his top three choices.
First, he has some unfinished business at the high school level. Considering what Harrison Stivers, Freeport's Spring Male Athlete of the Year, has accomplished so far, it wouldn't be wise to bet against him meeting all of his goals as a senior.
Coach Brian Berkemeyer's comment: "Harrison's a leader on the team. He's a really good all-around kid, athlete, student, person. His work ethic has helped quite a bit. He's focused a lot on distance. He's got natural ability and speed. I think he still has another gear to hit. I think he'll do that next year."
Previous winners:
2012: Sawyer Williams (baseball)
2011: Hans Pope (lacrosse)
2010: Hans Pope (lacrosse)
2009: Greg Ordway (lacrosse)
2008: Parker Chipman (track)
2007: Luke Charest (lacrosse)
2006: Kelso Davis (lacrosse)
2005: Tim Gray (lacrosse)
2004: Kelso Davis (lacrosse)
2003: Tyler Allen (baseball)
2002: Ben Grant (baseball)
JOCELYN DAVEE, Senior-Lacrosse
- Team MVP
- WMC All-Conference, honorable mention
- WMC All-Academic
- US Lacrosse All-Academic
- Senior All-Star
- All Sports Boosters' Senior Athlete of the Year
- Captain
Davee sparked Freeport to another strong season, leading the way with her offense, determination and leadership.
Davee, a three-sport athlete, who earned Fall Athlete of the Year recognition in soccer before helping basketball to its best record in a decade, started playing lacrosse in the fifth grade and spent four years as a starter on the Freeport varsity. After helping the Falcons to their first state game appearance as a junior, Davee had a senior season to remember.
Freeport entered the 2013 campaign on a mission to prove that lst year's run wasn't a fluke and it took Davee all of 77 seconds to score her first goal, sparking a win at North Yarmouth Academy. Davee had two goals and won 14 of 18 draws in that one. She scored three goals in a loss to Cape Elizabeth, had two goals against Windham, three versus Greely, the overtime game-winner against York, four goals against eventual champion Waynflete, a season-high seven in a win at South Portland, four against York and five versus Wells.
The Falcons' hopes of returning to the state final were dashed by Yarmouth in a close loss in the semifinals, but Davee bowed out with a stellar performance, scoring four goals, winning 15 of 24 draws and collecting six ground balls.
For the season she had 36 goals (first on the team), 36 draw wins (which was first on the team, despite her claim that she doesn't know what she's doing in the circle), 37 ground balls (second on the team) and 11 interceptions (tops on the squad).
"People thought we were lucky (in 2012)," Davee said. "I thought this year went really well."
Davee is every bit the accomplished student that she is an athlete, belonging to National Honor Society and qualifying for the conference and All-American All-Academic teams. She mentors younger players and plays premier soccer. Davee will attend the University of New England in the fall and plans to try out for soccer and perhaps lacrosse as well. She'll study exercise science.
For Jocelyn Davee, Freeport's Spring Female Athlete of the Year, the sky's the limit. Her place in Freeport lore is secure and her future is bright.
Coach Karin Kurry's comment: "Jocelyn is a solid athlete. She excels both on the field and in the classroom. She can play both offense and defense. As a middie, she helped transition the ball up the field. This year, her intensity on the field was contagious. She was the spark who got the team going. Her shot improved to the point where she could fire the ball from 12 yards out."
Previous winners:
2012: Alexandra Mitch (lacrosse)
2011: Leigh Wyman (softball)
2010: Lucy Whitacre (lacrosse)
2009: Kristen Poulin (track)
2008: Andrea Goodrich (track)
2007: Molly Lincoln (lacrosse)
2006: Amber Klages (lacrosse)
2005: Cassandra Dyer (softball)
2004: Logan Crane (track)
2003: Molly Charest (lacrosse)
2002: Kerry Blenk (softball)

subset: commoncrawl


text:
Hold down Control (PC) or Command (Mac) key + mouseclick to select more than one option
|Avg. Dinner Entrée
|Greater than $25
|$18.01 - $25
|$12.01 - $18
|$7.01 - $12
|Less than $7
Posted by Anonymous on 02/24/2009
I truly do not understand the people saying the owners are rude (They don't have waiters so far as I know, just the two owners and their Dad I believe). I have never had a bad experience. The food is always amazing, I was hooked on the churrasco for a while but now can barely bring myself to order anything but the fried snapper, holy jesus it is always so amazing. It's slightly more expensive then when it opened and no longer BYOB but the wine is cheap (like 5-10 bucks more then Discovery wines) and the sangria is delicious and nice, we were the only ones in for brunch and they ended up pouring an entire bottle of champagne into our sangria pitcher to "top us off", not to mention how delicious the sangria was in the first place. I would eat here every day if I could :)
Posted by v$ on 01/21/2009
I have been a regular ever since I was brought here after my move to NY. The place is excellent - cheap, delicious, and in a good setting. It's not big, but that's part of the charm - just wait out your turn in the bar next door :) The service is friendly and they take care of you. Maybe, if you do the earlier sitting, you may be asked to wrap up so that the later diners can come in, but as part of the late crew, I have never felt rushed to finish and have rather enjoyed the food and BYOB option till the wee hours of the morning... Ropa vieja = excellent, so is the Churrasco steak...
Posted by Anonymous on 11/07/2008
So first of all every single post stating the service was subpar is wrong. Sure, it's a tiny joint and you will have to wait, and it is slightly under staffed, but the hostess and waiter and everyone was awesome. The food was AMAZING. I vowed to become a regular and plan to systematically work my way through everything on the menu. Take it easy on the people working there. They are people too and not being maliciously rude. It's a small place. People are demanding. Give them a break. Maybe they had a tough day. It's not all about you.
Posted by Anonymous on 11/03/2008
We were a happy group of 10 looking to enjoy a cozy Sunday dinner with a few bottles of wine. Unfortunately, we were not informed of the corkage fee when we made the reservation. As we calmly questioned the corkage policy, the female host was increasingly rude and told us that if she did not inform us on the phone- well, it was written on the menu and that was an opportunity for us to leave. A male host also showed up and told us, repeatedly, that the door was there and we could leave if we liked. We paused for a moment because the menu sounded good and it was cold out but we decided that the waitstaff attitude was so obnoxious and unnecessary- especially on a Sunday night when they were empty!
Posted by Lydia on 09/06/2008
Although we had a reservation we had to wait an hour and 15 minutes! The hostess was kind, but made no effort to provide updates or check in with us. But when we finally sat down we were floored by the food! Atmosphere was equally cozy. They compensated us for our wait nicely. Must have the chimichurri steak med-rare! Insane.
Posted by Anonymous on 08/05/2008
A friend had been raving about this place for weeks and finally took me there. The best service, I have ever experienced in NYC, the food was amazing. I had shrimps that sat on a bed on fried plantains and white cheese...I was to die for! Can't wait to go back. Only downside to the place is that it is a bit small...but that gives it it's quaint ambiance.
Posted by a local on 06/26/2008
I bring my friends here all the time when they're around. This place is one of my favorites! delicious food, friendly and attentive service, warm atmosphere, and its byob. recommend skirt steak and empanaditas.


text:
Below is the poem entitled Most Prodigal which was written by poet
Karl Nkecha
Safindah. Please feel free to comment on this poem. However, please remember, PoetrySoup is a place of encouragement and growth.
Read Poems by
Karl Nkecha
Karl Nkecha Safindah
It's been long since I knocked your door.
Too long I dread to trace your steps
For fear I'd sure misplace my tread.
But now it's cold, I have no choice,
Your door conceals the warmth of home.
I do return, most prodigal,
To your way of peace that I shunned.
The ways of Gog are wild,
Vile are the sons of Maggog.
I try my best to keep me clean,
Tho' filth invades my vocal cords
And wicked thoughts impede my mind.
I try not to, but what can I,
Mortal man with a fragile heart
Prone to melt 'fore Satan's flames
And breed desires of the flesh?
No favours do I reclaim,
For foolishness itself grew
Where wisdom's bones laid buried.
Now I'm weary, frosty and cold,
And with feet gullied, I trudge, ashamed,
Wishing to find your door,
And hoping too that in your love,
From your undeserved mercies I'd gain.


text:
|Type of
|UAC code
|Pattern of
|Course start date
|Major offer round
|B Engineering (Honours) (Electrical)1
|Newcastle – Callaghan
|23 Feb 2015
27 Jul 2015
|21 Jan 2015
24 Jun 2015
For information about when you'll need to apply to be considered in each offer round refer to UAC applications and offer round dates. Check the course search for the most recent final closing date.
Also read the information in the Engineering programs section below.
Assumed knowledge: Mathematics (Band 5 or above). Applicants who have achieved less than Band 5 may need additional study and/or assistance to successfully complete the mathematics requirement of the program.
Recommended studies: HSC Mathematics Extension 1 or higher, any two units of science (Physics preferred).
Major studies: Electrical engineering, electronics engineering. Minor studies: Analogue, digital and switching electronics, computer hardware, control and automation, electromagnetics, engineering management, microprocessor applications, power systems, signal processing, telecommunications.
Career opportunities: Examples include employment in industries such as power generation, power distribution, mining, manufacturing, defence, computing and telecommunications, and in areas such as renewable energy, electronics, robotics, industrial automation, control, electrical drives, power and energy systems, telecommunications and biomedical instrumentation. Electrical engineers are currently in demand nationally and internationally within these industries.
Additional information: This degree provides a solid foundation in electrical engineering theory with the option to specialise in key areas of study. Courses are complemented with practical exercises performed in modern laboratory facilities.
Electrical engineers design, build and maintain all types of electrical and electronic equipment and systems. Electrical engineers might be involved in the generation and supply of electrical energy from conventional or alternative sources for developing the infrastructure for lighting, heating, cooking, manufacturing and transport systems, or for electronics used in communications, measurement and biomedical applications.
1. Subject to final approval.
Industrial experience: A minimum of 12 weeks of industrial experience during the program and the opportunity to undertake an industry-related project in the final year.
Honours: All graduates will be awarded with the B Engineering (Honours); however, those with superior performance will receive a graded honours classification.
Professional recognition: Engineering degree programs offered by the University of Newcastle are accredited by Engineers Australia, and through the Washington Accord by reciprocating bodies in the United Kingdom, United States of America and other countries. Software, Computer and Telecommunications Engineering programs are also accredited by the Australian Computer Society.
Additional information: For further information, call (02) 4921 5000, email firstname.lastname@example.com or visit www.newcastle.edu.au/faculty/engineering/
Scholarships: For the latest information on the range of scholarships and cadetships available, call the University on (02) 4921 6539 or fax (02) 4960 5759. Several scholarships are available, including the University of Newcastle Industry Scholarship Scheme, which provides financial support of between $25,000 and $75,000 for the duration of an undergraduate degree, combined with industry experience while you study. For details, visit www.newcastle.edu.au/uniss or read 'Scholarships'.
Recognition of prior learning: There are extensive credit transfer arrangements for students who have completed a TAFE Certificate, Associate Diploma or Diploma, or other university/formal study in related and associated fields. Read 'Academic credit'.
Bridging courses: Applicants who have not studied science are encouraged to take a bridging course. Read 'Bridging courses' for further information.
Course updates
Check UAC's course search throughout the 2014–15 admissions period for course updates, including new and cancelled courses.
Review of programs
The academic content of all programs is subject to routine review. For up-to-date details visit www.newcastle.edu.au/program
Applicants should note that under the revised Australian Qualifications Framework some programs with Honours are four year programs available with direct entry and other programs are three year end-on Honours programs that require a 3 year Bachelor degree for admission. Check the course descriptions carefully.
Key to abbreviations
For an explanation of the abbreviations used in this course description, visit Undergraduate course search results help


text:
About Us
Maps & Directions
Ways to Give
For Staff
Michigan Heart
Mercy Medical Group
Anticoagulation Clinic
Behavioral Services
Bereavement Services
Breast Health
Clinical Laboratories & Pathology
Clinical Research
Dialysis Services Unit
Digestive Health
Emergency Care
Home Care
Nutrition & Weight Management
Pain Management
Palliative Care
Pastoral Care
Radiology Services
Respiratory & Cardiopulmonary
Senior Services
Simulation Center
Sleep Disorder Center
Thoracic Health Services
Urgent Care
Women & Children
Wound Care
Patient Testimonials
Billing: Pay Online
For Patients
For Visitors
Market Cafe & Joe's Deli
Online Gift Shop
Maps and Directions
McAuley Inn
Telephone Numbers
Cancer Prevention & Screening Programs
Cooking Classes
eHealth News
The Farm at St. Joe's
Girls on the Run
Health Exploration Station
Health Information
Healthy Recipes
Inspirit Salon & Spa
Nutrition and Weight Management
Tobacco Cessation
Free Contact Hours and Career Fair for RNs
Third Annual Conference on Eating Disorders
Dawn Farm Education Series
Registration Process
Free Contact Hours and Career Fair for RNs
Search Current Job Openings
Career Development
Recruitment Process
Application FAQs
Patient Safety
Patient Feedback Form
Quality of Care
Awards and Recognition
Community Benefit Archive
Affordable Health Insurance Is Here
Faith Community Nursing
Gifts for Families in Need
Lead the Way
Credentialing Documents
Medical/PA Student Programs
Pharmacy Residency Program
Physician Assistant Residency Program
Physician Leadership
Physician Publications
Physician Relations
Physician Residency Programs
Schwartz Center Rounds
Clinical Pastoral Education
Student Training
CME Tracker
Log in SJMHS Patient Portal
Frequently Asked Questions
Pay Your Bill Online
Request Price Estimate
Log in to NextMD
Select a Service...
Healthy Living
Health Information
Health Information
eHealth News
Health Links
Health Tips
Health Information
In-Depth Reports Home
Back to Article
Colon cancer
More Features
Printer-friendly version
Colon cancer
Normal anatomy
The colon, or large intestine, is a muscular tube that begins at the end of the small intestine and ends at the rectum. The colon absorbs water from liquid stool that is delivered to it from the small intestine.
Colon cancer is the third most common internal cancer in the United States. Risk factors include certain types of colonic polyps, inflammatory bowel disease (such as Crohn's disease or ulcerative colitis), and certain hereditary disorders. Obesity, lack of exercise, and poor diets also contribute to colon cancer.
The treatment of colon cancer depends on the stage of the disease. Stage I cancer is limited to the inner lining of the colon; stage II cancer involves the entire wall of the colon; stage III cancer has spread to the lymph nodes; stage IV cancer has spread to other organs (metastasized).
Surgery is the main treatment for colon cancer, and removal of the involved colon is required. If the cancer is located near the rectum, a colostomy may be necessary. For stage I and II colon cancer, surgery is usually the only treatment. For stage III or IV colon cancer, chemotherapy is necessary after surgery. There is also some suggestion that chemotherapy may also be helpful in some selected stage II patients. Chemotherapy involves a course of drugs which are toxic to cancer cells.
Stage I and II colon cancer have very high cure rates (60 - 90%); lower cure rates are seen with stage III and IV colon cancer. To detect colon cancer early, when it is most curable, everyone over the age of 50 should have regular screening for colon cancer. Colonoscopy is the most accurate screening test.
Review Date: 5/14/2012
Reviewed By: Harvey Simon, MD, Editor-in-Chief, Associate Professor of Medicine, Harvard Medical School; Physician, Massachusetts General Hospital.
The information provided herein should not be used during any medical emergency or for the diagnosis or treatment of any medical condition. A licensed medical professional should be consulted for diagnosis and treatment of any and all medical conditions. Call 911 for all medical emergencies. Links to other sites are provided for information only -- they do not constitute endorsements of those other sites. © 1997-
Contact Us
Patient Feedback Form
Notice of Privacy Practices
Terms of Use / Online Privacy
Site Map
Regional Site
© 2015 Trinity Health
St. Joseph Mercy Ann Arbor | 5301 McAuley Drive, Ypsilanti, MI 48197 | 734-712-3456


text:
Highwire Press
Subjects: General
Login Required: No
Full Text: Mostly
Provider: Stanford University Libraries
Persistent URL: http://highwire.stanford.edu/
A division of the Stanford University Libraries, HighWire Press hosts the largest repository of high impact, peer-reviewed content, with 1060 journals and 4,386,654 full text articles from over 130 scholarly publishers. HighWire-hosted publishers have collectively made 1,728,972 articles free. With our partner publishers we produce 71 of the 200 most-frequently-cited journals. (August 2007)


text:
The new Yardbarker app is here! Install on your iPhone, iPad or Android device. You can also find us in Google Newsstand.
Dolphins ink three to one-year deals
MIAMI -- Receiver Kevin Cone has signed a one-year contract with the Miami Dolphins after spending the past three seasons with the Atlanta Falcons, where he contributed mostly on special teams. Receiver Michael Rios and quarterback Jordan Rodgers also signed one-year deals, the team said Thursday. Cone played in all 16 games last year and tied for second on the Falcons with seven...
Via Fox Sports Florida
Aaron Rogers' brother wraps up Fla. tour in Miami
BY NICK ST. DENISAaron Rogers' brother, Jordan, spent some time with the Tampa Bay Buccaneers and Jacksonville Jaguars over the past year. Yet after being let go by both teams, he still can't get out of Florida.The Miami Dolphins announced Thursday they signed the 25-year-old Rogers, along with a pair of wide receivers in Kevin Cone and Michael Rios.Rogers, who went undrafted in...
Via AFC East Daily
WR Cone, 2 others sign 1-year deals with Dolphins
MIAMI (AP) Receiver Kevin Cone has signed a one-year contract with the Miami Dolphins after spending the past three seasons with the Atlanta Falcons, where he contributed mostly on special teams.
Via FOXSports.com
Report: Dolphins Signing WR Kevin Cone
D. Orlando Ledbetter of the Atlanta Journal-Constitution reports that the Dolphins are signing WR Kevin Cone. Cone visited with the Panthers a few weeks ago and the Jaguars were also believed to have interest in him. Cone, 26, signed with the Falcons as an undrafted free agent out of Georgia Tech back in 2011. Last year, he appeared in 16 games for the Falcons, but played...
Via NFL Trade Rumors
April 02, 2014 | Discuss
Browns News
Delivered to your inbox
You'll also receive Yardbarker's daily Top 10, featuring the best sports stories from around the web. Customize your newsletter to get articles on your favorite sports and teams. And the best part? It's free!
Follow us on Twitter