mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-15 17:02:53 +08:00
138 lines
3.7 KiB
C
138 lines
3.7 KiB
C
#include "PikaPlatform_socket.h"
|
|
/*
|
|
The functinos start with PIKA_WEAK are weak functions,
|
|
you need to override them in your platform.
|
|
*/
|
|
|
|
PIKA_WEAK int __platform_socket(int __domain, int __type, int __protocol) {
|
|
#if defined(__linux__) || PIKA_LWIP_ENABLE
|
|
return socket(__domain, __type, __protocol);
|
|
#else
|
|
WEAK_FUNCTION_NEED_OVERRIDE_ERROR();
|
|
#endif
|
|
}
|
|
|
|
PIKA_WEAK int __platform_bind(int __fd,
|
|
const struct sockaddr* __addr,
|
|
socklen_t __addr_len) {
|
|
#if defined(__linux__) || PIKA_LWIP_ENABLE
|
|
return bind(__fd, __addr, __addr_len);
|
|
#else
|
|
WEAK_FUNCTION_NEED_OVERRIDE_ERROR();
|
|
#endif
|
|
}
|
|
|
|
PIKA_WEAK int __platform_listen(int __fd, int __n) {
|
|
#if defined(__linux__) || PIKA_LWIP_ENABLE
|
|
return listen(__fd, __n);
|
|
#else
|
|
WEAK_FUNCTION_NEED_OVERRIDE_ERROR();
|
|
#endif
|
|
}
|
|
|
|
PIKA_WEAK int __platform_accept(int __fd,
|
|
struct sockaddr* __addr,
|
|
socklen_t* __addr_len) {
|
|
#if defined(__linux__) || PIKA_LWIP_ENABLE
|
|
return accept(__fd, __addr, __addr_len);
|
|
#else
|
|
WEAK_FUNCTION_NEED_OVERRIDE_ERROR();
|
|
#endif
|
|
}
|
|
|
|
PIKA_WEAK int __platform_connect(int __fd,
|
|
const struct sockaddr* __addr,
|
|
socklen_t __addr_len) {
|
|
#if defined(__linux__) || PIKA_LWIP_ENABLE
|
|
return connect(__fd, __addr, __addr_len);
|
|
#else
|
|
WEAK_FUNCTION_NEED_OVERRIDE_ERROR();
|
|
#endif
|
|
}
|
|
|
|
PIKA_WEAK int __platform_send(int __fd,
|
|
const void* __buf,
|
|
size_t __n,
|
|
int __flags) {
|
|
#if defined(__linux__) || PIKA_LWIP_ENABLE
|
|
return send(__fd, __buf, __n, __flags);
|
|
#else
|
|
WEAK_FUNCTION_NEED_OVERRIDE_ERROR();
|
|
#endif
|
|
}
|
|
|
|
PIKA_WEAK int __platform_recv(int __fd, void* __buf, size_t __n, int __flags) {
|
|
#if defined(__linux__) || PIKA_LWIP_ENABLE
|
|
return recv(__fd, __buf, __n, __flags);
|
|
#else
|
|
WEAK_FUNCTION_NEED_OVERRIDE_ERROR();
|
|
#endif
|
|
}
|
|
|
|
/* gethostname */
|
|
PIKA_WEAK int __platform_gethostname(char* __name, size_t __len) {
|
|
#if defined(__linux__)
|
|
return gethostname(__name, __len);
|
|
#else
|
|
WEAK_FUNCTION_NEED_OVERRIDE_ERROR();
|
|
#endif
|
|
}
|
|
|
|
PIKA_WEAK int __platform_getaddrinfo(const char* __name,
|
|
const char* __service,
|
|
const struct addrinfo* __req,
|
|
struct addrinfo** __pai) {
|
|
#if defined(__linux__) || PIKA_LWIP_ENABLE
|
|
return getaddrinfo(__name, __service, __req, __pai);
|
|
#else
|
|
WEAK_FUNCTION_NEED_OVERRIDE_ERROR();
|
|
#endif
|
|
}
|
|
|
|
PIKA_WEAK void __platform_freeaddrinfo(struct addrinfo* __ai) {
|
|
#if defined(__linux__) || PIKA_LWIP_ENABLE
|
|
freeaddrinfo(__ai);
|
|
#else
|
|
WEAK_FUNCTION_NEED_OVERRIDE_ERROR();
|
|
#endif
|
|
}
|
|
|
|
PIKA_WEAK int __platform_setsockopt(int __fd,
|
|
int __level,
|
|
int __optname,
|
|
const void* __optval,
|
|
socklen_t __optlen) {
|
|
#if defined(__linux__) || PIKA_LWIP_ENABLE
|
|
return setsockopt(__fd, __level, __optname, __optval, __optlen);
|
|
#else
|
|
WEAK_FUNCTION_NEED_OVERRIDE_ERROR();
|
|
#endif
|
|
}
|
|
|
|
PIKA_WEAK int __platform_fcntl(int fd, int cmd, long arg) {
|
|
#ifdef __linux__
|
|
return fcntl(fd, cmd, arg);
|
|
#else
|
|
WEAK_FUNCTION_NEED_OVERRIDE_ERROR();
|
|
#endif
|
|
}
|
|
|
|
/* os file API */
|
|
PIKA_WEAK int __platform_close(int __fd) {
|
|
#ifdef __linux__
|
|
return close(__fd);
|
|
#elif PIKA_FREERTOS_ENABLE
|
|
return closesocket(__fd);
|
|
#else
|
|
WEAK_FUNCTION_NEED_OVERRIDE_ERROR();
|
|
#endif
|
|
}
|
|
|
|
PIKA_WEAK int __platform_write(int __fd, const void* __buf, size_t __nbyte) {
|
|
#if defined(__linux__) || PIKA_LWIP_ENABLE
|
|
return write(__fd, __buf, __nbyte);
|
|
#else
|
|
WEAK_FUNCTION_NEED_OVERRIDE_ERROR();
|
|
#endif
|
|
}
|