# Copyright Meta Platforms, Inc. and its affiliates.
# SPDX-License-Identifier: Apache-2.0

include: base.yaml

compatible: "zephyr,coredump"

description: Pseudo-device to help capturing desired data into core dumps

properties:
  memory-regions:
    type: array
    description: Start address and size of memory regions to be collected in a core dump

  coredump-type:
    required: true
    type: string
    description: |
      Designate which type of coredump device this will be.
      A device of type COREDUMP_TYPE_MEMCPY can directly memcpy the provided memory-regions
      into the coredump. The memory-regions array can contain 0 or more entries, and more
      regions can be added at runtime through the coredump_device_register_memory API.
      A device of type COREDUMP_TYPE_CALLBACK must specify exactly one entry in the
      memory-regions array with a size of 0 and a desired size. The coredump device will
      statically allocate a block of memory of the desired size and provide a callback with a
      pointer to that memory which will be invoked at the time of a dump. This allows a consumer
      to add data into the coredump that may not be directly accessible through a memcpy and/or
      provides an opportunity to manipulate data for inclusion in the dump. The
      coredump_device_register_memory API is not available for a device of this type.
    enum:
      - "COREDUMP_TYPE_MEMCPY"
      - "COREDUMP_TYPE_CALLBACK"
