Re: alc(4) support for Atheros AR815x
> Hi, > > I have a eeepc 1001pxd with "Attansic Technology L2C" working > and this patch didn't break the nic. > > One problem: very slow connectioncan I help? > try to make some tests? > Just an update: slow connection was a problem with my AP wifi. So my device is working well. Thank you, best regards -- Matteo Filippetto http://op83.blogspot.com
Re: ansi in uvm and kern
Also, for uvm, please ask ariane and oga specifically if it causes them pain (because they both have big diffs)
Re: notyet, notever
On 2011/06/28 15:05, Ted Unangst wrote: > if pss(4) mpu support, or wdc isapnp support, or whatever else isn't done > yet in isa/, i'm officially betting it's not getting done. atticize. > > Index: pss.c FWIW, there are even fewer pss(4) in dmesglog than mcd(4).. (i.e. none, the only entries are from pasted-in kernel config files).
softdep ansi
The ansification I know you've all be waiting for. md5 likes it. There's some other work to be done in here (STATIC), but this is just ansi. Also a small question of what to do with the commented parameters. I preserved the comments in the simplest way possible. They aren't used consistently, and perhaps another pass could done to integrate them better, but I'm not getting carried away on the first try. Index: ffs_softdep.c === RCS file: /home/tedu/cvs/src/sys/ufs/ffs/ffs_softdep.c,v retrieving revision 1.103 diff -u -r1.103 ffs_softdep.c --- ffs_softdep.c 12 Apr 2011 19:45:43 - 1.103 +++ ffs_softdep.c 28 Jun 2011 20:03:56 - @@ -217,9 +217,7 @@ #define FREE_LOCK_INTERLOCKED(lk) free_lock_interlocked(lk, __LINE__) STATIC void -acquire_lock(lk, line) - struct lockit *lk; - int line; +acquire_lock(struct lockit *lk, int line) { pid_t holder; int original_line; @@ -240,9 +238,7 @@ } STATIC void -free_lock(lk, line) - struct lockit *lk; - int line; +free_lock(struct lockit *lk, int line) { if (lk->lkt_held == -1) @@ -252,10 +248,7 @@ } STATIC void -acquire_lock_interlocked(lk, s, line) - struct lockit *lk; - int s; - int line; +acquire_lock_interlocked(struct lockit *lk, int s, int line) { pid_t holder; int original_line; @@ -276,9 +269,7 @@ } STATIC int -free_lock_interlocked(lk, line) - struct lockit *lk; - int line; +free_lock_interlocked(struct lockit *lk, int line) { if (lk->lkt_held == -1) @@ -304,10 +295,7 @@ STATIC void sema_release(struct sema *); STATIC void -sema_init(semap, name, prio, timo) - struct sema *semap; - char *name; - int prio, timo; +sema_init(struct sema *semap, char *name, int prio, int timo) { semap->holder = -1; @@ -318,9 +306,7 @@ } STATIC int -sema_get(semap, interlock) - struct sema *semap; - struct lockit *interlock; +sema_get(struct sema *semap, struct lockit *interlock) { int s; @@ -341,8 +327,7 @@ } STATIC void -sema_release(semap) - struct sema *semap; +sema_release(struct sema *semap) { if (semap->value <= 0 || semap->holder != CURPROC->p_pid) { @@ -495,9 +480,7 @@ #define WORKITEM_FREE(item, type) workitem_free((struct worklist *)item) STATIC void -worklist_insert(head, item) - struct workhead *head; - struct worklist *item; +worklist_insert(struct workhead *head, struct worklist *item) { if (lk.lkt_held == -1) @@ -511,8 +494,7 @@ } STATIC void -worklist_remove(item) - struct worklist *item; +worklist_remove(struct worklist *item) { if (lk.lkt_held == -1) @@ -526,8 +508,7 @@ } STATIC void -workitem_free(item) - struct worklist *item; +workitem_free(struct worklist *item) { if (item->wk_state & ONWORKLIST) { @@ -581,8 +562,7 @@ * and does so in order from first to last. */ STATIC void -add_to_worklist(wk) - struct worklist *wk; +add_to_worklist(struct worklist *wk) { if (wk->wk_state & ONWORKLIST) { @@ -611,8 +591,7 @@ * until all the old ones have been purged from the dependency lists. */ int -softdep_process_worklist(matchmnt) - struct mount *matchmnt; +softdep_process_worklist(struct mount *matchmnt) { struct proc *p = CURPROC; int matchcnt, loopcount; @@ -731,9 +710,7 @@ * Process one item on the worklist. */ STATIC int -process_worklist_item(matchmnt, flags) - struct mount *matchmnt; - int flags; +process_worklist_item(struct mount *matchmnt, int flags) { struct worklist *wk, *wkend; struct dirrem *dirrem; @@ -843,9 +820,7 @@ * Move dependencies from one buffer to another. */ void -softdep_move_dependencies(oldbp, newbp) - struct buf *oldbp; - struct buf *newbp; +softdep_move_dependencies(struct buf *oldbp, struct buf *newbp) { struct worklist *wk, *wktail; @@ -868,10 +843,7 @@ * Purge the work list of all items associated with a particular mount point. */ int -softdep_flushworklist(oldmnt, countp, p) - struct mount *oldmnt; - int *countp; - struct proc *p; +softdep_flushworklist(struct mount *oldmnt, int *countp, struct proc *p) { struct vnode *devvp; int count, error = 0; @@ -911,10 +883,7 @@ * Flush all vnodes and worklist items associated with a specified mount point. */ int -softdep_flushfiles(oldmnt, flags, p) - struct mount *oldmnt; - int flags; - struct proc *p; +softdep_flushfiles(struct mount *oldmnt, int flags, struct proc *p) { int error, count, loopcnt; @@ -989,11 +958,8 @@ * This routine must be called with splbio interrupts blocked. */ STATIC int -pagedep_lookup(ip, lbn, flags, pagedeppp) - struct inode *ip; - daddr64_t lbn; - int flags; - struct pagedep **pagedeppp; +pa
ansi in uvm and kern
only a few changes, and now uvm and kern should be all ansi all the time. Index: kern/exec_subr.c === RCS file: /home/tedu/cvs/src/sys/kern/exec_subr.c,v retrieving revision 1.28 diff -u -r1.28 exec_subr.c --- kern/exec_subr.c14 Nov 2006 18:00:27 - 1.28 +++ kern/exec_subr.c28 Jun 2011 19:19:48 - @@ -54,15 +54,7 @@ */ void -new_vmcmd(evsp, proc, len, addr, vp, offset, prot, flags) - struct exec_vmcmd_set *evsp; - int (*proc)(struct proc * p, struct exec_vmcmd *); - u_long len; - u_long addr; - struct vnode *vp; - u_long offset; - u_int prot; - int flags; +new_vmcmd(struct exec_vmcmd_set *evsp, int (*proc)(struct proc *, struct exec_vmcmd *), u_long len, u_long addr, struct vnode *vp, u_long offset, u_int prot, int flags) { struct exec_vmcmd*vcp; @@ -81,8 +73,7 @@ #endif /* DEBUG */ void -vmcmdset_extend(evsp) - struct exec_vmcmd_set *evsp; +vmcmdset_extend(struct exec_vmcmd_set *evsp) { struct exec_vmcmd *nvcp; u_int ocnt; @@ -165,9 +156,7 @@ */ int -vmcmd_map_pagedvn(p, cmd) - struct proc *p; - struct exec_vmcmd *cmd; +vmcmd_map_pagedvn(struct proc *p, struct exec_vmcmd *cmd) { /* * note that if you're going to map part of a process as being @@ -183,21 +172,21 @@ */ if (cmd->ev_len == 0) - return(0); + return (0); if (cmd->ev_offset & PAGE_MASK) - return(EINVAL); + return (EINVAL); if (cmd->ev_addr & PAGE_MASK) - return(EINVAL); + return (EINVAL); if (cmd->ev_len & PAGE_MASK) - return(EINVAL); + return (EINVAL); /* * first, attach to the object */ - uobj = uvn_attach((void *) cmd->ev_vp, VM_PROT_READ|VM_PROT_EXECUTE); + uobj = uvn_attach((void *)cmd->ev_vp, VM_PROT_READ|VM_PROT_EXECUTE); if (uobj == NULL) - return(ENOMEM); + return (ENOMEM); /* * do the map @@ -278,9 +267,7 @@ */ int -vmcmd_map_zero(p, cmd) - struct proc *p; - struct exec_vmcmd *cmd; +vmcmd_map_zero(struct proc *p, struct exec_vmcmd *cmd) { int error; @@ -313,9 +300,7 @@ */ int -exec_setup_stack(p, epp) - struct proc *p; - struct exec_package *epp; +exec_setup_stack(struct proc *p, struct exec_package *epp) { #ifdef MACHINE_STACK_GROWS_UP @@ -354,5 +339,5 @@ VM_PROT_READ|VM_PROT_WRITE); #endif - return 0; + return (0); } Index: uvm/uvm_map.c === RCS file: /home/tedu/cvs/src/sys/uvm/uvm_map.c,v retrieving revision 1.141 diff -u -r1.141 uvm_map.c --- uvm/uvm_map.c 6 Jun 2011 17:10:23 - 1.141 +++ uvm/uvm_map.c 28 Jun 2011 19:24:50 - @@ -3356,8 +3356,7 @@ */ void -uvmspace_share(p1, p2) - struct proc *p1, *p2; +uvmspace_share(struct proc *p1, struct proc *p2) { p2->p_vmspace = p1->p_vmspace; p1->p_vmspace->vm_refcnt++; @@ -3924,10 +3923,8 @@ */ void -uvm_object_printit(uobj, full, pr) - struct uvm_object *uobj; - boolean_t full; - int (*pr)(const char *, ...); +uvm_object_printit(struct uvm_object *uobj, boolean_t full, +int (*pr)(const char *, ...)) { struct vm_page *pg; int cnt = 0; @@ -3965,10 +3962,8 @@ "\31PMAP1\32PMAP2\33PMAP3"; void -uvm_page_printit(pg, full, pr) - struct vm_page *pg; - boolean_t full; - int (*pr)(const char *, ...); +uvm_page_printit(struct vm_page *pg, boolean_t full, +int (*pr)(const char *, ...)) { struct vm_page *tpg; struct uvm_object *uobj; Index: uvm/uvm_stat.c === RCS file: /home/tedu/cvs/src/sys/uvm/uvm_stat.c,v retrieving revision 1.22 diff -u -r1.22 uvm_stat.c --- uvm/uvm_stat.c 17 Jun 2009 00:13:59 - 1.22 +++ uvm/uvm_stat.c 28 Jun 2011 19:25:28 - @@ -184,7 +184,7 @@ #endif /* UVMHIST */ void -uvmcnt_dump() +uvmcnt_dump(void) { struct uvm_cnt *uvc = uvm_cnt_head;
notyet, notever
if pss(4) mpu support, or wdc isapnp support, or whatever else isn't done yet in isa/, i'm officially betting it's not getting done. atticize. Index: isapnp.c === RCS file: /home/tedu/cvs/src/sys/dev/isa/isapnp.c,v retrieving revision 1.39 diff -u -r1.39 isapnp.c --- isapnp.c7 Apr 2011 15:30:16 - 1.39 +++ isapnp.c28 Jun 2011 18:59:22 - @@ -329,14 +329,6 @@ return error; bad: -#ifdef notyet - for (ndrq--; ndrq >= 0; ndrq--) - isapnp_free_pin(&ipa->ipa_drq[ndrq]); - - for (nirq--; nirq >= 0; nirq--) - isapnp_free_pin(&ipa->ipa_irq[nirq]); -#endif - for (nmem32--; nmem32 >= 0; nmem32--) isapnp_free_region(memt, &ipa->ipa_mem32[nmem32]); @@ -371,14 +363,6 @@ struct isa_attach_args *ipa; { int i; - -#ifdef notyet - for (i = 0; i < ipa->ipa_ndrq; i++) - isapnp_free_pin(&ipa->ipa_drq[i]); - - for (i = 0; i < ipa->ipa_nirq; i++) - isapnp_free_pin(&ipa->ipa_irq[i]); -#endif for (i = 0; i < ipa->ipa_nmem32; i++) isapnp_free_region(memt, &ipa->ipa_mem32[i]); Index: pss.c === RCS file: /home/tedu/cvs/src/sys/dev/isa/pss.c,v retrieving revision 1.24 diff -u -r1.24 pss.c --- pss.c 30 Jun 2010 11:21:35 - 1.24 +++ pss.c 28 Jun 2011 19:02:07 - @@ -127,24 +127,6 @@ int mic_mute, cd_mute, dac_mute; }; -#ifdef notyet -struct mpu_softc { - struct device sc_dev; /* base device */ - void*sc_ih; /* interrupt vectoring */ - - int sc_iobase; /* MIDI I/O port base address */ - int sc_irq; /* MIDI interrupt */ -}; - -struct pcd_softc { - struct device sc_dev; /* base device */ - void*sc_ih; /* interrupt vectoring */ - - int sc_iobase; /* CD I/O port base address */ - int sc_irq; /* CD interrupt */ -}; -#endif - #ifdef AUDIO_DEBUG #define DPRINTF(x) if (pssdebug) printf x intpssdebug = 0; @@ -158,18 +140,7 @@ intspprobe(struct device *, void *, void *); void spattach(struct device *, struct device *, void *); -#ifdef notyet -intmpuprobe(struct device *, void *, void *); -void mpuattach(struct device *, struct device *, void *); - -intpcdprobe(struct device *, void *, void *); -void pcdattach(struct device *, struct device *, void *); -#endif - intpssintr(void *); -#ifdef notyet -intmpuintr(void *); -#endif intpss_speaker_ctl(void *, int); @@ -187,10 +158,6 @@ intpss_setdma(int, int); intpss_testirq(struct pss_softc *, int); intpss_testdma(struct pss_softc *, int); -#ifdef notyet -intpss_reset_dsp(struct pss_softc *); -intpss_download_dsp(struct pss_softc *, u_char *, int); -#endif #ifdef AUDIO_DEBUG void pss_dump_regs(struct pss_softc *); #endif @@ -268,24 +235,6 @@ NULL, "sp", DV_DULL }; -#ifdef notyet -struct cfattach mpu_ca = { - sizeof(struct mpu_softc), mpuprobe, mpuattach -}; - -struct cfdriver mpu_cd = { - NULL, "mpu", DV_DULL -}; - -struct cfattach pcd_ca = { - sizeof(struct pcd_softc), pcdprobe, pcdattach -}; - -struct cfdriver pcd_cd = { - NULL, "pcd", DV_DULL -}; -#endif - struct audio_device pss_device = { "pss,ad1848", "", @@ -577,109 +526,6 @@ return(ret); } -#ifdef notyet -int -pss_reset_dsp(sc) - struct pss_softc *sc; -{ -u_long i; -int pss_base = sc->sc_iobase; - -outw(pss_base+PSS_CONTROL, PSS_RESET); - -for (i = 0; i < 32768; i++) - inw(pss_base+PSS_CONTROL); - -outw(pss_base+PSS_CONTROL, 0); - -return 1; -} - -/* - * This function loads an image into the PSS - * card. The function loads the file by - * resetting the dsp and feeding it the boot bytes. - * First you feed the ASIC the first byte of - * the boot sequence. The ASIC waits until it - * detects a BMS and RD and asserts BR - * and outputs the byte. The host must poll for - * the BG signal. It then feeds the ASIC another - * byte which removes BR. - */ -int -pss_download_dsp(sc, block, size) - struct pss_softc *sc; - u_char *block; - int size; -{ -int i, val, count; -int pss_base = sc->sc_iobase; - -DPRINTF(("pss: downloading boot code...")); - -/* Warn DSP software that a boot is coming */ -outw(pss_base+PSS_DATA, 0x00fe); - -for (i = 0; i < 32768; i++) - if (inw(pss_base+PSS_DATA) == 0x5500) - break; -outw(pss_base+PSS_DATA, *block++); - -pss_reset_dsp(sc); - -DPRINTF(("start ")); - -count = 1; -while(1) { - int j; - for (j=0; j<327670; j++) { - /* Wait for BG to appear */ - if (inw(pss_base+PSS_STATUS) & PSS_FLAG3) - break; -
bridge interface search
This diff changes the if_bridge pointer of an interface (struct ifnet) to not point to "the bridge" but to its own "bridge interface" configuration. Should be safe because an interface can only be part of one bridge. This way all the LIST_FOREACH lineair searches in the bridge code can be replaced. There are also two of those in the forwarding path so this diff should make the bridge faster, especially with lots of interfaces. I've renamed it to "if_bridge_port" to smoke out all users and because it's clearer. (my fingers itch to rename "bridge_iflist" too as noted in the diff :-) ) Most of the diff is mechanical. The if_ether.c change got pretty hairy though and could some more eyes. And the whole thing could use some substantial testing... Index: sys/dev/isa/if_ie.c === RCS file: /cvs/src/sys/dev/isa/if_ie.c,v retrieving revision 1.35 diff -u -r1.35 if_ie.c --- sys/dev/isa/if_ie.c 28 Nov 2008 02:44:17 - 1.35 +++ sys/dev/isa/if_ie.c 24 Jun 2011 18:29:18 - @@ -1054,16 +1054,16 @@ */ #if NBPFILTER > 0 *to_bpf = (sc->sc_arpcom.ac_if.if_bpf != 0) || - (sc->sc_arpcom.ac_if.if_bridge != NULL); + (sc->sc_arpcom.ac_if.if_bridge_port != NULL); #else - *to_bpf = (sc->sc_arpcom.ac_if.if_bridge != NULL); + *to_bpf = (sc->sc_arpcom.ac_if.if_bridge_port != NULL); #endif /* If for us, accept and hand up to BPF */ if (ether_equal(eh->ether_dhost, sc->sc_arpcom.ac_enaddr)) return 1; #if NBPFILTER > 0 - if (*to_bpf && sc->sc_arpcom.ac_if.if_bridge == NULL) + if (*to_bpf && sc->sc_arpcom.ac_if.if_bridge_port == NULL) *to_bpf = 2; /* we don't need to see it */ #endif @@ -1095,9 +1095,9 @@ */ #if NBPFILTER > 0 *to_bpf = (sc->sc_arpcom.ac_if.if_bpf != 0) || - (sc->sc_arpcom.ac_if.if_bridge != NULL); + (sc->sc_arpcom.ac_if.if_bridge_port != NULL); #else - *to_bpf = (sc->sc_arpcom.ac_if.if_bridge != NULL); + *to_bpf = (sc->sc_arpcom.ac_if.if_bridge_port != NULL); #endif /* We want to see multicasts. */ if (eh->ether_dhost[0] & 1) @@ -1109,7 +1109,7 @@ /* Anything else goes to BPF but nothing else. */ #if NBPFILTER > 0 - if (*to_bpf && sc->sc_arpcom.ac_if.if_bridge == NULL) + if (*to_bpf && sc->sc_arpcom.ac_if.if_bridge_port == NULL) *to_bpf = 2; #endif return 1; Index: sys/net/bridgestp.c === RCS file: /cvs/src/sys/net/bridgestp.c,v retrieving revision 1.39 diff -u -r1.39 bridgestp.c --- sys/net/bridgestp.c 20 Nov 2010 14:23:09 - 1.39 +++ sys/net/bridgestp.c 24 Jun 2011 18:29:18 - @@ -1644,7 +1644,7 @@ if (ifp->if_type == IFT_BRIDGE) return; - sc = (struct bridge_softc *)ifp->if_bridge; + sc = ((struct bridge_iflist *)ifp->if_bridge_port)->bridge_sc; s = splnet(); LIST_FOREACH(p, &sc->sc_iflist, next) { @@ -2133,15 +2133,8 @@ err = ENOENT; break; } - if ((caddr_t)sc != ifs->if_bridge) { - err = ESRCH; - break; - } - LIST_FOREACH(p, &sc->sc_iflist, next) { - if (p->ifp == ifs) - break; - } - if (p == LIST_END(&sc->sc_iflist)) { + p = (struct bridge_iflist *)ifs->if_bridge_port; + if (p == NULL || p->bridge_sc != sc) { err = ESRCH; break; } Index: sys/net/if.c === RCS file: /cvs/src/sys/net/if.c,v retrieving revision 1.234 diff -u -r1.234 if.c --- sys/net/if.c13 Mar 2011 15:31:41 - 1.234 +++ sys/net/if.c24 Jun 2011 18:29:18 - @@ -531,7 +531,7 @@ #if NBRIDGE > 0 /* Remove the interface from any bridge it is part of. */ - if (ifp->if_bridge) + if (ifp->if_bridge_port) bridge_ifdetach(ifp); #endif @@ -1101,7 +1101,7 @@ carp_carpdev_state(ifp); #endif #if NBRIDGE > 0 - if (ifp->if_bridge) + if (ifp->if_bridge_port) bstp_ifstate(ifp); #endif rt_ifmsg(ifp); @@ -1137,7 +1137,7 @@ carp_carpdev_state(ifp); #endif #if NBRIDGE > 0 - if (ifp->if_bridge) + if (ifp->if_bridge_port) bstp_ifstate(ifp); #endif rt_ifmsg(ifp); Index: sys/net/if.h === RCS file: /cvs/src/sys/net/if.h,
fix gcc -rdynamic
The following fixes the gcc link spec so that gcc -rdynamic will pass -export-dynamic to ld(1). export-dynamic/-E has been a valid gnu ld option since 1994 and we use 2.15 everywhere at the moment so this should be fine. objdump -T can be used to easily test this. This diff does not contain powerpc/rs6000 as it is already in the spec there. >From http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html -rdynamic Pass the flag -export-dynamic to the ELF linker, on targets that support it. This instructs the linker to add all symbols, not only used ones, to the dynamic symbol table. This option is needed for some uses of dlopen or to allow obtaining backtraces from within a program. Index: egcs/gcc/config/sparc/openbsd.h === RCS file: /cvs/src/gnu/egcs/gcc/config/sparc/openbsd.h,v retrieving revision 1.5 diff -u -p -r1.5 openbsd.h --- egcs/gcc/config/sparc/openbsd.h 13 Jan 2006 17:51:18 - 1.5 +++ egcs/gcc/config/sparc/openbsd.h 28 Jun 2011 17:17:01 - @@ -32,6 +32,7 @@ Boston, MA 02111-1307, USA. */ %{shared:-shared} %{R*} \ %{static:-Bstatic} \ %{!static:-Bdynamic} \ + %{rdynamic:-export-dynamic} \ %{assert*} \ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}" Index: usr.bin/gcc/gcc/config/alpha/openbsd.h === RCS file: /cvs/src/gnu/usr.bin/gcc/gcc/config/alpha/openbsd.h,v retrieving revision 1.10 diff -u -p -r1.10 openbsd.h --- usr.bin/gcc/gcc/config/alpha/openbsd.h 2 Mar 2011 04:12:50 - 1.10 +++ usr.bin/gcc/gcc/config/alpha/openbsd.h 28 Jun 2011 17:17:02 - @@ -31,6 +31,7 @@ Boston, MA 02111-1307, USA. */ %{shared:-shared} %{R*} \ %{static:-Bstatic} \ %{!static:-Bdynamic} \ + %{rdynamic:-export-dynamic} \ %{assert*} \ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}" Index: usr.bin/gcc/gcc/config/arm/openbsd.h === RCS file: /cvs/src/gnu/usr.bin/gcc/gcc/config/arm/openbsd.h,v retrieving revision 1.9 diff -u -p -r1.9 openbsd.h --- usr.bin/gcc/gcc/config/arm/openbsd.h11 Nov 2008 23:48:19 - 1.9 +++ usr.bin/gcc/gcc/config/arm/openbsd.h28 Jun 2011 17:17:02 - @@ -87,6 +87,7 @@ Boston, MA 02111-1307, USA. */ %{shared:-shared} %{R*} \ %{static:-Bstatic} \ %{!static:-Bdynamic} \ + %{rdynamic:-export-dynamic} \ %{assert*} \ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}" #endif Index: usr.bin/gcc/gcc/config/sh/openbsd.h === RCS file: /cvs/src/gnu/usr.bin/gcc/gcc/config/sh/openbsd.h,v retrieving revision 1.11 diff -u -p -r1.11 openbsd.h --- usr.bin/gcc/gcc/config/sh/openbsd.h 16 Jun 2007 01:09:43 - 1.11 +++ usr.bin/gcc/gcc/config/sh/openbsd.h 28 Jun 2011 17:17:02 - @@ -64,7 +64,13 @@ Boston, MA 02111-1307, USA. */ "%{g:%{!nostdlib:-L/usr/lib/debug}} %{!nostdlib:%{!r*:%{!e*:-e __start}}} -dc -dp %{assert*}" #else #define SUBTARGET_LINK_SPEC \ - "%{g:%{!nostdlib:-L/usr/lib/debug}} %{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start %{shared:-Bshareable -x} -dc -dp %{R*} %{static:-Bstatic} %{assert*} %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}" + "%{g:%{!nostdlib:-L/usr/lib/debug}} \ + %{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start \ + %{shared:-Bshareable -x} -dc -dp %{R*} \ + %{static:-Bstatic} \ + %{rdynamic:-export-dynamic} \ + %{assert*} \ + %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}" #endif Index: gcc/gcc/config/alpha/openbsd.h === RCS file: /cvs/src/gnu/gcc/gcc/config/alpha/openbsd.h,v retrieving revision 1.3 diff -u -p -r1.3 openbsd.h --- gcc/gcc/config/alpha/openbsd.h 12 May 2010 18:19:50 - 1.3 +++ gcc/gcc/config/alpha/openbsd.h 28 Jun 2011 17:17:05 - @@ -31,6 +31,7 @@ Boston, MA 02110-1301, USA. */ %{shared:-shared} %{R*} \ %{static:-Bstatic} \ %{!static:-Bdynamic} \ + %{rdynamic:-export-dynamic} \ %{assert*} \ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}" Index: gcc/gcc/config/arm/openbsd.h === RCS file: /cvs/src/gnu/gcc/gcc/config/arm/openbsd.h,v retrieving revision 1.3 diff -u -p -r1.3 openbsd.h --- gcc/gcc/config/arm/openbsd.h25 Jun 2011 20:56:21 - 1.3 +++ gcc/gcc/config/arm/openbsd.h28 Jun 2011 17:17:05 - @@ -72,6 +72,7 @@ Boston, MA 02111-1307, USA. */ %{shared:-shared} %{R*} \ %{static:-Bstatic} \ %{!static:-Bdynamic} \ + %{rdynamic:-export-dynamic} \ %{assert*} \ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}" #endif Index: gcc/gcc/config/i386/openbsd64.h === RCS file: /cvs/src/gnu/gcc/gcc/config/i386/openb
Re: alc(4) support for Atheros AR815x
2011/5/16 Stuart Henderson : > So far, only had reports from L1C and the new devices (which is > not the point of sending out this sort of diff). This is a fairly > large diff and changes behaviour for existing devices. > > Has anyone with a currently-working L2C tested this to make sure > it doesn't break their nic? > Hi, I have a eeepc 1001pxd with "Attansic Technology L2C" working and this patch didn't break the nic. One problem: very slow connectioncan I help? try to make some tests? Latest snapshot of i386. Attached dmesg and pcidump. Best regards. Matteo Filippetto Domain /dev/pci0: 0:0:0: Intel Pineview DMI 0x: Vendor ID: 8086 Product ID: a010 0x0004: Command: 0006 Status ID: 2090 0x0008: Class: 06 Subclass: 00 Interface: 00 Revision: 00 0x000c: BIST: 00 Header Type: 00 Latency Timer: 00 Cache Line Size: 00 0x0010: BAR empty () 0x0014: BAR empty () 0x0018: BAR empty () 0x001c: BAR empty () 0x0020: BAR empty () 0x0024: BAR empty () 0x0028: Cardbus CIS: 0x002c: Subsystem Vendor ID: 1043 Product ID: 83ac 0x0030: Expansion ROM Base Address: 0x0038: 0x003c: Interrupt Pin: 00 Line: 00 Min Gnt: 00 Max Lat: 00 0x00e0: Capability 0x09: Vendor Specific 0:2:0: Intel Pineview Video 0x: Vendor ID: 8086 Product ID: a011 0x0004: Command: 0007 Status ID: 0090 0x0008: Class: 03 Subclass: 00 Interface: 00 Revision: 00 0x000c: BIST: 00 Header Type: 80 Latency Timer: 00 Cache Line Size: 00 0x0010: BAR mem 32bit addr: 0xf7e0/0x0008 0x0014: BAR io addr: 0xdc00/0x0008 0x0018: BAR mem prefetchable 32bit addr: 0xd000/0x1000 0x001c: BAR mem 32bit addr: 0xf7d0/0x0010 0x0020: BAR empty () 0x0024: BAR empty () 0x0028: Cardbus CIS: 0x002c: Subsystem Vendor ID: 1043 Product ID: 83ac 0x0030: Expansion ROM Base Address: 0x0038: 0x003c: Interrupt Pin: 01 Line: 0f Min Gnt: 00 Max Lat: 00 0x0090: Capability 0x05: Message Signaled Interrupts (MSI) 0x00d0: Capability 0x01: Power Management 0:2:1: Intel Pineview Video 0x: Vendor ID: 8086 Product ID: a012 0x0004: Command: 0007 Status ID: 0090 0x0008: Class: 03 Subclass: 80 Interface: 00 Revision: 00 0x000c: BIST: 00 Header Type: 80 Latency Timer: 00 Cache Line Size: 00 0x0010: BAR mem 32bit addr: 0xf7e8/0x0008 0x0014: BAR empty () 0x0018: BAR empty () 0x001c: BAR empty () 0x0020: BAR empty () 0x0024: BAR empty () 0x0028: Cardbus CIS: 0x002c: Subsystem Vendor ID: 1043 Product ID: 83ac 0x0030: Expansion ROM Base Address: 0x0038: 0x003c: Interrupt Pin: 00 Line: 00 Min Gnt: 00 Max Lat: 00 0x00d0: Capability 0x01: Power Management 0:27:0: Intel 82801GB HD Audio 0x: Vendor ID: 8086 Product ID: 27d8 0x0004: Command: 0006 Status ID: 0010 0x0008: Class: 04 Subclass: 03 Interface: 00 Revision: 02 0x000c: BIST: 00 Header Type: 00 Latency Timer: 00 Cache Line Size: 08 0x0010: BAR mem 64bit addr: 0xf7cf8000/0x4000 0x0018: BAR empty () 0x001c: BAR empty () 0x0020: BAR empty () 0x0024: BAR empty () 0x0028: Cardbus CIS: 0x002c: Subsystem Vendor ID: 1043 Product ID: 8442 0x0030: Expansion ROM Base Address: 0x0038: 0x003c: Interrupt Pin: 01 Line: 04 Min Gnt: 00 Max Lat: 00 0x0050: Capability 0x01: Power Management 0x0060: Capability 0x05: Message Signaled Interrupts (MSI) 0x0070: Capability 0x10: PCI Express 0:28:0: Intel 82801GB PCIE 0x: Vendor ID: 8086 Product ID: 27d0 0x0004: Command: 0104 Status ID: 0010 0x0008: Class: 06 Subclass: 04 Interface: 00 Revision: 02 0x000c: BIST: 00 Header Type: 81 Latency Timer: 00 Cache Line Size: 08 0x0010: 0x0014: 0x0018: Primary Bus: 0 Secondary Bus: 4 Subordinate Bus: 4 Secondary Latency Timer: 00 0x001c: I/O Base: f0 I/O Limit: 00 Secondary Status: 2000 0x0020: Memory Base: fff0 Memory Limit: 0x0024: Prefetch Memory Base: fff1 Prefetch Memory Limit: 0001 0x0028: Prefetch Memory Base Upper 32 Bits: 0x002c: Prefetch Memory Limit Upper 32 Bits: 0x0030: I/O Base Upper 16 Bits: I/O Limit Upper 16 Bits: 0x0038: Expansion ROM Base Address: 0x003c: Interrupt Pin: 01 Line: 0f Bridge Control: 0002 0x0040: Capability 0x10: PCI Express
Mercedes Sosa (55 álbumes) - Discografía mas Pendrive de regalo
1 La vozde la zafra 2 Maestros del folklore 3 Canciones con fundamento 4 Romance de la muerte de Juan Lavalle 5 Hermano 6 Yo no canto por cantar 7 Para cantarle a mi gente 8 Con sabor a Mercedes Sosa 9 Mujeres Argentinas 10 El grito de la tierra 11 Navidad con Mercedes Sosa 12 Homenaje a Violeta Parra 13 Hasta la victoria 14 Cantata sudamericana 15 Traigo un pueblo en mi voz 16 A que florezca mi pueblo 17 Niño de mañana 18 En direccion del viento 19 Mercedes Sosa interpreta a Atahualpa Yupanqui 20 O cio da terra 21 Si se calla el cantor 22 Serenata para la tierra de uno 23 A quien doy 24 Gravado ao vivo no Brasil 25 Mercedes Sosa en Argentina 26 Meeutsche Whelle 27 Varios - Voices of freedom concert 28 Como un pajaro libre 29 Mercedes Sosa 30 Recital 31 Sera posible el sur 32 Corazon americano 33 Vengo a ofrecer mi corazon 34 Mercedes Sosa '86 35 Mercedes sosa '87 36 Amigos mios 37 En vivo en Europa 38 30 años 39 Sino 40 Gestos de amor 41 Disco de Oro 42 Gracias a la vida 43 Escondido en mi pais 44 Alta fidelidad 45 Al despertar 46 Misa criolla 47 Acustico 48 Voz y sentimiento 49 Sosa Heredia Gieco Serenata para la tierra deuno - 50 Argentina quiere cantar - 51 O Melhor de- 52 Corazon libre - 53 Festival de la tonada -54 Cantora - 55 De mi
Re: minor mount_ntfs cleanup
On Mon, Jun 27, 2011 at 06:15:15PM -0400, Kenneth R Westerback wrote: > On Mon, Jun 27, 2011 at 04:52:46PM -0400, Ted Unangst wrote: > > The original porting effort left behind some unneeded bits. > > I'm not going to encourage NTFS use by ok'ing it. But if I was, I > would. > > Ken Yep, Ok with me. > > Index: mount_ntfs.c > > === > > RCS file: /cvs/src/sbin/mount_ntfs/mount_ntfs.c,v > > retrieving revision 1.13 > > diff -u -r1.13 mount_ntfs.c > > --- mount_ntfs.c27 Jun 2011 19:47:22 - 1.13 > > +++ mount_ntfs.c27 Jun 2011 20:51:26 - > > @@ -34,39 +34,26 @@ > > * Id: mount_ntfs.c,v 1.1.1.1 1999/02/03 03:51:19 semenu Exp > > */ > > > > -#include > > #include > > -#define NTFS > > #include > > #include > > -#include > > + > > #include > > -#include > > -#include > > #include > > #include > > #include > > #include > > #include > > -#include > > > > #include > > > > static const struct mntopt mopts[] = { > > MOPT_STDOPTS, > > -#ifdef MNT_GETARGS > > - MOPT_GETARGS, > > -#endif > > { NULL } > > }; > > > > -#ifndef __dead2 > > -#define __dead2 __attribute__((__noreturn__)) > > -#endif > > - > > -static voidusage(void) __dead2; > > -mode_t a_mask(char *); > > -int main(int, char **); > > +static __dead void usage(void); > > +static mode_t a_mask(char *); > > > > int > > main(int argc, char *argv[]) > > @@ -77,7 +64,7 @@ > > char *dev, dir[MAXPATHLEN]; > > > > mntflags = set_gid = set_uid = set_mask = 0; > > - (void)memset(&args, '\0', sizeof(args)); > > + memset(&args, 0, sizeof(args)); > > > > while ((c = getopt(argc, argv, "aiu:g:m:o:")) != -1) { > > switch (c) { > > @@ -102,15 +89,12 @@ > > case 'o': > > getmntopts(optarg, mopts, &mntflags); > > break; > > - case '?': > > default: > > usage(); > > break; > > } > > } > > > > - mntflags |= MNT_RDONLY; > > - > > if (optind + 2 != argc) > > usage(); > > > > @@ -119,7 +103,9 @@ > > err(1, "realpath %s", argv[optind + 1]); > > > > args.fspec = dev; > > - args.export_info.ex_root = 65534; /* unchecked anyway on DOS fs */ > > + args.export_info.ex_root = 65534; /* unchecked anyway on NTFS */ > > + > > + mntflags |= MNT_RDONLY; > > if (mntflags & MNT_RDONLY) > > args.export_info.ex_flags = MNT_EXRDONLY; > > else > > @@ -138,18 +124,10 @@ > > if (mount(MOUNT_NTFS, dir, mntflags, &args) < 0) > > err(EX_OSERR, "%s on %s", dev, dir); > > > > -#ifdef MNT_GETARGS > > - if (mntflags & MNT_GETARGS) { > > - char buf[1024]; > > - (void)snprintb(buf, sizeof(buf), NTFS_MFLAG_BITS, args.flag); > > - printf("uid=%d, gid=%d, mode=0%o, flags=%s\n", args.uid, > > - args.gid, args.mode, buf); > > - } > > -#endif > > - exit (0); > > + exit(0); > > } > > > > -mode_t > > +static mode_t > > a_mask(char *s) > > { > > int done, rv; > -- Cheers, Jasper "Capable, generous men do not create victims, they nurture them."