OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [ada/] [g-socthi-vms.ads] - Blame information for rev 706

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 706 jeremybenn
------------------------------------------------------------------------------
2
--                                                                          --
3
--                         GNAT COMPILER COMPONENTS                         --
4
--                                                                          --
5
--                    G N A T . S O C K E T S . T H I N                     --
6
--                                                                          --
7
--                                 S p e c                                  --
8
--                                                                          --
9
--                     Copyright (C) 2002-2010, AdaCore                     --
10
--                                                                          --
11
-- GNAT is free software;  you can  redistribute it  and/or modify it under --
12
-- terms of the  GNU General Public License as published  by the Free Soft- --
13
-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
14
-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
15
-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
16
-- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
17
--                                                                          --
18
-- As a special exception under Section 7 of GPL version 3, you are granted --
19
-- additional permissions described in the GCC Runtime Library Exception,   --
20
-- version 3.1, as published by the Free Software Foundation.               --
21
--                                                                          --
22
-- You should have received a copy of the GNU General Public License and    --
23
-- a copy of the GCC Runtime Library Exception along with this program;     --
24
-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
25
-- <http://www.gnu.org/licenses/>.                                          --
26
--                                                                          --
27
-- GNAT was originally developed  by the GNAT team at  New York University. --
28
-- Extensive contributions were provided by Ada Core Technologies Inc.      --
29
--                                                                          --
30
------------------------------------------------------------------------------
31
 
32
--  This package provides a target dependent thin interface to the sockets
33
--  layer for use by the GNAT.Sockets package (g-socket.ads). This package
34
--  should not be directly with'ed by an applications program.
35
 
36
--  This is the Alpha/VMS version
37
 
38
with Interfaces.C.Strings;
39
 
40
with GNAT.OS_Lib;
41
with GNAT.Sockets.Thin_Common;
42
 
43
with System;
44
with System.CRTL;
45
 
46
package GNAT.Sockets.Thin is
47
 
48
   --  ??? more comments needed ???
49
 
50
   use Thin_Common;
51
 
52
   package C renames Interfaces.C;
53
 
54
   use type System.CRTL.ssize_t;
55
 
56
   function Socket_Errno return Integer renames GNAT.OS_Lib.Errno;
57
   --  Returns last socket error number
58
 
59
   procedure Set_Socket_Errno (Errno : Integer) renames GNAT.OS_Lib.Set_Errno;
60
   --  Set last socket error number
61
 
62
   function Socket_Error_Message (Errno : Integer) return C.Strings.chars_ptr;
63
   --  Returns the error message string for the error number Errno. If Errno is
64
   --  not known, returns "Unknown system error".
65
 
66
   function Host_Errno return Integer;
67
   pragma Import (C, Host_Errno, "__gnat_get_h_errno");
68
   --  Returns last host error number
69
 
70
   package Host_Error_Messages is
71
 
72
      function Host_Error_Message
73
        (H_Errno : Integer) return C.Strings.chars_ptr;
74
      --  Returns the error message string for the host error number H_Errno.
75
      --  If H_Errno is not known, returns "Unknown system error".
76
 
77
   end Host_Error_Messages;
78
 
79
   --------------------------------
80
   -- Standard library functions --
81
   --------------------------------
82
 
83
   function C_Accept
84
     (S       : C.int;
85
      Addr    : System.Address;
86
      Addrlen : not null access C.int) return C.int;
87
 
88
   function C_Bind
89
     (S       : C.int;
90
      Name    : System.Address;
91
      Namelen : C.int) return C.int;
92
 
93
   function C_Close
94
     (Fd : C.int) return C.int;
95
 
96
   function C_Connect
97
     (S       : C.int;
98
      Name    : System.Address;
99
      Namelen : C.int) return C.int;
100
 
101
   function C_Gethostname
102
     (Name    : System.Address;
103
      Namelen : C.int) return C.int;
104
 
105
   function C_Getpeername
106
     (S       : C.int;
107
      Name    : System.Address;
108
      Namelen : not null access C.int) return C.int;
109
 
110
   function C_Getsockname
111
     (S       : C.int;
112
      Name    : System.Address;
113
      Namelen : not null access C.int) return C.int;
114
 
115
   function C_Getsockopt
116
     (S       : C.int;
117
      Level   : C.int;
118
      Optname : C.int;
119
      Optval  : System.Address;
120
      Optlen  : not null access C.int) return C.int;
121
 
122
   function Socket_Ioctl
123
     (S   : C.int;
124
      Req : C.int;
125
      Arg : access C.int) return C.int;
126
 
127
   function C_Listen
128
     (S       : C.int;
129
      Backlog : C.int) return C.int;
130
 
131
   function C_Recv
132
     (S     : C.int;
133
      Msg   : System.Address;
134
      Len   : C.int;
135
      Flags : C.int) return C.int;
136
 
137
   function C_Recvfrom
