Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
scsi
arm
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
21
struct
msgqueue_entry
{
22
struct
message
msg
;
23
struct
msgqueue_entry
*
next
;
24
};
25
26
#define NR_MESSAGES 4
27
28
typedef
struct
{
29
struct
msgqueue_entry
*
qe
;
30
struct
msgqueue_entry
*
free
;
31
struct
msgqueue_entry
entries
[
NR_MESSAGES
];
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
Generated on Thu Jan 10 2013 14:19:28 for Linux Kernel by
1.8.2