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:
2026-02-26 19:44:21 +00:00
parent e2b19c3e9a
commit b631fca0fd
25 changed files with 3692 additions and 9 deletions

41
toolchain/ifc/msg.h Normal file
View 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