lkml.org 
[lkml]   [2008]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 35/52] [microblaze] ioctl support
    Date
    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..c65a664
    --- /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 _MICROBLAZE_IOCTL_H
    +#define _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 /* _MICROBLAZE_IOCTL_H */
    diff --git a/include/asm-microblaze/ioctls.h b/include/asm-microblaze/ioctls.h
    new file mode 100644
    index 0000000..2ea08e0
    --- /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_IOCTLS_H
    +#define _ASM_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_IOCTLS_H */
    --
    1.5.4.rc4.14.g6fc74


    \
     
     \ /
      Last update: 2008-01-26 17:05    [W:0.032 / U:0.756 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site