CasperSecurity

Current Path : /usr/src/linux-headers-5.15.0-164/include/media/
Upload File :
Current File : //usr/src/linux-headers-5.15.0-164/include/media/media-dev-allocator.h

/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * media-dev-allocator.h - Media Controller Device Allocator API
 *
 * Copyright (c) 2019 Shuah Khan <shuah@kernel.org>
 *
 * Credits: Suggested by Laurent Pinchart <laurent.pinchart@ideasonboard.com>
 */

/*
 * This file adds a global ref-counted Media Controller Device Instance API.
 * A system wide global media device list is managed and each media device
 * includes a kref count. The last put on the media device releases the media
 * device instance.
 */

#ifndef _MEDIA_DEV_ALLOCATOR_H
#define _MEDIA_DEV_ALLOCATOR_H

struct usb_device;

#if defined(CONFIG_MEDIA_CONTROLLER) && IS_ENABLED(CONFIG_USB)
/**
 * media_device_usb_allocate() - Allocate and return struct &media device
 *
 * @udev:		struct &usb_device pointer
 * @module_name:	should be filled with %KBUILD_MODNAME
 * @owner:		struct module pointer %THIS_MODULE for the driver.
 *			%THIS_MODULE is null for a built-in driver.
 *			It is safe even when %THIS_MODULE is null.
 *
 * This interface should be called to allocate a Media Device when multiple
 * drivers share usb_device and the media device. This interface allocates
 * &media_device structure and calls media_device_usb_init() to initialize
 * it.
 *
 */
struct media_device *media_device_usb_allocate(struct usb_device *udev,
					       const char *module_name,
					       struct module *owner);
/**
 * media_device_delete() - Release media device. Calls kref_put().
 *
 * @mdev:		struct &media_device pointer
 * @module_name:	should be filled with %KBUILD_MODNAME
 * @owner:		struct module pointer %THIS_MODULE for the driver.
 *			%THIS_MODULE is null for a built-in driver.
 *			It is safe even when %THIS_MODULE is null.
 *
 * This interface should be called to put Media Device Instance kref.
 */
void media_device_delete(struct media_device *mdev, const char *module_name,
			 struct module *owner);
#else
static inline struct media_device *media_device_usb_allocate(
			struct usb_device *udev, const char *module_name,
			struct module *owner)
			{ return NULL; }
static inline void media_device_delete(
			struct media_device *mdev, const char *module_name,
			struct module *owner) { }
#endif /* CONFIG_MEDIA_CONTROLLER && CONFIG_USB */
#endif /* _MEDIA_DEV_ALLOCATOR_H */
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY