picotcp: add msvc-specific arch include. Win: never stop net stack
This commit is contained in:
parent
843c912d86
commit
1314a1551d
|
@ -0,0 +1,53 @@
|
|||
#ifndef PICO_SUPPORT_MSVC
|
||||
#define PICO_SUPPORT_MSVC
|
||||
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <windows.h>
|
||||
|
||||
#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS)
|
||||
#define DELTA_EPOCH_IN_MICROSECS 11644473600000000Ui64
|
||||
#else
|
||||
#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL
|
||||
#endif
|
||||
|
||||
#define dbg printf
|
||||
|
||||
#define stack_fill_pattern(...) do {} while(0)
|
||||
#define stack_count_free_words(...) do {} while(0)
|
||||
#define stack_get_free_words() (0)
|
||||
|
||||
#define pico_zalloc(x) calloc(x, 1)
|
||||
#define pico_free(x) free(x)
|
||||
|
||||
static inline uint32_t PICO_TIME_MS(void)
|
||||
{
|
||||
FILETIME ft;
|
||||
unsigned __int64 tmpres = 0;
|
||||
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
|
||||
tmpres |= ft.dwHighDateTime;
|
||||
tmpres <<= 32;
|
||||
tmpres |= ft.dwLowDateTime;
|
||||
|
||||
tmpres /= 10; /*convert into microseconds*/
|
||||
/*converting file time to unix epoch*/
|
||||
tmpres -= DELTA_EPOCH_IN_MICROSECS;
|
||||
|
||||
return (uint32_t)(tmpres / 1000); // milliseconds
|
||||
}
|
||||
|
||||
static inline uint32_t PICO_TIME(void)
|
||||
{
|
||||
return PICO_TIME_MS() / 1000;
|
||||
}
|
||||
|
||||
static inline void PICO_IDLE(void)
|
||||
{
|
||||
// Not used anyway usleep(5000);
|
||||
}
|
||||
|
||||
#endif /* PICO_SUPPORT_MSVC */
|
||||
|
||||
|
|
@ -8,9 +8,7 @@
|
|||
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#ifndef _MSC_VER
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include <sys/time.h>
|
||||
|
||||
/*
|
||||
|
@ -132,7 +130,7 @@ extern void *pico_thread_create(void *(*routine)(void *), void *arg);
|
|||
|
||||
static inline void PICO_IDLE(void)
|
||||
{
|
||||
// Not used anyway usleep(5000);
|
||||
usleep(5000);
|
||||
}
|
||||
|
||||
#endif /* PICO_SUPPORT_POSIX */
|
||||
|
|
|
@ -240,7 +240,8 @@ static inline uint64_t long_long_be(uint64_t le)
|
|||
# include "arch/pico_generic_gcc.h"
|
||||
#elif defined __KERNEL__
|
||||
# include "arch/pico_linux.h"
|
||||
/* #elif defined ... */
|
||||
#elif defined _MSC_VER
|
||||
# include "arch/pico_msvc.h"
|
||||
#else
|
||||
# include "arch/pico_posix.h"
|
||||
#endif
|
||||
|
|
|
@ -114,6 +114,12 @@ bool start_pico()
|
|||
0
|
||||
};
|
||||
|
||||
#ifdef _WIN32
|
||||
// No de-init on Windows yet
|
||||
if (pico_stack_inited)
|
||||
return;
|
||||
#endif
|
||||
|
||||
if (!pico_stack_inited)
|
||||
{
|
||||
pico_stack_init();
|
||||
|
@ -310,6 +316,7 @@ bool start_pico()
|
|||
|
||||
void stop_pico()
|
||||
{
|
||||
#ifndef _WIN32
|
||||
if (ppp)
|
||||
{
|
||||
pico_ppp_destroy(ppp);
|
||||
|
@ -325,4 +332,5 @@ void stop_pico()
|
|||
pico_device_destroy(tun);
|
||||
tun = NULL;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue