~ubuntu-branches/ubuntu/dapper/fpc/dapper

« back to all changes in this revision

Viewing changes to rtl/freebsd/unixsock.inc

  • Committer: Bazaar Package Importer
  • Author(s): Carlos Laviola
  • Date: 2004-08-12 16:29:37 UTC
  • mfrom: (1.2.1 upstream) (2.1.1 warty)
  • Revision ID: james.westby@ubuntu.com-20040812162937-moo8ulvysp1ln771
Tags: 1.9.4-5
fp-compiler: needs ld, adding dependency on binutils.  (Closes: #265265)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
{  
 
2
   $Id: unixsock.inc,v 1.10 2004/03/16 18:03:37 marco Exp $
 
3
   This file is part of the Free Pascal run time library.
 
4
   (c) 2000-2003 by Marco van de Voort
 
5
   member of the Free Pascal development team.
 
6
 
 
7
   See the file COPYING.FPC, included in this distribution,
 
8
   for details about the copyright.
 
9
   
 
10
   socket call implementations for FreeBSD
 
11
 
 
12
   This program is distributed in the hope that it will be useful,
 
13
   but WITHOUT ANY WARRANTY;without even the implied warranty of
 
14
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
15
}
 
16
 
 
17
{******************************************************************************
 
18
                          Basic Socket Functions
 
19
******************************************************************************}
 
20
 
 
21
function  fpsocket (domain:cint; xtype:cint; protocol: cint):cint; 
 
22
Begin
 
23
  fpSocket:=Do_Syscall(syscall_nr_socket,Domain,xtype,Protocol);
 
24
  socketerror:=fpgeterrno;
 
25
End;
 
26
 
 
27
function  fpsend (s:cint; msg:pointer; len:size_t; flags:cint):ssize_t; 
 
28
begin
 
29
  fpSend:=do_syscall(syscall_nr_sendto,S,TSysParam(msg),Len,Flags,0,0);
 
30
  socketerror:=fpgeterrno;
 
31
end;
 
32
 
 
33
function  fpsendto (s:cint; msg:pointer; len:size_t; flags:cint; tox :psockaddr; tolen: tsocklen):ssize_t; 
 
34
begin
 
35
  fpSendto:=do_syscall(syscall_nr_sendto,S,TSysParam(msg),Len,Flags,TSysParam(tox),tolen);
 
36
  socketerror:=fpgeterrno;
 
37
end;
 
38
 
 
39
function  fprecv (s:cint; buf: pointer; len: size_t; flags:cint):ssize_t;
 
40
begin
 
41
  fpRecv:=do_syscall(syscall_nr_Recvfrom,S,tsysparam(buf),len,flags,0,0);
 
42
  socketerror:=fpgeterrno;
 
43
end;
 
44
 
 
45
function  fprecvfrom (s:cint; buf: pointer; len: size_t; flags: cint; from : psockaddr; fromlen : psocklen):ssize_t; 
 
46
begin
 
47
  fpRecvFrom:=do_syscall(syscall_nr_Recvfrom,S,TSysParam(buf),len,flags,TSysParam(from),TSysParam(fromlen));
 
48
  socketerror:=fpgeterrno;
 
49
end;
 
50
 
 
51
function  fpbind (s:cint; addrx : psockaddr; addrlen : tsocklen):cint; 
 
52
begin
 
53
  fpBind:=do_syscall(syscall_nr_Bind,S,TSysParam(addrx),addrlen);
 
54
  socketerror:=fpgeterrno;
 
55
end;
 
56
 
 
57
function  fplisten (s:cint; backlog : cint):cint;                          
 
58
begin
 
59
  fpListen:=do_syscall(syscall_nr_Listen,S,backlog);
 
60
  socketerror:=fpgeterrno;
 
61
end;
 
62
 
 
63
function  fpaccept (s:cint; addrx : psockaddr; addrlen : psocklen):cint; 
 
64
begin
 
65
  fpAccept:=do_syscall(syscall_nr_accept,S,TSysParam(addrx),TSysParam(addrlen));
 
66
  socketerror:=fpgeterrno;
 
67
end;
 
68
 
 
69
function  fpconnect (s:cint; name  : psockaddr; namelen : tsocklen):cint; 
 
70
begin
 
71
  fpConnect:=do_syscall(syscall_nr_connect,S,TSysParam(name),namelen);
 
72
  socketerror:=fpgeterrno;
 
73
end;
 
74
 
 
75
function  fpshutdown (s:cint; how:cint):cint; 
 
76
begin
 
77
  fpShutDown:=do_syscall(syscall_nr_shutdown,S,how);
 
78
  socketerror:=fpgeterrno;
 
79
end;
 
80
 
 
81
function  fpgetsockname (s:cint; name  : psockaddr; namelen : psocklen):cint; 
 
82
begin
 
83
  fpGetSockName:=do_syscall(syscall_nr_GetSockName,S,TSysParam(name),TSysParam(namelen));
 
84
  socketerror:=fpgeterrno;
 
85
end;
 
86
 
 
87
function  fpgetpeername (s:cint; name  : psockaddr; namelen : psocklen):cint; 
 
88
begin
 
89
  fpGetPeerName:=do_syscall(syscall_nr_GetPeerName,S,TSysParam(name),TSysParam(namelen));
 
90
  socketerror:=fpgeterrno;
 
91
end;
 
92
 
 
93
function  fpsetsockopt  (s:cint; level:cint; optname:cint; optval:pointer; optlen : tsocklen):cint;
 
94
begin
 
95
  fpSetSockOpt:=do_syscall(syscall_nr_SetSockOpt,S,optname,TSysParam(optval),optlen);
 
96
  socketerror:=fpgeterrno;
 
97
end;
 
98
 
 
99
function  fpgetsockopt  (s:cint; level:cint; optname:cint; optval:pointer; optlen : psocklen):cint; 
 
100
begin
 
101
  fpGetSockOpt:=do_syscall(syscall_nr_GetSockOpt,S,level,TSysParam(optname),TSysParam(optval),TSysParam(optlen));
 
102
  socketerror:=fpgeterrno;
 
103
end;
 
104
 
 
105
function  fpsocketpair (d:cint; xtype:cint; protocol:cint; sv:pcint):cint; 
 
106
 
 
107
begin
 
108
  fpSocketPair:=do_syscall(syscall_nr_SocketPair,d,xtype,protocol,TSysParam(sv));
 
109
  socketerror:=fpgeterrno;
 
110
end;
 
111
 
 
112
{
 
113
 $Log: unixsock.inc,v $
 
114
 Revision 1.10  2004/03/16 18:03:37  marco
 
115
  * first changes sockets units
 
116
 
 
117
 Revision 1.9  2004/01/03 12:18:29  marco
 
118
  * a lot of copyright notices and CVS logs added and fixed
 
119
 
 
120
 Revision 1.8  2003/09/15 07:09:58  marco
 
121
  * small fixes, round 1
 
122
 
 
123
 Revision 1.7  2003/03/23 17:47:15  armin
 
124
 * CloseSocket added
 
125
 
 
126
 Revision 1.6  2002/09/07 16:01:18  peter
 
127
   * old logs removed and tabs fixed
 
128
 
 
129
 Revision 1.5  2002/02/05 07:54:34  marco
 
130
  * Fixed typo
 
131
 
 
132
}