Print this page
NEX-2787 Multiple comstar / fibre channel / qlt threads stuck waiting on locks with a spinning interrupt thread
Reviewed by: Rob Gittins <rob.gittins@nexenta.com>
Approved by: Jean McCormack <jean.mccormack@nexenta.com>
| Split |
Close |
| Expand all |
| Collapse all |
--- old/usr/src/uts/common/sys/list.h
+++ new/usr/src/uts/common/sys/list.h
1 1 /*
2 2 * CDDL HEADER START
3 3 *
4 4 * The contents of this file are subject to the terms of the
5 5 * Common Development and Distribution License (the "License").
6 6 * You may not use this file except in compliance with the License.
7 7 *
8 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 * or http://www.opensolaris.org/os/licensing.
10 10 * See the License for the specific language governing permissions
11 11 * and limitations under the License.
12 12 *
|
↓ open down ↓ |
12 lines elided |
↑ open up ↑ |
13 13 * When distributing Covered Code, include this CDDL HEADER in each
14 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 * If applicable, add the following below this CDDL HEADER, with the
16 16 * fields enclosed by brackets "[]" replaced with your own identifying
17 17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 18 *
19 19 * CDDL HEADER END
20 20 */
21 21 /*
22 22 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
23 + * Copyright 2015 Nexenta Systems, Inc. All rights reserved.
23 24 * Use is subject to license terms.
24 25 */
25 26
26 27 #ifndef _SYS_LIST_H
27 28 #define _SYS_LIST_H
28 29
29 30 #include <sys/list_impl.h>
30 31
31 32 #ifdef __cplusplus
32 33 extern "C" {
33 34 #endif
34 35
35 36 typedef struct list_node list_node_t;
36 37 typedef struct list list_t;
37 38
38 39 void list_create(list_t *, size_t, size_t);
39 40 void list_destroy(list_t *);
|
↓ open down ↓ |
7 lines elided |
↑ open up ↑ |
40 41
41 42 void list_insert_after(list_t *, void *, void *);
42 43 void list_insert_before(list_t *, void *, void *);
43 44 void list_insert_head(list_t *, void *);
44 45 void list_insert_tail(list_t *, void *);
45 46 void list_remove(list_t *, void *);
46 47 void *list_remove_head(list_t *);
47 48 void *list_remove_tail(list_t *);
48 49 void list_move_tail(list_t *, list_t *);
49 50
50 -void *list_head(list_t *);
51 -void *list_tail(list_t *);
52 -void *list_next(list_t *, void *);
53 -void *list_prev(list_t *, void *);
51 +extern void *list_head(list_t *);
52 +extern void *list_tail(list_t *);
53 +extern void *list_next(list_t *, void *);
54 +extern void *list_prev(list_t *, void *);
54 55 int list_is_empty(list_t *);
55 56
56 57 void list_link_init(list_node_t *);
57 58 void list_link_replace(list_node_t *, list_node_t *);
58 59
59 60 int list_link_active(list_node_t *);
60 61
61 62 #ifdef __cplusplus
62 63 }
63 64 #endif
64 65
65 66 #endif /* _SYS_LIST_H */
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX