blob: a9bd8ee60dc6c77f4e72d29b157f7b31a7bf3df8 [file]
// Copyright 2026 The IREE Authors
//
// Licensed under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// <unistd.h> for wasm32 (minimal — no filesystem, no process control).
#ifndef IREE_WASM_LIBC_UNISTD_H_
#define IREE_WASM_LIBC_UNISTD_H_
#include <stddef.h>
#include <stdint.h>
typedef int32_t ssize_t;
typedef int32_t off_t;
typedef uint32_t useconds_t;
// Standard file descriptors.
#define STDIN_FILENO 0
#define STDOUT_FILENO 1
#define STDERR_FILENO 2
// File operations (stubs — no real filesystem on wasm32 freestanding).
ssize_t read(int fd, void* buffer, size_t count);
ssize_t write(int fd, const void* buffer, size_t count);
int close(int fd);
off_t lseek(int fd, off_t offset, int whence);
int dup(int fd);
int dup2(int oldfd, int newfd);
int ftruncate(int fd, off_t length);
ssize_t pread(int fd, void* buffer, size_t count, off_t offset);
ssize_t pwrite(int fd, const void* buffer, size_t count, off_t offset);
int fsync(int fd);
int unlink(const char* pathname);
int isatty(int fd);
int usleep(useconds_t usec);
unsigned int sleep(unsigned int seconds);
int pipe(int pipefd[2]);
// Seek whence values.
#define SEEK_SET 0
#define SEEK_CUR 1
#define SEEK_END 2
#endif // IREE_WASM_LIBC_UNISTD_H_