Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/firmware/arm_scmi/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 3 kB image not shown  

Quelle  notify.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * System Control and Management Interface (SCMI) Message Protocol
 * notification header file containing some definitions, structures
 * and function prototypes related to SCMI Notification handling.
 *
 * Copyright (C) 2020-2021 ARM Ltd.
 */

#ifndef _SCMI_NOTIFY_H
#define _SCMI_NOTIFY_H

#include <linux/device.h>
#include <linux/ktime.h>
#include <linux/types.h>

#define SCMI_PROTO_QUEUE_SZ 4096

/**
 * struct scmi_event  - Describes an event to be supported
 * @id: Event ID
 * @max_payld_sz: Max possible size for the payload of a notification message
 * @max_report_sz: Max possible size for the report of a notification message
 *
 * Each SCMI protocol, during its initialization phase, can describe the events
 * it wishes to support in a few struct scmi_event and pass them to the core
 * using scmi_register_protocol_events().
 */

struct scmi_event {
 u8 id;
 size_t max_payld_sz;
 size_t max_report_sz;
};

struct scmi_protocol_handle;

/**
 * struct scmi_event_ops  - Protocol helpers called by the notification core.
 * @is_notify_supported: Return 0 if the specified notification for the
 *  specified resource (src_id) is supported.
 * @get_num_sources: Returns the number of possible events' sources for this
 *      protocol
 * @set_notify_enabled: Enable/disable the required evt_id/src_id notifications
 * using the proper custom protocol commands.
 * Return 0 on Success
 * @fill_custom_report: fills a custom event report from the provided
 * event message payld identifying the event
 * specific src_id.
 * Return NULL on failure otherwise @report now fully
 * populated
 *
 * Context: Helpers described in &struct scmi_event_ops are called only in
 *     process context.
 */

struct scmi_event_ops {
 bool (*is_notify_supported)(const struct scmi_protocol_handle *ph,
        u8 evt_id, u32 src_id);
 int (*get_num_sources)(const struct scmi_protocol_handle *ph);
 int (*set_notify_enabled)(const struct scmi_protocol_handle *ph,
      u8 evt_id, u32 src_id, bool enabled);
 void *(*fill_custom_report)(const struct scmi_protocol_handle *ph,
        u8 evt_id, ktime_t timestamp,
        const void *payld, size_t payld_sz,
        void *report, u32 *src_id);
};

/**
 * struct scmi_protocol_events  - Per-protocol description of available events
 * @queue_sz: Size in bytes of the per-protocol queue to use.
 * @ops: Array of protocol-specific events operations.
 * @evts: Array of supported protocol's events.
 * @num_events: Number of supported protocol's events described in @evts.
 * @num_sources: Number of protocol's sources, should be greater than 0; if not
 *  available at compile time, it will be provided at run-time via
 *  @get_num_sources.
 */

struct scmi_protocol_events {
 size_t    queue_sz;
 const struct scmi_event_ops *ops;
 const struct scmi_event  *evts;
 unsigned int   num_events;
 unsigned int   num_sources;
};

int scmi_notification_init(struct scmi_handle *handle);
void scmi_notification_exit(struct scmi_handle *handle);
int scmi_register_protocol_events(const struct scmi_handle *handle, u8 proto_id,
      const struct scmi_protocol_handle *ph,
      const struct scmi_protocol_events *ee);
void scmi_deregister_protocol_events(const struct scmi_handle *handle,
         u8 proto_id);
int scmi_notify(const struct scmi_handle *handle, u8 proto_id, u8 evt_id,
  const void *buf, size_t len, ktime_t ts);

#endif /* _SCMI_NOTIFY_H */

Messung V0.5
C=94 H=100 G=96

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.