|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T V
Length: 7201 (0x1c21)
Types: TextFile
Names: »V«
└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13
└─⟦124ff5788⟧ »DATA«
└─⟦this⟧
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
└─⟦6f12a12be⟧ »DATA«
└─⟦this⟧
-- The use of this system is subject to the software license terms and
-- conditions agreed upon between Rational and the Customer.
--
-- Copyright 1988, 1989, 1990 by Rational.
--
-- RESTRICTED RIGHTS LEGEND
--
-- Use, duplication, or disclosure by the Government is subject to
-- restrictions as set forth in subdivision (b)(3)(ii) of the Rights in
-- Technical Data and Computer Software clause at 52.227-7013.
--
--
-- Rational
-- 3320 Scott Boulevard
-- Santa Clara, California 95054-3197
--
-- PROPRIETARY AND CONFIDENTIAL INFORMATION OF RATIONAL;
-- USE OR COPYING WITHOUT EXPRESS WRITTEN AUTHORIZATION
-- IS STRICTLY PROHIBITED. THIS MATERIAL IS PROTECTED AS
-- AN UNPUBLISHED WORK UNDER THE U.S. COPYRIGHT ACT OF
-- 1976. CREATED 1988, 1989, 1990. ALL RIGHTS RESERVED.
--
--
WITH System;
WITH Unchecked_Conversion;
PACKAGE Unix_Base_Types IS
--
-- This package defines fundamental C and Unix data types.
--
-- Note: This package is subject to change.
--
TYPE Tiny_Integer IS RANGE -128 .. 127;
FOR Tiny_Integer'Size USE 1 * System.Storage_Unit;
-- characters
SUBTYPE Char IS Tiny_Integer;
SUBTYPE Unsigned_Char IS Character;
SUBTYPE U_Char IS Unsigned_Char;
SUBTYPE Uchar IS Unsigned_Char;
-- short integers
SUBTYPE Short IS Short_Integer;
TYPE Unsigned_Short IS RANGE 0 .. 2 ** 16 - 1;
FOR Unsigned_Short'Size USE 16;
SUBTYPE U_Short IS Unsigned_Short;
SUBTYPE Ushort IS Unsigned_Short;
-- integers
SUBTYPE Int IS Integer;
SUBTYPE Unsigned_Int IS Integer; -- Long_Integer range 0 .. 2 ** 32 - 1;
SUBTYPE U_Int IS Unsigned_Int;
SUBTYPE Uint IS Unsigned_Int;
SUBTYPE Unsigned IS Unsigned_Int;
-- long integers
SUBTYPE Long IS Integer;
SUBTYPE Unsigned_Long IS Integer; -- Long_Integer range 0 .. 2 ** 32 - 1;
SUBTYPE U_Long IS Unsigned_Long;
-- pointers
TYPE Char_Ptr IS ACCESS Character;
TYPE Int_Ptr IS ACCESS Int;
TYPE Long_Ptr IS ACCESS Long;
-- arrays of pointers
TYPE Char_Ptrs IS ARRAY (Natural RANGE <>) OF Char_Ptr;
-- null pointers
Null_Long_Ptr : CONSTANT Unix_Base_Types.Long_Ptr := NULL;
Null_Char_Ptr : CONSTANT Unix_Base_Types.Char_Ptr := NULL;
-- pointer conversion functions
FUNCTION To_Char_Ptr IS NEW Unchecked_Conversion (System.Address, Char_Ptr);
FUNCTION To_Char_Ptr (Object : String) RETURN Char_Ptr;
FUNCTION To_String (Object : Char_Ptr) RETURN String;
FUNCTION To_Int_Ptr IS NEW Unchecked_Conversion (System.Address, Int_Ptr);
FUNCTION To_Long_Ptr IS NEW Unchecked_Conversion (System.Address, Long_Ptr);
-- signals
--
-- The following signal definitions can be used in an interrupt handler
-- pragma like this:
--
-- pragma Interrupt_Handler(
-- Handler => Some_Handler,
-- Vector => System.To_Address( Unix_Base_Types.Sigint ) );
--
Sighup : CONSTANT := 1; -- Hangup (Terminate)
Sigint : CONSTANT := 2; -- Interrupt (Terminate)
Sigquit : CONSTANT := 3; -- Quit (Terminate, Core)
Sigill : CONSTANT := 4; -- Illegal instruction (Terminate, Core, Noreset)
Sigtrap : CONSTANT := 5; -- Trace trap (Terminate, Core, Noreset)
Sigabrt : CONSTANT := 6; -- Software gen'd abort (Terminate, Core)
Sigiot : CONSTANT := 6; -- Software gen'd (Terminate, Core)
Sigemt : CONSTANT := 7; -- Software gen'd (Terminate, Core)
Sigfpe : CONSTANT := 8; -- Floating Point (Terminate, Core)
Sigkill : CONSTANT := 9; -- Kill (Terminate, Noignore, Nocatch, Nohold)
Sigbus : CONSTANT := 10; -- Buss error (Terminate, Core)
Sigsegv : CONSTANT := 11; -- Segmentation violation (Terminate, Core)
Sigsys : CONSTANT := 12; -- Bad arg to sys call (Terminate, Core)
Sigpipe : CONSTANT := 13; -- Pipe write w/o reader (Terminate)
Sigalrm : CONSTANT := 14; -- Alarm clock (Terminate)
Sigterm : CONSTANT := 15; -- Software termination (Terminate)
Sigusr1 : CONSTANT := 16; -- User sig (Terminate)
Sigusr2 : CONSTANT := 17; -- User sig (Terminate)
Sigchld : CONSTANT := 18; -- Death of child (Ignore)
Sigcld : CONSTANT := 18; -- Death of child (Ignore)
Sigpwr : CONSTANT := 19; -- Power fail (Noreset, Ignore)
Sigvtalrm : CONSTANT := 20;-- Virtual timer (Terminate)
Sigprof : CONSTANT := 21; -- Profiling timer (Terminate)
Sigio : CONSTANT := 22; -- Async I/O (Ignore)
Sigwindow : CONSTANT := 23;-- Window change or mouse (Itnore)
Sigstop : CONSTANT := 24; -- Stop (Noignore, Nocatch, Stop)
Sigtstp : CONSTANT := 25; -- Stop from keyboard (Stop)
Sigcont : CONSTANT := 26; -- Continue after stop (Nohold, Ignore)
Sigttin : CONSTANT := 27; -- Background read from cntl term (Stop)
Sigttou : CONSTANT := 28; -- Background write to cntl term (Stop)
Sigurg : CONSTANT := 29; -- Urgent data on I/O (Ignore)
Siglost : CONSTANT := 30; -- File lock lost in NFS (Terminate)
-- The following data structures are built for access via the
-- Signal_Info_Pointer parameter passed to an Ada signal handler.
TYPE Signal_Context IS
RECORD
Sc_Syscall : Unix_Base_Types.Int; -- interrupted system
-- call if any
Sc_Syscall_Action : Unix_Base_Types.Char; -- what to do after
-- system call
Sc_Pad1 : Unix_Base_Types.Char;
Sc_Pad2 : Unix_Base_Types.Char;
Sc_Onstack : Unix_Base_Types.Char; -- sigstack state to
-- restore
Sc_Mask : Unix_Base_Types.Int; -- signal mask to
-- restore
Sc_Sp : Unix_Base_Types.Int; -- sp to restore
Sc_Ps : Unix_Base_Types.Short; -- ps to restore
Sc_Pc : Unix_Base_Types.Int; -- pc to restore
END RECORD;
FOR Signal_Context USE
RECORD
Sc_Syscall AT 0 RANGE 0 .. 31;
Sc_Syscall_Action AT 4 RANGE 0 .. 7;
Sc_Pad1 AT 5 RANGE 0 .. 7;
Sc_Pad2 AT 6 RANGE 0 .. 7;
Sc_Onstack AT 7 RANGE 0 .. 7;
Sc_Mask AT 8 RANGE 0 .. 31;
Sc_Sp AT 12 RANGE 0 .. 31;
Sc_Ps AT 16 RANGE 0 .. 15;
Sc_Pc AT 20 RANGE 0 .. 31;
END RECORD;
TYPE Signal_Context_Pointer IS ACCESS Signal_Context;
TYPE Signal_Info IS
RECORD
Number : Unix_Base_Types.Int; -- signal number
Code : Unix_Base_Types.Int; -- code subselect
Context : Signal_Context_Pointer; -- pointer to signal context
END RECORD;
FOR Signal_Info USE
RECORD
Number AT 0 RANGE 0 .. 31;
Code AT 4 RANGE 0 .. 31;
Context AT 8 RANGE 0 .. 31;
END RECORD;
TYPE Signal_Info_Pointer IS ACCESS Signal_Info; -- passed to handler
END Unix_Base_Types;