On Sun, 12 Feb 2012, Jeff Epler wrote:

> Date: Sun, 12 Feb 2012 21:31:36 -0600
> From: Jeff Epler <jep...@unpythonic.net>
> Reply-To: EMC developers <emc-developers@lists.sourceforge.net>
> To: EMC developers <emc-developers@lists.sourceforge.net>
> Subject: Re: [Emc-developers] SSERIAL bug with stream type data with
>     datawidth=32
> 
> On Sun, Feb 12, 2012 at 06:29:49PM -0800, Peter C. Wallace wrote:
>>   147   case 0x06: // byte stream
>>   148     buff = *pin->u32_pin & ((1 << conf->DataLength) - 1);
>>   149     break;
>
> Hm, perhaps this is the correct replacement:
>    buff = *pin->u32_pin & (0xffffffffu >> (32 - conf->DataLength));
>
> I wrote the following program to verify the equivalence of this and the
> original-with-special-case for arguments of 1..32 inclusive:
>
>    #include <assert.h>
>    #include <stdint.h>
>
>    uint32_t f1(int n) {
>        if(n == 32) return 0xffffffffu;
>        return (1 << n) - 1;
>    }
>
>    uint32_t f2(int n) {
>        return 0xffffffffu >> (32 - n);
>    }
>
>    int main() {
>        int i;
>        for(i=1; i<32; i++) {
>            assert(f1(i) == f2(i));
>        }
>        return 0;
>    }
>
> this moves the "shift 32 bits" case to correspond to a DataLength of 0, which
> probably represents misconfiguration.
>
> Jeff

Thanks! Thats a lot more elegant than what I did...


>
> ------------------------------------------------------------------------------
> Try before you buy = See our experts in action!
> The most comprehensive online learning library for Microsoft developers
> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
> Metro Style Apps, more. Free future releases when you subscribe now!
> http://p.sf.net/sfu/learndevnow-dev2
> _______________________________________________
> Emc-developers mailing list
> Emc-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-developers
>

Peter Wallace
Mesa Electronics

(\__/)
(='.'=) This is Bunny. Copy and paste bunny into your
(")_(") signature to help him gain world domination.


------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to