Getting time since Unix epoch on both Windows NT and *NIX systems
Using static file-scope variables 

static struct timeval lnm_current_time;
// ...
static FILETIME lnm_win32_filetime;


makes your code thread-unsafe: Two “simultaneous” invocations of your function from different threads access the same memory. (For other potential drawbacks of static file-scope variables see for example Are file-scope static variables in C as bad as extern global variables? on Software Engineering.)

And there is no reason to use static variables here. With function local variables 

uint64_t lnm_getus(void) {
    uint64_t us;
#if defined(__unix__) || defined(unix) || defined(__unix) || defined(__CYGWIN__)
    struct timeval lnm_current_time;
    gettimeofday(&amp;lnm_current_time, NULL);
    // ...
#elif defined(_WIN32) || defined(__WINDOWS__)
    FILETIME lnm_win32_filetime;
    GetSystemTimeAsFileTime(&amp;lnm_win32_filetime);
    // ...
#endif
    return us;
}


the variables are defined exactly where they are needed, which makes the code easier to read and to argue about, and avoids the threading problem.