patch-2.1.101 linux/drivers/acorn/scsi/msgqueue.c

Next file: linux/drivers/acorn/scsi/msgqueue.h
Previous file: linux/drivers/acorn/scsi/fas216.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.100/linux/drivers/acorn/scsi/msgqueue.c linux/drivers/acorn/scsi/msgqueue.c
@@ -11,12 +11,12 @@
 #include "msgqueue.h"
 
 /*
- * Function: struct msgqueue_entry *mqe_alloc (MsgQueue_t *msgq)
+ * Function: struct msgqueue_entry *mqe_alloc(MsgQueue_t *msgq)
  * Purpose : Allocate a message queue entry
  * Params  : msgq - message queue to claim entry for
  * Returns : message queue entry or NULL.
  */
-static struct msgqueue_entry *mqe_alloc (MsgQueue_t *msgq)
+static struct msgqueue_entry *mqe_alloc(MsgQueue_t *msgq)
 {
 	struct msgqueue_entry *mq;
 
@@ -27,12 +27,12 @@
 }
 
 /*
- * Function: void mqe_free (MsgQueue_t *msgq, struct msgqueue_entry *mq)
+ * Function: void mqe_free(MsgQueue_t *msgq, struct msgqueue_entry *mq)
  * Purpose : free a message queue entry
  * Params  : msgq - message queue to free entry from
  *	     mq   - message queue entry to free
  */
-static void mqe_free (MsgQueue_t *msgq, struct msgqueue_entry *mq)
+static void mqe_free(MsgQueue_t *msgq, struct msgqueue_entry *mq)
 {
 	if (mq) {
 		mq->next = msgq->free;
@@ -41,11 +41,11 @@
 }
 
 /*
- * Function: void msgqueue_initialise (MsgQueue_t *msgq)
+ * Function: void msgqueue_initialise(MsgQueue_t *msgq)
  * Purpose : initialise a message queue
  * Params  : msgq - queue to initialise
  */
-void msgqueue_initialise (MsgQueue_t *msgq)
+void msgqueue_initialise(MsgQueue_t *msgq)
 {
 	int i;
 
@@ -60,21 +60,21 @@
 
 
 /*
- * Function: void msgqueue_free (MsgQueue_t *msgq)
+ * Function: void msgqueue_free(MsgQueue_t *msgq)
  * Purpose : free a queue
  * Params  : msgq - queue to free
  */
-void msgqueue_free (MsgQueue_t *msgq)
+void msgqueue_free(MsgQueue_t *msgq)
 {
 }
 
 /*
- * Function: int msgqueue_msglength (MsgQueue_t *msgq)
+ * Function: int msgqueue_msglength(MsgQueue_t *msgq)
  * Purpose : calculate the total length of all messages on the message queue
  * Params  : msgq - queue to examine
  * Returns : number of bytes of messages in queue
  */
-int msgqueue_msglength (MsgQueue_t *msgq)
+int msgqueue_msglength(MsgQueue_t *msgq)
 {
 	struct msgqueue_entry *mq = msgq->qe;
 	int length = 0;
@@ -86,19 +86,19 @@
 }
 
 /*
- * Function: char *msgqueue_getnextmsg (MsgQueue_t *msgq, int *length)
+ * Function: char *msgqueue_getnextmsg(MsgQueue_t *msgq, int *length)
  * Purpose : return a message & its length
  * Params  : msgq   - queue to obtain message from
  *	     length - pointer to int for message length
- * Returns : pointer to message string
+ * Returns : pointer to message string, or NULL
  */
-char *msgqueue_getnextmsg (MsgQueue_t *msgq, int *length)
+char *msgqueue_getnextmsg(MsgQueue_t *msgq, int *length)
 {
 	struct msgqueue_entry *mq;
 
 	if ((mq = msgq->qe) != NULL) {
 		msgq->qe = mq->next;
-		mqe_free (msgq, mq);
+		mqe_free(msgq, mq);
 		*length = mq->length;
 	}
 
@@ -106,26 +106,42 @@
 }
 
 /*
- * Function: int msgqueue_addmsg (MsgQueue_t *msgq, int length, ...)
+ * Function: char *msgqueue_peeknextmsg(MsgQueue_t *msgq, int *length)
+ * Purpose : return next message & length without removing it from the list
+ * Params  : msgq   - queue to obtain message from
+ *         : length - pointer to int for message length
+ * Returns : pointer to message string, or NULL
+ */
+char *msgqueue_peeknextmsg(MsgQueue_t *msgq, int *length)
+{
+	struct msgqueue_entry *mq = msgq->qe;
+
+	*length = mq ? mq->length : 0;
+
+	return mq ? mq->msg : NULL;
+}
+
+/*
+ * Function: int msgqueue_addmsg(MsgQueue_t *msgq, int length, ...)
  * Purpose : add a message onto a message queue
  * Params  : msgq   - queue to add message on
  *	     length - length of message
  *	     ...    - message bytes
  * Returns : != 0 if successful
  */
-int msgqueue_addmsg (MsgQueue_t *msgq, int length, ...)
+int msgqueue_addmsg(MsgQueue_t *msgq, int length, ...)
 {
-	struct msgqueue_entry *mq = mqe_alloc (msgq);
+	struct msgqueue_entry *mq = mqe_alloc(msgq);
 	va_list ap;
 
 	if (mq) {
 		struct msgqueue_entry **mqp;
 		int i;
 
-		va_start (ap, length);
+		va_start(ap, length);
 		for (i = 0; i < length; i++)
-			mq->msg[i] = va_arg (ap, unsigned char);
-		va_end (ap);
+			mq->msg[i] = va_arg(ap, unsigned char);
+		va_end(ap);
 
 		mq->length = length;
 		mq->next = NULL;
@@ -141,17 +157,17 @@
 }
 
 /*
- * Function: void msgqueue_flush (MsgQueue_t *msgq)
+ * Function: void msgqueue_flush(MsgQueue_t *msgq)
  * Purpose : flush all messages from message queue
  * Params  : msgq - queue to flush
  */
-void msgqueue_flush (MsgQueue_t *msgq)
+void msgqueue_flush(MsgQueue_t *msgq)
 {
 	struct msgqueue_entry *mq, *mqnext;
 
 	for (mq = msgq->qe; mq; mq = mqnext) {
 		mqnext = mq->next;
-		mqe_free (msgq, mq);
+		mqe_free(msgq, mq);
 	}
 	msgq->qe = NULL;
 }
@@ -160,16 +176,17 @@
 EXPORT_SYMBOL(msgqueue_free);
 EXPORT_SYMBOL(msgqueue_msglength);
 EXPORT_SYMBOL(msgqueue_getnextmsg);
+EXPORT_SYMBOL(msgqueue_peeknextmsg);
 EXPORT_SYMBOL(msgqueue_addmsg);
 EXPORT_SYMBOL(msgqueue_flush);
 
 #ifdef MODULE
-int init_module (void)
+int init_module(void)
 {
 	return 0;
 }
 
-void cleanup_module (void)
+void cleanup_module(void)
 {
 }
 #endif

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov