Mercurial > repos > dawe > srf2fastq
diff srf2fastq/io_lib-1.12.2/io_lib/mach-io.c @ 0:d901c9f41a6a default tip
Migrated tool version 1.0.1 from old tool shed archive to new tool shed repository
author | dawe |
---|---|
date | Tue, 07 Jun 2011 17:48:05 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/srf2fastq/io_lib-1.12.2/io_lib/mach-io.c Tue Jun 07 17:48:05 2011 -0400 @@ -0,0 +1,255 @@ +/* + * Copyright (c) Medical Research Council 1994. All rights reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation for any purpose is hereby granted without fee, provided that + * this copyright and notice appears in all copies. + * + * This file was written by James Bonfield, Simon Dear, Rodger Staden, + * as part of the Staden Package at the MRC Laboratory of Molecular + * Biology, Hills Road, Cambridge, CB2 2QH, United Kingdom. + * + * MRC disclaims all warranties with regard to this software. + */ + +/* + * Machine independant io: + * For reading and writing to big-endian and little-endian files + * + * Routines available: + * be_write_int_1() + * be_write_int_2() + * be_write_int_4() + * be_write_int_8() + * be_read_int_1() + * be_read_int_2() + * be_read_int_4() + * be_read_int_8() + * le_write_int_1() + * le_write_int_2() + * le_write_int_4() + * le_write_int_8() + * le_read_int_1() + * le_read_int_2() + * le_read_int_4() + * le_read_int_8() + * + * All routine return: + * 0 - an error has occurred during io operation + * 1 - value suggessfully read or written + */ + +#include <stdio.h> +#include "io_lib/stdio_hack.h" +#include "io_lib/mach-io.h" + + + + +/**********************************************************************/ +/* IO for big-endian files */ +/**********************************************************************/ + +/* + * Write a big-endian int1 + */ +int be_write_int_1(FILE *fp, uint1 *i1) +{ + if (fwrite(i1, sizeof(uint1), 1, fp) != 1) return (0); + return (1); +} + + +/* +* Write a big-endian int2 +*/ +int be_write_int_2(FILE *fp, uint2 *i2) +{ + uint2 i = be_int2(*i2); + + if (fwrite(&i, 2, 1, fp) != 1) return (0); + return (1); +} + +/* + * Write a big-endian int4 + */ +int be_write_int_4(FILE *fp, uint4 *i4) +{ + uint4 i = be_int4(*i4); + + if (fwrite(&i, 4, 1, fp) != 1) return (0); + + return (1); +} + +/* + * Write a big-endian int8 + */ +int be_write_int_8(FILE *fp, uint8 *i8) +{ + uint8 i = be_int8(*i8); + + if (fwrite(&i, 8, 1, fp) != 1) return (0); + + return (1); +} + + +/* + * Read a big-endian int1 + */ +int be_read_int_1(FILE *fp, uint1 *i1) +{ + if (fread(i1, sizeof(uint1), 1, fp) != 1) return (0); + return (1); +} + + +/* + * Read a big-endian int2 + */ +int be_read_int_2(FILE *fp, uint2 *i2) +{ + uint2 i; + + if (fread(&i, 2, 1, fp) != 1) return (0); + *i2 = be_int2(i); + + return (1); +} + + +/* + * Read a big-endian int4 + */ +int be_read_int_4(FILE *fp, uint4 *i4) +{ + uint4 i; + + if (fread(&i, 4, 1, fp) != 1) return (0); + *i4 = be_int4(i); + + return (1); +} + + +/* + * Read a big-endian int8 + */ +int be_read_int_8(FILE *fp, uint8 *i8) +{ + uint8 i; + + if (fread(&i, 8, 1, fp) != 1) return (0); + *i8 = be_int8(i); + + return (1); +} + + + + + +/**********************************************************************/ +/* IO for little-endian files */ +/**********************************************************************/ + +/* + * Write a little-endian int1 + */ +int le_write_int_1(FILE *fp, uint1 *i1) +{ + if (fwrite(i1, sizeof(uint1), 1, fp) != 1) return (0); + return (1); +} + + +/* + * Write a little-endian int2 + */ +int le_write_int_2(FILE *fp, uint2 *i2) +{ + uint2 i = le_int2(*i2); + + if (fwrite(&i, 2, 1, fp) != 1) return (0); + + return (1); +} + + +/* + * Write a little-endian int4 + */ +int le_write_int_4(FILE *fp, uint4 *i4) +{ + uint4 i = le_int4(*i4); + + if (fwrite(&i, 4, 1, fp) != 1) return (0); + + return (1); +} + + +/* + * Write a little-endian int8 + */ +int le_write_int_8(FILE *fp, uint8 *i8) +{ + uint8 i = le_int8(*i8); + + if (fwrite(&i, 8, 1, fp) != 1) return (0); + + return (1); +} + + +/* + * Read a little-endian int1 + */ +int le_read_int_1(FILE *fp, uint1 *i1) +{ + if (fread(i1, sizeof(uint1), 1, fp) != 1) return (0); + return (1); +} + + +/* + * Read a little-endian int2 + */ +int le_read_int_2(FILE *fp, uint2 *i2) +{ + uint2 i; + + if (fread(&i, 2, 1, fp) != 1) return (0); + *i2 = le_int2(i); + + return (1); +} + +/* + * Read a little-endian int4 + */ +int le_read_int_4(FILE *fp, uint4 *i4) +{ + uint4 i; + + if (fread(&i, 4, 1, fp) != 1) return (0); + *i4 = le_int4(i); + + return (1); +} + + +/* + * Read a little-endian int8 + */ +int le_read_int_8(FILE *fp, uint8 *i8) +{ + uint8 i; + + if (fread(&i, 8, 1, fp) != 1) return (0); + *i8 = le_int8(i); + + return (1); +}