[Midnightbsd-cvs] src [9908] trunk/sys/sys: sync with freebsd 10-stable
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Thu May 24 22:48:22 EDT 2018
Revision: 9908
http://svnweb.midnightbsd.org/src/?rev=9908
Author: laffer1
Date: 2018-05-24 22:48:21 -0400 (Thu, 24 May 2018)
Log Message:
-----------
sync with freebsd 10-stable
Modified Paths:
--------------
trunk/sys/sys/sx.h
trunk/sys/sys/timex.h
trunk/sys/sys/tree.h
trunk/sys/sys/tty.h
trunk/sys/sys/ttycom.h
trunk/sys/sys/ttydefaults.h
Modified: trunk/sys/sys/sx.h
===================================================================
--- trunk/sys/sys/sx.h 2018-05-25 02:45:25 UTC (rev 9907)
+++ trunk/sys/sys/sx.h 2018-05-25 02:48:21 UTC (rev 9908)
@@ -1,3 +1,4 @@
+/* $MidnightBSD$ */
/*-
* Copyright (c) 2007 Attilio Rao <attilio at freebsd.org>
* Copyright (c) 2001 Jason Evans <jasone at freebsd.org>
@@ -26,7 +27,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
- * $MidnightBSD$
+ * $FreeBSD: stable/10/sys/sys/sx.h 323870 2017-09-21 19:24:11Z marius $
*/
#ifndef _SYS_SX_H_
@@ -94,14 +95,14 @@
#define sx_init(sx, desc) sx_init_flags((sx), (desc), 0)
void sx_init_flags(struct sx *sx, const char *description, int opts);
void sx_destroy(struct sx *sx);
+int sx_try_slock_(struct sx *sx, const char *file, int line);
+int sx_try_xlock_(struct sx *sx, const char *file, int line);
+int sx_try_upgrade_(struct sx *sx, const char *file, int line);
+void sx_downgrade_(struct sx *sx, const char *file, int line);
int _sx_slock(struct sx *sx, int opts, const char *file, int line);
int _sx_xlock(struct sx *sx, int opts, const char *file, int line);
-int _sx_try_slock(struct sx *sx, const char *file, int line);
-int _sx_try_xlock(struct sx *sx, const char *file, int line);
void _sx_sunlock(struct sx *sx, const char *file, int line);
void _sx_xunlock(struct sx *sx, const char *file, int line);
-int _sx_try_upgrade(struct sx *sx, const char *file, int line);
-void _sx_downgrade(struct sx *sx, const char *file, int line);
int _sx_xlock_hard(struct sx *sx, uintptr_t tid, int opts,
const char *file, int line);
int _sx_slock_hard(struct sx *sx, int opts, const char *file, int line);
@@ -109,21 +110,12 @@
line);
void _sx_sunlock_hard(struct sx *sx, const char *file, int line);
#if defined(INVARIANTS) || defined(INVARIANT_SUPPORT)
-void _sx_assert(struct sx *sx, int what, const char *file, int line);
+void _sx_assert(const struct sx *sx, int what, const char *file, int line);
#endif
#ifdef DDB
int sx_chain(struct thread *td, struct thread **ownerp);
#endif
-#define sx_downgrade_(sx, file, line) \
- _sx_downgrade((sx), (file), (line))
-#define sx_try_slock_(sx, file, line) \
- _sx_try_slock((sx), (file), (line))
-#define sx_try_xlock_(sx, file, line) \
- _sx_try_xlock((sx), (file), (line))
-#define sx_try_upgrade_(sx, file, line) \
- _sx_try_upgrade((sx), (file), (line))
-
struct sx_args {
struct sx *sa_sx;
const char *sa_desc;
@@ -157,7 +149,8 @@
uintptr_t tid = (uintptr_t)td;
int error = 0;
- if (!atomic_cmpset_acq_ptr(&sx->sx_lock, SX_LOCK_UNLOCKED, tid))
+ if (sx->sx_lock != SX_LOCK_UNLOCKED ||
+ !atomic_cmpset_acq_ptr(&sx->sx_lock, SX_LOCK_UNLOCKED, tid))
error = _sx_xlock_hard(sx, tid, opts, file, line);
else
LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(LS_SX_XLOCK_ACQUIRE,
@@ -172,7 +165,8 @@
{
uintptr_t tid = (uintptr_t)td;
- if (!atomic_cmpset_rel_ptr(&sx->sx_lock, tid, SX_LOCK_UNLOCKED))
+ if (sx->sx_lock != tid ||
+ !atomic_cmpset_rel_ptr(&sx->sx_lock, tid, SX_LOCK_UNLOCKED))
_sx_xunlock_hard(sx, tid, file, line);
}
@@ -284,7 +278,8 @@
#define sx_unlock(sx) sx_unlock_((sx), LOCK_FILE, LOCK_LINE)
#define sx_sleep(chan, sx, pri, wmesg, timo) \
- _sleep((chan), &(sx)->lock_object, (pri), (wmesg), (timo))
+ _sleep((chan), &(sx)->lock_object, (pri), (wmesg), \
+ tick_sbt * (timo), 0, C_HARDCLOCK)
/*
* Options passed to sx_init_flags().
@@ -295,6 +290,7 @@
#define SX_QUIET 0x08
#define SX_NOADAPTIVE 0x10
#define SX_RECURSE 0x20
+#define SX_NEW 0x40
/*
* Options passed to sx_*lock_hard().
@@ -309,7 +305,7 @@
#define SA_RECURSED LA_RECURSED
#define SA_NOTRECURSED LA_NOTRECURSED
-/* Backwards compatability. */
+/* Backwards compatibility. */
#define SX_LOCKED LA_LOCKED
#define SX_SLOCKED LA_SLOCKED
#define SX_XLOCKED LA_XLOCKED
Modified: trunk/sys/sys/timex.h
===================================================================
--- trunk/sys/sys/timex.h 2018-05-25 02:45:25 UTC (rev 9907)
+++ trunk/sys/sys/timex.h 2018-05-25 02:48:21 UTC (rev 9908)
@@ -1,3 +1,4 @@
+/* $MidnightBSD$ */
/*-
***********************************************************************
* *
@@ -45,7 +46,7 @@
* 17 Sep 93 David L. Mills
* Created file
*
- * $MidnightBSD$
+ * $FreeBSD: stable/10/sys/sys/timex.h 250889 2013-05-21 21:50:11Z ed $
*/
/*
* This header file defines the Network Time Protocol (NTP) interfaces
@@ -97,6 +98,9 @@
#define _SYS_TIMEX_H_ 1
#define NTP_API 4 /* NTP API version */
+#ifdef __FreeBSD__
+#include <sys/_timespec.h>
+#endif /* __FreeBSD__ */
#ifndef MSDOS /* Microsoft specific */
#include <sys/syscall.h>
#endif /* MSDOS */
Modified: trunk/sys/sys/tree.h
===================================================================
--- trunk/sys/sys/tree.h 2018-05-25 02:45:25 UTC (rev 9907)
+++ trunk/sys/sys/tree.h 2018-05-25 02:48:21 UTC (rev 9908)
@@ -1,6 +1,7 @@
+/* $MidnightBSD$ */
/* $NetBSD: tree.h,v 1.8 2004/03/28 19:38:30 provos Exp $ */
/* $OpenBSD: tree.h,v 1.7 2002/10/17 21:51:54 art Exp $ */
-/* $MidnightBSD$ */
+/* $FreeBSD: stable/10/sys/sys/tree.h 278344 2015-02-07 08:14:20Z kib $ */
/*-
* Copyright 2002 Niels Provos <provos at citi.umich.edu>
@@ -383,16 +384,33 @@
#define RB_PROTOTYPE_STATIC(name, type, field, cmp) \
RB_PROTOTYPE_INTERNAL(name, type, field, cmp, __unused static)
#define RB_PROTOTYPE_INTERNAL(name, type, field, cmp, attr) \
-attr void name##_RB_INSERT_COLOR(struct name *, struct type *); \
-attr void name##_RB_REMOVE_COLOR(struct name *, struct type *, struct type *);\
-attr struct type *name##_RB_REMOVE(struct name *, struct type *); \
-attr struct type *name##_RB_INSERT(struct name *, struct type *); \
-attr struct type *name##_RB_FIND(struct name *, struct type *); \
-attr struct type *name##_RB_NFIND(struct name *, struct type *); \
-attr struct type *name##_RB_NEXT(struct type *); \
-attr struct type *name##_RB_PREV(struct type *); \
-attr struct type *name##_RB_MINMAX(struct name *, int); \
- \
+ RB_PROTOTYPE_INSERT_COLOR(name, type, attr); \
+ RB_PROTOTYPE_REMOVE_COLOR(name, type, attr); \
+ RB_PROTOTYPE_INSERT(name, type, attr); \
+ RB_PROTOTYPE_REMOVE(name, type, attr); \
+ RB_PROTOTYPE_FIND(name, type, attr); \
+ RB_PROTOTYPE_NFIND(name, type, attr); \
+ RB_PROTOTYPE_NEXT(name, type, attr); \
+ RB_PROTOTYPE_PREV(name, type, attr); \
+ RB_PROTOTYPE_MINMAX(name, type, attr);
+#define RB_PROTOTYPE_INSERT_COLOR(name, type, attr) \
+ attr void name##_RB_INSERT_COLOR(struct name *, struct type *)
+#define RB_PROTOTYPE_REMOVE_COLOR(name, type, attr) \
+ attr void name##_RB_REMOVE_COLOR(struct name *, struct type *, struct type *)
+#define RB_PROTOTYPE_REMOVE(name, type, attr) \
+ attr struct type *name##_RB_REMOVE(struct name *, struct type *)
+#define RB_PROTOTYPE_INSERT(name, type, attr) \
+ attr struct type *name##_RB_INSERT(struct name *, struct type *)
+#define RB_PROTOTYPE_FIND(name, type, attr) \
+ attr struct type *name##_RB_FIND(struct name *, struct type *)
+#define RB_PROTOTYPE_NFIND(name, type, attr) \
+ attr struct type *name##_RB_NFIND(struct name *, struct type *)
+#define RB_PROTOTYPE_NEXT(name, type, attr) \
+ attr struct type *name##_RB_NEXT(struct type *)
+#define RB_PROTOTYPE_PREV(name, type, attr) \
+ attr struct type *name##_RB_PREV(struct type *)
+#define RB_PROTOTYPE_MINMAX(name, type, attr) \
+ attr struct type *name##_RB_MINMAX(struct name *, int)
/* Main rb operation.
* Moves node close to the key of elm to top
@@ -402,6 +420,17 @@
#define RB_GENERATE_STATIC(name, type, field, cmp) \
RB_GENERATE_INTERNAL(name, type, field, cmp, __unused static)
#define RB_GENERATE_INTERNAL(name, type, field, cmp, attr) \
+ RB_GENERATE_INSERT_COLOR(name, type, field, attr) \
+ RB_GENERATE_REMOVE_COLOR(name, type, field, attr) \
+ RB_GENERATE_INSERT(name, type, field, cmp, attr) \
+ RB_GENERATE_REMOVE(name, type, field, attr) \
+ RB_GENERATE_FIND(name, type, field, cmp, attr) \
+ RB_GENERATE_NFIND(name, type, field, cmp, attr) \
+ RB_GENERATE_NEXT(name, type, field, attr) \
+ RB_GENERATE_PREV(name, type, field, attr) \
+ RB_GENERATE_MINMAX(name, type, field, attr)
+
+#define RB_GENERATE_INSERT_COLOR(name, type, field, attr) \
attr void \
name##_RB_INSERT_COLOR(struct name *head, struct type *elm) \
{ \
@@ -444,8 +473,9 @@
} \
} \
RB_COLOR(head->rbh_root, field) = RB_BLACK; \
-} \
- \
+}
+
+#define RB_GENERATE_REMOVE_COLOR(name, type, field, attr) \
attr void \
name##_RB_REMOVE_COLOR(struct name *head, struct type *parent, struct type *elm) \
{ \
@@ -522,8 +552,9 @@
} \
if (elm) \
RB_COLOR(elm, field) = RB_BLACK; \
-} \
- \
+}
+
+#define RB_GENERATE_REMOVE(name, type, field, attr) \
attr struct type * \
name##_RB_REMOVE(struct name *head, struct type *elm) \
{ \
@@ -590,7 +621,8 @@
name##_RB_REMOVE_COLOR(head, parent, child); \
return (old); \
} \
- \
+
+#define RB_GENERATE_INSERT(name, type, field, cmp, attr) \
/* Inserts a node into the RB tree */ \
attr struct type * \
name##_RB_INSERT(struct name *head, struct type *elm) \
@@ -620,8 +652,9 @@
RB_ROOT(head) = elm; \
name##_RB_INSERT_COLOR(head, elm); \
return (NULL); \
-} \
- \
+}
+
+#define RB_GENERATE_FIND(name, type, field, cmp, attr) \
/* Finds the node with the same key as elm */ \
attr struct type * \
name##_RB_FIND(struct name *head, struct type *elm) \
@@ -638,8 +671,9 @@
return (tmp); \
} \
return (NULL); \
-} \
- \
+}
+
+#define RB_GENERATE_NFIND(name, type, field, cmp, attr) \
/* Finds the first node greater than or equal to the search key */ \
attr struct type * \
name##_RB_NFIND(struct name *head, struct type *elm) \
@@ -659,8 +693,9 @@
return (tmp); \
} \
return (res); \
-} \
- \
+}
+
+#define RB_GENERATE_NEXT(name, type, field, attr) \
/* ARGSUSED */ \
attr struct type * \
name##_RB_NEXT(struct type *elm) \
@@ -681,8 +716,9 @@
} \
} \
return (elm); \
-} \
- \
+}
+
+#define RB_GENERATE_PREV(name, type, field, attr) \
/* ARGSUSED */ \
attr struct type * \
name##_RB_PREV(struct type *elm) \
@@ -703,8 +739,9 @@
} \
} \
return (elm); \
-} \
- \
+}
+
+#define RB_GENERATE_MINMAX(name, type, field, attr) \
attr struct type * \
name##_RB_MINMAX(struct name *head, int val) \
{ \
Modified: trunk/sys/sys/tty.h
===================================================================
--- trunk/sys/sys/tty.h 2018-05-25 02:45:25 UTC (rev 9907)
+++ trunk/sys/sys/tty.h 2018-05-25 02:48:21 UTC (rev 9908)
@@ -1,3 +1,4 @@
+/* $MidnightBSD$ */
/*-
* Copyright (c) 2008 Ed Schouten <ed at FreeBSD.org>
* All rights reserved.
@@ -26,7 +27,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $MidnightBSD$
+ * $FreeBSD: stable/10/sys/sys/tty.h 271773 2014-09-18 14:44:47Z grehan $
*/
#ifndef _SYS_TTY_H_
@@ -166,6 +167,7 @@
#define tty_lock(tp) mtx_lock((tp)->t_mtx)
#define tty_unlock(tp) mtx_unlock((tp)->t_mtx)
+#define tty_lock_owned(tp) mtx_owned((tp)->t_mtx)
#define tty_lock_assert(tp,ma) mtx_assert((tp)->t_mtx, (ma))
#define tty_getlock(tp) ((tp)->t_mtx)
@@ -172,6 +174,9 @@
/* Device node creation. */
void tty_makedev(struct tty *tp, struct ucred *cred, const char *fmt, ...)
__printflike(3, 4);
+int tty_makedevf(struct tty *tp, struct ucred *cred, int flags,
+ const char *fmt, ...) __printflike(4, 5);
+#define TTYMK_CLONING 0x1
#define tty_makealias(tp,fmt,...) \
make_dev_alias((tp)->t_dev, fmt, ## __VA_ARGS__)
@@ -192,6 +197,7 @@
struct thread *td);
int tty_ioctl_compat(struct tty *tp, u_long cmd, caddr_t data,
int fflag, struct thread *td);
+void tty_set_winsize(struct tty *tp, const struct winsize *wsz);
void tty_init_console(struct tty *tp, speed_t speed);
void tty_flush(struct tty *tp, int flags);
void tty_hiwat_in_block(struct tty *tp);
Modified: trunk/sys/sys/ttycom.h
===================================================================
--- trunk/sys/sys/ttycom.h 2018-05-25 02:45:25 UTC (rev 9907)
+++ trunk/sys/sys/ttycom.h 2018-05-25 02:48:21 UTC (rev 9908)
@@ -1,3 +1,4 @@
+/* $MidnightBSD$ */
/*-
* Copyright (c) 1982, 1986, 1990, 1993, 1994
* The Regents of the University of California. All rights reserved.
@@ -32,7 +33,7 @@
* SUCH DAMAGE.
*
* @(#)ttycom.h 8.1 (Berkeley) 3/28/94
- * $MidnightBSD$
+ * $FreeBSD: stable/10/sys/sys/ttycom.h 231095 2012-02-06 18:15:46Z ed $
*/
#ifndef _SYS_TTYCOM_H_
@@ -105,7 +106,7 @@
#define TIOCM_SR 0020 /* secondary receive */
#define TIOCM_CTS 0040 /* clear to send */
#define TIOCM_DCD 0100 /* data carrier detect */
-#define TIOCM_RI 0200 /* ring indicate */
+#define TIOCM_RI 0200 /* ring indicate */
#define TIOCM_DSR 0400 /* data set ready */
#define TIOCM_CD TIOCM_DCD
#define TIOCM_CAR TIOCM_DCD
Modified: trunk/sys/sys/ttydefaults.h
===================================================================
--- trunk/sys/sys/ttydefaults.h 2018-05-25 02:45:25 UTC (rev 9907)
+++ trunk/sys/sys/ttydefaults.h 2018-05-25 02:48:21 UTC (rev 9908)
@@ -1,3 +1,4 @@
+/* $MidnightBSD$ */
/*-
* Copyright (c) 1982, 1986, 1993
* The Regents of the University of California. All rights reserved.
@@ -32,7 +33,7 @@
* SUCH DAMAGE.
*
* @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94
- * $MidnightBSD$
+ * $FreeBSD: stable/10/sys/sys/ttydefaults.h 249311 2013-04-09 16:16:34Z ed $
*/
/*
@@ -79,9 +80,9 @@
#define CSTART CTRL('Q')
#define CSTOP CTRL('S')
#define CLNEXT CTRL('V')
-#define CDISCARD CTRL('O')
-#define CWERASE CTRL('W')
-#define CREPRINT CTRL('R')
+#define CDISCARD CTRL('O')
+#define CWERASE CTRL('W')
+#define CREPRINT CTRL('R')
#define CEOT CEOF
/* compat */
#define CBRK CEOL
@@ -95,10 +96,17 @@
* #define TTYDEFCHARS to include an array of default control characters.
*/
#ifdef TTYDEFCHARS
-static cc_t ttydefchars[NCCS] = {
- CEOF, CEOL, CEOL, CERASE, CWERASE, CKILL, CREPRINT,
- CERASE2, CINTR, CQUIT, CSUSP, CDSUSP, CSTART, CSTOP, CLNEXT,
- CDISCARD, CMIN, CTIME, CSTATUS, _POSIX_VDISABLE
+
+#include <sys/cdefs.h>
+#include <sys/_termios.h>
+
+static const cc_t ttydefchars[] = {
+ CEOF, CEOL, CEOL, CERASE, CWERASE, CKILL, CREPRINT, CERASE2, CINTR,
+ CQUIT, CSUSP, CDSUSP, CSTART, CSTOP, CLNEXT, CDISCARD, CMIN, CTIME,
+ CSTATUS, _POSIX_VDISABLE
};
+_Static_assert(sizeof(ttydefchars) / sizeof(cc_t) == NCCS,
+ "Size of ttydefchars does not match NCCS");
+
#undef TTYDEFCHARS
-#endif
+#endif /* TTYDEFCHARS */
More information about the Midnightbsd-cvs
mailing list