OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rtems-20020807/] [cpukit/] [libcsupport/] [src/] [ioctl.c] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1026 ivang
/*
2
 *  ioctl() system call
3
 *
4
 *  This routine is not defined in the POSIX 1003.1b standard but is
5
 *  commonly supported on most UNIX and POSIX systems.
6
 *
7
 *  COPYRIGHT (c) 1989-1999.
8
 *  On-Line Applications Research Corporation (OAR).
9
 *
10
 *  The license and distribution terms for this file may be
11
 *  found in the file LICENSE in this distribution or at
12
 *  http://www.OARcorp.com/rtems/license.html.
13
 *
14
 *  ioctl.c,v 1.11 2002/01/04 18:29:36 joel Exp
15
 */
16
 
17
#if HAVE_CONFIG_H
18
#include "config.h"
19
#endif
20
 
21
#include <stdarg.h>
22
 
23
#include <rtems/libio_.h>
24
#include <rtems/seterr.h>
25
 
26
#include <unistd.h>
27
 
28
int ioctl(
29
  int  fd,
30
  int  command,
31
  ...
32
)
33
{
34
  va_list            ap;
35
  rtems_status_code  rc;
36
  rtems_libio_t     *iop;
37
  void              *buffer;
38
 
39
  rtems_libio_check_fd( fd );
40
  iop = rtems_libio_iop( fd );
41
  rtems_libio_check_is_open(iop);
42
 
43
  va_start(ap, command);
44
 
45
  buffer = va_arg(ap, void *);
46
 
47
  /*
48
   *  Now process the ioctl().
49
   */
50
 
51
  if ( !iop->handlers )
52
    rtems_set_errno_and_return_minus_one( EBADF );
53
 
54
  if ( !iop->handlers->ioctl_h )
55
    rtems_set_errno_and_return_minus_one( ENOTSUP );
56
 
57
  rc = (*iop->handlers->ioctl_h)( iop, command, buffer );
58
 
59
  return rc;
60
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.