Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
0002 /*
0003  * Intel Multimedia Timer device interface
0004  *
0005  * This file is subject to the terms and conditions of the GNU General Public
0006  * License.  See the file "COPYING" in the main directory of this archive
0007  * for more details.
0008  *
0009  * Copyright (c) 2001-2004 Silicon Graphics, Inc.  All rights reserved.
0010  *
0011  * This file should define an interface compatible with the IA-PC Multimedia
0012  * Timers Draft Specification (rev. 0.97) from Intel.  Note that some
0013  * hardware may not be able to safely export its registers to userspace,
0014  * so the ioctl interface should support all necessary functionality.
0015  *
0016  * 11/01/01 - jbarnes - initial revision
0017  * 9/10/04 - Christoph Lameter - remove interrupt support
0018  * 9/17/04 - jbarnes - remove test program, move some #defines to the driver
0019  */
0020 
0021 #ifndef _LINUX_MMTIMER_H
0022 #define _LINUX_MMTIMER_H
0023 
0024 /*
0025  * Breakdown of the ioctl's available.  An 'optional' next to the command
0026  * indicates that supporting this command is optional, while 'required'
0027  * commands must be implemented if conformance is desired.
0028  *
0029  * MMTIMER_GETOFFSET - optional
0030  *   Should return the offset (relative to the start of the page where the
0031  *   registers are mapped) for the counter in question.
0032  *
0033  * MMTIMER_GETRES - required
0034  *   The resolution of the clock in femto (10^-15) seconds
0035  *
0036  * MMTIMER_GETFREQ - required
0037  *   Frequency of the clock in Hz
0038  *
0039  * MMTIMER_GETBITS - required
0040  *   Number of bits in the clock's counter
0041  *
0042  * MMTIMER_MMAPAVAIL - required
0043  *   Returns nonzero if the registers can be mmap'd into userspace, 0 otherwise
0044  *
0045  * MMTIMER_GETCOUNTER - required
0046  *   Gets the current value in the counter
0047  */
0048 #define MMTIMER_IOCTL_BASE 'm'
0049 
0050 #define MMTIMER_GETOFFSET _IO(MMTIMER_IOCTL_BASE, 0)
0051 #define MMTIMER_GETRES _IOR(MMTIMER_IOCTL_BASE, 1, unsigned long)
0052 #define MMTIMER_GETFREQ _IOR(MMTIMER_IOCTL_BASE, 2, unsigned long)
0053 #define MMTIMER_GETBITS _IO(MMTIMER_IOCTL_BASE, 4)
0054 #define MMTIMER_MMAPAVAIL _IO(MMTIMER_IOCTL_BASE, 6)
0055 #define MMTIMER_GETCOUNTER _IOR(MMTIMER_IOCTL_BASE, 9, unsigned long)
0056 
0057 #endif /* _LINUX_MMTIMER_H */