1
  *   ˆl–Ü4ý( ©³( 	Å€fàB¦-ÿÁƒ›w_†I|¥�+ÁÀ é    /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
/*
 * Copyright (c) 2021 Mellanox Technologies Ltd.  All rights reserved.
 */
#ifndef DEF_RDMA_IB_SYSFS_H
#define DEF_RDMA_IB_SYSFS_H

#include <linux/sysfs.h>

struct ib_device;

struct ib_port_attribute {
	struct attribute attr;
	ssize_t (*show)(struct ib_device *ibdev, u32 port_num,
			struct ib_port_attribute *attr, char *buf);
	ssize_t (*store)(struct ib_device *ibdev, u32 port_num,
			 struct ib_port_attribute *attr, const char *buf,
			 size_t count);
};

#define IB_PORT_ATTR_RW(_name)                                                 \
	struct ib_port_attribute ib_port_attr_##_name = __ATTR_RW(_name)

#define IB_PORT_ATTR_ADMIN_RW(_name)                                           \
	struct ib_port_attribute ib_port_attr_##_name =                        \
		__ATTR_RW_MODE(_name, 0600)

#define IB_PORT_ATTR_RO(_name)                                                 \
	struct ib_port_attribute ib_port_attr_##_name = __ATTR_RO(_name)

#define IB_PORT_ATTR_WO(_name)                                                 \
	struct ib_port_attribute ib_port_attr_##_name = __ATTR_WO(_name)

struct ib_device *ib_port_sysfs_get_ibdev_kobj(struct kobject *kobj,
					       u32 *port_num);

#endif
  $   ˆl–Ðz¾”ªe¶…8 ^¸ÜdJbÑ¿Ã„î4×¿ÂÁ ?÷     /*-
 * WARNING: do not edit!
 * Generated by Makefile from include/openssl/crmf.h.in
 *
 * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved.
 * Copyright Nokia 2007-2019
 * Copyright Siemens AG 2015-2019
 *
 * Licensed under the Apache License 2.0 (the "License").  You may not use
 * this file except in compliance with the License.  You can obtain a copy
 * in the file LICENSE in the source distribution or at
 * https://www.openssl.org/source/license.html
 *
 * CRMF (RFC 4211) implementation by M. Peylo, M. Viljanen, and D. von Oheimb.
 */

/* clang-format off */

/* clang-format on */

#ifndef OPENSSL_CRMF_H
#define OPENSSL_CRMF_H

#include <openssl/opensslconf.h>

#ifndef OPENSSL_NO_CRMF
#include <openssl/opensslv.h>
#include <openssl/safestack.h>
#include <openssl/crmferr.h>
#include <openssl/x509v3.h> /* for GENERAL_NAME etc. */
#include <openssl/cms.h>

/* explicit #includes not strictly needed since implied by the above: */
#include <openssl/types.h>
#include <openssl/x509.h>

#ifdef __cplusplus
extern "C" {
#endif

#define OSSL_CRMF_POPOPRIVKEY_THISMESSAGE 0
#define OSSL_CRMF_POPOPRIVKEY_SUBSEQUENTMESSAGE 1
#define OSSL_CRMF_POPOPRIVKEY_DHMAC 2
#define OSSL_CRMF_POPOPRIVKEY_AGREEMAC 3
#define OSSL_CRMF_POPOPRIVKEY_ENCRYPTEDKEY 4

#define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0
#define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1
typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE;
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE)

typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY;
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY)

typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG;
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG)
DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG)
/* clang-format off */
SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG)
#define sk_OSSL_CRMF_MSG_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk))
#define sk_OSSL_CRMF_MSG_value(sk, idx) ((OSSL_CRMF_MSG *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk), (idx)))
#define sk_OSSL_CRMF_MSG_new(cmp) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp)))
#define sk_OSSL_CRMF_MSG_new_null() ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_new_null())
#define sk_OSSL_CRMF_MSG_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp), (n)))
#define sk_OSSL_CRMF_MSG_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_MSG_sk_type(sk), (n))
#define sk_OSSL_CRMF_MSG_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_MSG_sk_type(sk))
#define sk_OSSL_CRMF_MSG_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_MSG_sk_type(sk))
#define sk_OSSL_CRMF_MSG_delete(sk, i)