#ifndef INLINE_PARTITION_H
#define INLINE_PARTITION_H

/*
    *** Automatically generated from '/data/deadwood/gitAROS/AROS/rom/partition/partition.conf'. Edits will be lost. ***
    Copyright © 1995-2011, The AROS Development Team. All rights reserved.
*/

/*
    Desc: Inline function for partition
*/

#include <aros/libcall.h>
#include <exec/types.h>
#include <aros/symbolsets.h>
#include <aros/preprocessor/variadic/cast2iptr.hpp>


static inline struct PartitionHandle * __inline_Partition_OpenRootPartition(CONST_STRPTR __arg1, LONG __arg2, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    return AROS_LC2(struct PartitionHandle *, OpenRootPartition,
        AROS_LCA(CONST_STRPTR,(__arg1),A1),
        AROS_LCA(LONG,(__arg2),D1),
        struct PartitionBase *, (__PartitionBase), 5, Partition    );
}

#define OpenRootPartition(arg1, arg2) \
    __inline_Partition_OpenRootPartition((arg1), (arg2), (APTR)PartitionBase)

static inline void __inline_Partition_CloseRootPartition(struct PartitionHandle * __arg1, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    AROS_LC1NR(void, CloseRootPartition,
        AROS_LCA(struct PartitionHandle *,(__arg1),A1),
        struct PartitionBase *, (__PartitionBase), 6, Partition    );
}

#define CloseRootPartition(arg1) \
    __inline_Partition_CloseRootPartition((arg1), (APTR)PartitionBase)

static inline LONG __inline_Partition_OpenPartitionTable(struct PartitionHandle * __arg1, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    return AROS_LC1(LONG, OpenPartitionTable,
        AROS_LCA(struct PartitionHandle *,(__arg1),A1),
        struct PartitionBase *, (__PartitionBase), 7, Partition    );
}

#define OpenPartitionTable(arg1) \
    __inline_Partition_OpenPartitionTable((arg1), (APTR)PartitionBase)

static inline void __inline_Partition_ClosePartitionTable(struct PartitionHandle * __arg1, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    AROS_LC1NR(void, ClosePartitionTable,
        AROS_LCA(struct PartitionHandle *,(__arg1),A1),
        struct PartitionBase *, (__PartitionBase), 8, Partition    );
}

#define ClosePartitionTable(arg1) \
    __inline_Partition_ClosePartitionTable((arg1), (APTR)PartitionBase)

static inline LONG __inline_Partition_WritePartitionTable(struct PartitionHandle * __arg1, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    return AROS_LC1(LONG, WritePartitionTable,
        AROS_LCA(struct PartitionHandle *,(__arg1),A1),
        struct PartitionBase *, (__PartitionBase), 9, Partition    );
}

#define WritePartitionTable(arg1) \
    __inline_Partition_WritePartitionTable((arg1), (APTR)PartitionBase)

static inline LONG __inline_Partition_CreatePartitionTable(struct PartitionHandle * __arg1, ULONG __arg2, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    return AROS_LC2(LONG, CreatePartitionTable,
        AROS_LCA(struct PartitionHandle *,(__arg1),A1),
        AROS_LCA(ULONG,(__arg2),D1),
        struct PartitionBase *, (__PartitionBase), 10, Partition    );
}

#define CreatePartitionTable(arg1, arg2) \
    __inline_Partition_CreatePartitionTable((arg1), (arg2), (APTR)PartitionBase)

static inline struct PartitionHandle * __inline_Partition_AddPartition(struct PartitionHandle * __arg1, struct TagItem * __arg2, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    return AROS_LC2(struct PartitionHandle *, AddPartition,
        AROS_LCA(struct PartitionHandle *,(__arg1),A1),
        AROS_LCA(struct TagItem *,(__arg2),A2),
        struct PartitionBase *, (__PartitionBase), 11, Partition    );
}

#define AddPartition(arg1, arg2) \
    __inline_Partition_AddPartition((arg1), (arg2), (APTR)PartitionBase)

