Line data Source code
1 : /*
2 : *
3 : * Copyright (c) 2020-2022 Project CHIP Authors
4 : * Copyright (c) 2014-2017 Nest Labs, Inc.
5 : *
6 : * Licensed under the Apache License, Version 2.0 (the "License");
7 : * you may not use this file except in compliance with the License.
8 : * You may obtain a copy of the License at
9 : *
10 : * http://www.apache.org/licenses/LICENSE-2.0
11 : *
12 : * Unless required by applicable law or agreed to in writing, software
13 : * distributed under the License is distributed on an "AS IS" BASIS,
14 : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 : * See the License for the specific language governing permissions and
16 : * limitations under the License.
17 : */
18 :
19 : /**
20 : * @file
21 : * This file defines chip vendor identifiers.
22 : *
23 : * Vendor identifiers are assigned and administered by CHIP.
24 : *
25 : */
26 :
27 : #pragma once
28 :
29 : #include <cstdint>
30 :
31 : namespace chip {
32 :
33 : //
34 : // CHIP Vendor Identifiers (16 bits max)
35 : //
36 : // These values are under administration by Connectivity Standards Alliance (CSA).
37 : // For new value allocation make a formal request to CSA.
38 : // The database of currently allocated identifiers can be found in this document:
39 : // https://groups.csa-iot.org/wg/members-all/document/10905
40 : //
41 : // As per specifications (section 2.5.2 Vendor Identifier)
42 : enum VendorId : uint16_t
43 : {
44 : Common = 0x0000u,
45 : Unspecified = 0x0000u,
46 : Apple = 0x1349u,
47 : Google = 0x6006u,
48 : TestVendor1 = 0xFFF1u,
49 : TestVendor2 = 0xFFF2u,
50 : TestVendor3 = 0xFFF3u,
51 : TestVendor4 = 0xFFF4u,
52 : NotSpecified = 0xFFFFu
53 : };
54 :
55 : constexpr bool IsTestVendorId(VendorId vid)
56 : {
57 : return (vid >= TestVendor1 && vid <= TestVendor4);
58 : }
59 :
60 46 : constexpr bool IsVendorIdValidOperationally(uint16_t vendorId)
61 : {
62 46 : return (vendorId != static_cast<uint16_t>(VendorId::Common)) && (vendorId <= static_cast<uint16_t>(VendorId::TestVendor4));
63 : }
64 :
65 : constexpr bool IsVendorIdValidOperationally(VendorId vendorId)
66 : {
67 : return IsVendorIdValidOperationally(static_cast<uint16_t>(vendorId));
68 : }
69 :
70 : } // namespace chip
|