home *** CD-ROM | disk | FTP | other *** search
/ MACD 4 / MACD4.iso / Emulatory / AROS / utility / utility_intern.h < prev   
Encoding:
C/C++ Source or Header  |  1978-03-06  |  2.3 KB  |  103 lines

  1. /*
  2.     (C) 1995-96 AROS - The Amiga Replacement OS
  3.     $Id: utility_intern.h,v 1.6 1996/10/24 15:51:39 aros Exp $
  4.     $Log: utility_intern.h,v $
  5.     Revision 1.6  1996/10/24 15:51:39  aros
  6.     Use the official AROS macros over the __AROS versions.
  7.  
  8.     Revision 1.5  1996/09/13 17:10:55  aros
  9.     Don't use the TOLOWER() and TOUPPER() macros directly.
  10.  
  11.     Revision 1.4  1996/09/12 14:52:47  digulla
  12.     Better way to separate public and private parts of the library base
  13.  
  14.     Revision 1.3  1996/08/31 12:58:14  aros
  15.     Merged in/modified for FreeBSD.
  16.  
  17.     Revision 1.2  1996/08/01 17:41:42  digulla
  18.     Added standard header for all files
  19.  
  20.     Desc:
  21.     Lang:
  22. */
  23. #ifndef UTILITY_INTERN_H
  24. #define UTILITY_INTERN_H
  25.  
  26. #ifndef EXEC_TYPES_H
  27. #include <exec/types.h>
  28. #endif
  29. #ifndef EXEC_NODES_H
  30. #include <exec/nodes.h>
  31. #endif
  32. #ifndef EXEC_LISTS_H
  33. #include <exec/lists.h>
  34. #endif
  35. #ifndef EXEC_LIBRARIES_H
  36. #include <exec/libraries.h>
  37. #endif
  38. #ifndef EXEC_MEMORY_H
  39. #include <exec/memory.h>
  40. #endif
  41. #ifndef EXEC_IO_H
  42. #include <exec/io.h>
  43. #endif
  44. #ifndef EXEC_SEMAPHORES_H
  45. #include <exec/semaphores.h>
  46. #endif
  47. #ifndef UTILITY_NAME_H
  48. #include <utility/name.h>
  49. #endif
  50. #ifndef UTILITY_DATE_H
  51. #include <utility/date.h>
  52. #endif
  53. #ifndef AROS_LIBCALL_H
  54. #include <aros/libcall.h>
  55. #endif
  56. #ifndef UTILITY_UTILITY_H
  57. #include <utility/utility.h>
  58. #endif
  59. #ifndef CLIB_EXEC_PROTOS_H
  60. #include <clib/exec_protos.h>
  61. #endif
  62. #ifndef CLIB_UTILITY_PROTOS_H
  63. #include <clib/utility_protos.h>
  64. #endif
  65.  
  66. /*
  67.     This is the internal version of the UtilityBase structure
  68. */
  69.  
  70. struct IntUtilityBase
  71. {
  72.     struct UtilityBase UBase;
  73.  
  74.     /*
  75.        This is where the private data starts.
  76.     */
  77.     struct ExecBase    *ub_SysBase;
  78.     ULONG         ub_LastID;
  79.  
  80.     struct NamedObject    *ub_GlobalNameSpace;
  81.  
  82.     /*
  83.     This should always be at the end, and it is only valid when the
  84.     library is loaded from disk, eg testing...
  85.  
  86.     The reference is still in here of course, it just means that
  87.     when I change the library base I will have to recompile most of
  88.     the files, oh well...
  89.     */
  90.     BPTR         ub_SegList;
  91. };
  92.  
  93. /* digulla again... Needed for close() */
  94. #define expunge() \
  95.  AROS_LC0(BPTR, expunge, struct UtilityBase *, UtilityBase, 3, Utility)
  96.  
  97. #define GetIntUtilityBase(ub)   ((struct IntUtilityBase *)(ub))
  98. #define GetUtilityBase(ub)      (GetIntUtilityBase(ub)->UBase)
  99.  
  100. #define SysBase     (GetIntUtilityBase(UtilityBase)->ub_SysBase)
  101.  
  102. #endif
  103.