include/linux/mei_cl_bus.h
Source file repositories/reference/linux-study-clean/include/linux/mei_cl_bus.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/mei_cl_bus.h- Extension
.h- Size
- 4565 bytes
- Lines
- 135
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: operation-table or driver-model contract
- Status
- pattern implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines an operation table; this is where Linux turns generic core objects into subsystem-specific behavior.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/device.hlinux/uuid.hlinux/mod_devicetable.h
Detected Declarations
struct mei_cl_devicestruct mei_devicestruct scatterliststruct mei_cl_devicestruct mei_cl_driver
Annotated Snippet
struct device_driver driver;
const char *name;
const struct mei_cl_device_id *id_table;
int (*probe)(struct mei_cl_device *cldev,
const struct mei_cl_device_id *id);
void (*remove)(struct mei_cl_device *cldev);
};
int __mei_cldev_driver_register(struct mei_cl_driver *cldrv,
struct module *owner);
#define mei_cldev_driver_register(cldrv) \
__mei_cldev_driver_register(cldrv, THIS_MODULE)
void mei_cldev_driver_unregister(struct mei_cl_driver *cldrv);
/**
* module_mei_cl_driver - Helper macro for registering mei cl driver
*
* @__mei_cldrv: mei_cl_driver structure
*
* Helper macro for mei cl drivers which do not do anything special in module
* init/exit, for eliminating a boilerplate code.
*/
#define module_mei_cl_driver(__mei_cldrv) \
module_driver(__mei_cldrv, \
mei_cldev_driver_register,\
mei_cldev_driver_unregister)
ssize_t mei_cldev_send(struct mei_cl_device *cldev, const u8 *buf,
size_t length);
ssize_t mei_cldev_send_timeout(struct mei_cl_device *cldev, const u8 *buf,
size_t length, unsigned long timeout);
ssize_t mei_cldev_recv(struct mei_cl_device *cldev, u8 *buf, size_t length);
ssize_t mei_cldev_recv_timeout(struct mei_cl_device *cldev, u8 *buf, size_t length,
unsigned long timeout);
ssize_t mei_cldev_send_vtag(struct mei_cl_device *cldev, const u8 *buf,
size_t length, u8 vtag);
ssize_t mei_cldev_send_vtag_timeout(struct mei_cl_device *cldev, const u8 *buf,
size_t length, u8 vtag, unsigned long timeout);
ssize_t mei_cldev_recv_vtag(struct mei_cl_device *cldev, u8 *buf, size_t length,
u8 *vtag);
ssize_t mei_cldev_recv_vtag_timeout(struct mei_cl_device *cldev, u8 *buf, size_t length,
u8 *vtag, unsigned long timeout);
int mei_cldev_register_rx_cb(struct mei_cl_device *cldev, mei_cldev_cb_t rx_cb);
int mei_cldev_register_notif_cb(struct mei_cl_device *cldev,
mei_cldev_cb_t notif_cb);
const uuid_le *mei_cldev_uuid(const struct mei_cl_device *cldev);
u8 mei_cldev_ver(const struct mei_cl_device *cldev);
size_t mei_cldev_mtu(const struct mei_cl_device *cldev);
void *mei_cldev_get_drvdata(const struct mei_cl_device *cldev);
void mei_cldev_set_drvdata(struct mei_cl_device *cldev, void *data);
int mei_cldev_enable(struct mei_cl_device *cldev);
int mei_cldev_disable(struct mei_cl_device *cldev);
bool mei_cldev_enabled(const struct mei_cl_device *cldev);
ssize_t mei_cldev_send_gsc_command(struct mei_cl_device *cldev,
u8 client_id, u32 fence_id,
struct scatterlist *sg_in,
size_t total_in_len,
struct scatterlist *sg_out);
void *mei_cldev_dma_map(struct mei_cl_device *cldev, u8 buffer_id, size_t size);
int mei_cldev_dma_unmap(struct mei_cl_device *cldev);
#endif /* _LINUX_MEI_CL_BUS_H */
Annotation
- Immediate include surface: `linux/device.h`, `linux/uuid.h`, `linux/mod_devicetable.h`.
- Detected declarations: `struct mei_cl_device`, `struct mei_device`, `struct scatterlist`, `struct mei_cl_device`, `struct mei_cl_driver`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: pattern implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.