/*
* This file is part of the Jikes RVM project (http://jikesrvm.org).
*
* This file is licensed to You under the Common Public License (CPL);
* You may not use this file except in compliance with the License. You
* may obtain a copy of the License at
*
* http://www.opensource.org/licenses/cpl1.0.php
*
* See the COPYRIGHT.txt file distributed with this work for information
* regarding copyright ownership.
*/
package org.jikesrvm.scheduler.greenthreads;
/**
* Constants associated with I/O waits.
*
*
* @see VM_ThreadIOWaitData
* @see VM_ThreadIOQueue
*/
public interface VM_ThreadIOConstants {
/**
* Flag used to represent fd on which operation can proceed without
* blocking. Used by <code>sysNetSelect()</code> to mark file
* descriptors which are ready.
*/
int FD_READY = -99;
/**
* Flag used by <code>getNetSelect()</code> to mark a file descriptor
* which has been found to be invalid.
*/
int FD_INVALID = -100;
/**
* Position of bit used to mark fds that have become ready.
*/
int FD_READY_SHIFT = 29;
/**
* If an IO wait is successful, this bit will be set in
* all file descriptors that are ready (in the event data object).
*/
int FD_READY_BIT = 1 << FD_READY_SHIFT;
/**
* Position of bit used to mark fds that were found to be invalid
* by select().
*/
int FD_INVALID_SHIFT = 30;
/**
* If an IO wait is terminiated because select() noticed that
* the file descriptor was invalid, this bit will be set.
*/
int FD_INVALID_BIT = 1 << FD_INVALID_SHIFT;
/**
* Mask to get value of a file descriptor.
*/
int FD_MASK = ~(FD_READY_BIT | FD_INVALID_BIT);
}