Date: Fri, 6 May 2011 03:44:49 +0000 (UTC) From: Marcel Moolenaar <marcel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r221520 - in projects/altix: lib/libstand sys/amd64/conf sys/amd64/pci sys/boot/i386/boot2 sys/boot/ia64/common sys/cam sys/cddl/compat/opensolaris/sys sys/cddl/contrib/opensolaris/uts/... Message-ID: <201105060344.p463in5T031097@svn.freebsd.org>
index | next in thread | raw e-mail
Author: marcel Date: Fri May 6 03:44:49 2011 New Revision: 221520 URL: http://svn.freebsd.org/changeset/base/221520 Log: Merge svn+ssh://svn.freebsd.org/base/head@221517 Added: projects/altix/sys/compat/linux/linux_videodev2.h - copied unchanged from r221517, head/sys/compat/linux/linux_videodev2.h projects/altix/sys/compat/linux/linux_videodev2_compat.h - copied unchanged from r221517, head/sys/compat/linux/linux_videodev2_compat.h projects/altix/sys/sys/_stdint.h - copied unchanged from r221517, head/sys/sys/_stdint.h Modified: projects/altix/lib/libstand/__main.c projects/altix/lib/libstand/bswap.c projects/altix/lib/libstand/cd9660.c projects/altix/lib/libstand/dosfs.c projects/altix/lib/libstand/environment.c projects/altix/lib/libstand/getopt.c projects/altix/lib/libstand/net.c projects/altix/lib/libstand/tftp.c projects/altix/lib/libstand/udp.c projects/altix/sys/amd64/conf/DEFAULTS projects/altix/sys/amd64/conf/GENERIC projects/altix/sys/amd64/pci/pci_bus.c projects/altix/sys/boot/i386/boot2/Makefile projects/altix/sys/boot/ia64/common/exec.c projects/altix/sys/cam/cam_xpt.c projects/altix/sys/cddl/compat/opensolaris/sys/systm.h projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/altix/sys/compat/linux/linux_ioctl.c projects/altix/sys/compat/linux/linux_ioctl.h projects/altix/sys/compat/linux/linux_videodev.h projects/altix/sys/conf/NOTES projects/altix/sys/conf/files projects/altix/sys/conf/kern.mk projects/altix/sys/conf/makeLINT.mk projects/altix/sys/conf/options projects/altix/sys/dev/acpica/acpi_pcib_acpi.c projects/altix/sys/dev/acpica/acpi_pcib_pci.c projects/altix/sys/dev/ae/if_ae.c projects/altix/sys/dev/age/if_age.c projects/altix/sys/dev/ahci/ahci.c projects/altix/sys/dev/alc/if_alc.c projects/altix/sys/dev/ale/if_ale.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar2133.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416reg.h projects/altix/sys/dev/bce/if_bce.c projects/altix/sys/dev/bfe/if_bfe.c projects/altix/sys/dev/bge/if_bge.c projects/altix/sys/dev/bge/if_bgereg.h projects/altix/sys/dev/bxe/bxe_debug.h projects/altix/sys/dev/bxe/if_bxe.c projects/altix/sys/dev/bxe/if_bxe.h projects/altix/sys/dev/cardbus/cardbus.c projects/altix/sys/dev/coretemp/coretemp.c projects/altix/sys/dev/cxgbe/offload.h projects/altix/sys/dev/cxgbe/t4_ioctl.h projects/altix/sys/dev/cxgbe/t4_main.c projects/altix/sys/dev/cxgbe/t4_sge.c projects/altix/sys/dev/dc/dcphy.c projects/altix/sys/dev/dc/pnphy.c projects/altix/sys/dev/e1000/if_em.c projects/altix/sys/dev/ed/if_ed_pccard.c projects/altix/sys/dev/et/if_et.c projects/altix/sys/dev/fxp/if_fxp.c projects/altix/sys/dev/hme/if_hme.c projects/altix/sys/dev/jme/if_jme.c projects/altix/sys/dev/lge/if_lge.c projects/altix/sys/dev/mii/acphy.c projects/altix/sys/dev/mii/amphy.c projects/altix/sys/dev/mii/atphy.c projects/altix/sys/dev/mii/axphy.c projects/altix/sys/dev/mii/bmtphy.c projects/altix/sys/dev/mii/brgphy.c projects/altix/sys/dev/mii/ciphy.c projects/altix/sys/dev/mii/e1000phy.c projects/altix/sys/dev/mii/exphy.c projects/altix/sys/dev/mii/gentbi.c projects/altix/sys/dev/mii/icsphy.c projects/altix/sys/dev/mii/inphy.c projects/altix/sys/dev/mii/ip1000phy.c projects/altix/sys/dev/mii/jmphy.c projects/altix/sys/dev/mii/lxtphy.c projects/altix/sys/dev/mii/mii.c projects/altix/sys/dev/mii/mii.h projects/altix/sys/dev/mii/mii_physubr.c projects/altix/sys/dev/mii/miidevs projects/altix/sys/dev/mii/miivar.h projects/altix/sys/dev/mii/mlphy.c projects/altix/sys/dev/mii/nsgphy.c projects/altix/sys/dev/mii/nsphy.c projects/altix/sys/dev/mii/nsphyter.c projects/altix/sys/dev/mii/pnaphy.c projects/altix/sys/dev/mii/qsphy.c projects/altix/sys/dev/mii/rdcphy.c projects/altix/sys/dev/mii/rgephy.c projects/altix/sys/dev/mii/rlphy.c projects/altix/sys/dev/mii/rlswitch.c projects/altix/sys/dev/mii/ruephy.c projects/altix/sys/dev/mii/smcphy.c projects/altix/sys/dev/mii/tdkphy.c projects/altix/sys/dev/mii/tlphy.c projects/altix/sys/dev/mii/truephy.c projects/altix/sys/dev/mii/ukphy.c projects/altix/sys/dev/mii/xmphy.c projects/altix/sys/dev/nfe/if_nfe.c projects/altix/sys/dev/nge/if_nge.c projects/altix/sys/dev/nve/if_nve.c projects/altix/sys/dev/pci/pci.c projects/altix/sys/dev/pci/pci_pci.c projects/altix/sys/dev/pci/pcib_private.h projects/altix/sys/dev/pcn/if_pcn.c projects/altix/sys/dev/puc/pucdata.c projects/altix/sys/dev/sf/if_sf.c projects/altix/sys/dev/sge/if_sge.c projects/altix/sys/dev/sis/if_sis.c projects/altix/sys/dev/sound/pcm/dsp.c projects/altix/sys/dev/ste/if_ste.c projects/altix/sys/dev/tx/if_tx.c projects/altix/sys/dev/usb/net/if_aue.c projects/altix/sys/dev/usb/net/if_axe.c projects/altix/sys/dev/usb/net/if_rue.c projects/altix/sys/dev/usb/net/if_udav.c projects/altix/sys/dev/vr/if_vr.c projects/altix/sys/dev/vte/if_vte.c projects/altix/sys/dev/vxge/include/build-version.h projects/altix/sys/dev/vxge/vxge.c projects/altix/sys/dev/vxge/vxge.h projects/altix/sys/dev/wb/if_wb.c projects/altix/sys/dev/wpi/if_wpi.c projects/altix/sys/fs/nfs/nfs_commonport.c projects/altix/sys/fs/nfs/nfsproto.h projects/altix/sys/fs/nfsclient/nfs_clport.c projects/altix/sys/fs/nfsclient/nfs_clsubs.c projects/altix/sys/fs/nfsclient/nfs_clvfsops.c projects/altix/sys/fs/nfsclient/nfs_clvnops.c projects/altix/sys/fs/nfsserver/nfs_nfsdport.c projects/altix/sys/geom/cache/g_cache.c projects/altix/sys/geom/concat/g_concat.c projects/altix/sys/geom/eli/g_eli.c projects/altix/sys/geom/geom_dev.c projects/altix/sys/geom/geom_map.c projects/altix/sys/geom/journal/g_journal.c projects/altix/sys/geom/label/g_label.c projects/altix/sys/geom/mountver/g_mountver.c projects/altix/sys/geom/multipath/g_multipath.c projects/altix/sys/geom/sched/g_sched.c projects/altix/sys/geom/shsec/g_shsec.c projects/altix/sys/geom/stripe/g_stripe.c projects/altix/sys/i386/conf/DEFAULTS projects/altix/sys/i386/conf/GENERIC projects/altix/sys/i386/conf/PAE projects/altix/sys/i386/pci/pci_bus.c projects/altix/sys/ia64/include/vmparam.h projects/altix/sys/kern/kern_conf.c projects/altix/sys/kern/kern_jail.c projects/altix/sys/kern/kern_racct.c projects/altix/sys/kern/kern_rctl.c projects/altix/sys/mips/atheros/ar724x_pci.c projects/altix/sys/mips/atheros/if_arge.c projects/altix/sys/mips/cavium/octe/octe.c projects/altix/sys/mips/conf/PB92 projects/altix/sys/mips/conf/PB92.hints projects/altix/sys/mips/idt/if_kr.c projects/altix/sys/modules/cxgbe/if_cxgbe/Makefile projects/altix/sys/modules/mii/Makefile projects/altix/sys/net80211/ieee80211_adhoc.c projects/altix/sys/net80211/ieee80211_hostap.c projects/altix/sys/net80211/ieee80211_input.h projects/altix/sys/net80211/ieee80211_mesh.c projects/altix/sys/net80211/ieee80211_sta.c projects/altix/sys/net80211/ieee80211_wds.c projects/altix/sys/netinet/sctp.h projects/altix/sys/netinet/sctp_asconf.c projects/altix/sys/netinet/sctp_auth.c projects/altix/sys/netinet/sctp_cc_functions.c projects/altix/sys/netinet/sctp_sysctl.h projects/altix/sys/netinet/sctp_usrreq.c projects/altix/sys/netinet/sctputil.c projects/altix/sys/netinet/sctputil.h projects/altix/sys/netinet/tcp_input.c projects/altix/sys/netinet/tcp_output.c projects/altix/sys/netinet/tcp_timewait.c projects/altix/sys/netinet6/sctp6_usrreq.c projects/altix/sys/nfs/nfs_diskless.c projects/altix/sys/nfs/nfs_nfssvc.c projects/altix/sys/nfs/nfssvc.h projects/altix/sys/nfsclient/nfs_vfsops.c projects/altix/sys/nfsclient/nfs_vnops.c projects/altix/sys/nfsclient/nfsargs.h projects/altix/sys/sparc64/pci/apb.c projects/altix/sys/sparc64/pci/ofw_pcib.c projects/altix/sys/sys/conf.h projects/altix/sys/sys/jail.h projects/altix/sys/sys/rctl.h projects/altix/sys/sys/stddef.h projects/altix/sys/sys/stdint.h projects/altix/sys/sys/types.h projects/altix/sys/ufs/ffs/ffs_vnops.c projects/altix/sys/x86/pci/qpi.c projects/altix/sys/x86/x86/local_apic.c projects/altix/sys/x86/x86/mptable_pci.c projects/altix/sys/x86/x86/nexus.c projects/altix/sys/x86/x86/tsc.c Directory Properties: projects/altix/lib/libstand/ (props changed) projects/altix/sys/ (props changed) projects/altix/sys/amd64/include/xen/ (props changed) projects/altix/sys/boot/i386/efi/ (props changed) projects/altix/sys/boot/ia64/efi/ (props changed) projects/altix/sys/boot/ia64/ski/ (props changed) projects/altix/sys/boot/powerpc/boot1.chrp/ (props changed) projects/altix/sys/boot/powerpc/ofw/ (props changed) projects/altix/sys/cddl/contrib/opensolaris/ (props changed) projects/altix/sys/conf/ (props changed) projects/altix/sys/contrib/dev/acpica/ (props changed) projects/altix/sys/contrib/octeon-sdk/ (props changed) projects/altix/sys/contrib/pf/ (props changed) projects/altix/sys/contrib/x86emu/ (props changed) projects/altix/sys/kern/subr_busdma.c (props changed) Modified: projects/altix/lib/libstand/__main.c ============================================================================== --- projects/altix/lib/libstand/__main.c Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/lib/libstand/__main.c Fri May 6 03:44:49 2011 (r221520) @@ -38,6 +38,6 @@ __FBSDID("$FreeBSD$"); void __main(void); void -__main() +__main(void) { } Modified: projects/altix/lib/libstand/bswap.c ============================================================================== --- projects/altix/lib/libstand/bswap.c Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/lib/libstand/bswap.c Fri May 6 03:44:49 2011 (r221520) @@ -16,9 +16,11 @@ static char *rcsid = "$NetBSD: bswap64.c #undef bswap32 #undef bswap64 +u_int32_t bswap32(u_int32_t x); +u_int64_t bswap64(u_int64_t x); + u_int32_t -bswap32(x) - u_int32_t x; +bswap32(u_int32_t x) { return ((x << 24) & 0xff000000 ) | ((x << 8) & 0x00ff0000 ) | @@ -27,8 +29,7 @@ bswap32(x) } u_int64_t -bswap64(x) - u_int64_t x; +bswap64(u_int64_t x) { u_int32_t *p = (u_int32_t*)&x; u_int32_t t; Modified: projects/altix/lib/libstand/cd9660.c ============================================================================== --- projects/altix/lib/libstand/cd9660.c Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/lib/libstand/cd9660.c Fri May 6 03:44:49 2011 (r221520) @@ -545,7 +545,7 @@ again: } static int -cd9660_write(struct open_file *f, void *start, size_t size, size_t *resid) +cd9660_write(struct open_file *f __unused, void *start __unused, size_t size __unused, size_t *resid __unused) { return EROFS; } Modified: projects/altix/lib/libstand/dosfs.c ============================================================================== --- projects/altix/lib/libstand/dosfs.c Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/lib/libstand/dosfs.c Fri May 6 03:44:49 2011 (r221520) @@ -358,7 +358,7 @@ dos_stat(struct open_file *fd, struct st static int dos_readdir(struct open_file *fd, struct dirent *d) { - DOS_FILE *f = (DOS_FILE *)fd->f_fsdata; + /* DOS_FILE *f = (DOS_FILE *)fd->f_fsdata; */ u_char fn[261]; DOS_DIR dd; size_t res; @@ -414,7 +414,7 @@ dos_readdir(struct open_file *fd, struct } } - d->d_fileno = dd.de.clus[1] << 8 + dd.de.clus[0]; + d->d_fileno = (dd.de.clus[1] << 8) + dd.de.clus[0]; d->d_reclen = sizeof(*d); d->d_type = (dd.de.attr & FA_DIR) ? DT_DIR : DT_REG; memcpy(d->d_name, fn, sizeof(d->d_name)); Modified: projects/altix/lib/libstand/environment.c ============================================================================== --- projects/altix/lib/libstand/environment.c Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/lib/libstand/environment.c Fri May 6 03:44:49 2011 (r221520) @@ -207,13 +207,14 @@ env_discard(struct env_var *ev) } int -env_noset(struct env_var *ev, int flags, const void *value) +env_noset(struct env_var *ev __unused, int flags __unused, + const void *value __unused) { return(EPERM); } int -env_nounset(struct env_var *ev) +env_nounset(struct env_var *ev __unused) { return(EPERM); } Modified: projects/altix/lib/libstand/getopt.c ============================================================================== --- projects/altix/lib/libstand/getopt.c Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/lib/libstand/getopt.c Fri May 6 03:44:49 2011 (r221520) @@ -52,10 +52,7 @@ char *optarg; /* argument associated wi * Parse argc/argv argument vector. */ int -getopt(nargc, nargv, ostr) - int nargc; - char * const *nargv; - const char *ostr; +getopt(int nargc, char * const *nargv, const char *ostr) { static char *place = EMSG; /* option letter processing */ char *oli; /* option letter list index */ Modified: projects/altix/lib/libstand/net.c ============================================================================== --- projects/altix/lib/libstand/net.c Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/lib/libstand/net.c Fri May 6 03:44:49 2011 (r221520) @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include <netinet/if_ether.h> #include <netinet/in_systm.h> +#include <netinet/in_pcb.h> #include <netinet/ip.h> #include <netinet/ip_var.h> #include <netinet/udp.h> Modified: projects/altix/lib/libstand/tftp.c ============================================================================== --- projects/altix/lib/libstand/tftp.c Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/lib/libstand/tftp.c Fri May 6 03:44:49 2011 (r221520) @@ -110,11 +110,7 @@ static const int tftperrors[8] = { }; static ssize_t -recvtftp(d, pkt, len, tleft) - struct iodesc *d; - void *pkt; - ssize_t len; - time_t tleft; +recvtftp(struct iodesc *d, void *pkt, ssize_t len, time_t tleft) { struct tftphdr *t; @@ -152,14 +148,14 @@ recvtftp(d, pkt, len, tleft) printf("illegal tftp error %d\n", ntohs(t->th_code)); errno = EIO; } else { -#ifdef DEBUG +#ifdef TFTP_DEBUG printf("tftp-error %d\n", ntohs(t->th_code)); #endif errno = tftperrors[ntohs(t->th_code)]; } return (-1); default: -#ifdef DEBUG +#ifdef TFTP_DEBUG printf("tftp type %d not handled\n", ntohs(t->th_opcode)); #endif return (-1); @@ -168,8 +164,7 @@ recvtftp(d, pkt, len, tleft) /* send request, expect first block (or error) */ static int -tftp_makereq(h) - struct tftp_handle *h; +tftp_makereq(struct tftp_handle *h) { struct { u_char header[HEADER_SIZE]; @@ -212,8 +207,7 @@ tftp_makereq(h) /* ack block, expect next */ static int -tftp_getnextblock(h) - struct tftp_handle *h; +tftp_getnextblock(struct tftp_handle *h) { struct { u_char header[HEADER_SIZE]; @@ -246,9 +240,7 @@ tftp_getnextblock(h) } static int -tftp_open(path, f) - const char *path; - struct open_file *f; +tftp_open(const char *path, struct open_file *f) { struct tftp_handle *tftpfile; struct iodesc *io; @@ -287,11 +279,8 @@ tftp_open(path, f) } static int -tftp_read(f, addr, size, resid) - struct open_file *f; - void *addr; - size_t size; - size_t *resid; /* out */ +tftp_read(struct open_file *f, void *addr, size_t size, + size_t *resid /* out */) { struct tftp_handle *tftpfile; static int tc = 0; @@ -314,7 +303,7 @@ tftp_read(f, addr, size, resid) res = tftp_getnextblock(tftpfile); if (res) { /* no answer */ -#ifdef DEBUG +#ifdef TFTP_DEBUG printf("tftp: read error\n"); #endif return (res); @@ -330,7 +319,7 @@ tftp_read(f, addr, size, resid) inbuffer = tftpfile->validsize - offinblock; if (inbuffer < 0) { -#ifdef DEBUG +#ifdef TFTP_DEBUG printf("tftp: invalid offset %d\n", tftpfile->off); #endif @@ -347,7 +336,7 @@ tftp_read(f, addr, size, resid) if ((tftpfile->islastblock) && (count == inbuffer)) break; /* EOF */ } else { -#ifdef DEBUG +#ifdef TFTP_DEBUG printf("tftp: block %d not found\n", needblock); #endif return (EINVAL); @@ -361,8 +350,7 @@ tftp_read(f, addr, size, resid) } static int -tftp_close(f) - struct open_file *f; +tftp_close(struct open_file *f) { struct tftp_handle *tftpfile; tftpfile = (struct tftp_handle *) f->f_fsdata; @@ -377,19 +365,14 @@ tftp_close(f) } static int -tftp_write(f, start, size, resid) - struct open_file *f; - void *start; - size_t size; - size_t *resid; /* out */ +tftp_write(struct open_file *f __unused, void *start __unused, size_t size __unused, + size_t *resid /* out */ __unused) { return (EROFS); } static int -tftp_stat(f, sb) - struct open_file *f; - struct stat *sb; +tftp_stat(struct open_file *f, struct stat *sb) { struct tftp_handle *tftpfile; tftpfile = (struct tftp_handle *) f->f_fsdata; @@ -403,10 +386,7 @@ tftp_stat(f, sb) } static off_t -tftp_seek(f, offset, where) - struct open_file *f; - off_t offset; - int where; +tftp_seek(struct open_file *f, off_t offset, int where) { struct tftp_handle *tftpfile; tftpfile = (struct tftp_handle *) f->f_fsdata; Modified: projects/altix/lib/libstand/udp.c ============================================================================== --- projects/altix/lib/libstand/udp.c Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/lib/libstand/udp.c Fri May 6 03:44:49 2011 (r221520) @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include <netinet/if_ether.h> #include <netinet/in_systm.h> +#include <netinet/in_pcb.h> #include <netinet/ip.h> #include <netinet/ip_var.h> #include <netinet/udp.h> Modified: projects/altix/sys/amd64/conf/DEFAULTS ============================================================================== --- projects/altix/sys/amd64/conf/DEFAULTS Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/sys/amd64/conf/DEFAULTS Fri May 6 03:44:49 2011 (r221520) @@ -20,3 +20,5 @@ options GEOM_PART_BSD options GEOM_PART_EBR options GEOM_PART_EBR_COMPAT options GEOM_PART_MBR + +options NEW_PCIB Modified: projects/altix/sys/amd64/conf/GENERIC ============================================================================== --- projects/altix/sys/amd64/conf/GENERIC Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/sys/amd64/conf/GENERIC Fri May 6 03:44:49 2011 (r221520) @@ -261,8 +261,16 @@ device ath_pci # Atheros pci/cardbus g device ath_hal # pci/cardbus chip support options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors device ath_rate_sample # SampleRate tx rate control for ath +#device bwi # Broadcom BCM430x/BCM431x wireless NICs. +#device bwn # Broadcom BCM43xx wireless NICs. +device ipw # Intel 2100 wireless NICs. +device iwi # Intel 2200BG/2225BG/2915ABG wireless NICs. +device iwn # Intel 4965/1000/5000/6000 wireless NICs. +device malo # Marvell Libertas wireless NICs. +device mwl # Marvell 88W8363 802.11n wireless NICs. device ral # Ralink Technology RT2500 wireless NICs. device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. +device wpi # Intel 3945ABG wireless NICs. # Pseudo devices. device loop # Network loopback @@ -314,7 +322,9 @@ device rue # RealTek RTL8150 USB Ether device udav # Davicom DM9601E USB # USB Wireless device rum # Ralink Technology RT2501USB wireless NICs +device run # Ralink Technology RT2700/RT2800/RT3000 NICs. device uath # Atheros AR5523 wireless NICs +device upgt # Conexant/Intersil PrismGT wireless NICs. device ural # Ralink Technology RT2500USB wireless NICs device urtw # Realtek RTL8187B/L wireless NICs device zyd # ZyDAS zb1211/zb1211b wireless NICs Modified: projects/altix/sys/amd64/pci/pci_bus.c ============================================================================== --- projects/altix/sys/amd64/pci/pci_bus.c Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/sys/amd64/pci/pci_bus.c Fri May 6 03:44:49 2011 (r221520) @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$"); #include <sys/kernel.h> #include <sys/malloc.h> #include <sys/module.h> +#include <sys/rman.h> #include <sys/sysctl.h> #include <dev/pci/pcivar.h> @@ -348,6 +349,7 @@ static device_method_t legacy_pcib_metho DEVMETHOD(bus_read_ivar, legacy_pcib_read_ivar), DEVMETHOD(bus_write_ivar, legacy_pcib_write_ivar), DEVMETHOD(bus_alloc_resource, legacy_pcib_alloc_resource), + DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource), DEVMETHOD(bus_release_resource, bus_generic_release_resource), DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), Modified: projects/altix/sys/boot/i386/boot2/Makefile ============================================================================== --- projects/altix/sys/boot/i386/boot2/Makefile Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/sys/boot/i386/boot2/Makefile Fri May 6 03:44:49 2011 (r221520) @@ -2,9 +2,6 @@ .include <bsd.own.mk> -# XXX: clang can compile the boot code just fine, but boot2 gets too big -CC:=${CC:C/^(.*\/)?clang$/gcc/1} - FILES= boot boot1 boot2 NM?= nm @@ -45,6 +42,13 @@ CFLAGS= -Os \ -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \ -Winline --param max-inline-insns-single=100 +.if ${CC:T:Mclang} == "clang" +CFLAGS+= -mllvm -stack-alignment=8 -mllvm -inline-threshold=3 \ + -mllvm -enable-load-pre=false +# XXX: clang integrated-as doesn't grok .codeNN directives yet +CFLAGS+= ${.IMPSRC:T:Mboot1.S:C/^.+$/-no-integrated-as/} +.endif + LDFLAGS=-static -N --gc-sections # Pick up ../Makefile.inc early. Modified: projects/altix/sys/boot/ia64/common/exec.c ============================================================================== --- projects/altix/sys/boot/ia64/common/exec.c Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/sys/boot/ia64/common/exec.c Fri May 6 03:44:49 2011 (r221520) @@ -76,7 +76,7 @@ sz2shft(vm_offset_t ofs, vm_size_t sz) shft = 12; /* Start with 4K */ s = 1 << shft; - while (s < sz) { + while (s <= sz) { shft++; s <<= 1; } Modified: projects/altix/sys/cam/cam_xpt.c ============================================================================== --- projects/altix/sys/cam/cam_xpt.c Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/sys/cam/cam_xpt.c Fri May 6 03:44:49 2011 (r221520) @@ -3600,9 +3600,12 @@ xpt_path_legacy_ata_id(struct cam_path * } xpt_unlock_buses(); } - if (path->target != NULL) - return (bus_id * 2 + path->target->target_id); - else + if (path->target != NULL) { + if (path->target->target_id < 2) + return (bus_id * 2 + path->target->target_id); + else + return (-1); + } else return (bus_id * 2); } Modified: projects/altix/sys/cddl/compat/opensolaris/sys/systm.h ============================================================================== --- projects/altix/sys/cddl/compat/opensolaris/sys/systm.h Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/sys/cddl/compat/opensolaris/sys/systm.h Fri May 6 03:44:49 2011 (r221520) @@ -42,9 +42,6 @@ #define delay(x) pause("soldelay", (x)) -#define xcopyin(u, k, s) copyin(u, k, s) -#define xcopyout(k, u, s) copyout(k, u, s) - #endif /* _KERNEL */ #endif /* _OPENSOLARIS_SYS_SYSTM_H_ */ Modified: projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Fri May 6 03:44:49 2011 (r221520) @@ -4068,9 +4068,9 @@ zfs_ioc_userspace_many(zfs_cmd_t *zc) buf, &zc->zc_nvlist_dst_size); if (error == 0) { - error = xcopyout(buf, + error = ddi_copyout(buf, (void *)(uintptr_t)zc->zc_nvlist_dst, - zc->zc_nvlist_dst_size); + zc->zc_nvlist_dst_size, zc->zc_iflags); } kmem_free(buf, bufsize); zfsvfs_rele(zfsvfs, FTAG); Modified: projects/altix/sys/compat/linux/linux_ioctl.c ============================================================================== --- projects/altix/sys/compat/linux/linux_ioctl.c Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/sys/compat/linux/linux_ioctl.c Fri May 6 03:44:49 2011 (r221520) @@ -57,8 +57,12 @@ __FBSDID("$FreeBSD$"); #include <sys/soundcard.h> #include <sys/stdint.h> #include <sys/sx.h> +#include <sys/sysctl.h> #include <sys/tty.h> #include <sys/uio.h> +#include <sys/types.h> +#include <sys/mman.h> +#include <sys/resourcevar.h> #include <net/if.h> #include <net/if_dl.h> @@ -83,8 +87,14 @@ __FBSDID("$FreeBSD$"); #include <compat/linux/linux_videodev.h> #include <compat/linux/linux_videodev_compat.h> +#include <compat/linux/linux_videodev2.h> +#include <compat/linux/linux_videodev2_compat.h> + CTASSERT(LINUX_IFNAMSIZ == IFNAMSIZ); +FEATURE(linuxulator_v4l, "V4L ioctl wrapper support in the linuxulator"); +FEATURE(linuxulator_v4l2, "V4L2 ioctl wrapper support in the linuxulator"); + static linux_ioctl_function_t linux_ioctl_cdrom; static linux_ioctl_function_t linux_ioctl_vfat; static linux_ioctl_function_t linux_ioctl_console; @@ -97,6 +107,7 @@ static linux_ioctl_function_t linux_ioct static linux_ioctl_function_t linux_ioctl_drm; static linux_ioctl_function_t linux_ioctl_sg; static linux_ioctl_function_t linux_ioctl_v4l; +static linux_ioctl_function_t linux_ioctl_v4l2; static linux_ioctl_function_t linux_ioctl_special; static linux_ioctl_function_t linux_ioctl_fbsd_usb; @@ -124,6 +135,8 @@ static struct linux_ioctl_handler sg_han { linux_ioctl_sg, LINUX_IOCTL_SG_MIN, LINUX_IOCTL_SG_MAX }; static struct linux_ioctl_handler video_handler = { linux_ioctl_v4l, LINUX_IOCTL_VIDEO_MIN, LINUX_IOCTL_VIDEO_MAX }; +static struct linux_ioctl_handler video2_handler = +{ linux_ioctl_v4l2, LINUX_IOCTL_VIDEO2_MIN, LINUX_IOCTL_VIDEO2_MAX }; static struct linux_ioctl_handler fbsd_usb = { linux_ioctl_fbsd_usb, FBSD_LUSB_MIN, FBSD_LUSB_MAX }; @@ -139,6 +152,7 @@ DATA_SET(linux_ioctl_handler_set, privat DATA_SET(linux_ioctl_handler_set, drm_handler); DATA_SET(linux_ioctl_handler_set, sg_handler); DATA_SET(linux_ioctl_handler_set, video_handler); +DATA_SET(linux_ioctl_handler_set, video2_handler); DATA_SET(linux_ioctl_handler_set, fbsd_usb); struct handler_element @@ -2988,6 +3002,302 @@ linux_ioctl_special(struct thread *td, s return (error); } +static int +linux_to_bsd_v4l2_standard(struct l_v4l2_standard *lvstd, struct v4l2_standard *vstd) +{ + vstd->index = lvstd->index; + vstd->id = lvstd->id; + memcpy(&vstd->name, &lvstd->name, sizeof(*lvstd) - offsetof(struct l_v4l2_standard, name)); + return (0); +} + +static int +bsd_to_linux_v4l2_standard(struct v4l2_standard *vstd, struct l_v4l2_standard *lvstd) +{ + lvstd->index = vstd->index; + lvstd->id = vstd->id; + memcpy(&lvstd->name, &vstd->name, sizeof(*lvstd) - offsetof(struct l_v4l2_standard, name)); + return (0); +} + +static int +linux_to_bsd_v4l2_buffer(struct l_v4l2_buffer *lvb, struct v4l2_buffer *vb) +{ + vb->index = lvb->index; + vb->type = lvb->type; + vb->bytesused = lvb->bytesused; + vb->flags = lvb->flags; + vb->field = lvb->field; + vb->timestamp.tv_sec = lvb->timestamp.tv_sec; + vb->timestamp.tv_usec = lvb->timestamp.tv_usec; + memcpy(&vb->timecode, &lvb->timecode, sizeof (lvb->timecode)); + vb->sequence = lvb->sequence; + vb->memory = lvb->memory; + if (lvb->memory == V4L2_MEMORY_USERPTR) + /* possible pointer size conversion */ + vb->m.userptr = (unsigned long)PTRIN(lvb->m.userptr); + else + vb->m.offset = lvb->m.offset; + vb->length = lvb->length; + vb->input = lvb->input; + vb->reserved = lvb->reserved; + return (0); +} + +static int +bsd_to_linux_v4l2_buffer(struct v4l2_buffer *vb, struct l_v4l2_buffer *lvb) +{ + lvb->index = vb->index; + lvb->type = vb->type; + lvb->bytesused = vb->bytesused; + lvb->flags = vb->flags; + lvb->field = vb->field; + lvb->timestamp.tv_sec = vb->timestamp.tv_sec; + lvb->timestamp.tv_usec = vb->timestamp.tv_usec; + memcpy(&lvb->timecode, &vb->timecode, sizeof (vb->timecode)); + lvb->sequence = vb->sequence; + lvb->memory = vb->memory; + if (vb->memory == V4L2_MEMORY_USERPTR) + /* possible pointer size conversion */ + lvb->m.userptr = PTROUT(vb->m.userptr); + else + lvb->m.offset = vb->m.offset; + lvb->length = vb->length; + lvb->input = vb->input; + lvb->reserved = vb->reserved; + return (0); +} + +static int +linux_to_bsd_v4l2_format(struct l_v4l2_format *lvf, struct v4l2_format *vf) +{ + vf->type = lvf->type; + if (lvf->type == V4L2_BUF_TYPE_VIDEO_OVERLAY +#ifdef V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY + || lvf->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY +#endif + ) + /* + * XXX TODO - needs 32 -> 64 bit conversion: + * (unused by webcams?) + */ + return EINVAL; + memcpy(&vf->fmt, &lvf->fmt, sizeof(vf->fmt)); + return 0; +} + +static int +bsd_to_linux_v4l2_format(struct v4l2_format *vf, struct l_v4l2_format *lvf) +{ + lvf->type = vf->type; + if (vf->type == V4L2_BUF_TYPE_VIDEO_OVERLAY +#ifdef V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY + || vf->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY +#endif + ) + /* + * XXX TODO - needs 32 -> 64 bit conversion: + * (unused by webcams?) + */ + return EINVAL; + memcpy(&lvf->fmt, &vf->fmt, sizeof(vf->fmt)); + return 0; +} +static int +linux_ioctl_v4l2(struct thread *td, struct linux_ioctl_args *args) +{ + struct file *fp; + int error; + struct v4l2_format vformat; + struct l_v4l2_format l_vformat; + struct v4l2_standard vstd; + struct l_v4l2_standard l_vstd; + struct l_v4l2_buffer l_vbuf; + struct v4l2_buffer vbuf; + struct v4l2_input vinp; + + switch (args->cmd & 0xffff) { + case LINUX_VIDIOC_RESERVED: + case LINUX_VIDIOC_LOG_STATUS: + if ((args->cmd & IOC_DIRMASK) != LINUX_IOC_VOID) + return ENOIOCTL; + args->cmd = (args->cmd & 0xffff) | IOC_VOID; + break; + + case LINUX_VIDIOC_OVERLAY: + case LINUX_VIDIOC_STREAMON: + case LINUX_VIDIOC_STREAMOFF: + case LINUX_VIDIOC_S_STD: + case LINUX_VIDIOC_S_TUNER: + case LINUX_VIDIOC_S_AUDIO: + case LINUX_VIDIOC_S_AUDOUT: + case LINUX_VIDIOC_S_MODULATOR: + case LINUX_VIDIOC_S_FREQUENCY: + case LINUX_VIDIOC_S_CROP: + case LINUX_VIDIOC_S_JPEGCOMP: + case LINUX_VIDIOC_S_PRIORITY: + case LINUX_VIDIOC_DBG_S_REGISTER: + case LINUX_VIDIOC_S_HW_FREQ_SEEK: + case LINUX_VIDIOC_SUBSCRIBE_EVENT: + case LINUX_VIDIOC_UNSUBSCRIBE_EVENT: + args->cmd = (args->cmd & ~IOC_DIRMASK) | IOC_IN; + break; + + case LINUX_VIDIOC_QUERYCAP: + case LINUX_VIDIOC_G_STD: + case LINUX_VIDIOC_G_AUDIO: + case LINUX_VIDIOC_G_INPUT: + case LINUX_VIDIOC_G_OUTPUT: + case LINUX_VIDIOC_G_AUDOUT: + case LINUX_VIDIOC_G_JPEGCOMP: + case LINUX_VIDIOC_QUERYSTD: + case LINUX_VIDIOC_G_PRIORITY: + case LINUX_VIDIOC_QUERY_DV_PRESET: + args->cmd = (args->cmd & ~IOC_DIRMASK) | IOC_OUT; + break; + + case LINUX_VIDIOC_ENUM_FMT: + case LINUX_VIDIOC_REQBUFS: + case LINUX_VIDIOC_G_PARM: + case LINUX_VIDIOC_S_PARM: + case LINUX_VIDIOC_G_CTRL: + case LINUX_VIDIOC_S_CTRL: + case LINUX_VIDIOC_G_TUNER: + case LINUX_VIDIOC_QUERYCTRL: + case LINUX_VIDIOC_QUERYMENU: + case LINUX_VIDIOC_S_INPUT: + case LINUX_VIDIOC_S_OUTPUT: + case LINUX_VIDIOC_ENUMOUTPUT: + case LINUX_VIDIOC_G_MODULATOR: + case LINUX_VIDIOC_G_FREQUENCY: + case LINUX_VIDIOC_CROPCAP: + case LINUX_VIDIOC_G_CROP: + case LINUX_VIDIOC_ENUMAUDIO: + case LINUX_VIDIOC_ENUMAUDOUT: + case LINUX_VIDIOC_G_SLICED_VBI_CAP: +#ifdef VIDIOC_ENUM_FRAMESIZES + case LINUX_VIDIOC_ENUM_FRAMESIZES: + case LINUX_VIDIOC_ENUM_FRAMEINTERVALS: + case LINUX_VIDIOC_ENCODER_CMD: + case LINUX_VIDIOC_TRY_ENCODER_CMD: +#endif + case LINUX_VIDIOC_DBG_G_REGISTER: + case LINUX_VIDIOC_DBG_G_CHIP_IDENT: + case LINUX_VIDIOC_ENUM_DV_PRESETS: + case LINUX_VIDIOC_S_DV_PRESET: + case LINUX_VIDIOC_G_DV_PRESET: + case LINUX_VIDIOC_S_DV_TIMINGS: + case LINUX_VIDIOC_G_DV_TIMINGS: + args->cmd = (args->cmd & ~IOC_DIRMASK) | IOC_INOUT; + break; + + case LINUX_VIDIOC_G_FMT: + case LINUX_VIDIOC_S_FMT: + case LINUX_VIDIOC_TRY_FMT: + error = copyin((void *)args->arg, &l_vformat, sizeof(l_vformat)); + if (error) + return (error); + if ((error = fget(td, args->fd, &fp)) != 0) + return (error); + if (linux_to_bsd_v4l2_format(&l_vformat, &vformat) != 0) + error = EINVAL; + else if ((args->cmd & 0xffff) == LINUX_VIDIOC_G_FMT) + error = fo_ioctl(fp, VIDIOC_G_FMT, &vformat, + td->td_ucred, td); + else if ((args->cmd & 0xffff) == LINUX_VIDIOC_S_FMT) + error = fo_ioctl(fp, VIDIOC_S_FMT, &vformat, + td->td_ucred, td); + else + error = fo_ioctl(fp, VIDIOC_TRY_FMT, &vformat, + td->td_ucred, td); + bsd_to_linux_v4l2_format(&vformat, &l_vformat); + copyout(&l_vformat, (void *)args->arg, sizeof(l_vformat)); + fdrop(fp, td); + return (error); + + case LINUX_VIDIOC_ENUMSTD: + error = copyin((void *)args->arg, &l_vstd, sizeof(l_vstd)); + if (error) + return (error); + linux_to_bsd_v4l2_standard(&l_vstd, &vstd); + if ((error = fget(td, args->fd, &fp)) != 0) + return (error); + error = fo_ioctl(fp, VIDIOC_ENUMSTD, (caddr_t)&vstd, + td->td_ucred, td); + if (error) { + fdrop(fp, td); + return (error); + } + bsd_to_linux_v4l2_standard(&vstd, &l_vstd); + error = copyout(&l_vstd, (void *)args->arg, sizeof(l_vstd)); + fdrop(fp, td); + return (error); + + case LINUX_VIDIOC_ENUMINPUT: + /* + * The Linux struct l_v4l2_input differs only in size, + * it has no padding at the end. + */ + error = copyin((void *)args->arg, &vinp, + sizeof(struct l_v4l2_input)); + if (error != 0) + return (error); + if ((error = fget(td, args->fd, &fp)) != 0) + return (error); + error = fo_ioctl(fp, VIDIOC_ENUMINPUT, (caddr_t)&vinp, + td->td_ucred, td); + if (error) { + fdrop(fp, td); + return (error); + } + error = copyout(&vinp, (void *)args->arg, + sizeof(struct l_v4l2_input)); + fdrop(fp, td); + return (error); + + case LINUX_VIDIOC_QUERYBUF: + case LINUX_VIDIOC_QBUF: + case LINUX_VIDIOC_DQBUF: + error = copyin((void *)args->arg, &l_vbuf, sizeof(l_vbuf)); + if (error) + return (error); + if ((error = fget(td, args->fd, &fp)) != 0) + return (error); + linux_to_bsd_v4l2_buffer(&l_vbuf, &vbuf); + if ((args->cmd & 0xffff) == LINUX_VIDIOC_QUERYBUF) + error = fo_ioctl(fp, VIDIOC_QUERYBUF, &vbuf, + td->td_ucred, td); + else if ((args->cmd & 0xffff) == LINUX_VIDIOC_QBUF) + error = fo_ioctl(fp, VIDIOC_QBUF, &vbuf, + td->td_ucred, td); + else + error = fo_ioctl(fp, VIDIOC_DQBUF, &vbuf, + td->td_ucred, td); + bsd_to_linux_v4l2_buffer(&vbuf, &l_vbuf); + copyout(&l_vbuf, (void *)args->arg, sizeof(l_vbuf)); + fdrop(fp, td); + return (error); + + /* + * XXX TODO - these need 32 -> 64 bit conversion: + * (are any of them needed for webcams?) + */ + case LINUX_VIDIOC_G_FBUF: + case LINUX_VIDIOC_S_FBUF: + + case LINUX_VIDIOC_G_EXT_CTRLS: + case LINUX_VIDIOC_S_EXT_CTRLS: + case LINUX_VIDIOC_TRY_EXT_CTRLS: + + case LINUX_VIDIOC_DQEVENT: + + default: return (ENOIOCTL); + } + + error = ioctl(td, (struct ioctl_args *)args); + return (error); +} + /* * Support for emulators/linux-libusb. This port uses FBSD_LUSB* macros * instead of USB* ones. This lets us to provide correct values for cmd. Modified: projects/altix/sys/compat/linux/linux_ioctl.h ============================================================================== --- projects/altix/sys/compat/linux/linux_ioctl.h Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/sys/compat/linux/linux_ioctl.h Fri May 6 03:44:49 2011 (r221520) @@ -32,6 +32,17 @@ #define _LINUX_IOCTL_H_ /* + * ioctl + * + * XXX comments in Linux' <asm-generic/ioctl.h> indicate these + * could be arch-dependant... + */ +#define LINUX_IOC_VOID 0 +#define LINUX_IOC_IN 0x40000000 +#define LINUX_IOC_OUT 0x80000000 +#define LINUX_IOC_INOUT (LINUX_IOC_IN|LINUX_IOC_OUT) + +/* * disk */ #define LINUX_BLKROSET 0x125d @@ -612,6 +623,92 @@ int linux_ifname(struct ifnet *, char #define LINUX_IOCTL_VIDEO_MIN LINUX_VIDIOCGCAP #define LINUX_IOCTL_VIDEO_MAX LINUX_VIDIOCSVBIFMT +/* videodev2 aka V4L2 */ + +#define LINUX_VIDIOC_QUERYCAP 0x5600 /* 0x80685600 */ +#define LINUX_VIDIOC_RESERVED 0x5601 /* 0x00005601 */ +#define LINUX_VIDIOC_ENUM_FMT 0x5602 /* 0xc0405602 */ +#define LINUX_VIDIOC_G_FMT 0x5604 /* 0xc0cc5604 */ +#define LINUX_VIDIOC_S_FMT 0x5605 /* 0xc0cc5605 */ +#define LINUX_VIDIOC_REQBUFS 0x5608 /* 0xc0145608 */ +#define LINUX_VIDIOC_QUERYBUF 0x5609 /* 0xc0445609 */ +#define LINUX_VIDIOC_G_FBUF 0x560a /* 0x802c560a */ +#define LINUX_VIDIOC_S_FBUF 0x560b /* 0x402c560b */ +#define LINUX_VIDIOC_OVERLAY 0x560e /* 0x4004560e */ +#define LINUX_VIDIOC_QBUF 0x560f /* 0xc044560f */ +#define LINUX_VIDIOC_DQBUF 0x5611 /* 0xc0445611 */ +#define LINUX_VIDIOC_STREAMON 0x5612 /* 0x40045612 */ +#define LINUX_VIDIOC_STREAMOFF 0x5613 /* 0x40045613 */ +#define LINUX_VIDIOC_G_PARM 0x5615 /* 0xc0cc5615 */ +#define LINUX_VIDIOC_S_PARM 0x5616 /* 0xc0cc5616 */ +#define LINUX_VIDIOC_G_STD 0x5617 /* 0x80085617 */ +#define LINUX_VIDIOC_S_STD 0x5618 /* 0x40085618 */ +#define LINUX_VIDIOC_ENUMSTD 0x5619 /* 0xc0405619 */ +#define LINUX_VIDIOC_ENUMINPUT 0x561a /* 0xc04c561a */ +#define LINUX_VIDIOC_G_CTRL 0x561b /* 0xc008561b */ +#define LINUX_VIDIOC_S_CTRL 0x561c /* 0xc008561c */ +#define LINUX_VIDIOC_G_TUNER 0x561d /* 0xc054561d */ +#define LINUX_VIDIOC_S_TUNER 0x561e /* 0x4054561e */ +#define LINUX_VIDIOC_G_AUDIO 0x5621 /* 0x80345621 */ +#define LINUX_VIDIOC_S_AUDIO 0x5622 /* 0x40345622 */ +#define LINUX_VIDIOC_QUERYCTRL 0x5624 /* 0xc0445624 */ +#define LINUX_VIDIOC_QUERYMENU 0x5625 /* 0xc02c5625 */ +#define LINUX_VIDIOC_G_INPUT 0x5626 /* 0x80045626 */ +#define LINUX_VIDIOC_S_INPUT 0x5627 /* 0xc0045627 */ +#define LINUX_VIDIOC_G_OUTPUT 0x562e /* 0x8004562e */ +#define LINUX_VIDIOC_S_OUTPUT 0x562f /* 0xc004562f */ +#define LINUX_VIDIOC_ENUMOUTPUT 0x5630 /* 0xc0485630 */ +#define LINUX_VIDIOC_G_AUDOUT 0x5631 /* 0x80345631 */ +#define LINUX_VIDIOC_S_AUDOUT 0x5632 /* 0x40345632 */ +#define LINUX_VIDIOC_G_MODULATOR 0x5636 /* 0xc0445636 */ +#define LINUX_VIDIOC_S_MODULATOR 0x5637 /* 0x40445637 */ +#define LINUX_VIDIOC_G_FREQUENCY 0x5638 /* 0xc02c5638 */ +#define LINUX_VIDIOC_S_FREQUENCY 0x5639 /* 0x402c5639 */ +#define LINUX_VIDIOC_CROPCAP 0x563a /* 0xc02c563a */ +#define LINUX_VIDIOC_G_CROP 0x563b /* 0xc014563b */ +#define LINUX_VIDIOC_S_CROP 0x563c /* 0x4014563c */ +#define LINUX_VIDIOC_G_JPEGCOMP 0x563d /* 0x808c563d */ +#define LINUX_VIDIOC_S_JPEGCOMP 0x563e /* 0x408c563e */ +#define LINUX_VIDIOC_QUERYSTD 0x563f /* 0x8008563f */ +#define LINUX_VIDIOC_TRY_FMT 0x5640 /* 0xc0cc5640 */ +#define LINUX_VIDIOC_ENUMAUDIO 0x5641 /* 0xc0345641 */ +#define LINUX_VIDIOC_ENUMAUDOUT 0x5642 /* 0xc0345642 */ +#define LINUX_VIDIOC_G_PRIORITY 0x5643 /* 0x80045643 */ +#define LINUX_VIDIOC_S_PRIORITY 0x5644 /* 0x40045644 */ +#define LINUX_VIDIOC_G_SLICED_VBI_CAP 0x5645 /* 0xc0745645 */ +#define LINUX_VIDIOC_LOG_STATUS 0x5646 /* 0x00005646 */ +#define LINUX_VIDIOC_G_EXT_CTRLS 0x5647 /* 0xc0185647 */ +#define LINUX_VIDIOC_S_EXT_CTRLS 0x5648 /* 0xc0185648 */ +#define LINUX_VIDIOC_TRY_EXT_CTRLS 0x5649 /* 0xc0185649 */ +#define LINUX_VIDIOC_ENUM_FRAMESIZES 0x564a /* 0xc02c564a */ +#define LINUX_VIDIOC_ENUM_FRAMEINTERVALS 0x564b /* 0xc034564b */ +#define LINUX_VIDIOC_G_ENC_INDEX 0x564c /* 0x8818564c */ +#define LINUX_VIDIOC_ENCODER_CMD 0x564d /* 0xc028564d */ +#define LINUX_VIDIOC_TRY_ENCODER_CMD 0x564e /* 0xc028564e */ +#define LINUX_VIDIOC_DBG_S_REGISTER 0x564f /* 0x4038564f */ +#define LINUX_VIDIOC_DBG_G_REGISTER 0x5650 /* 0xc0385650 */ +#define LINUX_VIDIOC_DBG_G_CHIP_IDENT 0x5651 /* 0xc02c5651 */ +#define LINUX_VIDIOC_S_HW_FREQ_SEEK 0x5652 /* 0x40305652 */ +#define LINUX_VIDIOC_ENUM_DV_PRESETS 0x5653 /* 0xc0405653 */ +#define LINUX_VIDIOC_S_DV_PRESET 0x5654 /* 0xc0145654 */ +#define LINUX_VIDIOC_G_DV_PRESET 0x5655 /* 0xc0145655 */ +#define LINUX_VIDIOC_QUERY_DV_PRESET 0x5656 /* 0x80145656 */ +#define LINUX_VIDIOC_S_DV_TIMINGS 0x5657 /* 0xc0845657 */ +#define LINUX_VIDIOC_G_DV_TIMINGS 0x5658 /* 0xc0845658 */ +#define LINUX_VIDIOC_DQEVENT 0x5659 /* 0x80785659 */ +#define LINUX_VIDIOC_SUBSCRIBE_EVENT 0x565a /* 0x4020565a */ +#define LINUX_VIDIOC_UNSUBSCRIBE_EVENT 0x565b /* 0x4020565b */ + +#define LINUX_VIDIOC_OVERLAY_OLD 0x560e /* 0xc004560e */ +#define LINUX_VIDIOC_S_PARM_OLD 0x5616 /* 0x40cc5616 */ +#define LINUX_VIDIOC_S_CTRL_OLD 0x561c /* 0x4008561c */ +#define LINUX_VIDIOC_G_AUDIO_OLD 0x5621 /* 0xc0345621 */ +#define LINUX_VIDIOC_G_AUDOUT_OLD 0x5631 /* 0xc0345631 */ +#define LINUX_VIDIOC_CROPCAP_OLD 0x563a /* 0x802c563a */ + +#define LINUX_IOCTL_VIDEO2_MIN LINUX_VIDIOC_QUERYCAP +#define LINUX_IOCTL_VIDEO2_MAX LINUX_VIDIOC_UNSUBSCRIBE_EVENT + /* * Our libusb(8) calls emulated within linux(4). */ Modified: projects/altix/sys/compat/linux/linux_videodev.h ============================================================================== --- projects/altix/sys/compat/linux/linux_videodev.h Fri May 6 03:26:24 2011 (r221519) +++ projects/altix/sys/compat/linux/linux_videodev.h Fri May 6 03:44:49 2011 (r221520) @@ -1,8 +1,8 @@ /* * This header comes from linux, but it has no license. The author * (Alan Cox @ Redhat) gave explicit permissions to use it in FreeBSD. - * The freeBSD vendor branch for v4l gives a more detailed description - * about this. + * The FreeBSD vendor branch for v4l gives a more detailed description + * about this in the README. * * $FreeBSD$ */ Copied: projects/altix/sys/compat/linux/linux_videodev2.h (from r221517, head/sys/compat/linux/linux_videodev2.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/altix/sys/compat/linux/linux_videodev2.h Fri May 6 03:44:49 2011 (r221520, copy of r221517, head/sys/compat/linux/linux_videodev2.h) @@ -0,0 +1,1179 @@ +/* + * This header comes from linux, but it has no license. The author + * (Bill Dirks) gave explicit permissions to use it in FreeBSD. + * The FreeBSD vendor branch for v4l gives a more detailed description + * about this in the README. + * + * $FreeBSD$ + */ + +#ifndef __LINUX_VIDEODEV2_H +#define __LINUX_VIDEODEV2_H +/* + * Video for Linux Two + * + * Header file for v4l or V4L2 drivers and applications, for + * Linux kernels 2.2.x or 2.4.x. + * + * See http://bytesex.org/v4l/ for API specs and other + * v4l2 documentation. + * + * Author: Bill Dirks <bdirks@pacbell.net> + * Justin Schoeman + * et al. + */ +#ifdef __FreeBSD__ +#define __user +typedef uint64_t __u64; +typedef int64_t __s64; +#else +#ifdef __KERNEL__ +#include <linux/time.h> /* need struct timeval */ +#include <linux/poll.h> +#include <linux/device.h> +#include <linux/mutex.h> +#endif +#include <linux/compiler.h> /* need __user */ +#endif + + +#define OBSOLETE_OWNER 1 /* It will be removed for 2.6.17 */ +#define HAVE_V4L2 1 + +/* + * Common stuff for both V4L1 and V4L2 + * Moved from videodev.h + */ + +#define VIDEO_MAX_FRAME 32 + +#define VID_TYPE_CAPTURE 1 /* Can capture */ +#define VID_TYPE_TUNER 2 /* Can tune */ +#define VID_TYPE_TELETEXT 4 /* Does teletext */ +#define VID_TYPE_OVERLAY 8 /* Overlay onto frame buffer */ +#define VID_TYPE_CHROMAKEY 16 /* Overlay by chromakey */ +#define VID_TYPE_CLIPPING 32 /* Can clip */ +#define VID_TYPE_FRAMERAM 64 /* Uses the frame buffer memory */ +#define VID_TYPE_SCALES 128 /* Scalable */ +#define VID_TYPE_MONOCHROME 256 /* Monochrome only */ +#define VID_TYPE_SUBCAPTURE 512 /* Can capture subareas of the image */ +#define VID_TYPE_MPEG_DECODER 1024 /* Can decode MPEG streams */ +#define VID_TYPE_MPEG_ENCODER 2048 /* Can encode MPEG streams */ +#define VID_TYPE_MJPEG_DECODER 4096 /* Can decode MJPEG streams */ +#define VID_TYPE_MJPEG_ENCODER 8192 /* Can encode MJPEG streams */ + +#ifdef __KERNEL__ + +/* Minor device allocation */ +#define MINOR_VFL_TYPE_GRABBER_MIN 0 +#define MINOR_VFL_TYPE_GRABBER_MAX 63 +#define MINOR_VFL_TYPE_RADIO_MIN 64 +#define MINOR_VFL_TYPE_RADIO_MAX 127 +#define MINOR_VFL_TYPE_VTX_MIN 192 +#define MINOR_VFL_TYPE_VTX_MAX 223 +#define MINOR_VFL_TYPE_VBI_MIN 224 +#define MINOR_VFL_TYPE_VBI_MAX 255 + +#define VFL_TYPE_GRABBER 0 +#define VFL_TYPE_VBI 1 +#define VFL_TYPE_RADIO 2 +#define VFL_TYPE_VTX 3 + +struct video_device +{ + /* device info */ + struct device *dev; + char name[32]; + int type; /* v4l1 */ + int type2; /* v4l2 */ + int hardware; + int minor; + + /* device ops + callbacks */ + const struct file_operations *fops; + void (*release)(struct video_device *vfd); + + +#if OBSOLETE_OWNER /* to be removed in 2.6.15 */ + /* obsolete -- fops->owner is used instead */ + struct module *owner; + /* dev->driver_data will be used instead some day. + * Use the video_{get|set}_drvdata() helper functions, + * so the switch over will be transparent for you. + * Or use {pci|usb}_{get|set}_drvdata() directly. */ + void *priv; +#endif + + /* for videodev.c intenal usage -- please don't touch */ + int users; /* video_exclusive_{open|close} ... */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201105060344.p463in5T031097>
