2017-06-05 02:02:04 +02:00
|
|
|
/*
|
2019-05-03 21:06:10 +02:00
|
|
|
* This file is part of Luma3DS.
|
2019-02-25 02:04:32 +01:00
|
|
|
* Copyright (C) 2016-2019 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>
|
|
|
|
|
|
|
|
#define SYNC_ERROR ENODEV
|
|
|
|
|
2017-06-15 17:38:45 +02:00
|
|
|
extern Handle SOCU_handle;
|
|
|
|
extern Handle socMemhandle;
|
|
|
|
|
|
|
|
extern bool miniSocEnabled;
|
2017-06-05 02:02:04 +02:00
|
|
|
|
|
|
|
Result miniSocInit();
|
|
|
|
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);
|
|
|
|
|
|
|
|
ssize_t soc_recv(int sockfd, void *buf, size_t len, int flags);
|
|
|
|
ssize_t soc_send(int sockfd, const void *buf, size_t len, int flags);
|
|
|
|
|
|
|
|
// actually provided by ctrulib
|
|
|
|
ssize_t soc_recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);
|
|
|
|
ssize_t soc_sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen);
|