p!ranha?
Server IP : 103.169.32.36  /  Your IP : 216.73.217.13
Web Server : Apache
System : Linux web.dpmptsp 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User : apache ( 48)
PHP Version : 5.6.40
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/modules/3.10.0-1160.119.1.el7.x86_64/build/include/media/

Upload File :
Curr3nt_D!r [ Writeable ] D0cum3nt_r0Ot [ Writeable ]

 
Command :
Current File : /usr/lib/modules/3.10.0-1160.119.1.el7.x86_64/build/include/media//v4l2-device.h
/*
    V4L2 device support header.

    Copyright (C) 2008  Hans Verkuil <hverkuil@xs4all.nl>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#ifndef _V4L2_DEVICE_H
#define _V4L2_DEVICE_H

#include <media/media-device.h>
#include <media/v4l2-subdev.h>
#include <media/v4l2-dev.h>

/* Each instance of a V4L2 device should create the v4l2_device struct,
   either stand-alone or embedded in a larger struct.

   It allows easy access to sub-devices (see v4l2-subdev.h) and provides
   basic V4L2 device-level support.
 */

#define V4L2_DEVICE_NAME_SIZE (20 + 16)

struct v4l2_ctrl_handler;

struct v4l2_device {
	/* dev->driver_data points to this struct.
	   Note: dev might be NULL if there is no parent device
	   as is the case with e.g. ISA devices. */
	struct device *dev;
#if defined(CONFIG_MEDIA_CONTROLLER)
	struct media_device *mdev;
#endif
	/* used to keep track of the registered subdevs */
	struct list_head subdevs;
	/* lock this struct; can be used by the driver as well if this
	   struct is embedded into a larger struct. */
	spinlock_t lock;
	/* unique device name, by default the driver name + bus ID */
	char name[V4L2_DEVICE_NAME_SIZE];
	/* notify callback called by some sub-devices. */
	void (*notify)(struct v4l2_subdev *sd,
			unsigned int notification, void *arg);
	/* The control handler. May be NULL. */
	struct v4l2_ctrl_handler *ctrl_handler;
	/* Device's priority state */
	struct v4l2_prio_state prio;
	/* BKL replacement mutex. Temporary solution only. */
	struct mutex ioctl_lock;
	/* Keep track of the references to this struct. */
	struct kref ref;
	/* Release function that is called when the ref count goes to 0. */
	void (*release)(struct v4l2_device *v4l2_dev);
};

static inline void v4l2_device_get(struct v4l2_device *v4l2_dev)
{
	kref_get(&v4l2_dev->ref);
}

int v4l2_device_put(struct v4l2_device *v4l2_dev);

/* Initialize v4l2_dev and make dev->driver_data point to v4l2_dev.
   dev may be NULL in rare cases (ISA devices). In that case you
   must fill in the v4l2_dev->name field before calling this function. */
int __must_check v4l2_device_register(struct device *dev, struct v4l2_device *v4l2_dev);

/* Optional function to initialize the name field of struct v4l2_device using
   the driver name and a driver-global atomic_t instance.
   This function will increment the instance counter and returns the instance
   value used in the name.

   Example:

   static atomic_t drv_instance = ATOMIC_INIT(0);

   ...

   instance = v4l2_device_set_name(&v4l2_dev, "foo", &drv_instance);

   The first time this is called the name field will be set to foo0 and
   this function returns 0. If the name ends with a digit (e.g. cx18),
   then the name will be set to cx18-0 since cx180 looks really odd. */
int v4l2_device_set_name(struct v4l2_device *v4l2_dev, const char *basename,
						atomic_t *instance);

/* Set v4l2_dev->dev to NULL. Call when the USB parent disconnects.
   Since the parent disappears this ensures that v4l2_dev doesn't have an
   invalid parent pointer. */
void v4l2_device_disconnect(struct v4l2_device *v4l2_dev);

/* Unregister all sub-devices and any other resources related to v4l2_dev. */
void v4l2_device_unregister(struct v4l2_device *v4l2_dev);

/* Register a subdev with a v4l2 device. While registered the subdev module
   is marked as in-use. An error is returned if the module is no longer
   loaded when you attempt to register it. */
int __must_check v4l2_device_register_subdev(struct v4l2_device *v4l2_dev,
						struct v4l2_subdev *sd);
/* Unregister a subdev with a v4l2 device. Can also be called if the subdev
   wasn't registered. In that case it will do nothing. */
void v4l2_device_unregister_subdev(struct v4l2_subdev *sd);

/* Register device nodes for all subdev of the v4l2 device that are marked with
 * the V4L2_SUBDEV_FL_HAS_DEVNODE flag.
 */
int __must_check
v4l2_device_register_subdev_nodes(struct v4l2_device *v4l2_dev);

