Initial work on porting lcore to delphi 2010
[lcore.git] / unixstuff.inc
index f8c73967a7cd99f946929d96833632a7104afc6c..f5de6d4056b20c14e80d58b2c7c0dbde543f5958 100755 (executable)
@@ -8,6 +8,21 @@
       linux.dup(original,result);\r
     end;\r
     {$define gettimeofdaysec := gettimeofday}\r
       linux.dup(original,result);\r
     end;\r
     {$define gettimeofdaysec := gettimeofday}\r
+    const\r
+      IPPROTO_UDP=17;\r
+      IPPROTO_ICMP=1;\r
+    function ntohs(invalue:word):word;inline;\r
+    var\r
+      invaluebytes : array[0..1] of byte absolute invalue;\r
+      resultbytes : array[0..1] of byte absolute result;\r
+    begin\r
+      {$ifdef endian_little}\r
+       resultbytes[0] := invaluebytes[1];\r
+       resultbytes[1] := invaluebytes[0];\r
+      {$else}\r
+       result := invalue;\r
+      {$endif}\r
+    end;  \r
   {$else}\r
     \r
     {$define sigprocmask := fpsigprocmask}\r
   {$else}\r
     \r
     {$define sigprocmask := fpsigprocmask}\r
          if (p=nil) or (p^=nil) then exit;\r
          fpexecv(p^,p);\r
        end;\r
          if (p=nil) or (p^=nil) then exit;\r
          fpexecv(p^,p);\r
        end;\r
+       function SendTo(Sock: LongInt; const Buf;BufLen: LongInt;Flags: LongInt;var Addr;AddrLen: LongInt):LongInt;\r
+       begin\r
+         result := fpsendto(sock,@buf,buflen,flags,@addr,addrlen);\r
+       end;\r
+       function RecvFrom(Sock: LongInt;var Buf;Buflen: LongInt;Flags: LongInt;var Addr;var addrlen: Longint):LongInt;\r
+       begin\r
+         result := fprecvfrom(sock,@buf,buflen,flags,@addr,@addrlen);\r
+       end;\r
+       {$define socket := fpsocket}\r
+       function Bind(Sock: LongInt;const Addr;AddrLen: LongInt):Boolean;\r
+       begin\r
+         result := fpbind(sock,@addr,addrlen) = 0;\r
+       end;\r
+       function SetSocketOptions(Sock: LongInt;Level: LongInt;OptName: LongInt;const OptVal;optlen: LongInt):LongInt;\r
+       begin\r
+         result := fpsetsockopt(sock,level,optname,@optval,optlen);\r
+       end;\r
+       function Connect(Sock: LongInt;const Addr;Addrlen: LongInt):Boolean;\r
+       begin\r
+         result := fpconnect(sock,@addr,addrlen) >= 0;\r
+       end;\r
+        function listen(Sock: LongInt;MaxConnect: LongInt):Boolean;\r
+        begin\r
+          result := fplisten(sock,maxconnect) = 0;\r
+        end; \r
+        function GetPeerName(Sock: LongInt; var Addr;var Addrlen: LongInt):LongInt;\r
+        begin\r
+          result := fpgetpeername(sock,@addr,@addrlen);\r
+        end;\r
+        function GetSocketName(Sock: LongInt; var Addr;var Addrlen: LongInt):LongInt;\r
+        begin\r
+          result := fpgetpeername(sock,@addr,@addrlen);\r
+        end;\r
+        function Accept(Sock: LongInt; var Addr; var Addrlen: LongInt):LongInt;\r
+        begin\r
+          result := fpaccept(sock,@addr,@addrlen);\r
+        end;\r
       {$endif}\r
     {$endif}\r
       {$endif}\r
     {$endif}\r
+    {$ifdef ver2_0}\r
+      const\r
+        IPPROTO_UDP=17;\r
+        IPPROTO_ICMP=1;\r
+    {$endif}\r
+    {$ifdef ver1_9}\r
+      const\r
+        IPPROTO_UDP=17;\r
+        IPPROTO_ICMP=1;\r
+      function ntohs(invalue:word):word;inline;\r
+      var\r
+        invaluebytes : array[0..1] of byte absolute invalue;\r
+       resultbytes : array[0..1] of byte absolute result;\r
+      begin\r
+        {$ifdef endian_little}\r
+         resultbytes[0] := invaluebytes[1];\r
+         resultbytes[1] := invaluebytes[0];\r
+       {$else}\r
+         result := invalue;\r
+       {$endif}\r
+      end;\r
+    {$endif}\r
     procedure gettimeofday(var tv:ttimeval);inline;\r
     begin\r
       fpgettimeofday(@tv,nil);    \r
     procedure gettimeofday(var tv:ttimeval);inline;\r
     begin\r
       fpgettimeofday(@tv,nil);    \r