1/*
2 * Copyright (c) 2004 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
5 *
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License").  You may not use this file except in compliance with the
9 * License.  Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
11 *
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
17 * License for the specific language governing rights and limitations
18 * under the License.
19 *
20 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
21 */
22
23#ifndef	LIBKERN_VERSION_H
24#define LIBKERN_VERSION_H
25
26/* Kernel versions conform to kext version strings, as described in:
27 * http://developer.apple.com/technotes/tn/tn1132.html
28 */
29
30/* VERSION_MAJOR, version_major is an integer that represents that major version
31 * of the kernel
32 */
33#define VERSION_MAJOR		###KERNEL_VERSION_MAJOR###
34
35/* VERSION_MINOR, version_minor is an integer that represents the minor version
36 * of the kernel
37 */
38#define VERSION_MINOR		###KERNEL_VERSION_MINOR###
39
40/* VERSION_VARIANT, version_variant is a string that contains the revision,
41 * stage, and prerelease level of the kernel
42 */
43#define VERSION_VARIANT		"###KERNEL_VERSION_VARIANT###"
44
45/* VERSION_REVISION, version_revision is an integer that represents the revision
46 * of the kernel
47 */
48#define VERSION_REVISION	###KERNEL_VERSION_REVISION###
49
50/* VERSION_STAGE, version_stage, is an integer set to one of the following: */
51#define VERSION_STAGE_DEV	0x20
52#define VERSION_STAGE_ALPHA	0x40
53#define VERSION_STAGE_BETA	0x60
54#define VERSION_STAGE_RELEASE	0x80
55#define VERSION_STAGE		###KERNEL_VERSION_STAGE###
56
57/* VERSION_PRERELEASE_LEVEL, version_prerelease_level, is an integer sequence
58 * number to distinguish between pre-release builds
59 */
60#define VERSION_PRERELEASE_LEVEL	###KERNEL_VERSION_PRERELEASE_LEVEL###
61
62/* OSTYPE, ostype, is a string as returned by uname -s */
63#define	OSTYPE		"Darwin"
64
65/* OSRELEASE, osrelease, is a string as returned by uname -r */
66#define OSRELEASE	"###KERNEL_VERSION_LONG###"
67
68#ifndef ASSEMBLER
69
70#if defined(__cplusplus)
71extern "C" {
72#endif
73
74/* Build-time value of VERSION_MAJOR */
75extern const int version_major;
76
77/* Build-time value of VERSION_MINOR */
78extern const int version_minor;
79
80/* Build-time value of VERSION_VARIANT */
81extern const char version_variant[];
82
83/* Build-time value of VERSION_REVISION */
84extern const int version_revision;
85
86/* Build-time value of VERSION_STAGE */
87extern const int version_stage;
88
89/* Build-time value of VERSION_PRERELEASE_LEVEL */
90extern const int version_prerelease_level;
91
92/* Build-time value of OSTYPE */
93extern const char ostype[];
94
95/* Build-time value of OSRELEASE */
96extern const char osrelease[];
97
98/* osbuilder is a string as returned by uname -r */
99extern const char osbuilder[];
100
101/* version is a string of the following form, as returned by uname -v:
102 * "Darwin Kernel Version <osrelease>: <build date>; <osbuilder>:<build root>"
103 */
104
105extern const char version[];
106
107#define OSVERSIZE 256
108extern char osversion[];
109
110
111#if defined(__cplusplus)
112}
113#endif
114
115#endif /* !ASSEMBLER */
116
117#endif	/* LIBKERN_VERSION_H */
118