Просмотр исходного кода

s390/zcrypt: Add ZAPQ inline function.

Added new inline function ap_pqap_zapq()
which is a C inline function wrapper for
the AP PQAP(ZAPQ) instruction.

Signed-off-by: Harald Freudenberger <freude@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Harald Freudenberger 7 лет назад
Родитель
Сommit
ea3c4185ef
1 измененных файлов с 19 добавлено и 0 удалено
  1. 19 0
      drivers/s390/crypto/ap_asm.h

+ 19 - 0
drivers/s390/crypto/ap_asm.h

@@ -69,6 +69,25 @@ static inline struct ap_queue_status ap_rapq(ap_qid_t qid)
 	return reg1;
 }
 
+/**
+ * ap_pqap_zapq(): Reset and zeroize adjunct processor queue.
+ * @qid: The AP queue number
+ *
+ * Returns AP queue status structure.
+ */
+static inline struct ap_queue_status ap_zapq(ap_qid_t qid)
+{
+	register unsigned long reg0 asm ("0") = qid | (2UL << 24);
+	register struct ap_queue_status reg1 asm ("1");
+
+	asm volatile(
+		".long 0xb2af0000"		/* PQAP(ZAPQ) */
+		: "=d" (reg1)
+		: "d" (reg0)
+		: "cc");
+	return reg1;
+}
+
 /**
  * ap_aqic(): Control interruption for a specific AP.
  * @qid: The AP queue number