006029c9bd55efb2ba50e2d6945ee63081a50ead
[AROS.git] / rom / filesys / console_handler / con_handler_intern.h
blob006029c9bd55efb2ba50e2d6945ee63081a50ead
1 #ifndef __CON_HANDLER_INTERN_H
2 #define __CON_HANDLER_INTERN_H
3 /*
4     Copyright © 1995-2011, The AROS Development Team. All rights reserved.
5     $Id$
7     Desc: Internal header-file for emulation-handler.
8     Lang: english
9 */
11 /* AROS includes */
12 #include <exec/libraries.h>
13 #include <exec/types.h>
14 #include <dos/dosextens.h>
15 #include <intuition/intuition.h>
16 #include <hidd/hidd.h>
17 #include <aros/asmcall.h>
20  ** stegerg:
21  **
22  ** if BETTER_WRITE_HANDLING is #defined then writes are sent to
23  ** console.device in smaller parts (max. 256 bytes or upto next
24  ** LINEFEED).
25  **
26  ** NOTE: Could be problematic with control sequences in case of
27  **       the 256-Byte-Block write (write size is >256 but no LINE-
28  **       FEED was found in this first (or better actual) 256 bytes
29  **       to be written.
30  **
31  **/
33 #define BETTER_WRITE_HANDLING   1
34 #define RMB_FREEZES_OUTPUT      1
36 #define CONTASK_STACKSIZE       (AROS_STACKSIZE)
37 #define CONTASK_PRIORITY        5
39 #define CONSOLEBUFFER_SIZE      256
40 #define INPUTBUFFER_SIZE        256
41 #define CMD_HISTORY_SIZE        32
42 #define PASTEBUFSIZE            16384
44 struct conTaskParams
46     struct conbase  *conbase;
47     struct Task     *parentTask;
48     ULONG           initSignal;
51 struct filehandle
53     struct IOStdReq         *conreadio;
54     struct IOStdReq         conwriteio;
55     struct MsgPort          *conreadmp;
56     struct MsgPort          *conwritemp;
57     struct Window           *window;
58     struct Window           *otherwindow; /* WINDOW0xXXXXXXXX parameter */
59     struct Task             *contask;
60     struct Task             *breaktask;
61     struct Task             *lastwritetask;
62     struct MinList          pendingReads;
63     struct NewWindow        nw;
64     struct MsgPort          *timermp;
65     struct timerequest      *timerreq;
66     struct MsgPort          *appmsgport;
67     struct AppMessage       *appmsg;
68     struct AppWindow        *appwindow;
69     UBYTE                   *wintitle;
70     UBYTE                   *screenname;
71 #if BETTER_WRITE_HANDLING
72     LONG                    partlywrite_actual;
73     LONG                    partlywrite_size;
74 #endif
75     WORD                    conbufferpos;
76     WORD                    conbuffersize;
77     WORD                    inputstart; /* usually 0, but needed for multi-lines (CONTROL RETURN) */
78     WORD                    inputpos; /* cursor pos. inside line */
79     WORD                    inputsize; /* length of input string */
80     WORD                    canreadsize;
81     WORD                    historysize;
82     WORD                    historypos;
83     WORD                    historyviewpos;
84     WORD                    usecount;
85     UWORD                   flags;
87     UBYTE                   consolebuffer[CONSOLEBUFFER_SIZE + 2];
88     UBYTE                   inputbuffer[INPUTBUFFER_SIZE + 2];
89     UBYTE                   historybuffer[CMD_HISTORY_SIZE][INPUTBUFFER_SIZE + 1];
91     /* If pastebuffer != 0, this contains data to paste from ConClip */
92     WORD                    pastebufferpos;
93     WORD                    pastebuffersize;
94     STRPTR                  pastebuffer;
95     struct Device           *inputbase;
96     struct IntuitionBase    *intuibase;
97     struct GfxBase          *gfxbase;
98     struct DosLibrary       *dosbase;
99     struct Library          *gtbase;
100     struct Library          *utilbase;
101     struct Library          *workbenchbase;
104 /* filehandle flags */
106 #define FHFLG_READPENDING       1
107 #define FHFLG_WRITEPENDING      2
108 #define FHFLG_CANREAD           4
109 #define FHFLG_WAIT              8   /* filename contained WAIT */
110 #define FHFLG_RAW               16  /* in RAW mode */
111 #define FHFLG_ASYNCCONSOLEREAD  32  /* There is a pending async console.device CMD_READ request */
112 #define FHFLG_AUTO              64  /* filename contained AUTO */
113 #define FHFLG_CONSOLEDEVICEOPEN 128
114 #define FHFLG_EOF               256
115 #define FHFLG_WAITFORCLOSE      512 /* Console with WAIT is waiting to be closed */
116 #define FHFLG_BOOTCON           1024/* Special marker for boot console */
118 #undef InputBase
119 #undef IntuitionBase
120 #undef DOSBase
121 #undef GadToolsBase
122 #undef UtilityBase
123 #undef WorkbenchBase
126  * FIXME: Remove these #define xxxBase hacks
127  * Do not use this in new code !
128  */
129 #define InputBase fh->inputbase
130 #define IntuitionBase fh->intuibase
131 #define DOSBase fh->dosbase
132 #define GadToolsBase fh->gtbase
133 #define GfxBase fh->gfxbase
134 #define UtilityBase fh->utilbase
135 #define WorkbenchBase fh->workbenchbase
137 #endif /* __CON_HANDLER_INTERN_H */