M7350/kernel/include/net/netprio_cgroup.h

51 lines
1.1 KiB
C
Raw Normal View History

2024-09-09 08:52:07 +00:00
/*
* netprio_cgroup.h Control Group Priority set
*
*
* Authors: Neil Horman <nhorman@tuxdriver.com>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*
*/
#ifndef _NETPRIO_CGROUP_H
#define _NETPRIO_CGROUP_H
2024-09-09 08:57:42 +00:00
2024-09-09 08:52:07 +00:00
#include <linux/cgroup.h>
#include <linux/hardirq.h>
#include <linux/rcupdate.h>
2024-09-09 08:57:42 +00:00
#if IS_ENABLED(CONFIG_CGROUP_NET_PRIO)
2024-09-09 08:52:07 +00:00
struct netprio_map {
struct rcu_head rcu;
u32 priomap_len;
u32 priomap[];
};
2024-09-09 08:57:42 +00:00
void sock_update_netprioidx(struct sock *sk);
2024-09-09 08:52:07 +00:00
static inline u32 task_netprioidx(struct task_struct *p)
{
2024-09-09 08:57:42 +00:00
struct cgroup_subsys_state *css;
2024-09-09 08:52:07 +00:00
u32 idx;
rcu_read_lock();
2024-09-09 08:57:42 +00:00
css = task_css(p, net_prio_cgrp_id);
idx = css->cgroup->id;
2024-09-09 08:52:07 +00:00
rcu_read_unlock();
return idx;
}
2024-09-09 08:57:42 +00:00
#else /* !CONFIG_CGROUP_NET_PRIO */
2024-09-09 08:52:07 +00:00
static inline u32 task_netprioidx(struct task_struct *p)
{
return 0;
}
#define sock_update_netprioidx(sk)
2024-09-09 08:57:42 +00:00
#endif /* CONFIG_CGROUP_NET_PRIO */
2024-09-09 08:52:07 +00:00
#endif /* _NET_CLS_CGROUP_H */