SOURCES: libica-headers.patch (NEW) - fix includes, add icaioctl.h...

qboosh qboosh at pld-linux.org
Sun Sep 2 00:16:12 CEST 2007


Author: qboosh                       Date: Sat Sep  1 22:16:12 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- fix includes, add icaioctl.h (from SuSE package)

---- Files affected:
SOURCES:
   libica-headers.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/libica-headers.patch
diff -u /dev/null SOURCES/libica-headers.patch:1.1
--- /dev/null	Sun Sep  2 00:16:12 2007
+++ SOURCES/libica-headers.patch	Sun Sep  2 00:16:07 2007
@@ -0,0 +1,253 @@
+--- libica-1.3.8/src/icalinux.c.orig	2006-10-17 12:44:45.000000000 +0200
++++ libica-1.3.8/src/icalinux.c	2007-09-01 23:53:20.939531050 +0200
+@@ -374,7 +374,6 @@
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <linux/config.h>
+ 
+ #ifdef __s390__
+ #ifndef _LINUX_S390_
+@@ -387,9 +386,9 @@
+ #endif
+ #endif
+ 
++#include <string.h>
+ #ifdef _LINUX_S390_
+ #define __USE_GNU
+-#include <string.h>
+ #endif
+ #include <fcntl.h>
+ #include <sys/types.h>
+--- libica-1.3.8/src/sha1.c.orig	2005-01-14 23:36:19.000000000 +0100
++++ libica-1.3.8/src/sha1.c	2007-09-01 23:54:29.695449227 +0200
+@@ -355,7 +355,6 @@
+ #include <string.h>
+ 
+ #include "platform.h"
+-#include <linux/config.h>
+ #ifdef __s390__
+ #define _LINUX_S390_ 1
+ #ifdef _LINUX_S390_
+--- libica-1.3.8/include/linux/icaioctl.h.orig	1970-01-01 01:00:00.000000000 +0100
++++ libica-1.3.8/include/linux/icaioctl.h	2007-09-01 23:48:00.181252077 +0200
+@@ -0,0 +1,219 @@
++/* Copyright (c) International Business Machines Corp., 2001 */
++/*
++ * linux/include/linux/icaioctl.h
++ * 
++ */
++
++
++
++#ifndef _LINUX_ICAIOCTL_H_
++#define _LINUX_ICAIOCTL_H_
++
++enum _sizelimits {
++  ICA_DES_DATALENGTH_MIN = 8,
++  ICA_DES_DATALENGTH_MAX = 32 * 1024 * 1024 - 8,
++  ICA_SHA_DATALENGTH = 20,
++  ICA_SHA_BLOCKLENGTH = 64,
++  ICA_RSA_DATALENGTH_MIN = 256/8,
++  ICA_RSA_DATALENGTH_MAX = 2048/8
++};
++
++
++typedef struct _ica_rng_rec {
++  unsigned int nbytes;
++  char *buf;
++} ica_rng_t;
++
++
++// May have some porting issues here 
++
++typedef struct _ica_rsa_modexpo {
++  char         *inputdata;
++  unsigned int  inputdatalength;
++  char         *outputdata;
++  unsigned int  outputdatalength;
++  char         *b_key;
++  char         *n_modulus;
++} ica_rsa_modexpo_t;
++
++typedef ica_rsa_modexpo_t ica_rsa_modmult_t;
++
++typedef struct _ica_rsa_modexpo_crt {
++  char         *inputdata;
++  unsigned int  inputdatalength;
++  char         *outputdata;
++  unsigned int  outputdatalength;
++  char         *bp_key;
++  char         *bq_key;
++  char         *np_prime;
++  char         *nq_prime;
++  char         *u_mult_inv;
++} ica_rsa_modexpo_crt_t;
++
++typedef unsigned char ica_des_vector_t[8];
++typedef unsigned char ica_des_key_t[8];
++typedef ica_des_key_t ica_des_single_t[1];
++typedef ica_des_single_t ica_des_triple_t[3];
++
++enum _ica_mode_des {
++  DEVICA_MODE_DES_CBC = 0,
++  DEVICA_MODE_DES_ECB = 1
++};
++
++enum _ica_direction_des {
++  DEVICA_DIR_DES_ENCRYPT = 0,
++  DEVICA_DIR_DES_DECRYPT = 1
++};
++
++typedef struct _ica_des {
++  unsigned int      mode;
++  unsigned int      direction;
++  unsigned char    *inputdata;
++  unsigned int      inputdatalength;
++  ica_des_vector_t *iv;
++  ica_des_key_t    *keys;
++  unsigned char    *outputdata;
++  int              outputdatalength;
++} ica_des_t;
++  
++typedef struct _ica_desmac {
++  unsigned char    *inputdata;
++  unsigned int      inputdatalength;
++  ica_des_vector_t *iv;
++  ica_des_key_t    *keys;
++  unsigned char    *outputdata;
++  int              outputdatalength;
++} ica_desmac_t;
++  
++
++typedef unsigned char ica_sha1_result_t[ICA_SHA_DATALENGTH];
++
++
++typedef struct _ica_sha1 {
++  unsigned char     *inputdata;
++  unsigned int       inputdatalength;
++  ica_sha1_result_t *outputdata;
++  ica_sha1_result_t *initialh;
++} ica_sha1_t;
++
++/* The following structs are used by conversion functions
++   on PowerPC 64 bit only.  They should not be used by externel
++   applications.  Should the non PPC specific structs change, these
++   structures may need to change as well.  Also, new conversion
++   routines will need to be added to devica.c to deal with new 
++   structs or structure members.
++*/
++#ifdef CONFIG_PPC64
++typedef struct _ica_rng_rec_32 {
++  unsigned int nbytes;
++  unsigned int buf;
++} ica_rng_t_32;
++
++typedef struct _ica_des_32 {
++  unsigned int   mode;
++  unsigned int   direction;
++  unsigned int    inputdata;
++  unsigned int     iv;
++  unsigned int      keys;
++  unsigned int      outputdata;
++  unsigned int  inputdatalength;
++  unsigned int   outputdatalength;
++} ica_des_t_32;
++
++typedef struct _ica_sha1_32 {
++  unsigned int       inputdata;
++  unsigned int       inputdatalength;
++  unsigned int       outputdata;
++  unsigned int       initialh;
++} ica_sha1_t_32;
++
++typedef struct _ica_desmac_32 {
++  unsigned int    inputdata;
++  unsigned int      inputdatalength;
++  unsigned int     iv;
++  unsigned int     keys;
++  unsigned int     outputdata;
++  int              outputdatalength;
++} ica_desmac_t_32;
++
++typedef struct _ica_rsa_modexpo_crt_32 {
++  unsigned int  inputdata;
++  unsigned int  inputdatalength;
++  unsigned int  outputdata;
++  unsigned int  outputdatalength;
++  unsigned int  bp_key;
++  unsigned int  bq_key;
++  unsigned int  np_prime;
++  unsigned int  nq_prime;
++  unsigned int  u_mult_inv;
++} ica_rsa_modexpo_crt_t_32;
++
++typedef struct _ica_rsa_modexpo_32 {
++  unsigned int  inputdata;
++  unsigned int  inputdatalength;
++  unsigned int  outputdata;
++  unsigned int  outputdatalength;
++  unsigned int  b_key;
++  unsigned int  n_modulus;
++} ica_rsa_modexpo_t_32;
++
++#endif
++
++#define ICA_IOCTL_MAGIC '?'  // NOTE:  Need to allocate from linux folks
++
++/*
++ * Note: Some platforms only use 8 bits to define the parameter size.  As 
++ * the macros in ioctl.h don't seem to mask off offending bits, they look
++ * a little unsafe.  We should probably just not use the parameter size
++ * at all for these ioctls.  I don't know if we'll ever run on any of those
++ * architectures, but seems easier just to not count on this feature.
++ */
++
++#define ICASETBIND     _IOW(ICA_IOCTL_MAGIC, 0x01, int)
++#define ICAGETBIND     _IOR(ICA_IOCTL_MAGIC, 0x02, int)
++#define ICAGETCOUNT    _IOR(ICA_IOCTL_MAGIC, 0x03, int)
++#define ICAGETID       _IOR(ICA_IOCTL_MAGIC, 0x04, int)
++#define ICARSAMODEXPO  _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x05, 0)
++#define ICARSACRT      _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x06, 0) 
++#define ICARSAMODMULT  _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x07, 0)
++#define ICADES         _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x08, 0)
++#define ICADESMAC      _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x09, 0)
++#define ICATDES        _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x0a, 0)
++#define ICATDESSHA     _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x0b, 0)
++#define ICATDESMAC     _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x0c, 0)
++#define ICASHA1        _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x0d, 0)
++#define ICARNG         _IOC(_IOC_READ, ICA_IOCTL_MAGIC, 0x0e, 0)
++#define ICAGETVPD      _IOC(_IOC_READ, ICA_IOCTL_MAGIC, 0x0f, 0)
++
++#ifdef __KERNEL__
++
++#ifndef assertk
++#ifdef NDEBUG
++#  define assertk(expr) do {} while (0)
++#else
++#  define assertk(expr) \
++        if(!(expr)) {                                   \
++        printk( "Assertion failed! %s,%s,%s,line=%d\n", \
++        #expr,__FILE__,__FUNCTION__,__LINE__);          \
++        }
++#endif
++#endif
++
++
++struct ica_operations {
++  ssize_t (*read) (struct file *, char *, size_t, loff_t *, void *);
++  int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long, void *);
++};
++
++typedef struct ica_worker {
++  struct ica_operations *icaops;
++  void * private_data;  
++} ica_worker_t;
++
++
++extern int ica_register_worker(int partitionnum, ica_worker_t *device);
++extern int ica_unregister_worker(int partitionnum, ica_worker_t *device);
++
++#endif /* __KERNEL__ */
++
++#endif /* _LINUX_ICAIOCTL_H_ */
================================================================


More information about the pld-cvs-commit mailing list