drivers/gpu/drm/nouveau/include/nvkm/core/os.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/nouveau/include/nvkm/core/os.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/nouveau/include/nvkm/core/os.h
Extension
.h
Size
1388 bytes
Lines
34
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct nvkm_blob {
	void *data;
	u32 size;
};

static inline void
nvkm_blob_dtor(struct nvkm_blob *blob)
{
	kfree(blob->data);
	blob->data = NULL;
	blob->size = 0;
}

#define nvkm_list_find_next(p,h,m,c) ({                                                      \
	typeof(p) _p = NULL;                                                                 \
	list_for_each_entry_continue(p, (h), m) {                                            \
		if (c) {                                                                     \
			_p = p;                                                              \
			break;                                                               \
		}                                                                            \
	}                                                                                    \
	_p;                                                                                  \
})
#define nvkm_list_find(p,h,m,c)                                                              \
	(p = container_of((h), typeof(*p), m), nvkm_list_find_next(p, (h), m, (c)))
#define nvkm_list_foreach(p,h,m,c)                                                           \
	for (p = nvkm_list_find(p, (h), m, (c)); p; p = nvkm_list_find_next(p, (h), m, (c)))
#endif

Annotation

Implementation Notes