//***************************************************************************
// include/cxx/cunistd
//
//   Copyright (C) 2012, 2017 Gregory Nutt. All rights reserved.
//   Author: Gregory Nutt <gnutt@nuttx.org>
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
//
// 1. Redistributions of source code must retain the above copyright
//    notice, this list of conditions and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright
//    notice, this list of conditions and the following disclaimer in
//    the documentation and/or other materials provided with the
//    distribution.
// 3. Neither the name NuttX nor the names of its contributors may be
//    used to endorse or promote products derived from this software
//    without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
// AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//
//***************************************************************************

#ifndef __INCLUDE_CXX_CUNISTD
#define __INCLUDE_CXX_CUNISTD

//***************************************************************************
// Included Files
//***************************************************************************

#include <unistd.h>

//***************************************************************************
// Namespace
//***************************************************************************

namespace std
{
  // Task control interfaces

  using ::vfork;
  using ::getpid;
  using ::_exit;
  using ::sleep;
  using ::usleep;
  using ::pause;

  // File descriptor operations

  using ::close;
  using ::dup;
  using ::dup2;
  using ::fsync;
  using ::lseek;
  using ::read;
  using ::write;
  using ::pread;
  using ::pwrite;

  // Terminal I/O

  using ::isatty;

  // Memory management

#if defined(CONFIG_ARCH_ADDRENV) && defined(CONFIG_MM_PGALLOC) && \
    defined(CONFIG_ARCH_USE_MMU)
  using sbrk;
#endif

  // Special devices

  using ::pipe;

  // Operations on working directories

  using ::chdir;
  using ::getcwd;

  // Operations on file paths

  using ::access;
  using ::rmdir;
  using ::unlink;
#ifdef CONFIG_PSEUDOFS_SOFTLINKS
  using ::link;
  using ::readlink;
#endif

  // Execution of program files

#ifdef CONFIG_LIBC_EXECFUNCS
  using ::execl;
  using ::execv;
#endif

  // Byte operations

  using ::swab;

  // getopt and friends

  using ::getopt;

  // Non-standard accessor functions

  using ::getoptargp;
  using ::getoptindp;
  using ::getoptoptp;

  // Networking

#ifdef CONFIG_NET
  using ::gethostname;
  using ::sethostname;
#endif
}

#endif // __INCLUDE_CXX_CUNISTD