Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  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
 83 
  This page was automatically generated by the LXR engine.