!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache. PHP/7.3.33 

uname -a: Linux web25.us.cloudlogin.co 5.10.237-xeon-hst #1 SMP Mon May 5 15:10:04 UTC 2025 x86_64 

uid=233359(alpastrology) gid=888(tty) groups=888(tty),33(tape) 

Safe-mode: OFF (not secure)

/usr/include/tcl-private/generic/   drwxr-xr-x
Free 6182.18 GB of 6263.38 GB (98.7%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     tclIO.h (11.43 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*
 * tclIO.h --
 *
 *    This file provides the generic portions (those that are the same on
 *    all platforms and for all channel types) of Tcl's IO facilities.
 *
 * Copyright (c) 1998-2000 Ajuba Solutions
 * Copyright (c) 1995-1997 Sun Microsystems, Inc.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

/*
 * Make sure that both EAGAIN and EWOULDBLOCK are defined. This does not
 * compile on systems where neither is defined. We want both defined so that
 * we can test safely for both. In the code we still have to test for both
 * because there may be systems on which both are defined and have different
 * values.
 */

#if ((!defined(EWOULDBLOCK)) && (defined(EAGAIN)))
#   define EWOULDBLOCK EAGAIN
#endif
#if ((!defined(EAGAIN)) && (defined(EWOULDBLOCK)))
#   define EAGAIN EWOULDBLOCK
#endif
#if ((!defined(EAGAIN)) && (!defined(EWOULDBLOCK)))
#error one of EWOULDBLOCK or EAGAIN must be defined
#endif

/*
 * struct ChannelBuffer:
 *
 * Buffers data being sent to or from a channel.
 */

typedef struct ChannelBuffer {
    int refCount;        /* Current uses count */
    int nextAdded;        /* The next position into which a character
                 * will be put in the buffer. */
    int nextRemoved;        /* Position of next byte to be removed from
                 * the buffer. */
    int bufLength;        /* How big is the buffer? */
    struct ChannelBuffer *nextPtr;
                    /* Next buffer in chain. */
    char buf[1];        /* Placeholder for real buffer. The real
                 * buffer occuppies this space + bufSize-1
                 * bytes. This must be the last field in the
                 * structure. */
} ChannelBuffer;

#define CHANNELBUFFER_HEADER_SIZE    TclOffset(ChannelBuffer, buf)

/*
 * How much extra space to allocate in buffer to hold bytes from previous
 * buffer (when converting to UTF-8) or to hold bytes that will go to next
 * buffer (when converting from UTF-8).
 */

#define BUFFER_PADDING        16

/*
 * The following defines the *default* buffer size for channels.
 */

#define CHANNELBUFFER_DEFAULT_SIZE    (1024 * 4)

/*
 * The following structure describes the information saved from a call to
 * "fileevent". This is used later when the event being waited for to invoke
 * the saved script in the interpreter designed in this record.
 */

typedef struct EventScriptRecord {
    struct Channel *chanPtr;    /* The channel for which this script is
                 * registered. This is used only when an error
                 * occurs during evaluation of the script, to
                 * delete the handler. */
    Tcl_Obj *scriptPtr;        /* Script to invoke. */
    Tcl_Interp *interp;        /* In what interpreter to invoke script? */
    int mask;            /* Events must overlap current mask for the
                 * stored script to be invoked. */
    struct EventScriptRecord *nextPtr;
                /* Next in chain of records. */
} EventScriptRecord;

/*
 * struct Channel:
 *
 * One of these structures is allocated for each open channel. It contains
 * data specific to the channel but which belongs to the generic part of the
 * Tcl channel mechanism, and it points at an instance specific (and type
 * specific) instance data, and at a channel type structure.
 */

typedef struct Channel {
    struct ChannelState *state; /* Split out state information */
    ClientData instanceData;    /* Instance-specific data provided by creator
                 * of channel. */
    const Tcl_ChannelType *typePtr; /* Pointer to channel type structure. */
    struct Channel *downChanPtr;/* Refers to channel this one was stacked
                 * upon. This reference is NULL for normal
                 * channels. See Tcl_StackChannel. */
    struct Channel *upChanPtr;    /* Refers to the channel above stacked this
                 * one. NULL for the top most channel. */

    /*
     * Intermediate buffers to hold pre-read data for consumption by a newly
     * stacked transformation. See 'Tcl_StackChannel'.
     */

    ChannelBuffer *inQueueHead;    /* Points at first buffer in input queue. */
    ChannelBuffer *inQueueTail;    /* Points at last buffer in input queue. */

    int refCount;
} Channel;

/*
 * struct ChannelState:
 *
 * One of these structures is allocated for each open channel. It contains
 * data specific to the channel but which belongs to the generic part of the
 * Tcl channel mechanism, and it points at an instance specific (and type
 * specific) instance data, and at a channel type structure.
 */

typedef struct ChannelState {
    char *channelName;        /* The name of the channel instance in Tcl
                 * commands. Storage is owned by the generic
                 * IO code, is dynamically allocated. */
    int    flags;            /* ORed combination of the flags defined
                 * below. */
    Tcl_Encoding encoding;    /* Encoding to apply when reading or writing
                 * data on this channel. NULL means no
                 * encoding is applied to data. */
    Tcl_EncodingState inputEncodingState;
                /* Current encoding state, used when
                 * converting input data bytes to UTF-8. */
    int inputEncodingFlags;    /* Encoding flags to pass to conversion
                 * routine when converting input data bytes to
                 * UTF-8. May be TCL_ENCODING_START before
                 * converting first byte and TCL_ENCODING_END
                 * when EOF is seen. */
    Tcl_EncodingState outputEncodingState;
                /* Current encoding state, used when
                 * converting UTF-8 to output data bytes. */
    int outputEncodingFlags;    /* Encoding flags to pass to conversion
                 * routine when converting UTF-8 to output
                 * data bytes. May be TCL_ENCODING_START
                 * before converting first byte and
                 * TCL_ENCODING_END when EOF is seen. */
    TclEolTranslation inputTranslation;
                /* What translation to apply for end of line
                 * sequences on input? */
    TclEolTranslation outputTranslation;
                /* What translation to use for generating end
                 * of line sequences in output? */
    int inEofChar;        /* If nonzero, use this as a signal of EOF on
                 * input. */
    int outEofChar;        /* If nonzero, append this to the channel when
                 * it is closed if it is open for writing. */
    int unreportedError;    /* Non-zero if an error report was deferred
                 * because it happened in the background. The
                 * value is the POSIX error code. */
    int refCount;        /* How many interpreters hold references to
                 * this IO channel? */
    struct CloseCallback *closeCbPtr;
                /* Callbacks registered to be called when the
                 * channel is closed. */
    char *outputStage;        /* Temporary staging buffer used when
                 * translating EOL before converting from
                 * UTF-8 to external form. */
    ChannelBuffer *curOutPtr;    /* Current output buffer being filled. */
    ChannelBuffer *outQueueHead;/* Points at first buffer in output queue. */
    ChannelBuffer *outQueueTail;/* Points at last buffer in output queue. */
    ChannelBuffer *saveInBufPtr;/* Buffer saved for input queue - eliminates
                 * need to allocate a new buffer for "gets"
                 * that crosses buffer boundaries. */
    ChannelBuffer *inQueueHead;    /* Points at first buffer in input queue. */
    ChannelBuffer *inQueueTail;    /* Points at last buffer in input queue. */
    struct ChannelHandler *chPtr;/* List of channel handlers registered for
                  * this channel. */
    int interestMask;        /* Mask of all events this channel has
                 * handlers for. */
    EventScriptRecord *scriptRecordPtr;
                /* Chain of all scripts registered for event
                 * handlers ("fileevent") on this channel. */
    int bufSize;        /* What size buffers to allocate? */
    Tcl_TimerToken timer;    /* Handle to wakeup timer for this channel. */
    struct CopyState *csPtrR;    /* State of background copy for which channel
                 * is input, or NULL. */
    struct CopyState *csPtrW;    /* State of background copy for which channel
                 * is output, or NULL. */
    Channel *topChanPtr;    /* Refers to topmost channel in a stack. Never
                 * NULL. */
    Channel *bottomChanPtr;    /* Refers to bottommost channel in a stack.
                 * This channel can be relied on to live as
                 * long as the channel state. Never NULL. */
    struct ChannelState *nextCSPtr;
                /* Next in list of channels currently open. */
    Tcl_ThreadId managingThread;/* TIP #10: Id of the thread managing this
                 * stack of channels. */

    /*
     * TIP #219 ... Info for the I/O system ...
     * Error message set by channel drivers, for the propagation of arbitrary
     * Tcl errors. This information, if present (chanMsg not NULL), takes
     * precedence over a posix error code returned by a channel operation.
     */

    Tcl_Obj* chanMsg;
    Tcl_Obj* unreportedMsg;     /* Non-NULL if an error report was deferred
                 * because it happened in the background. The
                 * value is the chanMg, if any. #219's
                 * companion to 'unreportedError'. */
    int epoch;            /* Used to test validity of stored channelname
                 * lookup results. */
} ChannelState;

/*
 * Values for the flags field in Channel. Any ORed combination of the
 * following flags can be stored in the field. These flags record various
 * options and state bits about the channel. In addition to the flags below,
 * the channel can also have TCL_READABLE (1<<1) and TCL_WRITABLE (1<<2) set.
 */

#define CHANNEL_NONBLOCKING    (1<<3)    /* Channel is currently in nonblocking
                     * mode. */
#define CHANNEL_LINEBUFFERED    (1<<4)    /* Output to the channel must be
                     * flushed after every newline. */
#define CHANNEL_UNBUFFERED    (1<<5)    /* Output to the channel must always
                     * be flushed immediately. */
#define BG_FLUSH_SCHEDULED    (1<<7)    /* A background flush of the queued
                     * output buffers has been
                     * scheduled. */
#define CHANNEL_CLOSED        (1<<8)    /* Channel has been closed. No further
                     * Tcl-level IO on the channel is
                     * allowed. */
#define CHANNEL_EOF        (1<<9)    /* EOF occurred on this channel. This
                     * bit is cleared before every input
                     * operation. */
#define CHANNEL_STICKY_EOF    (1<<10)    /* EOF occurred on this channel
                     * because we saw the input
                     * eofChar. This bit prevents clearing
                     * of the EOF bit before every input
                     * operation. */
#define CHANNEL_BLOCKED        (1<<11)    /* EWOULDBLOCK or EAGAIN occurred on
                     * this channel. This bit is cleared
                     * before every input or output
                     * operation. */
#define INPUT_SAW_CR        (1<<12)    /* Channel is in CRLF eol input
                     * translation mode and the last byte
                     * seen was a "\r". */
#define CHANNEL_DEAD        (1<<13)    /* The channel has been closed by the
                     * exit handler (on exit) but not
                     * deallocated. When any IO operation
                     * sees this flag on a channel, it
                     * does not call driver level
                     * functions to avoid referring to
                     * deallocated data. */
#define CHANNEL_NEED_MORE_DATA    (1<<14)    /* The last input operation failed
                     * because there was not enough data
                     * to complete the operation. This
                     * flag is set when gets fails to get
                     * a complete line or when read fails
                     * to get a complete character. When
                     * set, file events will not be
                     * delivered for buffered data until
                     * the state of the channel
                     * changes. */
#define CHANNEL_RAW_MODE    (1<<16)    /* When set, notes that the Raw API is
                     * being used. */

#define CHANNEL_INCLOSE        (1<<19)    /* Channel is currently being closed.
                     * Its structures are still live and
                     * usable, but it may not be closed
                     * again from within the close
                     * handler. */
#define CHANNEL_CLOSEDWRITE    (1<<21)    /* Channel write side has been closed.
                     * No further Tcl-level write IO on
                     * the channel is allowed. */

/*
 * The length of time to wait between synthetic timer events. Must be zero or
 * bad things tend to happen.
 */

#define SYNTHETIC_EVENT_TIME    0

/*
 * Local Variables:
 * mode: c
 * c-basic-offset: 4
 * fill-column: 78
 * End:
 */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.0126 ]--