mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
This change adds base infrastructure for implementing internal device
attributes. In the context of the zdev tools, an internal device
attribute is a new type of device attribute with the following
characteristics:
- Can be set and removed like normal device attributes
- Affects zdev-internal handling only
- Does not correspond to an actual device attribute, that is
it has no representation in SysFS
- Can not be set in the active configuration
- Name starts with "zdev:" to prevent conflicts with actual
device attributes
Values for internal device attributes are stored in udev rules alongside
the normal persistent configuration of a device. They are encoded as
udev environment variables. Note that they have no further effect on
udev processing.
Signed-off-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
57 lines
1.3 KiB
C
57 lines
1.3 KiB
C
/*
|
|
* zdev - Modify and display the persistent configuration of devices
|
|
*
|
|
* Copyright IBM Corp. 2016, 2017
|
|
*
|
|
* s390-tools is free software; you can redistribute it and/or modify
|
|
* it under the terms of the MIT license. See LICENSE for details.
|
|
*/
|
|
|
|
#ifndef UDEV_H
|
|
#define UDEV_H
|
|
|
|
#include "lib/util_list.h"
|
|
#include "exit_code.h"
|
|
|
|
struct attrib;
|
|
struct setting_list;
|
|
|
|
extern int udev_need_settle;
|
|
extern int udev_no_settle;
|
|
|
|
/* Single key-operator-value entry in a udev rule line.*/
|
|
struct udev_entry_node {
|
|
struct util_list_node node;
|
|
char *key;
|
|
char *op;
|
|
char *value;
|
|
};
|
|
|
|
/* Single udev line in a udev rule file. */
|
|
struct udev_line_node {
|
|
struct util_list_node node;
|
|
struct util_list entries;
|
|
char *line;
|
|
};
|
|
|
|
/* Udev rule file. */
|
|
struct udev_file {
|
|
struct util_list lines;
|
|
};
|
|
|
|
exit_code_t udev_read_file(const char *, struct udev_file **);
|
|
void udev_free_file(struct udev_file *);
|
|
void udev_file_print(struct udev_file *);
|
|
|
|
void udev_get_device_ids(const char *type, struct util_list *list,
|
|
bool autoconf);
|
|
exit_code_t udev_remove_rule(const char *type, const char *id, bool autoconf);
|
|
|
|
void udev_settle(void);
|
|
|
|
void udev_add_internal_from_entry(struct setting_list *list,
|
|
struct udev_entry_node *entry,
|
|
struct attrib **attribs);
|
|
|
|
#endif /* UDEV_H */
|