File: //lib/python3.9/site-packages/tuned/plugins/__pycache__/hotplug.cpython-39.pyc
a
�ԳfX � @ s@ d dl mZ ddlmZ ddlZej�� ZG dd� dej �Z dS )� )�base� Nc s� e Zd ZdZ� fdd�Z� fdd�Zdd� Zdd � Zd
d� Zdd
� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Z� ZS )�Pluginz:
Base class for plugins with device hotpluging support.
c s t t| �j|i |�� d S �N)�superr �__init__)�self�args�kwargs�� __class__� �9/usr/lib/python3.9/site-packages/tuned/plugins/hotplug.pyr s zPlugin.__init__c s t t| ��� | �� d S r )r r �cleanup�_hardware_events_cleanup�r r r
r r s zPlugin.cleanupc C s d S r r
r r
r
r �_hardware_events_init s zPlugin._hardware_events_initc C s d S r r
r r
r
r r s zPlugin._hardware_events_cleanupc C s | � � d S r )r r r
r
r �
_init_devices s zPlugin._init_devicesc C sN |dkr&t �d|j � | �|j� n$|dkrJt �d|j � | �|j� d S )N�addzdevice '%s' added�removezdevice '%s' removed)�log�infoZsys_name�_add_device�_remove_device)r ZeventZdevicer
r
r �_hardware_events_callback s z Plugin._hardware_events_callbackc C sd t �d|j|f � | j�|� | �||jd|g� | �||� | �||jd|g� |j �|� d S )Nz!instance %s: adding new device %sZapply)
r r �name�_assigned_devicesr �_call_device_script�
script_pre�_added_device_apply_tuning�script_post�processed_devices�r �instance�device_namer
r
r �_add_device_process$ s zPlugin._add_device_processc C sp || j | jB v rd S t| j�� �D ].\}}t| �||g��dkr"| �||� qlq"t� d| � | j�
|� d S )Nr zno instance wants %s)r �
_free_devices�list�
_instances�items�lenZ_get_matching_devicesr% r �debugr )r r$ Z
instance_namer# r
r
r r , s zPlugin._add_devicec C s4 |D ]}| � ||� qt|j�t|j� dk|_dS )zN
Add devices specified by the set to the instance, no check is performed.
r N)r% r* r! �assigned_devices�active�r r# Zdevice_names�devr
r
r �_add_devices_nocheck8 s ��zPlugin._add_devices_nocheckc C sx ||j v rt| �||jd|g� | �||� | �||jd|g� |j �|� t|j �t|j� dk|_| j �|� dS dS )NZunapplyr TF)
r! r r �_removed_device_unapply_tuningr r r* r, r- r r"