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

Quelle  stm32_firewall.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (C) 2023, STMicroelectronics - All Rights Reserved
 */


#ifndef _STM32_FIREWALL_H
#define _STM32_FIREWALL_H

#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/types.h>

/**
 * STM32_PERIPHERAL_FIREWALL: This type of firewall protects peripherals
 * STM32_MEMORY_FIREWALL: This type of firewall protects memories/subsets of memory
 * zones
 * STM32_NOTYPE_FIREWALL: Undefined firewall type
 */


#define STM32_PERIPHERAL_FIREWALL BIT(1)
#define STM32_MEMORY_FIREWALL  BIT(2)
#define STM32_NOTYPE_FIREWALL  BIT(3)

/**
 * struct stm32_firewall_controller - Information on firewall controller supplying services
 *
 * @name: Name of the firewall controller
 * @dev: Device reference of the firewall controller
 * @mmio: Base address of the firewall controller
 * @entry: List entry of the firewall controller list
 * @type: Type of firewall
 * @max_entries: Number of entries covered by the firewall
 * @grant_access: Callback used to grant access for a device access against a
 * firewall controller
 * @release_access: Callback used to release resources taken by a device when access was
 * granted
 * @grant_memory_range_access: Callback used to grant access for a device to a given memory region
 */

struct stm32_firewall_controller {
 const char *name;
 struct device *dev;
 void __iomem *mmio;
 struct list_head entry;
 unsigned int type;
 unsigned int max_entries;

 int (*grant_access)(struct stm32_firewall_controller *ctrl, u32 id);
 void (*release_access)(struct stm32_firewall_controller *ctrl, u32 id);
 int (*grant_memory_range_access)(struct stm32_firewall_controller *ctrl, phys_addr_t paddr,
      size_t size);
};

/**
 * stm32_firewall_controller_register - Register a firewall controller to the STM32 firewall
 * framework
 * @firewall_controller: Firewall controller to register
 *
 * Returns 0 in case of success or -ENODEV if no controller was given.
 */

int stm32_firewall_controller_register(struct stm32_firewall_controller *firewall_controller);

/**
 * stm32_firewall_controller_unregister - Unregister a firewall controller from the STM32
 *   firewall framework
 * @firewall_controller: Firewall controller to unregister
 */

void stm32_firewall_controller_unregister(struct stm32_firewall_controller *firewall_controller);

/**
 * stm32_firewall_populate_bus - Populate device tree nodes that have a correct firewall
 *  configuration. This is used at boot-time only, as a sanity check
 *  between device tree and firewalls hardware configurations to
 *  prevent a kernel crash when a device driver is not granted access
 *
 * @firewall_controller: Firewall controller which nodes will be populated or not
 *
 * Returns 0 in case of success or appropriate errno code if error occurred.
 */

int stm32_firewall_populate_bus(struct stm32_firewall_controller *firewall_controller);

#endif /* _STM32_FIREWALL_H */

Messung V0.5
C=92 H=100 G=95

¤ Dauer der Verarbeitung: 0.10 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.