tmake flate crc32 work when ulong is 64 bits - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 9a054520852368c0a0d179bedfce60776587a645
 (DIR) parent 28afa898ee3281afde739c9a09e59264680756ae
 (HTM) Author: Russ Cox <rsc@swtch.com>
       Date:   Sun,  7 Feb 2010 16:51:28 -0800
       
       make flate crc32 work when ulong is 64 bits
       
       R=, rsc
       CC=
       http://codereview.appspot.com/203061
       
       Diffstat:
         M include/flate.h                     |       6 +++---
         M include/u.h                         |       7 +++++++
         M src/cmd/jpg/readpng.c               |       6 +++---
         M src/cmd/jpg/writepng.c              |       6 +++---
         M src/cmd/scat/sky.h                  |       1 -
         M src/libflate/adler.c                |       6 +++---
         M src/libflate/crc.c                  |      12 ++++++------
       
       7 files changed, 25 insertions(+), 19 deletions(-)
       ---
 (DIR) diff --git a/include/flate.h b/include/flate.h
       t@@ -42,10 +42,10 @@ int        deflatezlibblock(uchar *dst, int dsize, uchar *src, int ssize, int level, in
        
        char        *flateerr(int err);
        
       -ulong        *mkcrctab(ulong);
       -ulong        blockcrc(ulong *tab, ulong crc, void *buf, int n);
       +uint32        *mkcrctab(uint32);
       +uint32        blockcrc(uint32 *tab, uint32 crc, void *buf, int n);
        
       -ulong        adler32(ulong adler, void *buf, int n);
       +uint32        adler32(uint32 adler, void *buf, int n);
        #if defined(__cplusplus)
        }
        #endif
 (DIR) diff --git a/include/u.h b/include/u.h
       t@@ -157,6 +157,13 @@ typedef intptr_t intptr;
        typedef uint32_t u32int;
        typedef int32_t s32int;
        
       +typedef u32int uint32;
       +typedef s32int int32;
       +typedef u16int uint16;
       +typedef s16int int16;
       +typedef u64int uint64;
       +typedef s64int int64;
       +
        #undef _NEEDUCHAR
        #undef _NEEDUSHORT
        #undef _NEEDUINT
 (DIR) diff --git a/src/cmd/jpg/readpng.c b/src/cmd/jpg/readpng.c
       t@@ -44,11 +44,11 @@ typedef struct ZlibR{
                ZlibW *w;
        } ZlibR;
        
       -static ulong *crctab;
       +static uint32 *crctab;
        static uchar PNGmagic[] = {137,80,78,71,13,10,26,10};
        static char memerr[] = "ReadPNG: malloc failed: %r";
        
       -static ulong
       +static uint32
        get4(uchar *a)
        {
                return (a[0]<<24) | (a[1]<<16) | (a[2]<<8) | a[3];
       t@@ -87,7 +87,7 @@ static int
        getchunk(Biobuf *b, char *type, uchar *d, int m)
        {
                uchar buf[8];
       -        ulong crc = 0, crc2;
       +        uint32 crc = 0, crc2;
                int n, nr;
        
                if(Bread(b, buf, 8) != 8)
 (DIR) diff --git a/src/cmd/jpg/writepng.c b/src/cmd/jpg/writepng.c
       t@@ -31,11 +31,11 @@ typedef struct ZlibW{
                uchar *e;        /* past end of buf */
        } ZlibW;
        
       -static ulong *crctab;
       +static uint32 *crctab;
        static uchar PNGmagic[] = {137,80,78,71,13,10,26,10};
        
        static void
       -put4(uchar *a, ulong v)
       +put4(uchar *a, uint32 v)
        {
                a[0] = v>>24;
                a[1] = v>>16;
       t@@ -47,7 +47,7 @@ static void
        chunk(Biobuf *bo, char *type, uchar *d, int n)
        {
                uchar buf[4];
       -        ulong crc = 0;
       +        uint32 crc = 0;
        
                if(strlen(type) != 4)
                        return;
 (DIR) diff --git a/src/cmd/scat/sky.h b/src/cmd/scat/sky.h
       t@@ -1,4 +1,3 @@
       -typedef s32int int32;
        
        #define DIR        "#9/sky"
        /*
 (DIR) diff --git a/src/libflate/adler.c b/src/libflate/adler.c
       t@@ -8,10 +8,10 @@ enum
                ADLERBASE        = 65521 /* largest prime smaller than 65536 */
        };
        
       -ulong
       -adler32(ulong adler, void *vbuf, int n)
       +uint32
       +adler32(uint32 adler, void *vbuf, int n)
        {
       -        ulong s1, s2;
       +        uint32 s1, s2;
                uchar *buf, *ebuf;
                int m;
        
 (DIR) diff --git a/src/libflate/crc.c b/src/libflate/crc.c
       t@@ -2,11 +2,11 @@
        #include <libc.h>
        #include <flate.h>
        
       -ulong*
       -mkcrctab(ulong poly)
       +uint32*
       +mkcrctab(uint32 poly)
        {
       -        ulong *crctab;
       -        ulong crc;
       +        uint32 *crctab;
       +        uint32 crc;
                int i, j;
        
                crctab = malloc(256 * sizeof(ulong));
       t@@ -26,8 +26,8 @@ mkcrctab(ulong poly)
                return crctab;
        }
        
       -ulong
       -blockcrc(ulong *crctab, ulong crc, void *vbuf, int n)
       +uint32
       +blockcrc(uint32 *crctab, uint32 crc, void *vbuf, int n)
        {
                uchar *buf, *ebuf;