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/* OSBUILD_CONFIG, osbuild_config is a one-word string describing the build 63 * configuration of the kernel, e.g., development or release */ 64#define OSBUILD_CONFIG "###KERNEL_BUILD_CONFIG###" 65 66/* OSTYPE, ostype, is a string as returned by uname -s */ 67#define OSTYPE "Darwin" 68 69/* OSRELEASE, osrelease, is a string as returned by uname -r */ 70#define OSRELEASE "###KERNEL_VERSION_LONG###" 71 72#ifndef ASSEMBLER 73 74#if defined(__cplusplus) 75extern "C" { 76#endif 77 78/* Build-time value of VERSION_MAJOR */ 79extern const int version_major; 80 81/* Build-time value of VERSION_MINOR */ 82extern const int version_minor; 83 84/* Build-time value of VERSION_VARIANT */ 85extern const char version_variant[]; 86 87/* Build-time value of VERSION_REVISION */ 88extern const int version_revision; 89 90/* Build-time value of VERSION_STAGE */ 91extern const int version_stage; 92 93/* Build-time value of VERSION_PRERELEASE_LEVEL */ 94extern const int version_prerelease_level; 95 96/* Build-time value of CURRENT_KERNEL_CONFIG */ 97extern const char osbuild_config[]; 98 99/* Build-time value of OSTYPE */ 100extern const char ostype[]; 101 102/* Build-time value of OSRELEASE */ 103extern const char osrelease[]; 104 105/* osbuilder is a string as returned by uname -r */ 106extern const char osbuilder[]; 107 108/* version is a string of the following form, as returned by uname -v: 109 * "Darwin Kernel Version <osrelease>: <build date>; <osbuilder>:<build root>" 110 */ 111 112extern const char version[]; 113 114#define OSVERSIZE 256 115extern char osversion[]; 116 117 118#if defined(__cplusplus) 119} 120#endif 121 122#endif /* !ASSEMBLER */ 123 124#endif /* LIBKERN_VERSION_H */ 125