summaryrefslogtreecommitdiffstats
path: root/pcm/pcm.h
diff options
context:
space:
mode:
Diffstat (limited to 'pcm/pcm.h')
-rw-r--r--pcm/pcm.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/pcm/pcm.h b/pcm/pcm.h
index d7a4cad..8f31f35 100644
--- a/pcm/pcm.h
+++ b/pcm/pcm.h
@@ -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