I got an error while compiling universal.c with Visual Studio.  The compiler didn't like the following line:

    device_data_t devdata = {0};

in dowork().

I changed it to:

    device_data_t devdata;
    memchr(&devdata, 0, sizeof(devdata));

and now everything compiles cleanly. 

Thought you should know.