mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
Auto-configuration is the name of a new configuration target that is
supported by chzdev and lszdev besides the existing active and
persistent configuration targets. Directives created in this new
configuration are stored as udev rules in the /run/udev/rules.d
directory.
Auto-configuration directives are only in effect if there are no
directives for the same device in the user-provided persistent
configuration. This allows users to override auto-configuration
directives if necessary.
Due to the volatile nature of the /run directory, auto-configuration
directives are cleared on reboot. Therefore mechanisms that generate
auto-configuration directives must recreate them on every boot.
The lszdev tool displays auto-configuration data both in list view
as well as in detail view. Users can specify the new option --auto-conf
to only show data from this configuration target.
Mechanisms that generate automated configuration directives can use
chzdev together with the --auto-conf option to create the corresponding
udev rules.
Note: This change does not include a mechanism that generates
auto-configuration directives.
Signed-off-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
50 lines
1.1 KiB
C
50 lines
1.1 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"
|
|
|
|
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);
|
|
|
|
#endif /* UDEV_H */
|