index
:
litmus-rt.git
archive/unc-master-3.0
archived-2013.1
archived-private-master
archived-semi-part
demo
ecrts-pgm-final
ecrts14-pgm-final
gpusync-rtss12
gpusync/staging
linux-tip
litmus2008-patch-series
master
pgm
prop/litmus-signals
prop/robust-tie-break
staging
test
tracing-devel
v2.6.34-with-arm-patches
v2015.1
wip-2011.2-bbb
wip-2011.2-bbb-trace
wip-2012.3-gpu
wip-2012.3-gpu-preport
wip-2012.3-gpu-rtss13
wip-2012.3-gpu-sobliv-budget-w-kshark
wip-aedzl-final
wip-aedzl-revised
wip-arbit-deadline
wip-aux-tasks
wip-bbb
wip-bbb-prio-don
wip-better-break
wip-binary-heap
wip-budget
wip-color
wip-color-jlh
wip-d10-hz1000
wip-default-clustering
wip-dissipation-jerickso
wip-dissipation2-jerickso
wip-ecrts14-pgm
wip-edf-hsb
wip-edf-os
wip-edf-tie-break
wip-edzl-critique
wip-edzl-final
wip-edzl-revised
wip-events
wip-extra-debug
wip-fix-switch-jerickso
wip-fix3
wip-fmlp-dequeue
wip-ft-irq-flag
wip-gpu-cleanup
wip-gpu-interrupts
wip-gpu-rtas12
wip-gpu-rtss12
wip-gpu-rtss12-srp
wip-gpusync-merge
wip-ikglp
wip-k-fmlp
wip-kernel-coloring
wip-kernthreads
wip-klmirqd-to-aux
wip-kshark
wip-litmus-3.2
wip-litmus2011.2
wip-litmus3.0-2011.2
wip-master-2.6.33-rt
wip-mc
wip-mc-bipasa
wip-mc-jerickso
wip-mc2-cache-slack
wip-mcrit-mac
wip-merge-3.0
wip-merge-v3.0
wip-migration-affinity
wip-mmap-uncache
wip-modechange
wip-nested-locking
wip-omlp-gedf
wip-pai
wip-percore-lib
wip-performance
wip-pgm
wip-pgm-split
wip-pm-ovd
wip-prio-inh
wip-prioq-dgl
wip-refactored-gedf
wip-release-master-fix
wip-robust-tie-break
wip-rt-kshark
wip-rtas12-pgm
wip-semi-part
wip-semi-part-edfos-jerickso
wip-shared-lib
wip-shared-lib2
wip-shared-mem
wip-splitting-jerickso
wip-splitting-omlp-jerickso
wip-stage-binheap
wip-sun-port
wip-timer-trace
wip-tracepoints
The LITMUS^RT kernel.
Bjoern Brandenburg
about
summary
refs
log
tree
commit
diff
stats
log msg
author
committer
range
path:
root
/
fs
Mode
Name
Size
d---------
9p
821
log
stats
plain
-rw-r--r--
Kconfig
64675
log
stats
plain
blame
-rw-r--r--
Kconfig.binfmt
5435
log
stats
plain
blame
-rw-r--r--
Makefile
3270
log
stats
plain
blame
d---------
adfs
388
log
stats
plain
d---------
affs
388
log
stats
plain
d---------
afs
1310
log
stats
plain
-rw-r--r--
aio.c
45278
log
stats
plain
blame
-rw-r--r--
attr.c
4534
log
stats
plain
blame
d---------
autofs
286
log
stats
plain
d---------
autofs4
285
log
stats
plain
-rw-r--r--
bad_inode.c
2863
log
stats
plain
blame
d---------
befs
684
log
stats
plain
d---------
bfs
171
log
stats
plain
-rw-r--r--
binfmt_aout.c
15217
log
stats
plain
blame
-rw-r--r--
binfmt_elf.c
46368
log
stats
plain
blame
-rw-r--r--
binfmt_elf_fdpic.c
31012
log
stats
plain
blame
-rw-r--r--
binfmt_em86.c
2867
log
stats
plain
blame
-rw-r--r--
binfmt_flat.c
26391
log
stats
plain
blame
-rw-r--r--
binfmt_misc.c
16018
log
stats
plain
blame
-rw-r--r--
binfmt_script.c
2774
log
stats
plain
blame
-rw-r--r--
binfmt_som.c
7834
log
stats
plain
blame
-rw-r--r--
bio.c
29412
log
stats
plain
blame
-rw-r--r--
block_dev.c
22193
log
stats
plain
blame
-rw-r--r--
buffer.c
83834
log
stats
plain
blame
-rw-r--r--
char_dev.c
9693
log
stats
plain
blame
d---------
cifs
1539
log
stats
plain
d---------
coda
428
log
stats
plain
-rw-r--r--
compat.c
46641
log
stats
plain
blame
-rw-r--r--
compat_ioctl.c
87020
log
stats
plain
blame
d---------
cramfs
145
log
stats
plain
-rw-r--r--
dcache.c
44961
log
stats
plain
blame
-rw-r--r--
dcookies.c
6396
log
stats
plain
blame
d---------
debugfs
105
log
stats
plain
d---------
devfs
104
log
stats
plain
d---------
devpts
71
log
stats
plain
-rw-r--r--
direct-io.c
35327
log
stats
plain
blame
-rw-r--r--
dnotify.c
4375
log
stats
plain
blame
-rw-r--r--
dquot.c
52954
log
stats
plain
blame
d---------
efs
245
log
stats
plain
-rw-r--r--
eventpoll.c
45128
log
stats
plain
blame
-rw-r--r--
exec.c
35357
log
stats
plain
blame
d---------
exportfs
71
log
stats
plain
d---------
ext2
821
log
stats
plain
d---------
ext3
756
log
stats
plain
d---------
fat
243
log
stats
plain
-rw-r--r--
fcntl.c
13930
log
stats
plain
blame
-rw-r--r--
fifo.c
3326
log
stats
plain
blame
-rw-r--r--
file.c
8962
log
stats
plain
blame
-rw-r--r--
file_table.c
6365
log
stats
plain
blame
-rw-r--r--
filesystems.c
5320
log
stats
plain
blame
d---------
freevxfs
586
log
stats
plain
-rw-r--r--
fs-writeback.c
19875
log
stats
plain
blame
d---------
fuse
207
log
stats
plain
d---------
hfs
703
log
stats
plain
d---------
hfsplus
689
log
stats
plain
d---------
hostfs
154
log
stats
plain
d---------
hpfs
555
log
stats
plain
d---------
hppfs
76
log
stats
plain
d---------
hugetlbfs
71
log
stats
plain
-rw-r--r--
inode.c
36609
log
stats
plain
blame
-rw-r--r--
inotify.c
27177
log
stats
plain
blame
-rw-r--r--
ioctl.c
3998
log
stats
plain
blame
-rw-r--r--
ioprio.c
3608
log
stats
plain
blame
d---------
isofs
422
log
stats
plain
d---------
jbd
264
log
stats
plain
d---------
jffs
299
log
stats
plain
d---------
jffs2
1278
log
stats
plain
d---------
jfs
1699
log
stats
plain
-rw-r--r--
libfs.c
15608
log
stats
plain
blame
d---------
lockd
466
log
stats
plain
-rw-r--r--
locks.c
56309
log
stats
plain
blame
-rw-r--r--
mbcache.c
18677
log
stats
plain
blame
d---------
minix
362
log
stats
plain
-rw-r--r--
mpage.c
21126
log
stats
plain
blame
d---------
msdos
71
log
stats
plain
-rw-r--r--
namei.c
61329
log
stats
plain
blame
-rw-r--r--
namespace.c
35855
log
stats
plain
blame
d---------
ncpfs
559
log
stats
plain
d---------
nfs
1081
log
stats
plain
d---------
nfs_common
72
log
stats
plain
-rw-r--r--
nfsctl.c
2516
log
stats
plain
blame
d---------
nfsd
849
log
stats
plain
d---------
nls
1723
log
stats
plain
d---------
ntfs
1635
log
stats
plain
-rw-r--r--
open.c
24170
log
stats
plain
blame
d---------
openpromfs
71
log
stats
plain
d---------
partitions
1025
log
stats
plain
-rw-r--r--
pipe.c
18717
log
stats
plain
blame
-rw-r--r--
posix_acl.c
8784
log
stats
plain
blame
d---------
proc
662
log
stats
plain
d---------
qnx4
316
log
stats
plain
-rw-r--r--
quota.c
8837
log
stats
plain
blame
-rw-r--r--
quota_v1.c
5836
log
stats
plain
blame
-rw-r--r--
quota_v2.c
20547
log
stats
plain
blame
d---------
ramfs
71
log
stats
plain
-rw-r--r--
read_write.c
16133
log
stats
plain
blame
-rw-r--r--
readdir.c
6848
log
stats
plain
blame
d---------
reiserfs
1003
log
stats
plain
d---------
relayfs
215
log
stats
plain
d---------
romfs
71
log
stats
plain
-rw-r--r--
select.c
12732
log
stats
plain
blame
-rw-r--r--
seq_file.c
9768
log
stats
plain
blame
d---------
smbfs
569
log
stats
plain
-rw-r--r--
stat.c
9413
log
stats
plain
blame
-rw-r--r--
super.c
20572
log
stats
plain
blame
d---------
sysfs
313
log
stats
plain
d---------
sysv
491
log
stats
plain
d---------
udf
867
log
stats
plain
d---------
ufs
495
log
stats
plain
d---------
vfat
71
log
stats
plain
-rw-r--r--
xattr.c
11309
log
stats
plain
blame
-rw-r--r--
xattr_acl.c
2379
log
stats
plain
blame
d---------
xfs
4673
log
stats
plain
com"> 'id' and 'transmission' parameters. Returns negative on error. */
int
v4l2_video_std_construct
(
struct
v4l2_standard
*
vs
,
int
id
,
char
*
name
)
{
u32 index
=
vs
->
index
;
memset
(
vs
,
0
,
sizeof
(
struct
v4l2_standard
));
vs
->
index
=
index
;
vs
->
id
=
id
;
if
(
id
&
V4L2_STD_525_60
) {
vs
->
frameperiod
.
numerator
=
1001
;
vs
->
frameperiod
.
denominator
=
30000
;
vs
->
framelines
=
525
;
}
else
{
vs
->
frameperiod
.
numerator
=
1
;
vs
->
frameperiod
.
denominator
=
25
;
vs
->
framelines
=
625
;
}
strlcpy
(
vs
->
name
,
name
,
sizeof
(
vs
->
name
));
return
0
;
}
/* ----------------------------------------------------------------- */
/* priority handling */
#define V4L2_PRIO_VALID(val) (val == V4L2_PRIORITY_BACKGROUND || \
val == V4L2_PRIORITY_INTERACTIVE || \
val == V4L2_PRIORITY_RECORD)
int
v4l2_prio_init
(
struct
v4l2_prio_state
*
global
)
{
memset
(
global
,
0
,
sizeof
(*
global
));
return
0
;
}
int
v4l2_prio_change
(
struct
v4l2_prio_state
*
global
,
enum
v4l2_priority
*
local
,
enum
v4l2_priority
new
)
{
if
(!
V4L2_PRIO_VALID
(
new
))
return
-
EINVAL
;
if
(*
local
==
new
)
return
0
;
atomic_inc
(&
global
->
prios
[
new
]);
if
(
V4L2_PRIO_VALID
(*
local
))
atomic_dec
(&
global
->
prios
[*
local
]);
*
local
=
new
;
return
0
;
}
int
v4l2_prio_open
(
struct
v4l2_prio_state
*
global
,
enum
v4l2_priority
*
local
)
{
return
v4l2_prio_change
(
global
,
local
,
V4L2_PRIORITY_DEFAULT
);
}
int
v4l2_prio_close
(
struct
v4l2_prio_state
*
global
,
enum
v4l2_priority
*
local
)
{
if
(
V4L2_PRIO_VALID
(*
local
))
atomic_dec
(&
global
->
prios
[*
local
]);
return
0
;
}
enum
v4l2_priority
v4l2_prio_max
(
struct
v4l2_prio_state
*
global
)
{
if
(
atomic_read
(&
global
->
prios
[
V4L2_PRIORITY_RECORD
]) >
0
)
return
V4L2_PRIORITY_RECORD
;
if
(
atomic_read
(&
global
->
prios
[
V4L2_PRIORITY_INTERACTIVE
]) >
0
)
return
V4L2_PRIORITY_INTERACTIVE
;
if
(
atomic_read
(&
global
->
prios
[
V4L2_PRIORITY_BACKGROUND
]) >
0
)
return
V4L2_PRIORITY_BACKGROUND
;
return
V4L2_PRIORITY_UNSET
;
}
int
v4l2_prio_check
(
struct
v4l2_prio_state
*
global
,
enum
v4l2_priority
*
local
)
{
if
(*
local
<
v4l2_prio_max
(
global
))
return
-
EBUSY
;
return
0
;
}
/* ----------------------------------------------------------------- */
/* some arrays for pretty-printing debug messages of enum types */
char
*
v4l2_field_names
[] = {
[
V4L2_FIELD_ANY
] =
"any"
,
[
V4L2_FIELD_NONE
] =
"none"
,
[
V4L2_FIELD_TOP
] =
"top"
,
[
V4L2_FIELD_BOTTOM
] =
"bottom"
,
[
V4L2_FIELD_INTERLACED
] =
"interlaced"
,
[
V4L2_FIELD_SEQ_TB
] =
"seq-tb"
,
[
V4L2_FIELD_SEQ_BT
] =
"seq-bt"
,
[
V4L2_FIELD_ALTERNATE
] =
"alternate"
,
};
char
*
v4l2_type_names
[] = {
[
V4L2_BUF_TYPE_VIDEO_CAPTURE
] =
"video-cap"
,
[
V4L2_BUF_TYPE_VIDEO_OVERLAY
] =
"video-over"
,
[
V4L2_BUF_TYPE_VIDEO_OUTPUT
] =
"video-out"
,
[
V4L2_BUF_TYPE_VBI_CAPTURE
] =
"vbi-cap"
,
[
V4L2_BUF_TYPE_VBI_OUTPUT
] =
"vbi-out"
,
[
V4L2_BUF_TYPE_SLICED_VBI_CAPTURE
] =
"sliced-vbi-cap"
,
[
V4L2_BUF_TYPE_SLICED_VBI_OUTPUT
] =
"slicec-vbi-out"
,
};
static char
*
v4l2_memory_names
[] = {
[
V4L2_MEMORY_MMAP
] =
"mmap"
,
[
V4L2_MEMORY_USERPTR
] =
"userptr"
,
[
V4L2_MEMORY_OVERLAY
] =
"overlay"
,
};
#define prt_names(a,arr) (((a)>=0)&&((a)<ARRAY_SIZE(arr)))?arr[a]:
"unknown"
/* ------------------------------------------------------------------ */
/* debug help functions */
#ifdef CONFIG_VIDEO_V4L1_COMPAT
static const char
*
v4l1_ioctls
[] = {
[
_IOC_NR
(
VIDIOCGCAP
)] =
"VIDIOCGCAP"
,
[
_IOC_NR
(
VIDIOCGCHAN
)] =
"VIDIOCGCHAN"
,
[
_IOC_NR
(
VIDIOCSCHAN
)] =
"VIDIOCSCHAN"
,
[
_IOC_NR
(
VIDIOCGTUNER
)] =
"VIDIOCGTUNER"
,
[
_IOC_NR
(
VIDIOCSTUNER
)] =
"VIDIOCSTUNER"
,
[
_IOC_NR
(
VIDIOCGPICT
)] =
"VIDIOCGPICT"
,
[
_IOC_NR
(
VIDIOCSPICT
)] =
"VIDIOCSPICT"
,
[
_IOC_NR
(
VIDIOCCAPTURE
)] =
"VIDIOCCAPTURE"
,
[
_IOC_NR
(
VIDIOCGWIN
)] =
"VIDIOCGWIN"
,
[
_IOC_NR
(
VIDIOCSWIN
)] =
"VIDIOCSWIN"
,
[
_IOC_NR
(
VIDIOCGFBUF
)] =
"VIDIOCGFBUF"
,
[
_IOC_NR
(
VIDIOCSFBUF
)] =
"VIDIOCSFBUF"
,
[
_IOC_NR
(
VIDIOCKEY
)] =
"VIDIOCKEY"
,
[
_IOC_NR
(
VIDIOCGFREQ
)] =
"VIDIOCGFREQ"
,
[
_IOC_NR
(
VIDIOCSFREQ
)] =
"VIDIOCSFREQ"
,
[
_IOC_NR
(
VIDIOCGAUDIO
)] =
"VIDIOCGAUDIO"
,
[
_IOC_NR
(
VIDIOCSAUDIO
)] =
"VIDIOCSAUDIO"
,
[
_IOC_NR
(
VIDIOCSYNC
)] =
"VIDIOCSYNC"
,
[
_IOC_NR
(
VIDIOCMCAPTURE
)] =
"VIDIOCMCAPTURE"
,
[
_IOC_NR
(
VIDIOCGMBUF
)] =
"VIDIOCGMBUF"
,
[
_IOC_NR
(
VIDIOCGUNIT
)] =
"VIDIOCGUNIT"
,
[
_IOC_NR
(
VIDIOCGCAPTURE
)] =
"VIDIOCGCAPTURE"
,
[
_IOC_NR
(
VIDIOCSCAPTURE
)] =
"VIDIOCSCAPTURE"
,
[
_IOC_NR
(
VIDIOCSPLAYMODE
)] =
"VIDIOCSPLAYMODE"
,
[
_IOC_NR
(
VIDIOCSWRITEMODE
)] =
"VIDIOCSWRITEMODE"
,
[
_IOC_NR
(
VIDIOCGPLAYINFO
)] =
"VIDIOCGPLAYINFO"
,
[
_IOC_NR
(
VIDIOCSMICROCODE
)] =
"VIDIOCSMICROCODE"
,
[
_IOC_NR
(
VIDIOCGVBIFMT
)] =
"VIDIOCGVBIFMT"
,
[
_IOC_NR
(
VIDIOCSVBIFMT
)] =
"VIDIOCSVBIFMT"
};
#define V4L1_IOCTLS ARRAY_SIZE(v4l1_ioctls)
#endif
static const char
*
v4l2_ioctls
[] = {
[
_IOC_NR
(
VIDIOC_QUERYCAP
)] =
"VIDIOC_QUERYCAP"
,
[
_IOC_NR
(
VIDIOC_RESERVED
)] =
"VIDIOC_RESERVED"
,
[
_IOC_NR
(
VIDIOC_ENUM_FMT
)] =
"VIDIOC_ENUM_FMT"
,
[
_IOC_NR
(
VIDIOC_G_FMT
)] =
"VIDIOC_G_FMT"
,
[
_IOC_NR
(
VIDIOC_S_FMT
)] =
"VIDIOC_S_FMT"
,
[
_IOC_NR
(
VIDIOC_G_MPEGCOMP
)] =
"VIDIOC_G_MPEGCOMP"
,
[
_IOC_NR
(
VIDIOC_S_MPEGCOMP
)] =
"VIDIOC_S_MPEGCOMP"
,
[
_IOC_NR
(
VIDIOC_REQBUFS
)] =
"VIDIOC_REQBUFS"
,
[
_IOC_NR
(
VIDIOC_QUERYBUF
)] =
"VIDIOC_QUERYBUF"
,
[
_IOC_NR
(
VIDIOC_G_FBUF
)] =
"VIDIOC_G_FBUF"
,
[
_IOC_NR
(
VIDIOC_S_FBUF
)] =
"VIDIOC_S_FBUF"
,
[
_IOC_NR
(
VIDIOC_OVERLAY
)] =
"VIDIOC_OVERLAY"
,
[
_IOC_NR
(
VIDIOC_QBUF
)] =
"VIDIOC_QBUF"
,
[
_IOC_NR
(
VIDIOC_DQBUF
)] =
"VIDIOC_DQBUF"
,
[
_IOC_NR
(
VIDIOC_STREAMON
)] =
"VIDIOC_STREAMON"
,
[
_IOC_NR
(
VIDIOC_STREAMOFF
)] =
"VIDIOC_STREAMOFF"
,
[
_IOC_NR
(
VIDIOC_G_PARM
)] =
"VIDIOC_G_PARM"
,
[
_IOC_NR
(
VIDIOC_S_PARM
)] =
"VIDIOC_S_PARM"
,
[
_IOC_NR
(
VIDIOC_G_STD
)] =
"VIDIOC_G_STD"
,
[
_IOC_NR
(
VIDIOC_S_STD
)] =
"VIDIOC_S_STD"
,
[
_IOC_NR
(
VIDIOC_ENUMSTD
)] =
"VIDIOC_ENUMSTD"
,
[
_IOC_NR
(
VIDIOC_ENUMINPUT
)] =
"VIDIOC_ENUMINPUT"
,
[
_IOC_NR
(
VIDIOC_G_CTRL
)] =
"VIDIOC_G_CTRL"
,
[
_IOC_NR
(
VIDIOC_S_CTRL
)] =
"VIDIOC_S_CTRL"
,
[
_IOC_NR
(
VIDIOC_G_TUNER
)] =
"VIDIOC_G_TUNER"
,
[
_IOC_NR
(
VIDIOC_S_TUNER
)] =
"VIDIOC_S_TUNER"
,
[
_IOC_NR
(
VIDIOC_G_AUDIO
)] =
"VIDIOC_G_AUDIO"
,
[
_IOC_NR
(
VIDIOC_S_AUDIO
)] =
"VIDIOC_S_AUDIO"
,
[
_IOC_NR
(
VIDIOC_QUERYCTRL
)] =
"VIDIOC_QUERYCTRL"
,
[
_IOC_NR
(
VIDIOC_QUERYMENU
)] =
"VIDIOC_QUERYMENU"
,
[
_IOC_NR
(
VIDIOC_G_INPUT
)] =
"VIDIOC_G_INPUT"
,
[
_IOC_NR
(
VIDIOC_S_INPUT
)] =
"VIDIOC_S_INPUT"
,
[
_IOC_NR
(
VIDIOC_G_OUTPUT
)] =
"VIDIOC_G_OUTPUT"
,
[
_IOC_NR
(
VIDIOC_S_OUTPUT
)] =
"VIDIOC_S_OUTPUT"
,
[
_IOC_NR
(
VIDIOC_ENUMOUTPUT
)] =
"VIDIOC_ENUMOUTPUT"
,
[
_IOC_NR
(
VIDIOC_G_AUDOUT
)] =
"VIDIOC_G_AUDOUT"
,
[
_IOC_NR
(
VIDIOC_S_AUDOUT
)] =
"VIDIOC_S_AUDOUT"
,
[
_IOC_NR
(
VIDIOC_G_MODULATOR
)] =
"VIDIOC_G_MODULATOR"
,
[
_IOC_NR
(
VIDIOC_S_MODULATOR
)] =
"VIDIOC_S_MODULATOR"
,
[
_IOC_NR
(
VIDIOC_G_FREQUENCY
)] =
"VIDIOC_G_FREQUENCY"
,
[
_IOC_NR
(
VIDIOC_S_FREQUENCY
)] =
"VIDIOC_S_FREQUENCY"
,
[
_IOC_NR
(
VIDIOC_CROPCAP
)] =
"VIDIOC_CROPCAP"
,
[
_IOC_NR
(
VIDIOC_G_CROP
)] =
"VIDIOC_G_CROP"
,
[
_IOC_NR
(
VIDIOC_S_CROP
)] =
"VIDIOC_S_CROP"
,
[
_IOC_NR
(
VIDIOC_G_JPEGCOMP
)] =
"VIDIOC_G_JPEGCOMP"
,
[
_IOC_NR
(
VIDIOC_S_JPEGCOMP
)] =
"VIDIOC_S_JPEGCOMP"
,
[
_IOC_NR
(
VIDIOC_QUERYSTD
)] =
"VIDIOC_QUERYSTD"
,
[
_IOC_NR
(
VIDIOC_TRY_FMT
)] =
"VIDIOC_TRY_FMT"
,
[
_IOC_NR
(
VIDIOC_ENUMAUDIO
)] =
"VIDIOC_ENUMAUDIO"
,
[
_IOC_NR
(
VIDIOC_ENUMAUDOUT
)] =
"VIDIOC_ENUMAUDOUT"
,
[
_IOC_NR
(
VIDIOC_G_PRIORITY
)] =
"VIDIOC_G_PRIORITY"
,
[
_IOC_NR
(
VIDIOC_S_PRIORITY
)] =
"VIDIOC_S_PRIORITY"
,
#if 1
[
_IOC_NR
(
VIDIOC_G_SLICED_VBI_CAP
)] =
"VIDIOC_G_SLICED_VBI_CAP"
,
#endif
[
_IOC_NR
(
VIDIOC_LOG_STATUS
)] =
"VIDIOC_LOG_STATUS"
,
[
_IOC_NR
(
VIDIOC_G_EXT_CTRLS
)] =
"VIDIOC_G_EXT_CTRLS"
,
[
_IOC_NR
(
VIDIOC_S_EXT_CTRLS
)] =
"VIDIOC_S_EXT_CTRLS"
,
[
_IOC_NR
(
VIDIOC_TRY_EXT_CTRLS
)] =
"VIDIOC_TRY_EXT_CTRLS"
};
#define V4L2_IOCTLS ARRAY_SIZE(v4l2_ioctls)
static const char
*
v4l2_int_ioctls
[] = {
#ifdef CONFIG_VIDEO_V4L1_COMPAT
[
_IOC_NR
(
DECODER_GET_CAPABILITIES
)] =
"DECODER_GET_CAPABILITIES"
,
[
_IOC_NR
(
DECODER_GET_STATUS
)] =
"DECODER_GET_STATUS"
,
[
_IOC_NR
(
DECODER_SET_NORM
)] =
"DECODER_SET_NORM"
,
[
_IOC_NR
(
DECODER_SET_INPUT
)] =
"DECODER_SET_INPUT"
,
[
_IOC_NR
(
DECODER_SET_OUTPUT
)] =
"DECODER_SET_OUTPUT"
,
[
_IOC_NR
(
DECODER_ENABLE_OUTPUT
)] =
"DECODER_ENABLE_OUTPUT"
,
[
_IOC_NR
(
DECODER_SET_PICTURE
)] =
"DECODER_SET_PICTURE"
,
[
_IOC_NR
(
DECODER_SET_GPIO
)] =
"DECODER_SET_GPIO"
,
[
_IOC_NR
(
DECODER_INIT
)] =
"DECODER_INIT"
,
[
_IOC_NR
(
DECODER_SET_VBI_BYPASS
)] =
"DECODER_SET_VBI_BYPASS"
,
[
_IOC_NR
(
DECODER_DUMP
)] =
"DECODER_DUMP"
,
#endif
[
_IOC_NR
(
AUDC_SET_RADIO
)] =
"AUDC_SET_RADIO"
,
[
_IOC_NR
(
TUNER_SET_TYPE_ADDR
)] =
"TUNER_SET_TYPE_ADDR"
,
[
_IOC_NR
(
TUNER_SET_STANDBY
)] =
"TUNER_SET_STANDBY"
,
[
_IOC_NR
(
TDA9887_SET_CONFIG
)] =
"TDA9887_SET_CONFIG"
,
[
_IOC_NR
(
VIDIOC_INT_S_TUNER_MODE
)] =
"VIDIOC_INT_S_TUNER_MODE"
,
[
_IOC_NR
(
VIDIOC_INT_S_REGISTER
)] =
"VIDIOC_INT_S_REGISTER"
,
[
_IOC_NR
(
VIDIOC_INT_G_REGISTER
)] =
"VIDIOC_INT_G_REGISTER"
,
[
_IOC_NR
(
VIDIOC_INT_RESET
)] =
"VIDIOC_INT_RESET"
,
[
_IOC_NR
(
VIDIOC_INT_AUDIO_CLOCK_FREQ
)] =
"VIDIOC_INT_AUDIO_CLOCK_FREQ"
,
[
_IOC_NR
(
VIDIOC_INT_DECODE_VBI_LINE
)] =
"VIDIOC_INT_DECODE_VBI_LINE"
,
[
_IOC_NR
(
VIDIOC_INT_S_VBI_DATA
)] =
"VIDIOC_INT_S_VBI_DATA"
,
[
_IOC_NR
(
VIDIOC_INT_G_VBI_DATA
)] =
"VIDIOC_INT_G_VBI_DATA"
,
[
_IOC_NR
(
VIDIOC_INT_G_CHIP_IDENT
)] =
"VIDIOC_INT_G_CHIP_IDENT"
,
[
_IOC_NR
(
VIDIOC_INT_I2S_CLOCK_FREQ
)] =
"VIDIOC_INT_I2S_CLOCK_FREQ"
,
[
_IOC_NR
(
VIDIOC_INT_S_STANDBY
)] =
"VIDIOC_INT_S_STANDBY"
,
[
_IOC_NR
(
VIDIOC_INT_S_AUDIO_ROUTING
)] =
"VIDIOC_INT_S_AUDIO_ROUTING"
,
[
_IOC_NR
(
VIDIOC_INT_G_AUDIO_ROUTING
)] =
"VIDIOC_INT_G_AUDIO_ROUTING"
,
[
_IOC_NR
(
VIDIOC_INT_S_VIDEO_ROUTING
)] =
"VIDIOC_INT_S_VIDEO_ROUTING"
,
[
_IOC_NR
(
VIDIOC_INT_G_VIDEO_ROUTING
)] =
"VIDIOC_INT_G_VIDEO_ROUTING"
,
[
_IOC_NR
(
VIDIOC_INT_S_CRYSTAL_FREQ
)] =
"VIDIOC_INT_S_CRYSTAL_FREQ"
};
#define V4L2_INT_IOCTLS ARRAY_SIZE(v4l2_int_ioctls)
static void
v4l_print_pix_fmt
(
char
*
s
,
struct
v4l2_pix_format
*
fmt
)
{
printk
(
"%s: width=%d, height=%d, format=%d, field=%s, "
"bytesperline=%d sizeimage=%d, colorspace=%d
\n
"
,
s
,
fmt
->
width
,
fmt
->
height
,
fmt
->
pixelformat
,
prt_names
(
fmt
->
field
,
v4l2_field_names
),
fmt
->
bytesperline
,
fmt
->
sizeimage
,
fmt
->
colorspace
);
};
/* Common ioctl debug function. This function can be used by
external ioctl messages as well as internal V4L ioctl */
void
v4l_printk_ioctl
(
unsigned int
cmd
)
{
char
*
dir
;
switch
(
_IOC_DIR
(
cmd
)) {
case
_IOC_NONE
:
dir
=
"--"
;
break
;
case
_IOC_READ
:
dir
=
"r-"
;
break
;
case
_IOC_WRITE
:
dir
=
"-w"
;
break
;
case
_IOC_READ
|
_IOC_WRITE
:
dir
=
"rw"
;
break
;
default
:
dir
=
"*ERR*"
;
break
;
}
switch
(
_IOC_TYPE
(
cmd
)) {
case
'd'
:
printk
(
"v4l2_int ioctl %s, dir=%s (0x%08x)
\n
"
,
(
_IOC_NR
(
cmd
) <
V4L2_INT_IOCTLS
) ?
v4l2_int_ioctls
[
_IOC_NR
(
cmd
)] :
"UNKNOWN"
,
dir
,
cmd
);
break
;
#ifdef CONFIG_VIDEO_V4L1_COMPAT
case
'v'
:
printk
(
"v4l1 ioctl %s, dir=%s (0x%08x)
\n
"
,
(
_IOC_NR
(
cmd
) <
V4L1_IOCTLS
) ?
v4l1_ioctls
[
_IOC_NR
(
cmd
)] :
"UNKNOWN"
,
dir
,
cmd
);
break
;
#endif
case
'V'
:
printk
(
"v4l2 ioctl %s, dir=%s (0x%08x)
\n
"
,
(
_IOC_NR
(
cmd
) <
V4L2_IOCTLS
) ?
v4l2_ioctls
[
_IOC_NR
(
cmd
)] :
"UNKNOWN"
,
dir
,
cmd
);
break
;
default
:
printk
(
"unknown ioctl '%c', dir=%s, #%d (0x%08x)
\n
"
,
_IOC_TYPE
(
cmd
),
dir
,
_IOC_NR
(
cmd
),
cmd
);
}
}
/* Common ioctl debug function. This function can be used by
external ioctl messages as well as internal V4L ioctl and its
arguments */
void
v4l_printk_ioctl_arg
(
char
*
s
,
unsigned int
cmd
,
void
*
arg
)
{
printk
(
s
);
printk
(
": "
);
v4l_printk_ioctl
(
cmd
);
switch
(
cmd
) {
case
VIDIOC_INT_G_CHIP_IDENT
:
{
enum
v4l2_chip_ident
*
p
=
arg
;
printk
(
"%s: chip ident=%d
\n
"
,
s
, *
p
);
break
;
}
case
VIDIOC_G_PRIORITY
:
case
VIDIOC_S_PRIORITY
:
{
enum
v4l2_priority
*
p
=
arg
;
printk
(
"%s: priority=%d
\n
"
,
s
, *
p
);
break
;
}
case
VIDIOC_INT_S_TUNER_MODE
:
{
enum
v4l2_tuner_type
*
p
=
arg
;
printk
(
"%s: tuner type=%d
\n
"
,
s
, *
p
);
break
;
}
#ifdef CONFIG_VIDEO_V4L1_COMPAT
case
DECODER_SET_VBI_BYPASS
:
case
DECODER_ENABLE_OUTPUT
:
case
DECODER_GET_STATUS
:
case
DECODER_SET_OUTPUT
:
case
DECODER_SET_INPUT
:
case
DECODER_SET_GPIO
:
case
DECODER_SET_NORM
:
case
VIDIOCCAPTURE
:
case
VIDIOCSYNC
:
case
VIDIOCSWRITEMODE
:
#endif
case
TUNER_SET_TYPE_ADDR
:
case
TUNER_SET_STANDBY
:
case
TDA9887_SET_CONFIG
:
#ifdef __OLD_VIDIOC_
case
VIDIOC_OVERLAY_OLD
:
#endif
case
VIDIOC_STREAMOFF
:
case
VIDIOC_G_OUTPUT
:
case
VIDIOC_S_OUTPUT
:
case
VIDIOC_STREAMON
:
case
VIDIOC_G_INPUT
:
case
VIDIOC_OVERLAY
:
case
VIDIOC_S_INPUT
:
{
int
*
p
=
arg
;
printk
(
"%s: value=%d
\n
"
,
s
, *
p
);
break
;
}
case
VIDIOC_G_AUDIO
:
case
VIDIOC_S_AUDIO
:
case
VIDIOC_ENUMAUDIO
:
#ifdef __OLD_VIDIOC_
case
VIDIOC_G_AUDIO_OLD
:
#endif
{
struct
v4l2_audio
*
p
=
arg
;