]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR ada/34466 (s-tasinf.ads:81:42: "cpu_set_t" not declared in "OS_Interface")
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Fri, 11 Jan 2008 01:00:48 +0000 (01:00 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Fri, 11 Jan 2008 01:00:48 +0000 (01:00 +0000)
PR ada/34466
* s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
sysconf call.
(bit_field): New packed boolean type used by cpu_set_t.
(cpu_set_t): New type corresponding to the C type with
the same name. Note that on the Ada side we use a bit
field array for the affinity mask. There is not need
for the C macro for setting individual bit.
(pthread_setaffinity_np): New imported routine.

From-SVN: r131457

gcc/ada/ChangeLog
gcc/ada/s-osinte-linux-hppa.ads

index 6537c951fb14e675e5fae3ff566a420966a2c6aa..4dfdde62954ca000a2436c86e87bd5b1b0ef60b5 100644 (file)
@@ -1,3 +1,15 @@
+2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
+
+       PR ada/34466
+       * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
+       sysconf call.
+       (bit_field): New packed boolean type used by cpu_set_t.
+       (cpu_set_t): New type corresponding to the C type with
+       the same name. Note that on the Ada side we use a bit
+       field array for the affinity mask. There is not need
+       for the C macro for setting individual bit.
+       (pthread_setaffinity_np): New imported routine.
+
 2008-01-03  Tero Koskinen <tero.koskinen@iki.fi>
 
        PR ada/34647
index 00b79af1ad52ea0dd86332fcab494b750c1f9fb6..1c4386bfe8207956a44c79c79c1989d0e9387089 100644 (file)
@@ -244,6 +244,7 @@ package System.OS_Interface is
    pragma Import (C, sysconf);
 
    SC_CLK_TCK : constant := 2;
+   SC_NPROCESSORS_ONLN : constant := 84;
 
    -------------------------
    -- Priority Scheduling --
@@ -463,6 +464,24 @@ package System.OS_Interface is
       destructor : destructor_pointer) return int;
    pragma Import (C, pthread_key_create, "pthread_key_create");
 
+   CPU_SETSIZE : constant := 1_024;
+
+   type bit_field is array (1 .. CPU_SETSIZE) of Boolean;
+   for bit_field'Size use CPU_SETSIZE;
+   pragma Pack (bit_field);
+   pragma Convention (C, bit_field);
+
+   type cpu_set_t is record
+      bits : bit_field;
+   end record;
+   pragma Convention (C, cpu_set_t);
+
+   function pthread_setaffinity_np
+     (thread     : pthread_t;
+      cpusetsize : size_t;
+      cpuset     : access cpu_set_t) return int;
+   pragma Import (C, pthread_setaffinity_np, "__gnat_pthread_setaffinity_np");
+
 private
 
    type sigset_t is array (0 .. 31) of unsigned_long;