1/* Copyright (c) 2012 Apple Inc. All rights reserved. */
2
3#ifndef _SECURITY_AUTH_OBJECT_H_
4#define _SECURITY_AUTH_OBJECT_H_
5
6#include "authd_private.h"
7#include <CoreFoundation/CoreFoundation.h>
8#include <CoreFoundation/CFRuntime.h>
9
10#if defined(__cplusplus)
11extern "C" {
12#endif
13
14#define __AUTH_BASE_STRUCT_HEADER__ \
15    CFRuntimeBase _base;
16
17struct _auth_base_s {
18    __AUTH_BASE_STRUCT_HEADER__;
19};
20
21#define AUTH_TYPE(type) const CFRuntimeClass type
22
23#define AUTH_TYPE_INSTANCE(name, ...) \
24    AUTH_TYPE(_auth_type_##name) = { \
25        .version = 0, \
26        .className = #name "_t", \
27        __VA_ARGS__ \
28    }
29
30#define AUTH_CLASS_SIZE(name) (sizeof(struct _##name##_s) - sizeof(CFRuntimeBase))
31
32#if defined(__cplusplus)
33}
34#endif
35
36#endif /* !_SECURITY_AUTH_OBJECT_H_ */
37