Change-Id: If881ec130833c7e7e62caa3d31e350a531f5bc8e Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: http://review.coreboot.org/12398 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
		
			
				
	
	
		
			189 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			189 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Public Domain Curses */
 | 
						|
 | 
						|
/* $Id: pdcx11.h,v 1.64 2008/07/14 04:24:52 wmcbrine Exp $ */
 | 
						|
 | 
						|
#include <curspriv.h>
 | 
						|
 | 
						|
#ifdef HAVE_UNISTD_H
 | 
						|
# include <unistd.h>
 | 
						|
#endif
 | 
						|
 | 
						|
#include <signal.h>
 | 
						|
#include <ctype.h>
 | 
						|
#include <pwd.h>
 | 
						|
 | 
						|
#include <sys/types.h>
 | 
						|
#include <sys/socket.h>
 | 
						|
#ifdef HAVE_FCNTL_H
 | 
						|
# include <fcntl.h>
 | 
						|
#endif
 | 
						|
#ifdef HAVE_SYS_SELECT_H
 | 
						|
# include <sys/select.h>   /* AIX needs this for FD_ZERO etc macros */
 | 
						|
#endif
 | 
						|
#include <sys/ipc.h>
 | 
						|
#include <sys/shm.h>
 | 
						|
 | 
						|
#ifdef TIME_WITH_SYS_TIME
 | 
						|
# include <sys/time.h>
 | 
						|
# include <time.h>
 | 
						|
#else
 | 
						|
# ifdef HAVE_SYS_TIME_H
 | 
						|
#  include <sys/time.h>
 | 
						|
# else
 | 
						|
#  include <time.h>
 | 
						|
# endif
 | 
						|
#endif
 | 
						|
 | 
						|
#include <Intrinsic.h>
 | 
						|
#include <StringDefs.h>
 | 
						|
#include <Shell.h>
 | 
						|
 | 
						|
#ifdef USE_XAW3D
 | 
						|
# include <Xaw3d/Box.h>
 | 
						|
# include <Xaw3d/Scrollbar.h>
 | 
						|
#elif defined(USE_NEXTAW)
 | 
						|
# include <neXtaw/Box.h>
 | 
						|
# include <neXtaw/Scrollbar.h>
 | 
						|
#else
 | 
						|
# include <Xaw/Box.h>
 | 
						|
# include <Xaw/Scrollbar.h>
 | 
						|
#endif
 | 
						|
#include "x11/ScrollBox.h"
 | 
						|
 | 
						|
#include "Xmu/StdSel.h"
 | 
						|
#include "Xmu/Atoms.h"
 | 
						|
 | 
						|
#include <keysym.h>
 | 
						|
#include <Xatom.h>
 | 
						|
 | 
						|
#define XCURSCR_Y_SIZE      (XCursesLINES * XCursesCOLS * sizeof(chtype))
 | 
						|
#define XCURSCR_FLAG_SIZE   (XCursesLINES * sizeof(int))
 | 
						|
#define XCURSCR_START_SIZE  (XCursesLINES * sizeof(int))
 | 
						|
#define XCURSCR_LENGTH_SIZE (XCursesLINES * sizeof(int))
 | 
						|
#define XCURSCR_ATRTAB_SIZE (PDC_COLOR_PAIRS * 2 * sizeof(short))
 | 
						|
#define XCURSCR_SIZE        (XCURSCR_FLAG_SIZE + XCURSCR_START_SIZE + \
 | 
						|
        XCURSCR_LENGTH_SIZE + XCURSCR_Y_SIZE + XCURSCR_ATRTAB_SIZE + \
 | 
						|
        sizeof(XColor))
 | 
						|
 | 
						|
#define XCURSCR_Y_OFF(y)    ((y) * XCursesCOLS * sizeof(chtype))
 | 
						|
#define XCURSCR_FLAG_OFF    (XCURSCR_Y_OFF(0) + XCURSCR_Y_SIZE)
 | 
						|
#define XCURSCR_START_OFF   (XCURSCR_FLAG_OFF + XCURSCR_FLAG_SIZE)
 | 
						|
#define XCURSCR_LENGTH_OFF  (XCURSCR_START_OFF + XCURSCR_START_SIZE)
 | 
						|
#define XCURSCR_ATRTAB_OFF  (XCURSCR_LENGTH_OFF + XCURSCR_LENGTH_SIZE)
 | 
						|
#define XCURSCR_XCOLOR_OFF  (XCURSCR_ATRTAB_OFF + XCURSCR_ATRTAB_SIZE)
 | 
						|
 | 
						|
typedef struct
 | 
						|
{
 | 
						|
    int lines;
 | 
						|
    int cols;
 | 
						|
    Pixel cursorColor;
 | 
						|
    Pixel colorBlack;
 | 
						|
    Pixel colorRed;
 | 
						|
    Pixel colorGreen;
 | 
						|
    Pixel colorYellow;
 | 
						|
    Pixel colorBlue;
 | 
						|
    Pixel colorMagenta;
 | 
						|
    Pixel colorCyan;
 | 
						|
    Pixel colorWhite;
 | 
						|
    Pixel colorBoldBlack;
 | 
						|
    Pixel colorBoldRed;
 | 
						|
    Pixel colorBoldGreen;
 | 
						|
    Pixel colorBoldYellow;
 | 
						|
    Pixel colorBoldBlue;
 | 
						|
    Pixel colorBoldMagenta;
 | 
						|
    Pixel colorBoldCyan;
 | 
						|
    Pixel colorBoldWhite;
 | 
						|
    Pixel pointerForeColor;
 | 
						|
    Pixel pointerBackColor;
 | 
						|
    XFontStruct *normalFont;
 | 
						|
    XFontStruct *italicFont;
 | 
						|
    char *bitmap;
 | 
						|
#ifdef HAVE_XPM_H
 | 
						|
    char *pixmap;
 | 
						|
#endif
 | 
						|
    char *composeKey;
 | 
						|
    Cursor pointer;
 | 
						|
    int shmmin;
 | 
						|
    int borderWidth;
 | 
						|
    int borderColor;
 | 
						|
    int clickPeriod;
 | 
						|
    int doubleClickPeriod;
 | 
						|
    int scrollbarWidth;
 | 
						|
    int cursorBlinkRate;
 | 
						|
    char *textCursor;
 | 
						|
} XCursesAppData;
 | 
						|
 | 
						|
extern XCursesAppData xc_app_data;
 | 
						|
 | 
						|
#define XCURSESSHMMIN xc_app_data.shmmin
 | 
						|
 | 
						|
#define XCLOGMSG (XCursesProcess ? "     X" : "CURSES")
 | 
						|
 | 
						|
void XC_get_line_lock(int);
 | 
						|
void XC_release_line_lock(int);
 | 
						|
 | 
						|
int PDC_display_cursor(int, int, int, int, int);
 | 
						|
 | 
						|
void XCursesExitCursesProcess(int, char *);
 | 
						|
int XCursesInstruct(int);
 | 
						|
int XCursesInstructAndWait(int);
 | 
						|
int XCursesInitscr(int, char **);
 | 
						|
 | 
						|
int XC_write_socket(int, const void *, int);
 | 
						|
int XC_read_socket(int, void *, int);
 | 
						|
int XC_write_display_socket_int(int);
 | 
						|
 | 
						|
int XCursesSetupX(int argc, char *argv[]);
 | 
						|
RETSIGTYPE XCursesSigwinchHandler(int signo);
 | 
						|
 | 
						|
#ifdef _HPUX_SOURCE
 | 
						|
# define FD_SET_CAST int *
 | 
						|
#else
 | 
						|
# define FD_SET_CAST fd_set *
 | 
						|
#endif
 | 
						|
 | 
						|
extern fd_set xc_readfds;
 | 
						|
 | 
						|
extern unsigned char *Xcurscr;
 | 
						|
extern int XCursesProcess;
 | 
						|
extern int shmidSP;
 | 
						|
extern int shmid_Xcurscr;
 | 
						|
extern int shmkeySP;
 | 
						|
extern int shmkey_Xcurscr;
 | 
						|
extern int xc_otherpid;
 | 
						|
extern int XCursesLINES;
 | 
						|
extern int XCursesCOLS;
 | 
						|
extern int xc_display_sock;
 | 
						|
extern int xc_key_sock;
 | 
						|
extern int xc_display_sockets[2];
 | 
						|
extern int xc_key_sockets[2];
 | 
						|
extern int xc_exit_sock;
 | 
						|
 | 
						|
typedef RETSIGTYPE (*signal_handler)();
 | 
						|
 | 
						|
signal_handler XCursesSetSignal(int, signal_handler);
 | 
						|
 | 
						|
#ifdef PDCDEBUG
 | 
						|
void XC_say(const char *msg);
 | 
						|
# define XC_LOG(x) XC_say x
 | 
						|
#else
 | 
						|
# define XC_LOG(x)
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef MOUSE_DEBUG
 | 
						|
# define MOUSE_LOG(x) printf x
 | 
						|
#else
 | 
						|
# define MOUSE_LOG(x)
 | 
						|
#endif
 | 
						|
 | 
						|
enum
 | 
						|
{
 | 
						|
    CURSES_CLEAR_SELECTION, CURSES_DISPLAY_CURSOR, CURSES_SET_SELECTION,
 | 
						|
    CURSES_GET_SELECTION, CURSES_TITLE, CURSES_REFRESH_SCROLLBAR,
 | 
						|
    CURSES_RESIZE, CURSES_BELL, CURSES_CONTINUE, CURSES_CURSOR,
 | 
						|
    CURSES_CHILD, CURSES_REFRESH, CURSES_GET_COLOR, CURSES_SET_COLOR,
 | 
						|
    CURSES_EXIT
 | 
						|
};
 | 
						|
 | 
						|
extern short *xc_atrtab;
 |