aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBob Duff <duff@adacore.com>2019-07-08 08:13:38 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2019-07-08 08:13:38 +0000
commit79ee9e32b17be333e6c70a104c7049c8cab40834 (patch)
treec82d2aa92754fe7fbf9c41518f1462438c118721 /gcc
parent19d9ce464afc12f95951de2a3be3398e1d2f292d (diff)
downloadgcc-79ee9e32b17be333e6c70a104c7049c8cab40834.zip
gcc-79ee9e32b17be333e6c70a104c7049c8cab40834.tar.gz
gcc-79ee9e32b17be333e6c70a104c7049c8cab40834.tar.bz2
[Ada] More data rates supported on Linux
This patch adds additional data rates to the GNAT.Serial_Communications package (Linux version). 2019-07-08 Bob Duff <duff@adacore.com> gcc/ada/ * libgnat/g-sercom.ads, libgnat/g-sercom__linux.adb (Data_Rate): Support additional data rates. From-SVN: r273208
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/libgnat/g-sercom.ads48
-rw-r--r--gcc/ada/libgnat/g-sercom__linux.adb39
3 files changed, 64 insertions, 28 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 81ef99e..3bbc1cf 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2019-07-08 Bob Duff <duff@adacore.com>
+
+ * libgnat/g-sercom.ads, libgnat/g-sercom__linux.adb (Data_Rate):
+ Support additional data rates.
+
2019-07-08 Olivier Hainque <hainque@adacore.com>
* gcc-interface/trans.c (Compilation_Unit_to_gnu): Don't request
diff --git a/gcc/ada/libgnat/g-sercom.ads b/gcc/ada/libgnat/g-sercom.ads
index 8550e8d..e807dab 100644
--- a/gcc/ada/libgnat/g-sercom.ads
+++ b/gcc/ada/libgnat/g-sercom.ads
@@ -100,8 +100,13 @@ package GNAT.Serial_Communications is
-- cases, an explicit port name can be passed directly to Open.
type Data_Rate is
- (B75, B110, B150, B300, B600, B1200, B2400, B4800, B9600,
- B19200, B38400, B57600, B115200);
+ (B75, B110, B150, B300, B600, B1200,
+ B2400, B4800, B9600,
+ B19200, B38400, B57600, B115200,
+ B230400, B460800, B500000, B576000, B921600,
+ B1000000, B1152000, B1500000,
+ B2000000, B2500000, B3000000,
+ B3500000, B4000000);
-- Speed of the communication
type Data_Bits is (CS8, CS7);
@@ -173,18 +178,31 @@ private
end record;
Data_Rate_Value : constant array (Data_Rate) of Interfaces.C.unsigned :=
- (B75 => 75,
- B110 => 110,
- B150 => 150,
- B300 => 300,
- B600 => 600,
- B1200 => 1_200,
- B2400 => 2_400,
- B4800 => 4_800,
- B9600 => 9_600,
- B19200 => 19_200,
- B38400 => 38_400,
- B57600 => 57_600,
- B115200 => 115_200);
+ (B75 => 75,
+ B110 => 110,
+ B150 => 150,
+ B300 => 300,
+ B600 => 600,
+ B1200 => 1_200,
+ B2400 => 2_400,
+ B4800 => 4_800,
+ B9600 => 9_600,
+ B19200 => 19_200,
+ B38400 => 38_400,
+ B57600 => 57_600,
+ B115200 => 115_200,
+ B230400 => 230_400,
+ B460800 => 460_800,
+ B500000 => 500_000,
+ B576000 => 576_000,
+ B921600 => 921_600,
+ B1000000 => 1_000_000,
+ B1152000 => 1_152_000,
+ B1500000 => 1_500_000,
+ B2000000 => 2_000_000,
+ B2500000 => 2_500_000,
+ B3000000 => 3_000_000,
+ B3500000 => 3_500_000,
+ B4000000 => 4_000_000);
end GNAT.Serial_Communications;
diff --git a/gcc/ada/libgnat/g-sercom__linux.adb b/gcc/ada/libgnat/g-sercom__linux.adb
index 93bc793..f116aea 100644
--- a/gcc/ada/libgnat/g-sercom__linux.adb
+++ b/gcc/ada/libgnat/g-sercom__linux.adb
@@ -58,19 +58,32 @@ package body GNAT.Serial_Communications is
pragma Import (C, fcntl, "fcntl");
C_Data_Rate : constant array (Data_Rate) of unsigned :=
- (B75 => OSC.B75,
- B110 => OSC.B110,
- B150 => OSC.B150,
- B300 => OSC.B300,
- B600 => OSC.B600,
- B1200 => OSC.B1200,
- B2400 => OSC.B2400,
- B4800 => OSC.B4800,
- B9600 => OSC.B9600,
- B19200 => OSC.B19200,
- B38400 => OSC.B38400,
- B57600 => OSC.B57600,
- B115200 => OSC.B115200);
+ (B75 => OSC.B75,
+ B110 => OSC.B110,
+ B150 => OSC.B150,
+ B300 => OSC.B300,
+ B600 => OSC.B600,
+ B1200 => OSC.B1200,
+ B2400 => OSC.B2400,
+ B4800 => OSC.B4800,
+ B9600 => OSC.B9600,
+ B19200 => OSC.B19200,
+ B38400 => OSC.B38400,
+ B57600 => OSC.B57600,
+ B115200 => OSC.B115200,
+ B230400 => OSC.B230400,
+ B460800 => OSC.B460800,
+ B500000 => OSC.B500000,
+ B576000 => OSC.B576000,
+ B921600 => OSC.B921600,
+ B1000000 => OSC.B1000000,
+ B1152000 => OSC.B1152000,
+ B1500000 => OSC.B1500000,
+ B2000000 => OSC.B2000000,
+ B2500000 => OSC.B2500000,
+ B3000000 => OSC.B3000000,
+ B3500000 => OSC.B3500000,
+ B4000000 => OSC.B4000000);
C_Bits : constant array (Data_Bits) of unsigned :=
(CS7 => OSC.CS7, CS8 => OSC.CS8);