ProtoCore
v1.0.16
Deterministic, zero-heap network stack for embedded targets
Loading...
Searching...
No Matches
hw_caps_en.h
Go to the documentation of this file.
1
// ProtoCore v1.0.16 - Copyright (C) 2026 Douglas Quigg (dstroy0) <dquigg123@gmail.com>
2
// SPDX-License-Identifier: AGPL-3.0-or-later
3
4
/**
5
* @file hw_caps_en.h
6
* @brief Whether a seam exists to call at all: the floor under every hardware capability.
7
*
8
* @author Douglas Quigg (dstroy0)
9
* @date 2026
10
*/
11
12
#ifndef PROTOCORE_HW_CAPS_EN_H
13
#define PROTOCORE_HW_CAPS_EN_H
14
15
// A vendor answers these by defining them before this file is reached; anything it did not
16
// answer is 0, which is what "the part has no such seam" means. The PROTOCORE_HAS_* questions
17
// in hw_caps_en_error.h read them, so this file settles them first.
18
19
// TLS. 1 = the vendor ships a TLS stack and network_drivers/tls drives that (mbedTLS over lwIP on
20
// ESP); 0 = the portable TLS 1.3 in network_drivers/tls, the same hand-rolled stack the QUIC and
21
// DTLS handshakes already run: TLS_AES_128_GCM_SHA256, X25519, an Ed25519 raw public key.
22
//
23
// The two differ in what they will talk to, not just in speed. A vendor stack brings X.509: chain
24
// validation, name matching, RSA and ECDSA certificates, so a browser will connect. The portable
25
// one authenticates by raw public key and is what makes TLS exist at all on a part with no vendor
26
// stack. Take the vendor's wherever there is one.
27
// Whether a vendor engine exists to call. Silicon has one; a host build has one when an env states
28
// this, so the vendor BIO path is driven off silicon instead of resolving to the portable arm.
29
#ifndef PROTOCORE_PLATFORM_HAS_VENDOR_TLS
30
#define PROTOCORE_PLATFORM_HAS_VENDOR_TLS 0
31
#endif
32
33
// Whether a bus seam exists to call. Silicon has one; a host build has one only when the test
34
// mock above supplied it, and the bus owners key their host arm off this so a driver's real
35
// composition runs against the capture rather than being stubbed out at the owner.
36
#ifndef PROTOCORE_PLATFORM_HAS_BUS
37
#define PROTOCORE_PLATFORM_HAS_BUS 0
38
#endif
39
40
// Whether a pin seam exists to call. Silicon has one; a host build has one only when the test mock
41
// above supplied it, and the pin drivers key their host arm off this so a driver's real sampling
42
// runs against the pin table rather than being stubbed out.
43
#ifndef PROTOCORE_PLATFORM_HAS_GPIO
44
#define PROTOCORE_PLATFORM_HAS_GPIO 0
45
#endif
46
47
// Whether a scheduler seam exists to run on. Silicon has one; a host build has one only when the
48
// driver above supplied it, and the worker layer keys its host arm off this so the pipeline's real
49
// task / queue path runs against the mock rather than resolving to the inline arm.
50
#ifndef PROTOCORE_PLATFORM_HAS_SCHEDULER
51
#define PROTOCORE_PLATFORM_HAS_SCHEDULER 0
52
#endif
53
54
// Whether a seam exists to call. Silicon has one; a host build has one only when the
55
// driver above supplied a burned-in address, so the owners run against it instead of
56
// resolving to their refusing arm.
57
#ifndef PROTOCORE_PLATFORM_HAS_VENDOR_MAC
58
#define PROTOCORE_PLATFORM_HAS_VENDOR_MAC 0
59
#endif
60
61
// Whether a seam exists to call. Silicon has one; a host build has one only when the
62
// driver above supplied allocator figures, so the owners run against it instead of
63
// resolving to their refusing arm.
64
#ifndef PROTOCORE_PLATFORM_HAS_VENDOR_HEAP_INFO
65
#define PROTOCORE_PLATFORM_HAS_VENDOR_HEAP_INFO 0
66
#endif
67
68
// Whether a seam exists to call. Silicon has one; a host build has one only when the
69
// driver above supplied the reset cause, die temperature and CPU clock, so the owners run against it instead of
70
// resolving to their refusing arm.
71
#ifndef PROTOCORE_PLATFORM_HAS_VENDOR_PM
72
#define PROTOCORE_PLATFORM_HAS_VENDOR_PM 0
73
#endif
74
75
// Whether a seam exists to call. Silicon has one; a host build has one only when the
76
// driver above supplied a radio power domain to hand back, so the owners run against it instead of
77
// resolving to their refusing arm.
78
#ifndef PROTOCORE_PLATFORM_HAS_VENDOR_BT
79
#define PROTOCORE_PLATFORM_HAS_VENDOR_BT 0
80
#endif
81
82
// Whether a seam exists to call. Silicon has one; a host build has one only when the
83
// driver above supplied a stored image to mark, commit or roll back, so the owners run against it instead of
84
// resolving to their refusing arm.
85
#ifndef PROTOCORE_PLATFORM_HAS_VENDOR_OTA
86
#define PROTOCORE_PLATFORM_HAS_VENDOR_OTA 0
87
#endif
88
89
// Whether a seam exists to call. Silicon has one; a host build has one only when the
90
// driver above supplied a stored crash image to read, so the owners run against it instead of
91
// resolving to their refusing arm.
92
#ifndef PROTOCORE_PLATFORM_HAS_VENDOR_COREDUMP
93
#define PROTOCORE_PLATFORM_HAS_VENDOR_COREDUMP 0
94
#endif
95
96
// Whether a seam exists to call. Silicon has one; a host build has one only when the
97
// driver above supplied a CAN controller to open, so the owners run against it instead of
98
// resolving to their refusing arm.
99
#ifndef PROTOCORE_PLATFORM_HAS_VENDOR_CAN
100
#define PROTOCORE_PLATFORM_HAS_VENDOR_CAN 0
101
#endif
102
103
#endif
// PROTOCORE_HW_CAPS_EN_H
src
config
hardware_capabilities
hw_caps_en.h
Generated by
1.9.8