|
@@ -215,6 +215,42 @@ struct ep11_urb {
|
|
|
uint64_t resp;
|
|
|
} __attribute__((packed));
|
|
|
|
|
|
+/**
|
|
|
+ * struct zcrypt_device_status
|
|
|
+ * @hwtype: raw hardware type
|
|
|
+ * @qid: 6 bit device index, 8 bit domain
|
|
|
+ * @functions: AP device function bit field 'abcdef'
|
|
|
+ * a, b, c = reserved
|
|
|
+ * d = CCA coprocessor
|
|
|
+ * e = Accelerator
|
|
|
+ * f = EP11 coprocessor
|
|
|
+ * @online online status
|
|
|
+ * @reserved reserved
|
|
|
+ */
|
|
|
+struct zcrypt_device_status {
|
|
|
+ unsigned int hwtype:8;
|
|
|
+ unsigned int qid:14;
|
|
|
+ unsigned int online:1;
|
|
|
+ unsigned int functions:6;
|
|
|
+ unsigned int reserved:3;
|
|
|
+};
|
|
|
+
|
|
|
+#define MAX_ZDEV_CARDIDS 64
|
|
|
+#define MAX_ZDEV_DOMAINS 256
|
|
|
+
|
|
|
+/**
|
|
|
+ * Maximum number of zcrypt devices
|
|
|
+ */
|
|
|
+#define MAX_ZDEV_ENTRIES (MAX_ZDEV_CARDIDS * MAX_ZDEV_DOMAINS)
|
|
|
+
|
|
|
+/**
|
|
|
+ * zcrypt_device_matrix
|
|
|
+ * Device matrix of all zcrypt devices
|
|
|
+ */
|
|
|
+struct zcrypt_device_matrix {
|
|
|
+ struct zcrypt_device_status device[MAX_ZDEV_ENTRIES];
|
|
|
+};
|
|
|
+
|
|
|
#define AUTOSELECT ((unsigned int)0xFFFFFFFF)
|
|
|
|
|
|
#define ZCRYPT_IOCTL_MAGIC 'z'
|
|
@@ -321,6 +357,7 @@ struct ep11_urb {
|
|
|
#define ICARSACRT _IOC(_IOC_READ|_IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x06, 0)
|
|
|
#define ZSECSENDCPRB _IOC(_IOC_READ|_IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x81, 0)
|
|
|
#define ZSENDEP11CPRB _IOC(_IOC_READ|_IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x04, 0)
|
|
|
+#define ZDEVICESTATUS _IOC(_IOC_READ|_IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x4f, 0)
|
|
|
|
|
|
/* New status calls */
|
|
|
#define Z90STAT_TOTALCOUNT _IOR(ZCRYPT_IOCTL_MAGIC, 0x40, int)
|