18c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen/*-
28c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen * Copyright (c) 2001-2007, by Cisco Systems, Inc. All rights reserved.
3ecc6b8c25a7e8d9d2b78889e88224354a1cc3160tuexen * Copyright (c) 2008-2012, by Randall Stewart. All rights reserved.
4ecc6b8c25a7e8d9d2b78889e88224354a1cc3160tuexen * Copyright (c) 2008-2012, by Michael Tuexen. All rights reserved.
5ecc6b8c25a7e8d9d2b78889e88224354a1cc3160tuexen * Copyright (c) 2008-2012, by Brad Penoff. All rights reserved.
68c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *
7000a5bac556b28e74e4e98c540f66b1743e9312dtuexen * Redistribution and use in source and binary forms, with or without
88c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen * modification, are permitted provided that the following conditions are met:
9000a5bac556b28e74e4e98c540f66b1743e9312dtuexen *
10000a5bac556b28e74e4e98c540f66b1743e9312dtuexen * a) Redistributions of source code must retain the above copyright notice,
118c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *   this list of conditions and the following disclaimer.
128c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *
13000a5bac556b28e74e4e98c540f66b1743e9312dtuexen * b) Redistributions in binary form must reproduce the above copyright
14000a5bac556b28e74e4e98c540f66b1743e9312dtuexen *    notice, this list of conditions and the following disclaimer in
158c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *   the documentation and/or other materials provided with the distribution.
168c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *
17000a5bac556b28e74e4e98c540f66b1743e9312dtuexen * c) Neither the name of Cisco Systems, Inc. nor the names of its
18000a5bac556b28e74e4e98c540f66b1743e9312dtuexen *    contributors may be used to endorse or promote products derived
198c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *    from this software without specific prior written permission.
208c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *
21000a5bac556b28e74e4e98c540f66b1743e9312dtuexen * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
228c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
238c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
248c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25000a5bac556b28e74e4e98c540f66b1743e9312dtuexen * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
268c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27000a5bac556b28e74e4e98c540f66b1743e9312dtuexen * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
288c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29000a5bac556b28e74e4e98c540f66b1743e9312dtuexen * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30000a5bac556b28e74e4e98c540f66b1743e9312dtuexen * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
318c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen * THE POSSIBILITY OF SUCH DAMAGE.
328c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen */
338c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
348c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#ifdef __FreeBSD__
358c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#include <sys/cdefs.h>
368c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen__FBSDID("$FreeBSD$");
378c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#endif
388c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
39ecc6b8c25a7e8d9d2b78889e88224354a1cc3160tuexen#ifndef _NETINET_SCTP_LOCK_EMPTY_H_
40ecc6b8c25a7e8d9d2b78889e88224354a1cc3160tuexen#define _NETINET_SCTP_LOCK_EMPTY_H_
41ecc6b8c25a7e8d9d2b78889e88224354a1cc3160tuexen
42ecc6b8c25a7e8d9d2b78889e88224354a1cc3160tuexen/*
43ecc6b8c25a7e8d9d2b78889e88224354a1cc3160tuexen * Empty Lock declarations for all other platforms. Pre-process away to
44ecc6b8c25a7e8d9d2b78889e88224354a1cc3160tuexen * nothing.
45ecc6b8c25a7e8d9d2b78889e88224354a1cc3160tuexen */
46ecc6b8c25a7e8d9d2b78889e88224354a1cc3160tuexen
478c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen/* __Userspace__ putting lock macros in same order as sctp_lock_bsd.h ...*/
488c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
498c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_IPI_COUNT_INIT()
508c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
51000a5bac556b28e74e4e98c540f66b1743e9312dtuexen#define SCTP_STATLOG_INIT_LOCK()
528c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_STATLOG_LOCK()
538c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_STATLOG_UNLOCK()
548c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_STATLOG_DESTROY()
558c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
568c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_INFO_LOCK_DESTROY()
578c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
588c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_INFO_LOCK_INIT()
598c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_INFO_RLOCK()
608c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_INFO_WLOCK()
61f3d0e4fa975902501df7fabd3b516785f6da64e3tuexen#define SCTP_INP_INFO_TRYLOCK() 1
628c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_INFO_RUNLOCK()
638c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_INFO_WUNLOCK()
648c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
658c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_WQ_ADDR_INIT()
66000a5bac556b28e74e4e98c540f66b1743e9312dtuexen#define SCTP_WQ_ADDR_DESTROY()
67000a5bac556b28e74e4e98c540f66b1743e9312dtuexen#define SCTP_WQ_ADDR_LOCK()
688c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_WQ_ADDR_UNLOCK()
698c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
708c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
718c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_IPI_ADDR_INIT()
728c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_IPI_ADDR_DESTROY()
73000a5bac556b28e74e4e98c540f66b1743e9312dtuexen#define SCTP_IPI_ADDR_RLOCK()
74000a5bac556b28e74e4e98c540f66b1743e9312dtuexen#define SCTP_IPI_ADDR_WLOCK()
75000a5bac556b28e74e4e98c540f66b1743e9312dtuexen#define SCTP_IPI_ADDR_RUNLOCK()
76000a5bac556b28e74e4e98c540f66b1743e9312dtuexen#define SCTP_IPI_ADDR_WUNLOCK()
778c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
788c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_IPI_ITERATOR_WQ_INIT()
798c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_IPI_ITERATOR_WQ_DESTROY()
808c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_IPI_ITERATOR_WQ_LOCK()
818c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_IPI_ITERATOR_WQ_UNLOCK()
828c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
838c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
848c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_IP_PKTLOG_INIT()
858c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_IP_PKTLOG_LOCK()
868c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_IP_PKTLOG_UNLOCK()
878c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_IP_PKTLOG_DESTROY()
888c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
898c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
908c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
918c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_READ_INIT(_inp)
928c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_READ_DESTROY(_inp)
938c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_READ_LOCK(_inp)
948c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_READ_UNLOCK(_inp)
958c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
968c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_LOCK_INIT(_inp)
978c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_ASOC_CREATE_LOCK_INIT(_inp)
988c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_LOCK_DESTROY(_inp)
998c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_ASOC_CREATE_LOCK_DESTROY(_inp)
1008c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1018c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1028c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_RLOCK(_inp)
1038c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_WLOCK(_inp)
1048c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1058c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_LOCK_CONTENDED(_inp) (0) /* Don't know if this is possible */
1068c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1078c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_READ_CONTENDED(_inp) (0) /* Don't know if this is possible */
1088c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1098c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_ASOC_CREATE_LOCK_CONTENDED(_inp) (0) /* Don't know if this is possible */
1108c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1118c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1128c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_TCB_SEND_LOCK_INIT(_tcb)
1138c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_TCB_SEND_LOCK_DESTROY(_tcb)
1148c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_TCB_SEND_LOCK(_tcb)
1158c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_TCB_SEND_UNLOCK(_tcb)
1168c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1178c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_INCR_REF(_inp)
1188c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_DECR_REF(_inp)
1198c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1208c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_ASOC_CREATE_LOCK(_inp)
1218c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1228c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_RUNLOCK(_inp)
1238c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_WUNLOCK(_inp)
1248c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_ASOC_CREATE_UNLOCK(_inp)
1258c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1268c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1278c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_TCB_LOCK_INIT(_tcb)
1288c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_TCB_LOCK_DESTROY(_tcb)
1298c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_TCB_LOCK(_tcb)
1308c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_TCB_TRYLOCK(_tcb) 1
1318c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_TCB_UNLOCK(_tcb)
1328c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_TCB_UNLOCK_IFOWNED(_tcb)
1338c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_TCB_LOCK_ASSERT(_tcb)
1348c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1358c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1368c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1378c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_ITERATOR_LOCK_INIT()
1388c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_ITERATOR_LOCK()
1398c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_ITERATOR_UNLOCK()
1408c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_ITERATOR_LOCK_DESTROY()
1418c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1428c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1438c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1448c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INCR_EP_COUNT() \
1458c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen                do { \
1468c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen		       sctppcbinfo.ipi_count_ep++; \
1478c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	        } while (0)
1488c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1498c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_DECR_EP_COUNT() \
1508c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen                do { \
1518c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen		       sctppcbinfo.ipi_count_ep--; \
1528c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	        } while (0)
1538c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1548c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INCR_ASOC_COUNT() \
1558c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen                do { \
1568c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	               sctppcbinfo.ipi_count_asoc++; \
1578c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	        } while (0)
1588c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1598c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_DECR_ASOC_COUNT() \
1608c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen                do { \
1618c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	               sctppcbinfo.ipi_count_asoc--; \
1628c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	        } while (0)
1638c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1648c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INCR_LADDR_COUNT() \
1658c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen                do { \
1668c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	               sctppcbinfo.ipi_count_laddr++; \
1678c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	        } while (0)
1688c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1698c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_DECR_LADDR_COUNT() \
1708c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen                do { \
1718c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	               sctppcbinfo.ipi_count_laddr--; \
1728c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	        } while (0)
1738c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1748c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INCR_RADDR_COUNT() \
1758c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen                do { \
1768c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen 	               sctppcbinfo.ipi_count_raddr++; \
1778c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	        } while (0)
1788c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1798c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_DECR_RADDR_COUNT() \
1808c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen                do { \
1818c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen 	               sctppcbinfo.ipi_count_raddr--; \
1828c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	        } while (0)
1838c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1848c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INCR_CHK_COUNT() \
1858c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen                do { \
1868c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen  	               sctppcbinfo.ipi_count_chunk++; \
1878c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	        } while (0)
1888c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1898c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_DECR_CHK_COUNT() \
1908c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen                do { \
1918c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen  	               sctppcbinfo.ipi_count_chunk--; \
1928c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	        } while (0)
1938c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1948c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INCR_READQ_COUNT() \
1958c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen                do { \
1968c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen		       sctppcbinfo.ipi_count_readq++; \
1978c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	        } while (0)
1988c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
1998c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_DECR_READQ_COUNT() \
2008c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen                do { \
2018c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen		       sctppcbinfo.ipi_count_readq--; \
2028c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	        } while (0)
2038c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
2048c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INCR_STRMOQ_COUNT() \
2058c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen                do { \
2068c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen		       sctppcbinfo.ipi_count_strmoq++; \
2078c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	        } while (0)
2088c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
2098c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_DECR_STRMOQ_COUNT() \
2108c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen                do { \
2118c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen		       sctppcbinfo.ipi_count_strmoq--; \
2128c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen	        } while (0)
2138c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
2148c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
2158c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen/* not sure if __Userspace__ needs these (but copied nonetheless...) */
2168c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#if defined(SCTP_SO_LOCK_TESTING)
2178c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_INP_SO(sctpinp)	(sctpinp)->ip_inp.inp.inp_socket
2188c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_SOCKET_LOCK(so, refcnt)
2198c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_SOCKET_UNLOCK(so, refcnt)
2208c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#endif
2218c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
2228c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
2238c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen/* these were in sctp_lock_empty.h but aren't in sctp_lock_bsd.h ... */
2248c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#if 0
2258c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_IPI_ADDR_LOCK()
2268c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SCTP_IPI_ADDR_UNLOCK()
2278c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#endif
2288c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
2298c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
2308c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen/* These were in sctp_lock_empty.h because they were commented out within
2318c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *  within user_include/user_socketvar.h .  If they are NOT commented out
2328c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *  in user_socketvar.h (because that seems the more natural place for them
2338c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *  to live), then change this "if" to 0.  Keep the "if" as 1 if these ARE
2348c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *  indeed commented out in user_socketvar.h .
2358c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *
2368c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen * This modularity is kept so this file can easily be chosen as an alternative
2378c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *  to SCTP_PROCESS_LEVEL_LOCKS.  If one defines SCTP_PROCESS_LEVEL_LOCKS in
2388c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *  user_include/opt_sctp.h, then the file sctp_process_lock.h (which we didn't
2398c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *  implement) is used, and that declares these locks already (so using
2408c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *  SCTP_PROCESS_LEVEL_LOCKS *requires* that these defintions be commented out
2418c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen *  in user_socketvar.h).
2428c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen */
2438c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#if 1
2448c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SOCK_LOCK(_so)
2458c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SOCK_UNLOCK(_so)
2468c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SOCKBUF_LOCK(_so_buf)
2478c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SOCKBUF_UNLOCK(_so_buf)
2488c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#define SOCKBUF_LOCK_ASSERT(_so_buf)
249000a5bac556b28e74e4e98c540f66b1743e9312dtuexen#endif
2508c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen
2518c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen#endif
252