diff options
Diffstat (limited to 'pcm/pcm.h')
-rw-r--r-- | pcm/pcm.h | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -49,11 +49,21 @@ * Structures */ +/* Utils */ + +struct list_head { + struct list_head *next; + struct list_head *prev; + void *data; +}; + /* PCM OPS */ struct pcm_ops { int (*asm_write)(void *data, unsigned int value, char *mnemonic); int (*disasm_write)(void *data, unsigned int value, char *mnemonic); + int (*func_address)(void *data, char *func); + int (*label_address)(void *data, char *label); void *data; }; @@ -76,15 +86,25 @@ struct pcm_op_desc { int binary_print(unsigned int value); +struct list_head *list_head_alloc(struct list_head *prev, struct list_head *next, void *data); +void list_head_free(struct list_head *list); + /* PCM OPS */ int pcm_ops_register(struct pcm_ops *ops); +void pcm_ops_unregister(void); int pcm_ops_asm_write(unsigned int value, char *mnemonic); int pcm_ops_disasm_write(unsigned int value, char *mnemonic); +int pcm_ops_func_address(char *func); +int pcm_ops_label_address(char *func); /* PCM OP codes */ int pcm_op_asm(char *arguments[], unsigned int count); int pcm_op_disasm(unsigned int *arguments, unsigned int count); +/* PCM padding */ + +int pcm_padding_asm(unsigned int padding); + #endif |