"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
Copyright 2020 The Pigweed Authors

Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under
the License.
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.message
import sys

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class ArmV7mCpuState(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PC_FIELD_NUMBER: builtins.int
    LR_FIELD_NUMBER: builtins.int
    PSR_FIELD_NUMBER: builtins.int
    MSP_FIELD_NUMBER: builtins.int
    PSP_FIELD_NUMBER: builtins.int
    EXC_RETURN_FIELD_NUMBER: builtins.int
    CFSR_FIELD_NUMBER: builtins.int
    MSPLIM_FIELD_NUMBER: builtins.int
    PSPLIM_FIELD_NUMBER: builtins.int
    MMFAR_FIELD_NUMBER: builtins.int
    BFAR_FIELD_NUMBER: builtins.int
    ICSR_FIELD_NUMBER: builtins.int
    HFSR_FIELD_NUMBER: builtins.int
    SHCSR_FIELD_NUMBER: builtins.int
    CONTROL_FIELD_NUMBER: builtins.int
    R0_FIELD_NUMBER: builtins.int
    R1_FIELD_NUMBER: builtins.int
    R2_FIELD_NUMBER: builtins.int
    R3_FIELD_NUMBER: builtins.int
    R4_FIELD_NUMBER: builtins.int
    R5_FIELD_NUMBER: builtins.int
    R6_FIELD_NUMBER: builtins.int
    R7_FIELD_NUMBER: builtins.int
    R8_FIELD_NUMBER: builtins.int
    R9_FIELD_NUMBER: builtins.int
    R10_FIELD_NUMBER: builtins.int
    R11_FIELD_NUMBER: builtins.int
    R12_FIELD_NUMBER: builtins.int
    pc: builtins.int
    lr: builtins.int
    psr: builtins.int
    msp: builtins.int
    psp: builtins.int
    exc_return: builtins.int
    cfsr: builtins.int
    msplim: builtins.int
    psplim: builtins.int
    mmfar: builtins.int
    bfar: builtins.int
    icsr: builtins.int
    hfsr: builtins.int
    shcsr: builtins.int
    control: builtins.int
    r0: builtins.int
    """General purpose registers."""
    r1: builtins.int
    r2: builtins.int
    r3: builtins.int
    r4: builtins.int
    r5: builtins.int
    r6: builtins.int
    r7: builtins.int
    r8: builtins.int
    r9: builtins.int
    r10: builtins.int
    r11: builtins.int
    r12: builtins.int
    def __init__(
        self,
        *,
        pc: builtins.int | None = ...,
        lr: builtins.int | None = ...,
        psr: builtins.int | None = ...,
        msp: builtins.int | None = ...,
        psp: builtins.int | None = ...,
        exc_return: builtins.int | None = ...,
        cfsr: builtins.int | None = ...,
        msplim: builtins.int | None = ...,
        psplim: builtins.int | None = ...,
        mmfar: builtins.int | None = ...,
        bfar: builtins.int | None = ...,
        icsr: builtins.int | None = ...,
        hfsr: builtins.int | None = ...,
        shcsr: builtins.int | None = ...,
        control: builtins.int | None = ...,
        r0: builtins.int | None = ...,
        r1: builtins.int | None = ...,
        r2: builtins.int | None = ...,
        r3: builtins.int | None = ...,
        r4: builtins.int | None = ...,
        r5: builtins.int | None = ...,
        r6: builtins.int | None = ...,
        r7: builtins.int | None = ...,
        r8: builtins.int | None = ...,
        r9: builtins.int | None = ...,
        r10: builtins.int | None = ...,
        r11: builtins.int | None = ...,
        r12: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["bfar", b"bfar", "cfsr", b"cfsr", "control", b"control", "exc_return", b"exc_return", "hfsr", b"hfsr", "icsr", b"icsr", "lr", b"lr", "mmfar", b"mmfar", "msp", b"msp", "msplim", b"msplim", "pc", b"pc", "psp", b"psp", "psplim", b"psplim", "psr", b"psr", "r0", b"r0", "r1", b"r1", "r10", b"r10", "r11", b"r11", "r12", b"r12", "r2", b"r2", "r3", b"r3", "r4", b"r4", "r5", b"r5", "r6", b"r6", "r7", b"r7", "r8", b"r8", "r9", b"r9", "shcsr", b"shcsr"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["bfar", b"bfar", "cfsr", b"cfsr", "control", b"control", "exc_return", b"exc_return", "hfsr", b"hfsr", "icsr", b"icsr", "lr", b"lr", "mmfar", b"mmfar", "msp", b"msp", "msplim", b"msplim", "pc", b"pc", "psp", b"psp", "psplim", b"psplim", "psr", b"psr", "r0", b"r0", "r1", b"r1", "r10", b"r10", "r11", b"r11", "r12", b"r12", "r2", b"r2", "r3", b"r3", "r4", b"r4", "r5", b"r5", "r6", b"r6", "r7", b"r7", "r8", b"r8", "r9", b"r9", "shcsr", b"shcsr"]) -> None: ...

global___ArmV7mCpuState = ArmV7mCpuState

class SnapshotCpuStateOverlay(google.protobuf.message.Message):
    """This message overlays the pw.snapshot.Snapshot proto. It's valid to encode
    this message to the same sink that a Snapshot proto is being written to.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ARMV7M_CPU_STATE_FIELD_NUMBER: builtins.int
    @property
    def armv7m_cpu_state(self) -> global___ArmV7mCpuState:
        """TODO(amontanez): Rename this to be Cortex-M arch generic, e.g.:
          optional CpuState cpu_state = 20;
        """
    def __init__(
        self,
        *,
        armv7m_cpu_state: global___ArmV7mCpuState | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["armv7m_cpu_state", b"armv7m_cpu_state"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["armv7m_cpu_state", b"armv7m_cpu_state"]) -> None: ...

global___SnapshotCpuStateOverlay = SnapshotCpuStateOverlay
