discovery saves result in struct

clean-up works now

FossilOrigin-Name: b748ddb215a807c4634de1492c35aadfd4df7054b43bf73627b3ee67b224e0aa
This commit is contained in:
7u83@mail.ru
2018-03-31 06:37:18 +00:00
parent 370994b0b4
commit 48aa62b5be
10 changed files with 72 additions and 6 deletions

View File

@ -70,6 +70,8 @@ CWSRC=\
cw_ktv_get_byte.c\
cw_ktv_get.c\
cw_ktv_get_word.c\
cw_ktv_get_dword.c\
cw_ktv_get_sysptr.c\
cw_ktv_idx_get.c\
cw_ktv_mavlcmp.c\
cw_ktv_mavlcmp_type_by_name.c\

11
src/cw/cw_ktv_get_dword.c Normal file
View File

@ -0,0 +1,11 @@
#include "ktv.h"
uint32_t cw_ktv_get_dword(mavl_t ktv,const char *key, uint32_t def)
{
cw_KTV_t * k;
k = cw_ktv_get(ktv,key,CW_TYPE_DWORD);
if (k != NULL){
return k->val.dword;
}
return def;
}

View File

@ -0,0 +1,11 @@
#include "ktv.h"
void * cw_ktv_get_sysptr(mavl_t ktv,const char *key, void * def)
{
cw_KTV_t * k;
k = cw_ktv_get(ktv,key,CW_TYPE_SYSPTR);
if (k != NULL){
return k->val.ptr;
}
return def;
}

View File

@ -6,10 +6,11 @@
void cw_ktv_mavldel(void *data)
{
struct cw_KTV *kvt = data;
struct cw_KTV *ktv = data;
/*printf("KTV Del Key,Type: %s %s\n", ktv->key,ktv->type->name);*/
if (ktv->type->del){
ktv->type->del(data);
}
if (kvt->type->del)
kvt->type->del(data);
free(kvt->key);
free(ktv->key);
}

View File

@ -134,6 +134,8 @@ int cw_ktv_read_file(FILE * file, mavl_t ktv, mavl_t types);
cw_KTV_t * cw_ktv_get(mavl_t ktv, const char *key, const cw_Type_t * type);
uint8_t cw_ktv_get_byte(mavl_t ktv,const char *key, uint8_t def);
uint16_t cw_ktv_get_word(mavl_t ktv,const char *key, uint16_t def);
uint32_t cw_ktv_get_dword(mavl_t ktv,const char *key, uint32_t def);
void * cw_ktv_get_sysptr(mavl_t ktv,const char *key, void * def);
int cw_ktv_idx_get(mavl_t ktv, const char *key, int idx, const cw_Type_t * type);

View File

@ -94,8 +94,14 @@ extern struct mlistelem *mlist_find(mlist_t l, struct mlistelem *start, void *da
#define mlistelem_get_ptr(elem) (*((void**)(mlistelem_dataptr(elem))))
#define mlistelem_get_str(elem) mlistelem_get_ptr(elem)
#define mlist_create_conststr() mlist_create(NULL,NULL,sizeof(const char*))
mlistelem_t * mlist_append_ptr (mlist_t list, void * ptr);
/*#define mlist_append_ptr(list,ptr) mlist_append(list,&(ptr))*/
/**
* @} MLIST
*/

View File

@ -1,5 +1,11 @@
#include "mlist.h"
/**
* @brief Append a pointer value to mlist
* @param list List to append to
* @param ptr Pointer to append
* @return the created element or NULL if an error has occured
*/
mlistelem_t * mlist_append_ptr (mlist_t list, void * ptr)
{
return mlist_append (list, &ptr);