// Copyright 2016 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef SYSROOT_ZIRCON_ERRORS_H_
#define SYSROOT_ZIRCON_ERRORS_H_

// ZX_OK: Indicates an operation was successful.
#define ZX_OK (0)

// ======= Internal failures =======
// ZX_ERR_INTERNAL: The system encountered an otherwise unspecified error
// while performing the operation.
#define ZX_ERR_INTERNAL (-1)

// ZX_ERR_NOT_SUPPORTED: The operation is not implemented, supported,
// or enabled.
#define ZX_ERR_NOT_SUPPORTED (-2)

// ZX_ERR_NO_RESOURCES: The system was not able to allocate some resource
// needed for the operation.
#define ZX_ERR_NO_RESOURCES (-3)

// ZX_ERR_NO_MEMORY: The system was not able to allocate memory needed
// for the operation.
#define ZX_ERR_NO_MEMORY (-4)

// -5 used to be ZX_ERR_CALL_FAILED.

// ZX_ERR_INTERNAL_INTR_RETRY: The system call was interrupted, but should be
// retried.  This should not be seen outside of the VDSO.
#define ZX_ERR_INTERNAL_INTR_RETRY (-6)

// ======= Parameter errors =======
// ZX_ERR_INVALID_ARGS: an argument is invalid, ex. null pointer
#define ZX_ERR_INVALID_ARGS (-10)

// ZX_ERR_BAD_HANDLE: A specified handle value does not refer to a handle.
#define ZX_ERR_BAD_HANDLE (-11)

// ZX_ERR_WRONG_TYPE: The subject of the operation is the wrong type to
// perform the operation.
// Example: Attempting a message_read on a thread handle.
#define ZX_ERR_WRONG_TYPE (-12)

// ZX_ERR_BAD_SYSCALL: The specified syscall number is invalid.
#define ZX_ERR_BAD_SYSCALL (-13)

// ZX_ERR_OUT_OF_RANGE: An argument is outside the valid range for this
// operation.
#define ZX_ERR_OUT_OF_RANGE (-14)

// ZX_ERR_BUFFER_TOO_SMALL: A caller provided buffer is too small for
// this operation.
#define ZX_ERR_BUFFER_TOO_SMALL (-15)

// ======= Precondition or state errors =======
// ZX_ERR_BAD_STATE: operation failed because the current state of the
// object does not allow it, or a precondition of the operation is
// not satisfied
#define ZX_ERR_BAD_STATE (-20)

// ZX_ERR_TIMED_OUT: The time limit for the operation elapsed before
// the operation completed.
#define ZX_ERR_TIMED_OUT (-21)

// ZX_ERR_SHOULD_WAIT: The operation cannot be performed currently but
// potentially could succeed if the caller waits for a prerequisite
// to be satisfied, for example waiting for a handle to be readable
// or writable.
// Example: Attempting to read from a channel that has no
// messages waiting but has an open remote will return ZX_ERR_SHOULD_WAIT.
// Attempting to read from a channel that has no messages waiting
// and has a closed remote end will return ZX_ERR_PEER_CLOSED.
#define ZX_ERR_SHOULD_WAIT (-22)

// ZX_ERR_CANCELED: The in-progress operation (e.g. a wait) has been
// canceled.
#define ZX_ERR_CANCELED (-23)

// ZX_ERR_PEER_CLOSED: The operation failed because the remote end of the
// subject of the operation was closed.
#define ZX_ERR_PEER_CLOSED (-24)

// ZX_ERR_NOT_FOUND: The requested entity is not found.
#define ZX_ERR_NOT_FOUND (-25)

// ZX_ERR_ALREADY_EXISTS: An object with the specified identifier
// already exists.
// Example: Attempting to create a file when a file already exists
// with that name.
#define ZX_ERR_ALREADY_EXISTS (-26)

// ZX_ERR_ALREADY_BOUND: The operation failed because the named entity
// is already owned or controlled by another entity. The operation
// could succeed later if the current owner releases the entity.
#define ZX_ERR_ALREADY_BOUND (-27)

// ZX_ERR_UNAVAILABLE: The subject of the operation is currently unable
// to perform the operation.
// Note: This is used when there's no direct way for the caller to
// observe when the subject will be able to perform the operation
// and should thus retry.
#define ZX_ERR_UNAVAILABLE (-28)

// ======= Permission check errors =======
// ZX_ERR_ACCESS_DENIED: The caller did not have permission to perform
// the specified operation.
#define ZX_ERR_ACCESS_DENIED (-30)

// ======= Input-output errors =======
// ZX_ERR_IO: Otherwise unspecified error occurred during I/O.
#define ZX_ERR_IO (-40)

// ZX_ERR_REFUSED: The entity the I/O operation is being performed on
// rejected the operation.
// Example: an I2C device NAK'ing a transaction or a disk controller
// rejecting an invalid command, or a stalled USB endpoint.
#define ZX_ERR_IO_REFUSED (-41)