#if !defined(NO_INLINE_STDARG) && !defined(PARTITION_NO_INLINE_STDARG)
#define AddPartitionTags(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    AddPartition((arg1), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

static inline void __inline_Partition_DeletePartition(struct PartitionHandle * __arg1, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    AROS_LC1NR(void, DeletePartition,
        AROS_LCA(struct PartitionHandle *,(__arg1),A1),
        struct PartitionBase *, (__PartitionBase), 12, Partition    );
}

#define DeletePartition(arg1) \
    __inline_Partition_DeletePartition((arg1), (APTR)PartitionBase)

static inline LONG __inline_Partition_GetPartitionTableAttrs(struct PartitionHandle * __arg1, const struct TagItem * __arg2, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    return AROS_LC2(LONG, GetPartitionTableAttrs,
        AROS_LCA(struct PartitionHandle *,(__arg1),A1),
        AROS_LCA(const struct TagItem *,(__arg2),A2),
        struct PartitionBase *, (__PartitionBase), 13, Partition    );
}

#define GetPartitionTableAttrs(arg1, arg2) \
    __inline_Partition_GetPartitionTableAttrs((arg1), (arg2), (APTR)PartitionBase)

#if !defined(NO_INLINE_STDARG) && !defined(PARTITION_NO_INLINE_STDARG)
#define GetPartitionTableAttrsTags(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    GetPartitionTableAttrs((arg1), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

static inline LONG __inline_Partition_SetPartitionTableAttrs(struct PartitionHandle * __arg1, struct TagItem * __arg2, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    return AROS_LC2(LONG, SetPartitionTableAttrs,
        AROS_LCA(struct PartitionHandle *,(__arg1),A1),
        AROS_LCA(struct TagItem *,(__arg2),A2),
        struct PartitionBase *, (__PartitionBase), 14, Partition    );
}

#define SetPartitionTableAttrs(arg1, arg2) \
    __inline_Partition_SetPartitionTableAttrs((arg1), (arg2), (APTR)PartitionBase)

#if !defined(NO_INLINE_STDARG) && !defined(PARTITION_NO_INLINE_STDARG)
#define SetPartitionTableAttrsTags(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    SetPartitionTableAttrs((arg1), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

static inline LONG __inline_Partition_GetPartitionAttrs(struct PartitionHandle * __arg1, const struct TagItem * __arg2, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    return AROS_LC2(LONG, GetPartitionAttrs,
        AROS_LCA(struct PartitionHandle *,(__arg1),A1),
        AROS_LCA(const struct TagItem *,(__arg2),A2),
        struct PartitionBase *, (__PartitionBase), 15, Partition    );
}

#define GetPartitionAttrs(arg1, arg2) \
    __inline_Partition_GetPartitionAttrs((arg1), (arg2), (APTR)PartitionBase)

#if !defined(NO_INLINE_STDARG) && !defined(PARTITION_NO_INLINE_STDARG)
#define GetPartitionAttrsTags(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    GetPartitionAttrs((arg1), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

static inline LONG __inline_Partition_SetPartitionAttrs(struct PartitionHandle * __arg1, struct TagItem * __arg2, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    return AROS_LC2(LONG, SetPartitionAttrs,
        AROS_LCA(struct PartitionHandle *,(__arg1),A1),
        AROS_LCA(struct TagItem *,(__arg2),A2),
        struct PartitionBase *, (__PartitionBase), 16, Partition    );
}

#define SetPartitionAttrs(arg1, arg2) \
    __inline_Partition_SetPartitionAttrs((arg1), (arg2), (APTR)PartitionBase)

#if !defined(NO_INLINE_STDARG) && !defined(PARTITION_NO_INLINE_STDARG)
#define SetPartitionAttrsTags(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    SetPartitionAttrs((arg1), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

