lokinet/llarp/win32/win32_up.h
2019-01-11 01:22:21 +00:00

69 lines
1.3 KiB
C

#ifndef _UP_H_
#define _UP_H_
#ifdef __cplusplus
extern "C"
{
#endif
#include <stdlib.h>
#include <stddef.h>
#include <stdint.h>
#define UPOLL_CTL_ADD 1
#define UPOLL_CTL_DEL 2
#define UPOLL_CTL_MOD 3
#define UPOLLIN 0x01
#define UPOLLOUT 0x02
#define UPOLLERR 0x04
#define UPOLLET 0x08
typedef struct upoll upoll_t;
typedef union upoll_data {
void* ptr;
intptr_t fd;
uint32_t u32;
uint64_t u64;
} upoll_data_t;
typedef struct upoll_event
{
uint32_t events;
upoll_data_t data;
} upoll_event_t;
upoll_t*
upoll_create(uint32_t size);
int
upoll_ctl(upoll_t* upq, int op, intptr_t fd, upoll_event_t* event);
int
upoll_wait(upoll_t* upq, upoll_event_t* events, int maxevents, int timeout);
void
upoll_destroy(upoll_t* upq);
intptr_t
usocket(int domain, int type, int proto);
intptr_t
uaccept(intptr_t sock);
int
ubind(intptr_t sock, const char* name, const char* serv);
int
ulisten(intptr_t sock, int backlog);
int
uconnect(intptr_t sock, const char* name, const char* serv);
int
uclose(intptr_t sock);
/* TCP sockets */
int
uread(intptr_t fd, char* buf, size_t len);
int
uwrite(intptr_t fd, const char* buf, size_t len);
int
usocketpair(intptr_t socks[2], int async);
#ifdef __cplusplus
}
#endif
#endif /* _UP_H_ */