// ZX_ERR_IO_DATA_INTEGRITY: The data in the operation failed an integrity
// check and is possibly corrupted.
// Example: CRC or Parity error.
#define ZX_ERR_IO_DATA_INTEGRITY (-42)

// ZX_ERR_IO_DATA_LOSS: The data in the operation is currently unavailable
// and may be permanently lost.
// Example: A disk block is irrecoverably damaged.
#define ZX_ERR_IO_DATA_LOSS (-43)

// ZX_ERR_IO_NOT_PRESENT: The device is no longer available (has been
// unplugged from the system, powered down, or the driver has been
// unloaded)
#define ZX_ERR_IO_NOT_PRESENT (-44)

// ZX_ERR_IO_OVERRUN: More data was received from the device than expected.
// Example: a USB "babble" error due to a device sending more data than
// the host queued to receive.
#define ZX_ERR_IO_OVERRUN (-45)

// ZX_ERR_IO_MISSED_DEADLINE: An operation did not complete within the required timeframe.
// Example: A USB isochronous transfer that failed to complete due to an overrun or underrun.
#define ZX_ERR_IO_MISSED_DEADLINE (-46)

// ZX_ERR_IO_INVALID: The data in the operation is invalid parameter or is out of range.
// Example: A USB transfer that failed to complete with TRB Error
#define ZX_ERR_IO_INVALID (-47)

// ======== Filesystem Errors ========
// ZX_ERR_BAD_PATH: Path name is too long.
#define ZX_ERR_BAD_PATH (-50)

// ZX_ERR_NOT_DIR: Object is not a directory or does not support
// directory operations.
// Example: Attempted to open a file as a directory or
// attempted to do directory operations on a file.
#define ZX_ERR_NOT_DIR (-51)

// ZX_ERR_NOT_FILE: Object is not a regular file.
#define ZX_ERR_NOT_FILE (-52)

// ZX_ERR_FILE_BIG: This operation would cause a file to exceed a
// filesystem-specific size limit
#define ZX_ERR_FILE_BIG (-53)

// ZX_ERR_NO_SPACE: Filesystem or device space is exhausted.
#define ZX_ERR_NO_SPACE (-54)

// ZX_ERR_NOT_EMPTY: Directory is not empty.
#define ZX_ERR_NOT_EMPTY (-55)

// ======== Flow Control ========
// These are not errors, as such, and will never be returned
// by a syscall or public API.  They exist to allow callbacks
// to request changes in operation.
//
// ZX_ERR_STOP: Do not call again.
// Example: A notification callback will be called on every
// event until it returns something other than ZX_OK.
// This status allows differentiation between "stop due to
// an error" and "stop because the work is done."
#define ZX_ERR_STOP (-60)

// ZX_ERR_NEXT: Advance to the next item.
// Example: A notification callback will use this response
// to indicate it did not "consume" an item passed to it,
// but by choice, not due to an error condition.
#define ZX_ERR_NEXT (-61)

// ZX_ERR_ASYNC: Ownership of the item has moved to an asynchronous worker.
//
// Unlike ZX_ERR_STOP, which implies that iteration on an object
// should stop, and ZX_ERR_NEXT, which implies that iteration
// should continue to the next item, ZX_ERR_ASYNC implies
// that an asynchronous worker is responsible for continuing iteration.
//
// Example: A notification callback will be called on every
// event, but one event needs to handle some work asynchronously
// before it can continue. ZX_ERR_ASYNC implies the worker is
// responsible for resuming iteration once its work has completed.
#define ZX_ERR_ASYNC (-62)

// ======== Network-related errors ========

// ZX_ERR_PROTOCOL_NOT_SUPPORTED: Specified protocol is not
// supported.
#define ZX_ERR_PROTOCOL_NOT_SUPPORTED (-70)

// ZX_ERR_ADDRESS_UNREACHABLE: Host is unreachable.
#define ZX_ERR_ADDRESS_UNREACHABLE (-71)

// ZX_ERR_ADDRESS_IN_USE: Address is being used by someone else.
#define ZX_ERR_ADDRESS_IN_USE (-72)

// ZX_ERR_NOT_CONNECTED: Socket is not connected.
#define ZX_ERR_NOT_CONNECTED (-73)

// ZX_ERR_CONNECTION_REFUSED: Remote peer rejected the connection.
#define ZX_ERR_CONNECTION_REFUSED (-74)

// ZX_ERR_CONNECTION_RESET: Connection was reset.
#define ZX_ERR_CONNECTION_RESET (-75)

// ZX_ERR_CONNECTION_ABORTED: Connection was aborted.
#define ZX_ERR_CONNECTION_ABORTED (-76)

// ======= VDSO-private errors =======

// ZX_ERR_INTERNAL_INTR_KILLED: A task was killed during an operation.
#define ZX_ERR_INTERNAL_INTR_KILLED (-502)

#endif  // SYSROOT_ZIRCON_ERRORS_H_
