fast-arithmetic-0.6.4.3: .atspkg/contrib/ats-includes-0.3.13/prelude/CATS/pointer.cats
/***********************************************************************/
/* */
/* Applied Type System */
/* */
/***********************************************************************/
/* (*
** ATS/Postiats - Unleashing the Potential of Types!
** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc.
** All rights reserved
**
** ATS is free software; you can redistribute it and/or modify it under
** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the
** Free Software Foundation; either version 3, or (at your option) any
** later version.
**
** ATS is distributed in the hope that it will be useful, but WITHOUT ANY
** WARRANTY; without even the implied warranty of MERCHANTABILITY or
** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
** for more details.
**
** You should have received a copy of the GNU General Public License
** along with ATS; see the file COPYING. If not, please write to the
** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
** 02110-1301, USA.
*) */
/* ****** ****** */
/*
** Source:
** $PATSHOME/prelude/CATS/CODEGEN/pointer.atxt
** Time of generation: Wed Oct 10 21:08:54 2018
*/
/* ****** ****** */
/*
(* Author: Hongwei Xi *)
(* Authoremail: hwxi AT cs DOT bu DOT edu *)
(* Start time: February, 2012 *)
*/
/* ****** ****** */
#ifndef ATSLIB_PRELUDE_CATS_POINTER
#define ATSLIB_PRELUDE_CATS_POINTER
/* ****** ****** */
#ifndef memset
extern
void *memset(void *bufp, int c, size_t n) ;
#endif // #ifndef
/* ****** ****** */
ATSinline()
atstype_ptr
atspre_ptr_null () { return (void*)0 ; }
/* ****** ****** */
ATSinline()
atstype_bool
atspre_ptr_is_null
(atstype_ptr p) {
return (p == (void*)0) ? atsbool_true : atsbool_false ;
} // end of [atspre_ptr_is_null]
#define atspre_ptr0_is_null atspre_ptr_is_null
#define atspre_ptr1_is_null atspre_ptr_is_null
ATSinline()
atstype_bool
atspre_ptr_isnot_null
(atstype_ptr p) {
return (p != (void*)0) ? atsbool_true : atsbool_false ;
} // end of [atspre_ptr_isnot_null]
#define atspre_ptr0_isnot_null atspre_ptr_isnot_null
#define atspre_ptr1_isnot_null atspre_ptr_isnot_null
/* ****** ****** */
ATSinline()
atstype_ptr
atspre_add_ptr_bsz
(atstype_ptr p, atstype_size ofs) { return ((char*)p + ofs) ; }
// end of [atspre_add_ptr_bsz]
#define atspre_add_ptr0_bsz atspre_add_ptr_bsz
#define atspre_add_ptr1_bsz atspre_add_ptr_bsz
ATSinline()
atstype_ptr
atspre_sub_ptr_bsz
(atstype_ptr p, atstype_size ofs) { return ((char*)p - ofs) ; }
// end of [atspre_sub_ptr_bsz]
#define atspre_sub_ptr0_bsz atspre_sub_ptr_bsz
#define atspre_sub_ptr1_bsz atspre_sub_ptr_bsz
/* ****** ****** */
ATSinline()
atstype_ssize
atspre_sub_ptr_ptr
(atstype_ptr p1, atstype_ptr p2) { return ((char*)p1 - (char*)p2) ; }
// end of [atspre_sub_ptr_ptr]
#define atspre_sub_ptr0_ptr0 atspre_sub_ptr_ptr
#define atspre_sub_ptr1_ptr1 atspre_sub_ptr_ptr
/* ****** ****** */
ATSinline()
atstype_bool
atspre_lt_ptr_ptr
(atstype_ptr p1, atstype_ptr p2) {
return (p1 < p2 ? atsbool_true : atsbool_false) ;
} // end of [atspre_lt_ptr_ptr]
#define atspre_lt_ptr0_ptr0 atspre_lt_ptr_ptr
#define atspre_lt_ptr1_ptr1 atspre_lt_ptr_ptr
ATSinline()
atstype_bool
atspre_lte_ptr_ptr
(atstype_ptr p1, atstype_ptr p2) {
return (p1 <= p2 ? atsbool_true : atsbool_false) ;
} // end of [atspre_lte_ptr_ptr]
#define atspre_lte_ptr0_ptr0 atspre_lte_ptr_ptr
#define atspre_lte_ptr1_ptr1 atspre_lte_ptr_ptr
ATSinline()
atstype_bool
atspre_gt_ptr_ptr
(atstype_ptr p1, atstype_ptr p2) {
return (p1 > p2 ? atsbool_true : atsbool_false) ;
} // end of [atspre_gt_ptr_ptr]
#define atspre_gt_ptr0_ptr0 atspre_gt_ptr_ptr
#define atspre_gt_ptr1_ptr1 atspre_gt_ptr_ptr
ATSinline()
atstype_bool
atspre_gte_ptr_ptr
(atstype_ptr p1, atstype_ptr p2) {
return (p1 >= p2 ? atsbool_true : atsbool_false) ;
} // end of [atspre_gte_ptr_ptr]
#define atspre_gte_ptr0_ptr0 atspre_gte_ptr_ptr
#define atspre_gte_ptr1_ptr1 atspre_gte_ptr_ptr
ATSinline()
atstype_bool
atspre_eq_ptr_ptr
(atstype_ptr p1, atstype_ptr p2) {
return (p1 == p2 ? atsbool_true : atsbool_false) ;
} // end of [atspre_eq_ptr_ptr]
#define atspre_eq_ptr0_ptr0 atspre_eq_ptr_ptr
#define atspre_eq_ptr1_ptr1 atspre_eq_ptr_ptr
ATSinline()
atstype_bool
atspre_neq_ptr_ptr
(atstype_ptr p1, atstype_ptr p2) {
return (p1 != p2 ? atsbool_true : atsbool_false) ;
} // end of [atspre_neq_ptr_ptr]
#define atspre_neq_ptr0_ptr0 atspre_neq_ptr_ptr
#define atspre_neq_ptr1_ptr1 atspre_neq_ptr_ptr
ATSinline()
atstype_int
atspre_compare_ptr_ptr
(
atstype_ptr p1, atstype_ptr p2
) {
if (p1 >= p2) {
if (p1 > p2) return 1 ; else return 0 ;
} else return (-1) ;
} // end of [atspre_compare_ptr_ptr]
#define atspre_compare_ptr0_ptr0 atspre_compare_ptr_ptr
#define atspre_compare_ptr1_ptr1 atspre_compare_ptr_ptr
/* ****** ****** */
ATSinline()
atstype_bool
atspre_gt_ptr_intz
(atstype_ptr p, atstype_int _)
{
return (p > 0 ? atsbool_true : atsbool_false) ;
} // end of [atspre_gt_ptr_intz]
#define atspre_gt_ptr0_intz atspre_gt_ptr_intz
#define atspre_gt_ptr1_intz atspre_gt_ptr_intz
ATSinline()
atstype_bool
atspre_eq_ptr_intz
(atstype_ptr p, atstype_int _)
{
return (p == 0 ? atsbool_true : atsbool_false) ;
} // end of [atspre_eq_ptr_intz]
#define atspre_eq_ptr0_intz atspre_eq_ptr_intz
#define atspre_eq_ptr1_intz atspre_eq_ptr_intz
ATSinline()
atstype_bool
atspre_neq_ptr_intz
(atstype_ptr p, atstype_int _)
{
return (p != 0 ? atsbool_true : atsbool_false) ;
} // end of [atspre_neq_ptr_intz]
#define atspre_neq_ptr0_intz atspre_neq_ptr_intz
#define atspre_neq_ptr1_intz atspre_neq_ptr_intz
/* ****** ****** */
//
#define atspre_aptr_null() atsptr_null
//
#define atspre_aptr_is_null atspre_ptr_is_null
#define atspre_aptr_isnot_null atspre_ptr_isnot_null
//
/* ****** ****** */
//
#define atspre_cptr_null() atsptr_null
//
#define atspre_cptr_is_null atspre_ptr_is_null
#define atspre_cptr_isnot_null atspre_ptr_isnot_null
//
/* ****** ****** */
#define atspre_gt_cptr_intz atspre_gt_ptr_intz
#define atspre_eq_cptr_intz atspre_eq_ptr_intz
#define atspre_neq_cptr_intz atspre_neq_ptr_intz
/* ****** ****** */
//
#define atspre_ptr_free atspre_mfree_gc
#define atspre_ptr_alloc_tsz atspre_malloc_gc
//
/* ****** ****** */
ATSinline()
atsvoid_t0ype
atspre_ptr_nullize_tsz
(
atstype_ptr p, atstype_size tsz
) {
memset (p, 0, tsz) ; return /*void*/ ;
} // end of [atspre_ptr_nullize_tsz]
/* ****** ****** */
#endif // ifndef ATSLIB_PRELUDE_CATS_POINTER
/* ****** ****** */
/* end of [pointer.cats] */