File: hook_op_annotation.h

package info (click to toggle)
libb-hooks-op-annotation-perl 0.44-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, jessie, jessie-kfreebsd, sid, stretch
  • size: 268 kB
  • ctags: 762
  • sloc: ansic: 181; perl: 11; makefile: 2
file content (28 lines) | stat: -rw-r--r-- 857 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef __HOOK_OP_ANNOTATION_H__
#define __HOOK_OP_ANNOTATION_H__

#include "perl.h"

START_EXTERN_C

typedef struct OPAnnotationGroupImpl *OPAnnotationGroup;
typedef  OP *(*OPAnnotationPPAddr)(pTHX);
typedef void (*OPAnnotationDtor)(pTHX_ void *data);

typedef struct {
    OPAnnotationPPAddr op_ppaddr;
    void *data;
    OPAnnotationDtor dtor;
} OPAnnotation;

OPAnnotation * op_annotation_get(OPAnnotationGroup group, OP *op);
OPAnnotation * op_annotation_new(OPAnnotationGroup group, OP *op, void *data, OPAnnotationDtor dtor);
void op_annotate(OPAnnotationGroup table, OP * op, void *data, OPAnnotationDtor dtor);
void op_annotation_delete(pTHX_ OPAnnotationGroup table, OP * annotation);

OPAnnotationGroup op_annotation_group_new();
void op_annotation_group_free(pTHX_ OPAnnotationGroup group);

END_EXTERN_C

#endif /* __HOOK_OP_ANNOTATION_H__ */