More useful ASN1 macros for static allocation functions.
This commit is contained in:
parent
308595638a
commit
f8492ffeaa
@ -368,6 +368,10 @@ extern "C" {
|
|||||||
#define ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag) \
|
#define ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag) \
|
||||||
ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL)
|
ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL)
|
||||||
|
|
||||||
|
/* EXPLICIT using indefinite length constructed form */
|
||||||
|
#define ASN1_NDEF_EXP(stname, field, type, tag) \
|
||||||
|
ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_NDEF)
|
||||||
|
|
||||||
/* EXPLICIT OPTIONAL using indefinite length constructed form */
|
/* EXPLICIT OPTIONAL using indefinite length constructed form */
|
||||||
#define ASN1_NDEF_EXP_OPT(stname, field, type, tag) \
|
#define ASN1_NDEF_EXP_OPT(stname, field, type, tag) \
|
||||||
ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_NDEF)
|
ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_NDEF)
|
||||||
@ -790,19 +794,25 @@ typedef struct ASN1_PRINT_ARG_st {
|
|||||||
#define IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name(stname, itname) \
|
#define IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name(stname, itname) \
|
||||||
IMPLEMENT_ASN1_FUNCTIONS_ENCODE_fname(stname, itname, itname)
|
IMPLEMENT_ASN1_FUNCTIONS_ENCODE_fname(stname, itname, itname)
|
||||||
|
|
||||||
|
#define IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(stname) \
|
||||||
|
IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(static, stname, stname, stname)
|
||||||
|
|
||||||
#define IMPLEMENT_ASN1_ALLOC_FUNCTIONS(stname) \
|
#define IMPLEMENT_ASN1_ALLOC_FUNCTIONS(stname) \
|
||||||
IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, stname, stname)
|
IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, stname, stname)
|
||||||
|
|
||||||
#define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) \
|
#define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(pre, stname, itname, fname) \
|
||||||
stname *fname##_new(void) \
|
pre stname *fname##_new(void) \
|
||||||
{ \
|
{ \
|
||||||
return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \
|
return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \
|
||||||
} \
|
} \
|
||||||
void fname##_free(stname *a) \
|
pre void fname##_free(stname *a) \
|
||||||
{ \
|
{ \
|
||||||
ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \
|
ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) \
|
||||||
|
IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(/**/, stname, itname, fname)
|
||||||
|
|
||||||
#define IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, fname) \
|
#define IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, fname) \
|
||||||
IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \
|
IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \
|
||||||
IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname)
|
IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user