Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Mar 2007 20:32:56 GMT
From:      Roman Divacky <rdivacky@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 116873 for review
Message-ID:  <200703292032.l2TKWuLk024788@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=116873

Change 116873 by rdivacky@rdivacky_witten on 2007/03/29 20:32:06

	IFC

Affected files ...

.. //depot/projects/linuxolator/src/sys/amd64/linux32/linux.h#26 integrate
.. //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_dummy.c#11 integrate
.. //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_proto.h#22 integrate
.. //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_syscall.h#22 integrate
.. //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_sysent.c#21 integrate
.. //depot/projects/linuxolator/src/sys/amd64/linux32/syscalls.master#22 integrate
.. //depot/projects/linuxolator/src/sys/arm/at91/at91_st.c#5 integrate
.. //depot/projects/linuxolator/src/sys/arm/xscale/i80321/i80321_wdog.c#3 integrate
.. //depot/projects/linuxolator/src/sys/arm/xscale/ixp425/ixp425_wdog.c#2 integrate
.. //depot/projects/linuxolator/src/sys/boot/arm/at91/boot2/boot2.c#4 integrate
.. //depot/projects/linuxolator/src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c#4 integrate
.. //depot/projects/linuxolator/src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.h#4 integrate
.. //depot/projects/linuxolator/src/sys/boot/arm/at91/libat91/emac.c#5 integrate
.. //depot/projects/linuxolator/src/sys/boot/arm/at91/libat91/getc.c#2 integrate
.. //depot/projects/linuxolator/src/sys/boot/arm/at91/libat91/memcmp.c#3 integrate
.. //depot/projects/linuxolator/src/sys/boot/arm/at91/libat91/sd-card.c#4 integrate
.. //depot/projects/linuxolator/src/sys/boot/arm/at91/libat91/spi_flash.c#4 integrate
.. //depot/projects/linuxolator/src/sys/boot/arm/at91/libat91/strlen.c#3 integrate
.. //depot/projects/linuxolator/src/sys/compat/linux/linux_file.c#17 integrate
.. //depot/projects/linuxolator/src/sys/compat/linux/linux_util.h#4 integrate
.. //depot/projects/linuxolator/src/sys/conf/options#20 integrate
.. //depot/projects/linuxolator/src/sys/dev/acpica/acpi_hpet.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/fxp/if_fxp.c#8 integrate
.. //depot/projects/linuxolator/src/sys/dev/ichwd/ichwd.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/ipmi/ipmi.c#8 integrate
.. //depot/projects/linuxolator/src/sys/dev/isp/isp_sbus.c#9 integrate
.. //depot/projects/linuxolator/src/sys/dev/mk48txx/mk48txx.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/re/if_re.c#11 integrate
.. //depot/projects/linuxolator/src/sys/dev/scc/scc_bfe.h#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/scc/scc_core.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/scc/scc_if.m#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/sio/sio_pci.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/uart/uart_core.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/uart/uart_dev_ns8250.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/usb/uhci.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/watchdog/watchdog.c#3 integrate
.. //depot/projects/linuxolator/src/sys/i386/i386/elan-mmcr.c#3 integrate
.. //depot/projects/linuxolator/src/sys/i386/i386/geode.c#2 integrate
.. //depot/projects/linuxolator/src/sys/i386/linux/linux.h#22 integrate
.. //depot/projects/linuxolator/src/sys/i386/linux/linux_dummy.c#11 integrate
.. //depot/projects/linuxolator/src/sys/i386/linux/linux_proto.h#22 integrate
.. //depot/projects/linuxolator/src/sys/i386/linux/linux_syscall.h#21 integrate
.. //depot/projects/linuxolator/src/sys/i386/linux/linux_sysent.c#21 integrate
.. //depot/projects/linuxolator/src/sys/i386/linux/syscalls.master#21 integrate
.. //depot/projects/linuxolator/src/sys/kern/init_main.c#9 integrate
.. //depot/projects/linuxolator/src/sys/kern/kern_thread.c#7 integrate
.. //depot/projects/linuxolator/src/sys/kern/vfs_bio.c#11 integrate
.. //depot/projects/linuxolator/src/sys/net/rtsock.c#4 integrate
.. //depot/projects/linuxolator/src/sys/netgraph/bluetooth/l2cap/ng_l2cap_cmds.c#2 integrate
.. //depot/projects/linuxolator/src/sys/netgraph/netflow/ng_netflow.c#3 integrate
.. //depot/projects/linuxolator/src/sys/netgraph/netflow/ng_netflow.h#2 integrate
.. //depot/projects/linuxolator/src/sys/netinet/in_pcb.h#3 integrate
.. //depot/projects/linuxolator/src/sys/netinet/tcp_input.c#13 integrate
.. //depot/projects/linuxolator/src/sys/sys/mount.h#8 integrate
.. //depot/projects/linuxolator/src/sys/ufs/ffs/ffs_softdep.c#8 integrate

