W.I.P AROS port of SDI examples
[AROS.git] / rom / isapnp / pnp_structs.h
blobee51fb892a3e3c6a241118e18c582e586e1d7c8f
1 /* $Id$ */
3 /*
4 ISA-PnP -- A Plug And Play ISA software layer for AmigaOS.
5 Copyright (C) 2001 Martin Blom <martin@blom.org>
6 Copyright (C) 2009-2013 The AROS Development Team
8 This library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Library General Public
10 License as published by the Free Software Foundation; either
11 version 2 of the License, or (at your option) any later version.
13 This library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Library General Public License for more details.
18 You should have received a copy of the GNU Library General Public
19 License along with this library; if not, write to the
20 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Cambridge,
21 MA 02139, USA.
24 #ifndef ISA_PNP_pnp_structs_h
25 #define ISA_PNP_pnp_structs_h
27 #include "CompilerSpecific.h"
29 #include <exec/types.h>
31 struct ISAPNPBase;
33 struct ISAPNP_Card;
34 struct ISAPNP_Device;
35 struct ISAPNP_ResourceGroup;
36 struct ISAPNP_Resource;
38 AROS_LD0(struct ISAPNP_Card *, ISAPNP_AllocCard,
39 struct ISAPNPBase *, res, 18, ISAPNP);
41 AROS_LD1(void, ISAPNP_FreeCard,
42 AROS_LHA(struct ISAPNP_Card *, card, A0),
43 struct ISAPNPBase *, res, 19, ISAPNP);
45 AROS_LD0(struct ISAPNP_Device *, ISAPNP_AllocDevice,
46 struct ISAPNPBase *, res, 20, ISAPNP);
48 AROS_LD1(void, ISAPNP_FreeDevice,
49 AROS_LHA(struct ISAPNP_Device *, dev, A0),
50 struct ISAPNPBase *, res, 21, ISAPNP);
52 AROS_LD1(struct ISAPNP_ResourceGroup *, ISAPNP_AllocResourceGroup,
53 AROS_LHA(UBYTE, pri, D0),
54 struct ISAPNPBase *, res, 22, ISAPNP);
56 AROS_LD1(void, ISAPNP_FreeResourceGroup,
57 AROS_LHA(struct ISAPNP_ResourceGroup *, rg, A0),
58 struct ISAPNPBase *, res, 23, ISAPNP);
60 AROS_LD1(struct ISAPNP_Resource *, ISAPNP_AllocResource,
61 AROS_LHA(UBYTE, type, D0),
62 struct ISAPNPBase *, res, 24, ISAPNP);
64 AROS_LD1(void, ISAPNP_FreeResource,
65 AROS_LHA(struct ISAPNP_Resource *, r, A0),
66 struct ISAPNPBase *, res, 25, ISAPNP);
68 static inline struct ISAPNP_Card *ISAPNP_AllocCard(struct ISAPNPBase *res)
70 return AROS_LC0(struct ISAPNP_Card *, ISAPNP_AllocCard,
71 struct ISAPNPBase *, res, 18, ISAPNP);
74 static inline void ISAPNP_FreeCard(struct ISAPNP_Card *card, struct ISAPNPBase *res)
76 AROS_LC1(void, ISAPNP_FreeCard,
77 AROS_LHA(struct ISAPNP_Card *, card, A0),
78 struct ISAPNPBase *, res, 19, ISAPNP);
81 static inline struct ISAPNP_Device *ISAPNP_AllocDevice(struct ISAPNPBase *res)
83 return AROS_LC0(struct ISAPNP_Device *, ISAPNP_AllocDevice,
84 struct ISAPNPBase *, res, 20, ISAPNP);
87 static inline void ISAPNP_FreeDevice(struct ISAPNP_Device *dev,
88 struct ISAPNPBase *res)
90 return AROS_LC1(void, ISAPNP_FreeDevice,
91 AROS_LHA(struct ISAPNP_Device *, dev, A0),
92 struct ISAPNPBase *, res, 21, ISAPNP);
95 static inline struct ISAPNP_ResourceGroup *ISAPNP_AllocResourceGroup(UBYTE pri,
96 struct ISAPNPBase *res)
98 return AROS_LC1(struct ISAPNP_ResourceGroup *, ISAPNP_AllocResourceGroup,
99 AROS_LHA(UBYTE, pri, D0),
100 struct ISAPNPBase *, res, 22, ISAPNP);
103 static inline void ISAPNP_FreeResourceGroup(struct ISAPNP_ResourceGroup *rg,
104 struct ISAPNPBase *res)
106 AROS_LC1(void, ISAPNP_FreeResourceGroup,
107 AROS_LHA(struct ISAPNP_ResourceGroup *, rg, A0),
108 struct ISAPNPBase *, res, 23, ISAPNP);
111 static inline struct ISAPNP_Resource *ISAPNP_AllocResource(UBYTE type,
112 struct ISAPNPBase *res)
114 return AROS_LC1(struct ISAPNP_Resource *, ISAPNP_AllocResource,
115 AROS_LHA(UBYTE, type, D0),
116 struct ISAPNPBase *, res, 24, ISAPNP);
119 static inline void ISAPNP_FreeResource(struct ISAPNP_Resource *r,
120 struct ISAPNPBase *res)
122 AROS_LC1(void, ISAPNP_FreeResource,
123 AROS_LHA(struct ISAPNP_Resource *, r, A0),
124 struct ISAPNPBase *, res, 25, ISAPNP);
127 #endif /* ISA_PNP_pnp_structs_h */