home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / misc / emu / AROSdev.lha / AROS / rom / exec / addlibrary.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-01-09  |  2.0 KB  |  89 lines

  1. /*
  2.     (C) 1995-96 AROS - The Amiga Replacement OS
  3.     $Id: addlibrary.c,v 1.7 1997/01/01 03:46:03 ldp Exp $
  4.     $Log: addlibrary.c,v $
  5.     Revision 1.7  1997/01/01 03:46:03  ldp
  6.     Committed Amiga native (support) code
  7.  
  8.     Changed clib to proto
  9.  
  10.     Revision 1.6  1996/12/10 13:51:34  aros
  11.     Moved all #include's in the first column so makedepend can see it.
  12.  
  13.     Revision 1.5  1996/10/24 15:50:41  aros
  14.     Use the official AROS macros over the __AROS versions.
  15.  
  16.     Revision 1.4  1996/08/13 13:55:55  digulla
  17.     Replaced AROS_LA by AROS_LHA
  18.     Replaced some AROS_LH*I by AROS_LH*
  19.     Sorted and added includes
  20.  
  21.     Revision 1.3  1996/08/01 17:41:02  digulla
  22.     Added standard header for all files
  23.  
  24.     Desc:
  25.     Lang: english
  26. */
  27. #include <exec/execbase.h>
  28. #include <aros/libcall.h>
  29. #include <proto/exec.h>
  30.  
  31. /*****************************************************************************
  32.  
  33.     NAME */
  34.  
  35.     AROS_LH1(void, AddLibrary,
  36.  
  37. /*  SYNOPSIS */
  38.     AROS_LHA(struct Library *, library,A1),
  39.  
  40. /*  LOCATION */
  41.     struct ExecBase *, SysBase, 66, Exec)
  42.  
  43. /*  FUNCTION
  44.     Adds a given library to the system's library list after checksumming
  45.     the library vectors. This function is not for general use but
  46.     (of course) for building shared librarys that don't use exec's
  47.     MakeLibrary() mechanism.
  48.  
  49.     INPUTS
  50.     library - Pointer to a ready for use library structure.
  51.  
  52.     RESULT
  53.  
  54.     NOTES
  55.  
  56.     EXAMPLE
  57.  
  58.     BUGS
  59.  
  60.     SEE ALSO
  61.     RemLibrary(), MakeLibrary(), MakeFunctions(), InitStruct(), SumLibrary().
  62.  
  63.     INTERNALS
  64.  
  65.     HISTORY
  66.  
  67. ******************************************************************************/
  68. {
  69.     AROS_LIBFUNC_INIT
  70.  
  71.     /* Just in case the user forgot them */
  72.     library->lib_Node.ln_Type=NT_LIBRARY;
  73.     library->lib_Flags|=LIBF_CHANGED;
  74.  
  75.     /* Build checksum for library vectors */
  76.     SumLibrary(library);
  77.  
  78.     /* Arbitrate for the library list */
  79.     Forbid();
  80.  
  81.     /* And add the library */
  82.     Enqueue(&SysBase->LibList,&library->lib_Node);
  83.  
  84.     /* All done. */
  85.     Permit();
  86.     AROS_LIBFUNC_EXIT
  87. } /* AddLibrary */
  88.  
  89.