Differences ...

==== //depot/projects/linuxolator/src/sys/amd64/linux32/linux.h#26 (text+ko) ====

@@ -27,7 +27,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/linux32/linux.h,v 1.14 2007/03/02 00:08:47 jkim Exp $
+ * $FreeBSD: src/sys/amd64/linux32/linux.h,v 1.15 2007/03/29 02:11:46 julian Exp $
  */
 
 #ifndef _AMD64_LINUX_H_

==== //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_dummy.c#11 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_dummy.c,v 1.7 2006/12/31 13:16:00 netchild Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_dummy.c,v 1.8 2007/03/29 02:11:46 julian Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_proto.h#22 (text+ko) ====

@@ -2,7 +2,7 @@
  * System call prototypes.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD$
+ * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.30 2007/03/29 02:11:46 julian Exp $
  * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.26 2007/02/15 01:13:36 jkim Exp 
  */
 

==== //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_syscall.h#22 (text+ko) ====

@@ -2,7 +2,7 @@
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD$
+ * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.30 2007/03/29 02:11:46 julian Exp $
  * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.26 2007/02/15 01:13:36 jkim Exp 
  */
 

==== //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_sysent.c#21 (text+ko) ====

@@ -2,7 +2,7 @@
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD$
+ * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.30 2007/03/29 02:11:46 julian Exp $
  * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.26 2007/02/15 01:13:36 jkim Exp 
  */
 

==== //depot/projects/linuxolator/src/sys/amd64/linux32/syscalls.master#22 (text+ko) ====

