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

Quelle  extcon.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __LINUX_EXTCON_INTERNAL_H__
#define __LINUX_EXTCON_INTERNAL_H__

#include <linux/extcon-provider.h>

/**
 * struct extcon_dev - An extcon device represents one external connector.
 * @name: The name of this extcon device. Parent device name is
 * used if NULL.
 * @supported_cable: Array of supported cable names ending with EXTCON_NONE.
 * If supported_cable is NULL, cable name related APIs
 * are disabled.
 * @mutually_exclusive: Array of mutually exclusive set of cables that cannot
 * be attached simultaneously. The array should be
 * ending with 0 or be NULL (no mutually exclusive cables).
 * For example, if it is {0x7, 0x30, 0}, then,
 * {0, 1}, {0, 1, 2}, {0, 2}, {1, 2}, or {4, 5} cannot
 * be attached simulataneously. {0x7, 0} is equivalent to
 * {0x3, 0x6, 0x5, 0}. If it is {0xFFFFFFFF, 0}, there
 * can be no simultaneous connections.
 * @dev: Device of this extcon.
 * @id: Unique device ID of this extcon.
 * @state: Attach/detach state of this extcon. Do not provide at
 * register-time.
 * @nh_all: Notifier for the state change events for all supported
 * external connectors from this extcon.
 * @nh: Notifier for the state change events from this extcon
 * @entry: To support list of extcon devices so that users can
 * search for extcon devices based on the extcon name.
 * @lock: Protects device state and serialises device registration
 * @max_supported: Internal value to store the number of cables.
 * @extcon_dev_type: Device_type struct to provide attribute_groups
 * customized for each extcon device.
 * @cables: Sysfs subdirectories. Each represents one cable.
 *
 * In most cases, users only need to provide "User initializing data" of
 * this struct when registering an extcon. In some exceptional cases,
 * optional callbacks may be needed. However, the values in "internal data"
 * are overwritten by register function.
 */

struct extcon_dev {
 /* Optional user initializing data */
 const char *name;
 const unsigned int *supported_cable;
 const u32 *mutually_exclusive;

 /* Internal data. Please do not set. */
 struct device dev;
 unsigned int id;
 struct raw_notifier_head nh_all;
 struct raw_notifier_head *nh;
 struct list_head entry;
 int max_supported;
 spinlock_t lock; /* could be called by irq handler */
 u32 state;

 /* /sys/class/extcon/.../cable.n/... */
 struct device_type extcon_dev_type;
 struct extcon_cable *cables;

 /* /sys/class/extcon/.../mutually_exclusive/... */
 struct attribute_group attr_g_muex;
 struct attribute **attrs_muex;
 struct device_attribute *d_attrs_muex;
};

#endif /* __LINUX_EXTCON_INTERNAL_H__ */

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

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© 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.