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