~ubuntu-branches/ubuntu/saucy/linux-n900/saucy

« back to all changes in this revision

Viewing changes to drivers/scsi/arm/msgqueue.h

  • Committer: Bazaar Package Importer
  • Author(s): Mathieu Poirier
  • Date: 2011-02-18 09:43:31 UTC
  • Revision ID: james.westby@ubuntu.com-20110218094331-eyubsja4f9k0yhmq
Tags: 2.6.35-1.1
Initial release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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