description: >
    Implement to provide mailbox daemon management features.
properties:
    - name: State
      type: enum[self.States]
      description: >
        The state of the mailbox daemon.
properties:
    - name: LPC
      type: enum[self.LPC]
      description: >
        The state of the LPC bus mapping.
methods:
    - name: Reset
      description: >
        Reset the mailbox daemon.
    - name: Suspend
      description: >
        Suspend the daemon to inhibit it from performing flash accesses.
    - name: Resume
      description: >
        Activate the daemon to allow it to perform flash accesses.
      parameters:
        - name: FlashModified
          type: boolean
          description: >
            Indicates if flash was modified.
    - name: ClearCache
      description: >
        Direct the daemon to clear its cache since the data source has been modified.
    - name: Kill
      description: >
        Stop the mailbox daemon.

enumerations:
    - name: States
      description: >
        The possible mailbox daemon states.
      values:
          - name: Active
            description: >
              The daemon is active and flash access is allowed.
          - name: Suspended
            description: >
              The daemon is suspended and flash access is not allowed.
    - name: LPC
      description: >
        The possible LPC bus mapping states.
      values:
          - name: Invalid
            description: >
              The LPC bus mapping is in an invalid state.
          - name: Flash
            description: >
              The LPC bus mapping points to flash directly.
          - name: Memory
            description: >
              The LPC bus mapping points to memory.

