diff options
author | FreeArtMan <dos21h@gmail.com> | 2016-07-02 22:44:54 +0100 |
---|---|---|
committer | FreeArtMan <dos21h@gmail.com> | 2016-07-02 22:44:54 +0100 |
commit | 09f10018a7d1981bdf2e66d9c752b12482a8b22c (patch) | |
tree | bd3747cff18cedac8c99ee6def2f0f80554a2651 /h64e/core.h | |
parent | 60f08b0a4676943651bc7b66cb8531325b1c6132 (diff) | |
download | ihe-09f10018a7d1981bdf2e66d9c752b12482a8b22c.tar.gz ihe-09f10018a7d1981bdf2e66d9c752b12482a8b22c.zip |
Added h64e
Diffstat (limited to 'h64e/core.h')
-rw-r--r-- | h64e/core.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/h64e/core.h b/h64e/core.h new file mode 100644 index 0000000..703c3aa --- /dev/null +++ b/h64e/core.h @@ -0,0 +1,79 @@ +#ifndef __H64E_CORE_H +#define __H64E_CORE_H + +#include <stdio.h> +#include <stdlib.h> +#include <stdint.h> +#include <string.h> +#include <ctype.h> + +#define H64E_G_NONE 0 +#define H64E_G_BYTE 1 +#define H64E_G_WORD 2 +#define H64E_G_DWORD 3 +#define H64E_G_QWORD 4 + + +#define H64E_O_START 0 +#define H64E_O_NONE 0 +#define H64E_O_STRING 1 +#define H64E_O_INT8 2 +#define H64E_O_UINT8 3 +#define H64E_O_INT16 4 +#define H64E_O_UINT16 5 +#define H64E_O_INT32 6 +#define H64E_O_UINT32 7 +#define H64E_O_INT64 8 +#define H64E_O_UINT64 9 +#define H64E_O_END H64E_O_UINT64 + +#define H64E_OK 0 +#define H64E_OESIZE 1 /*size mistmatch*/ + +typedef int (*trnf_clb)(char*); +typedef int (*output_clb)(char*); + +typedef struct h64e_t +{ + int flag_offset; /* output offset */ + uint64_t offset_addr; /* offset postion */ + uint8_t column_size; /* size of column to operate with */ + int flag_no_group; /* dont output hex values */ + uint8_t group; /* if there is need transdorm to specific type */ + int flag_output; /* output convereted types */ + uint8_t output_type; /* output in many different ways */ +} h64e_t; + +/* set default values */ +int h64e_set_default( h64e_t *fmt ); +/* check if all parametrs work well with each other */ +int h64e_check_param( h64e_t *fmt ); +int h64e_output( uint8_t *buf, size_t size ); +/* feed output to be printed out line by line */ +int h64e_output_line( h64e_t *fmt, uint8_t *buf, size_t size ); +/* feed output to be printed out as buffer */ +int h64e_output_buffer( h64e_t *fmt, uint8_t *buf, size_t size); +int h64e_transform_sz( h64e_t *fmt ); +int h64e_outpt_sz( h64e_t *fmt ); +int h64e_space_sz( h64e_t *fmt ); +int h64e_outputf( h64e_t *fmt, uint8_t *buf, size_t nsize ); +int h64e_read_req( h64e_t *fmt, uint8_t *buf, size_t size ); +trnf_clb h64e_trnf_fun( h64e_t *fmt ); +output_clb h64e_outpt_fun( h64e_t *fmt ); +int h64e_outputf_padding( h64e_t *fmt, uint8_t *buf, size_t nsize, int column ); + +int trnf_byte( char *buf ); +int trnf_word( char *buf ); +int trnf_dword( char *buf ); +int trnf_qword( char *buf ); + +int outpt_str( char *buf ); +int outpt_int8( char *buf ); +int outpt_uint8( char *buf ); +int outpt_int16( char *buf ); +int outpt_uint16( char *buf ); +int outpt_int32( char *buf ); +int outpt_uint32( char *buf ); +int outpt_int64( char *buf ); +int outpt_uint64( char *buf ); +#endif
\ No newline at end of file |