source: rtems/c/src/lib/libbsp/i386/ts_386ex/tools/network_ada/adasockets/sockets-utils.adb @ d0fa0ef

Last change on this file since d0fa0ef was 1d4048b2, checked in by Joel Sherrill <joel.sherrill@…>, on 08/11/99 at 23:45:57

Patch from Tony R. Ambardar <tonya@…>:

I'm attaching a big patch for the ts_386ex BSP which adds and includes
the following:

1) Conversion to ELF format + minor code cleanups + documentation.

2) An Ada95 binding to FreeBSD sockets, based on Samuel Tardieu's

adasockets-0.1.3 package. This includes some sample applications.

3) Some Ada and C interfaces to add serial-port debugging to

programs. Comes with examples, too; the Ada one shows how
transparent adding the support can be. Note that Rosimildo sent me
the original C code.

The network stuff is not BSP specific, and could be added to your Ada
code collection. The debugging stuff is specific to the i386. Right
now, everything sits in my "tools" directory.

  • Property mode set to 100644
File size: 4.0 KB
Line 
1-----------------------------------------------------------------------------
2--                                                                         --
3--                         ADASOCKETS COMPONENTS                           --
4--                                                                         --
5--                       S O C K E T S . U T I L S                         --
6--                                                                         --
7--                                B o d y                                  --
8--                                                                         --
9--                        $ReleaseVersion: 0.1.3 $                         --
10--                                                                         --
11--  Copyright (C) 1998  École Nationale Supérieure des Télécommunications  --
12--                                                                         --
13--   AdaSockets is free software; you can  redistribute it and/or modify   --
14--   it  under terms of the GNU  General  Public License as published by   --
15--   the Free Software Foundation; either version 2, or (at your option)   --
16--   any later version.   AdaSockets is distributed  in the hope that it   --
17--   will be useful, but WITHOUT ANY  WARRANTY; without even the implied   --
18--   warranty of MERCHANTABILITY   or FITNESS FOR  A PARTICULAR PURPOSE.   --
19--   See the GNU General Public  License  for more details.  You  should   --
20--   have received a copy of the  GNU General Public License distributed   --
21--   with AdaSockets; see   file COPYING.  If  not,  write  to  the Free   --
22--   Software  Foundation, 59   Temple Place -   Suite  330,  Boston, MA   --
23--   02111-1307, USA.                                                      --
24--                                                                         --
25--   As a special exception, if  other  files instantiate generics  from   --
26--   this unit, or  you link this  unit with other  files to produce  an   --
27--   executable,  this  unit does  not  by  itself cause  the  resulting   --
28--   executable to be  covered by the  GNU General Public License.  This   --
29--   exception does  not  however invalidate any  other reasons  why the   --
30--   executable file might be covered by the GNU Public License.           --
31--                                                                         --
32--   The main repository for this software is located at:                  --
33--       http://www-inf.enst.fr/ANC/                                       --
34--                                                                         --
35-----------------------------------------------------------------------------
36
37with Ada.Exceptions; use Ada.Exceptions;
38with GNAT.OS_Lib;    use GNAT.OS_Lib;
39with System;         use System;
40
41package body Sockets.Utils is
42
43   use Interfaces.C;
44
45   ---------------------
46   -- Port_To_Network --
47   ---------------------
48
49   function Port_To_Network (Port : unsigned_short)
50     return unsigned_short
51   is
52   begin
53      if Default_Bit_Order = High_Order_First then
54         return Port;
55      else
56         return (Port / 256) + (Port mod 256) * 256;
57      end if;
58   end Port_To_Network;
59
60   ------------------------
61   -- Raise_With_Message --
62   ------------------------
63
64   procedure Raise_With_Message (Message    : in String;
65                                 With_Errno : in Boolean := True)
66   is
67   begin
68      if With_Errno then
69         Raise_Exception (Constraint_Error'Identity,
70                          Message & " (errno is" & Integer'Image (Errno) &
71                          ")");
72      else
73         Raise_Exception (Constraint_Error'Identity, Message);
74      end if;
75
76      --  The following line works around a bug in GNAT that does not
77      --  recognize Ada.Exceptions.Raise_Exception as raising an exception,
78      --  even if it can compute statically that the occurrence cannot
79      --  be Null_Occurrence ???
80
81      raise Program_Error;
82   end Raise_With_Message;
83
84end Sockets.Utils;
Note: See TracBrowser for help on using the repository browser.