mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
201 lines
8.0 KiB
201 lines
8.0 KiB
/*[
|
|
* Product: SoftPC-AT Revision 3.0
|
|
*
|
|
* Name: host_sas.h
|
|
*
|
|
* Derived From: New
|
|
*
|
|
* Authors: A. Guthrie
|
|
*
|
|
* Created On: Wed Apr 24 18:33:01 BST 1991
|
|
*
|
|
* Sccs ID: @(#)host_sas.h 1.18 08/10/92
|
|
*
|
|
* Purpose: Defines the function pointer interface to host sas
|
|
* routines.
|
|
*
|
|
* (c)Copyright Insignia Solutions Ltd., 1991. All rights reserved.
|
|
*
|
|
]*/
|
|
#if defined(BASE_SAS) && defined(HOST_SAS)
|
|
|
|
#ifndef SAS_PREFIX
|
|
#define SAS_PREFIX() sas_
|
|
#endif /* SAS_PREFIX */
|
|
|
|
#define IDENT(a) a
|
|
#define CAT(a,b) IDENT(a)b
|
|
#define sas_term CAT(SAS_PREFIX(),term)
|
|
#define sas_init CAT(SAS_PREFIX(),init)
|
|
#define sas_memory_size CAT(SAS_PREFIX(),memory_size)
|
|
#define sas_memory_type CAT(SAS_PREFIX(),memory_type)
|
|
#define sas_blockop CAT(SAS_PREFIX(),blockop)
|
|
#define sas_load CAT(SAS_PREFIX(),load)
|
|
#define sas_loadw CAT(SAS_PREFIX(),loadw)
|
|
#define sas_store CAT(SAS_PREFIX(),store)
|
|
#define sas_storew CAT(SAS_PREFIX(),storew)
|
|
#define sas_storedw CAT(SAS_PREFIX(),storedw)
|
|
#define sas_store_no_check CAT(SAS_PREFIX(),store_no_check)
|
|
#define sas_storew_no_check CAT(SAS_PREFIX(),storew_no_check)
|
|
#define sas_storedw_no_check CAT(SAS_PREFIX(),storedw_no_check)
|
|
#define sas_fills CAT(SAS_PREFIX(),fills)
|
|
#define sas_fillsw CAT(SAS_PREFIX(),fillsw)
|
|
#define sas_hw_at CAT(SAS_PREFIX(),hw_at)
|
|
#define sas_w_at CAT(SAS_PREFIX(),w_at)
|
|
#define sas_dw_at CAT(SAS_PREFIX(),dw_at)
|
|
#define sas_hw_at_no_check CAT(SAS_PREFIX(),hw_at_no_check)
|
|
#define sas_w_at_no_check CAT(SAS_PREFIX(),w_at_no_check)
|
|
#define sas_dw_at_no_check CAT(SAS_PREFIX(),dw_at_no_check)
|
|
#define sas_loads CAT(SAS_PREFIX(),loads)
|
|
#define sas_stores CAT(SAS_PREFIX(),stores)
|
|
#define sas_loads_no_check CAT(SAS_PREFIX(),loads_no_check)
|
|
#define sas_stores_no_check CAT(SAS_PREFIX(),stores_no_check)
|
|
#define sas_move_bytes_forward CAT(SAS_PREFIX(),move_bytes_forward)
|
|
#define sas_move_words_forward CAT(SAS_PREFIX(),move_words_forward)
|
|
#define sas_move_bytes_backward CAT(SAS_PREFIX(),move_bytes_backward)
|
|
#define sas_move_words_backward CAT(SAS_PREFIX(),move_words_backward)
|
|
#define sas_enable_20_bit_wrapping CAT(SAS_PREFIX(),enable_20_bit_wrapping)
|
|
#define sas_disable_20_bit_wrapping CAT(SAS_PREFIX(),disable_20_bit_wrapping)
|
|
#define sas_twenty_bit_wrapping_enabled CAT(SAS_PREFIX(),twenty_bit_wrapping_enabled)
|
|
#define sas_part_enable_20_bit_wrap CAT(SAS_PREFIX(),part_enable_20_bit_wrap)
|
|
#define sas_part_disable_20_bit_wrap CAT(SAS_PREFIX(),part_disable_20_bit_wrap)
|
|
#define sas_scratch_address CAT(SAS_PREFIX(),scratch_address)
|
|
#define sas_connect_memory CAT(SAS_PREFIX(),connect_memory)
|
|
#define sas_overwrite_memory CAT(SAS_PREFIX(),overwrite_memory)
|
|
|
|
#endif /* BASE_SAS && HOST_SAS */
|
|
|
|
#ifndef BASE_SAS
|
|
|
|
#ifdef HOST_SAS
|
|
|
|
typedef struct
|
|
{
|
|
VOID ( *do_sas_init ) ();
|
|
VOID ( *do_sas_term ) ();
|
|
sys_addr ( *do_sas_memory_size ) ();
|
|
half_word ( *do_sas_memory_type ) ();
|
|
VOID ( *do_sas_load ) ();
|
|
VOID ( *do_sas_loadw ) ();
|
|
VOID ( *do_sas_store ) ();
|
|
VOID ( *do_sas_storew ) ();
|
|
VOID ( *do_sas_storedw ) ();
|
|
VOID ( *do_sas_fills ) ();
|
|
VOID ( *do_sas_fillsw) ();
|
|
half_word ( *do_sas_hw_at ) ();
|
|
word ( *do_sas_w_at ) ();
|
|
double_word ( *do_sas_dw_at ) ();
|
|
VOID ( *do_sas_loads ) ();
|
|
VOID ( *do_sas_stores ) ();
|
|
VOID ( *do_sas_move_bytes_forward ) ();
|
|
VOID ( *do_sas_move_words_forward ) ();
|
|
VOID ( *do_sas_move_bytes_backward ) ();
|
|
VOID ( *do_sas_move_words_backward ) ();
|
|
host_addr ( *do_sas_get_byte_addr ) ();
|
|
host_addr ( *do_sas_inc_M_ptr ) ();
|
|
host_addr ( *do_sas_M_get_dw_ptr ) ();
|
|
VOID ( *do_sas_enable_20_bit_wrapping ) ();
|
|
VOID ( *do_sas_disable_20_bit_wrapping ) ();
|
|
host_addr ( *do_sas_scratch_address ) ();
|
|
VOID ( *do_sas_connect_memory ) ();
|
|
VOID ( *do_sas_store_no_check ) ();
|
|
VOID ( *do_sas_storew_no_check ) ();
|
|
VOID ( *do_sas_storedw_no_check ) ();
|
|
half_word ( *do_sas_hw_at_no_check ) ();
|
|
word ( *do_sas_w_at_no_check ) ();
|
|
half_word ( *do_sas_blockop ) ();
|
|
double_word ( *do_sas_dw_at_no_check ) ();
|
|
BOOL ( *do_sas_twenty_bit_wrapping_enabled ) ();
|
|
VOID ( *do_sas_part_enable_20_bit_wrap ) ();
|
|
VOID ( *do_sas_part_disable_20_bit_wrap ) ();
|
|
VOID ( *do_sas_loads_no_check ) ();
|
|
VOID ( *do_sas_stores_no_check ) ();
|
|
VOID ( *do_sas_overwrite_memory ) ();
|
|
} SAS_FUNCTIONS;
|
|
|
|
IMPORT SAS_FUNCTIONS host_sas_funcs;
|
|
|
|
#define sas_init( size ) \
|
|
( *host_sas_funcs.do_sas_init ) ( size )
|
|
#define sas_term( ) \
|
|
( *host_sas_funcs.do_sas_term ) ( )
|
|
#define sas_memory_size( ) \
|
|
( *host_sas_funcs.do_sas_memory_size ) ( )
|
|
#define sas_memory_type( ) \
|
|
( *host_sas_funcs.do_sas_memory_type ) ( )
|
|
#define sas_blockop( start, end, op ) \
|
|
( *host_sas_funcs.do_sas_blockop ) ( start, end, op )
|
|
#define sas_load( addr, val ) \
|
|
( *host_sas_funcs.do_sas_load ) ( addr, val )
|
|
#define sas_loadw( addr, val ) \
|
|
( *host_sas_funcs.do_sas_loadw ) ( addr, val )
|
|
#define sas_store( addr, val ) \
|
|
( *host_sas_funcs.do_sas_store ) ( addr, val )
|
|
#define sas_storew( addr, val ) \
|
|
( *host_sas_funcs.do_sas_storew ) ( addr, val )
|
|
#define sas_storedw( addr, val ) \
|
|
( *host_sas_funcs.do_sas_storedw ) ( addr, val )
|
|
#define sas_store_no_check( addr, val ) \
|
|
( *host_sas_funcs.do_sas_store_no_check ) ( addr, val )
|
|
#define sas_storew_no_check( addr, val ) \
|
|
( *host_sas_funcs.do_sas_storew_no_check ) ( addr, val )
|
|
#define sas_storedw_no_check( addr, val ) \
|
|
( *host_sas_funcs.do_sas_storedw_no_check ) ( addr, val )
|
|
#define sas_fills( addr, val, len ) \
|
|
( *host_sas_funcs.do_sas_fills ) ( addr, val, len )
|
|
#define sas_fillsw( addr, val, len ) \
|
|
( *host_sas_funcs.do_sas_fillsw ) ( addr, val, len )
|
|
#define sas_hw_at( addr ) \
|
|
( *host_sas_funcs.do_sas_hw_at ) ( addr )
|
|
#define sas_w_at( addr ) \
|
|
( *host_sas_funcs.do_sas_w_at ) ( addr )
|
|
#define sas_dw_at( addr ) \
|
|
( *host_sas_funcs.do_sas_dw_at ) ( addr )
|
|
#define sas_hw_at_no_check( addr ) \
|
|
( *host_sas_funcs.do_sas_hw_at_no_check ) ( addr )
|
|
#define sas_w_at_no_check( addr ) \
|
|
( *host_sas_funcs.do_sas_w_at_no_check ) ( addr )
|
|
#define sas_dw_at_no_check( addr ) \
|
|
( *host_sas_funcs.do_sas_dw_at_no_check ) ( addr )
|
|
#define sas_loads( src, dest, len ) \
|
|
( *host_sas_funcs.do_sas_loads ) ( src, dest, len )
|
|
#define sas_stores( dest, src, len ) \
|
|
( *host_sas_funcs.do_sas_stores ) ( dest, src, len )
|
|
#define sas_move_bytes_forward( src, dest, len ) \
|
|
( *host_sas_funcs.do_sas_move_bytes_forward ) ( src, dest, len )
|
|
#define sas_move_words_forward( src, dest, len ) \
|
|
( *host_sas_funcs.do_sas_move_words_forward ) ( src, dest, len )
|
|
#define sas_move_bytes_backward( src, dest, len ) \
|
|
( *host_sas_funcs.do_sas_move_bytes_backward ) ( src, dest, len )
|
|
#define sas_move_words_backward( src, dest, len ) \
|
|
( *host_sas_funcs.do_sas_move_words_backward ) ( src, dest, len )
|
|
#define get_byte_addr( address ) \
|
|
( *host_sas_funcs.do_sas_get_byte_addr ) ( address )
|
|
#define inc_M_ptr( buf, offset ) \
|
|
( *host_sas_funcs.do_sas_inc_M_ptr ) ( buf, offset )
|
|
#define M_get_dw_ptr( offset ) \
|
|
( *host_sas_funcs.do_sas_M_get_dw_ptr ) ( offset )
|
|
#define sas_enable_20_bit_wrapping() \
|
|
( *host_sas_funcs.do_sas_enable_20_bit_wrapping ) ()
|
|
#define sas_disable_20_bit_wrapping() \
|
|
( *host_sas_funcs.do_sas_disable_20_bit_wrapping ) ()
|
|
#define sas_part_enable_20_bit_wrap( flag, target, source) \
|
|
( *host_sas_funcs.do_sas_part_enable_20_bit_wrap ) ( flag, target, source)
|
|
#define sas_part_disable_20_bit_wrap( flag, target, source) \
|
|
( *host_sas_funcs.do_sas_part_disable_20_bit_wrap ) ( flag, target, source)
|
|
#define sas_twenty_bit_wrapping_enabled() \
|
|
( *host_sas_funcs.do_sas_twenty_bit_wrapping_enabled ) ()
|
|
#define sas_scratch_address( length ) \
|
|
( *host_sas_funcs.do_sas_scratch_address ) ( length )
|
|
#define sas_connect_memory( laddr, haddr, len ) \
|
|
( *host_sas_funcs.do_sas_connect_memory ) ( laddr, haddr, len )
|
|
#define sas_loads_no_check( src, dest, len ) \
|
|
( *host_sas_funcs.do_sas_loads_no_check ) ( src, dest, len )
|
|
#define sas_stores_no_check( dest, src, len ) \
|
|
( *host_sas_funcs.do_sas_stores_no_check ) ( dest, src, len )
|
|
#define sas_overwrite_memory( dest, len ) \
|
|
( *host_sas_funcs.do_sas_overwrite_memory ) ( dest, len )
|
|
|
|
#endif /* HOST_SAS */
|
|
|
|
#endif /* BASE_SAS */
|