summaryrefslogtreecommitdiff
path: root/lib/functypes.h
blob: 075c02e54f64f78fb9024dde3f44e7f91917174f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#ifndef HEADER_CURL_FUNCTYPES_H
#define HEADER_CURL_FUNCTYPES_H
/***************************************************************************
 *                                  _   _ ____  _
 *  Project                     ___| | | |  _ \| |
 *                             / __| | | | |_) | |
 *                            | (__| |_| |  _ <| |___
 *                             \___|\___/|_| \_\_____|
 *
 * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
 *
 * This software is licensed as described in the file COPYING, which
 * you should have received as part of this distribution. The terms
 * are also available at https://curl.se/docs/copyright.html.
 *
 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 * copies of the Software, and permit persons to whom the Software is
 * furnished to do so, under the terms of the COPYING file.
 *
 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
 * KIND, either express or implied.
 *
 * SPDX-License-Identifier: curl
 *
 ***************************************************************************/

#include "curl_setup.h"

/* defaults:

   ssize_t recv(int, void *, size_t, int);
   ssize_t send(int, const void *, size_t, int);

   If other argument or return types are needed:

   1. For systems that run configure or cmake, the alternatives are provided
      here.
   2. For systems with config-*.h files, define them there.
*/

#ifdef WIN32
/* int recv(SOCKET, char *, int, int) */
#define RECV_TYPE_ARG1 SOCKET
#define RECV_TYPE_ARG2 char *
#define RECV_TYPE_ARG3 int
#define RECV_TYPE_RETV int

/* int send(SOCKET, const char *, int, int); */
#define SEND_TYPE_ARG1 SOCKET
#define SEND_TYPE_ARG2 char *
#define SEND_TYPE_ARG3 int
#define SEND_TYPE_RETV int

#elif defined(__AMIGA__) /* Any AmigaOS flavour */

/* long recv(long, char *, long, long); */
#define RECV_TYPE_ARG1 long
#define RECV_TYPE_ARG2 char *
#define RECV_TYPE_ARG3 long
#define RECV_TYPE_ARG4 long
#define RECV_TYPE_RETV long

/* int send(int, const char *, int, int); */
#define SEND_TYPE_ARG1 int
#define SEND_TYPE_ARG2 char *
#define SEND_TYPE_ARG3 int
#define SEND_TYPE_RETV int
#endif


#ifndef RECV_TYPE_ARG1
#define RECV_TYPE_ARG1 int
#endif

#ifndef RECV_TYPE_ARG2
#define RECV_TYPE_ARG2 void *
#endif

#ifndef RECV_TYPE_ARG3
#define RECV_TYPE_ARG3 size_t
#endif

#ifndef RECV_TYPE_ARG4
#define RECV_TYPE_ARG4 int
#endif

#ifndef RECV_TYPE_RETV
#define RECV_TYPE_RETV ssize_t
#endif

#ifndef SEND_QUAL_ARG2
#define SEND_QUAL_ARG2 const
#endif

#ifndef SEND_TYPE_ARG1
#define SEND_TYPE_ARG1 int
#endif

#ifndef SEND_TYPE_ARG2
#define SEND_TYPE_ARG2 void *
#endif

#ifndef SEND_TYPE_ARG3
#define SEND_TYPE_ARG3 size_t
#endif

#ifndef SEND_TYPE_ARG4
#define SEND_TYPE_ARG4 int
#endif

#ifndef SEND_TYPE_RETV
#define SEND_TYPE_RETV ssize_t
#endif

#endif /* HEADER_CURL_FUNCTYPES_H */