@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.26 2007/02/15 01:13:36 jkim Exp $
+ $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.27 2007/03/29 02:11:46 julian Exp $
 
 ;	@(#)syscalls.master	8.1 (Berkeley) 7/19/93
 ; System call name/number master file (or rather, slave, from LINUX).

==== //depot/projects/linuxolator/src/sys/arm/at91/at91_st.c#5 (text) ====

@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/at91_st.c,v 1.8 2007/02/23 12:18:27 piso Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/at91_st.c,v 1.9 2007/03/27 21:03:35 n_hibma Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -171,13 +171,11 @@
 	int t;
 
 	t = cmd & WD_INTERVAL;
-	if (cmd > 0 && t >= 22 && t <= 37) {
+	if (t >= 22 && t <= 37) {
 		wdog = (1 << (t - 22)) | ST_WDMR_RSTEN;
 		*error = 0;
 	} else {
 		wdog = 0;
-		if (cmd > 0)
-			*error = EINVAL;
 	}
 	WR4(ST_WDMR, wdog);
 	WR4(ST_CR, ST_CR_WDRST);

==== //depot/projects/linuxolator/src/sys/arm/xscale/i80321/i80321_wdog.c#3 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321_wdog.c,v 1.3 2006/12/15 21:44:48 n_hibma Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321_wdog.c,v 1.4 2007/03/27 21:03:35 n_hibma Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -111,18 +111,15 @@
 
 	cmd &= WD_INTERVAL;
 	if (cmd > 0 && cmd <= 63
-	    && (uint64_t)1 << (cmd & WD_INTERVAL) <=
-	       (uint64_t)sc->wdog_period * 1000000000) {
+	    && (uint64_t)1<<cmd <= (uint64_t)sc->wdog_period * 1000000000) {
 		/* Valid value -> Enable watchdog */
 		iopwdog_tickle(sc);
 		sc->armed = 1;
 		*error = 0;
 	} else {
-		/* XXX Can't disable this watchdog? */
+		/* Can't disable this watchdog! */
 		if (sc->armed)
 			*error = EOPNOTSUPP;
-		else if (cmd > 0)
-			*error = EINVAL;
 	}
 }
 

==== //depot/projects/linuxolator/src/sys/arm/xscale/ixp425/ixp425_wdog.c#2 (text+ko) ====

@@ -22,7 +22,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_wdog.c,v 1.1 2006/11/19 23:55:23 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_wdog.c,v 1.2 2007/03/27 21:03:36 n_hibma Exp $");
 
 /*
  * IXP425 Watchdog Timer Support.
@@ -70,7 +70,7 @@
 	u_int u = cmd & WD_INTERVAL;
 
 	WR4(sc, IXP425_OST_WDOG_KEY, OST_WDOG_KEY_MAJICK);
-	if (cmd && 4 <= u && u <= 35) {
+	if (4 <= u && u <= 35) {
 		WR4(sc, IXP425_OST_WDOG_ENAB, 0);
 		/* approximate 66.66MHz cycles */
 		WR4(sc, IXP425_OST_WDOG, 2<<(u - 4));

==== //depot/projects/linuxolator/src/sys/boot/arm/at91/boot2/boot2.c#4 (text+ko) ====

@@ -14,7 +14,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/arm/at91/boot2/boot2.c,v 1.3 2006/11/16 00:47:31 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/arm/at91/boot2/boot2.c,v 1.4 2007/03/28 21:18:45 imp Exp $");
 
 #include <sys/param.h>
 #include <sys/disklabel.h>
@@ -114,12 +114,10 @@
     char *s;
 
     s = cmd;
-    if (c)
-	*s++ = c;
+    if (c == 0)
+	c = getc(10000);
     for (;;) {
-	c = getc(10000);
-
-	switch (c = getc(10000)) {
+	switch (c) {
 	case 0:
 	    break;
 	case '\177':
@@ -138,6 +136,7 @@
 		*s++ = c;
 	    xputchar(c);
 	}
+	c = getc(10000);
     }
 }
 
@@ -170,7 +169,8 @@
 
     /* Present the user with the boot2 prompt. */
 
-    strcpy(kname, PATH_KERNEL);
+    if (*kname == '\0')
+	strcpy(kname, PATH_KERNEL);
     for (;;) {
 	printf("\nDefault: %s\nboot: ", kname);
 	if (!autoboot || (c = getc(2)) != -1)
@@ -252,6 +252,7 @@
 		opts ^= OPT_SET(flags[i]);
 	    }
 	} else {
+	    arg--;
 	    if ((i = ep - arg)) {
 		if ((size_t)i >= sizeof(kname))
 		    return -1;

==== //depot/projects/linuxolator/src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c#4 (text) ====

@@ -24,7 +24,7 @@
  * This software is derived from software provide by Kwikbyte who specifically
  * disclaimed copyright on the code.
  *
- * $FreeBSD: src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c,v 1.4 2006/11/09 20:32:36 imp Exp $
+ * $FreeBSD: src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c,v 1.5 2007/03/28 22:40:37 imp Exp $
  */
 
 #include "at91rm9200.h"
@@ -53,6 +53,7 @@
 	register unsigned	value;
 	volatile sdram_size_t *p = (sdram_size_t *)SDRAM_BASE;
 
+	AT91C_BASE_ST->ST_RTMR = 1;
 #ifdef BOOT_TSC
 	// For the TSC board, we turn ON the one LED we have while
 	// early in boot.

==== //depot/projects/linuxolator/src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.h#4 (text) ====

@@ -21,7 +21,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.h,v 1.4 2006/12/20 18:18:24 imp Exp $
+ * $FreeBSD: src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.h,v 1.5 2007/03/28 22:40:37 imp Exp $
  */
 
 #ifndef _AT91RM9200_LOWLEVEL_H_
@@ -58,7 +58,8 @@
 /* Master clock frequency at power-up */
 #define AT91C_MASTER_CLOCK 60000000
 
-#define GetSeconds() (AT91C_BASE_RTC->RTC_TIMR & AT91C_RTC_SEC)
+/* #define GetSeconds() (AT91C_BASE_RTC->RTC_TIMR & AT91C_RTC_SEC) */
+#define GetSeconds() (AT91C_BASE_ST->ST_CRTR >> 15)
 
 extern void _init(void);
 

==== //depot/projects/linuxolator/src/sys/boot/arm/at91/libat91/emac.c#5 (text) ====

@@ -19,7 +19,7 @@
  * only.
  * END_BLOCK
  * 
- * $FreeBSD: src/sys/boot/arm/at91/libat91/emac.c,v 1.6 2006/12/20 18:26:37 imp Exp $
+ * $FreeBSD: src/sys/boot/arm/at91/libat91/emac.c,v 1.7 2007/03/28 22:40:37 imp Exp $
  ******************************************************************************/
 
 #include "at91rm9200.h"
@@ -412,7 +412,8 @@
 				break;
 			printf(".");
 			sec = GetSeconds();
-			while (GetSeconds() <= sec) continue;
+			while (GetSeconds() == sec)
+			    continue;
 		}
 		if (stat2 & MII_STS_LINK_STAT)
 			break;
@@ -541,7 +542,7 @@
 	dlAddress = (char*)address;
 	lastSize = 0;
 	timeout = 10;
-	thisSeconds = GetSeconds() + 1;
+	thisSeconds = (GetSeconds() + 2) % 32;
 	serverPort = SWAP16(69);
 	++localPort;
 	ackBlock = -1;
@@ -551,10 +552,10 @@
 			if (ackBlock == -2)
 				break;
 			timeout = 10;
-			thisSeconds = GetSeconds() + 1;
-		} else if (GetSeconds() > thisSeconds) {
+			thisSeconds = (GetSeconds() + 2) % 32;
+		} else if (GetSeconds() == thisSeconds) {
 			--timeout;
-			thisSeconds = GetSeconds() + 1;
+			thisSeconds = (GetSeconds() + 2) % 32;
 			if (!serverMACSet)
 				GetServerAddress();
 			else if (ackBlock == -1)

==== //depot/projects/linuxolator/src/sys/boot/arm/at91/libat91/getc.c#2 (text) ====

@@ -31,7 +31,7 @@
  * owners.  This software is not copyrighted and is intended for reference
  * only.
  *
- * $FreeBSD: src/sys/boot/arm/at91/libat91/getc.c,v 1.2 2006/04/21 13:58:51 imp Exp $
+ * $FreeBSD: src/sys/boot/arm/at91/libat91/getc.c,v 1.3 2007/03/28 22:40:37 imp Exp $
  */
 
 #include "at91rm9200.h"
@@ -50,13 +50,15 @@
 	AT91PS_USART pUSART = (AT91PS_USART)AT91C_BASE_DBGU;
 	unsigned	thisSecond;
 
+	// Clamp to 20s
+	if (seconds > 20)
+	    seconds = 20;
 	thisSecond = GetSeconds();
 	seconds = thisSecond + seconds;
-
 	do {
 		if ((pUSART->US_CSR & AT91C_US_RXRDY))
 			return (pUSART->US_RHR & 0xFF);
 		thisSecond = GetSeconds();
-	} while (thisSecond < seconds);
+	} while (thisSecond != seconds);
 	return (-1);
 }

