=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/io.c,v retrieving revision 1.4 retrieving revision 1.15 diff -u -p -r1.4 -r1.15 --- OpenXM_contrib2/asir2000/io/io.c 2000/08/21 08:31:38 1.4 +++ OpenXM_contrib2/asir2000/io/io.c 2015/08/04 06:20:45 1.15 @@ -23,7 +23,7 @@ * shall be made on your publication or presentation in any form of the * results obtained by use of the SOFTWARE. * (4) In the event that you modify the SOFTWARE, you shall notify FLL by - * e-mail at risa-admin@flab.fujitsu.co.jp of the detailed specification + * e-mail at risa-admin@sec.flab.fujitsu.co.jp of the detailed specification * for such modification or the source code of the modified part of the * SOFTWARE. * @@ -44,11 +44,12 @@ * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. - * $OpenXM: OpenXM_contrib2/asir2000/io/io.c,v 1.3 2000/03/16 04:55:20 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/io/io.c,v 1.14 2009/03/16 16:43:03 ohara Exp $ */ #include #include "ca.h" -#if defined(VISUAL) || MPI +#include "parse.h" +#if defined(VISUAL) || defined(MPI) #include "wsio.h" #endif @@ -56,6 +57,9 @@ extern int little_endian,lib_ox_need_conv; extern int ox_do_copy, ox_do_count, ox_count_length, ox_file_io, ox_need_conv; extern char *ox_copy_bptr; +/* XXX */ +void write_cmo(pointer,Obj); + void reset_io() { ox_file_io = 0; @@ -72,65 +76,57 @@ void endian_init() ox_need_conv = 1; } -int countobj(p) -Obj p; +int countobj(Obj p) { ox_count_length = 0; ox_do_count = 1; saveobj(0,p); ox_do_count = 0; return ox_count_length; } -int count_as_cmo(p) -Obj p; +int count_as_cmo(Obj p) { ox_count_length = 0; ox_do_count = 1; write_cmo(0,p); ox_do_count = 0; return ox_count_length; } -int countvl(vl) -VL vl; +int countvl(VL vl) { ox_count_length = 0; ox_do_count = 1; savevl(0,vl); ox_do_count = 0; return ox_count_length; } -void ox_copy_init(s) -char *s; +void ox_copy_init(char *s) { ox_copy_bptr = s; } +#if !defined(VISUAL) /* * library mode functions * byte order is controlled by lib_ox_need_conv. */ -void ox_obj_to_buf_as_cmo(p) -Obj p; +void ox_obj_to_buf_as_cmo(Obj p) { ox_need_conv = lib_ox_need_conv; ox_do_copy = 1; write_cmo(0,p); ox_do_copy = 0; } -void ox_buf_to_obj_as_cmo(p) -Obj *p; +void ox_buf_to_obj_as_cmo(Obj *p) { ox_need_conv = lib_ox_need_conv; ox_do_copy = 1; read_cmo(0,p); ox_do_copy = 0; } -void ox_vl_to_buf(vl) -VL vl; +void ox_vl_to_buf(VL vl) { ox_do_copy = 1; savevl(0,vl); ox_do_copy = 0; } +#endif -int gen_fread (ptr,size,nitems,stream) -char *ptr; -int size,nitems; -FILE *stream; +int gen_fread (char *ptr,int size,int nitems,FILE *stream) { int n; @@ -138,43 +134,48 @@ FILE *stream; n = size*nitems; memcpy(ptr,ox_copy_bptr,n); ox_copy_bptr += n; + /* dummy return */ + return 0; } else { #if defined(VISUAL) if ( _fileno(stream) < 0 ) n = cread(ptr,size,nitems,(STREAM *)stream); else -#elif MPI +#elif defined(MPI) if ( (char)fileno(stream) < 0 ) n = cread(ptr,size,nitems,(STREAM *)stream); else #endif n = fread(ptr,size,nitems,stream); - if ( !n ) + if ( !n ) { ExitAsir(); - else + /* NOTREACHED */ + return 0; + } else return n; } } -int gen_fwrite (ptr,size,nitems,stream) -char *ptr; -int size,nitems; -FILE *stream; +int gen_fwrite (char *ptr,int size,int nitems,FILE *stream) { int n; - if ( ox_do_count ) + if ( ox_do_count ) { ox_count_length += size*nitems; - else if ( ox_do_copy ) { + /* dummy return */ + return 0; + } else if ( ox_do_copy ) { n = size*nitems; memcpy(ox_copy_bptr,ptr,n); ox_copy_bptr += n; + /* dummy return */ + return 0; } else #if defined(VISUAL) if ( _fileno(stream) < 0 ) return cwrite(ptr,size,nitems,(STREAM *)stream); else -#elif MPI +#elif defined(MPI) if ( (char)fileno(stream) < 0 ) return cwrite(ptr,size,nitems,(STREAM *)stream); else @@ -182,39 +183,47 @@ FILE *stream; return fwrite(ptr,size,nitems,stream); } -void write_char(f,p) -FILE *f; -unsigned char *p; +void write_char(FILE *f,unsigned char *p) { gen_fwrite(p,sizeof(unsigned char),1,f); } -void write_short(f,p) -FILE *f; -unsigned short *p; +void write_short(FILE *f,unsigned short *p) { unsigned short t; if ( little_endian && (ox_file_io || ox_need_conv) ) { t = htons(*p); - gen_fwrite(&t,sizeof(unsigned short),1,f); + gen_fwrite((char *)&t,sizeof(unsigned short),1,f); } else - gen_fwrite(p,sizeof(unsigned short),1,f); + gen_fwrite((char *)p,sizeof(unsigned short),1,f); } -void write_int(f,p) -FILE *f; -unsigned int *p; +void write_int(FILE *f,unsigned int *p) { unsigned int t; if ( little_endian && (ox_file_io || ox_need_conv) ) { t = htonl(*p); - gen_fwrite(&t,sizeof(unsigned int),1,f); + gen_fwrite((char *)&t,sizeof(unsigned int),1,f); } else - gen_fwrite(p,sizeof(unsigned int),1,f); + gen_fwrite((char *)p,sizeof(unsigned int),1,f); } +void write_int64(FILE *f,UL *p) +{ + unsigned int t; + + if ( little_endian && (ox_file_io || ox_need_conv) ) { + t = htonl(((unsigned int *)p)[1]); + gen_fwrite((char *)&t,sizeof(unsigned int),1,f); + t = htonl(((unsigned int *)p)[0]); + gen_fwrite((char *)&t,sizeof(unsigned int),1,f); + } else + gen_fwrite((char *)p,sizeof(UL),1,f); +} + +#if defined(DES_ENC) int des_encryption; static unsigned char asir_deskey[8] = {0xc7,0xe0,0xfc,0xb5,0xc3,0xad,0x8e,0x3a}; static unsigned char deskey_string[96]; @@ -228,15 +237,13 @@ void init_deskey() deskey_initialized = 1; } } +#endif -void write_intarray(f,p,l) -FILE *f; -unsigned int *p; -int l; +void write_intarray(FILE *f,unsigned int *p,int l) { int i; unsigned int t; -#if defined(VISUAL) +#if defined(DES_ENC) int l2; unsigned int plain[2],encrypted[2]; @@ -248,7 +255,7 @@ int l; des_enc(plain,deskey_string,encrypted); encrypted[0] = htonl(encrypted[0]); encrypted[1] = htonl(encrypted[1]); - gen_fwrite(encrypted,sizeof(unsigned int),2,f); + gen_fwrite((char *)encrypted,sizeof(unsigned int),2,f); } if ( (l2<<1) < l ) { plain[0] = *p; @@ -256,24 +263,22 @@ int l; des_enc(plain,deskey_string,encrypted); encrypted[0] = htonl(encrypted[0]); encrypted[1] = htonl(encrypted[1]); - gen_fwrite(encrypted,sizeof(unsigned int),2,f); + gen_fwrite((char *)encrypted,sizeof(unsigned int),2,f); } } else #endif if ( little_endian && (ox_file_io || ox_need_conv) ) for ( i = 0; i < l; i++, p++) { t = htonl(*p); - gen_fwrite(&t,sizeof(unsigned int),1,f); + gen_fwrite((char *)&t,sizeof(unsigned int),1,f); } else - gen_fwrite(p,sizeof(unsigned int),l,f); + gen_fwrite((char *)p,sizeof(unsigned int),l,f); } -#if defined(LONG_IS_64BIT) -void write_longarray(f,p,l) -FILE *f; -unsigned long *p; -int l; +#if SIZEOF_LONG == 8 +/* write l longword (1longword=8bytes) */ +void write_longarray(FILE *f,unsigned long *p,int l) { int i; unsigned long w; @@ -291,61 +296,60 @@ int l; } #endif -void write_double(f,p) -FILE *f; -double *p; +void write_double(FILE *f,double *p) { unsigned int t; if ( little_endian && (ox_file_io || ox_need_conv) ) { t = htonl(((unsigned int *)p)[1]); - gen_fwrite(&t,sizeof(unsigned int),1,f); + gen_fwrite((char *)&t,sizeof(unsigned int),1,f); t = htonl(((unsigned int *)p)[0]); - gen_fwrite(&t,sizeof(unsigned int),1,f); + gen_fwrite((char *)&t,sizeof(unsigned int),1,f); } else - gen_fwrite(p,sizeof(double),1,f); + gen_fwrite((char *)p,sizeof(double),1,f); } -void write_string(f,p,l) -FILE *f; -unsigned char *p; +void write_string(FILE *f,unsigned char *p,int l) { gen_fwrite(p,sizeof(unsigned char),l,f); } -void read_char(f,p) -FILE *f; -unsigned char *p; +void read_char(FILE *f,unsigned char *p) { gen_fread((char *)p,sizeof(unsigned char),1,f); } -void read_short(f,p) -FILE *f; -unsigned short *p; +void read_short(FILE *f,unsigned short *p) { - gen_fread(p,sizeof(unsigned short),1,f); + gen_fread((char *)p,sizeof(unsigned short),1,f); if ( little_endian && (ox_file_io || ox_need_conv) ) *p = ntohs(*p); } -void read_int(f,p) -FILE *f; -unsigned int *p; +void read_int(FILE *f,unsigned int *p) { - gen_fread(p,sizeof(unsigned int),1,f); + gen_fread((char *)p,sizeof(unsigned int),1,f); if ( little_endian && (ox_file_io || ox_need_conv) ) *p = ntohl(*p); } -void read_intarray(f,p,l) -FILE *f; -unsigned int *p; -int l; +void read_int64(FILE *f,UL *p) { - int i; unsigned int t; -#if defined(VISUAL) + + if ( little_endian && (ox_file_io || ox_need_conv) ) { + gen_fread((char *)&t,sizeof(unsigned int),1,f); + ((unsigned int *)p)[1] = ntohl(t); + gen_fread((char *)&t,sizeof(unsigned int),1,f); + ((unsigned int *)p)[0] = ntohl(t); + } else + gen_fread((char *)p,sizeof(UL),1,f); +} + +void read_intarray(FILE *f,unsigned int *p,int l) +{ + int i; +#if defined(DES_ENC) int l2; unsigned int plain[2],encrypted[2]; @@ -369,18 +373,16 @@ int l; } else #endif { - gen_fread(p,sizeof(unsigned int),l,f); + gen_fread((char *)p,sizeof(unsigned int),l,f); if ( little_endian && (ox_file_io || ox_need_conv) ) for ( i = 0; i < l; i++, p++ ) *p = ntohl(*p); } } -#if defined(LONG_IS_64BIT) -void read_longarray(f,p,l) -FILE *f; -unsigned long *p; -int l; +#if SIZEOF_LONG == 8 +/* read l word (1word=4bytes) */ +void read_longarray(FILE *f,unsigned long *p,int l) { int i; unsigned int hi,lo; @@ -401,16 +403,12 @@ int l; } #endif -void read_string(f,p,l) -FILE *f; -unsigned char *p; +void read_string(FILE *f,unsigned char *p,int l) { gen_fread((char *)p,sizeof(unsigned char),l,f); } -void read_double(f,p) -FILE *f; -double *p; +void read_double(FILE *f,double *p) { unsigned int t;