1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef LINUX_DEVICE_ID_DFL_H 3 #define LINUX_DEVICE_ID_DFL_H 4 5 #ifdef __KERNEL__ 6 #include <linux/types.h> 7 typedef unsigned long kernel_ulong_t; 8 #endif 9 10 /* 11 * DFL (Device Feature List) 12 * 13 * DFL defines a linked list of feature headers within the device MMIO space to 14 * provide an extensible way of adding features. Software can walk through these 15 * predefined data structures to enumerate features. It is now used in the FPGA. 16 * See Documentation/fpga/dfl.rst for more information. 17 * 18 * The dfl bus type is introduced to match the individual feature devices (dfl 19 * devices) for specific dfl drivers. 20 */ 21 22 /** 23 * struct dfl_device_id - dfl device identifier 24 * @type: DFL FIU type of the device. See enum dfl_id_type. 25 * @feature_id: feature identifier local to its DFL FIU type. 26 * @driver_data: driver specific data. 27 */ 28 struct dfl_device_id { 29 __u16 type; 30 __u16 feature_id; 31 kernel_ulong_t driver_data; 32 }; 33 34 #endif /* ifndef LINUX_DEVICE_ID_DFL_H */ 35