PreviousUpNext

15.4.728  src/lib/core/init/rawmem.pkg

## author: Matthias Blume (blume@research.bell-labs.com)

# Compiled by:
#     src/lib/core/init/init.cmi

# Raw memory access primops and raw C calls.
# (This is for use by ml-nlffi.)
#



###                        "Guilt is absolutely the most useless emotion."
###
###                                                   -- Cynthia Matuszek



package raw_mem_inline_t {
    #
    w8l         = inline::rawu8_get     :   Unt1 -> Unt1            ;
    i8l         = inline::rawi8_get     :   Unt1 -> Int1            ;
    w16l        = inline::raww16_get    :  Unt1 -> Unt1             ;
    i16l        = inline::rawi16_get    :  Unt1 -> Int1             ;
    w32l        = inline::rawu32_get    :  Unt1 -> Unt1             ;
    i32l        = inline::rawi32_get    :  Unt1 -> Int1             ;
    f32l        = inline::rawf32_get    :  Unt1 -> Float            ;
    f64l        = inline::rawf64_get    :  Unt1 -> Float            ;
    w8s         = inline::rawu8_set     :   (Unt1, Unt1) -> Void    ;
    i8s         = inline::rawi8_set     :   (Unt1, Int1) -> Void    ;
    w16s        = inline::raww16_set    :  (Unt1, Unt1) -> Void     ;
    i16s        = inline::rawi16_set    :  (Unt1, Int1) -> Void     ;
    w32s        = inline::rawu32_set    :  (Unt1, Unt1) -> Void     ;
    i32s        = inline::rawi32_set    :  (Unt1, Int1) -> Void     ;
    f32s        = inline::rawf32_set    :  (Unt1, Float)  -> Void   ;
    f64s        = inline::rawf64_set    :  (Unt1, Float)  -> Void   ;
    rawccall    = inline::rawccall      :  (Unt1, X, Y) -> Z        ;

    # Allen Leung's additions:
    #   
    rawrecord   = inline::rawrecord     :    Int -> X ;
    rawrecord64 = inline::rawrecord64   :  Int -> X ;
    #
    subw8       = inline::rawselectu8   :   (X, Unt1) -> Unt1   ;
    subi8       = inline::rawselecti8   :   (X, Unt1) -> Int1   ;
    subw16      = inline::rawselectw16  :  (X, Unt1) -> Unt1   ;
    subi16      = inline::rawselecti16  :  (X, Unt1) -> Int1    ;
    subw32      = inline::rawselectu32  :  (X, Unt1) -> Unt1    ;
    subi32      = inline::rawselecti32  :  (X, Unt1) -> Int1    ;
    subf32      = inline::rawselectf32  :  (X, Unt1) -> Float   ;
    subf64      = inline::rawselectf64  :  (X, Unt1) -> Float   ;
    #
    updw8       = inline::rawupdateu8   :   (X, Unt1, Unt1)  -> Void ;
    updi8       = inline::rawupdatei8   :   (X, Unt1, Int1)  -> Void ;
    updw16      = inline::rawupdateu16  :  (X, Unt1, Unt1)  -> Void  ;
    updi16      = inline::rawupdatei16  :  (X, Unt1, Int1)  -> Void  ;
    updw32      = inline::rawupdateu32  :  (X, Unt1, Unt1)  -> Void  ;
    updi32      = inline::rawupdatei32  :  (X, Unt1, Int1)  -> Void  ;
    updf32      = inline::rawupdatef32  :  (X, Unt1, Float) -> Void  ;
    updf64      = inline::rawupdatef64  :  (X, Unt1, Float) -> Void  ;
};


## Copyright (c) 2001 by Lucent Technologies, Bell Labs
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext