Kernel/IPStack - (minor) TODO retransmit timer
[tpg/acess2.git] / KernelLand / Kernel / drv / vterm.h
index 8526426..75128ba 100644 (file)
@@ -42,10 +42,18 @@ enum eVT_InModes {
 typedef struct sVTerm  tVTerm;
 
 // === STRUCTURES ===
+typedef struct
+{
+       unsigned short  Row;
+       unsigned short  Col;
+} tVT_Pos;
+
 struct sVTerm
 {
         int    Mode;   //!< Current Mode (see ::eTplTerminal_Modes)
         int    Flags;  //!< Flags (see VT_FLAG_*)
+
+       void    *VT100Info;
        
        short   Width;  //!< Virtual Width
        short   Height; //!< Virtual Height
@@ -54,15 +62,15 @@ struct sVTerm
        
        Uint32  CurColour;      //!< Current Text Colour
        
-        int    ViewPos;        //!< View Buffer Offset (Text Only)
-        int    WritePos;       //!< Write Buffer Offset (Text Only)
+       size_t  ViewTopRow;     //!< View Buffer Offset (Text Only)
+       tVT_Pos WritePos;       //!< Write Buffer Offset (Text Only)
        tVT_Char        *Text;
        
+       tVT_Pos AltWritePos;    //!< Alternate write position
        tVT_Char        *AltBuf;        //!< Alternate Screen Buffer
-        int    AltWritePos;    //!< Alternate write position
        short   ScrollTop;      //!< Top of scrolling region (smallest)
        short   ScrollHeight;   //!< Length of scrolling region
-        int    SavedWritePos;  //!< Saved cursor position (\e[s and \e[u)
+       tVT_Pos SavedWritePos;  //!< Saved cursor position (\e[s and \e[u)
 
        char    EscapeCodeCache[16];
        size_t  EscapeCodeLen;
@@ -86,6 +94,11 @@ struct sVTerm
                 int    CachePos;
                char    Cache[32];
                size_t  PreEat;
+               union {
+                       struct {
+                               size_t  Offset;
+                       } Push;
+               } CmdInfo;
        } Cmd2D;
 
        tPTY    *PTY;
@@ -123,8 +136,13 @@ extern void        VT_int_PutRawString(tVTerm *Term, const Uint8 *String, size_t Bytes)
 extern void    VT_int_PutChar(tVTerm *Term, Uint32 Ch);
 extern void    VT_int_ScrollText(tVTerm *Term, int Count);
 extern void    VT_int_ClearLine(tVTerm *Term, int Num);
+extern void    VT_int_ClearInLine(tVTerm *Term, int Row, int FirstCol, int LastCol);
 extern void    VT_int_Resize(tVTerm *Term, int NewWidth, int NewHeight);
 extern void    VT_int_ToggleAltBuffer(tVTerm *Term, int Enabled);
+extern void    VT_int_PutFBData(tVTerm *Term, size_t Offset, size_t Length, const void *Buffer);
+
+extern tVT_Pos *VT_int_GetWritePosPtr(tVTerm *Term);
+extern size_t  VT_int_GetBufferRows(tVTerm *Term);
 
 #endif
 

UCC git Repository :: git.ucc.asn.au