Linux Audio

Check our new training course

Loading...
v3.1
 
 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
15struct message {
16    char msg[8];
17    int length;
18    int fifo;
19};
20
21struct msgqueue_entry {
22    struct message msg;
23    struct msgqueue_entry *next;
24};
25
26#define NR_MESSAGES 4
27
28typedef 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 */
39extern 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 */
46extern 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 */
54extern 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 */
63extern 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 */
73extern 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 */
80extern void msgqueue_flush(MsgQueue_t *msgq);
81
82#endif
v6.13.7
 1/* SPDX-License-Identifier: GPL-2.0-only */
 2/*
 3 *  linux/drivers/acorn/scsi/msgqueue.h
 4 *
 5 *  Copyright (C) 1997 Russell King
 
 
 
 
 6 *
 7 *  message queue handling
 8 */
 9#ifndef MSGQUEUE_H
10#define MSGQUEUE_H
11
12struct message {
13    char msg[8];
14    int length;
15    int fifo;
16};
17
18struct msgqueue_entry {
19    struct message msg;
20    struct msgqueue_entry *next;
21};
22
23#define NR_MESSAGES 4
24
25typedef struct {
26    struct msgqueue_entry *qe;
27    struct msgqueue_entry *free;
28    struct msgqueue_entry entries[NR_MESSAGES];
29} MsgQueue_t;
30
31/*
32 * Function: void msgqueue_initialise(MsgQueue_t *msgq)
33 * Purpose : initialise a message queue
34 * Params  : msgq - queue to initialise
35 */
36extern void msgqueue_initialise(MsgQueue_t *msgq);
37
38/*
39 * Function: void msgqueue_free(MsgQueue_t *msgq)
40 * Purpose : free a queue
41 * Params  : msgq - queue to free
42 */
43extern void msgqueue_free(MsgQueue_t *msgq);
44
45/*
46 * Function: int msgqueue_msglength(MsgQueue_t *msgq)
47 * Purpose : calculate the total length of all messages on the message queue
48 * Params  : msgq - queue to examine
49 * Returns : number of bytes of messages in queue
50 */
51extern int msgqueue_msglength(MsgQueue_t *msgq);
52
53/*
54 * Function: struct message *msgqueue_getmsg(MsgQueue_t *msgq, int msgno)
55 * Purpose : return a message & its length
56 * Params  : msgq   - queue to obtain message from
57 *         : msgno  - message number
58 * Returns : pointer to message string, or NULL
59 */
60extern struct message *msgqueue_getmsg(MsgQueue_t *msgq, int msgno);
61
62/*
63 * Function: int msgqueue_addmsg(MsgQueue_t *msgq, int length, ...)
64 * Purpose : add a message onto a message queue
65 * Params  : msgq   - queue to add message on
66 *	     length - length of message
67 *	     ...    - message bytes
68 * Returns : != 0 if successful
69 */
70extern int msgqueue_addmsg(MsgQueue_t *msgq, int length, ...);
71
72/*
73 * Function: void msgqueue_flush(MsgQueue_t *msgq)
74 * Purpose : flush all messages from message queue
75 * Params  : msgq - queue to flush
76 */
77extern void msgqueue_flush(MsgQueue_t *msgq);
78
79#endif