/* Check if the identifiers of two objects are identical  */
int nl_object_identical(struct nl_object *a, struct nl_object *b)
/* Check if the identifiers of two objects are identical  */
int nl_object_identical(struct nl_object *a, struct nl_object *b)
{
	struct nl_object_ops *ops = obj_ops(a);
	int req_attrs;
	if (ops != obj_ops(b))
		return 0;
	req_attrs = ops->oo_id_attrs;
	if (req_attrs == ~0)
		req_attrs = a->ce_mask & b->ce_mask;
	if ((a->ce_mask & req_attrs) != req_attrs ||
	    (b->ce_mask & req_attrs) != req_attrs)
		return 0;
	if (ops->oo_compare == NULL)
		return 0;
	return !(ops->oo_compare(a, b, req_attrs, 0));
}