|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 11264 (0x2c00)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package Os_Signal, seg_04bb58
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with System;
use System;
with Unsigned_Types;
use Unsigned_Types;
with Unchecked_Conversion;
package Os_Signal is
pragma Suppress (All_Checks);
pragma Suppress (Exception_Tables);
pragma Not_Elaborated;
pragma Local_Access;
--
-- RS/6000 AIX signal services
--
--
-- Signals
--
Sighup : constant := 1;
Sigint : constant := 2;
Sigquit : constant := 3;
Sigill : constant := 4;
Sigtrap : constant := 5;
Siglost : constant := 6;
Sigiot : constant := 6;
Sigabrt : constant := 6;
Sigemt : constant := 7;
Sigfpe : constant := 8;
Sigkill : constant := 9;
Sigbus : constant := 10;
Sigsegv : constant := 11;
Sigsys : constant := 12;
Sigpipe : constant := 13;
Sigalrm : constant := 14;
Sigterm : constant := 15;
Sigurg : constant := 16;
Sigioint : constant := 16;
Sigstop : constant := 17;
Sigtstp : constant := 18;
Sigcont : constant := 19;
Sigchld : constant := 20;
Sigcld : constant := 20;
Sigttin : constant := 21;
Sigttou : constant := 22;
Sigpty : constant := 23;
Sigio : constant := 23;
Sigaio : constant := 23;
Sigxcpu : constant := 24;
Sigxfsz : constant := 25;
Sigmsg : constant := 27;
Sigwinch : constant := 28;
Sigpwr : constant := 29;
Sigusr1 : constant := 30;
Sigusr2 : constant := 31;
Sigprof : constant := 32;
Sigdanger : constant := 33;
Sigvtalrm : constant := 34;
Sigmigrate : constant := 35;
Sigpre : constant := 36;
Sigvirt : constant := 37;
Siggrant : constant := 60;
Sigretract : constant := 61;
Sigsound : constant := 62;
Sigmax : constant := 63;
Sigsak : constant := 63;
Sig_Ign : constant Address := Memory_Address (1);
Sig_Dfl : constant Address := Memory_Address (0);
type Sigset_T is array (0 .. 1) of Integer;
Sigset_T_Size : constant := 2 * 4;
Max_Signal : constant := 63;
type A_Sigset_T is access Sigset_T;
function To_A_Sigset_T is new Unchecked_Conversion (Address, A_Sigset_T);
--
-- Signal masks. (Signal i is blocked if the i-th bit in the mask is a 1
-- Note signal 1 is at bit 0. sa_mask(0) contains signals 1..32,
-- sa_mask(1) contains signals 33..64)
--
Enable_Mask : constant Integer := 0; -- signals 1..32 enabled
Enable_33_64_Mask : constant Integer := 0; -- signals 33..64 enabled
-- All signals disabled except:
--\x09SIGILL - 4
--\x09SIGTRAP - 5
--\x09SIGABRT - 6
--\x09SIGEMT - 7
--\x09SIGFPE - 8
--\x09SIGKILL - 9
--\x09SIGBUS - 10
--\x09SIGSEGV - 11
--\x09SIGSYS - 12
--\x09SIGSTOP - 17
--\x09SIGCONT - 19
--\x09SIGPROF - 32
--
-- SIGDANGER - 33
-- SIGVTALRM - 34
-- SIGMIGRATE - 35
-- SIGPRE\x09 - 36
-- SIGVIRT - 37
--
-- Effectively, all the synchronous, exception related signals remain
-- enabled.
Disable_Mask : constant Integer := 16#7FFA_F007#;
-- signals 1..32 disabled
Disable_33_64_Mask : constant Integer := 16#7FFF_FFE0#;
-- signals 33..64 disabled
-- sigaction record definition
type Sigaction_T is
record
Sa_Handler : Address;
Sa_Mask : Sigset_T;
Sa_Flags : Integer;
end record;
type A_Sigaction_T is access Sigaction_T;
function To_A_Sigaction_T is
new Unchecked_Conversion (Address, A_Sigaction_T);
Sa_Onstack : constant := 16#0000_0001#;
Sa_Oldstyle : constant := 16#0000_0002#;
Sa_Nocldstop : constant := 16#0000_0004#;
Sa_Restart : constant := 16#0000_0008#;
Sa_Nodump : constant := 16#0000_0010#;
Sa_Partdump : constant := 16#0000_0020#;
Sa_Fulldump : constant := 16#0000_0040#;
Sa_Sigsetstyle : constant := 16#0000_0080#;
--
--\x09\x09Machine State Save Area -- RS/6000 platform
--
-- Machine state save area. The fields for the segment registers,
-- general purpose registers, and floating point registers are
-- aligned to minimize the number of cache lines that contain them.
-- Therefore this structure should be aligned on a cache line
-- boundary.
--
type Arr_A_T is array (Integer range <>) of Address;
type Label_T; -- kernel jump buffer
type A_Label_T is access Label_T;
type Label_T is
record -- kernel jump buffer
Prev : A_Label_T; -- chain to previous
Iar : Address; -- resume address
Stack : Address; -- stack pointer
Toc : Address; -- toc pointer
Cr : Unsigned_Integer; -- non-volatile part of cr
Intpri : Unsigned_Integer; -- priority level of the process
Reg : Arr_A_T (13 .. 31); -- non-volatile regs (13..31)
end record;
type Adspace_T is
record -- address space mapping
Alloc : Unsigned_Integer; -- allocation flags
Srval : Arr_A_T (0 .. 15); -- contents of all seg regs
end record;
type Mstsave;
type A_Mstsave is access Mstsave;
type Mstsave is
record
Prev : A_Mstsave; -- previous save area
Kjmpbuf : A_Label_T; -- pointer to saved context
Stackfix : Address; -- stack fix pointer
Intpri : Tiny_Integer; -- interrupt priority
Backt : Tiny_Integer; -- back-track flag
--rsvd: short_integer;\x09\x09-- reserved
Curid : Integer; -- copy of curid
Excp_Type : Integer; -- exception type for debugger
Iar : Address; -- instruction address register
Msr : Unsigned_Integer; -- machine state register
Cr : Unsigned_Integer; -- condition register
Lr : Address; -- link register
Ctr : Unsigned_Integer; -- count register
Xer : Unsigned_Integer; -- fixed point exception
Mq : Unsigned_Integer; -- multiply/quotient register
Tid : Unsigned_Integer; -- tid register
Fpscr : Unsigned_Integer; -- floating point status reg
Fpeu : Boolean; -- floating point ever used
--pad1,pad2,pad3: character;\x09-- res - pad to dword boundary
Except : Arr_A_T (1 .. 5); -- exception structure
Bus : Address; -- I/O bus limit register, CSR
Cachealign : Arr_A_T (1 .. 13); -- cache-align registers
As : Adspace_T; -- segment registers
Gpr : Arr_A_T (0 .. 31); -- general purpose registers
Fpr : Arr_A_T (0 .. 63); -- floating point registers
end record;
-- Values for mstsave.fpeu
Fp_Never_Used : constant Boolean := False; -- floating point never used
Fp_Used : constant Boolean := True; -- floating point used
subtype Jmpbuf is Mstsave;
type Sigcontext_T is
record
Sc_Onstack : Integer; -- sigstack state to restore
Sc_Mask : Sigset_T; -- signal mask to restore
U_Error : Integer; -- u_error to restore
Sc_Jmpbuf : Jmpbuf; -- process context to restore
end record;
type A_Sigcontext_T is access Sigcontext_T;
function To_A_Sigcontext_T is
new Unchecked_Conversion (Address, A_Sigcontext_T);
function Sigaction
(Sig : Integer; Act, Oact : A_Sigaction_T) return Integer;
pragma Interface (C, Sigaction);
function Sigprocmask (How : Integer; Set, Oset : A_Sigset_T) return Integer;
pragma Interface (C, Sigprocmask);
Sig_Block : constant := 0;
Sig_Unblock : constant := 1;
Sig_Setmask : constant := 2;
function Sigsuspend (Set : A_Sigset_T) return Integer;
pragma Interface (C, Sigsuspend);
end Os_Signal;
nblk1=a
nid=a
hdr6=12
[0x00] rec0=2a rec1=00 rec2=01 rec3=004
[0x01] rec0=20 rec1=00 rec2=02 rec3=01a
[0x02] rec0=21 rec1=00 rec2=03 rec3=030
[0x03] rec0=1e rec1=00 rec2=04 rec3=01c
[0x04] rec0=18 rec1=00 rec2=05 rec3=026
[0x05] rec0=1a rec1=00 rec2=06 rec3=040
[0x06] rec0=14 rec1=00 rec2=07 rec3=02a
[0x07] rec0=1c rec1=00 rec2=08 rec3=038
[0x08] rec0=04 rec1=00 rec2=09 rec3=000
[0x09] rec0=56 rec1=58 rec2=c6 rec3=794
tail 0x21548db488684603caf5e 0x42a00088462060003
Free Block Chain:
0xa: 0000 00 00 00 04 80 01 20 01 02 00 00 bb 00 00 00 00 ┆ ┆