Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Apr 2005 18:53:31 GMT
From:      Peter Wemm <peter@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 75266 for review
Message-ID:  <200504151853.j3FIrVWH091243@repoman.freebsd.org>

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

Change 75266 by peter@peter_overcee on 2005/04/15 18:52:58

	IFC @75265

Affected files ...

.. //depot/projects/hammer/lib/libc/net/getaddrinfo.c#21 integrate
.. //depot/projects/hammer/lib/libc/net/getservbyname.c#2 integrate
.. //depot/projects/hammer/lib/libc/net/getservbyport.c#2 integrate
.. //depot/projects/hammer/lib/libc/net/getservent.c#4 integrate
.. //depot/projects/hammer/lib/libc/net/netdb_private.h#1 branch
.. //depot/projects/hammer/sys/amd64/acpica/madt.c#40 integrate
.. //depot/projects/hammer/sys/amd64/amd64/io_apic.c#39 integrate
.. //depot/projects/hammer/sys/amd64/amd64/mptable.c#41 integrate
.. //depot/projects/hammer/sys/amd64/conf/GENERIC#71 integrate
.. //depot/projects/hammer/sys/amd64/conf/NOTES#63 integrate
.. //depot/projects/hammer/sys/amd64/include/apicvar.h#32 integrate
.. //depot/projects/hammer/sys/amd64/include/bus.h#8 integrate
.. //depot/projects/hammer/sys/amd64/include/legacyvar.h#10 integrate
.. //depot/projects/hammer/sys/amd64/include/tss.h#12 integrate
.. //depot/projects/hammer/sys/amd64/isa/clock.c#39 integrate
.. //depot/projects/hammer/sys/conf/options.amd64#34 integrate

Differences ...

==== //depot/projects/hammer/lib/libc/net/getaddrinfo.c#21 (text+ko) ====

@@ -63,10 +63,9 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/net/getaddrinfo.c,v 1.64 2005/04/15 14:42:29 ume Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/net/getaddrinfo.c,v 1.65 2005/04/15 18:15:12 ume Exp $");
 
 #include "namespace.h"
-#include "reentrant.h"
 #include <sys/types.h>
 #include <sys/param.h>
 #include <sys/socket.h>
@@ -286,14 +285,6 @@
 static int res_querydomainN(const char *, const char *,
 	struct res_target *);
 
-/*
- * XXX: Many dependencies are not thread-safe.  Still, we cannot use
- * getaddrinfo() in conjunction with other functions which call them.
- */
-static mutex_t _getaddrinfo_thread_lock = MUTEX_INITIALIZER;
-#define THREAD_LOCK()	mutex_lock(&_getaddrinfo_thread_lock);
-#define THREAD_UNLOCK()	mutex_unlock(&_getaddrinfo_thread_lock);
-
 /* XXX macros that make external reference is BAD. */
 
 #define GET_AI(ai, afd, addr) \
@@ -1441,13 +1432,9 @@
 			break;
 		}
 
-		THREAD_LOCK();
-		if ((sp = getservbyname(servname, proto)) == NULL) {
-			THREAD_UNLOCK();
+		if ((sp = getservbyname(servname, proto)) == NULL)
 			return EAI_SERVICE;
-		}
 		port = sp->s_port;
