xref: /onnv-gate/usr/src/cmd/sgs/include/list.h (revision 10167:4c8fee5f1d6a)
1*10167SRod.Evans@Sun.COM /*
2*10167SRod.Evans@Sun.COM  * CDDL HEADER START
3*10167SRod.Evans@Sun.COM  *
4*10167SRod.Evans@Sun.COM  * The contents of this file are subject to the terms of the
5*10167SRod.Evans@Sun.COM  * Common Development and Distribution License (the "License").
6*10167SRod.Evans@Sun.COM  * You may not use this file except in compliance with the License.
7*10167SRod.Evans@Sun.COM  *
8*10167SRod.Evans@Sun.COM  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*10167SRod.Evans@Sun.COM  * or http://www.opensolaris.org/os/licensing.
10*10167SRod.Evans@Sun.COM  * See the License for the specific language governing permissions
11*10167SRod.Evans@Sun.COM  * and limitations under the License.
12*10167SRod.Evans@Sun.COM  *
13*10167SRod.Evans@Sun.COM  * When distributing Covered Code, include this CDDL HEADER in each
14*10167SRod.Evans@Sun.COM  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*10167SRod.Evans@Sun.COM  * If applicable, add the following below this CDDL HEADER, with the
16*10167SRod.Evans@Sun.COM  * fields enclosed by brackets "[]" replaced with your own identifying
17*10167SRod.Evans@Sun.COM  * information: Portions Copyright [yyyy] [name of copyright owner]
18*10167SRod.Evans@Sun.COM  *
19*10167SRod.Evans@Sun.COM  * CDDL HEADER END
20*10167SRod.Evans@Sun.COM  */
21*10167SRod.Evans@Sun.COM 
22*10167SRod.Evans@Sun.COM /*
23*10167SRod.Evans@Sun.COM  *	Copyright (c) 1988 AT&T
24*10167SRod.Evans@Sun.COM  *	  All Rights Reserved
25*10167SRod.Evans@Sun.COM  *
26*10167SRod.Evans@Sun.COM  *
27*10167SRod.Evans@Sun.COM  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
28*10167SRod.Evans@Sun.COM  * Use is subject to license terms.
29*10167SRod.Evans@Sun.COM  *
30*10167SRod.Evans@Sun.COM  * This file maintains an old style of list processing that is required by
31*10167SRod.Evans@Sun.COM  * librtld_db to iterate over older core files/process images.
32*10167SRod.Evans@Sun.COM  */
33*10167SRod.Evans@Sun.COM #ifndef	_LIST_H
34*10167SRod.Evans@Sun.COM #define	_LIST_H
35*10167SRod.Evans@Sun.COM 
36*10167SRod.Evans@Sun.COM #ifdef	__cplusplus
37*10167SRod.Evans@Sun.COM extern "C" {
38*10167SRod.Evans@Sun.COM #endif
39*10167SRod.Evans@Sun.COM 
40*10167SRod.Evans@Sun.COM #include <sys/elftypes.h>
41*10167SRod.Evans@Sun.COM 
42*10167SRod.Evans@Sun.COM typedef	struct listnode	Listnode;
43*10167SRod.Evans@Sun.COM typedef	struct list	List;
44*10167SRod.Evans@Sun.COM 
45*10167SRod.Evans@Sun.COM struct	listnode {			/* a node on a linked list */
46*10167SRod.Evans@Sun.COM 	void		*data;		/* the data item */
47*10167SRod.Evans@Sun.COM 	Listnode	*next;		/* the next element */
48*10167SRod.Evans@Sun.COM };
49*10167SRod.Evans@Sun.COM 
50*10167SRod.Evans@Sun.COM struct	list {				/* a linked list */
51*10167SRod.Evans@Sun.COM 	Listnode	*head;		/* the first element */
52*10167SRod.Evans@Sun.COM 	Listnode	*tail;		/* the last element */
53*10167SRod.Evans@Sun.COM };
54*10167SRod.Evans@Sun.COM 
55*10167SRod.Evans@Sun.COM 
56*10167SRod.Evans@Sun.COM #ifdef _SYSCALL32
57*10167SRod.Evans@Sun.COM typedef	struct listnode32	Listnode32;
58*10167SRod.Evans@Sun.COM typedef	struct list32		List32;
59*10167SRod.Evans@Sun.COM 
60*10167SRod.Evans@Sun.COM struct	listnode32 {			/* a node on a linked list */
61*10167SRod.Evans@Sun.COM 	Elf32_Addr	data;		/* the data item */
62*10167SRod.Evans@Sun.COM 	Elf32_Addr	next;		/* the next element */
63*10167SRod.Evans@Sun.COM };
64*10167SRod.Evans@Sun.COM 
65*10167SRod.Evans@Sun.COM struct	list32 {			/* a linked list */
66*10167SRod.Evans@Sun.COM 	Elf32_Addr	head;		/* the first element */
67*10167SRod.Evans@Sun.COM 	Elf32_Addr	tail;		/* the last element */
68*10167SRod.Evans@Sun.COM };
69*10167SRod.Evans@Sun.COM #endif	/* _SYSCALL32 */
70*10167SRod.Evans@Sun.COM 
71*10167SRod.Evans@Sun.COM #ifdef	__cplusplus
72*10167SRod.Evans@Sun.COM }
73*10167SRod.Evans@Sun.COM #endif
74*10167SRod.Evans@Sun.COM 
75*10167SRod.Evans@Sun.COM #endif /* _LIST_H */
76