static inline const struct PartitionAttribute * __inline_Partition_QueryPartitionTableAttrs(struct PartitionHandle * __arg1, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    return AROS_LC1(const struct PartitionAttribute *, QueryPartitionTableAttrs,
        AROS_LCA(struct PartitionHandle *,(__arg1),A1),
        struct PartitionBase *, (__PartitionBase), 17, Partition    );
}

#define QueryPartitionTableAttrs(arg1) \
    __inline_Partition_QueryPartitionTableAttrs((arg1), (APTR)PartitionBase)

static inline const struct PartitionAttribute * __inline_Partition_QueryPartitionAttrs(struct PartitionHandle * __arg1, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    return AROS_LC1(const struct PartitionAttribute *, QueryPartitionAttrs,
        AROS_LCA(struct PartitionHandle *,(__arg1),A1),
        struct PartitionBase *, (__PartitionBase), 18, Partition    );
}

#define QueryPartitionAttrs(arg1) \
    __inline_Partition_QueryPartitionAttrs((arg1), (APTR)PartitionBase)

static inline LONG __inline_Partition_DestroyPartitionTable(struct PartitionHandle * __arg1, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    return AROS_LC1(LONG, DestroyPartitionTable,
        AROS_LCA(struct PartitionHandle *,(__arg1),A1),
        struct PartitionBase *, (__PartitionBase), 19, Partition    );
}

#define DestroyPartitionTable(arg1) \
    __inline_Partition_DestroyPartitionTable((arg1), (APTR)PartitionBase)

static inline struct Node * __inline_Partition_FindFileSystemA(struct PartitionHandle * __arg1, struct TagItem * __arg2, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    return AROS_LC2(struct Node *, FindFileSystemA,
        AROS_LCA(struct PartitionHandle *,(__arg1),A1),
        AROS_LCA(struct TagItem *,(__arg2),A2),
        struct PartitionBase *, (__PartitionBase), 20, Partition    );
}

#define FindFileSystemA(arg1, arg2) \
    __inline_Partition_FindFileSystemA((arg1), (arg2), (APTR)PartitionBase)

#if !defined(NO_INLINE_STDARG) && !defined(PARTITION_NO_INLINE_STDARG)
#define FindFileSystem(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    FindFileSystemA((arg1), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

static inline BPTR __inline_Partition_LoadFileSystem(struct Node * __arg1, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    return AROS_LC1(BPTR, LoadFileSystem,
        AROS_LCA(struct Node *,(__arg1),A1),
        struct PartitionBase *, (__PartitionBase), 21, Partition    );
}

#define LoadFileSystem(arg1) \
    __inline_Partition_LoadFileSystem((arg1), (APTR)PartitionBase)

static inline void __inline_Partition_GetFileSystemAttrsA(struct Node * __arg1, const struct TagItem * __arg2, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    AROS_LC2NR(void, GetFileSystemAttrsA,
        AROS_LCA(struct Node *,(__arg1),A1),
        AROS_LCA(const struct TagItem *,(__arg2),A2),
        struct PartitionBase *, (__PartitionBase), 22, Partition    );
}

#define GetFileSystemAttrsA(arg1, arg2) \
    __inline_Partition_GetFileSystemAttrsA((arg1), (arg2), (APTR)PartitionBase)

#if !defined(NO_INLINE_STDARG) && !defined(PARTITION_NO_INLINE_STDARG)
#define GetFileSystemAttrs(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    GetFileSystemAttrsA((arg1), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

static inline LONG __inline_Partition_AddBootFileSystem(struct Node * __arg1, APTR __PartitionBase)
{
    AROS_LIBREQ(PartitionBase, 0)
    return AROS_LC1(LONG, AddBootFileSystem,
        AROS_LCA(struct Node *,(__arg1),A1),
        struct PartitionBase *, (__PartitionBase), 23, Partition    );
}

#define AddBootFileSystem(arg1) \
    __inline_Partition_AddBootFileSystem((arg1), (APTR)PartitionBase)

#endif /* INLINE_PARTITION_H*/
