/* svoperator/svoperatorbase.h	    */
/* Version    : 9.1		    */
/* Date       : 24.09.1994	    */
/* Written by : Andreas R. Kleinert */

/* SVOperator-Version V1.x+ */

#ifndef SVOPERATORS_SVOPERATORBASE_H
#define SVOPERATORS_SVOPERATORBASE_H

#ifndef SVOPERATORS_SVOPERATORS_H
#include <svoperators/svoperators.h>
#endif /* SVOPERATORS_SVOPERATORS_H */

#ifndef EXEC_LISTS
#include <exec/lists.h>
#endif /* EXEC_LISTS */

#ifndef EXEC_LIBRARIES
#include <exec/libraries.h>
#endif /* EXEC_LIBRARIES_H */

   /* An external support-library for the superview.library is called a
      "svoperator".
      Each svoperator has to contain a "SVP_OperatorNode" structure (as follows)
      in its Library-Header, which later will be READ and MODIFIED by
      the superview.library.
      Because the superview.library supports three different sorts
      of SVOperators at the time (internal, independent and external),
      there are three different types of this structure (might be more in
      the future), which can be identified via their "svp_OperatorType".
   */

   /* The Construction of a svoperator :
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	

      The Library Base
      ----------------

      Version MUST be 1 yet, Revision can be set freely

      (see structure described below)


      The Function Table
      ------------------

      (see <pragmas/svoperators.h> or Reference_ENG.doc)

   */

/* *************************************************** */
/* *						     * */
/* * Library base Definition for svoperators         * */
/* *						     * */
/* *************************************************** */

struct SVOperatorBase
{
 struct Library 	  svb_LibNode;	   /* Exec LibNode		     */
 struct SVP_OperatorNode *svb_SVOperator;  /* POINTER to initialized	     */
					   /* SVP_OperatorNode		     */
					   /* Define it somewhere else,      */
					   /* then initialize this pointer.  */

 ULONG			svp_Reserved [32]; /* Reserved for future expansion. */
					   /* Always NULL yet (Version 1).   */

 /*
   Private data of the svoperator, not to be accessed
   by superview.library, may follow.
 */
};

#endif /* SVOPERATORS_SVOPERATORBASE_H */
