123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- /*
- * linux/drivers/s390/crypto/z90common.h
- *
- * z90crypt 1.3.3
- *
- * Copyright (C) 2001, 2005 IBM Corporation
- * Author(s): Robert Burroughs (burrough@us.ibm.com)
- * Eric Rossman (edrossma@us.ibm.com)
- *
- * Hotplug & misc device support: Jochen Roehrig (roehrig@de.ibm.com)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
- #ifndef _Z90COMMON_H_
- #define _Z90COMMON_H_
- #define RESPBUFFSIZE 256
- #define PCI_FUNC_KEY_DECRYPT 0x5044
- #define PCI_FUNC_KEY_ENCRYPT 0x504B
- extern int ext_bitlens;
- enum devstat {
- DEV_GONE,
- DEV_ONLINE,
- DEV_QUEUE_FULL,
- DEV_EMPTY,
- DEV_NO_WORK,
- DEV_BAD_MESSAGE,
- DEV_TSQ_EXCEPTION,
- DEV_RSQ_EXCEPTION,
- DEV_SEN_EXCEPTION,
- DEV_REC_EXCEPTION
- };
- enum hdstat {
- HD_NOT_THERE,
- HD_BUSY,
- HD_DECONFIGURED,
- HD_CHECKSTOPPED,
- HD_ONLINE,
- HD_TSQ_EXCEPTION
- };
- #define Z90C_NO_DEVICES 1
- #define Z90C_AMBIGUOUS_DOMAIN 2
- #define Z90C_INCORRECT_DOMAIN 3
- #define ENOTINIT 4
- #define SEN_BUSY 7
- #define SEN_USER_ERROR 8
- #define SEN_QUEUE_FULL 11
- #define SEN_NOT_AVAIL 16
- #define SEN_PAD_ERROR 17
- #define SEN_RETRY 18
- #define SEN_RELEASED 24
- #define REC_EMPTY 4
- #define REC_BUSY 6
- #define REC_OPERAND_INV 8
- #define REC_OPERAND_SIZE 9
- #define REC_EVEN_MOD 10
- #define REC_NO_WORK 11
- #define REC_HARDWAR_ERR 12
- #define REC_NO_RESPONSE 13
- #define REC_RETRY_DEV 14
- #define REC_USER_GONE 15
- #define REC_BAD_MESSAGE 16
- #define REC_INVALID_PAD 17
- #define REC_USE_PCICA 18
- #define WRONG_DEVICE_TYPE 20
- #define REC_FATAL_ERROR 32
- #define SEN_FATAL_ERROR 33
- #define TSQ_FATAL_ERROR 34
- #define RSQ_FATAL_ERROR 35
- #define Z90CRYPT_NUM_TYPES 6
- #define PCICA 0
- #define PCICC 1
- #define PCIXCC_MCL2 2
- #define PCIXCC_MCL3 3
- #define CEX2C 4
- #define CEX2A 5
- #define NILDEV -1
- #define ANYDEV -1
- #define PCIXCC_UNK -2
- enum hdevice_type {
- PCICC_HW = 3,
- PCICA_HW = 4,
- PCIXCC_HW = 5,
- CEX2A_HW = 6,
- CEX2C_HW = 7
- };
- struct CPRBX {
- unsigned short cprb_len;
- unsigned char cprb_ver_id;
- unsigned char pad_000[3];
- unsigned char func_id[2];
- unsigned char cprb_flags[4];
- unsigned int req_parml;
- unsigned int req_datal;
- unsigned int rpl_msgbl;
- unsigned int rpld_parml;
- unsigned int rpl_datal;
- unsigned int rpld_datal;
- unsigned int req_extbl;
- unsigned char pad_001[4];
- unsigned int rpld_extbl;
- unsigned char req_parmb[16];
- unsigned char req_datab[16];
- unsigned char rpl_parmb[16];
- unsigned char rpl_datab[16];
- unsigned char req_extb[16];
- unsigned char rpl_extb[16];
- unsigned short ccp_rtcode;
- unsigned short ccp_rscode;
- unsigned int mac_data_len;
- unsigned char logon_id[8];
- unsigned char mac_value[8];
- unsigned char mac_content_flgs;
- unsigned char pad_002;
- unsigned short domain;
- unsigned char pad_003[12];
- unsigned char pad_004[36];
- };
- #ifndef DEV_NAME
- #define DEV_NAME "z90crypt"
- #endif
- #define PRINTK(fmt, args...) \
- printk(KERN_DEBUG DEV_NAME ": %s -> " fmt, __FUNCTION__ , ## args)
- #define PRINTKN(fmt, args...) \
- printk(KERN_DEBUG DEV_NAME ": " fmt, ## args)
- #define PRINTKW(fmt, args...) \
- printk(KERN_WARNING DEV_NAME ": %s -> " fmt, __FUNCTION__ , ## args)
- #define PRINTKC(fmt, args...) \
- printk(KERN_CRIT DEV_NAME ": %s -> " fmt, __FUNCTION__ , ## args)
- #ifdef Z90CRYPT_DEBUG
- #define PDEBUG(fmt, args...) \
- printk(KERN_DEBUG DEV_NAME ": %s -> " fmt, __FUNCTION__ , ## args)
- #else
- #define PDEBUG(fmt, args...) do {} while (0)
- #endif
- #define UMIN(a,b) ((a) < (b) ? (a) : (b))
- #define IS_EVEN(x) ((x) == (2 * ((x) / 2)))
- #endif
|