FreeCalypso > hg > fc-selenite
diff src/gpf/inc/pco_util.h @ 5:1ea54a97e831
src/gpf: import of Magnetite src/gpf3
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 15 Jul 2018 08:11:07 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/gpf/inc/pco_util.h Sun Jul 15 08:11:07 2018 +0000 @@ -0,0 +1,195 @@ +/* ++----------------------------------------------------------------------------- +| Project : PCO2 +| Modul : PCO_UTIL ++----------------------------------------------------------------------------- +| Copyright 2002 Texas Instruments Berlin, AG +| All rights reserved. +| +| This file is confidential and a trade secret of Texas +| Instruments Berlin, AG +| The receipt of or possession of this file does not convey +| any rights to reproduce or disclose its contents or to +| manufacture, use, or sell anything it may describe, in +| whole, or in part, without the specific written consent of +| Texas Instruments Berlin, AG. ++----------------------------------------------------------------------------- +| Purpose : This Modul provides utillity functions for pco ++----------------------------------------------------------------------------- +*/ + +#ifndef _PCO_UTIL_H_ +#define _PCO_UTIL_H_ + +/*==== INCLUDES ===================================================*/ +#include <stdio.h> +#include "ipcapi.h" +#undef EXPORT +#include "typedefs.h" + +/*==== TYPES ======================================================*/ + +/*==== CONSTANTS ==================================================*/ +#define ZERO_COMPRESS_MIN 8 + +/*==== EXTERNALS ==================================================*/ + +/*==== VARIABLES ==================================================*/ + +/*==== PROTOTYPES =================================================*/ + +/* ++--------------------------------------------------------------------+ +| PROJECT : PCO2 MODULE : PCO_UTIL | +| STATE : code ROUTINE : get_path | ++--------------------------------------------------------------------+ + + PURPOSE : Retrieves the pathname from a path/filename(path\filenames)-string. + + PARAMS: fname ... path/filename + path ... retrieved path string + slash ... 1 -> '/'s are used as separators. + 0 -> '\'s are used as separators +*/ +void get_path(const char* fname, char* path, int slash=1); + + +/* ++------------------------------------------------------+ +| PROJECT : PCO2 MODULE : PCO_UTIL | +| STATE : code ROUTINE : read_string | ++------------------------------------------------------+ + + PURPOSE : Reads one line from a text file. + + PARAMS: stream ... stream to read from + buf ... buffer to read into + max_len ... maximum length of line to read into buf + + RETURNS: 0 ... no error + -1 ... buffer to small + +*/ +int read_string (FILE * stream, char * buf, int max_len); + + +/* ++-------------------------------------------------------------------------------+ +| PROJECT : PCO2 MODULE : PCO_UTIL | +| STATE : code ROUTINE : send_ipcmsg | ++-------------------------------------------------------------------------------+ + + PURPOSE : tries to send a message with ipc header to a receiver + + PARAMS: buf ... pointer to buffer + size .. size of buffer + id ... message id + sender .. queuename of sender + receiver .. queuename of receiver + + RETURNS: 0 .. sucess + -1 .. receiver not found + -2 .. error while contacting receiver + +*/ +int send_ipcmsg(void* buf, U16 size, U16 id, const char* sender, + const char* receiver); + + +/* ++-------------------------------------------------------------------------------+ +| PROJECT : PCO2 MODULE : PCO_UTIL | +| STATE : code ROUTINE : send_ipcmsg | ++-------------------------------------------------------------------------------+ + + PURPOSE : tries to send a message with ipc header to a receiver + + PARAMS: buf ... pointer to buffer + size .. size of buffer + id ... message id + sender .. queuename of sender + receiver .. queuename of receiver + rqueue ... handle of receiver queue + + RETURNS: 0 .. sucess + -1 .. error while contacting receiver + +*/ +int send_ipcmsg(void* buf, U16 size, U16 id, const char* sender, + const char* receiver, CMS_HANDLE rqueue); + +/* ++-------------------------------------------------------------------------------+ +| PROJECT : PCO2 MODULE : PCO_VIEW_STD | +| STATE : code ROUTINE : create_hexdump | ++-------------------------------------------------------------------------------+ + + PURPOSE : creates hexdump string of given data + + PARAMS: data .. the data + dsize .. size of data + dump .. buffer to receive hexdump + size .. size of dump + reverse.. if !=0 the hexdump will represent the reverse data buffer + zero_compress_min .. count of zeros from which on compression will be applied + + RETURNS: 0 .. success + -1 .. dump buffer to small + +*/ +int create_hexdump(const void *data, unsigned dsize, char *dump, unsigned size, + int reverse=0, int zero_compress_min=ZERO_COMPRESS_MIN); + +/* ++-------------------------------------------------------------------------------+ +| PROJECT : PCO2 MODULE : PCO_UTIL | +| STATE : code ROUTINE : interprete_hexdump | ++-------------------------------------------------------------------------------+ + + PURPOSE : tries to interprete a given string hexdump-like + Example: 00 44 (23*00) 47 11 + + PARAMS: dump .. string containing hexdump + buffer .. buffer to receive interpreted data + bsize .. size of buffer + count .. count of bytes writen to buffer + + RETURNS: 0 .. success + -1 .. buffer to small + -2 .. invalid hexdump + +*/ +int interprete_hexdump(const char *dump, void* buffer, unsigned bsize, unsigned& count); + + +/* ++-------------------------------------------------------------------------------+ +| PROJECT : PCO2 MODULE : PCO_UTIL | +| STATE : code ROUTINE : get_time_hmsm | ++-------------------------------------------------------------------------------+ + + PURPOSE : calculates the current time in ms + (hour, minute, second and ms are taken into account) + + RETURNS: current time in milliseconds + +*/ +ULONG get_time_hmsm(); + +/* ++-------------------------------------------------------------------------------+ +| PROJECT : PCO2 MODULE : PCO_UTIL | +| STATE : code ROUTINE : get_dll_size | ++-------------------------------------------------------------------------------+ + + PURPOSE : calculates the actual count of bytes used in a given DLL-file + + PARAMS: dll_fname .. name of dll-file + + RETURNS: count of bytes used, 0 if file is no WIN32-DLL + +*/ +ULONG get_dll_size(const char* dll_fname); + + +#endif /* _PCO_UTIL_H_ */ \ No newline at end of file