#ifndef _COMMLIB_HEAD_H_
#define _COMMLIB_HEAD_H_


#include "commlib-common.h"


/**************************************************/
/* functions which should match their C semantics */
/**************************************************/

void pc_fopen(const char *filename, const char *mode);
void pc_fclose(void *stream);
void pc_fread(unsigned char *ptr, size_t size, size_t nitems, void *stream);
void pc_fwrite(const char *ptr, size_t size, size_t nitems, void *stream);
void pc_fseek(void *stream, long offset, int whence);



/**********************************************/
/* miscellaneous functions relating to the PC */
/**********************************************/

/* pc_send_packet: send a packet to PC, doesn't wait for ack */
/* computes its own checksum */
void pc_send_packet(unsigned char EventID,
		    unsigned char DataLength,
		    const unsigned char *Data);
/* pc_recv_packet: get data from PC, placing result in passed object */
/* returns diff between actual and expected checksum (0 on success) */
unsigned char pc_recv_packet(pcdata *pkt);
/* pc_recv_packet_args: Functionally equivalent to pc_recv_packet,
 * but doesn't require data structure to be filled out. */
unsigned char pc_recv_packet_args(unsigned char *EventID,
			 unsigned char *DataLength,
			 unsigned char *Data);
/* pc_debug: send debug message to pc; truncates at 255 characters */
void pc_debug(char *message);

#endif /* ifdef _COMMLIB_HEAD_H_ */

