Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
msgqueue.h
Go to the documentation of this file.
1 /*
2  * linux/drivers/acorn/scsi/msgqueue.h
3  *
4  * Copyright (C) 1997 Russell King
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  * message queue handling
11  */
12 #ifndef MSGQUEUE_H
13 #define MSGQUEUE_H
14 
15 struct message {
16  char msg[8];
17  int length;
18  int fifo;
19 };
20 
22  struct message msg;
24 };
25 
26 #define NR_MESSAGES 4
27 
28 typedef struct {
29  struct msgqueue_entry *qe;
32 } MsgQueue_t;
33 
34 /*
35  * Function: void msgqueue_initialise(MsgQueue_t *msgq)
36  * Purpose : initialise a message queue
37  * Params : msgq - queue to initialise
38  */
39 extern void msgqueue_initialise(MsgQueue_t *msgq);
40 
41 /*
42  * Function: void msgqueue_free(MsgQueue_t *msgq)
43  * Purpose : free a queue
44  * Params : msgq - queue to free
45  */
46 extern void msgqueue_free(MsgQueue_t *msgq);
47 
48 /*
49  * Function: int msgqueue_msglength(MsgQueue_t *msgq)
50  * Purpose : calculate the total length of all messages on the message queue
51  * Params : msgq - queue to examine
52  * Returns : number of bytes of messages in queue
53  */
54 extern int msgqueue_msglength(MsgQueue_t *msgq);
55 
56 /*
57  * Function: struct message *msgqueue_getmsg(MsgQueue_t *msgq, int msgno)
58  * Purpose : return a message & its length
59  * Params : msgq - queue to obtain message from
60  * : msgno - message number
61  * Returns : pointer to message string, or NULL
62  */
63 extern struct message *msgqueue_getmsg(MsgQueue_t *msgq, int msgno);
64 
65 /*
66  * Function: int msgqueue_addmsg(MsgQueue_t *msgq, int length, ...)
67  * Purpose : add a message onto a message queue
68  * Params : msgq - queue to add message on
69  * length - length of message
70  * ... - message bytes
71  * Returns : != 0 if successful
72  */
73 extern int msgqueue_addmsg(MsgQueue_t *msgq, int length, ...);
74 
75 /*
76  * Function: void msgqueue_flush(MsgQueue_t *msgq)
77  * Purpose : flush all messages from message queue
78  * Params : msgq - queue to flush
79  */
80 extern void msgqueue_flush(MsgQueue_t *msgq);
81 
82 #endif