| /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ | |
| /* | |
| * Copyright (c) 2021 Mellanox Technologies Ltd. All rights reserved. | |
| */ | |
| #ifndef DEF_RDMA_IB_SYSFS_H | |
| #define DEF_RDMA_IB_SYSFS_H | |
| #include <linux/sysfs.h> | |
| struct ib_device; | |
| struct ib_port_attribute { | |
| struct attribute attr; | |
| ssize_t (*show)(struct ib_device *ibdev, u32 port_num, | |
| struct ib_port_attribute *attr, char *buf); | |
| ssize_t (*store)(struct ib_device *ibdev, u32 port_num, | |
| struct ib_port_attribute *attr, const char *buf, | |
| size_t count); | |
| }; | |
| #define IB_PORT_ATTR_RW(_name) \ | |
| struct ib_port_attribute ib_port_attr_##_name = __ATTR_RW(_name) | |
| #define IB_PORT_ATTR_ADMIN_RW(_name) \ | |
| struct ib_port_attribute ib_port_attr_##_name = \ | |
| __ATTR_RW_MODE(_name, 0600) | |
| #define IB_PORT_ATTR_RO(_name) \ | |
| struct ib_port_attribute ib_port_attr_##_name = __ATTR_RO(_name) | |
| #define IB_PORT_ATTR_WO(_name) \ | |
| struct ib_port_attribute ib_port_attr_##_name = __ATTR_WO(_name) | |
| struct ib_device *ib_port_sysfs_get_ibdev_kobj(struct kobject *kobj, | |
| u32 *port_num); | |
| #endif |