Namespaces
Enumerations
enum ErrorPropagationMode
| Name | Value |
|---|---|
| kPropagate | 0 |
| kPropagateBeforeAllocation | 1 |
| kDoNotPropagate | 2 |
ErrorPropagationMode
The ErrorPropagationMode controls propagation of failure up the Node tree (failures always
propagate down the Node tree), and also controls how much of the Node tree is involved in initial
allocation, and also how much of the Node tree is involved in subsequent logical allocations.
The granularity of subsequent logical allocations is designed to mimic the behavior of initial
allocation, so that a given Node/participant connection sees the same allocation granularity
with respect to SetDispensable() or AttachToken() sub-trees regardless of whether the Node itself
is involved in initial allocation or a later logical allocation.
The ErrorPropagationMode of a BufferCollectionToken / BufferCollection doesn't imply anything
about the ErrorPropagationMode of its parent or children.
SetDispensable() results in kPropagateBeforeAllocation.
AttachToken() results in kDoNotPropagate.
Failure of a BufferCollectionToken / BufferCollection will fail all its children, and will fail
its immediate parent if ErrorPropagationMode is kPropagate or if ErrorPropagationMode is
kPropagateBeforeAllocation and allocation (or logical allocation) has not yet occurred.
Initial allocation will aggregate constraints of all nodes from the root down, with the exception
of any sub-trees rooted at a kDoNotPropagate node.
A sub-tree rooted at a kDoNotPropagate node will not aggregate its constraints into initial
allocation.
A sub-tree rooted at a kDoNotPropagate node, with a further sub-tree that's kDoNotPropagate, will
separately aggregate the parent portion and succeed or fail logical allocation of that portion,
then separately aggregate the kDoNotPropagate sub-tree and succeed or fail that portion. This
maximizes behavior simimlarity between a root with a kDoNotPropagate sub-tree and a
kDoNotPropagate sub-tree with a further kDoNotPropagate sub-tree.
Defined at line 63 of file ../../src/sysmem/server/node_properties.h
enum ConnectionVersion
| Name | Value |
|---|---|
| kNoConnection | 0 |
| kVersion1 | 1 |
| kVersion2 | 2 |
Defined at line 77 of file ../../src/sysmem/server/node_properties.h
Records
-
class AllocationResult -
class Allocator -
class BufferCollection -
class BufferCollectionToken -
class BufferCollectionTokenGroup -
class ClientDebugInfo -
class ConstraintInfoSnapshot -
class ContiguousPooledMemoryAllocator -
class ExternalMemoryAllocator -
class FidlServer -
class Location -
class LoggingMixin -
class LogicalBuffer -
class LogicalBufferCollection -
class MemoryAllocator -
class Node -
class NodeFilterResult -
class NodeProperties -
class OrphanedNode -
class Settings -
class Sysmem -
class TrackedParentVmo -
class UsagePixelFormatCost
Functions
-
LogCallback & GetDefaultLogCallback ()Defined at line 17 of file ../../src/sysmem/server/logging.cc
-
zx_status_t get_handle_koids (const zx::object_base & this_end, zx_koid_t * this_end_koid, zx_koid_t * that_end_koid, zx_obj_type_t type)Defined at line 16 of file ../../src/sysmem/server/koid_util.cc
-
template <class T>zx_koid_t get_koid (const zx::object<T> & object)Defined at line 23 of file ../../src/sysmem/server/koid_util.h
-
void vLogToCallback (::fuchsia_logging::LogSeverity severity, const char * file, int line, const char * prefix, const char * format, va_list args, const LogCallback & log_callback)Defined at line 26 of file ../../src/sysmem/server/logging.cc
-
void vLog (::fuchsia_logging::LogSeverity severity, const char * file, int line, const char * prefix, const char * format, va_list args)Defined at line 43 of file ../../src/sysmem/server/logging.cc
-
void Log (::fuchsia_logging::LogSeverity severity, const char * file, int line, const char * prefix, const char * format)Defined at line 48 of file ../../src/sysmem/server/logging.cc
-
std::string CreateUniqueName (const char * prefix)Creates a unique name by concatenating prefix and a 64-bit unique number.
Defined at line 58 of file ../../src/sysmem/server/logging.cc
-
template <typename T>zx::unowned_channel GetUnownedChannel (const T & server_end)Defined at line 169 of file ../../src/sysmem/server/versions.h
-
template <typename T>zx::channel TakeChannel (T server_end)Defined at line 174 of file ../../src/sysmem/server/versions.h
-
template <typename T>NodeServerEnd TakeNodeServerEnd (T server_end)Defined at line 179 of file ../../src/sysmem/server/versions.h
-
fit::result<fit::failed, uint64_t> PaddedSizeFromBlockSize (const fuchsia_sysmem2::ImageFormatConstraints & image_format_constraintsuint64_t buffer_settings_size_bytesconst ComplainFunction & complain)See above for a rough algorithm justification / outline, and the pad_for_block_size_test.cc for
unit tests.
If you're considering making this a tighter upper bound, please be careful not to make it way
more complicated or way slower. And warning, this can be a nerd snipe, so it may be best to walk
away slowly.
Defined at line 368 of file ../../src/sysmem/server/pad_for_block_size.cc