Initial import of Scalos. To decrease size I have
[AROS-Contrib.git] / scalos / include / inline / openurl.h
blob806283507a856e628353bd8b562295c46a5f8aee
1 #ifndef _INLINE_OPENURL_H
2 #define _INLINE_OPENURL_H
4 #ifndef CLIB_OPENURL_PROTOS_H
5 #define CLIB_OPENURL_PROTOS_H
6 #endif
8 #ifndef __INLINE_MACROS_H
9 #include <inline/macros.h>
10 #endif
12 #ifndef EXEC_TYPES_H
13 #include <exec/types.h>
14 #endif
16 #ifndef OPENURL_BASE_NAME
17 #define OPENURL_BASE_NAME OpenURLBase
18 #endif
20 #define URL_OpenA(url, tags) \
21 LP2(0x1e, ULONG, URL_OpenA, STRPTR, url, a0, struct TagItem *, tags, a1, \
22 , OPENURL_BASE_NAME)
24 #ifndef NO_INLINE_STDARG
25 #define URL_Open(url, tags...) \
26 ({ULONG _tags[] = {tags}; URL_OpenA((url), (struct TagItem *) _tags);})
27 #endif
29 #define URL_OldGetPrefs() \
30 LP0(0x24, struct URL_Prefs *, URL_OldGetPrefs, \
31 , OPENURL_BASE_NAME)
33 #define URL_OldFreePrefs(up) \
34 LP1NR(0x2a, URL_OldFreePrefs, struct URL_Prefs *, up, a0, \
35 , OPENURL_BASE_NAME)
37 #define URL_OldSetPrefs(up, permanent) \
38 LP2(0x30, ULONG, URL_OldSetPrefs, struct URL_Prefs *, up, a0, LONG, permanent, d0, \
39 , OPENURL_BASE_NAME)
41 #define URL_OldGetDefaultPrefs() \
42 LP0(0x36, struct URL_Prefs *, URL_OldGetDefaultPrefs, \
43 , OPENURL_BASE_NAME)
45 #define URL_OldLaunchPrefsApp() \
46 LP0(0x3c, ULONG, URL_OldLaunchPrefsApp, \
47 , OPENURL_BASE_NAME)
49 #define URL_GetPrefsA(tags) \
50 LP1(0x48, struct URL_Prefs *, URL_GetPrefsA, struct TagItem *, tags, a0, \
51 , OPENURL_BASE_NAME)
53 #ifndef NO_INLINE_STDARG
54 #define URL_GetPrefs(tags...) \
55 ({ULONG _tags[] = {tags}; URL_GetPrefsA((struct TagItem *) _tags);})
56 #endif
58 #define URL_FreePrefsA(prefs, tags) \
59 LP2NR(0x4e, URL_FreePrefsA, struct URL_Prefs *, prefs, a0, struct TagItem *, tags, a1, \
60 , OPENURL_BASE_NAME)
62 #ifndef NO_INLINE_STDARG
63 #define URL_FreePrefs(prefs, tags...) \
64 ({ULONG _tags[] = {tags}; URL_FreePrefsA((prefs), (struct TagItem *) _tags);})
65 #endif
67 #define URL_SetPrefsA(up, tags) \
68 LP2(0x54, ULONG, URL_SetPrefsA, struct URL_Prefs *, up, a0, struct TagItem *, tags, a1, \
69 , OPENURL_BASE_NAME)
71 #ifndef NO_INLINE_STDARG
72 #define URL_SetPrefs(up, tags...) \
73 ({ULONG _tags[] = {tags}; URL_SetPrefsA((up), (struct TagItem *) _tags);})
74 #endif
76 #define URL_LaunchPrefsAppA(tags) \
77 LP1(0x5a, ULONG, URL_LaunchPrefsAppA, struct TagItem *, tags, a0, \
78 , OPENURL_BASE_NAME)
80 #ifndef NO_INLINE_STDARG
81 #define URL_LaunchPrefsApp(tags...) \
82 ({ULONG _tags[] = {tags}; URL_LaunchPrefsAppA((struct TagItem *) _tags);})
83 #endif
85 #define URL_GetAttr(attr, storage) \
86 LP2(0x60, ULONG, URL_GetAttr, ULONG, attr, d0, ULONG *, storage, a0, \
87 , OPENURL_BASE_NAME)
89 #endif /* _INLINE_OPENURL_H */