Fix semdiff syntactic output
[hiphop-php.git] / hphp / util / kernel-version.h
blob563877eef3424d17a5dd7b0e8843bcfea9b90a26
1 /*
2 +----------------------------------------------------------------------+
3 | HipHop for PHP |
4 +----------------------------------------------------------------------+
5 | Copyright (c) 2010-present Facebook, Inc. (http://www.facebook.com) |
6 +----------------------------------------------------------------------+
7 | This source file is subject to version 3.01 of the PHP license, |
8 | that is bundled with this package in the file LICENSE, and is |
9 | available through the world-wide-web at the following url: |
10 | http://www.php.net/license/3_01.txt |
11 | If you did not receive a copy of the PHP license and are unable to |
12 | obtain it through the world-wide-web, please send a note to |
13 | license@php.net so we can mail you a copy immediately. |
14 +----------------------------------------------------------------------+
16 #ifndef incl_HPHP_KERNEL_VERSION_H_
17 #define incl_HPHP_KERNEL_VERSION_H_
19 #include <string>
21 namespace HPHP {
23 struct KernelVersion {
24 // <major>.<minor>.<release>-<build>_fbk<fbk>
25 int m_major;
26 int m_minor;
27 int m_release;
28 int m_build;
29 std::string m_release_str;
30 std::string m_build_str;
31 int m_fbk;
32 KernelVersion(); // Use uname
33 explicit KernelVersion(const char*); // A known kernel version for cmp.
34 static int cmp(const KernelVersion& l, const KernelVersion& r) {
35 #define C(field) if (l.field != r.field) return l.field - r.field;
36 C(m_major);
37 C(m_minor);
38 C(m_release);
39 C(m_build);
40 C(m_fbk);
41 #undef C
42 return 0;
44 private:
45 void parse(const char* c);
46 bool isNumber(const std::string s);
51 #endif