MAJOR=4
MINOR=21
DEVNAME=tty21
     	ˆÅÄƒaÃ¿Á æ    	/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __NET_WEXT_H
#define __NET_WEXT_H

#include <net/iw_handler.h>

struct net;

#ifdef CONFIG_WEXT_CORE
int wext_handle_ioctl(struct net *net, unsigned int cmd,
		      void __user *arg);
int compat_wext_handle_ioctl(struct net *net, unsigned int cmd,
			     unsigned long arg);

struct iw_statistics *get_wireless_stats(struct net_device *dev);
int call_commit_handler(struct net_device *dev);
#else
static inline int wext_handle_ioctl(struct net *net, unsigned int cmd,
				    void __user *arg)
{
	return -EINVAL;
}
static inline int compat_wext_handle_ioctl(struct net *net, unsigned int cmd,
					   unsigned long arg)
{
	return -EINVAL;
}
#endif

#ifdef CONFIG_WEXT_PROC
int wext_proc_init(struct net *net);
void wext_proc_exit(struct net *net);
#else
static inline int wext_proc_init(struct net *net)
{
	return 0;
}
static inline void wext_proc_exit(struct net *net)
{
	return;
}
#endif

#ifdef CONFIG_WEXT_PRIV
int ioctl_private_call(struct net_device *dev, struct iwreq *iwr,
		       unsigned int cmd, struct iw_request_info *info,
		       iw_handler handler);
int compat_private_call(struct net_device *dev, struct iwreq *iwr,
			unsigned int cmd, struct iw_request_info *info,
			iw_handler handler);
int iw_handler_get_private(struct net_device *		dev,
			   struct iw_request_info *	info,
			   union iwreq_data *		wrqu,
			   char *			extra);
#else
#define ioctl_private_call NULL
#define compat_private_call NULL
#endif


#endif /* __NET_WEXT_H */
     ˆÅÄƒqÇÚÃ¿Á &    /* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Key-agreement Protocol Primitives (KPP)
 *
 * Copyright (c) 2016, Intel Corporation
 * Authors: Salvatore Benedetto <salvatore.benedetto@intel.com>
 */
#ifndef _CRYPTO_KPP_INT_H
#define _CRYPTO_KPP_INT_H
#include <crypto/kpp.h>
#include <crypto/algapi.h>

/**
 * struct kpp_instance - KPP template instance
 * @free: Callback getting invoked upon instance destruction. Must be set.
 * @s: Internal. Generic crypto core instance state properly layout
 *     to alias with @alg as needed.
 * @alg: The &struct kpp_alg implementation provided by the instance.
 */
struct kpp_instance {
	void (*free)(struct kpp_instance *inst);
	union {
		struct {
			char head[offsetof(struct kpp_alg, base)];
			struct crypto_instance base;
		} s;
		struct kpp_alg alg;
	};
};

/**
 * struct crypto_kpp_spawn - KPP algorithm spawn
 * @base: Internal. Generic crypto core spawn state.
 *
 * Template instances can get a hold on some inner KPP algorithm by
 * binding a &struct crypto_kpp_spawn via
 * crypto_grab_kpp(). Transforms may subsequently get instantiated
 * from the referenced inner &struct kpp_alg by means of
 * crypto_spawn_kpp().
 */
struct crypto_kpp_spawn {
	struct crypto_spawn base;
};

/*
 * Transform internal helpers.
 */
static inline void *kpp_request_ctx(struct kpp_request *req)
{
	return req->__ctx;
}

static inline void kpp_set_reqsize(struct crypto_kpp *kpp,
				   unsigned int reqsize)
{
	crypto_kpp_alg(kpp)->reqsize = reqsize;
}

static inline void *kpp_tfm_ctx(struct crypto_kpp *tfm)
{
	return tfm->base.__crt_ctx;
}

static inline void kpp_request_complete(struct kpp_request *req, int err)
{
	req->base.complete(&req->base, err);
}

static inline const char *kpp_alg_name(struct crypto_kpp *tfm)
{
	return crypto_kpp_tfm(tfm)->__crt_alg->cra_name;
}

/*
 * Template instance internal helpers.
 */
/**
 * kpp_crypto_instance() - Cast a &struct kpp_instance to the corresponding
 *                         generic &struct crypto_instance.
 * @inst: Pointer to the &struct kpp_instance to be cast.
 * Return: A pointer to the &struct crypto_instance embedded in @inst.
 */
static inline struct crypto_instance *kpp_crypto_instance(
	struct kpp_instance *inst)
{
	return &inst->s.base;
}

/**
 * kpp_instance() - Cast a generic &struct crypto_instance to the corresponding
 *                  &struct kpp_instance.
 * @inst: Pointer to the &struct crypto_instance to be cast.
 * Return: A pointer to the &struct kpp_instance @