toolchain: add a program for compiling ipc interface definitions
ifc can be used to compile .if files into self-contained header-only C libraries, which can be used to send/receive messages that conform to the described interface.
This commit is contained in:
41
toolchain/ifc/msg.h
Normal file
41
toolchain/ifc/msg.h
Normal file
@@ -0,0 +1,41 @@
|
||||
#ifndef IFC_MSG_H_
|
||||
#define IFC_MSG_H_
|
||||
|
||||
#include <blue/core/queue.h>
|
||||
|
||||
struct type;
|
||||
|
||||
struct msg_parameter {
|
||||
char *p_name;
|
||||
const struct type *p_type;
|
||||
b_queue_entry p_entry;
|
||||
};
|
||||
|
||||
struct msg_definition {
|
||||
char *msg_name;
|
||||
b_queue_entry msg_entry;
|
||||
|
||||
b_queue msg_params;
|
||||
b_queue msg_results;
|
||||
};
|
||||
|
||||
extern struct msg_definition *msg_definition_create(const char *name);
|
||||
extern void msg_definition_destroy(struct msg_definition *msg);
|
||||
|
||||
extern bool msg_definition_has_param(
|
||||
struct msg_definition *msg,
|
||||
const char *name);
|
||||
extern bool msg_definition_has_result(
|
||||
struct msg_definition *msg,
|
||||
const char *name);
|
||||
|
||||
extern int msg_definition_add_param(
|
||||
struct msg_definition *msg,
|
||||
const struct type *type,
|
||||
const char *name);
|
||||
extern int msg_definition_add_result(
|
||||
struct msg_definition *msg,
|
||||
const struct type *type,
|
||||
const char *name);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user