Skip to content

Instantly share code, notes, and snippets.

@ytomino
Last active August 10, 2021 04:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ytomino/3324aae9f1a7ed8632bdc883200a630f to your computer and use it in GitHub Desktop.
Save ytomino/3324aae9f1a7ed8632bdc883200a630f to your computer and use it in GitHub Desktop.
OpenSSL in x86_64-linux-gnu
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package body C.bits.byteswap is
function bswap_32 (bsx : unsigned_int) return unsigned_int is
begin
return builtin_bswap32 (bsx);
end bswap_32;
function bswap_64 (bsx : types.uint64_t) return types.uint64_t is
begin
return types.uint64_t (builtin_bswap64 (unsigned_long_long (bsx)));
end bswap_64;
end C.bits.byteswap;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
with C.bits.types;
package C.bits.byteswap is
pragma Preelaborate;
function bswap_32 (bsx : unsigned_int) return unsigned_int;
pragma Convention (C, bswap_32);
pragma Inline (bswap_32);
function bswap_64 (bsx : types.uint64_t) return types.uint64_t;
pragma Convention (C, bswap_64);
pragma Inline (bswap_64);
BITS_BYTESWAP_H : constant := 1;
-- __bswap_constant_16 (function macro)
-- __bswap_constant_32 (function macro)
-- __bswap_constant_64 (function macro)
end C.bits.byteswap;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.bits.byteswap_16 is
pragma Preelaborate;
-- __bswap_16 (function macro)
end C.bits.byteswap_16;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.bits.endian is
pragma Preelaborate;
BYTE_ORDER : constant := 1234;
end C.bits.endian;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.bits.pthreadtypes is
pragma Preelaborate;
subtype pthread_t is unsigned_long;
type union_pthread_attr_t;
type union_pthread_attr_t (Unchecked_Tag : unsigned_int := 0) is record
case Unchecked_Tag is
when 0 =>
size : char_array (0 .. 55);
when others =>
align : signed_long;
end case;
end record;
pragma Unchecked_Union (union_pthread_attr_t);
pragma Convention (C_Pass_By_Copy, union_pthread_attr_t);
subtype pthread_attr_t is union_pthread_attr_t;
type struct_pthread_internal_list;
type struct_pthread_internal_list_ptr is
access all struct_pthread_internal_list;
for struct_pthread_internal_list_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (struct_pthread_internal_list_ptr);
pragma Convention (C, struct_pthread_internal_list_ptr);
type struct_pthread_internal_list is record
prev : aliased struct_pthread_internal_list_ptr;
next : aliased struct_pthread_internal_list_ptr;
end record;
pragma Convention (C_Pass_By_Copy, struct_pthread_internal_list);
subtype pthread_list_t is struct_pthread_internal_list;
type struct_pthread_mutex_s;
type struct_pthread_mutex_s is record
lock : aliased signed_int;
count : aliased unsigned_int;
owner : aliased signed_int;
nusers : aliased unsigned_int;
kind : aliased signed_int;
spins : aliased signed_short;
elision : aliased signed_short;
list : aliased pthread_list_t;
end record;
pragma Convention (C_Pass_By_Copy, struct_pthread_mutex_s);
type union_d6251af3 (Unchecked_Tag : unsigned_int := 0) is record
case Unchecked_Tag is
when 0 =>
data : struct_pthread_mutex_s;
when 1 =>
size : char_array (0 .. 39);
when others =>
align : signed_long;
end case;
end record;
pragma Unchecked_Union (union_d6251af3);
pragma Convention (C_Pass_By_Copy, union_d6251af3);
subtype pthread_mutex_t is union_d6251af3;
type union_43f49c0e (Unchecked_Tag : unsigned_int := 0) is record
case Unchecked_Tag is
when 0 =>
size : char_array (0 .. 3);
when others =>
align : signed_int;
end case;
end record;
pragma Unchecked_Union (union_43f49c0e);
pragma Convention (C_Pass_By_Copy, union_43f49c0e);
subtype pthread_mutexattr_t is union_43f49c0e;
type struct_d1b5ad24 is record
lock : aliased signed_int;
futex : aliased unsigned_int;
total_seq : aliased unsigned_long_long;
wakeup_seq : aliased unsigned_long_long;
woken_seq : aliased unsigned_long_long;
mutex : aliased void_ptr;
nwaiters : aliased unsigned_int;
broadcast_seq : aliased unsigned_int;
end record;
pragma Convention (C_Pass_By_Copy, struct_d1b5ad24);
type union_5ebf2c7c (Unchecked_Tag : unsigned_int := 0) is record
case Unchecked_Tag is
when 0 =>
data : struct_d1b5ad24;
when 1 =>
size : char_array (0 .. 47);
when others =>
align : signed_long_long;
end case;
end record;
pragma Unchecked_Union (union_5ebf2c7c);
pragma Convention (C_Pass_By_Copy, union_5ebf2c7c);
subtype pthread_cond_t is union_5ebf2c7c;
type union_cbbe6c38 (Unchecked_Tag : unsigned_int := 0) is record
case Unchecked_Tag is
when 0 =>
size : char_array (0 .. 3);
when others =>
align : signed_int;
end case;
end record;
pragma Unchecked_Union (union_cbbe6c38);
pragma Convention (C_Pass_By_Copy, union_cbbe6c38);
subtype pthread_condattr_t is union_cbbe6c38;
subtype pthread_key_t is unsigned_int;
subtype pthread_once_t is signed_int;
type struct_10e47c77 is record
lock : aliased signed_int;
nr_readers : aliased unsigned_int;
readers_wakeup : aliased unsigned_int;
writer_wakeup : aliased unsigned_int;
nr_readers_queued : aliased unsigned_int;
nr_writers_queued : aliased unsigned_int;
writer : aliased signed_int;
shared : aliased signed_int;
rwelision : aliased signed_char;
pad1 : aliased unsigned_char_array (0 .. 6);
pad2 : aliased unsigned_long;
flags : aliased unsigned_int;
end record;
pragma Convention (C_Pass_By_Copy, struct_10e47c77);
type union_8ca156a2 (Unchecked_Tag : unsigned_int := 0) is record
case Unchecked_Tag is
when 0 =>
data : struct_10e47c77;
when 1 =>
size : char_array (0 .. 55);
when others =>
align : signed_long;
end case;
end record;
pragma Unchecked_Union (union_8ca156a2);
pragma Convention (C_Pass_By_Copy, union_8ca156a2);
subtype pthread_rwlock_t is union_8ca156a2;
type union_bb6f579a (Unchecked_Tag : unsigned_int := 0) is record
case Unchecked_Tag is
when 0 =>
size : char_array (0 .. 7);
when others =>
align : signed_long;
end case;
end record;
pragma Unchecked_Union (union_bb6f579a);
pragma Convention (C_Pass_By_Copy, union_bb6f579a);
subtype pthread_rwlockattr_t is union_bb6f579a;
subtype pthread_spinlock_t is signed_int_volatile;
type union_f4be611a (Unchecked_Tag : unsigned_int := 0) is record
case Unchecked_Tag is
when 0 =>
size : char_array (0 .. 31);
when others =>
align : signed_long;
end case;
end record;
pragma Unchecked_Union (union_f4be611a);
pragma Convention (C_Pass_By_Copy, union_f4be611a);
subtype pthread_barrier_t is union_f4be611a;
type union_770e9778 (Unchecked_Tag : unsigned_int := 0) is record
case Unchecked_Tag is
when 0 =>
size : char_array (0 .. 3);
when others =>
align : signed_int;
end case;
end record;
pragma Unchecked_Union (union_770e9778);
pragma Convention (C_Pass_By_Copy, union_770e9778);
subtype pthread_barrierattr_t is union_770e9778;
BITS_PTHREADTYPES_H : constant := 1;
PTHREAD_MUTEX_HAVE_PREV : constant := 1;
-- __PTHREAD_RWLOCK_ELISION_EXTRA (unparsible)
PTHREAD_RWLOCK_INT_FLAGS_SHARED : constant := 1;
-- __PTHREAD_SPINS (unparsible)
SIZEOF_PTHREAD_ATTR_T : constant := 56;
SIZEOF_PTHREAD_BARRIERATTR_T : constant := 4;
SIZEOF_PTHREAD_BARRIER_T : constant := 32;
SIZEOF_PTHREAD_CONDATTR_T : constant := 4;
SIZEOF_PTHREAD_COND_T : constant := 48;
SIZEOF_PTHREAD_MUTEXATTR_T : constant := 4;
SIZEOF_PTHREAD_MUTEX_T : constant := 40;
SIZEOF_PTHREAD_RWLOCKATTR_T : constant := 8;
SIZEOF_PTHREAD_RWLOCK_T : constant := 56;
have_pthread_attr_t : constant := 1;
end C.bits.pthreadtypes;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.bits.select_h is
pragma Preelaborate;
-- __FD_CLR (uninterpretable)
-- __FD_ISSET (uninterpretable)
-- __FD_SET (uninterpretable)
-- __FD_ZERO (uninterpretable)
FD_ZERO_STOS : constant char_array (0 .. 5) := "stosq" & char'Val (0);
end C.bits.select_h;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.bits.sigset is
pragma Preelaborate;
subtype sig_atomic_t is signed_int;
type struct_22570f8b is record
val : aliased unsigned_long_array (0 .. 15);
end record;
pragma Convention (C_Pass_By_Copy, struct_22570f8b);
type struct_22570f8b_const_ptr is access constant struct_22570f8b;
for struct_22570f8b_const_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (struct_22570f8b_const_ptr);
pragma Convention (C, struct_22570f8b_const_ptr);
subtype sigset_t is struct_22570f8b;
subtype sigset_t_const_ptr is struct_22570f8b_const_ptr;
SIGSET_H_types : constant := 1;
SIGSET_NWORDS : constant := 16;
end C.bits.sigset;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
with C.bits.types;
package C.bits.time is
pragma Preelaborate;
type struct_timeval;
type struct_timeval is record
tv_sec : aliased types.qqtime_t;
tv_usec : aliased types.suseconds_t;
end record;
pragma Convention (C_Pass_By_Copy, struct_timeval);
type struct_timeval_ptr is access all struct_timeval;
for struct_timeval_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (struct_timeval_ptr);
pragma Convention (C, struct_timeval_ptr);
qSTRUCT_TIMEVAL : constant := 1;
end C.bits.time;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.bits.types is
pragma Preelaborate;
subtype u_char is unsigned_char;
subtype u_short is unsigned_short;
subtype u_int is unsigned_int;
subtype u_long is unsigned_long;
subtype int8_t is signed_char;
subtype uint8_t is unsigned_char;
subtype int16_t is signed_short;
subtype uint16_t is unsigned_short;
subtype int32_t is signed_int;
subtype uint32_t is unsigned_int;
subtype int64_t is signed_long;
subtype uint64_t is unsigned_long;
subtype quad_t is signed_long;
subtype quad_t_ptr is signed_long_ptr;
subtype u_quad_t is unsigned_long;
subtype dev_t is unsigned_long;
subtype uid_t is unsigned_int;
subtype gid_t is unsigned_int;
subtype ino_t is unsigned_long;
subtype ino64_t is unsigned_long;
subtype mode_t is unsigned_int;
subtype nlink_t is unsigned_long;
subtype off_t is signed_long;
subtype off64_t is signed_long;
subtype pid_t is signed_int;
type struct_f3d82047 is record
val : aliased signed_int_array (0 .. 1);
end record;
pragma Convention (C_Pass_By_Copy, struct_f3d82047);
subtype fsid_t is struct_f3d82047;
subtype qqclock_t is signed_long;
subtype rlim_t is unsigned_long;
subtype rlim64_t is unsigned_long;
subtype id_t is unsigned_int;
subtype qqtime_t is signed_long;
subtype useconds_t is unsigned_int;
subtype suseconds_t is signed_long;
subtype daddr_t is signed_int;
subtype key_t is signed_int;
subtype qqclockid_t is signed_int;
subtype qqtimer_t is void_ptr;
subtype blksize_t is signed_long;
subtype blkcnt_t is signed_long;
subtype blkcnt64_t is signed_long;
subtype fsblkcnt_t is unsigned_long;
subtype fsblkcnt64_t is unsigned_long;
subtype fsfilcnt_t is unsigned_long;
subtype fsfilcnt64_t is unsigned_long;
subtype fsword_t is signed_long;
subtype ssize_t is signed_long;
subtype syscall_slong_t is signed_long;
subtype syscall_ulong_t is unsigned_long;
subtype loff_t is off64_t;
subtype qaddr_t is quad_t_ptr;
subtype caddr_t is char_ptr;
subtype intptr_t is signed_long;
subtype socklen_t is unsigned_int;
BITS_TYPES_H : constant := 1;
subtype S16_TYPE is signed_short;
subtype S32_TYPE is signed_int;
subtype S64_TYPE is signed_long;
subtype SLONG32_TYPE is signed_int;
subtype SLONGWORD_TYPE is signed_long;
subtype SQUAD_TYPE is signed_long;
subtype SWORD_TYPE is signed_long;
subtype U16_TYPE is unsigned_short;
subtype U32_TYPE is unsigned_int;
subtype U64_TYPE is unsigned_long;
subtype ULONG32_TYPE is unsigned_int;
subtype ULONGWORD_TYPE is unsigned_long;
subtype UQUAD_TYPE is unsigned_long;
subtype UWORD_TYPE is unsigned_long;
end C.bits.types;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.bits.typesizes is
pragma Preelaborate;
BITS_TYPESIZES_H : constant := 1;
subtype BLKCNT64_T_TYPE is signed_long;
subtype BLKCNT_T_TYPE is signed_long;
subtype BLKSIZE_T_TYPE is signed_long;
subtype CLOCKID_T_TYPE is signed_int;
subtype CLOCK_T_TYPE is signed_long;
subtype CPU_MASK_TYPE is unsigned_long;
subtype DADDR_T_TYPE is signed_int;
subtype DEV_T_TYPE is unsigned_long;
FD_SETSIZE : constant := 1024;
subtype FSBLKCNT64_T_TYPE is unsigned_long;
subtype FSBLKCNT_T_TYPE is unsigned_long;
subtype FSFILCNT64_T_TYPE is unsigned_long;
subtype FSFILCNT_T_TYPE is unsigned_long;
type struct_ad766d7a is record
val : aliased signed_int_array (0 .. 1);
end record;
pragma Convention (C_Pass_By_Copy, struct_ad766d7a);
subtype FSID_T_TYPE is struct_ad766d7a;
subtype FSWORD_T_TYPE is signed_long;
subtype GID_T_TYPE is unsigned_int;
subtype ID_T_TYPE is unsigned_int;
subtype INO64_T_TYPE is unsigned_long;
INO_T_MATCHES_INO64_T : constant := 1;
subtype INO_T_TYPE is unsigned_long;
subtype KEY_T_TYPE is signed_int;
subtype MODE_T_TYPE is unsigned_int;
subtype NLINK_T_TYPE is unsigned_long;
subtype OFF64_T_TYPE is signed_long;
OFF_T_MATCHES_OFF64_T : constant := 1;
subtype OFF_T_TYPE is signed_long;
subtype PID_T_TYPE is signed_int;
subtype RLIM64_T_TYPE is unsigned_long;
subtype RLIM_T_TYPE is unsigned_long;
subtype SSIZE_T_TYPE is signed_long;
subtype SUSECONDS_T_TYPE is signed_long;
subtype SYSCALL_SLONG_TYPE is signed_long;
subtype SYSCALL_ULONG_TYPE is unsigned_long;
-- __TIMER_T_TYPE (unparsible)
subtype TIME_T_TYPE is signed_long;
subtype UID_T_TYPE is unsigned_int;
subtype USECONDS_T_TYPE is unsigned_int;
end C.bits.typesizes;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.bits.wchar is
pragma Preelaborate;
BITS_WCHAR_H : constant := 1;
WCHAR_MAX : constant := 2147483647;
WCHAR_MIN : constant := -2147483648;
end C.bits.wchar;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.bits.wordsize is
pragma Preelaborate;
SYSCALL_WORDSIZE : constant := 64;
WORDSIZE : constant := 64;
WORDSIZE_TIME64_COMPAT32 : constant := 1;
end C.bits.wordsize;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.bits is
pragma Preelaborate;
end C.bits;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.endian is
pragma Preelaborate;
BIG_ENDIAN : constant := 4321;
BYTE_ORDER : constant := 1234;
LITTLE_ENDIAN : constant := 1234;
PDP_ENDIAN : constant := 3412;
ENDIAN_H : constant := 1;
qqBIG_ENDIAN : constant := 4321;
FLOAT_WORD_ORDER : constant := 1234;
qqLITTLE_ENDIAN : constant := 1234;
-- __LONG_LONG_PAIR (function macro)
qqPDP_ENDIAN : constant := 3412;
-- be16toh (function macro)
-- be32toh (function macro)
-- be64toh (function macro)
-- htobe16 (function macro)
-- htobe32 (function macro)
-- htobe64 (function macro)
-- htole16 (function macro)
-- htole32 (function macro)
-- htole64 (function macro)
-- le16toh (function macro)
-- le32toh (function macro)
-- le64toh (function macro)
end C.endian;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.features is
pragma Preelaborate;
ATFILE_SOURCE : constant := 1;
DEFAULT_SOURCE : constant := 1;
FEATURES_H : constant := 1;
POSIX_C_SOURCE : constant := 200809;
POSIX_SOURCE : constant := 1;
qqGLIBC_MINORqq : constant := 24;
-- __GLIBC_PREREQ (function macro)
qqGLIBCqq : constant := 2;
-- __GNUC_PREREQ (function macro)
qqGNU_LIBRARYqq : constant := 6;
-- __KERNEL_STRICT_NAMES (empty)
USE_ATFILE : constant := 1;
USE_FORTIFY_LEVEL : constant := 0;
USE_ISOC95 : constant := 1;
USE_ISOC99 : constant := 1;
USE_MISC : constant := 1;
USE_POSIX : constant := 1;
USE_POSIX199309 : constant := 1;
USE_POSIX199506 : constant := 1;
USE_POSIX2 : constant := 1;
USE_POSIX_IMPLICITLY : constant := 1;
USE_XOPEN2K : constant := 1;
USE_XOPEN2K8 : constant := 1;
end C.features;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.gnu.stubs_64 is
pragma Preelaborate;
-- __stub___compat_bdflush (empty)
-- __stub_chflags (empty)
-- __stub_fattach (empty)
-- __stub_fchflags (empty)
-- __stub_fdetach (empty)
-- __stub_getmsg (empty)
-- __stub_gtty (empty)
-- __stub_lchmod (empty)
-- __stub_putmsg (empty)
-- __stub_revoke (empty)
-- __stub_setlogin (empty)
-- __stub_sigreturn (empty)
-- __stub_sstk (empty)
-- __stub_stty (empty)
end C.gnu.stubs_64;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.gnu is
pragma Preelaborate;
end C.gnu;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
with C.stdint;
package C.inttypes is
pragma Preelaborate;
subtype gwchar_t is signed_int;
subtype gwchar_t_const_ptr is signed_int_const_ptr;
subtype gwchar_t_ptr is signed_int_ptr;
subtype gwchar_t_ptr_ptr is signed_int_ptr_ptr;
type struct_667e34eb is record
quot : aliased signed_long;
F_rem : aliased signed_long;
end record;
pragma Convention (C_Pass_By_Copy, struct_667e34eb);
subtype imaxdiv_t is struct_667e34eb;
function imaxabs (n : stdint.intmax_t) return stdint.intmax_t;
pragma Import (C, imaxabs, "imaxabs");
function imaxdiv (numer : stdint.intmax_t; denom : stdint.intmax_t)
return imaxdiv_t;
pragma Import (C, imaxdiv, "imaxdiv");
function strtoimax (nptr : access constant char; endptr : access char_ptr;
base : signed_int) return stdint.intmax_t;
pragma Import (C, strtoimax, "strtoimax");
function strtoumax (nptr : access constant char; endptr : access char_ptr;
base : signed_int) return stdint.uintmax_t;
pragma Import (C, strtoumax, "strtoumax");
function wcstoimax (nptr : access constant gwchar_t;
endptr : access gwchar_t_ptr; base : signed_int)
return stdint.intmax_t;
pragma Import (C, wcstoimax, "wcstoimax");
function wcstoumax (nptr : access constant gwchar_t;
endptr : access gwchar_t_ptr; base : signed_int)
return stdint.uintmax_t;
pragma Import (C, wcstoumax, "wcstoumax");
PRIX16_U : constant char_array (0 .. 1) := "X" & char'Val (0);
PRIX32_U : constant char_array (0 .. 1) := "X" & char'Val (0);
PRIX64_U : constant char_array (0 .. 2) := "lX" & char'Val (0);
PRIX8_U : constant char_array (0 .. 1) := "X" & char'Val (0);
PRIXFAST16_U : constant char_array (0 .. 2) := "lX" & char'Val (0);
PRIXFAST32_U : constant char_array (0 .. 2) := "lX" & char'Val (0);
PRIXFAST64_U : constant char_array (0 .. 2) := "lX" & char'Val (0);
PRIXFAST8_U : constant char_array (0 .. 1) := "X" & char'Val (0);
PRIXLEAST16_U : constant char_array (0 .. 1) := "X" & char'Val (0);
PRIXLEAST32_U : constant char_array (0 .. 1) := "X" & char'Val (0);
PRIXLEAST64_U : constant char_array (0 .. 2) := "lX" & char'Val (0);
PRIXLEAST8_U : constant char_array (0 .. 1) := "X" & char'Val (0);
PRIXMAX_U : constant char_array (0 .. 2) := "lX" & char'Val (0);
PRIXPTR_U : constant char_array (0 .. 2) := "lX" & char'Val (0);
PRId16 : constant char_array (0 .. 1) := "d" & char'Val (0);
PRId32 : constant char_array (0 .. 1) := "d" & char'Val (0);
PRId64 : constant char_array (0 .. 2) := "ld" & char'Val (0);
PRId8 : constant char_array (0 .. 1) := "d" & char'Val (0);
PRIdFAST16 : constant char_array (0 .. 2) := "ld" & char'Val (0);
PRIdFAST32 : constant char_array (0 .. 2) := "ld" & char'Val (0);
PRIdFAST64 : constant char_array (0 .. 2) := "ld" & char'Val (0);
PRIdFAST8 : constant char_array (0 .. 1) := "d" & char'Val (0);
PRIdLEAST16 : constant char_array (0 .. 1) := "d" & char'Val (0);
PRIdLEAST32 : constant char_array (0 .. 1) := "d" & char'Val (0);
PRIdLEAST64 : constant char_array (0 .. 2) := "ld" & char'Val (0);
PRIdLEAST8 : constant char_array (0 .. 1) := "d" & char'Val (0);
PRIdMAX : constant char_array (0 .. 2) := "ld" & char'Val (0);
PRIdPTR : constant char_array (0 .. 2) := "ld" & char'Val (0);
PRIi16 : constant char_array (0 .. 1) := "i" & char'Val (0);
PRIi32 : constant char_array (0 .. 1) := "i" & char'Val (0);
PRIi64 : constant char_array (0 .. 2) := "li" & char'Val (0);
PRIi8 : constant char_array (0 .. 1) := "i" & char'Val (0);
PRIiFAST16 : constant char_array (0 .. 2) := "li" & char'Val (0);
PRIiFAST32 : constant char_array (0 .. 2) := "li" & char'Val (0);
PRIiFAST64 : constant char_array (0 .. 2) := "li" & char'Val (0);
PRIiFAST8 : constant char_array (0 .. 1) := "i" & char'Val (0);
PRIiLEAST16 : constant char_array (0 .. 1) := "i" & char'Val (0);
PRIiLEAST32 : constant char_array (0 .. 1) := "i" & char'Val (0);
PRIiLEAST64 : constant char_array (0 .. 2) := "li" & char'Val (0);
PRIiLEAST8 : constant char_array (0 .. 1) := "i" & char'Val (0);
PRIiMAX : constant char_array (0 .. 2) := "li" & char'Val (0);
PRIiPTR : constant char_array (0 .. 2) := "li" & char'Val (0);
PRIo16 : constant char_array (0 .. 1) := "o" & char'Val (0);
PRIo32 : constant char_array (0 .. 1) := "o" & char'Val (0);
PRIo64 : constant char_array (0 .. 2) := "lo" & char'Val (0);
PRIo8 : constant char_array (0 .. 1) := "o" & char'Val (0);
PRIoFAST16 : constant char_array (0 .. 2) := "lo" & char'Val (0);
PRIoFAST32 : constant char_array (0 .. 2) := "lo" & char'Val (0);
PRIoFAST64 : constant char_array (0 .. 2) := "lo" & char'Val (0);
PRIoFAST8 : constant char_array (0 .. 1) := "o" & char'Val (0);
PRIoLEAST16 : constant char_array (0 .. 1) := "o" & char'Val (0);
PRIoLEAST32 : constant char_array (0 .. 1) := "o" & char'Val (0);
PRIoLEAST64 : constant char_array (0 .. 2) := "lo" & char'Val (0);
PRIoLEAST8 : constant char_array (0 .. 1) := "o" & char'Val (0);
PRIoMAX : constant char_array (0 .. 2) := "lo" & char'Val (0);
PRIoPTR : constant char_array (0 .. 2) := "lo" & char'Val (0);
PRIu16 : constant char_array (0 .. 1) := "u" & char'Val (0);
PRIu32 : constant char_array (0 .. 1) := "u" & char'Val (0);
PRIu64 : constant char_array (0 .. 2) := "lu" & char'Val (0);
PRIu8 : constant char_array (0 .. 1) := "u" & char'Val (0);
PRIuFAST16 : constant char_array (0 .. 2) := "lu" & char'Val (0);
PRIuFAST32 : constant char_array (0 .. 2) := "lu" & char'Val (0);
PRIuFAST64 : constant char_array (0 .. 2) := "lu" & char'Val (0);
PRIuFAST8 : constant char_array (0 .. 1) := "u" & char'Val (0);
PRIuLEAST16 : constant char_array (0 .. 1) := "u" & char'Val (0);
PRIuLEAST32 : constant char_array (0 .. 1) := "u" & char'Val (0);
PRIuLEAST64 : constant char_array (0 .. 2) := "lu" & char'Val (0);
PRIuLEAST8 : constant char_array (0 .. 1) := "u" & char'Val (0);
PRIuMAX : constant char_array (0 .. 2) := "lu" & char'Val (0);
PRIuPTR : constant char_array (0 .. 2) := "lu" & char'Val (0);
PRIx16 : constant char_array (0 .. 1) := "x" & char'Val (0);
PRIx32 : constant char_array (0 .. 1) := "x" & char'Val (0);
PRIx64 : constant char_array (0 .. 2) := "lx" & char'Val (0);
PRIx8 : constant char_array (0 .. 1) := "x" & char'Val (0);
PRIxFAST16 : constant char_array (0 .. 2) := "lx" & char'Val (0);
PRIxFAST32 : constant char_array (0 .. 2) := "lx" & char'Val (0);
PRIxFAST64 : constant char_array (0 .. 2) := "lx" & char'Val (0);
PRIxFAST8 : constant char_array (0 .. 1) := "x" & char'Val (0);
PRIxLEAST16 : constant char_array (0 .. 1) := "x" & char'Val (0);
PRIxLEAST32 : constant char_array (0 .. 1) := "x" & char'Val (0);
PRIxLEAST64 : constant char_array (0 .. 2) := "lx" & char'Val (0);
PRIxLEAST8 : constant char_array (0 .. 1) := "x" & char'Val (0);
PRIxMAX : constant char_array (0 .. 2) := "lx" & char'Val (0);
PRIxPTR : constant char_array (0 .. 2) := "lx" & char'Val (0);
SCNd16 : constant char_array (0 .. 2) := "hd" & char'Val (0);
SCNd32 : constant char_array (0 .. 1) := "d" & char'Val (0);
SCNd64 : constant char_array (0 .. 2) := "ld" & char'Val (0);
SCNd8 : constant char_array (0 .. 3) := "hhd" & char'Val (0);
SCNdFAST16 : constant char_array (0 .. 2) := "ld" & char'Val (0);
SCNdFAST32 : constant char_array (0 .. 2) := "ld" & char'Val (0);
SCNdFAST64 : constant char_array (0 .. 2) := "ld" & char'Val (0);
SCNdFAST8 : constant char_array (0 .. 3) := "hhd" & char'Val (0);
SCNdLEAST16 : constant char_array (0 .. 2) := "hd" & char'Val (0);
SCNdLEAST32 : constant char_array (0 .. 1) := "d" & char'Val (0);
SCNdLEAST64 : constant char_array (0 .. 2) := "ld" & char'Val (0);
SCNdLEAST8 : constant char_array (0 .. 3) := "hhd" & char'Val (0);
SCNdMAX : constant char_array (0 .. 2) := "ld" & char'Val (0);
SCNdPTR : constant char_array (0 .. 2) := "ld" & char'Val (0);
SCNi16 : constant char_array (0 .. 2) := "hi" & char'Val (0);
SCNi32 : constant char_array (0 .. 1) := "i" & char'Val (0);
SCNi64 : constant char_array (0 .. 2) := "li" & char'Val (0);
SCNi8 : constant char_array (0 .. 3) := "hhi" & char'Val (0);
SCNiFAST16 : constant char_array (0 .. 2) := "li" & char'Val (0);
SCNiFAST32 : constant char_array (0 .. 2) := "li" & char'Val (0);
SCNiFAST64 : constant char_array (0 .. 2) := "li" & char'Val (0);
SCNiFAST8 : constant char_array (0 .. 3) := "hhi" & char'Val (0);
SCNiLEAST16 : constant char_array (0 .. 2) := "hi" & char'Val (0);
SCNiLEAST32 : constant char_array (0 .. 1) := "i" & char'Val (0);
SCNiLEAST64 : constant char_array (0 .. 2) := "li" & char'Val (0);
SCNiLEAST8 : constant char_array (0 .. 3) := "hhi" & char'Val (0);
SCNiMAX : constant char_array (0 .. 2) := "li" & char'Val (0);
SCNiPTR : constant char_array (0 .. 2) := "li" & char'Val (0);
SCNo16 : constant char_array (0 .. 2) := "ho" & char'Val (0);
SCNo32 : constant char_array (0 .. 1) := "o" & char'Val (0);
SCNo64 : constant char_array (0 .. 2) := "lo" & char'Val (0);
SCNo8 : constant char_array (0 .. 3) := "hho" & char'Val (0);
SCNoFAST16 : constant char_array (0 .. 2) := "lo" & char'Val (0);
SCNoFAST32 : constant char_array (0 .. 2) := "lo" & char'Val (0);
SCNoFAST64 : constant char_array (0 .. 2) := "lo" & char'Val (0);
SCNoFAST8 : constant char_array (0 .. 3) := "hho" & char'Val (0);
SCNoLEAST16 : constant char_array (0 .. 2) := "ho" & char'Val (0);
SCNoLEAST32 : constant char_array (0 .. 1) := "o" & char'Val (0);
SCNoLEAST64 : constant char_array (0 .. 2) := "lo" & char'Val (0);
SCNoLEAST8 : constant char_array (0 .. 3) := "hho" & char'Val (0);
SCNoMAX : constant char_array (0 .. 2) := "lo" & char'Val (0);
SCNoPTR : constant char_array (0 .. 2) := "lo" & char'Val (0);
SCNu16 : constant char_array (0 .. 2) := "hu" & char'Val (0);
SCNu32 : constant char_array (0 .. 1) := "u" & char'Val (0);
SCNu64 : constant char_array (0 .. 2) := "lu" & char'Val (0);
SCNu8 : constant char_array (0 .. 3) := "hhu" & char'Val (0);
SCNuFAST16 : constant char_array (0 .. 2) := "lu" & char'Val (0);
SCNuFAST32 : constant char_array (0 .. 2) := "lu" & char'Val (0);
SCNuFAST64 : constant char_array (0 .. 2) := "lu" & char'Val (0);
SCNuFAST8 : constant char_array (0 .. 3) := "hhu" & char'Val (0);
SCNuLEAST16 : constant char_array (0 .. 2) := "hu" & char'Val (0);
SCNuLEAST32 : constant char_array (0 .. 1) := "u" & char'Val (0);
SCNuLEAST64 : constant char_array (0 .. 2) := "lu" & char'Val (0);
SCNuLEAST8 : constant char_array (0 .. 3) := "hhu" & char'Val (0);
SCNuMAX : constant char_array (0 .. 2) := "lu" & char'Val (0);
SCNuPTR : constant char_array (0 .. 2) := "lu" & char'Val (0);
SCNx16 : constant char_array (0 .. 2) := "hx" & char'Val (0);
SCNx32 : constant char_array (0 .. 1) := "x" & char'Val (0);
SCNx64 : constant char_array (0 .. 2) := "lx" & char'Val (0);
SCNx8 : constant char_array (0 .. 3) := "hhx" & char'Val (0);
SCNxFAST16 : constant char_array (0 .. 2) := "lx" & char'Val (0);
SCNxFAST32 : constant char_array (0 .. 2) := "lx" & char'Val (0);
SCNxFAST64 : constant char_array (0 .. 2) := "lx" & char'Val (0);
SCNxFAST8 : constant char_array (0 .. 3) := "hhx" & char'Val (0);
SCNxLEAST16 : constant char_array (0 .. 2) := "hx" & char'Val (0);
SCNxLEAST32 : constant char_array (0 .. 1) := "x" & char'Val (0);
SCNxLEAST64 : constant char_array (0 .. 2) := "lx" & char'Val (0);
SCNxLEAST8 : constant char_array (0 .. 3) := "hhx" & char'Val (0);
SCNxMAX : constant char_array (0 .. 2) := "lx" & char'Val (0);
SCNxPTR : constant char_array (0 .. 2) := "lx" & char'Val (0);
INTTYPES_H : constant := 1;
PRI64_PREFIX : constant char_array (0 .. 1) := "l" & char'Val (0);
PRIPTR_PREFIX : constant char_array (0 .. 1) := "l" & char'Val (0);
gwchar_t_defined : constant := 1;
end C.inttypes;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
with C.sys.types;
package C.openssl.e_os2 is
pragma Preelaborate;
-- HEADER_E_OS2_H (empty)
-- OPENSSL_DECLARE_EXIT (empty)
-- OPENSSL_DECLARE_GLOBAL (has # or ##)
-- OPENSSL_EXPORT (alias of extern)
-- OPENSSL_EXTERN (alias of extern)
-- OPENSSL_GLOBAL_REF (has # or ##)
-- OPENSSL_IMPLEMENT_GLOBAL (has # or ##)
-- OPENSSL_SYS_LINUX (empty)
-- OPENSSL_SYS_UNIX (empty)
-- OPENSSL_UNISTD_IO (unparsible)
OSSL_SSIZE_MAX : constant := 9223372036854775807;
-- __owur (empty)
-- ossl_inline (alias of inline)
-- ossl_noreturn (attribute)
subtype ossl_ssize_t is sys.types.ssize_t;
-- ossl_unused (attribute)
end C.openssl.e_os2;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
with C.stddef;
package C.openssl.md5 is
pragma Preelaborate;
type struct_MD5state_st;
type struct_MD5state_st is record
A : aliased unsigned_int;
B : aliased unsigned_int;
C : aliased unsigned_int;
D : aliased unsigned_int;
Nl : aliased unsigned_int;
Nh : aliased unsigned_int;
data : aliased unsigned_int_array (0 .. 15);
num : aliased unsigned_int;
end record;
pragma Convention (C_Pass_By_Copy, struct_MD5state_st);
type struct_MD5state_st_ptr is access all struct_MD5state_st;
for struct_MD5state_st_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (struct_MD5state_st_ptr);
pragma Convention (C, struct_MD5state_st_ptr);
subtype MD5_CTX is struct_MD5state_st;
subtype MD5_CTX_ptr is struct_MD5state_st_ptr;
function MD5_Init (c : access MD5_CTX) return signed_int;
pragma Import (C, MD5_Init, "MD5_Init");
function MD5_Update (c : access MD5_CTX; data : void_const_ptr;
len : stddef.size_t) return signed_int;
pragma Import (C, MD5_Update, "MD5_Update");
function MD5_Final (md : access unsigned_char; c : access MD5_CTX)
return signed_int;
pragma Import (C, MD5_Final, "MD5_Final");
function MD5 (d : access constant unsigned_char; n : stddef.size_t;
md : access unsigned_char) return unsigned_char_ptr;
pragma Import (C, MD5, "MD5");
procedure MD5_Transform (c : access MD5_CTX;
b : access constant unsigned_char);
pragma Import (C, MD5_Transform, "MD5_Transform");
-- HEADER_MD5_H (empty)
MD5_CBLOCK : constant := 64;
MD5_DIGEST_LENGTH : constant := 16;
MD5_LBLOCK : constant := 16;
subtype MD5_LONG is unsigned_int;
end C.openssl.md5;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.openssl.opensslconf is
pragma Preelaborate;
-- DECLARE_DEPRECATED (unparsible)
-- DEPRECATEDIN_0_9_8 (unparsible)
-- DEPRECATEDIN_1_0_0 (unparsible)
-- DEPRECATEDIN_1_1_0 (unparsible)
-- DEPRECATEDIN_1_2_0 (function macro)
-- NON_EMPTY_TRANSLATION_UNIT (unparsible)
OPENSSL_API_COMPAT : constant := 0;
OPENSSL_FILE : constant char_array (0 .. 0) := (0 => char'Val (0));
OPENSSL_LINE : constant := 0;
OPENSSL_MIN_API : constant := 0;
-- OPENSSL_NO_ASAN (empty)
-- OPENSSL_NO_CRYPTO_MDEBUG (empty)
-- OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE (empty)
-- OPENSSL_NO_DEVCRYPTOENG (empty)
-- OPENSSL_NO_EGD (empty)
-- OPENSSL_NO_EXTERNAL_TESTS (empty)
-- OPENSSL_NO_FUZZ_AFL (empty)
-- OPENSSL_NO_FUZZ_LIBFUZZER (empty)
-- OPENSSL_NO_HEARTBEATS (empty)
-- OPENSSL_NO_IDEA (empty)
-- OPENSSL_NO_MD2 (empty)
-- OPENSSL_NO_MDC2 (empty)
-- OPENSSL_NO_MSAN (empty)
-- OPENSSL_NO_RC5 (empty)
-- OPENSSL_NO_SCTP (empty)
-- OPENSSL_NO_SSL3 (empty)
-- OPENSSL_NO_SSL3_METHOD (empty)
-- OPENSSL_NO_SSL_TRACE (empty)
-- OPENSSL_NO_STATIC_ENGINE (empty)
-- OPENSSL_NO_UBSAN (empty)
-- OPENSSL_NO_WEAK_SSL_CIPHERS (empty)
-- OPENSSL_RAND_SEED_OS (empty)
-- OPENSSL_THREADS (empty)
-- OPENSSL_UNISTD (unparsible)
subtype RC4_INT is unsigned_int;
-- SIXTY_FOUR_BIT_LONG (empty)
end C.openssl.opensslconf;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.openssl.opensslv is
pragma Preelaborate;
-- HEADER_OPENSSLV_H (empty)
OPENSSL_VERSION_NUMBER : constant := 269488207;
OPENSSL_VERSION_TEXT : constant char_array (0 .. 27) :=
"OpenSSL 1.1.1d 10 Sep 2019" & char'Val (0);
SHLIB_VERSION_HISTORY : constant char_array (0 .. 0) :=
(0 => char'Val (0));
SHLIB_VERSION_NUMBER : constant char_array (0 .. 3) := "1.1"
& char'Val (0);
end C.openssl.opensslv;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
with C.stddef;
package C.openssl.sha is
pragma Preelaborate;
type struct_SHAstate_st;
type struct_SHAstate_st is record
h0 : aliased unsigned_int;
h1 : aliased unsigned_int;
h2 : aliased unsigned_int;
h3 : aliased unsigned_int;
h4 : aliased unsigned_int;
Nl : aliased unsigned_int;
Nh : aliased unsigned_int;
data : aliased unsigned_int_array (0 .. 15);
num : aliased unsigned_int;
end record;
pragma Convention (C_Pass_By_Copy, struct_SHAstate_st);
type struct_SHAstate_st_ptr is access all struct_SHAstate_st;
for struct_SHAstate_st_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (struct_SHAstate_st_ptr);
pragma Convention (C, struct_SHAstate_st_ptr);
subtype SHA_CTX is struct_SHAstate_st;
subtype SHA_CTX_ptr is struct_SHAstate_st_ptr;
function SHA1_Init (c : access SHA_CTX) return signed_int;
pragma Import (C, SHA1_Init, "SHA1_Init");
function SHA1_Update (c : access SHA_CTX; data : void_const_ptr;
len : stddef.size_t) return signed_int;
pragma Import (C, SHA1_Update, "SHA1_Update");
function SHA1_Final (md : access unsigned_char; c : access SHA_CTX)
return signed_int;
pragma Import (C, SHA1_Final, "SHA1_Final");
function SHA1 (d : access constant unsigned_char; n : stddef.size_t;
md : access unsigned_char) return unsigned_char_ptr;
pragma Import (C, SHA1, "SHA1");
procedure SHA1_Transform (c : access SHA_CTX;
data : access constant unsigned_char);
pragma Import (C, SHA1_Transform, "SHA1_Transform");
type struct_SHA256state_st;
type struct_SHA256state_st is record
h : aliased unsigned_int_array (0 .. 7);
Nl : aliased unsigned_int;
Nh : aliased unsigned_int;
data : aliased unsigned_int_array (0 .. 15);
num : aliased unsigned_int;
md_len : aliased unsigned_int;
end record;
pragma Convention (C_Pass_By_Copy, struct_SHA256state_st);
type struct_SHA256state_st_ptr is access all struct_SHA256state_st;
for struct_SHA256state_st_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (struct_SHA256state_st_ptr);
pragma Convention (C, struct_SHA256state_st_ptr);
subtype SHA256_CTX is struct_SHA256state_st;
subtype SHA256_CTX_ptr is struct_SHA256state_st_ptr;
function SHA224_Init (c : access SHA256_CTX) return signed_int;
pragma Import (C, SHA224_Init, "SHA224_Init");
function SHA224_Update (c : access SHA256_CTX; data : void_const_ptr;
len : stddef.size_t) return signed_int;
pragma Import (C, SHA224_Update, "SHA224_Update");
function SHA224_Final (md : access unsigned_char; c : access SHA256_CTX)
return signed_int;
pragma Import (C, SHA224_Final, "SHA224_Final");
function SHA224 (d : access constant unsigned_char; n : stddef.size_t;
md : access unsigned_char) return unsigned_char_ptr;
pragma Import (C, SHA224, "SHA224");
function SHA256_Init (c : access SHA256_CTX) return signed_int;
pragma Import (C, SHA256_Init, "SHA256_Init");
function SHA256_Update (c : access SHA256_CTX; data : void_const_ptr;
len : stddef.size_t) return signed_int;
pragma Import (C, SHA256_Update, "SHA256_Update");
function SHA256_Final (md : access unsigned_char; c : access SHA256_CTX)
return signed_int;
pragma Import (C, SHA256_Final, "SHA256_Final");
function SHA256 (d : access constant unsigned_char; n : stddef.size_t;
md : access unsigned_char) return unsigned_char_ptr;
pragma Import (C, SHA256, "SHA256");
procedure SHA256_Transform (c : access SHA256_CTX;
data : access constant unsigned_char);
pragma Import (C, SHA256_Transform, "SHA256_Transform");
type struct_SHA512state_st;
type union_5db80df3 (Unchecked_Tag : unsigned_int := 0) is record
case Unchecked_Tag is
when 0 =>
d : unsigned_long_long_array (0 .. 15);
when others =>
p : unsigned_char_array (0 .. 127);
end case;
end record;
pragma Unchecked_Union (union_5db80df3);
pragma Convention (C_Pass_By_Copy, union_5db80df3);
type struct_SHA512state_st is record
h : aliased unsigned_long_long_array (0 .. 7);
Nl : aliased unsigned_long_long;
Nh : aliased unsigned_long_long;
u : aliased union_5db80df3;
num : aliased unsigned_int;
md_len : aliased unsigned_int;
end record;
pragma Convention (C_Pass_By_Copy, struct_SHA512state_st);
type struct_SHA512state_st_ptr is access all struct_SHA512state_st;
for struct_SHA512state_st_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (struct_SHA512state_st_ptr);
pragma Convention (C, struct_SHA512state_st_ptr);
subtype SHA512_CTX is struct_SHA512state_st;
subtype SHA512_CTX_ptr is struct_SHA512state_st_ptr;
function SHA384_Init (c : access SHA512_CTX) return signed_int;
pragma Import (C, SHA384_Init, "SHA384_Init");
function SHA384_Update (c : access SHA512_CTX; data : void_const_ptr;
len : stddef.size_t) return signed_int;
pragma Import (C, SHA384_Update, "SHA384_Update");
function SHA384_Final (md : access unsigned_char; c : access SHA512_CTX)
return signed_int;
pragma Import (C, SHA384_Final, "SHA384_Final");
function SHA384 (d : access constant unsigned_char; n : stddef.size_t;
md : access unsigned_char) return unsigned_char_ptr;
pragma Import (C, SHA384, "SHA384");
function SHA512_Init (c : access SHA512_CTX) return signed_int;
pragma Import (C, SHA512_Init, "SHA512_Init");
function SHA512_Update (c : access SHA512_CTX; data : void_const_ptr;
len : stddef.size_t) return signed_int;
pragma Import (C, SHA512_Update, "SHA512_Update");
function SHA512_Final (md : access unsigned_char; c : access SHA512_CTX)
return signed_int;
pragma Import (C, SHA512_Final, "SHA512_Final");
function SHA512 (d : access constant unsigned_char; n : stddef.size_t;
md : access unsigned_char) return unsigned_char_ptr;
pragma Import (C, SHA512, "SHA512");
procedure SHA512_Transform (c : access SHA512_CTX;
data : access constant unsigned_char);
pragma Import (C, SHA512_Transform, "SHA512_Transform");
-- HEADER_SHA_H (empty)
SHA224_DIGEST_LENGTH : constant := 28;
SHA256_CBLOCK : constant := 64;
SHA256_DIGEST_LENGTH : constant := 32;
SHA384_DIGEST_LENGTH : constant := 48;
SHA512_CBLOCK : constant := 128;
SHA512_DIGEST_LENGTH : constant := 64;
SHA_CBLOCK : constant := 64;
SHA_DIGEST_LENGTH : constant := 20;
SHA_LAST_BLOCK : constant := 56;
SHA_LBLOCK : constant := 16;
subtype SHA_LONG is unsigned_int;
subtype SHA_LONG64 is unsigned_long_long;
-- U64 (has # or ##)
end C.openssl.sha;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.openssl is
pragma Preelaborate;
end C.openssl;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.stddef is
pragma Preelaborate;
subtype size_t is Standard.C.size_t;
-- #include <bits/byteswap.h>
-- #include <bits/sigset.h>
-- #include <time.h>
-- #include <bits/time.h>
-- #include <sys/select.h>
-- #include <sys/sysmacros.h>
-- #include <sys/types.h>
-- #include <bits/pthreadtypes.h>
-- #include <stdint.h>
-- #include <inttypes.h>
subtype ptrdiff_t is Standard.C.ptrdiff_t;
subtype wchar_t is Standard.C.wchar_t;
C_NULL : constant void_ptr := void_ptr (System'To_Address (0));
-- _ANSI_STDDEF_H (empty)
-- _BSD_PTRDIFF_T_ (empty)
-- _BSD_SIZE_T_ (empty)
-- _BSD_SIZE_T_DEFINED_ (empty)
-- _GCC_PTRDIFF_T (empty)
-- _GCC_SIZE_T (empty)
-- _GCC_WCHAR_T (empty)
-- _PTRDIFF_T (empty)
-- _PTRDIFF_T_ (empty)
-- _PTRDIFF_T_DECLARED (empty)
-- _SIZET_ (empty)
-- _SIZE_T (empty)
-- _SIZE_T_ (empty)
-- _SIZE_T_DECLARED (empty)
-- _SIZE_T_DEFINED (empty)
-- _SIZE_T_DEFINED_ (empty)
-- _STDDEF_H (empty)
-- _STDDEF_H_ (empty)
-- _SYS_SIZE_T_H (empty)
-- _T_PTRDIFF (empty)
-- _T_PTRDIFF_ (empty)
-- _T_SIZE (empty)
-- _T_SIZE_ (empty)
-- _T_WCHAR (empty)
-- _T_WCHAR_ (empty)
-- _WCHAR_T (empty)
-- _WCHAR_T_ (empty)
-- _WCHAR_T_DECLARED (empty)
-- _WCHAR_T_DEFINED (empty)
-- _WCHAR_T_DEFINED_ (empty)
-- _WCHAR_T_H (empty)
-- __INT_WCHAR_T_H (empty)
-- __PTRDIFF_T (empty)
-- __SIZE_T (empty)
-- __SIZE_T__ (empty)
-- __WCHAR_T (empty)
-- __WCHAR_T__ (empty)
-- ___int_ptrdiff_t_h (empty)
-- ___int_size_t_h (empty)
-- ___int_wchar_t_h (empty)
-- __size_t (empty)
-- __size_t__ (empty)
-- __wchar_t__ (empty)
-- offsetof (unparsible)
end C.stddef;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.stdint is
pragma Preelaborate;
subtype uint8_t is unsigned_char;
subtype uint16_t is unsigned_short;
subtype uint32_t is unsigned_int;
subtype uint64_t is unsigned_long;
subtype int_least8_t is signed_char;
subtype int_least16_t is signed_short;
subtype int_least32_t is signed_int;
subtype int_least64_t is signed_long;
subtype uint_least8_t is unsigned_char;
subtype uint_least16_t is unsigned_short;
subtype uint_least32_t is unsigned_int;
subtype uint_least64_t is unsigned_long;
subtype int_fast8_t is signed_char;
subtype int_fast16_t is signed_long;
subtype int_fast32_t is signed_long;
subtype int_fast64_t is signed_long;
subtype uint_fast8_t is unsigned_char;
subtype uint_fast16_t is unsigned_long;
subtype uint_fast32_t is unsigned_long;
subtype uint_fast64_t is unsigned_long;
subtype intptr_t is signed_long;
subtype uintptr_t is unsigned_long;
subtype intmax_t is signed_long;
subtype uintmax_t is unsigned_long;
-- INT16_C (function macro)
INT16_MAX : constant := 32767;
INT16_MIN : constant := -32768;
-- INT32_C (function macro)
INT32_MAX : constant := 2147483647;
INT32_MIN : constant := -2147483648;
-- INT64_C (has # or ##)
INT64_MAX : constant := 9223372036854775807;
INT64_MIN : constant := -9223372036854775808;
-- INT8_C (function macro)
INT8_MAX : constant := 127;
INT8_MIN : constant := -128;
-- INTMAX_C (has # or ##)
INTMAX_MAX : constant := 9223372036854775807;
INTMAX_MIN : constant := -9223372036854775808;
INTPTR_MAX : constant := 9223372036854775807;
INTPTR_MIN : constant := -9223372036854775808;
INT_FAST16_MAX : constant := 9223372036854775807;
INT_FAST16_MIN : constant := -9223372036854775808;
INT_FAST32_MAX : constant := 9223372036854775807;
INT_FAST32_MIN : constant := -9223372036854775808;
INT_FAST64_MAX : constant := 9223372036854775807;
INT_FAST64_MIN : constant := -9223372036854775808;
INT_FAST8_MAX : constant := 127;
INT_FAST8_MIN : constant := -128;
INT_LEAST16_MAX : constant := 32767;
INT_LEAST16_MIN : constant := -32768;
INT_LEAST32_MAX : constant := 2147483647;
INT_LEAST32_MIN : constant := -2147483648;
INT_LEAST64_MAX : constant := 9223372036854775807;
INT_LEAST64_MIN : constant := -9223372036854775808;
INT_LEAST8_MAX : constant := 127;
INT_LEAST8_MIN : constant := -128;
PTRDIFF_MAX : constant := 9223372036854775807;
PTRDIFF_MIN : constant := -9223372036854775808;
SIG_ATOMIC_MAX : constant := 2147483647;
SIG_ATOMIC_MIN : constant := -2147483648;
SIZE_MAX : constant := 18446744073709551615;
-- UINT16_C (function macro)
UINT16_MAX : constant := 65535;
-- UINT32_C (has # or ##)
UINT32_MAX : constant := 4294967295;
-- UINT64_C (has # or ##)
UINT64_MAX : constant := 18446744073709551615;
-- UINT8_C (function macro)
UINT8_MAX : constant := 255;
-- UINTMAX_C (has # or ##)
UINTMAX_MAX : constant := 18446744073709551615;
UINTPTR_MAX : constant := 18446744073709551615;
UINT_FAST16_MAX : constant := 18446744073709551615;
UINT_FAST32_MAX : constant := 18446744073709551615;
UINT_FAST64_MAX : constant := 18446744073709551615;
UINT_FAST8_MAX : constant := 255;
UINT_LEAST16_MAX : constant := 65535;
UINT_LEAST32_MAX : constant := 4294967295;
UINT_LEAST64_MAX : constant := 18446744073709551615;
UINT_LEAST8_MAX : constant := 255;
WCHAR_MAX : constant := 2147483647;
WCHAR_MIN : constant := -2147483648;
WINT_MAX : constant := 4294967295;
WINT_MIN : constant := 0;
STDINT_H : constant := 1;
-- __intptr_t_defined (empty)
-- __uint32_t_defined (empty)
-- _GCC_WRAP_STDINT_H (empty)
end C.stdint;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.sys.cdefs is
pragma Preelaborate;
SYS_CDEFS_H : constant := 1;
-- __ASMNAME (unparsible)
-- __ASMNAME2 (unparsible)
-- __BEGIN_DECLS (empty)
-- __BEGIN_NAMESPACE_C99 (empty)
-- __BEGIN_NAMESPACE_STD (empty)
-- __CONCAT (has # or ##)
-- __END_DECLS (empty)
-- __END_NAMESPACE_C99 (empty)
-- __END_NAMESPACE_STD (empty)
-- __LDBL_REDIR (unparsible)
-- __LDBL_REDIR1 (unparsible)
-- __LDBL_REDIR1_NTH (unparsible)
-- __LDBL_REDIR_DECL (empty)
-- __LDBL_REDIR_NTH (unparsible)
-- __LEAF (unparsible)
-- __LEAF_ATTR (attribute)
-- __NTH (unparsible)
-- __P (function macro)
-- __PMT (function macro)
-- __REDIRECT (has # or ##)
-- __REDIRECT_LDBL (unparsible)
-- __REDIRECT_NTH (has # or ##)
-- __REDIRECT_NTHNL (has # or ##)
-- __REDIRECT_NTH_LDBL (unparsible)
-- __STRING (has # or ##)
-- __THROW (attribute)
-- __THROWNL (attribute)
-- __USING_NAMESPACE_C99 (empty)
-- __USING_NAMESPACE_STD (empty)
-- __always_inline (alias of inline)
-- __attribute_alloc_size__ (unparsible)
-- __attribute_artificial__ (attribute)
-- __attribute_const__ (attribute)
-- __attribute_deprecated__ (attribute)
-- __attribute_format_arg__ (parameterized declaration-specifiers)
-- __attribute_format_strfmon__ (parameterized declaration-specifiers)
-- __attribute_malloc__ (attribute)
-- __attribute_noinline__ (attribute)
-- __attribute_pure__ (attribute)
-- __attribute_used__ (attribute)
-- __attribute_warn_unused_result__ (attribute)
-- __bos (function macro)
-- __bos0 (function macro)
-- __errordecl (unparsible)
-- __extern_always_inline (unparsible)
-- __extern_inline (alias of inline)
-- __flexarr (unparsible)
-- __fortify_function (unparsible)
-- __glibc_likely (function macro)
-- __glibc_unlikely (function macro)
subtype long_double_t is long_double;
-- __nonnull (unparsible)
-- __ptr_t (unparsible)
-- __restrict_arr (alias of restrict)
-- __va_arg_pack (unparsible)
-- __va_arg_pack_len (unparsible)
-- __warnattr (unparsible)
-- __warndecl (unparsible)
-- __wur (empty)
end C.sys.cdefs;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
with C.bits.sigset;
with C.bits.time;
with C.bits.types;
with C.time;
package C.sys.select_h is
pragma Preelaborate;
subtype sigset_t is bits.sigset.sigset_t;
-- #include <time.h>
-- #include <bits/time.h>
subtype suseconds_t is bits.types.suseconds_t;
subtype qqfd_mask is signed_long;
subtype qqfd_mask_array is signed_long_array;
type struct_8a2ace08 is record
fds_bits : aliased qqfd_mask_array (0 .. 15);
end record;
pragma Convention (C_Pass_By_Copy, struct_8a2ace08);
type struct_8a2ace08_ptr is access all struct_8a2ace08;
for struct_8a2ace08_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (struct_8a2ace08_ptr);
pragma Convention (C, struct_8a2ace08_ptr);
subtype fd_set is struct_8a2ace08;
subtype fd_set_ptr is struct_8a2ace08_ptr;
subtype fd_mask is qqfd_mask;
function C_select (nfds : signed_int; readfds : access fd_set;
writefds : access fd_set; exceptfds : access fd_set;
timeout : access bits.time.struct_timeval) return signed_int;
pragma Import (C, C_select, "select");
function pselect (nfds : signed_int; readfds : access fd_set;
writefds : access fd_set; exceptfds : access fd_set;
timeout : access constant time.struct_timespec;
sigmask : access constant bits.sigset.sigset_t) return signed_int;
pragma Import (C, pselect, "pselect");
-- FD_CLR (uninterpretable)
-- FD_ISSET (uninterpretable)
-- FD_SET (uninterpretable)
FD_SETSIZE : constant := 1024;
-- FD_ZERO (uninterpretable)
NFDBITS : constant := 64;
SYS_SELECT_H : constant := 1;
-- __FDS_BITS (uninterpretable)
-- __FD_ELT (function macro)
-- __FD_MASK (function macro)
qqNFDBITS : constant := 64;
-- __sigset_t_defined (empty)
-- __suseconds_t_defined (empty)
end C.sys.select_h;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.sys.sysmacros is
pragma Preelaborate;
function gnu_dev_major (dev : unsigned_long_long) return unsigned_int;
pragma Import (C, gnu_dev_major, "gnu_dev_major");
function gnu_dev_minor (dev : unsigned_long_long) return unsigned_int;
pragma Import (C, gnu_dev_minor, "gnu_dev_minor");
function gnu_dev_makedev (major : unsigned_int; minor : unsigned_int)
return unsigned_long_long;
pragma Import (C, gnu_dev_makedev, "gnu_dev_makedev");
SYS_SYSMACROS_H : constant := 1;
-- major (unparsible)
-- makedev (unparsible)
-- minor (unparsible)
end C.sys.sysmacros;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
with C.bits.types;
package C.sys.types is
pragma Preelaborate;
subtype u_char is bits.types.u_char;
subtype u_short is bits.types.u_short;
subtype u_int is bits.types.u_int;
subtype u_long is bits.types.u_long;
subtype quad_t is bits.types.quad_t;
subtype u_quad_t is bits.types.u_quad_t;
subtype fsid_t is bits.types.fsid_t;
subtype loff_t is bits.types.loff_t;
subtype ino_t is bits.types.ino_t;
subtype dev_t is bits.types.dev_t;
subtype gid_t is bits.types.gid_t;
subtype mode_t is bits.types.mode_t;
subtype nlink_t is bits.types.nlink_t;
subtype uid_t is bits.types.uid_t;
subtype off_t is bits.types.off_t;
subtype pid_t is bits.types.pid_t;
subtype id_t is bits.types.id_t;
subtype ssize_t is bits.types.ssize_t;
subtype daddr_t is bits.types.daddr_t;
subtype caddr_t is bits.types.caddr_t;
subtype key_t is bits.types.key_t;
-- #include <time.h>
-- #include <stddef.h>
subtype ulong is unsigned_long;
subtype ushort is unsigned_short;
subtype uint is unsigned_int;
subtype int8_t is signed_char;
subtype int16_t is signed_short;
subtype int32_t is signed_int;
subtype int64_t is signed_long;
subtype u_int8_t is unsigned_char;
subtype u_int16_t is unsigned_short;
subtype u_int32_t is unsigned_int;
subtype u_int64_t is unsigned_long;
subtype register_t is signed_long;
-- #include <bits/byteswap.h>
-- #include <bits/sigset.h>
-- #include <time.h>
-- #include <bits/time.h>
-- #include <sys/select.h>
-- #include <sys/sysmacros.h>
subtype blksize_t is bits.types.blksize_t;
subtype blkcnt_t is bits.types.blkcnt_t;
subtype fsblkcnt_t is bits.types.fsblkcnt_t;
subtype fsfilcnt_t is bits.types.fsfilcnt_t;
SYS_TYPES_H : constant := 1;
qqBIT_TYPES_DEFINEDqq : constant := 1;
-- __blkcnt_t_defined (empty)
-- __blksize_t_defined (empty)
-- __daddr_t_defined (empty)
-- __dev_t_defined (empty)
-- __fsblkcnt_t_defined (empty)
-- __fsfilcnt_t_defined (empty)
-- __gid_t_defined (empty)
-- __id_t_defined (empty)
-- __ino_t_defined (empty)
-- __int8_t_defined (empty)
-- __intN_t (has # or ##)
-- __key_t_defined (empty)
-- __mode_t_defined (empty)
-- __need_clockid_t (empty)
-- __nlink_t_defined (empty)
-- __off_t_defined (empty)
-- __pid_t_defined (empty)
-- __ssize_t_defined (empty)
-- __u_char_defined (empty)
-- __u_intN_t (has # or ##)
-- __uid_t_defined (empty)
end C.sys.types;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
package C.sys is
pragma Preelaborate;
end C.sys;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
with C.bits.types;
package C.time is
pragma Preelaborate;
subtype clock_t is bits.types.qqclock_t;
subtype time_t is bits.types.qqtime_t;
subtype clockid_t is bits.types.qqclockid_t;
subtype timer_t is bits.types.qqtimer_t;
-- #include <stddef.h>
-- #include <sys/types.h>
-- #include <bits/byteswap.h>
-- #include <bits/sigset.h>
-- #include <sys/select.h>
type struct_timespec;
type struct_timespec is record
tv_sec : aliased bits.types.qqtime_t;
tv_nsec : aliased bits.types.syscall_slong_t;
end record;
pragma Convention (C_Pass_By_Copy, struct_timespec);
type struct_timespec_const_ptr is access constant struct_timespec;
for struct_timespec_const_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (struct_timespec_const_ptr);
pragma Convention (C, struct_timespec_const_ptr);
clock_t_defined : constant := 1;
clockid_t_defined : constant := 1;
time_t_defined : constant := 1;
timer_t_defined : constant := 1;
timespec_defined : constant := 1;
end C.time;
-- This file is translated by "headmaster" version 0.30-e83b81d (devel).
-- The original C header's license should be applied to this file.
-- All conditional-directives are expanded for the exclusive use of your
-- environment, it is not recommended to commit this file to any repository.
-------------------------------------------------------------------------------
with System;
package C is
pragma Preelaborate;
-- type void (<>) is limited private;
type bool is new Boolean;
pragma Convention (C, bool);
type signed_char is new Short_Short_Integer;
pragma Convention (C, signed_char);
type unsigned_char is mod 2 ** signed_char'Size;
pragma Convention (C, unsigned_char);
type signed_short is new Short_Integer;
pragma Convention (C, signed_short);
type unsigned_short is mod 2 ** signed_short'Size;
pragma Convention (C, unsigned_short);
type signed_int is new Integer;
pragma Convention (C, signed_int);
type unsigned_int is mod 2 ** signed_int'Size;
pragma Convention (C, unsigned_int);
type signed_long is new Long_Integer;
pragma Convention (C, signed_long);
type unsigned_long is mod 2 ** signed_long'Size;
pragma Convention (C, unsigned_long);
type signed_long_long is new Long_Long_Integer;
pragma Convention (C, signed_long_long);
type unsigned_long_long is mod 2 ** signed_long_long'Size;
pragma Convention (C, unsigned_long_long);
type float is new Standard.Float;
pragma Convention (C, float);
type double is new Long_Float;
pragma Convention (C, double);
type long_double is new Long_Long_Float;
pragma Convention (C, long_double);
-- type Float32 is ...
-- type Float64 is ...
-- type Float128 is ...
-- type Float32x is ...
-- type Float64x is ...
-- type Decimal32 is ...
-- type Decimal64 is ...
-- type Decimal128 is ...
type float_imaginary is new float;
pragma Convention (C, float_imaginary);
type double_imaginary is new double;
pragma Convention (C, double_imaginary);
type long_double_imaginary is new long_double;
pragma Convention (C, long_double_imaginary);
-- type Float32_imaginary is ...
-- type Float32x_imaginary is ...
-- type Float64_imaginary is ...
-- type Float64x_imaginary is ...
-- type Float128_imaginary is ...
type float_complex is record
Re, Im : float'Base;
end record;
pragma Complex_Representation (float_complex);
pragma Convention (C, float_complex);
type double_complex is record
Re, Im : double'Base;
end record;
pragma Complex_Representation (double_complex);
pragma Convention (C, double_complex);
type long_double_complex is record
Re, Im : long_double'Base;
end record;
pragma Complex_Representation (long_double_complex);
pragma Convention (C, long_double_complex);
-- type Float32_complex is ...
-- type Float32x_complex is ...
-- type Float64_complex is ...
-- type Float64x_complex is ...
-- type Float128_complex is ...
type char is new Character;
type int128_t is record
Lo, Hi : unsigned_long_long;
end record;
pragma Convention (C_Pass_By_Copy, int128_t);
type uint128_t is record
Lo, Hi : unsigned_long_long;
end record;
pragma Convention (C_Pass_By_Copy, uint128_t);
subtype builtin_va_list is System.Address;
type ptrdiff_t is new signed_long;
type size_t is new unsigned_long;
type wchar_t is new signed_int;
subtype void_ptr is System.Address;
subtype void_const_ptr is System.Address;
type unsigned_char_array is array (size_t range <>) of
aliased unsigned_char;
pragma Convention (C, unsigned_char_array);
type unsigned_char_ptr is access all unsigned_char;
for unsigned_char_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (unsigned_char_ptr);
pragma Convention (C, unsigned_char_ptr);
type unsigned_char_const_ptr is access constant unsigned_char;
for unsigned_char_const_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (unsigned_char_const_ptr);
pragma Convention (C, unsigned_char_const_ptr);
type signed_int_array is array (size_t range <>) of aliased signed_int;
pragma Convention (C, signed_int_array);
type signed_int_volatile is new signed_int;
pragma Volatile (signed_int_volatile);
type signed_int_const_ptr is access constant signed_int;
for signed_int_const_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (signed_int_const_ptr);
pragma Convention (C, signed_int_const_ptr);
type signed_int_ptr is access all signed_int;
for signed_int_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (signed_int_ptr);
pragma Convention (C, signed_int_ptr);
type signed_int_ptr_ptr is access all signed_int_ptr;
for signed_int_ptr_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (signed_int_ptr_ptr);
pragma Convention (C, signed_int_ptr_ptr);
type unsigned_int_array is array (size_t range <>) of
aliased unsigned_int;
pragma Convention (C, unsigned_int_array);
type signed_long_ptr is access all signed_long;
for signed_long_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (signed_long_ptr);
pragma Convention (C, signed_long_ptr);
type signed_long_array is array (size_t range <>) of aliased signed_long;
pragma Convention (C, signed_long_array);
type unsigned_long_array is array (size_t range <>) of
aliased unsigned_long;
pragma Convention (C, unsigned_long_array);
type unsigned_long_long_array is array (size_t range <>) of
aliased unsigned_long_long;
pragma Convention (C, unsigned_long_long_array);
type char_ptr is access all char;
for char_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (char_ptr);
pragma Convention (C, char_ptr);
type char_ptr_ptr is access all char_ptr;
for char_ptr_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (char_ptr_ptr);
pragma Convention (C, char_ptr_ptr);
type char_const_ptr is access constant char;
for char_const_ptr'Storage_Size use 0;
pragma No_Strict_Aliasing (char_const_ptr);
pragma Convention (C, char_const_ptr);
type char_array is array (size_t range <>) of aliased char;
pragma Convention (C, char_array);
function "=" (Left, Right : System.Address) return Boolean
renames System."=";
function Shift_Left (Left : signed_char; Right : Natural)
return signed_char;
function Shift_Right_Arithmetic (Left : signed_char; Right : Natural)
return signed_char;
function Shift_Left (Left : unsigned_char; Right : Natural)
return unsigned_char;
function Shift_Right (Left : unsigned_char; Right : Natural)
return unsigned_char;
function Shift_Left (Left : signed_short; Right : Natural)
return signed_short;
function Shift_Right_Arithmetic (Left : signed_short; Right : Natural)
return signed_short;
function Shift_Left (Left : unsigned_short; Right : Natural)
return unsigned_short;
function Shift_Right (Left : unsigned_short; Right : Natural)
return unsigned_short;
function Shift_Left (Left : signed_int; Right : Natural)
return signed_int;
function Shift_Right_Arithmetic (Left : signed_int; Right : Natural)
return signed_int;
function Shift_Left (Left : unsigned_int; Right : Natural)
return unsigned_int;
function Shift_Right (Left : unsigned_int; Right : Natural)
return unsigned_int;
function Shift_Left (Left : signed_long; Right : Natural)
return signed_long;
function Shift_Right_Arithmetic (Left : signed_long; Right : Natural)
return signed_long;
function Shift_Left (Left : unsigned_long; Right : Natural)
return unsigned_long;
function Shift_Right (Left : unsigned_long; Right : Natural)
return unsigned_long;
function Shift_Left (Left : signed_long_long; Right : Natural)
return signed_long_long;
function Shift_Right_Arithmetic (Left : signed_long_long; Right : Natural)
return signed_long_long;
function Shift_Left (Left : unsigned_long_long; Right : Natural)
return unsigned_long_long;
function Shift_Right (Left : unsigned_long_long; Right : Natural)
return unsigned_long_long;
pragma Import (Intrinsic, Shift_Left);
pragma Import (Intrinsic, Shift_Right);
pragma Import (Intrinsic, Shift_Right_Arithmetic);
LP64 : constant := 1;
STDC_PREDEF_H : constant := 1;
ATOMIC_ACQUIRE : constant := 2;
ATOMIC_ACQ_REL : constant := 4;
ATOMIC_CONSUME : constant := 1;
ATOMIC_HLE_ACQUIRE : constant := 65536;
ATOMIC_HLE_RELEASE : constant := 131072;
ATOMIC_RELAXED : constant := 0;
ATOMIC_RELEASE : constant := 3;
ATOMIC_SEQ_CST : constant := 5;
qqBIGGEST_ALIGNMENTqq : constant := 16;
qqBYTE_ORDERqq : constant := 1234;
subtype qqCHAR16_TYPEqq is unsigned_short;
subtype qqCHAR32_TYPEqq is unsigned_int;
qqCHAR_BITqq : constant := 8;
qqDBL_DECIMAL_DIGqq : constant := 17;
qqDBL_DENORM_MINqq : constant := 16#0.40000000000000000#e-268;
qqDBL_DIGqq : constant := 15;
qqDBL_EPSILONqq : constant := 16#0.10000000000000000#e-12;
qqDBL_HAS_DENORMqq : constant := 1;
qqDBL_HAS_INFINITYqq : constant := 1;
qqDBL_HAS_QUIET_NANqq : constant := 1;
qqDBL_MANT_DIGqq : constant := 53;
qqDBL_MAX_10_EXPqq : constant := 308;
qqDBL_MAX_EXPqq : constant := 1024;
qqDBL_MAXqq : constant := 16#0.fffffffffffff8000#e+256;
qqDBL_MIN_10_EXPqq : constant := -307;
qqDBL_MIN_EXPqq : constant := -1021;
qqDBL_MINqq : constant := 16#0.40000000000000000#e-255;
-- qqDEC128_EPSILONqq (decimal)
qqDEC128_MANT_DIGqq : constant := 34;
qqDEC128_MAX_EXPqq : constant := 6145;
-- qqDEC128_MAXqq (decimal)
qqDEC128_MIN_EXPqq : constant := -6142;
-- qqDEC128_MINqq (decimal)
-- qqDEC128_SUBNORMAL_MINqq (decimal)
-- qqDEC32_EPSILONqq (decimal)
qqDEC32_MANT_DIGqq : constant := 7;
qqDEC32_MAX_EXPqq : constant := 97;
-- qqDEC32_MAXqq (decimal)
qqDEC32_MIN_EXPqq : constant := -94;
-- qqDEC32_MINqq (decimal)
-- qqDEC32_SUBNORMAL_MINqq (decimal)
-- qqDEC64_EPSILONqq (decimal)
qqDEC64_MANT_DIGqq : constant := 16;
qqDEC64_MAX_EXPqq : constant := 385;
-- qqDEC64_MAXqq (decimal)
qqDEC64_MIN_EXPqq : constant := -382;
-- qqDEC64_MINqq (decimal)
-- qqDEC64_SUBNORMAL_MINqq (decimal)
qqDECIMAL_BID_FORMATqq : constant := 1;
qqDECIMAL_DIGqq : constant := 21;
qqDEC_EVAL_METHODqq : constant := 2;
qqELFqq : constant := 1;
qqFINITE_MATH_ONLYqq : constant := 0;
qqFLOAT_WORD_ORDERqq : constant := 1234;
qqFLT_DECIMAL_DIGqq : constant := 9;
qqFLT_DENORM_MINqq : constant := 16#0.80000000000000000#e-37;
qqFLT_DIGqq : constant := 6;
qqFLT_EPSILONqq : constant := 16#0.20000000000000000#e-5;
qqFLT_EVAL_METHODqq : constant := 0;
qqFLT_HAS_DENORMqq : constant := 1;
qqFLT_HAS_INFINITYqq : constant := 1;
qqFLT_HAS_QUIET_NANqq : constant := 1;
qqFLT_MANT_DIGqq : constant := 24;
qqFLT_MAX_10_EXPqq : constant := 38;
qqFLT_MAX_EXPqq : constant := 128;
qqFLT_MAXqq : constant := 16#0.ffffff00000000000#e+32;
qqFLT_MIN_10_EXPqq : constant := -37;
qqFLT_MIN_EXPqq : constant := -125;
qqFLT_MINqq : constant := 16#0.40000000000000000#e-31;
qqFLT_RADIXqq : constant := 2;
qqFXSRqq : constant := 1;
qqGCC_ASM_FLAG_OUTPUTSqq : constant := 1;
GCC_ATOMIC_BOOL_LOCK_FREE : constant := 2;
GCC_ATOMIC_CHAR16_T_LOCK_FREE : constant := 2;
GCC_ATOMIC_CHAR32_T_LOCK_FREE : constant := 2;
GCC_ATOMIC_CHAR_LOCK_FREE : constant := 2;
GCC_ATOMIC_INT_LOCK_FREE : constant := 2;
GCC_ATOMIC_LLONG_LOCK_FREE : constant := 2;
GCC_ATOMIC_LONG_LOCK_FREE : constant := 2;
GCC_ATOMIC_POINTER_LOCK_FREE : constant := 2;
GCC_ATOMIC_SHORT_LOCK_FREE : constant := 2;
GCC_ATOMIC_TEST_AND_SET_TRUEVAL : constant := 1;
GCC_ATOMIC_WCHAR_T_LOCK_FREE : constant := 2;
GCC_HAVE_DWARF2_CFI_ASM : constant := 1;
GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 : constant := 1;
GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 : constant := 1;
GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 : constant := 1;
GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 : constant := 1;
GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 : constant := 1;
GCC_IEC_559 : constant := 2;
GCC_IEC_559_COMPLEX : constant := 2;
qqGNUC_MINORqq : constant := 5;
qqGNUC_PATCHLEVELqq : constant := 0;
qqGNUC_STDC_INLINEqq : constant := 1;
qqGNUCqq : constant := 6;
GXX_ABI_VERSION : constant := 1010;
-- __INT16_C (function macro)
qqINT16_MAXqq : constant := 32767;
subtype qqINT16_TYPEqq is signed_short;
-- __INT32_C (function macro)
qqINT32_MAXqq : constant := 2147483647;
subtype qqINT32_TYPEqq is signed_int;
-- __INT64_C (has # or ##)
qqINT64_MAXqq : constant := 9223372036854775807;
subtype qqINT64_TYPEqq is signed_long;
-- __INT8_C (function macro)
qqINT8_MAXqq : constant := 127;
subtype qqINT8_TYPEqq is signed_char;
-- __INTMAX_C (has # or ##)
qqINTMAX_MAXqq : constant := 9223372036854775807;
subtype qqINTMAX_TYPEqq is signed_long;
qqINTPTR_MAXqq : constant := 9223372036854775807;
subtype qqINTPTR_TYPEqq is signed_long;
qqINT_FAST16_MAXqq : constant := 9223372036854775807;
subtype qqINT_FAST16_TYPEqq is signed_long;
qqINT_FAST32_MAXqq : constant := 9223372036854775807;
subtype qqINT_FAST32_TYPEqq is signed_long;
qqINT_FAST64_MAXqq : constant := 9223372036854775807;
subtype qqINT_FAST64_TYPEqq is signed_long;
qqINT_FAST8_MAXqq : constant := 127;
subtype qqINT_FAST8_TYPEqq is signed_char;
qqINT_LEAST16_MAXqq : constant := 32767;
subtype qqINT_LEAST16_TYPEqq is signed_short;
qqINT_LEAST32_MAXqq : constant := 2147483647;
subtype qqINT_LEAST32_TYPEqq is signed_int;
qqINT_LEAST64_MAXqq : constant := 9223372036854775807;
subtype qqINT_LEAST64_TYPEqq is signed_long;
qqINT_LEAST8_MAXqq : constant := 127;
subtype qqINT_LEAST8_TYPEqq is signed_char;
qqINT_MAXqq : constant := 2147483647;
qqLDBL_DENORM_MINqq : constant := 16#0.80000000000000000#e-4111;
qqLDBL_DIGqq : constant := 18;
qqLDBL_EPSILONqq : constant := 16#0.20000000000000000#e-15;
qqLDBL_HAS_DENORMqq : constant := 1;
qqLDBL_HAS_INFINITYqq : constant := 1;
qqLDBL_HAS_QUIET_NANqq : constant := 1;
qqLDBL_MANT_DIGqq : constant := 64;
qqLDBL_MAX_10_EXPqq : constant := 4932;
qqLDBL_MAX_EXPqq : constant := 16384;
qqLDBL_MAXqq : constant := 16#0.ffffffffffffffff0#e+4096;
qqLDBL_MIN_10_EXPqq : constant := -4931;
qqLDBL_MIN_EXPqq : constant := -16381;
qqLDBL_MINqq : constant := 16#0.40000000000000000#e-4095;
qqLONG_LONG_MAXqq : constant := 9223372036854775807;
qqLONG_MAXqq : constant := 9223372036854775807;
qqLP64qq : constant := 1;
qqMMXqq : constant := 1;
qqNO_INLINEqq : constant := 1;
qqORDER_BIG_ENDIANqq : constant := 4321;
qqORDER_LITTLE_ENDIANqq : constant := 1234;
qqORDER_PDP_ENDIANqq : constant := 3412;
PRAGMA_REDEFINE_EXTNAME : constant := 1;
qqPTRDIFF_MAXqq : constant := 9223372036854775807;
subtype qqPTRDIFF_TYPEqq is signed_long;
-- __REGISTER_PREFIX__ (empty)
qqSCHAR_MAXqq : constant := 127;
SEG_FS : constant := 1;
SEG_GS : constant := 1;
qqSHRT_MAXqq : constant := 32767;
qqSIG_ATOMIC_MAXqq : constant := 2147483647;
qqSIG_ATOMIC_MINqq : constant := -2147483648;
subtype qqSIG_ATOMIC_TYPEqq is signed_int;
qqSIZEOF_DOUBLEqq : constant := 8;
qqSIZEOF_FLOAT128qq : constant := 16;
qqSIZEOF_FLOAT80qq : constant := 16;
qqSIZEOF_FLOATqq : constant := 4;
qqSIZEOF_INT128qq : constant := 16;
qqSIZEOF_INTqq : constant := 4;
qqSIZEOF_LONG_DOUBLEqq : constant := 16;
qqSIZEOF_LONG_LONGqq : constant := 8;
qqSIZEOF_LONGqq : constant := 8;
qqSIZEOF_POINTERqq : constant := 8;
qqSIZEOF_PTRDIFF_Tqq : constant := 8;
qqSIZEOF_SHORTqq : constant := 2;
qqSIZEOF_SIZE_Tqq : constant := 8;
qqSIZEOF_WCHAR_Tqq : constant := 4;
qqSIZEOF_WINT_Tqq : constant := 4;
qqSIZE_MAXqq : constant := 18446744073709551615;
subtype qqSIZE_TYPEqq is unsigned_long;
qqSSE2_MATHqq : constant := 1;
qqSSE2qq : constant := 1;
qqSSE3qq : constant := 1;
qqSSE_MATHqq : constant := 1;
qqSSEqq : constant := 1;
qqSSSE3qq : constant := 1;
qqSTDC_HOSTEDqq : constant := 1;
qqSTDC_NO_THREADSqq : constant := 1;
qqSTDC_UTF_16qq : constant := 1;
qqSTDC_UTF_32qq : constant := 1;
-- __UINT16_C (function macro)
qqUINT16_MAXqq : constant := 65535;
subtype qqUINT16_TYPEqq is unsigned_short;
-- __UINT32_C (has # or ##)
qqUINT32_MAXqq : constant := 4294967295;
subtype qqUINT32_TYPEqq is unsigned_int;
-- __UINT64_C (has # or ##)
qqUINT64_MAXqq : constant := 18446744073709551615;
subtype qqUINT64_TYPEqq is unsigned_long;
-- __UINT8_C (function macro)
qqUINT8_MAXqq : constant := 255;
subtype qqUINT8_TYPEqq is unsigned_char;
-- __UINTMAX_C (has # or ##)
qqUINTMAX_MAXqq : constant := 18446744073709551615;
subtype qqUINTMAX_TYPEqq is unsigned_long;
qqUINTPTR_MAXqq : constant := 18446744073709551615;
subtype qqUINTPTR_TYPEqq is unsigned_long;
qqUINT_FAST16_MAXqq : constant := 18446744073709551615;
subtype qqUINT_FAST16_TYPEqq is unsigned_long;
qqUINT_FAST32_MAXqq : constant := 18446744073709551615;
subtype qqUINT_FAST32_TYPEqq is unsigned_long;
qqUINT_FAST64_MAXqq : constant := 18446744073709551615;
subtype qqUINT_FAST64_TYPEqq is unsigned_long;
qqUINT_FAST8_MAXqq : constant := 255;
subtype qqUINT_FAST8_TYPEqq is unsigned_char;
qqUINT_LEAST16_MAXqq : constant := 65535;
subtype qqUINT_LEAST16_TYPEqq is unsigned_short;
qqUINT_LEAST32_MAXqq : constant := 4294967295;
subtype qqUINT_LEAST32_TYPEqq is unsigned_int;
qqUINT_LEAST64_MAXqq : constant := 18446744073709551615;
subtype qqUINT_LEAST64_TYPEqq is unsigned_long;
qqUINT_LEAST8_MAXqq : constant := 255;
subtype qqUINT_LEAST8_TYPEqq is unsigned_char;
-- __USER_LABEL_PREFIX__ (empty)
qqVERSIONqq : constant char_array (0 .. 5) := "6.5.0" & char'Val (0);
qqWCHAR_MAXqq : constant := 2147483647;
qqWCHAR_MINqq : constant := -2147483648;
subtype qqWCHAR_TYPEqq is signed_int;
qqWINT_MAXqq : constant := 4294967295;
qqWINT_MINqq : constant := 0;
subtype qqWINT_TYPEqq is unsigned_int;
amd64 : constant := 1;
qqamd64qq : constant := 1;
qqcode_model_smallqq : constant := 1;
core2 : constant := 1;
qqcore2qq : constant := 1;
qqgnu_linuxqq : constant := 1;
-- __has_include (has __has_include__ or __has_include_next__)
-- __has_include_next (has __has_include__ or __has_include_next__)
defined_qqlinux : constant := 1;
qqlinuxqq : constant := 1;
qqunix : constant := 1;
qqunixqq : constant := 1;
x86_64 : constant := 1;
qqx86_64qq : constant := 1;
defined_linux : constant := 1;
unix : constant := 1;
function builtin_alloca (a1 : size_t) return char_ptr;
pragma Import (Intrinsic, builtin_alloca, "__builtin_alloca");
function builtin_bswap16 (a1 : unsigned_short) return unsigned_short;
pragma Import (Intrinsic, builtin_bswap16, "__builtin_bswap16");
function builtin_bswap32 (a1 : unsigned_int) return unsigned_int;
pragma Import (Intrinsic, builtin_bswap32, "__builtin_bswap32");
function builtin_bswap64 (a1 : unsigned_long_long)
return unsigned_long_long;
pragma Import (Intrinsic, builtin_bswap64, "__builtin_bswap64");
procedure builtin_bzero (a1 : access char; a2 : size_t);
pragma Import (Intrinsic, builtin_bzero, "__builtin_bzero");
function builtin_extract_return_addr (a1 : access char) return char_ptr;
pragma Import (Intrinsic, builtin_extract_return_addr,
"__builtin_extract_return_addr");
function builtin_fabsf (a1 : float) return float;
pragma Import (Intrinsic, builtin_fabsf, "__builtin_fabsf");
function builtin_fabs (a1 : double) return double;
pragma Import (Intrinsic, builtin_fabs, "__builtin_fabs");
function builtin_fabsl (a1 : long_double) return long_double;
pragma Import (Intrinsic, builtin_fabsl, "__builtin_fabsl");
function builtin_flt_rounds return signed_int;
pragma Import (Intrinsic, builtin_flt_rounds, "__builtin_flt_rounds");
function builtin_frame_address (a1 : unsigned_int) return char_ptr;
pragma Import (Intrinsic, builtin_frame_address,
"__builtin_frame_address");
function builtin_huge_valf return float;
pragma Import (Intrinsic, builtin_huge_valf, "__builtin_huge_valf");
function builtin_huge_val return double;
pragma Import (Intrinsic, builtin_huge_val, "__builtin_huge_val");
function builtin_huge_vall return long_double;
pragma Import (Intrinsic, builtin_huge_vall, "__builtin_huge_vall");
function builtin_inff return float;
pragma Import (Intrinsic, builtin_inff, "__builtin_inff");
function builtin_inf return double;
pragma Import (Intrinsic, builtin_inf, "__builtin_inf");
function builtin_infl return long_double;
pragma Import (Intrinsic, builtin_infl, "__builtin_infl");
function builtin_llabs (a1 : signed_long_long) return signed_long_long;
pragma Import (Intrinsic, builtin_llabs, "__builtin_llabs");
function builtin_memcmp (a1 : access char; a2 : access char; a3 : size_t)
return signed_int;
pragma Import (Intrinsic, builtin_memcmp, "__builtin_memcmp");
function builtin_memset (a1 : access char; a2 : signed_int; a3 : size_t)
return char_ptr;
pragma Import (Intrinsic, builtin_memset, "__builtin_memset");
function builtin_memcpy_chk (a1 : access char; a2 : access constant char;
a3 : size_t; a4 : size_t) return char_ptr;
pragma Import (Intrinsic, builtin_memcpy_chk, "__builtin___memcpy_chk");
function builtin_memmove_chk (a1 : access char; a2 : access constant char;
a3 : size_t; a4 : size_t) return char_ptr;
pragma Import (Intrinsic, builtin_memmove_chk, "__builtin___memmove_chk");
function builtin_memset_chk (a1 : access char; a2 : signed_int;
a3 : size_t; a4 : size_t) return char_ptr;
pragma Import (Intrinsic, builtin_memset_chk, "__builtin___memset_chk");
function builtin_nanf (a1 : access constant char) return float;
pragma Import (Intrinsic, builtin_nanf, "__builtin_nanf");
function builtin_nan (a1 : access constant char) return double;
pragma Import (Intrinsic, builtin_nan, "__builtin_nan");
function builtin_nanl (a1 : access constant char) return long_double;
pragma Import (Intrinsic, builtin_nanl, "__builtin_nanl");
function builtin_return_address (a1 : unsigned_int) return char_ptr;
pragma Import (Intrinsic, builtin_return_address,
"__builtin_return_address");
function builtin_stpcpy_chk (a1 : access char; a2 : access constant char;
a3 : size_t) return char_ptr;
pragma Import (Intrinsic, builtin_stpcpy_chk, "__builtin___stpcpy_chk");
function builtin_stpncpy_chk (a1 : access char; a2 : access constant char;
a3 : size_t; a4 : size_t) return char_ptr;
pragma Import (Intrinsic, builtin_stpncpy_chk, "__builtin___stpncpy_chk");
function builtin_strcat_chk (a1 : access char; a2 : access constant char;
a3 : size_t) return char_ptr;
pragma Import (Intrinsic, builtin_strcat_chk, "__builtin___strcat_chk");
function builtin_strcpy_chk (a1 : access char; a2 : access constant char;
a3 : size_t) return char_ptr;
pragma Import (Intrinsic, builtin_strcpy_chk, "__builtin___strcpy_chk");
function builtin_strncat_chk (a1 : access char; a2 : access constant char;
a3 : size_t; a4 : size_t) return char_ptr;
pragma Import (Intrinsic, builtin_strncat_chk, "__builtin___strncat_chk");
function builtin_strncpy_chk (a1 : access char; a2 : access constant char;
a3 : size_t; a4 : size_t) return char_ptr;
pragma Import (Intrinsic, builtin_strncpy_chk, "__builtin___strncpy_chk");
end C;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment