Node 0 MemTotal:        7863292 kB
Node 0 MemFree:         2030684 kB
Node 0 MemUsed:         5832608 kB
Node 0 SwapCached:       146016 kB
Node 0 Active:          2478580 kB
Node 0 Inactive:        2456292 kB
Node 0 Active(anon):    1516624 kB
Node 0 Inactive(anon):   352156 kB
Node 0 Active(file):     961956 kB
Node 0 Inactive(file):  2104136 kB
Node 0 Unevictable:        4912 kB
Node 0 Mlocked:             912 kB
Node 0 Dirty:               452 kB
Node 0 Writeback:             0 kB
Node 0 FilePages:       3275428 kB
Node 0 Mapped:           108212 kB
Node 0 AnonPages:       1732392 kB
Node 0 Shmem:             63304 kB
Node 0 KernelStack:       10336 kB
Node 0 PageTables:        18268 kB
Node 0 SecPageTables:         0 kB
Node 0 NFS_Unstable:          0 kB
Node 0 Bounce:                0 kB
Node 0 WritebackTmp:          0 kB
Node 0 KReclaimable:     570416 kB
Node 0 Slab:             761796 kB
Node 0 SReclaimable:     570416 kB
Node 0 SUnreclaim:       191380 kB
Node 0 AnonHugePages:    464896 kB
Node 0 ShmemHugePages:        0 kB
Node 0 ShmemPmdMapped:        0 kB
Node 0 FileHugePages:         0 kB
Node 0 FilePmdMapped:         0 kB
Node 0 Unaccepted:            0 kB
Node 0 HugePages_Total:     0
Node 0 HugePages_Free:      0
Node 0 HugePages_Surp:      0
     �Á¿Â      File not found.
  #   ˆl–Ü4ý( ©³( 	Å€fàB¦-ÿÆƒeÆÜÅÀÃ H    /* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright (c) 2018-2019, Linaro Ltd.
 * Author: Georgi Djakov <georgi.djakov@linaro.org>
 */

#ifndef __LINUX_INTERCONNECT_H
#define __LINUX_INTERCONNECT_H

#include <linux/mutex.h>
#include <linux/types.h>

/* macros for converting to icc units */
#define Bps_to_icc(x)	((x) / 1000)
#define kBps_to_icc(x)	(x)
#define MBps_to_icc(x)	((x) * 1000)
#define GBps_to_icc(x)	((x) * 1000 * 1000)
#define bps_to_icc(x)	(1)
#define kbps_to_icc(x)	((x) / 8 + ((x) % 8 ? 1 : 0))
#define Mbps_to_icc(x)	((x) * 1000 / 8)
#define Gbps_to_icc(x)	((x) * 1000 * 1000 / 8)

struct icc_path;
struct device;

/**
 * struct icc_bulk_data - Data used for bulk icc operations.
 *
 * @path: reference to the interconnect path (internal use)
 * @name: the name from the "interconnect-names" DT property
 * @avg_bw: average bandwidth in icc units
 * @peak_bw: peak bandwidth in icc units
 */
struct icc_bulk_data {
	struct icc_path	*path;
	const char *name;
	u32 avg_bw;
	u32 peak_bw;
};

#if IS_ENABLED(CONFIG_INTERCONNECT)

struct icc_path *icc_get(struct device *dev, const int src_id,
			 const int dst_id);
struct icc_path *of_icc_get(struct device *dev, const char *name);
struct icc_path *devm_of_icc_get(struct device *dev, const char *name);
int devm_of_icc_bulk_get(struct device *dev, int num_paths, struct icc_bulk_data *paths);
struct icc_path *of_icc_get_by_index(struct device *dev, int idx);
void icc_put(struct icc_path *path);
int icc_enable(struct icc_path *path);
int icc_disable(struct icc_path *path);
int icc_set_bw(struct icc_path *path, u32 avg_bw, u32 peak_bw);
void icc_set_tag(struct icc_path *path, u32 tag);
const char *icc_get_name(struct icc_path *path);
int __must_check of_icc_bulk_get(struct device *dev, int num_paths,
				 struct icc_bulk_data *paths);
void icc_bulk_put(int num_paths, struct icc_bulk_data *paths);
int icc_bulk_set_bw(int num_paths, const struct icc_bulk_data *paths);
int icc_bulk_enable(int num_paths, const struct icc_bulk_data *paths);
void icc_bulk_disable(int num_paths, const struct icc_bulk_data *paths);

#else

static inline struct icc_path *icc_get(struct device *dev, const int src_id,
				       const int dst_id)
{
	return NULL;
}

static inline struct icc_path *of_icc_get(struct device *dev,
					  const char *name)
{
	return NULL;
}

static inline struct icc_path *devm_of_icc_get(struct device *dev,
						const char *name)
{
	return NULL;
}

static inline struct icc_path *of_icc_get_by_index(struct device *dev, int idx)
{
	return NULL;
}

static inline void icc_put(struct icc_path *path)
{
}

static inline int icc_enable(struct icc_path *path)
{
	return 0;
}

static inline int icc_disable(struct icc_path *path)
{
	return 0;
