//***************************************************************************
// include/cxx/cunistd
//
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements.  See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.  The
// ASF licenses this file to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance with the
// License.  You may obtain a copy of the License at
//
//   http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
// License for the specific language governing permissions and limitations
// under the License.
//
//***************************************************************************

#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

#ifdef CONFIG_SERIAL_TERMIOS
  using ::isatty;
#endif

  // 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;
  using ::symlink;
  using ::readlink;

  // 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

  using ::gethostname;
  using ::sethostname;
}

#endif // __INCLUDE_CXX_CUNISTD