cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

msgqueue.h (2011B)


      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