00001 00019 #ifndef GRPHSHM_H 00020 #define GRPHSHM_H 00021 00022 #include "sbgtypes.h" 00023 #include "grphics.h" 00024 00025 #define SHMSIZE (65536*8) /*shm segment size */ 00026 #define PIPESIZE 8192 /*pipe bufer size */ 00027 #define USER_RW 0600 /*permission flags */ 00028 /*starbase environ */ 00029 #define SBADDR "SB_DISPLAY_ADDR" 00030 #define WMSHM "WMSHMSPC" /*shared mem size */ 00031 #define WMSHMDEFAULT 0x200000 /*default value */ 00032 #define SBDEFAULT 0x0b00000 /*default ADDR */ 00033 #define SHMOFFSET 0x200000 /*offset before sbaddr */ 00034 #define MAXDATA 0x1000000 /*default data seg size */ 00035 00036 #define SBDAEMON "sbdaemon" 00037 #define REMSH "remsh" /*command for remote use */ 00038 #define DISP "DISPLAY" /*environ var */ 00039 #define LOCAL1 "local" /*possible values */ 00040 #define LOCAL2 "unix" /*of DISPLAY */ 00041 00042 #define FLUSH_OUT 0 /*kick_daemon commands */ 00043 #define FLUSH_IN 1 00044 #define AWAIT_BUFFER 2 /*wait for free buffer */ 00045 #define COUNT_READS 3 /*count a queue clear */ 00046 #define MAX_PENDING 255 /*max pending reads */ 00047 00048 extern SHMINFO shminfo; /*shared memory */ 00049 extern WINFD sbfds[MAXWINDOWS]; /*file descriptors */ 00050 extern INT16 maxsbfd; 00051 #ifdef __MSW32__ 00052 extern DWORD event_id; //event thread id 00053 #endif 00054 00055 void start_sbdaemon(); /*start the daemon */ 00056 void cleanup_sbdaemon(); /*forget about the daemon */ 00057 BOOL8 remote_display( //check for remote 00058 char *name //name of host 00059 ); 00060 DLLSYM void *getshm( /*get memory */ 00061 INT32 size /*required size */ 00062 ); 00063 void kick_daemon( /*empty queue */ 00064 INT8 mode /*control mode */ 00065 ); 00066 #ifdef __MSW32__ 00067 int two_way_pipe ( //do one file 00068 const char *file, //program to run 00069 const char *argv[], //args to execvp 00070 HANDLE fds[] //output fds 00071 ); 00072 #endif 00073 #endif