138
     (S       : C.int;
139
      Msg     : System.Address;
140
      Len     : C.int;
141
      Flags   : C.int;
142
      From    : System.Address;
143
      Fromlen : not null access C.int) return C.int;
144
 
145
   function C_Recvmsg
146
     (S     : C.int;
147
      Msg   : System.Address;
148
      Flags : C.int) return System.CRTL.ssize_t;
149
 
150
   function C_Select
151
     (Nfds      : C.int;
152
      Readfds   : access Fd_Set;
153
      Writefds  : access Fd_Set;
154
      Exceptfds : access Fd_Set;
155
      Timeout   : Timeval_Access) return C.int;
156
 
157
   function C_Sendmsg
158
     (S     : C.int;
159
      Msg   : System.Address;
160
      Flags : C.int) return System.CRTL.ssize_t;
161
 
162
   function C_Sendto
163
     (S     : C.int;
164
      Msg   : System.Address;
165
      Len   : C.int;
166
      Flags : C.int;
167
      To    : System.Address;
168
      Tolen : C.int) return C.int;
169
 
170
   function C_Setsockopt
171
     (S       : C.int;
172
      Level   : C.int;
173
      Optname : C.int;
174
      Optval  : System.Address;
175
      Optlen  : C.int) return C.int;
176
 
177
   function C_Shutdown
178
     (S   : C.int;
179
      How : C.int) return C.int;
180
 
181
   function C_Socket
182
     (Domain   : C.int;
183
      Typ      : C.int;
184
      Protocol : C.int) return C.int;
185
 
186
   function C_System
187
     (Command : System.Address) return C.int;
188
 
189
   -------------------------------------------------------
190
   -- Signalling file descriptors for selector abortion --
191
   -------------------------------------------------------
192
 
193
   package Signalling_Fds is
194
 
195
      function Create (Fds : not null access Fd_Pair) return C.int;
196
      pragma Convention (C, Create);
197
      --  Create a pair of connected descriptors suitable for use with C_Select
198
      --  (used for signalling in Selector objects).
199
 
200
      function Read (Rsig : C.int) return C.int;
201
      pragma Convention (C, Read);
202
      --  Read one byte of data from rsig, the read end of a pair of signalling
203
      --  fds created by Create_Signalling_Fds.
204
 
205
      function Write (Wsig : C.int) return C.int;
206
      pragma Convention (C, Write);
207
      --  Write one byte of data to wsig, the write end of a pair of signalling
208
      --  fds created by Create_Signalling_Fds.
209
 
210
      procedure Close (Sig : C.int);
211
      pragma Convention (C, Close);
212
      --  Close one end of a pair of signalling fds (ignoring any error)
213
 
214
   end Signalling_Fds;
215
 
216
   -------------------------------------------
217
   -- Nonreentrant network databases access --
218
   -------------------------------------------
219
 
220
   function Nonreentrant_Gethostbyname
221
     (Name : C.char_array) return Hostent_Access;
222
 
223
   function Nonreentrant_Gethostbyaddr
224
     (Addr      : System.Address;
225
      Addr_Len  : C.int;
226
      Addr_Type : C.int) return Hostent_Access;
227
 
228
   function Nonreentrant_Getservbyname
229
     (Name  : C.char_array;
230
      Proto : C.char_array) return Servent_Access;
231
 
232
   function Nonreentrant_Getservbyport
233
     (Port  : C.int;
234
      Proto : C.char_array) return Servent_Access;
235
 
236
   procedure Initialize;
237
   procedure Finalize;
238
 
239
private
240
 
241
   pragma Import (C, C_Bind,          "DECC$BIND");
242
   pragma Import (C, C_Close,         "DECC$CLOSE");
243
   pragma Import (C, C_Gethostname,   "DECC$GETHOSTNAME");
244
   pragma Import (C, C_Getpeername,   "DECC$GETPEERNAME");
245
   pragma Import (C, C_Getsockname,   "DECC$GETSOCKNAME");
246
   pragma Import (C, C_Getsockopt,    "DECC$GETSOCKOPT");
247
   pragma Import (C, C_Listen,        "DECC$LISTEN");
248
   pragma Import (C, C_Select,        "DECC$SELECT");
249
   pragma Import (C, C_Setsockopt,    "DECC$SETSOCKOPT");
250
   pragma Import (C, C_Shutdown,      "DECC$SHUTDOWN");
251
   pragma Import (C, C_System,        "DECC$SYSTEM");
252
 
253
   pragma Import (C, Nonreentrant_Gethostbyname, "DECC$GETHOSTBYNAME");
254
   pragma Import (C, Nonreentrant_Gethostbyaddr, "DECC$GETHOSTBYADDR");
255
   pragma Import (C, Nonreentrant_Getservbyname, "DECC$GETSERVBYNAME");
256
   pragma Import (C, Nonreentrant_Getservbyport, "DECC$GETSERVBYPORT");
257
 
258
end GNAT.Sockets.Thin;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.