1// Copyright (C) 2016 The Qt Company Ltd.
2// Copyright (C) 2016 Intel Corporation.
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4
5#ifndef QSYSINFO_H
6#define QSYSINFO_H
7
8#include <QtCore/qtconfigmacros.h>
9#include <QtCore/qprocessordetection.h>
10#include <QtCore/qtcoreexports.h>
11
12QT_BEGIN_NAMESPACE
13
14/*
15 System information
16*/
17
18class QString;
19class QByteArray;
20
21class Q_CORE_EXPORT QSysInfo
22{
23public:
24 enum Sizes {
25 WordSize = (sizeof(void *)<<3)
26 };
27
28 enum Endian {
29 BigEndian,
30 LittleEndian
31# ifdef Q_QDOC
32 , ByteOrder = BigEndian or LittleEndian
33# elif Q_BYTE_ORDER == Q_BIG_ENDIAN
34 , ByteOrder = BigEndian
35# elif Q_BYTE_ORDER == Q_LITTLE_ENDIAN
36 , ByteOrder = LittleEndian
37# else
38# error "Undefined byte order"
39# endif
40 };
41
42 static QString buildCpuArchitecture();
43 static QString currentCpuArchitecture();
44 static QString buildAbi();
45
46 static QString kernelType();
47 static QString kernelVersion();
48 static QString productType();
49 static QString productVersion();
50 static QString prettyProductName();
51
52 static QString machineHostName();
53 static QByteArray machineUniqueId();
54 static QByteArray bootUniqueId();
55};
56
57QT_END_NAMESPACE
58#endif // QSYSINFO_H
59

source code of qtbase/src/corelib/global/qsysinfo.h