mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-10-30 12:11:15 -06:00
avrdude: Compilation on Windows/MSVC
This commit is contained in:
parent
68a570221b
commit
07817c8ee5
22 changed files with 2385 additions and 732 deletions
44
xs/src/avrdude/windows/unistd.cpp
Normal file
44
xs/src/avrdude/windows/unistd.cpp
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
#include "unistd.h"
|
||||
|
||||
#include <cstdint>
|
||||
#include <chrono>
|
||||
#include <thread>
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
|
||||
extern "C" {
|
||||
|
||||
|
||||
int usleep(unsigned usec)
|
||||
{
|
||||
std::this_thread::sleep_for(std::chrono::microseconds(usec));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// SO: https://stackoverflow.com/questions/10905892/equivalent-of-gettimeday-for-windows
|
||||
int gettimeofday(struct timeval *tp, struct timezone *tzp)
|
||||
{
|
||||
// Note: some broken versions only have 8 trailing zero's, the correct epoch has 9 trailing zero's
|
||||
// This magic number is the number of 100 nanosecond intervals since January 1, 1601 (UTC)
|
||||
// until 00:00:00 January 1, 1970
|
||||
static const std::uint64_t EPOCH = ((std::uint64_t) 116444736000000000ULL);
|
||||
|
||||
SYSTEMTIME system_time;
|
||||
FILETIME file_time;
|
||||
std::uint64_t time;
|
||||
|
||||
GetSystemTime(&system_time);
|
||||
SystemTimeToFileTime(&system_time, &file_time);
|
||||
time = ((std::uint64_t)file_time.dwLowDateTime);
|
||||
time += ((std::uint64_t)file_time.dwHighDateTime) << 32;
|
||||
|
||||
tp->tv_sec = (long)((time - EPOCH) / 10000000L);
|
||||
tp->tv_usec = (long)(system_time.wMilliseconds * 1000);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue