dmake: do not set MAKEFLAGS=k
[unleashed/tickless.git] / usr / src / cmd / isns / isnsd / isns_msgq.h
blobd47b9718fa672128985b0a677101272e0f6da474
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
19 * CDDL HEADER END
23 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
27 #ifndef _ISNS_MSGQ_H
28 #define _ISNS_MSGQ_H
30 #include <pthread.h>
31 #include <synch.h>
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
37 #define TEST_CLI_STOPPED (0x0001)
38 #define DD_SERVICE_STOPPED (0x0002)
39 #define SCN_STOPPED (0x0004)
40 #define ESI_STOPPED (0x0008)
42 typedef enum msg_id {
43 DATA_ADD = 1,
44 DATA_UPDATE,
45 DATA_DELETE,
46 DATA_DELETE_ASSOC,
47 DATA_COMMIT,
48 DATA_RETREAT,
49 REG_EXP,
50 DEAD_PORTAL,
51 SYS_QUIT_OK,
52 SCN_ADD = 100,
53 SCN_REMOVE,
54 SCN_REMOVE_P,
55 SCN_SET,
56 SCN_TRIGGER,
57 SCN_IGNORE,
58 SCN_STOP,
59 SERVER_EXIT,
60 CONFIG_RELOAD
61 } msg_id_t;
63 typedef struct msg_text {
64 struct msg_text *prev;
65 struct msg_text *next;
66 msg_id_t id;
67 void *data;
68 } msg_text_t;
70 typedef struct msg_queue {
71 msg_text_t *q_head;
72 msg_text_t *q_tail;
73 pthread_mutex_t q_mutex;
74 sema_t q_sema;
75 } msg_queue_t;
77 /* function prototypes */
78 msg_queue_t *queue_calloc();
79 int queue_msg_set(msg_queue_t *, msg_id_t, void *);
80 msg_text_t *queue_msg_get(msg_queue_t *);
81 void queue_msg_free(msg_text_t *);
83 #ifdef __cplusplus
85 #endif
87 #endif /* _ISNS_MSGQ_H */