|
@@ -0,0 +1,64 @@
|
|
|
+/*
|
|
|
+ * Adjunct processor (AP) interfaces
|
|
|
+ *
|
|
|
+ * Copyright IBM Corp. 2017
|
|
|
+ *
|
|
|
+ * This program is free software; you can redistribute it and/or modify
|
|
|
+ * it under the terms of the GNU General Public License (version 2 only)
|
|
|
+ * as published by the Free Software Foundation.
|
|
|
+ *
|
|
|
+ * Author(s): Tony Krowiak <akrowia@linux.vnet.ibm.com>
|
|
|
+ * Martin Schwidefsky <schwidefsky@de.ibm.com>
|
|
|
+ * Harald Freudenberger <freude@de.ibm.com>
|
|
|
+ */
|
|
|
+
|
|
|
+#ifndef _ASM_S390_AP_H_
|
|
|
+#define _ASM_S390_AP_H_
|
|
|
+
|
|
|
+/**
|
|
|
+ * The ap_qid_t identifier of an ap queue.
|
|
|
+ * If the AP facilities test (APFT) facility is available,
|
|
|
+ * card and queue index are 8 bit values, otherwise
|
|
|
+ * card index is 6 bit and queue index a 4 bit value.
|
|
|
+ */
|
|
|
+typedef unsigned int ap_qid_t;
|
|
|
+
|
|
|
+#define AP_MKQID(_card, _queue) (((_card) & 63) << 8 | ((_queue) & 255))
|
|
|
+#define AP_QID_CARD(_qid) (((_qid) >> 8) & 63)
|
|
|
+#define AP_QID_QUEUE(_qid) ((_qid) & 255)
|
|
|
+
|
|
|
+/**
|
|
|
+ * struct ap_queue_status - Holds the AP queue status.
|
|
|
+ * @queue_empty: Shows if queue is empty
|
|
|
+ * @replies_waiting: Waiting replies
|
|
|
+ * @queue_full: Is 1 if the queue is full
|
|
|
+ * @irq_enabled: Shows if interrupts are enabled for the AP
|
|
|
+ * @response_code: Holds the 8 bit response code
|
|
|
+ *
|
|
|
+ * The ap queue status word is returned by all three AP functions
|
|
|
+ * (PQAP, NQAP and DQAP). There's a set of flags in the first
|
|
|
+ * byte, followed by a 1 byte response code.
|
|
|
+ */
|
|
|
+struct ap_queue_status {
|
|
|
+ unsigned int queue_empty : 1;
|
|
|
+ unsigned int replies_waiting : 1;
|
|
|
+ unsigned int queue_full : 1;
|
|
|
+ unsigned int _pad1 : 4;
|
|
|
+ unsigned int irq_enabled : 1;
|
|
|
+ unsigned int response_code : 8;
|
|
|
+ unsigned int _pad2 : 16;
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * ap_test_queue(): Test adjunct processor queue.
|
|
|
+ * @qid: The AP queue number
|
|
|
+ * @tbit: Test facilities bit
|
|
|
+ * @info: Pointer to queue descriptor
|
|
|
+ *
|
|
|
+ * Returns AP queue status structure.
|
|
|
+ */
|
|
|
+struct ap_queue_status ap_test_queue(ap_qid_t qid,
|
|
|
+ int tbit,
|
|
|
+ unsigned long *info);
|
|
|
+
|
|
|
+#endif /* _ASM_S390_AP_H_ */
|