==== //depot/projects/linuxolator/src/sys/boot/arm/at91/libat91/memcmp.c#3 (text+ko) ====

@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/arm/at91/libat91/memcmp.c,v 1.2 2006/11/09 20:32:36 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/arm/at91/libat91/memcmp.c,v 1.3 2007/03/28 21:15:50 imp Exp $");
 
 #include "lib.h"
 
@@ -34,5 +34,5 @@
 	while ((--size) && (*to++ == *from++))
 		continue;
 
-	return (*to != *from);
+	return (size || (*to != *from));
 }

==== //depot/projects/linuxolator/src/sys/boot/arm/at91/libat91/sd-card.c#4 (text+ko) ====

@@ -24,7 +24,7 @@
  * This software is derived from software provide by Kwikbyte who specifically
  * disclaimed copyright on the code.
  *
- * $FreeBSD: src/sys/boot/arm/at91/libat91/sd-card.c,v 1.3 2006/11/09 20:32:36 imp Exp $
+ * $FreeBSD: src/sys/boot/arm/at91/libat91/sd-card.c,v 1.4 2007/03/28 22:31:32 imp Exp $
  */
 
 //*----------------------------------------------------------------------------
@@ -157,8 +157,9 @@
 static int
 MCI_ReadBlock(int src, unsigned int *dataBuffer, int sizeToRead)
 {
-	unsigned log2sl = MCI_Device.READ_BL_LEN;
-	unsigned sectorLength = 1 << log2sl;
+//	unsigned log2sl = MCI_Device.READ_BL_LEN;
+//	unsigned sectorLength = 1 << log2sl;
+	unsigned sectorLength = 512;
 
 	///////////////////////////////////////////////////////////////////////
 	if (MCI_Device.state != AT91C_MCI_IDLE)
@@ -195,8 +196,9 @@
 int
 MCI_read(char* dest, unsigned source, unsigned length)
 {
-	unsigned log2sl = MCI_Device.READ_BL_LEN;
-	unsigned sectorLength = 1 << log2sl;
+//	unsigned log2sl = MCI_Device.READ_BL_LEN;
+//	unsigned sectorLength = 1 << log2sl;
+	unsigned sectorLength = 512;
 	int sizeToRead;
 	unsigned int *walker;
 

==== //depot/projects/linuxolator/src/sys/boot/arm/at91/libat91/spi_flash.c#4 (text+ko) ====

@@ -19,7 +19,7 @@
  * only.
  * END_BLOCK
  *
- * $FreeBSD: src/sys/boot/arm/at91/libat91/spi_flash.c,v 1.3 2006/12/20 18:25:16 imp Exp $
+ * $FreeBSD: src/sys/boot/arm/at91/libat91/spi_flash.c,v 1.4 2007/03/28 22:38:01 imp Exp $
  *****************************************************************************/
 
 #include "at91rm9200.h"
@@ -256,9 +256,6 @@
 	value = pSPI->SPI_RDR;
 	value = pSPI->SPI_SR;
 
-	// Increment real time counter every SLCK
-	AT91C_BASE_ST->ST_RTMR = 1;
-
 #ifdef BOOT_BWCT
 	if (((value = GetFlashStatus()) & 0xFC) != 0xB4)
 		printf(" Bad SPI status: 0x%x\n", value);

==== //depot/projects/linuxolator/src/sys/boot/arm/at91/libat91/strlen.c#3 (text+ko) ====

@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/arm/at91/libat91/strlen.c,v 1.2 2006/11/09 20:32:36 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/arm/at91/libat91/strlen.c,v 1.3 2007/03/28 21:12:43 imp Exp $");
 
 /******************************************************************************
  *
@@ -64,5 +64,5 @@
 	const char *ptr = buffer;
 	while (*ptr++)
 		continue;
-	return (ptr - buffer);
+	return (ptr - buffer - 1);
 }

==== //depot/projects/linuxolator/src/sys/compat/linux/linux_file.c#17 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_file.c,v 1.101 2007/01/18 10:42:10 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_file.c,v 1.102 2007/03/29 02:11:45 julian Exp $");
 
 #include "opt_compat.h"
 #include "opt_mac.h"
@@ -234,6 +234,116 @@
     return error;
 }
 
+/*
+ * common code for linux *at set of syscalls
+ *
+ * works like this:
+ * if filename is absolute 
+ *    ignore dirfd
+ * else
+ *    if dirfd == AT_FDCWD 
+ *       return CWD/filename
+ *    else
+ *       return DIRFD/filename
+ */
+static int
+linux_at(struct thread *td, int dirfd, char *filename, char **newpath, char **freebuf)
+{
+   	struct file *fp;
+	int error = 0;
+	struct vnode *dvp;
+	struct filedesc *fdp = td->td_proc->p_fd;
+	char *fullpath = "unknown";
+	char *freepath = NULL;
+
+	/* don't do anything if the pathname is absolute */
+	if (*filename == '/') {
+	   	*newpath= filename;
+	   	return (0);
+	}
+
+	/* check for AT_FDWCD */
+	if (dirfd == LINUX_AT_FDCWD) {
+	   	FILEDESC_LOCK(fdp);
+		dvp = fdp->fd_cdir;
+	   	FILEDESC_UNLOCK(fdp);
+	} else {
+	   	error = fget(td, dirfd, &fp);
+		if (error)
+		   	return (error);
+		dvp = fp->f_vnode;
+		/* only a dir can be dfd */
+		if (dvp->v_type != VDIR) {
+		   	fdrop(fp, td);
+			return (ENOTDIR);
+		}
+		fdrop(fp, td);
+	}
+
+	error = vn_fullpath(td, dvp, &fullpath, &freepath);
+	if (!error) {
+	   	*newpath = malloc(strlen(fullpath) + strlen(filename) + 2, M_TEMP, M_WAITOK | M_ZERO);
+		*freebuf = freepath;
+		sprintf(*newpath, "%s/%s", fullpath, filename);
+	}
+
+	return (error);
+}
+
+int
+linux_openat(struct thread *td, struct linux_openat_args *args)
+{
+   	char *newpath, *oldpath, *freebuf = NULL, *path;
+	int error;
+
+	oldpath = malloc(MAXPATHLEN, M_TEMP, M_WAITOK);
+	error = copyinstr(args->filename, oldpath, MAXPATHLEN, NULL);
+
+#ifdef DEBUG
+	if (ldebug(openat))
+		printf(ARGS(openat, "%i, %s, 0x%x, 0x%x"), args->dfd,
+		    oldpath, args->flags, args->mode);
+#endif
+
+	error = linux_at(td, args->dfd, oldpath, &newpath, &freebuf);
+	if (error)
+	   	return (error);
+#ifdef DEBUG
+	printf(LMSG("newpath: %s"), newpath);
+#endif
+    	if (args->flags & LINUX_O_CREAT)
+		LCONVPATH_SEG(td, newpath, &path, 1, UIO_SYSSPACE);
+    	else
+		LCONVPATH_SEG(td, newpath, &path, 0, UIO_SYSSPACE);
+	if (freebuf)
+	   	free(freebuf, M_TEMP);
+	if (*oldpath != '/')
+   	   	free(newpath, M_TEMP);
+
+	error = linux_common_open(td, path, args->flags, args->mode, 1);
+	free(oldpath, M_TEMP);
+	return (error);
+}
+
+int
+linux_open(struct thread *td, struct linux_open_args *args)
+{
+    char *path;
+
+    if (args->flags & LINUX_O_CREAT)
+	LCONVPATHCREAT(td, args->path, &path);
+    else
+	LCONVPATHEXIST(td, args->path, &path);
+
+#ifdef DEBUG
+	if (ldebug(open))
+		printf(ARGS(open, "%s, 0x%x, 0x%x"),
+		    path, args->flags, args->mode);
+#endif
+
+    return linux_common_open(td, path, args->flags, args->mode, 0);
+}
+
 int
 linux_openat(struct thread *td, struct linux_openat_args *args)
 {

==== //depot/projects/linuxolator/src/sys/compat/linux/linux_util.h#4 (text+ko) ====

@@ -28,7 +28,7 @@
  *
  * from: svr4_util.h,v 1.5 1994/11/18 02:54:31 christos Exp
  * from: linux_util.h,v 1.2 1995/03/05 23:23:50 fvdl Exp
- * $FreeBSD: src/sys/compat/linux/linux_util.h,v 1.28 2006/06/27 18:30:49 jhb Exp $
+ * $FreeBSD: src/sys/compat/linux/linux_util.h,v 1.29 2007/03/29 02:11:45 julian Exp $
  */
 
 /*

==== //depot/projects/linuxolator/src/sys/conf/options#20 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.582 2007/03/22 18:16:39 jkim Exp $
+# $FreeBSD: src/sys/conf/options,v 1.583 2007/03/27 19:32:40 jhb Exp $
 #
 #        On the handling of kernel options
 #
@@ -59,7 +59,6 @@
 
 # Miscellaneous options.
 ADAPTIVE_GIANT	opt_adaptive_mutexes.h
-NO_ADAPTIVE_MUTEXES	opt_adaptive_mutexes.h
 ALQ
 AUDIT		opt_global.h
 CODA_COMPAT_5	opt_coda.h
@@ -124,6 +123,7 @@
 MPROF_BUFFERS	opt_mprof.h
 MPROF_HASH_SIZE	opt_mprof.h
 MUTEX_WAKE_ALL
+NO_ADAPTIVE_MUTEXES	opt_adaptive_mutexes.h
 NO_ADAPTIVE_RWLOCKS
 NSWBUF_MIN	opt_swap.h
 PANIC_REBOOT_WAIT_TIME	opt_panic.h

==== //depot/projects/linuxolator/src/sys/dev/acpica/acpi_hpet.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_hpet.c,v 1.5 2006/08/11 17:12:16 des Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_hpet.c,v 1.6 2007/03/28 22:28:48 njl Exp $");
 
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -154,6 +154,18 @@
 	return (EBUSY);
 }
 
+static int
+acpi_hpet_resume(device_t dev)
+{
+	struct acpi_hpet_softc *sc;
+
+	/* Re-enable the timer after a resume to keep the clock advancing. */
+	sc = device_get_softc(dev);
+	bus_write_4(sc->mem_res, HPET_OFFSET_ENABLE, 1);
+
+	return (0);
+}
+
 /* Print some basic latency/rate information to assist in debugging. */
 static void
 acpi_hpet_test(struct acpi_hpet_softc *sc)
@@ -188,6 +200,7 @@
 	DEVMETHOD(device_probe, acpi_hpet_probe),
 	DEVMETHOD(device_attach, acpi_hpet_attach),
 	DEVMETHOD(device_detach, acpi_hpet_detach),
+	DEVMETHOD(device_resume, acpi_hpet_resume),
 
 	{0, 0}
 };

==== //depot/projects/linuxolator/src/sys/dev/fxp/if_fxp.c#8 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.264 2007/02/23 12:18:41 piso Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.265 2007/03/28 18:10:50 remko Exp $");
 
 /*
  * Intel EtherExpress Pro/100B PCI Fast Ethernet driver
@@ -178,6 +178,7 @@
     { 0x1065,	-1,	"Intel 82562ET/EZ/GT/GZ PRO/100 VE Ethernet" },
     { 0x1068,	-1,	"Intel 82801FBM (ICH6-M) Pro/100 VE Ethernet" },
     { 0x1069,	-1,	"Intel 82562EM/EX/GX Pro/100 Ethernet" },
+    { 0x1091,	-1,	"Intel 82562GX Pro/100 Ethernet" },
     { 0x1092,	-1,	"Intel Pro/100 VE Network Connection" },
     { 0x1093,	-1,	"Intel Pro/100 VM Network Connection" },
     { 0x1094,	-1,	"Intel Pro/100 946GZ (ICH7) Network Connection" },

==== //depot/projects/linuxolator/src/sys/dev/ichwd/ichwd.c#4 (text+ko) ====

@@ -54,7 +54,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ichwd/ichwd.c,v 1.8 2007/03/13 15:54:26 n_hibma Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ichwd/ichwd.c,v 1.9 2007/03/27 21:03:36 n_hibma Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -194,8 +194,6 @@
 	} else {
 		if (sc->active)
 			ichwd_tmr_disable(sc);
-		if (cmd > 0)
-			*error = EINVAL;
 	}
 }
 

==== //depot/projects/linuxolator/src/sys/dev/ipmi/ipmi.c#8 (text) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ipmi/ipmi.c,v 1.9 2007/02/23 12:18:44 piso Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ipmi/ipmi.c,v 1.10 2007/03/27 21:03:36 n_hibma Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -656,8 +656,6 @@
 		*error = 0;
 	} else {
 		ipmi_set_watchdog(sc, 0);
-		if (cmd > 0)
-			*error = 0;
 	}
 }
 

==== //depot/projects/linuxolator/src/sys/dev/isp/isp_sbus.c#9 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/isp/isp_sbus.c,v 1.30 2007/03/13 06:46:08 mjacob Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/isp/isp_sbus.c,v 1.31 2007/03/28 16:34:11 mjacob Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -193,8 +193,6 @@
 	sbs->sbus_dev = dev;
 	sbs->sbus_reg = regs;
 	sbs->sbus_mdvec = mdvec;
-	isp->isp_bus_tag = rman_get_bustag(regs);
-	isp->isp_bus_handle = rman_get_bushandle(regs);
 
 	sbs->sbus_poff[BIU_BLOCK >> _BLK_REG_SHFT] = BIU_REGS_OFF;
 	sbs->sbus_poff[MBOX_BLOCK >> _BLK_REG_SHFT] = SBUS_MBOX_REGS_OFF;
@@ -202,6 +200,8 @@
 	sbs->sbus_poff[RISC_BLOCK >> _BLK_REG_SHFT] = SBUS_RISC_REGS_OFF;
 	sbs->sbus_poff[DMA_BLOCK >> _BLK_REG_SHFT] = DMA_REGS_OFF;
 	isp = &sbs->sbus_isp;
+	isp->isp_bus_tag = rman_get_bustag(regs);
+	isp->isp_bus_handle = rman_get_bushandle(regs);
 	isp->isp_mdvec = &sbs->sbus_mdvec;
 	isp->isp_bustype = ISP_BT_SBUS;
 	isp->isp_type = ISP_HA_SCSI_UNKNOWN;

==== //depot/projects/linuxolator/src/sys/dev/mk48txx/mk48txx.c#3 (text+ko) ====

@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/mk48txx/mk48txx.c,v 1.8 2006/12/15 21:44:49 n_hibma Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/mk48txx/mk48txx.c,v 1.9 2007/03/27 21:03:36 n_hibma Exp $");
 
 /*
  * Mostek MK48T02, MK48T08, MK48T18, MK48T59 time-of-day chip subroutines.
@@ -295,9 +295,9 @@
 	dev = arg;
 	sc = device_get_softc(dev);
 
-	wdog = 0;
 	t = cmd & WD_INTERVAL;
-	if (cmd > 0 && t >= 26 && t <= 37) {
+	if (t >= 26 && t <= 37) {
+		wdog = 0;
 		if (t <= WD_TO_2SEC) {
 			wdog |= MK48TXX_WDOG_RB_1_16;
 			t -= 26;
@@ -317,8 +317,8 @@
 		if (sc->sc_flag & MK48TXX_WDOG_ENABLE_WDS)
 			wdog |= MK48TXX_WDOG_WDS;
 		*error = 0;
-	} else if (cmd > 0) {
-		*error = EINVAL;
+	} else {
+		wdog = 0;
 	}
 	mtx_lock(&sc->sc_mtx);
 	(*sc->sc_nvwr)(dev, sc->sc_clkoffset + MK48TXX_WDOG, wdog);

==== //depot/projects/linuxolator/src/sys/dev/re/if_re.c#11 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.87 2007/03/04 03:38:07 csjp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.88 2007/03/28 18:07:12 remko Exp $");
 
 /*
  * RealTek 8139C+/8169/8169S/8110S/8168/8111/8101E PCI NIC driver
@@ -182,6 +182,8 @@
 		"RealTek 8169S Single-chip Gigabit Ethernet" },
 	{ RT_VENDORID, RT_DEVICEID_8169, RL_HWREV_8169_8110SB,
 		"RealTek 8169SB/8110SB Single-chip Gigabit Ethernet" },
+	{ RT_VENDORID, RT_DEVICEID_8169, RL_HWREV_8169_8110SC,
+		"RealTek 8169SC/8110SC Single-chip Gigabit Ethernet" },
 	{ RT_VENDORID, RT_DEVICEID_8169SC, RL_HWREV_8169_8110SC,
 		"RealTek 8169SC/8110SC Single-chip Gigabit Ethernet" },
 	{ RT_VENDORID, RT_DEVICEID_8169, RL_HWREV_8110S,

==== //depot/projects/linuxolator/src/sys/dev/scc/scc_bfe.h#4 (text) ====

@@ -23,7 +23,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/scc/scc_bfe.h,v 1.5 2007/03/22 23:45:25 marcel Exp $
+ * $FreeBSD: src/sys/dev/scc/scc_bfe.h,v 1.6 2007/03/28 18:05:17 marcel Exp $
  */
 
 #ifndef _DEV_SCC_BFE_H_
@@ -92,6 +92,7 @@
 	struct scc_mode	ch_mode[SCC_NMODES];
 
 	u_int		ch_nr;
+	int		ch_enabled:1;
 	int		ch_sysdev:1;
 
 	uint32_t	ch_ipend;

==== //depot/projects/linuxolator/src/sys/dev/scc/scc_core.c#4 (text) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/scc/scc_core.c,v 1.8 2007/03/22 23:45:25 marcel Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/scc/scc_core.c,v 1.10 2007/03/28 18:05:17 marcel Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -103,7 +103,7 @@
 	struct scc_softc *sc, *sc0;
 	const char *sep;
 	bus_space_handle_t bh;
-	u_long base, size, start;
+	u_long base, size, start, sz;
 	int c, error, mode, sysdev;
 
 	/*
@@ -155,18 +155,23 @@
 	 */
 	sysdev = 0;
 	base = rman_get_start(sc->sc_rres);
+	sz = (size != 0) ? size : rman_get_size(sc->sc_rres);
 	start = base + ((cl->cl_range < 0) ? size * (cl->cl_channels - 1) : 0);
 	for (c = 0; c < cl->cl_channels; c++) {
 		ch = &sc->sc_chan[c];
 		resource_list_init(&ch->ch_rlist);
 		ch->ch_nr = c + 1;
 
+		if (!SCC_ENABLED(sc, ch))
+			goto next;
+
+		ch->ch_enabled = 1;
 		resource_list_add(&ch->ch_rlist, sc->sc_rtype, 0, start,
-		    start + size - 1, size);
+		    start + sz - 1, sz);
 		rle = resource_list_find(&ch->ch_rlist, sc->sc_rtype, 0);
 		rle->res = &ch->ch_rres;
 		bus_space_subregion(rman_get_bustag(sc->sc_rres),
-		    rman_get_bushandle(sc->sc_rres), start - base, size, &bh);
+		    rman_get_bushandle(sc->sc_rres), start - base, sz, &bh);
 		rman_set_bushandle(rle->res, bh);
 		rman_set_bustag(rle->res, rman_get_bustag(sc->sc_rres));
 