-		THREAD_UNLOCK();
 	}
 
 	if (!matchonly) {

==== //depot/projects/hammer/lib/libc/net/getservbyname.c#2 (text+ko) ====

@@ -35,47 +35,55 @@
 static char sccsid[] = "@(#)getservbyname.c	8.1 (Berkeley) 6/4/93";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/net/getservbyname.c,v 1.4 2002/03/21 18:49:23 obrien Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/net/getservbyname.c,v 1.5 2005/04/15 18:09:39 ume Exp $");
 
 #include <netdb.h>
 #include <string.h>
+#include "netdb_private.h"
 
-extern int _serv_stayopen;
-
-struct servent *
-getservbyname(name, proto)
-	const char *name, *proto;
+int
+getservbyname_r(const char *name, const char *proto, struct servent *se,
+    struct servent_data *sed)
 {
-	struct servent *p;
 	char **cp;
+	int error;
 
 #ifdef YP
-	extern char *___getservbyname_yp;
-	extern char *___getservbyproto_yp;
-
-	___getservbyname_yp = (char *)name;
-	___getservbyproto_yp = (char *)proto;
+	sed->getservbyname_yp = (char *)name;
+	sed->getservbyproto_yp = (char *)proto;
 #endif
 
-	setservent(_serv_stayopen);
-	while ( (p = getservent()) ) {
-		if (strcmp(name, p->s_name) == 0)
+	setservent_r(sed->stayopen, sed);
+	while ((error = getservent_r(se, sed)) == 0) {
+		if (strcmp(name, se->s_name) == 0)
 			goto gotname;
-		for (cp = p->s_aliases; *cp; cp++)
+		for (cp = se->s_aliases; *cp; cp++)
 			if (strcmp(name, *cp) == 0)
 				goto gotname;
 		continue;
 gotname:
-		if (proto == 0 || strcmp(p->s_proto, proto) == 0)
+		if (proto == 0 || strcmp(se->s_proto, proto) == 0)
 			break;
 	}
-	if (!_serv_stayopen)
-		endservent();
+	if (!sed->stayopen)
+		endservent_r(sed);
 
 #ifdef YP
-	___getservbyname_yp = NULL;
-	___getservbyproto_yp = NULL;
+	sed->getservbyname_yp = NULL;
+	sed->getservbyproto_yp = NULL;
 #endif
 
-	return (p);
+	return (error);
+}
+
+struct servent *
+getservbyname(const char *name, const char *proto)
+{
+	struct servdata *sd;
+
+	if ((sd = _servdata_init()) == NULL)
+		return (NULL);
+	if (getservbyname_r(name, proto, &sd->serv, &sd->data) != 0)
+		return (NULL);
+	return (&sd->serv);
 }

==== //depot/projects/hammer/lib/libc/net/getservbyport.c#2 (text+ko) ====

@@ -35,42 +35,49 @@
 static char sccsid[] = "@(#)getservbyport.c	8.1 (Berkeley) 6/4/93";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/net/getservbyport.c,v 1.4 2002/03/21 18:49:23 obrien Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/net/getservbyport.c,v 1.5 2005/04/15 18:09:39 ume Exp $");
 
 #include <netdb.h>
 #include <string.h>
+#include "netdb_private.h"
 
-extern int _serv_stayopen;
-
-struct servent *
-getservbyport(port, proto)
-	int port;
-	const char *proto;
+int
+getservbyport_r(int port, const char *proto, struct servent *se,
+    struct servent_data *sed)
 {
-	struct servent *p;
+	int error;
 
 #ifdef YP
-	extern int ___getservbyport_yp;
-	extern char *___getservbyproto_yp;
-
-	___getservbyport_yp = port;
-	___getservbyproto_yp = (char *)proto;
+	sed->getservbyport_yp = port;
+	sed->getservbyproto_yp = (char *)proto;
 #endif
 
-	setservent(_serv_stayopen);
-	while ( (p = getservent()) ) {
-		if (p->s_port != port)
+	setservent_r(sed->stayopen, sed);
+	while ((error = getservent_r(se, sed)) == 0) {
+		if (se->s_port != port)
 			continue;
-		if (proto == 0 || strcmp(p->s_proto, proto) == 0)
+		if (proto == 0 || strcmp(se->s_proto, proto) == 0)
 			break;
 	}
-	if (!_serv_stayopen)
-		endservent();
+	if (!sed->stayopen)
+		endservent_r(sed);
 
 #ifdef YP
-	___getservbyport_yp = 0;
-	___getservbyproto_yp = NULL;
+	sed->getservbyport_yp = 0;
+	sed->getservbyproto_yp = NULL;
 #endif
 
-	return (p);
+	return (error);
+}
+
+struct servent *
+getservbyport(int port, const char *proto)
+{
+	struct servdata *sd;
+
+	if ((sd = _servdata_init()) == NULL)
+		return (NULL);
+	if (getservbyport_r(port, proto, &sd->serv, &sd->data) != 0)
+		return (NULL);
+	return (&sd->serv);
 }

==== //depot/projects/hammer/lib/libc/net/getservent.c#4 (text+ko) ====

@@ -35,7 +35,7 @@
 static char sccsid[] = "@(#)getservent.c	8.1 (Berkeley) 6/4/93";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/net/getservent.c,v 1.13 2005/01/03 11:07:45 sobomax Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/net/getservent.c,v 1.14 2005/04/15 18:09:39 ume Exp $");
 
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -48,41 +48,85 @@
 #include <rpc/rpc.h>
 #include <rpcsvc/yp_prot.h>
 #include <rpcsvc/ypclnt.h>
-static int serv_stepping_yp = 0;
 #endif
-#include "libc_private.h"
+#include "namespace.h"
+#include "reentrant.h"
+#include "un-namespace.h"
+#include "netdb_private.h"
+
+static struct servdata servdata;
+static thread_key_t servdata_key;
+static once_t servdata_init_once = ONCE_INITIALIZER;
+static int servdata_thr_keycreated = 0;
+
+static void
+servent_data_clear(struct servent_data *sed)
+{
+	if (sed->fp) {
+		fclose(sed->fp);
+		sed->fp = NULL;
+	}
+	if (sed->key) {
+		free(sed->key);
+		sed->key = NULL;
+	}
+}
+
+static void
+servdata_free(void *ptr)
+{
+	struct servdata *sd = ptr;
+
+	if (sd == NULL)
+		return;
+	servent_data_clear(&sd->data);
+	free(sd);
+}
+
+static void
+servdata_keycreate(void)
+{
+	servdata_thr_keycreated =
+	    (thr_keycreate(&servdata_key, servdata_free) == 0);
+}
 
-#define	MAXALIASES	35
+struct servdata *
+_servdata_init(void)
+{
+	struct servdata *sd;
 
-static FILE *servf = NULL;
-static char line[BUFSIZ+1];
-static struct servent serv;
-static char *serv_aliases[MAXALIASES];
-int _serv_stayopen;
+	if (thr_main() != 0)
+		return (&servdata);
+	if (thr_once(&servdata_init_once, servdata_keycreate) != 0 ||
+	    !servdata_thr_keycreated)
+		return (NULL);
+	if ((sd = thr_getspecific(servdata_key)) != NULL)
+		return (sd);
+	if ((sd = calloc(1, sizeof(*sd))) == NULL)
+		return (NULL);
+	if (thr_setspecific(servdata_key, sd) == 0)
+		return (sd);
+	free(sd);
+	return (NULL);
+}
 
 #ifdef YP
-char *___getservbyname_yp = NULL;
-char *___getservbyproto_yp = NULL;
-int ___getservbyport_yp = 0;
-static char *yp_domain = NULL;
-
 static int
-_getservbyport_yp(line)
-	char *line;
+_getservbyport_yp(struct servent_data *sed)
 {
 	char *result;
 	int resultlen;
 	char buf[YPMAXRECORD + 2];
 	int rv;
 
-	snprintf(buf, sizeof(buf), "%d/%s", ntohs(___getservbyport_yp),
-						___getservbyproto_yp);
+	snprintf(buf, sizeof(buf), "%d/%s",
+	    ntohs(sed->getservbyport_yp), sed->getservbyproto_yp);
 
-	___getservbyport_yp = 0;
-	___getservbyproto_yp = NULL;
+	sed->getservbyport_yp = 0;
+	sed->getservbyproto_yp = NULL;
 
-	if(!yp_domain) {
-		if(yp_get_default_domain(&yp_domain))
+	if (!sed->yp_domain) {
+		if (yp_get_default_domain(&sed->yp_domain))
 			return (0);
 	}
 
@@ -95,10 +139,10 @@
 	 * possibilities here: if there is no services.byport map, we try
 	 * services.byname instead.
 	 */
-	if ((rv = yp_match(yp_domain, "services.byport", buf, strlen(buf),
+	if ((rv = yp_match(sed->yp_domain, "services.byport", buf, strlen(buf),
 						&result, &resultlen))) {
 		if (rv == YPERR_MAP) {
-			if (yp_match(yp_domain, "services.byname", buf,
+			if (yp_match(sed->yp_domain, "services.byname", buf,
 					strlen(buf), &result, &resultlen))
 			return(0);
 		} else
@@ -106,80 +150,77 @@
 	}
 		
 	/* getservent() expects lines terminated with \n -- make it happy */
-	snprintf(line, BUFSIZ, "%.*s\n", resultlen, result);
+	snprintf(sed->line, BUFSIZ, "%.*s\n", resultlen, result);
 
 	free(result);
 	return(1);
 }
 
 static int
-_getservbyname_yp(line)
-	char *line;
+_getservbyname_yp(struct servent_data *sed)
 {
 	char *result;
 	int resultlen;
 	char buf[YPMAXRECORD + 2];
 
-	if(!yp_domain) {
-		if(yp_get_default_domain(&yp_domain))
+	if(!sed->yp_domain) {
+		if(yp_get_default_domain(&sed->yp_domain))
 			return (0);
 	}
 
-	snprintf(buf, sizeof(buf), "%s/%s", ___getservbyname_yp,
-						___getservbyproto_yp);
+	snprintf(buf, sizeof(buf), "%s/%s", sed->getservbyname_yp,
+	    sed->getservbyproto_yp);
 
-	___getservbyname_yp = 0;
-	___getservbyproto_yp = NULL;
+	sed->getservbyname_yp = 0;
+	sed->getservbyproto_yp = NULL;
 
-	if (yp_match(yp_domain, "services.byname", buf, strlen(buf),
-						&result, &resultlen)) {
+	if (yp_match(sed->yp_domain, "services.byname", buf, strlen(buf),
+	    &result, &resultlen)) {
 		return(0);
 	}
 		
 	/* getservent() expects lines terminated with \n -- make it happy */
-	snprintf(line, BUFSIZ, "%.*s\n", resultlen, result);
+	snprintf(sed->line, BUFSIZ, "%.*s\n", resultlen, result);
 
 	free(result);
 	return(1);
 }
 
 static int
-_getservent_yp(line)
-	char *line;
+_getservent_yp(struct servent_data *sed)
 {
-	static char *key = NULL;
-	static int keylen;
 	char *lastkey, *result;
 	int resultlen;
 	int rv;
 
-	if(!yp_domain) {
-		if(yp_get_default_domain(&yp_domain))
+	if (!sed->yp_domain) {
+		if (yp_get_default_domain(&sed->yp_domain))
 			return (0);
 	}
 
-	if (!serv_stepping_yp) {
-		if (key)
-			free(key);
-		if ((rv = yp_first(yp_domain, "services.byname", &key, &keylen,
-			     &result, &resultlen))) {
-			serv_stepping_yp = 0;
+	if (!sed->stepping_yp) {
+		if (sed->key)
+			free(sed->key);
+		rv = yp_first(sed->yp_domain, "services.byname", &sed->key,
+		    &sed->keylen, &result, &resultlen);
+		if (rv) {
+			sed->stepping_yp = 0;
 			return(0);
 		}
-		serv_stepping_yp = 1;
+		sed->stepping_yp = 1;
 	} else {
-		lastkey = key;
-		rv = yp_next(yp_domain, "services.byname", key, keylen, &key,
-			     &keylen, &result, &resultlen);
+		lastkey = sed->key;
+		rv = yp_next(sed->yp_domain, "services.byname", sed->key,
+		    sed->keylen, &sed->key, &sed->keylen, &result, &resultlen);
 		free(lastkey);
 		if (rv) {
-			serv_stepping_yp = 0;
+			sed->stepping_yp = 0;
 			return (0);
 		}
 	}
 
 	/* getservent() expects lines terminated with \n -- make it happy */
-	snprintf(line, BUFSIZ, "%.*s\n", resultlen, result);
+	snprintf(sed->line, BUFSIZ, "%.*s\n", resultlen, result);
 
 	free(result);
 
@@ -188,55 +229,54 @@
 #endif
 
 void
-setservent(f)
-	int f;
+setservent_r(int f, struct servent_data *sed)
 {
-	if (servf == NULL)
-		servf = fopen(_PATH_SERVICES, "r" );
+	if (sed->fp == NULL)
+		sed->fp = fopen(_PATH_SERVICES, "r");
 	else
-		rewind(servf);
-	_serv_stayopen |= f;
+		rewind(sed->fp);
+	sed->stayopen |= f;
 }
 
 void
-endservent()
+endservent_r(struct servent_data *sed)
 {
-	if (servf) {
-		fclose(servf);
-		servf = NULL;
-	}
-	_serv_stayopen = 0;
+	servent_data_clear(sed);
+	sed->stayopen = 0;
+	sed->stepping_yp = 0;
+	sed->yp_domain = NULL;
 }
 
-struct servent *
-getservent()
+int
+getservent_r(struct servent *se, struct servent_data *sed)
 {
 	char *p;
-	char *cp, **q;
+	char *cp, **q, *endp;
+	long l;
 
 #ifdef YP
-	if (serv_stepping_yp && _getservent_yp(line)) {
-		p = (char *)&line;
+	if (sed->stepping_yp && _getservent_yp(sed)) {
+		p = sed->line;
 		goto unpack;
 	}
 tryagain:
 #endif
-	if (servf == NULL && (servf = fopen(_PATH_SERVICES, "r" )) == NULL)
-		return (NULL);
+	if (sed->fp == NULL && (sed->fp = fopen(_PATH_SERVICES, "r")) == NULL)
+		return (-1);
 again:
-	if ((p = fgets(line, BUFSIZ, servf)) == NULL)
-		return (NULL);
+	if ((p = fgets(sed->line, BUFSIZ, sed->fp)) == NULL)
+		return (-1);
 #ifdef YP
 	if (*p == '+' && _yp_check(NULL)) {
-		if (___getservbyname_yp != NULL) {
-			if (!_getservbyname_yp(line))
+		if (sed->getservbyname_yp != NULL) {
+			if (!_getservbyname_yp(sed))
 				goto tryagain;
 		} 
-		else if (___getservbyport_yp != 0) {
-			if (!_getservbyport_yp(line))
+		else if (sed->getservbyport_yp != 0) {
+			if (!_getservbyport_yp(sed))
 				goto tryagain;
 		}
-		else if (!_getservent_yp(line))
+		else if (!_getservent_yp(sed))
 			goto tryagain;
 	}
 unpack:
@@ -246,7 +286,7 @@
 	cp = strpbrk(p, "#\n");
 	if (cp != NULL)
 		*cp = '\0';
-	serv.s_name = p;
+	se->s_name = p;
 	p = strpbrk(p, " \t");
 	if (p == NULL)
 		goto again;
@@ -257,9 +297,12 @@
 	if (cp == NULL)
 		goto again;
 	*cp++ = '\0';
-	serv.s_port = htons((u_short)atoi(p));
-	serv.s_proto = cp;
-	q = serv.s_aliases = serv_aliases;
+	l = strtol(p, &endp, 10);
+	if (endp == p || *endp != '\0' || l < 0 || l > USHRT_MAX)
+		goto again;
+	se->s_port = htons((in_port_t)l);
+	se->s_proto = cp;
+	q = se->s_aliases = sed->aliases;
 	cp = strpbrk(cp, " \t");
 	if (cp != NULL)
 		*cp++ = '\0';
@@ -268,12 +311,44 @@
 			cp++;
 			continue;
 		}
-		if (q < &serv_aliases[MAXALIASES - 1])
+		if (q < &sed->aliases[SERVENT_MAXALIASES - 1])
 			*q++ = cp;
 		cp = strpbrk(cp, " \t");
 		if (cp != NULL)
 			*cp++ = '\0';
 	}
 	*q = NULL;
-	return (&serv);
+	return (0);
+}
+
+void
+setservent(int f)
+{
+	struct servdata *sd;
+
+	if ((sd = _servdata_init()) == NULL)
+		return;
+	setservent_r(f, &sd->data);
+}
+
+void
+endservent(void)
+{
+	struct servdata *sd;
+
+	if ((sd = _servdata_init()) == NULL)
+		return;
+	endservent_r(&sd->data);
+}
+
+struct servent *
+getservent(void)
+{
+	struct servdata *sd;
+
+	if ((sd = _servdata_init()) == NULL)
+		return (NULL);
+	if (getservent_r(&sd->serv, &sd->data) != 0)
+		return (NULL);
+	return (&sd->serv);
 }

==== //depot/projects/hammer/sys/amd64/acpica/madt.c#40 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.15 2005/02/22 21:52:51 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.16 2005/04/15 18:44:53 peter Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/hammer/sys/amd64/amd64/io_apic.c#39 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.14 2005/02/28 23:37:35 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.15 2005/04/15 18:44:53 peter Exp $");
 
 #include "opt_atpic.h"
 #include "opt_isa.h"

==== //depot/projects/hammer/sys/amd64/amd64/mptable.c#41 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable.c,v 1.235 2005/02/28 23:37:35 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable.c,v 1.236 2005/04/15 18:44:53 peter Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/hammer/sys/amd64/conf/GENERIC#71 (text+ko) ====

@@ -16,7 +16,7 @@
 # If you are in doubt as to the purpose or necessity of a line, check first
 # in NOTES.
 #
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.437 2005/04/13 06:00:07 anholt Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.438 2005/04/15 18:45:07 peter Exp $
 
 machine		amd64
 cpu		HAMMER
@@ -77,7 +77,6 @@
 
 # Workarounds for some known-to-be-broken chipsets (nVidia nForce3-Pro150)
 device		atpic			# 8259A compatability
-options 	NO_MIXED_MODE		# Don't penalize working chipsets
 
 # Linux 32-bit ABI support
 options 	LINPROCFS		# Cannot be a module yet.

==== //depot/projects/hammer/sys/amd64/conf/NOTES#63 (text+ko) ====

@@ -5,7 +5,7 @@
 # machine independent notes, look in /sys/conf/NOTES.
 #
 # (XXX from i386:NOTES,v 1.1193)
-# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.28 2005/04/08 20:24:45 obrien Exp $
+# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.29 2005/04/15 18:45:07 peter Exp $
 #
 
 #

==== //depot/projects/hammer/sys/amd64/include/apicvar.h#32 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.11 2005/02/28 23:37:35 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.12 2005/04/15 18:44:53 peter Exp $
  */
 
 #ifndef _MACHINE_APICVAR_H_

==== //depot/projects/hammer/sys/amd64/include/bus.h#8 (text+ko) ====

@@ -28,7 +28,77 @@
  * (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/include/bus.h,v 1.12 2003/05/12 02:44:37 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/bus.h,v 1.13 2005/04/15 18:38:59 peter Exp $
+ */
+
+/*	$NetBSD: bus.h,v 1.12 1997/10/01 08:25:15 fvdl Exp $	*/
+
+/*-
+ * Copyright (c) 1996, 1997 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
+ * NASA Ames Research Center.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the NetBSD
+ *	Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*-
+ * Copyright (c) 1996 Charles M. Hannum.  All rights reserved.
+ * Copyright (c) 1996 Christopher G. Demetriou.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *      This product includes software developed by Christopher G. Demetriou
+ *	for the NetBSD Project.
+ * 4. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 /*	$NetBSD: bus.h,v 1.12 1997/10/01 08:25:15 fvdl Exp $	*/

==== //depot/projects/hammer/sys/amd64/include/legacyvar.h#10 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/include/legacyvar.h,v 1.5 2004/05/16 20:30:46 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/legacyvar.h,v 1.6 2005/04/15 18:41:32 peter Exp $
  */
 
 #ifndef _MACHINE_LEGACYVAR_H_

==== //depot/projects/hammer/sys/amd64/include/tss.h#12 (text+ko) ====

@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)tss.h	5.4 (Berkeley) 1/18/91
- * $FreeBSD: src/sys/amd64/include/tss.h,v 1.17 2005/04/06 01:05:36 cperciva Exp $
+ * $FreeBSD: src/sys/amd64/include/tss.h,v 1.18 2005/04/15 18:39:31 peter Exp $
  */
 
 #ifndef _MACHINE_TSS_H_

==== //depot/projects/hammer/sys/amd64/isa/clock.c#39 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.217 2005/03/11 21:57:38 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.218 2005/04/15 18:46:53 peter Exp $");
 
 /*
  * Routines to handle clock hardware.

==== //depot/projects/hammer/sys/conf/options.amd64#34 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.amd64,v 1.18 2005/02/16 05:41:18 wpaul Exp $
+# $FreeBSD: src/sys/conf/options.amd64,v 1.19 2005/04/15 18:48:27 peter Exp $
 # Options specific to AMD64 platform kernels
 
 AUTO_EOI_1		opt_auto_eoi.h
@@ -54,5 +54,4 @@
 PSM_HOOKRESUME		opt_psm.h
 PSM_RESETAFTERSUSPEND	opt_psm.h
 PSM_DEBUG		opt_psm.h
-NO_MIXED_MODE
 DEV_ATPIC		opt_atpic.h



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