[PATCH 33/56] microblaze_v2: ioctl support

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: monstr
Date: Sunday, May 4, 2008 - 4:41 am

From: Michal Simek <monstr@monstr.eu>


Signed-off-by: Michal Simek <monstr@monstr.eu>
---
 include/asm-microblaze/ioctl.h  |   84 +++++++++++++++++++++++++++++++++++
 include/asm-microblaze/ioctls.h |   93 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 177 insertions(+), 0 deletions(-)
 create mode 100644 include/asm-microblaze/ioctl.h
 create mode 100644 include/asm-microblaze/ioctls.h

diff --git a/include/asm-microblaze/ioctl.h b/include/asm-microblaze/ioctl.h
new file mode 100644
index 0000000..7cfaaea
--- /dev/null
+++ b/include/asm-microblaze/ioctl.h
@@ -0,0 +1,84 @@
+/*
+ * include/asm-microblaze/ioctl.h
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 2006 Atmark Techno, Inc.
+ */
+
+#ifndef _ASM_MICROBLAZE_IOCTL_H
+#define _ASM_MICROBLAZE_IOCTL_H
+
+/*
+ * this was copied from the alpha as it's a bit cleaner there.
+ * -- Cort
+ */
+
+#define _IOC_NRBITS	8
+#define _IOC_TYPEBITS	8
+#define _IOC_SIZEBITS	13
+#define _IOC_DIRBITS	3
+
+#define _IOC_NRMASK	((1 << _IOC_NRBITS)-1)
+#define _IOC_TYPEMASK	((1 << _IOC_TYPEBITS)-1)
+#define _IOC_SIZEMASK	((1 << _IOC_SIZEBITS)-1)
+#define _IOC_DIRMASK	((1 << _IOC_DIRBITS)-1)
+
+#define _IOC_NRSHIFT	0
+#define _IOC_TYPESHIFT	(_IOC_NRSHIFT+_IOC_NRBITS)
+#define _IOC_SIZESHIFT	(_IOC_TYPESHIFT+_IOC_TYPEBITS)
+#define _IOC_DIRSHIFT	(_IOC_SIZESHIFT+_IOC_SIZEBITS)
+
+/*
+ * Direction bits _IOC_NONE could be 0, but OSF/1 gives it a bit.
+ * And this turns out useful to catch old ioctl numbers in header
+ * files for us.
+ */
+#define _IOC_NONE	1U
+#define _IOC_READ	2U
+#define _IOC_WRITE	4U
+
+#define _IOC(dir, type, nr, size) \
+	(((dir) << _IOC_DIRSHIFT) | \
+	((type) << _IOC_TYPESHIFT) | \
+	((nr) << _IOC_NRSHIFT) | \
+	((size) << _IOC_SIZESHIFT))
+
+/* provoke compile error for invalid uses of size argument */
+extern unsigned int __invalid_size_argument_for_IOC;
+#define _IOC_TYPECHECK(t) \
+	((sizeof(t) == sizeof(t[1]) && \
+	sizeof(t) < (1 << _IOC_SIZEBITS)) ? \
+	sizeof(t) : __invalid_size_argument_for_IOC)
+
+/* used to create numbers */
+#define _IO(type, nr)		_IOC(_IOC_NONE, (type), (nr), 0)
+#define _IOR(type, nr, size) \
+			_IOC(_IOC_READ, (type), (nr), (_IOC_TYPECHECK(size)))
+#define _IOW(type, nr, size) \
+			_IOC(_IOC_WRITE, (type), (nr), (_IOC_TYPECHECK(size)))
+#define _IOWR(type, nr, size) \
+		_IOC(_IOC_READ|_IOC_WRITE, (type), (nr), (_IOC_TYPECHECK(size)))
+#define _IOR_BAD(type, nr, size) \
+			_IOC(_IOC_READ, (type), (nr), sizeof(size))
+#define _IOW_BAD(type, nr, size) \
+			_IOC(_IOC_WRITE, (type), (nr), sizeof(size))
+#define _IOWR_BAD(type, nr, size) \
+			_IOC(_IOC_READ|_IOC_WRITE, (type), (nr), sizeof(size))
+
+/* used to decode them.. */
+#define _IOC_DIR(nr)		(((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK)
+#define _IOC_TYPE(nr)		(((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK)
+#define _IOC_NR(nr)		(((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK)
+#define _IOC_SIZE(nr)		(((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK)
+
+/* various drivers, such as the pcmcia stuff, need these... */
+#define IOC_IN		(_IOC_WRITE << _IOC_DIRSHIFT)
+#define IOC_OUT		(_IOC_READ << _IOC_DIRSHIFT)
+#define IOC_INOUT	((_IOC_WRITE|_IOC_READ) << _IOC_DIRSHIFT)
+#define IOCSIZE_MASK	(_IOC_SIZEMASK << _IOC_SIZESHIFT)
+#define IOCSIZE_SHIFT	(_IOC_SIZESHIFT)
+
+#endif /* _ASM_MICROBLAZE_IOCTL_H */
diff --git a/include/asm-microblaze/ioctls.h b/include/asm-microblaze/ioctls.h
new file mode 100644
index 0000000..4bc5fd4
--- /dev/null
+++ b/include/asm-microblaze/ioctls.h
@@ -0,0 +1,93 @@
+/*
+ * include/asm-microblaze/ioctls.h
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 2006 Atmark Techno, Inc.
+ */
+
+#ifndef _ASM_MICROBLAZE_IOCTLS_H
+#define _ASM_MICROBLAZE_IOCTLS_H
+
+#include <asm/ioctl.h>
+
+/* 0x54 is just a magic number to make these relatively unique ('T') */
+
+#define TCGETS		0x5401
+#define TCSETS		0x5402
+#define TCSETSW		0x5403
+#define TCSETSF		0x5404
+#define TCGETA		0x5405
+#define TCSETA		0x5406
+#define TCSETAW		0x5407
+#define TCSETAF		0x5408
+#define TCSBRK		0x5409
+#define TCXONC		0x540A
+#define TCFLSH		0x540B
+#define TIOCEXCL	0x540C
+#define TIOCNXCL	0x540D
+#define TIOCSCTTY	0x540E
+#define TIOCGPGRP	0x540F
+#define TIOCSPGRP	0x5410
+#define TIOCOUTQ	0x5411
+#define TIOCSTI		0x5412
+#define TIOCGWINSZ	0x5413
+#define TIOCSWINSZ	0x5414
+#define TIOCMGET	0x5415
+#define TIOCMBIS	0x5416
+#define TIOCMBIC	0x5417
+#define TIOCMSET	0x5418
+#define TIOCGSOFTCAR	0x5419
+#define TIOCSSOFTCAR	0x541A
+#define FIONREAD	0x541B
+#define TIOCINQ		FIONREAD
+#define TIOCLINUX	0x541C
+#define TIOCCONS	0x541D
+#define TIOCGSERIAL	0x541E
+#define TIOCSSERIAL	0x541F
+#define TIOCPKT		0x5420
+#define FIONBIO		0x5421
+#define TIOCNOTTY	0x5422
+#define TIOCSETD	0x5423
+#define TIOCGETD	0x5424
+#define TCSBRKP		0x5425 /* Needed for POSIX tcsendbreak() */
+#define TIOCTTYGSTRUCT	0x5426 /* For debugging only */
+#define TIOCSBRK	0x5427 /* BSD compatibility */
+#define TIOCCBRK	0x5428 /* BSD compatibility */
+#define TIOCGSID	0x5429 /* Return the session ID of FD */
+/* Get Pty Number (of pty-mux device) */
+#define TIOCGPTN	_IOR('T', 0x30, unsigned int)
+#define TIOCSPTLCK	_IOW('T', 0x31, int) /* Lock/unlock Pty */
+
+#define FIONCLEX	0x5450 /* these numbers need to be adjusted. */
+#define FIOCLEX		0x5451
+#define FIOASYNC	0x5452
+#define TIOCSERCONFIG	0x5453
+#define TIOCSERGWILD	0x5454
+#define TIOCSERSWILD	0x5455
+#define TIOCGLCKTRMIOS	0x5456
+#define TIOCSLCKTRMIOS	0x5457
+#define TIOCSERGSTRUCT	0x5458 /* For debugging only */
+#define TIOCSERGETLSR	0x5459 /* Get line status register */
+#define TIOCSERGETMULTI 0x545A /* Get multiport config */
+#define TIOCSERSETMULTI 0x545B /* Set multiport config */
+
+#define TIOCMIWAIT	0x545C /* wait for a change on serial input line(s) */
+#define TIOCGICOUNT	0x545D /* read serial port inline interrupt counts */
+
+#define	FIOQSIZE	0x545E
+
+/* Used for packet mode */
+#define TIOCPKT_DATA		0
+#define TIOCPKT_FLUSHREAD	1
+#define TIOCPKT_FLUSHWRITE	2
+#define TIOCPKT_STOP		4
+#define TIOCPKT_START		8
+#define TIOCPKT_NOSTOP		16
+#define TIOCPKT_DOSTOP		32
+
+#define TIOCSER_TEMT	0x01 /* Transmitter physically empty */
+
+#endif /* _ASM_MICROBLAZE_IOCTLS_H */
-- 
1.5.4.GIT

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Microblaze patches V2, monstr, (Sun May 4, 4:40 am)
[PATCH 01/56] microblaze_v2: Kconfig patches, monstr, (Sun May 4, 4:40 am)
[PATCH 03/56] microblaze_v2: Cpuinfo handling, monstr, (Sun May 4, 4:40 am)
[PATCH 07/56] microblaze_v2: Signal support, monstr, (Sun May 4, 4:40 am)
[PATCH 09/56] microblaze_v2: cache support, monstr, (Sun May 4, 4:40 am)
[PATCH 12/56] microblaze_v2: lmb support, monstr, (Sun May 4, 4:41 am)
[PATCH 14/56] microblaze_v2: defconfig file, monstr, (Sun May 4, 4:41 am)
[PATCH 17/56] microblaze_v2: checksum support, monstr, (Sun May 4, 4:41 am)
[PATCH 19/56] microblaze_v2: uaccess files, monstr, (Sun May 4, 4:41 am)
[PATCH 20/56] microblaze_v2: heartbeat file, monstr, (Sun May 4, 4:41 am)
[PATCH 22/56] microblaze_v2: asm-offsets, monstr, (Sun May 4, 4:41 am)
[PATCH 24/56] microblaze_v2: time support, monstr, (Sun May 4, 4:41 am)
[PATCH 25/56] microblaze_v2: ptrace support, monstr, (Sun May 4, 4:41 am)
[PATCH 26/56] microblaze_v2: traps support, monstr, (Sun May 4, 4:41 am)
[PATCH 33/56] microblaze_v2: ioctl support, monstr, (Sun May 4, 4:41 am)
[PATCH 36/56] microblaze_v2: dma support, monstr, (Sun May 4, 4:41 am)
[PATCH 37/56] microblaze_v2: headers for irq, monstr, (Sun May 4, 4:41 am)
[PATCH 42/56] microblaze_v2: stats headers, monstr, (Sun May 4, 4:41 am)
[PATCH 48/56] microblaze_v2: pool.h socket.h, monstr, (Sun May 4, 4:41 am)
[PATCH 51/56] microblaze_v2: Kbuild file, monstr, (Sun May 4, 4:41 am)
[PATCH 52/56] microblaze_v2: pci headers, monstr, (Sun May 4, 4:41 am)
[PATCH 53/56] microblaze_v2: IPC headers, monstr, (Sun May 4, 4:41 am)
[PATCH 54/56] microblaze_v2: entry.S, monstr, (Sun May 4, 4:41 am)
[PATCH 55/56] microblaze_v2: sys_microblaze.c, monstr, (Sun May 4, 4:41 am)
Re: [PATCH 07/56] microblaze_v2: Signal support, Arnd Bergmann, (Sun May 4, 12:52 pm)
Re: [PATCH 17/56] microblaze_v2: checksum support, Arnd Bergmann, (Sun May 4, 12:59 pm)
Re: [PATCH 30/56] microblaze_v2: includes SHM*, msgbuf, Arnd Bergmann, (Sun May 4, 2:10 pm)
Re: [PATCH 01/56] microblaze_v2: Kconfig patches, Grant Likely, (Sun May 4, 2:24 pm)
Re: [PATCH 32/56] microblaze_v2: definitions of types, Arnd Bergmann, (Sun May 4, 2:28 pm)
Re: [PATCH 33/56] microblaze_v2: ioctl support, Arnd Bergmann, (Sun May 4, 2:34 pm)
Re: [PATCH 42/56] microblaze_v2: stats headers, Arnd Bergmann, (Sun May 4, 3:31 pm)
Re: [PATCH 48/56] microblaze_v2: pool.h socket.h, Arnd Bergmann, (Sun May 4, 3:39 pm)
Re: [PATCH 52/56] microblaze_v2: pci headers, Arnd Bergmann, (Sun May 4, 3:45 pm)
Re: [PATCH 01/56] microblaze_v2: Kconfig patches, John Williams, (Sun May 4, 6:42 pm)
Re: [PATCH 03/56] microblaze_v2: Cpuinfo handling, John Williams, (Sun May 4, 6:52 pm)
Re: [PATCH 09/56] microblaze_v2: cache support, John Williams, (Sun May 4, 7:09 pm)
Re: [PATCH 12/56] microblaze_v2: lmb support, John Williams, (Sun May 4, 7:11 pm)
Re: [PATCH 24/56] microblaze_v2: time support, John Williams, (Sun May 4, 7:19 pm)
Re: [PATCH 36/56] microblaze_v2: dma support, John Williams, (Sun May 4, 7:25 pm)
Re: Microblaze patches V2, John Williams, (Sun May 4, 7:30 pm)
Re: [PATCH 01/56] microblaze_v2: Kconfig patches, Michal Simek, (Sun May 4, 11:36 pm)
Re: [PATCH 36/56] microblaze_v2: dma support, Geert Uytterhoeven, (Sun May 4, 11:45 pm)
Re: [PATCH 01/56] microblaze_v2: Kconfig patches, Michal Simek, (Sun May 4, 11:46 pm)
Re: Microblaze patches V2, Michal Simek, (Mon May 5, 12:02 am)
Re: [PATCH 43/56] microblaze_v2: termbits.h termios.h, Arnd Bergmann, (Mon May 5, 2:50 am)
Re: [PATCH 17/56] microblaze_v2: checksum support, Michal Simek, (Mon May 5, 7:05 am)
Re: [PATCH 33/56] microblaze_v2: ioctl support, Michal Simek, (Mon May 5, 7:06 am)
Re: [PATCH 52/56] microblaze_v2: pci headers, Michal Simek, (Mon May 5, 7:08 am)
Re: [PATCH 01/56] microblaze_v2: Kconfig patches, Michal Simek, (Mon May 5, 7:16 am)
Re: [PATCH 03/56] microblaze_v2: Cpuinfo handling, Michal Simek, (Mon May 5, 7:19 am)
Re: [PATCH 24/56] microblaze_v2: time support, Michal Simek, (Mon May 5, 7:22 am)
Re: [PATCH 04/56] microblaze_v2: Open firmware files, Grant Likely, (Mon May 5, 7:24 am)
Re: [PATCH 18/56] microblaze_v2: early_printk support, Grant Likely, (Mon May 5, 7:36 am)
RE: [PATCH 10/56] microblaze_v2: Generic dts file for plat ..., Stephen Neuendorffer, (Mon May 5, 10:25 am)
RE: [microblaze-uclinux] [PATCH 09/56] microblaze_v2: cach ..., Stephen Neuendorffer, (Mon May 5, 10:37 am)
Re: [PATCH 18/56] microblaze_v2: early_printk support, Michal Simek, (Mon May 5, 1:10 pm)
Re: [PATCH 12/56] microblaze_v2: lmb support, Segher Boessenkool, (Mon May 5, 2:32 pm)
RE: [PATCH 07/56] microblaze_v2: Signal support, Stephen Neuendorffer, (Mon May 5, 2:32 pm)
RE: [PATCH 04/56] microblaze_v2: Open firmware files, Stephen Neuendorffer, (Mon May 5, 2:56 pm)
RE: [PATCH 09/56] microblaze_v2: cache support, Stephen Neuendorffer, (Mon May 5, 3:37 pm)
Re: [PATCH 18/56] microblaze_v2: early_printk support, John Williams, (Mon May 5, 4:22 pm)
RE: [PATCH 10/56] microblaze_v2: Generic dts file for plat ..., Stephen Neuendorffer, (Mon May 5, 4:32 pm)
RE: [PATCH 07/56] microblaze_v2: Signal support, John Williams, (Mon May 5, 4:33 pm)
RE: [PATCH 07/56] microblaze_v2: Signal support, Stephen Neuendorffer, (Mon May 5, 5:13 pm)
RE: [PATCH 10/56] microblaze_v2: Generic dts file for plat ..., Stephen Neuendorffer, (Mon May 5, 5:17 pm)
RE: [PATCH 07/56] microblaze_v2: Signal support, John Williams, (Mon May 5, 5:25 pm)
Re: [PATCH 24/56] microblaze_v2: time support, John Williams, (Mon May 5, 5:30 pm)
RE: [PATCH 07/56] microblaze_v2: Signal support, Stephen Neuendorffer, (Mon May 5, 5:33 pm)
Re: [PATCH 04/56] microblaze_v2: Open firmware files, Michal Simek, (Tue May 6, 12:27 am)
Re: [PATCH 18/56] microblaze_v2: early_printk support, Michal Simek, (Tue May 6, 1:14 am)
Re: [PATCH 36/56] microblaze_v2: dma support, Michal Simek, (Tue May 6, 2:16 am)
Re: [PATCH 07/56] microblaze_v2: Signal support, Michal Simek, (Tue May 6, 2:41 am)
Re: [PATCH 36/56] microblaze_v2: dma support, Geert Uytterhoeven, (Tue May 6, 2:48 am)
Re: [PATCH 36/56] microblaze_v2: dma support, Michal Simek, (Tue May 6, 2:53 am)
Re: [PATCH 24/56] microblaze_v2: time support, Michal Simek, (Tue May 6, 2:56 am)
Re: [PATCH 24/56] microblaze_v2: time support, Michal Simek, (Tue May 6, 3:02 am)
Re: [PATCH 36/56] microblaze_v2: dma support, Geert Uytterhoeven, (Tue May 6, 4:17 am)
Re: [PATCH 36/56] microblaze_v2: dma support, Arnd Bergmann, (Tue May 6, 4:24 am)
Re: [PATCH 24/56] microblaze_v2: time support, Arnd Bergmann, (Tue May 6, 4:38 am)
Re: [PATCH 36/56] microblaze_v2: dma support, Michal Simek, (Tue May 6, 6:20 am)
Re: [PATCH 24/56] microblaze_v2: time support, Michal Simek, (Tue May 6, 6:26 am)
Re: [PATCH 24/56] microblaze_v2: time support, Grant Likely, (Tue May 6, 7:28 am)
Re: [PATCH 36/56] microblaze_v2: dma support, Arnd Bergmann, (Tue May 6, 8:36 am)
RE: [PATCH 24/56] microblaze_v2: time support, Stephen Neuendorffer, (Tue May 6, 9:36 am)
Re: [PATCH 46/56] microblaze_v2: headers files entry.h cur ..., Geert Uytterhoeven, (Tue May 6, 1:57 pm)
Re: [PATCH 24/56] microblaze_v2: time support, John Williams, (Tue May 6, 3:50 pm)
Re: [PATCH 36/56] microblaze_v2: dma support, Michal Simek, (Tue May 6, 11:24 pm)
Re: [PATCH 36/56] microblaze_v2: dma support, Geert Uytterhoeven, (Wed May 7, 12:17 am)
Re: [PATCH 24/56] microblaze_v2: time support, Thomas Gleixner, (Wed May 7, 12:22 am)
Re: [PATCH 37/56] microblaze_v2: headers for irq, Thomas Gleixner, (Wed May 7, 12:26 am)
Re: [PATCH 36/56] microblaze_v2: dma support, Arnd Bergmann, (Wed May 7, 2:21 am)
RE: [microblaze-uclinux] [PATCH 04/56] microblaze_v2: Open ..., Stephen Neuendorffer, (Wed May 7, 9:04 am)
Re: [PATCH 36/56] microblaze_v2: dma support, Michal Simek, (Wed May 7, 11:43 am)
RE: [microblaze-uclinux] [PATCH 04/56] microblaze_v2: Open ..., Stephen Neuendorffer, (Wed May 7, 1:14 pm)
Re: [PATCH 37/56] microblaze_v2: headers for irq, Michal Simek, (Sun May 11, 6:56 am)