2017-06-05 02:02:04 +02:00
|
|
|
/*
|
2019-05-03 21:06:10 +02:00
|
|
|
* This file is part of Luma3DS.
|
2020-04-25 14:26:21 +02:00
|
|
|
* Copyright (C) 2016-2020 Aurora Wright, TuxSH
|
2017-06-05 02:02:04 +02:00
|
|
|
*
|
2019-05-03 21:06:10 +02:00
|
|
|
* SPDX-License-Identifier: (MIT OR GPL-2.0-or-later)
|
2017-06-05 02:02:04 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <sys/socket.h>
|
|
|
|
#include <3ds/types.h>
|
|
|
|
#include <3ds/svc.h>
|
|
|
|
#include <3ds/srv.h>
|
|
|
|
#include <3ds/services/soc.h>
|
|
|
|
#include <poll.h>
|
|
|
|
|
|
|
|
#define _REENT_ONLY
|
|
|
|
#include <errno.h>
|
|
|
|
|
2020-07-11 22:39:36 +02:00
|
|
|
#define ROSALINA_PREVENT_DISCONNECT (*(volatile bool*)0x1FF81108)
|
|
|
|
|
2017-06-05 02:02:04 +02:00
|
|
|
#define SYNC_ERROR ENODEV
|
2017-06-15 17:38:45 +02:00
|
|
|
extern bool miniSocEnabled;
|
2017-06-05 02:02:04 +02:00
|
|
|
|
2020-04-28 02:31:29 +02:00
|
|
|
Result miniSocInit(void);
|
|
|
|
Result miniSocExitDirect(void);
|
2017-06-05 02:02:04 +02:00
|
|
|
Result miniSocExit(void);
|
|
|
|
|
|
|
|
s32 _net_convert_error(s32 sock_retval);
|
|
|
|
|
|
|
|
int socSocket(int domain, int type, int protocol);
|
|
|
|
int socBind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
|
|
|
|
int socListen(int sockfd, int max_connections);
|
|
|
|
int socAccept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
|
2019-06-03 00:43:44 +02:00
|
|
|
int socConnect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
|
2017-06-05 02:02:04 +02:00
|
|
|
int socPoll(struct pollfd *fds, nfds_t nfds, int timeout);
|
|
|
|
int socSetsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
|
|
|
|
int socClose(int sockfd);
|
2020-04-26 13:07:17 +02:00
|
|
|
long socGethostid(void);
|
2017-06-05 02:02:04 +02:00
|
|
|
|
2020-04-26 13:07:17 +02:00
|
|
|
ssize_t socRecvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);
|
|
|
|
ssize_t socSendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen);
|
2017-06-05 02:02:04 +02:00
|
|
|
|
2020-04-26 13:07:17 +02:00
|
|
|
static inline ssize_t socRecv(int sockfd, void *buf, size_t len, int flags)
|
|
|
|
{
|
|
|
|
return socRecvfrom(sockfd, buf, len, flags, NULL, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline ssize_t socSend(int sockfd, const void *buf, size_t len, int flags)
|
|
|
|
{
|
|
|
|
return socSendto(sockfd, buf, len, flags, NULL, 0);
|
|
|
|
}
|