X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=generate-binding-glue.py;h=4791b4dc86653ad2d30270f67960ebd7112ed75b;hb=9fcedd79dd25767658b653ed04a77cf65316b0a5;hp=7e003a5389481975ca6345c296186a9475f35ecb;hpb=182aa777f3ef9a2e82d2436a222dfe7dc9f79178;p=staging%2Fwindowmanager.git diff --git a/generate-binding-glue.py b/generate-binding-glue.py index 7e003a5..4791b4d 100644 --- a/generate-binding-glue.py +++ b/generate-binding-glue.py @@ -50,6 +50,9 @@ def emit_func_impl(api, f): def emit_func(api, f): p('void %(impl_name)s(afb_req req) noexcept {' % f) p(' std::lock_guard guard(binding_m);') + p(' #ifdef ST') + p(' ST();') + p(' #endif') p(' if (g_afb_instance == nullptr) {', ' afb_req_fail(req, "failed", "Binding not initialized, did the compositor die?");', ' return;', @@ -70,7 +73,8 @@ def emit_afb_verbs(api): p(' {}', '};') def emit_binding(api): - p('namespace {', '') + p('namespace {') + p('std::mutex binding_m;', '') for func in api['functions']: emit_func(api, func) p('} // namespace', '') @@ -92,7 +96,7 @@ def emit_afb_api(api): for f in api['functions']: p(' result_type %(name)s(' % f + ', '.join(map(lambda x: '%(type)s %(name)s' % x, f.get('args', []))) + ');') p('};', '') - p('} // namespace wm') + p('} // namespace wm', '') # names must always be valid in c and unique for each function (that is its arguments) # arguments will be looked up from json request, range checking needs to be implemented @@ -127,6 +131,7 @@ API = { ], }, { 'name': 'list_drawing_names', }, + { 'name': 'ping' }, { 'name': 'debug_status', }, { 'name': 'debug_layers', },