home *** CD-ROM | disk | FTP | other *** search
- /*
- ** dillo_lib.c
- **
- ** Contains the __UserLibInit() and __UserLibCleanup() routines for
- ** the armadillo.library example shared library.
- **
- ** © Copyright 1993-1999, Amiga, Inc. All Rights Reserved.
- ** Written by John Wiederhirn
- **
- */
-
- #include <exec/types.h>
- #include <clib/exec_protos.h>
- #include <pragmas/exec_pragmas.h>
-
- /* These prototypes are just to keep the compiler happy since we don't
- ** want them in the distributable proto file.
- */
-
- int __saveds __UserLibInit(void);
- void __saveds __UserLibCleanup(void);
-
- /* Following global item (UtilityBase) is created so our library can make
- ** utility.library calls. Technically putting it in the near section is a waste
- ** of memory, but for this example, it serves its purpose. Note also that we
- ** don't actually MAKE any Utility calls, but we COULD.
- */
-
- struct Library *UtilityBase = NULL;
- struct Library *SysBase = NULL;
-
- /*
- */
-
- int __saveds
- __UserLibInit( void )
- {
- int retval = 1;
-
- SysBase = (*((void **)4));
-
- /* Here we attempt to open Utility library. Not a particularly good
- ** example, but it gets the point across. If exec.library could not
- ** be opened (say for a second it couldn't), then __UserLibInit would
- ** return 1 indicating failure (where a return of 0 means success).
- */
-
- if (UtilityBase = OpenLibrary( "utility.library", 0L ))
- retval = 0;
-
- return( retval );
- }
-
-
- /* About as basic a routine as you can get, this routine cleans up the library
- ** by providing a matching CloseLibrary of the Utility library base we opened
- ** in the __UserLibInit() routine.
- */
-
- void __saveds
- __UserLibCleanup( void )
- {
- CloseLibrary( UtilityBase );
- }
-