@@ -191,6 +196,7 @@
 			}
 		}
 
+	 next:
 		start += (cl->cl_range < 0) ? -size : size;
 		sysdev |= ch->ch_sysdev;
 	}
@@ -336,7 +342,7 @@
 {
 	struct scc_softc *sc;
 	struct scc_class *cl;
-	u_long size;
+	u_long size, sz;
 	int error;
 
 	/*
@@ -378,9 +384,10 @@
 	 * Fill in the bus access structure and call the hardware specific
 	 * probe method.
 	 */
+	sz = (size != 0) ? size : rman_get_size(sc->sc_rres);
 	sc->sc_bas.bsh = rman_get_bushandle(sc->sc_rres);
 	sc->sc_bas.bst = rman_get_bustag(sc->sc_rres);
-	sc->sc_bas.range = size;
+	sc->sc_bas.range = sz;
 	sc->sc_bas.rclk = rclk;
 	sc->sc_bas.regshft = regshft;
 

==== //depot/projects/linuxolator/src/sys/dev/scc/scc_if.m#2 (text) ====

@@ -23,7 +23,7 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #
-# $FreeBSD: src/sys/dev/scc/scc_if.m,v 1.1 2006/03/30 18:33:22 marcel Exp $
+# $FreeBSD: src/sys/dev/scc/scc_if.m,v 1.2 2007/03/28 18:05:17 marcel Exp $
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -38,6 +38,15 @@
 
 INTERFACE scc;
 
+# Default implementations of some methods.
+CODE {
+	static int
+	default_enabled(struct scc_softc *this, struct scc_chan *ch)
+	{
+		return (1);
+	}
+}
+
 # attach() - attach hardware.
 # This method is called when the device is being attached. All resources
 # have been allocated. The intend of this method is to setup the hardware
@@ -50,6 +59,13 @@
 	int reset;
 };
 
+# enabled()
+METHOD int enabled {
+	struct scc_softc *this;
+	struct scc_chan *chan;
+} DEFAULT default_enabled;
+
+# iclear()
 METHOD void iclear {
 	struct scc_softc *this;
 	struct scc_chan *chan;

==== //depot/projects/linuxolator/src/sys/dev/sio/sio_pci.c#2 (text+ko) ====

@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/sio/sio_pci.c,v 1.21 2005/05/29 04:42:25 nyan Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/sio/sio_pci.c,v 1.23 2007/03/29 04:26:52 maxim Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/linuxolator/src/sys/dev/uart/uart_core.c#3 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/uart/uart_core.c,v 1.20 2007/02/23 12:18:57 piso Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/uart/uart_core.c,v 1.21 2007/03/28 18:26:12 marcel Exp $");
 
 #ifndef KLD_MODULE
 #include "opt_comconsole.h"
@@ -344,7 +344,7 @@
 		    uart_cpu_eqres(&sc->sc_bas, &sysdev->bas)) {
 			/* XXX check if ops matches class. */
 			sc->sc_sysdev = sysdev;
-			break;

>>> TRUNCATED FOR MAIL (1000 lines) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200703292032.l2TKWuLk024788>