class SyncClient
Defined at line 28 of file ../../zircon/system/ulib/sysconfig-client/include/lib/sysconfig/sync-client.h
This class provides a synchronous read and write interface into sub-partitions of the sysconfig
skip-block partition.
The class takes into account differences that may appear in partition layout between various
device's sysconfig partitions.
Public Methods
void SyncClient (const SyncClient & )
No copy.
Defined at line 73 of file ../../zircon/system/ulib/sysconfig-client/include/lib/sysconfig/sync-client.h
SyncClient & operator= (const SyncClient & )
Defined at line 74 of file ../../zircon/system/ulib/sysconfig-client/include/lib/sysconfig/sync-client.h
void SyncClient (SyncClient && )
Defined at line 76 of file ../../zircon/system/ulib/sysconfig-client/include/lib/sysconfig/sync-client.h
SyncClient & operator= (SyncClient && )
Defined at line 77 of file ../../zircon/system/ulib/sysconfig-client/include/lib/sysconfig/sync-client.h
zx::result<SyncClient> Create (fidl::UnownedClientEnd<fuchsia_io::Directory> dev)
Defined at line 254 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc
SyncClient Create (fidl::ClientEnd<skipblock::SkipBlock> skip_block)
Defined at line 262 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc
zx_status_t WritePartition (PartitionType partition, const zx::vmo & vmo, zx_off_t vmo_offset)
Provides write access for the partition specified. Always writes full partition.
|vmo| must have a size greater than or equal to the partitions size + |vmo_offset|.
Defined at line 284 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc
zx_status_t WriteBytesWithoutErase (size_t offset, size_t len, const zx::vmo & vmo, zx_off_t vmo_offset)
Write pages without first erasing.
Defined at line 319 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc
zx_status_t ReadPartition (PartitionType partition, const zx::vmo & vmo, zx_off_t vmo_offset)
Provides read access for the partition specified. Always reads full partition.
|vmo| must have a size greater than or equal to the partitions size + |vmo_offset|.
Defined at line 350 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc
zx_status_t GetPartitionSize (PartitionType partition, size_t * out)
Returns the size of the partition specified.
Defined at line 399 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc
zx_status_t GetPartitionOffset (PartitionType partition, size_t * out)
Defined at line 410 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc
zx_status_t UpdateLayout (sysconfig_header target_header)
Use caution when updating layout in multi-threaded context.
It's dangerous to update layout and header while there are other instances of SyncClient
in use.
In particular, SyncClient caches header from storage after the first time it reads it. If
layout is changed afterwards by some other instance of SyncClient, it will not be aware of it.
Thus make sure that you only effectively update layout in a state where no other SyncClient is
created and in use.
Defined at line 421 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc
zx::result<std::reference_wrapper<const sysconfig_header>> GetHeader ()
Defined at line 266 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc
Enumerations
enum PartitionType
| Name | Value |
|---|---|
| kSysconfig | 0 |
| kABRMetadata | 1 |
| kVerifiedBootMetadataA | 2 |
| kVerifiedBootMetadataB | 3 |
| kVerifiedBootMetadataR | 4 |
The sub partitions of the sysconfig partition.
Defined at line 31 of file ../../zircon/system/ulib/sysconfig-client/include/lib/sysconfig/sync-client.h
Friends
class SyncClientAbrWearLeveling
class SyncClientBuffered