/* Iterate over all subdevs. */
#define v4l2_device_for_each_subdev(sd, v4l2_dev)			\
	list_for_each_entry(sd, &(v4l2_dev)->subdevs, list)

/* Call the specified callback for all subdevs matching the condition.
   Ignore any errors. Note that you cannot add or delete a subdev
   while walking the subdevs list. */
#define __v4l2_device_call_subdevs_p(v4l2_dev, sd, cond, o, f, args...)	\
	do { 								\
		list_for_each_entry((sd), &(v4l2_dev)->subdevs, list)	\
			if ((cond) && (sd)->ops->o && (sd)->ops->o->f)	\
				(sd)->ops->o->f((sd) , ##args);		\
	} while (0)

#define __v4l2_device_call_subdevs(v4l2_dev, cond, o, f, args...)	\
	do {								\
		struct v4l2_subdev *__sd;				\
									\
		__v4l2_device_call_subdevs_p(v4l2_dev, __sd, cond, o,	\
						f , ##args);		\
	} while (0)

/* Call the specified callback for all subdevs matching the condition.
   If the callback returns an error other than 0 or -ENOIOCTLCMD, then
   return with that error code. Note that you cannot add or delete a
   subdev while walking the subdevs list. */
#define __v4l2_device_call_subdevs_until_err_p(v4l2_dev, sd, cond, o, f, args...) \
({ 									\
	long __err = 0;							\
									\
	list_for_each_entry((sd), &(v4l2_dev)->subdevs, list) {		\
		if ((cond) && (sd)->ops->o && (sd)->ops->o->f)		\
			__err = (sd)->ops->o->f((sd) , ##args);		\
		if (__err && __err != -ENOIOCTLCMD)			\
			break; 						\
	} 								\
	(__err == -ENOIOCTLCMD) ? 0 : __err;				\
})

#define __v4l2_device_call_subdevs_until_err(v4l2_dev, cond, o, f, args...) \
({									\
	struct v4l2_subdev *__sd;					\
	__v4l2_device_call_subdevs_until_err_p(v4l2_dev, __sd, cond, o,	\
						f , ##args);		\
})

/* Call the specified callback for all subdevs matching grp_id (if 0, then
   match them all). Ignore any errors. Note that you cannot add or delete
   a subdev while walking the subdevs list. */
#define v4l2_device_call_all(v4l2_dev, grpid, o, f, args...)		\
	do {								\
		struct v4l2_subdev *__sd;				\
									\
		__v4l2_device_call_subdevs_p(v4l2_dev, __sd,		\
			!(grpid) || __sd->grp_id == (grpid), o, f ,	\
			##args);					\
	} while (0)

/* Call the specified callback for all subdevs matching grp_id (if 0, then
   match them all). If the callback returns an error other than 0 or
   -ENOIOCTLCMD, then return with that error code. Note that you cannot
   add or delete a subdev while walking the subdevs list. */
#define v4l2_device_call_until_err(v4l2_dev, grpid, o, f, args...) 	\
({									\
	struct v4l2_subdev *__sd;					\
	__v4l2_device_call_subdevs_until_err_p(v4l2_dev, __sd,		\
			!(grpid) || __sd->grp_id == (grpid), o, f ,	\
			##args);					\
})

#define v4l2_device_has_op(v4l2_dev, o, f)				\
({									\
	struct v4l2_subdev *__sd;					\
	bool __result = false;						\
	list_for_each_entry(__sd, &(v4l2_dev)->subdevs, list) {		\
		if (v4l2_subdev_has_op(__sd, o, f)) {			\
			__result = true;				\
			break;						\
		}							\
	}								\
	__result;							\
})

#endif
N4m3
5!z3
L45t M0d!f!3d
0wn3r / Gr0up
P3Rm!55!0n5
0pt!0n5
..
--
September 29 2025 07:01:09
0 / 0
0755
blackfin
--
September 29 2025 07:01:23
0 / 0
0755
davinci
--
September 29 2025 07:01:23
0 / 0
0755
ad9389b.h
1.405 KB
November 06 2023 09:15:52
0 / 0
0644
adp1653.h
4.134 KB
November 06 2023 09:15:52
0 / 0
0644
adv7183.h
1.765 KB
November 06 2023 09:15:52
0 / 0
0644
adv7343.h
2.184 KB
November 06 2023 09:15:52
0 / 0
0644
adv7393.h
0.862 KB
November 06 2023 09:15:52
0 / 0
0644
adv7604.h
4.42 KB
November 06 2023 09:15:52
0 / 0
0644
ak881x.h
0.649 KB
November 06 2023 09:15:52
0 / 0
0644
as3645a.h
2.352 KB
November 06 2023 09:15:52
0 / 0
0644
atmel-isi.h
3.561 KB
November 06 2023 09:15:52
0 / 0
0644
bt819.h
1.146 KB
November 06 2023 09:15:52
0 / 0
0644
cec-notifier.h
4.191 KB
November 06 2023 09:15:52
0 / 0
0644
cec.h
12.034 KB
November 06 2023 09:15:52
0 / 0
0644
cs5345.h
1.182 KB
November 06 2023 09:15:52
0 / 0
0644
cs53l32a.h
1.168 KB
November 06 2023 09:15:52
0 / 0
0644
cx2341x.h
9.777 KB
November 06 2023 09:15:52
0 / 0
0644
cx25840.h
5.383 KB
November 06 2023 09:15:52
0 / 0
0644
gpio-ir-recv.h
0.716 KB
November 06 2023 09:15:52
0 / 0
0644
i2c-addr.h
1.177 KB
November 06 2023 09:15:52
0 / 0
0644
ir-kbd-i2c.h
1.192 KB
November 06 2023 09:15:52
0 / 0
0644
ir-rx51.h
0.159 KB
November 06 2023 09:15:52
0 / 0
0644
lirc.h
6.268 KB
November 06 2023 09:15:52
0 / 0
0644
lirc_dev.h
5.659 KB
November 06 2023 09:15:52
0 / 0
0644
m52790.h
2.721 KB
November 06 2023 09:15:52
0 / 0
0644
m5mols.h
1.052 KB
November 06 2023 09:15:52
0 / 0
0644
media-device.h
2.927 KB
November 06 2023 09:15:52
0 / 0
0644
media-devnode.h
2.938 KB
November 06 2023 09:15:52
0 / 0
0644
media-entity.h
4.681 KB
November 06 2023 09:15:52
0 / 0
0644
mmp-camera.h
0.175 KB
November 06 2023 09:15:52
0 / 0
0644
msp3400.h
8.286 KB
November 06 2023 09:15:52
0 / 0
0644
mt9m032.h
1.061 KB
November 06 2023 09:15:52
0 / 0
0644
mt9p031.h
0.326 KB
November 06 2023 09:15:52
0 / 0
0644
mt9t001.h
0.138 KB
November 06 2023 09:15:52
0 / 0
0644
mt9t112.h
0.674 KB
November 06 2023 09:15:52
0 / 0
0644
mt9v011.h
0.375 KB
November 06 2023 09:15:52
0 / 0
0644
mt9v022.h
0.354 KB
November 06 2023 09:15:52
0 / 0
0644
mt9v032.h
0.246 KB
November 06 2023 09:15:52
0 / 0
0644
noon010pc30.h
0.71 KB
November 06 2023 09:15:52
0 / 0
0644
omap1_camera.h
0.859 KB
November 06 2023 09:15:52
0 / 0
0644
omap3isp.h
4.285 KB
November 06 2023 09:15:52
0 / 0
0644
ov7670.h
0.601 KB
November 06 2023 09:15:52
0 / 0
0644
ov772x.h
1.396 KB
November 06 2023 09:15:52
0 / 0
0644
ov9650.h
0.854 KB
November 06 2023 09:15:52
0 / 0
0644
radio-si4713.h
0.668 KB
November 06 2023 09:15:52
0 / 0
0644
rc-core.h
7.538 KB
November 06 2023 09:15:52
0 / 0
0644
rc-map.h
9.161 KB
November 06 2023 09:15:52
0 / 0
0644
rj54n1cb0c.h
0.415 KB
November 06 2023 09:15:52
0 / 0
0644
s3c_camif.h
1.289 KB
November 06 2023 09:15:52
0 / 0
0644
s5c73m3.h
1.545 KB
November 06 2023 09:15:52
0 / 0
0644
s5k4ecgx.h
0.871 KB
November 06 2023 09:15:52
0 / 0
0644
s5k6aa.h
1.403 KB
November 06 2023 09:15:52
0 / 0
0644
s5p_fimc.h
5.022 KB
November 06 2023 09:15:52
0 / 0
0644
s5p_hdmi.h
0.962 KB
November 06 2023 09:15:52
0 / 0
0644
saa6588.h
1.296 KB
November 06 2023 09:15:52
0 / 0
0644
saa6752hs.h
0.866 KB
November 06 2023 09:15:52
0 / 0
0644
saa7115.h
2.417 KB
November 06 2023 09:15:52
0 / 0
0644
saa7127.h
1.242 KB
November 06 2023 09:15:52
0 / 0
0644
saa7146.h
17.499 KB
November 06 2023 09:15:52
0 / 0
0644
saa7146_vv.h
7.479 KB
November 06 2023 09:15:52
0 / 0
0644
sh_mobile_ceu.h
0.709 KB
November 06 2023 09:15:52
0 / 0
0644
sh_mobile_csi2.h
0.94 KB
November 06 2023 09:15:52
0 / 0
0644
sh_vou.h
0.699 KB
November 06 2023 09:15:52
0 / 0
0644
si4713.h
1.372 KB
November 06 2023 09:15:52
0 / 0
0644
si476x.h
1.232 KB
November 06 2023 09:15:52
0 / 0
0644
sii9234.h
0.576 KB
November 06 2023 09:15:52
0 / 0
0644
smiapp.h
2.473 KB
November 06 2023 09:15:52
0 / 0
0644
soc_camera.h
12.197 KB
November 06 2023 09:15:52
0 / 0
0644
soc_camera_platform.h
1.928 KB
November 06 2023 09:15:52
0 / 0
0644
soc_mediabus.h
3.564 KB
November 06 2023 09:15:52
0 / 0
0644
sr030pc30.h
0.613 KB
November 06 2023 09:15:52
0 / 0
0644
ths7303.h
1.231 KB
November 06 2023 09:15:52
0 / 0
0644
timb_radio.h
0.971 KB
November 06 2023 09:15:52
0 / 0
0644
timb_video.h
1.01 KB
November 06 2023 09:15:52
0 / 0
0644
tuner-types.h
4.589 KB
November 06 2023 09:15:52
0 / 0
0644
tuner.h
7.64 KB
November 06 2023 09:15:52
0 / 0
0644
tvaudio.h
1.393 KB
November 06 2023 09:15:52
0 / 0
0644
tveeprom.h
0.809 KB
November 06 2023 09:15:52
0 / 0
0644
tvp514x.h
2.758 KB
November 06 2023 09:15:52
0 / 0
0644
tvp5150.h
1.04 KB
November 06 2023 09:15:52
0 / 0
0644
tvp7002.h
1.927 KB
November 06 2023 09:15:52
0 / 0
0644
tw9910.h
0.766 KB
November 06 2023 09:15:52
0 / 0
0644
uda1342.h
0.938 KB
November 06 2023 09:15:52
0 / 0
0644
upd64031a.h
1.324 KB
November 06 2023 09:15:52
0 / 0
0644
upd64083.h
2.233 KB
November 06 2023 09:15:52
0 / 0
0644
v4l2-chip-ident.h
9.518 KB
November 06 2023 09:15:52
0 / 0
0644
v4l2-common.h
8.094 KB
November 06 2023 09:15:52
0 / 0
0644
v4l2-ctrls.h
26.854 KB
November 06 2023 09:15:52
0 / 0
0644
v4l2-dev.h
7.441 KB
November 06 2023 09:15:52
0 / 0
0644
v4l2-device.h
7.399 KB
November 06 2023 09:15:52
0 / 0
0644
v4l2-event.h
5.005 KB
November 06 2023 09:15:52
0 / 0
0644
v4l2-fh.h
3.259 KB
November 06 2023 09:15:52
0 / 0
0644
v4l2-image-sizes.h
0.702 KB
November 06 2023 09:15:52
0 / 0
0644
v4l2-int-device.h
7.663 KB
November 06 2023 09:15:52
0 / 0
0644
v4l2-ioctl.h
12.512 KB
November 06 2023 09:15:52
0 / 0
0644
v4l2-mediabus.h
3.507 KB
November 06 2023 09:15:52
0 / 0
0644
v4l2-mem2mem.h
6.495 KB
November 06 2023 09:15:52
0 / 0
0644
v4l2-of.h
2.073 KB
November 06 2023 09:15:52
0 / 0
0644
v4l2-subdev.h
26.723 KB
November 06 2023 09:15:52
0 / 0
0644
videobuf-core.h
6.99 KB
November 06 2023 09:15:52
0 / 0
0644
videobuf-dma-contig.h
1.037 KB
November 06 2023 09:15:52
0 / 0
0644
videobuf-dma-sg.h
3.285 KB
November 06 2023 09:15:52
0 / 0
0644
videobuf-dvb.h
1.721 KB
November 06 2023 09:15:52
0 / 0
0644
videobuf-vmalloc.h
1.291 KB
November 06 2023 09:15:52
0 / 0
0644
videobuf2-core.h
19.184 KB
November 06 2023 09:15:52
0 / 0
0644
videobuf2-dma-contig.h
0.812 KB
November 06 2023 09:15:52
0 / 0
0644
videobuf2-dma-sg.h
0.797 KB
November 06 2023 09:15:52
0 / 0
0644
videobuf2-memops.h
1.102 KB
November 06 2023 09:15:52
0 / 0
0644
videobuf2-vmalloc.h
0.497 KB
November 06 2023 09:15:52
0 / 0
0644
wm8775.h
1.358 KB
November 06 2023 09:15:52
0 / 0
0644