diff --git a/tools/bifcl/builtin-func.y b/tools/bifcl/builtin-func.y index d28d2cdcd9..b9b41ff230 100644 --- a/tools/bifcl/builtin-func.y +++ b/tools/bifcl/builtin-func.y @@ -631,20 +631,20 @@ head_1: TOK_ID opt_ws arg_begin // (e.g. ones at global scope that may be used to implement // the BIF itself). fprintf(fp_func_h, - "namespace zeek { %sextern BifReturnVal %s_bif(Frame* frame, const zeek::Args*);%s }\n", + "namespace zeek { %sextern BifReturnVal %s_bif(::Frame* frame, const zeek::Args*);%s }\n", decl.c_namespace_start.c_str(), decl.bare_name.c_str(), decl.c_namespace_end.c_str()); // This is the deprecated, legacy, version of the BIF that // forwards to the "canonical" version. It also does have // a "bro_" prefix in the name itself, but no "_bif" suffix. fprintf(fp_func_h, - "%s [[deprecated(\"Remove in v4.1. Use zeek::%s_bif.\")]] inline BifReturnVal bro_%s(Frame* frame, const zeek::Args* args)", + "%s [[deprecated(\"Remove in v4.1. Use zeek::%s_bif.\")]] inline BifReturnVal bro_%s(::Frame* frame, const zeek::Args* args)", decl.c_namespace_start.c_str(), decl.c_fullname.c_str(), decl.bare_name.c_str()); fprintf(fp_func_h, " { return zeek::%s_bif(frame, args); } %s\n", decl.c_fullname.c_str(), decl.c_namespace_end.c_str()); fprintf(fp_func_def, - "BifReturnVal zeek::%s_bif(Frame* frame, const zeek::Args* %s)", + "BifReturnVal zeek::%s_bif(::Frame* frame, const zeek::Args* %s)", decl.c_fullname.c_str(), arg_list_name); record_bif_item(decl.bro_fullname.c_str(), "FUNCTION"); diff --git a/tools/bifcl/include/bif_type.def b/tools/bifcl/include/bif_type.def index 6b3387c41f..ab168f3d34 100644 --- a/tools/bifcl/include/bif_type.def +++ b/tools/bifcl/include/bif_type.def @@ -1,17 +1,17 @@ -// (id, bif_type, bro_type, c_type, c_type_smart, accessor, accessor_smart, cast_smart, constructor, ctor_smart) -DEFINE_BIF_TYPE(TYPE_ADDR, "addr", "addr", "AddrVal*", "zeek::IntrusivePtr", "%s->AsAddrVal()", "%s", "", "zeek::IntrusivePtr{zeek::AdoptRef{}, %s}", "std::move(%s)") -DEFINE_BIF_TYPE(TYPE_ANY, "any", "any", "Val*", "zeek::IntrusivePtr", "%s", "%s", "", "zeek::IntrusivePtr{zeek::AdoptRef{}, %s}", "std::move(%s)") -DEFINE_BIF_TYPE(TYPE_BOOL, "bool", "bool", "int", "int", "%s->AsBool()", "%s->AsBool()", "", "val_mgr->Bool(%s)", "val_mgr->Bool(%s)") -DEFINE_BIF_TYPE(TYPE_CONN_ID, "conn_id", "conn_id", "Val*", "zeek::IntrusivePtr", "%s", "%s", "", "zeek::IntrusivePtr{zeek::AdoptRef{}, %s}", "std::move(%s)") -DEFINE_BIF_TYPE(TYPE_CONNECTION, "connection", "connection", "Connection*", "Connection*", "%s->AsRecordVal()->GetOrigin()", "%s->AsRecordVal()->GetOrigin()", "", "%s->ConnVal()", "%s->ConnVal()") -DEFINE_BIF_TYPE(TYPE_COUNT, "count", "count", "bro_uint_t", "bro_uint_t", "%s->AsCount()", "%s->AsCount()", "", "val_mgr->Count(%s)", "val_mgr->Count(%s)") -DEFINE_BIF_TYPE(TYPE_DOUBLE, "double", "double", "double", "double", "%s->AsDouble()", "%s->AsDouble()", "", "zeek::make_intrusive(%s)", "zeek::make_intrusive(%s)") -DEFINE_BIF_TYPE(TYPE_FILE, "file", "file", "BroFile*", "zeek::IntrusivePtr", "%s->AsFile()", "%s", "", "zeek::make_intrusive(zeek::IntrusivePtr{zeek::AdoptRef{}, %s})", "std::move(%s)") -DEFINE_BIF_TYPE(TYPE_INT, "int", "int", "bro_int_t", "bro_int_t", "%s->AsInt()", "%s->AsInt()", "", "val_mgr->Int(%s)", "val_mgr->Int(%s)") -DEFINE_BIF_TYPE(TYPE_INTERVAL, "interval", "interval", "double", "double", "%s->AsInterval()", "%s->AsInterval()", "", "zeek::make_intrusive(%s, Seconds)", "zeek::make_intrusive(%s, Seconds)") -DEFINE_BIF_TYPE(TYPE_PATTERN, "pattern", "pattern", "RE_Matcher*", "zeek::IntrusivePtr", "%s->AsPattern()", "%s", "", "zeek::make_intrusive(%s)", "std::move(%s)") -DEFINE_BIF_TYPE(TYPE_PORT, "port", "port", "PortVal*", "zeek::IntrusivePtr", "%s->AsPortVal()", "%s", "", "zeek::IntrusivePtr{zeek::AdoptRef{}, %s}", "std::move(%s)") -DEFINE_BIF_TYPE(TYPE_STRING, "string", "string", "StringVal*", "zeek::IntrusivePtr", "%s->AsStringVal()", "%s", "", "zeek::IntrusivePtr{zeek::AdoptRef{}, %s}", "std::move(%s)") -DEFINE_BIF_TYPE(TYPE_SUBNET, "subnet", "subnet", "SubNetVal*", "zeek::IntrusivePtr", "%s->AsSubNetVal()", "%s", "", "zeek::IntrusivePtr{zeek::AdoptRef{}, %s}", "std::move(%s)") -DEFINE_BIF_TYPE(TYPE_TIME, "time", "time", "double", "double", "%s->AsTime()", "%s->AsTime()", "", "zeek::make_intrusive(%s)", "zeek::make_intrusive(%s)") -DEFINE_BIF_TYPE(TYPE_OTHER, "", "", "Val*", "zeek::IntrusivePtr", "%s", "%s", "", "zeek::IntrusivePtr{zeek::AdoptRef{}, %s}", "std::move(%s)") +// (id, bif_type, bro_type, c_type, c_type_smart, accessor, accessor_smart, cast_smart, constructor, ctor_smart) +DEFINE_BIF_TYPE(TYPE_ADDR, "addr", "addr", "zeek::AddrVal*", "zeek::IntrusivePtr", "%s->AsAddrVal()", "%s", "", "zeek::IntrusivePtr{zeek::AdoptRef{}, %s}", "std::move(%s)") +DEFINE_BIF_TYPE(TYPE_ANY, "any", "any", "zeek::Val*", "zeek::IntrusivePtr", "%s", "%s", "", "zeek::IntrusivePtr{zeek::AdoptRef{}, %s}", "std::move(%s)") +DEFINE_BIF_TYPE(TYPE_BOOL, "bool", "bool", "int", "int", "%s->AsBool()", "%s->AsBool()", "", "val_mgr->Bool(%s)", "val_mgr->Bool(%s)") +DEFINE_BIF_TYPE(TYPE_CONN_ID, "conn_id", "conn_id", "zeek::Val*", "zeek::IntrusivePtr", "%s", "%s", "", "zeek::IntrusivePtr{zeek::AdoptRef{}, %s}", "std::move(%s)") +DEFINE_BIF_TYPE(TYPE_CONNECTION, "connection", "connection", "Connection*", "Connection*", "%s->AsRecordVal()->GetOrigin()", "%s->AsRecordVal()->GetOrigin()", "", "%s->ConnVal()", "%s->ConnVal()") +DEFINE_BIF_TYPE(TYPE_COUNT, "count", "count", "bro_uint_t", "bro_uint_t", "%s->AsCount()", "%s->AsCount()", "", "val_mgr->Count(%s)", "val_mgr->Count(%s)") +DEFINE_BIF_TYPE(TYPE_DOUBLE, "double", "double", "double", "double", "%s->AsDouble()", "%s->AsDouble()", "", "zeek::make_intrusive(%s)", "zeek::make_intrusive(%s)") +DEFINE_BIF_TYPE(TYPE_FILE, "file", "file", "BroFile*", "zeek::IntrusivePtr", "%s->AsFile()", "%s", "", "zeek::make_intrusive(zeek::IntrusivePtr{zeek::AdoptRef{}, %s})", "std::move(%s)") +DEFINE_BIF_TYPE(TYPE_INT, "int", "int", "bro_int_t", "bro_int_t", "%s->AsInt()", "%s->AsInt()", "", "val_mgr->Int(%s)", "val_mgr->Int(%s)") +DEFINE_BIF_TYPE(TYPE_INTERVAL, "interval", "interval", "double", "double", "%s->AsInterval()", "%s->AsInterval()", "", "zeek::make_intrusive(%s, Seconds)", "zeek::make_intrusive(%s, Seconds)") +DEFINE_BIF_TYPE(TYPE_PATTERN, "pattern", "pattern", "RE_Matcher*", "zeek::IntrusivePtr", "%s->AsPattern()", "%s", "", "zeek::make_intrusive(%s)", "std::move(%s)") +DEFINE_BIF_TYPE(TYPE_PORT, "port", "port", "zeek::PortVal*", "zeek::IntrusivePtr", "%s->AsPortVal()", "%s", "", "zeek::IntrusivePtr{zeek::AdoptRef{}, %s}", "std::move(%s)") +DEFINE_BIF_TYPE(TYPE_STRING, "string", "string", "zeek::StringVal*", "zeek::IntrusivePtr", "%s->AsStringVal()", "%s", "", "zeek::IntrusivePtr{zeek::AdoptRef{}, %s}", "std::move(%s)") +DEFINE_BIF_TYPE(TYPE_SUBNET, "subnet", "subnet", "zeek::SubNetVal*", "zeek::IntrusivePtr", "%s->AsSubNetVal()", "%s", "", "zeek::IntrusivePtr{zeek::AdoptRef{}, %s}", "std::move(%s)") +DEFINE_BIF_TYPE(TYPE_TIME, "time", "time", "double", "double", "%s->AsTime()", "%s->AsTime()", "", "zeek::make_intrusive(%s)", "zeek::make_intrusive(%s)") +DEFINE_BIF_TYPE(TYPE_OTHER, "", "", "zeek::Val*", "zeek::IntrusivePtr", "%s", "%s", "", "zeek::IntrusivePtr{zeek::AdoptRef{}, %s}", "std::move(%s)")