Commit 3fa87ef8 by John David Anglin Committed by John David Anglin

re PR ada/34466 (s-tasinf.ads:81:42: "cpu_set_t" not declared in "OS_Interface")

	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
parent 041313f8
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> 2008-01-03 Tero Koskinen <tero.koskinen@iki.fi>
PR ada/34647 PR ada/34647
...@@ -244,6 +244,7 @@ package System.OS_Interface is ...@@ -244,6 +244,7 @@ package System.OS_Interface is
pragma Import (C, sysconf); pragma Import (C, sysconf);
SC_CLK_TCK : constant := 2; SC_CLK_TCK : constant := 2;
SC_NPROCESSORS_ONLN : constant := 84;
------------------------- -------------------------
-- Priority Scheduling -- -- Priority Scheduling --
...@@ -463,6 +464,24 @@ package System.OS_Interface is ...@@ -463,6 +464,24 @@ package System.OS_Interface is
destructor : destructor_pointer) return int; destructor : destructor_pointer) return int;
pragma Import (C, pthread_key_create, "pthread_key_create"); 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 private
type sigset_t is array (0 .. 31) of unsigned_long; type sigset_t is array (0 .. 31) of unsigned_long;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment