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,
24 #ifndef ISA_PNP_pnp_structs_h
25 #define ISA_PNP_pnp_structs_h
27 #include "CompilerSpecific.h"
29 #include <exec/types.h>
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 */