mirror of
https://github.com/GnoConsortium/gno.git
synced 2024-11-05 13:05:44 +00:00
1 line
4.5 KiB
C
1 line
4.5 KiB
C
|
|
/*
|
|
* Copyright (c) Kopriha Software, 1991
|
|
* All Rights Reserved
|
|
*
|
|
* SharedData.H
|
|
*
|
|
* Description: This include file contains the definition of the
|
|
* shared data structure that has a pointer to it posted
|
|
* to the message center.
|
|
*
|
|
*
|
|
* Table of contents:
|
|
*
|
|
* Structures:
|
|
* KS_SHARED_DATA . . . . . . . Shared data structure
|
|
*
|
|
*
|
|
* History:April 21, 1991 Dave Created this file
|
|
*
|
|
*/
|
|
|
|
#ifndef _KS_SHARED_DATA_
|
|
#define _KS_SHARED_DATA_
|
|
|
|
#ifndef _KS_DEFINES_
|
|
#include "KS.Defines.H"
|
|
#endif
|
|
|
|
#ifndef __GSOS__
|
|
#include <gsos.h>
|
|
#endif
|
|
|
|
|
|
/*
|
|
* Filetype/auxtype of spoolfiles.
|
|
*/
|
|
|
|
#define SPOOLFILE_FILETYPE ((Word) 4)
|
|
#define SPOOLFILE_AUXTYPE ((LongWord) 0)
|
|
#define SPOOL_DONE_AUXTYPE ((LongWord) 256)
|
|
|
|
|
|
|
|
/*
|
|
* Shared data spoolport flag states
|
|
*/
|
|
|
|
enum port_flags {PORT_NOT_ACTIVE = 1,
|
|
PORT_READY,
|
|
PORT_SPOOLING,
|
|
PORT_ERROR};
|
|
|
|
/*
|
|
* Shared data spool flag states...
|
|
*/
|
|
|
|
enum spool_flags {SPOOL_INIT = 0, /* First call - initialize everything */
|
|
SPOOL_SCANNING, /* Scanning spool directory for a file */
|
|
SPOOL_OPEN, /* Setting up for printing */
|
|
SPOOL_WAITING, /* Waiting for port to be ready */
|
|
SPOOL_PRINTING, /* Printing a spoolfile */
|
|
SPOOL_CLOSE, /* Finished with a spoolfile */
|
|
SPOOL_ERROR}; /* Some error stopped spooling */
|
|
|
|
|
|
/*
|
|
* KS_SHARED_DATA - generic shared data structure
|
|
*/
|
|
|
|
typedef struct
|
|
{
|
|
KS_STRUCT_ID struct_id; /* Structure id */
|
|
|
|
Word port_driver_length; /* Length of the port driver filename*/
|
|
char port_driver_name[64]; /* Name of port driver to print with */
|
|
|
|
Word spool_filename_length;/* Length of spool basename */
|
|
char spool_filename[64]; /* Basename of spool file */
|
|
|
|
LongWord buffer_size; /* User specified buffer size */
|
|
/* (This is the value of the */
|
|
/* scrollbar control) */
|
|
|
|
/*
|
|
* Flag words (should use bits, but we'll be a little foolish):
|
|
*/
|
|
Word delete_flag; /* Delete spoolfile after printing */
|
|
Word print_flag; /* Print new spoolfiles */
|
|
|
|
|
|
/*
|
|
* Data for the spoolport driver
|
|
*/
|
|
|
|
enum port_flags port_status;
|
|
Word port_error;
|
|
Word port_spoolnumber;
|
|
|
|
|
|
/*
|
|
* Now for the background task information.
|
|
*/
|
|
|
|
Pointer start_address; /* Start address of routine - pass */
|
|
/* this to add to run q! */
|
|
enum spool_flags spool_status; /* Status of spooler */
|
|
Word spool_error; /* Saved Error from spooler */
|
|
Word spool_spoolnumber; /* Spoolfile number being printed */
|
|
Pointer file_ptr; /* Pointer to the file we're spooling*/
|
|
LongWord bytes_written; /* Bytes written to the printer for */
|
|
/* the current spool file */
|
|
Word driver_user_id; /* Memory manager User ID for spooler*/
|
|
|
|
Handle buffer_handle; /* Handle to the I/O buffer */
|
|
Byte *buffer; /* Pointer to the I/O buffer */
|
|
LongWord buffer_bytesize; /* Size of the buffer (in bytes) */
|
|
LongWord buffer_offset; /* Offset of next available byte */
|
|
|
|
|
|
} KS_SHARED_DATA, *KS_SHARED_DATA_PTR, **KS_SHARED_DATA_HDL;
|
|
|
|
|
|
|
|
typedef struct
|
|
{
|
|
Word length;
|
|
char text[768];
|
|
} GSString768, *GSString768Ptr, **GSString768Hdl;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
Word bufSize;
|
|
GSString768 buffer;
|
|
} ResultBuf768, *ResultBuf768Ptr, **ResultBuf768Hdl;
|
|
|
|
|
|
|
|
/*
|
|
* KS_DATA_MESSAGE - record pointer passed to message center by name
|
|
* This holds most of the user specifiable data. The only structure
|
|
* missing is the pathname - and that is in the second message struct...
|
|
*/
|
|
|
|
typedef struct
|
|
{
|
|
Word blockLen;
|
|
char name_length; /* 123456789 123456789 12345678 */
|
|
char message_name[28]; /* = "Kopriha Software SpoolMaster" */
|
|
KS_SHARED_DATA_HDL shared_data_handle;
|
|
ResultBuf768Hdl shared_path_handle;
|
|
} KS_NAMED_MESSAGE, *KS_NAMED_MSG_PTR, **KS_NAMED_MSG_HDL;
|
|
|
|
|
|
|
|
/*
|
|
* Function prototypes (for message center routines):
|
|
*/
|
|
|
|
void send_message(KS_SHARED_DATA_HDL *,
|
|
ResultBuf255Hndl *);
|
|
|
|
void receive_message(KS_SHARED_DATA_HDL *,
|
|
ResultBuf255Hndl *);
|
|
|
|
#endif
|