0
     3ˆÃÊƒÁÌ ø    3# SPDX-License-Identifier: GPL-2.0-only
config SECURITY_SMACK
	bool "Simplified Mandatory Access Control Kernel Support"
	depends on NET
	depends on INET
	depends on SECURITY
	select NETLABEL
	select SECURITY_NETWORK
	default n
	help
	  This selects the Simplified Mandatory Access Control Kernel.
	  Smack is useful for sensitivity, integrity, and a variety
	  of other mandatory security schemes.
	  If you are unsure how to answer this question, answer N.

config SECURITY_SMACK_BRINGUP
	bool "Reporting on access granted by Smack rules"
	depends on SECURITY_SMACK
	default n
	help
	  Enable the bring-up ("b") access mode in Smack rules.
	  When access is granted by a rule with the "b" mode a
	  message about the access requested is generated. The
	  intention is that a process can be granted a wide set
	  of access initially with the bringup mode set on the
	  rules. The developer can use the information to
	  identify which rules are necessary and what accesses
	  may be inappropriate. The developer can reduce the
	  access rule set once the behavior is well understood.
	  This is a superior mechanism to the oft abused
	  "permissive" mode of other systems.
	  If you are unsure how to answer this question, answer N.

config SECURITY_SMACK_NETFILTER
	bool "Packet marking using secmarks for netfilter"
	depends on SECURITY_SMACK
	depends on NETWORK_SECMARK
	depends on NETFILTER
	default n
	help
	  This enables security marking of network packets using
	  Smack labels.
	  If you are unsure how to answer this question, answer N.

config SECURITY_SMACK_APPEND_SIGNALS
	bool "Treat delivering signals as an append operation"
	depends on SECURITY_SMACK
	default n
	help
	  Sending a signal has been treated as a write operation to the
	  receiving process. If this option is selected, the delivery
	  will be an append operation instead. This makes it possible
	  to differentiate between delivering a network packet and
	  delivering a signal in the Smack rules.
	  If you are unsure how to answer this question, answer N.
  9   5ˆl–Ðz¾””ÔD¨ 	Å íÀ½p.)‹FÿËƒh¹a–Ðz¾””ÔD¨ 	Å íÁ7q°)‹FÿÎ      5-1
     7ˆÆÌ„€mÿË¾Î ?÷     7/* SPDX-License-Identifier: GPL-2.0-only */

/* The industrial I/O core
 *
 * Copyright (c) 2008 Jonathan Cameron
 */
#ifndef _INDUSTRIAL_IO_H_
#define _INDUSTRIAL_IO_H_

#include <linux/device.h>
#include <linux/cdev.h>
#include <linux/iio/types.h>
#include <linux/of.h>
/* IIO TODO LIST */
/*
 * Provide means of adjusting timer accuracy.
 * Currently assumes nano seconds.
 */

enum iio_shared_by {
	IIO_SEPARATE,
	IIO_SHARED_BY_TYPE,
	IIO_SHARED_BY_DIR,
	IIO_SHARED_BY_ALL
};

enum iio_endian {
	IIO_CPU,
	IIO_BE,
	IIO_LE,
};

struct iio_chan_spec;
struct iio_dev;

/**
 * struct iio_chan_spec_ext_info - Extended channel info attribute
 * @name:	Info attribute name
 * @shared:	Whether this attribute is shared between all channels.
 * @read:	Read callback for this info attribute, may be NULL.
 * @write:	Write callback for this info attribute, may be NULL.
 * @private:	Data private to the driver.
 */
struct iio_chan_spec_ext_info {
	const char *name;
	enum iio_shared_by shared;
	ssize_t (*read)(struct iio_dev *, uintptr_t private,
			struct iio_chan_spec const *, char *buf);
	ssize_t (*write)(struct iio_dev *, uintptr_t private,
			 struct iio_chan_spec const *, const char *buf,
			 size_t len);
	uintptr_t private;
};

/**
 * struct iio_enum - Enum channel info attribute
 * @items:	An array of strings.
 * @num_items:	Length of the item array.
 * @set:	Set callback function, may be NULL.
 * @get:	Get callback function, may be NULL.
 *
 * The iio_enum struct can be used to implement enum style channel attributes.
 * Enum style attributes are those which have a set of strings which map to
 * unsigned integer values. The IIO enum helper code takes care of mapping
 * between value and string as well as generating a "_available" file which
 * contains a list of all available items. The set callback will be called when
 * the attribute is updated. The last parameter is the index to the newly
 * 