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

  1. /*
  2.     (C) 1995-96 AROS - The Amiga Replacement OS
  3.     $Id: adddevice.c,v 1.7 1997/01/01 03:46:03 ldp Exp $
  4.     $Log: adddevice.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:01  digulla
  22.     Added standard header for all files
  23.  
  24.     Desc:
  25.     Lang: english
  26. */
  27. #include <exec/execbase.h>
  28. #include <exec/devices.h>
  29. #include <aros/libcall.h>
  30. #include <proto/exec.h>
  31.  
  32. /*****************************************************************************
  33.  
  34.     NAME */
  35.  
  36.     AROS_LH1(void, AddDevice,
  37.  
  38. /*  SYNOPSIS */
  39.     AROS_LHA(struct Device *, device,A1),
  40.  
  41. /*  LOCATION */
  42.     struct ExecBase *, SysBase, 72, Exec)
  43.  
  44. /*  FUNCTION
  45.     Adds a given device to the system's device list after checksumming
  46.     the device vectors. This function is not for general use but
  47.     (of course) for building devices that don't use exec's MakeLibrary()
  48.     mechanism.
  49.  
  50.     INPUTS
  51.     device - Pointer to a ready for use device structure.
  52.  
  53.     RESULT
  54.  
  55.     NOTES
  56.  
  57.     EXAMPLE
  58.  
  59.     BUGS
  60.  
  61.     SEE ALSO
  62.     RemDevice(), OpenDevice(), CloseDevice()
  63.  
  64.     INTERNALS
  65.  
  66.     HISTORY
  67.  
  68. ******************************************************************************/
  69. {
  70.     AROS_LIBFUNC_INIT
  71.  
  72.     /* Just in case the user forgot them */
  73.     device->dd_Library.lib_Node.ln_Type=NT_DEVICE;
  74.     device->dd_Library.lib_Flags|=LIBF_CHANGED;
  75.  
  76.     /* Build checksum for device vectors */
  77.     SumLibrary(&device->dd_Library);
  78.  
  79.     /* Arbitrate for the device list */
  80.     Forbid();
  81.  
  82.     /* And add the device */
  83.     Enqueue(&SysBase->DeviceList,&device->dd_Library.lib_Node);
  84.  
  85.     /* All done. */
  86.     Permit();
  87.     AROS_LIBFUNC_EXIT
  88. } /* AddDevice */
  89.  
  90.