scanner: rename to as_c_arg and c_type for the c-specific functions

This commit is contained in:
Peter Hutterer 2023-02-22 10:42:09 +10:00
parent 4293f2f040
commit cc0a06aed6
3 changed files with 22 additions and 22 deletions

View file

@ -77,11 +77,11 @@ class Argument:
raise ValueError("Interface may only be set for object types")
@property
def as_arg(self) -> str:
return f"{self.ctype} {self.name}"
def as_c_arg(self) -> str:
return f"{self.c_type} {self.name}"
@property
def ctype(self) -> str:
def c_type(self) -> str:
return {
"uint": "uint32_t",
"int": "int32_t",
@ -334,12 +334,12 @@ class Interface:
)
@property
def ctype(self) -> str:
def c_type(self) -> str:
return f"struct {self.name} *"
@property
def as_arg(self) -> str:
return f"{self.ctype} {self.name}"
def as_c_arg(self) -> str:
return f"{self.c_type} {self.name}"
@property
def camel_name(self) -> str:
@ -654,15 +654,15 @@ def generate_source(
)
# jinja filter to convert foo into "struct foo *"
def filter_ctype(name):
def filter_c_type(name):
return f"struct {name} *"
# jinja filter to convert foo into "struct foo *foo"
def filter_as_arg(name):
return f"struct {name} * {name}"
def filter_as_c_arg(name):
return f"struct {name} *{name}"
env.filters["ctype"] = filter_ctype
env.filters["as_arg"] = filter_as_arg
env.filters["c_type"] = filter_c_type
env.filters["as_c_arg"] = filter_as_c_arg
env.filters["camel"] = snake2camel
jtemplate = env.get_template(template.name)
return jtemplate.stream(data)
@ -697,8 +697,8 @@ def main() -> None:
string -> "s"
ei-scanner adds the following Jinja2 filters for convenience:
{{foo|ctype}} ... resolves to "struct foo *"
{{foo|as_arg}} ... resolves to "struct foo *foo"
{{foo|c_type}} ... resolves to "struct foo *"
{{foo|as_c_arg}} ... resolves to "struct foo *foo"
{{foo_bar|camel}} ... resolves to "FooBar"
"""),

View file

@ -47,7 +47,7 @@ struct {{target.name}};
* message sending functions (requests for libei, events for libeis).
*/
extern int {{target.name}}_send_message(
{{target.name|as_arg}}, const struct brei_object *obj, uint32_t opcode,
{{target.name|as_c_arg}}, const struct brei_object *obj, uint32_t opcode,
const char *signature, size_t nargs, ...
);
@ -57,14 +57,14 @@ extern int {{target.name}}_send_message(
***************************************************************************/
/* returns the protocol interface from the given struct, see the dispatcher */
const struct {{interface.name}}_interface *{{interface.name}}_get_interface({{interface.as_arg}});
const struct {{interface.name}}_interface *{{interface.name}}_get_interface({{interface.as_c_arg}});
/* returns the message sending context from the given struct */
{{target.name|ctype}} {{interface.name}}_get_{{target.context}}({{interface.as_arg}});
{{target.name|c_type}} {{interface.name}}_get_{{target.context}}({{interface.as_c_arg}});
/* Returns the protocol object id from the given struct */
const struct brei_object *
{{interface.name}}_get_proto_object({{interface.as_arg}});
{{interface.name}}_get_proto_object({{interface.as_c_arg}});
/* request opcodes */
{% for request in interface.requests %}
@ -79,13 +79,13 @@ const struct brei_object *
/* Message sender functions */
{% for outgoing in interface.outgoing %}
int
{{outgoing.fqdn}}({{interface.as_arg}}{%- for arg in outgoing.arguments %}, {{arg.as_arg}}{% endfor %})
{{outgoing.fqdn}}({{interface.as_c_arg}}{%- for arg in outgoing.arguments %}, {{arg.as_c_arg}}{% endfor %})
{
if (!{{interface.name}})
return -ENOENT;
const struct brei_object *obj = {{interface.name}}_get_proto_object({{interface.name}});
{{target.name|ctype}} ctx = {{interface.name}}_get_{{target.context}}({{interface.name}});
{{target.name|c_type}} ctx = {{interface.name}}_get_{{target.context}}({{interface.name}});
if (obj->version < {{outgoing.fqdn.upper()}}_SINCE_VERSION)
return -ENOTSUP;
@ -104,7 +104,7 @@ int
*/
static struct brei_result *
{{interface.name}}_dispatcher(
{{interface.as_arg}},
{{interface.as_c_arg}},
uint32_t opcode,
size_t nargs,
union brei_arg *args

View file

@ -78,7 +78,7 @@ enum {{enum.fqdn}} {
/* Message sender functions */
{% for outgoing in interface.outgoing %}
extern int
{{outgoing.fqdn}}({{interface.as_arg}}{%- for arg in outgoing.arguments %}, {{arg.as_arg}}{% endfor %});
{{outgoing.fqdn}}({{interface.as_c_arg}}{%- for arg in outgoing.arguments %}, {{arg.as_c_arg}}{% endfor %});
{% endfor %}
@ -89,7 +89,7 @@ extern int
*/
struct {{interface.name}}_interface {
{% for incoming in interface.incoming %}
struct brei_result * (*{{incoming.name}})({{interface.as_arg}}{%- for arg in incoming.arguments %}, {{arg.as_arg}}{% endfor %});
struct brei_result * (*{{incoming.name}})({{interface.as_c_arg}}{%- for arg in incoming.arguments %}, {{arg.as_c_arg}}{% endfor %});
{% endfor %}
};
{% endfor %}