mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
PCI/sysfs: Add legacy I/O and memory attribute macros
Currently, the static binary attributes for the PCI legacy I/O port and ISA memory space files (legacy_io, legacy_io_sparse, legacy_mem and legacy_mem_sparse) are open-coded, with each definition repeating the same set of properties and callbacks. Add two macros for declaring such attributes: - pci_legacy_resource_io_attr(), for legacy I/O port space (read/write) - pci_legacy_resource_mem_attr(), for legacy memory space (mmap) Each macro takes the fixed attribute size as a parameter. Then replace the open-coded definitions with the newly added macros. No functional changes intended. Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org> [bhelgaas: shorten macros to fit in 80 columns] Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Link: https://patch.msgid.link/20260721020427.1541197-4-kwilczynski@kernel.org
This commit is contained in:
parent
ee2ca84457
commit
1b7c9855bb
|
|
@ -871,6 +871,27 @@ static const struct attribute_group pci_dev_config_attr_group = {
|
|||
};
|
||||
|
||||
#ifdef HAVE_PCI_LEGACY
|
||||
|
||||
#define pci_legacy_resource_io_attr(_suffix, _size) \
|
||||
static const struct bin_attribute pci_legacy_io##_suffix##_attr = { \
|
||||
.attr = { .name = "legacy_io" __stringify(_suffix), .mode = 0600 }, \
|
||||
.size = (_size), \
|
||||
.read = pci_read_legacy_io, \
|
||||
.write = pci_write_legacy_io, \
|
||||
.f_mapping = iomem_get_mapping, \
|
||||
.llseek = pci_llseek_resource_legacy, \
|
||||
.mmap = pci_mmap_legacy_io, \
|
||||
}
|
||||
|
||||
#define pci_legacy_resource_mem_attr(_suffix, _size) \
|
||||
static const struct bin_attribute pci_legacy_mem##_suffix##_attr = { \
|
||||
.attr = { .name = "legacy_mem" __stringify(_suffix), .mode = 0600 }, \
|
||||
.size = (_size), \
|
||||
.f_mapping = iomem_get_mapping, \
|
||||
.llseek = pci_llseek_resource_legacy, \
|
||||
.mmap = pci_mmap_legacy_mem, \
|
||||
}
|
||||
|
||||
/**
|
||||
* pci_read_legacy_io - read byte(s) from legacy I/O port space
|
||||
* @filp: open sysfs file
|
||||
|
|
@ -1059,41 +1080,11 @@ static loff_t pci_llseek_resource_legacy(struct file *filep,
|
|||
return fixed_size_llseek(filep, offset, whence, attr->size);
|
||||
}
|
||||
|
||||
static const struct bin_attribute pci_legacy_io_attr = {
|
||||
.attr = { .name = "legacy_io", .mode = 0600 },
|
||||
.size = PCI_LEGACY_IO_SIZE,
|
||||
.read = pci_read_legacy_io,
|
||||
.write = pci_write_legacy_io,
|
||||
.mmap = pci_mmap_legacy_io,
|
||||
.llseek = pci_llseek_resource_legacy,
|
||||
.f_mapping = iomem_get_mapping,
|
||||
};
|
||||
pci_legacy_resource_io_attr(, PCI_LEGACY_IO_SIZE);
|
||||
pci_legacy_resource_io_attr(_sparse, PCI_LEGACY_IO_SIZE << 5);
|
||||
|
||||
static const struct bin_attribute pci_legacy_io_sparse_attr = {
|
||||
.attr = { .name = "legacy_io_sparse", .mode = 0600 },
|
||||
.size = PCI_LEGACY_IO_SIZE << 5,
|
||||
.read = pci_read_legacy_io,
|
||||
.write = pci_write_legacy_io,
|
||||
.mmap = pci_mmap_legacy_io,
|
||||
.llseek = pci_llseek_resource_legacy,
|
||||
.f_mapping = iomem_get_mapping,
|
||||
};
|
||||
|
||||
static const struct bin_attribute pci_legacy_mem_attr = {
|
||||
.attr = { .name = "legacy_mem", .mode = 0600 },
|
||||
.size = PCI_LEGACY_MEM_SIZE,
|
||||
.mmap = pci_mmap_legacy_mem,
|
||||
.llseek = pci_llseek_resource_legacy,
|
||||
.f_mapping = iomem_get_mapping,
|
||||
};
|
||||
|
||||
static const struct bin_attribute pci_legacy_mem_sparse_attr = {
|
||||
.attr = { .name = "legacy_mem_sparse", .mode = 0600 },
|
||||
.size = PCI_LEGACY_MEM_SIZE << 5,
|
||||
.mmap = pci_mmap_legacy_mem,
|
||||
.llseek = pci_llseek_resource_legacy,
|
||||
.f_mapping = iomem_get_mapping,
|
||||
};
|
||||
pci_legacy_resource_mem_attr(, PCI_LEGACY_MEM_SIZE);
|
||||
pci_legacy_resource_mem_attr(_sparse, PCI_LEGACY_MEM_SIZE << 5);
|
||||
|
||||
static const struct bin_attribute *const pci_legacy_io_attrs[] = {
|
||||
&pci_legacy_io_attr,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user