Coherent4.2.10/include/sys/ddi.h
/* (-lgl
* Coherent 386 release 4.2
* Copyright (c) 1982, 1993 by Mark Williams Company.
* All rights reserved. May not be copied without permission.
* For copying permission and licensing info, write licensing@mwc.com
-lgl) */
#ifndef __SYS_DDI_H__
#define __SYS_DDI_H__
/*
* This header removes macro definitions of functions, to enhance the
* portablity of user-driver binaries by removing dependencies
* on many system definitions, such as structure lengths. Because many simple
* functions are implemented as macros to remove the source-level dependency
* while keeping performance, inclusion of the <sys/ddi.h> header indicates
* that the user wishes to make trade off speed and time against binary
* portability.
*
* Of course, many DDI/DKI functions exists to remove other dependences, such
* as on the size and offsets of structure *members*, and on the names and
* locations of data items. However, this header does not deal with defining
* prototype or anything else related to these aspects of the DDI/DKI
* specification, as they either involve changing source code to use these
* new functions or are old functions (defined in the headers related to the
* subsystem they were appropriated from) that have been elevated to DDI/DKI
* preferred status.
*
* Clients of this header should use the new DDI/DKI functions to reduce
* dependency on system data structure layout, but here we deal with the
* simple transformation of macros to function calls, by subsystem.
*/
#ifdef __SYS_STREAM_H__
/*
* Our client is also a client of the STREAMS subsystem; undefine macros that
* are functions under the DDI/DKI regime.
*/
#undef datamsg
#undef enableok
#undef noenable
#undef OTHERQ
#undef pcmsg
#undef putnext
#undef RD
#undef WR
#endif /* defined (__SYS_STREAM_H__) */
#ifdef __KERNEL_STRMLIB_H__
/*
* Our client is also using some of the STREAMS extras
*/
#undef W
#undef R
#endif /* defined (__KERNEL_STRMLIB_H__) */
#ifdef __SYS_INLINE_H__
/*
* Our client is also a client of the inline interrupt-level manipulation
* functions.
*/
#undef splbase
#undef spltimeout
#undef spldisk
#undef splstr
#undef splhi
#undef splx
#undef splcmp
#undef splraise
#endif /* defined (__SYS_INLINE_H__) */
#ifdef __KERNEL_V_TYPES_H__
#undef btop
#undef btopr
#undef ptob
#undef etoimajor
#undef getemajor
#undef geteminor
#undef getmajor
#undef getminor
#undef itoemajor
#undef makedevice
#endif /* defined (__KERNEL_V_TYPES_H__) */
#ifdef __KERNEL_DDI_BASE_H__
#undef ddi_base_data
#endif /* defined (__KERNEL_DDI_BASE_H__) */
#ifdef __KERNEL_DDI_PROC_H__
#undef ddi_proc_data
#endif /* defined (__KERNEL_DDI_PROC_H__) */
#ifdef __KERNEL_DDI_CPU_H__
#undef ddi_cpu_data
#endif /* defined (__KERNEL_DDI_CPU_H__) */
#ifdef __KERNEL_DDI_GLOB_H__
#undef ddi_glob_data
#endif /* defined (__KERNEL_DDI_GLOB_H__) */
#ifdef __KERNEL_X86IO_H__
/*
* Our client is also a client of the Intel 80x86 I/O instruction bindings.
*
* This stuff is normally defined as part of <sys/types.h> but we keep it
* in a separate header (which <sys/types.h> can pull in if necessary).
*/
#undef insb
#undef insl
#undef insw
#undef outb
#undef outl
#undef outw
#undef repinsb
#undef repinsd
#undef repinsw
#undef repoutsb
#undef repoutsd
#undef repoutsw
#endif /* defined (__KERNEL_X86IO_H__) */
#endif /* ! defined (__SYS_DDI_H__) */