Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

sch_api.c File Reference

#include <linux/config.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/socket.h>
#include <linux/sockios.h>
#include <linux/in.h>
#include <linux/errno.h>
#include <linux/interrupt.h>
#include <linux/netdevice.h>
#include <linux/skbuff.h>
#include <linux/rtnetlink.h>
#include <linux/init.h>
#include <linux/proc_fs.h>
#include <linux/kmod.h>
#include <net/sock.h>
#include <net/pkt_sched.h>
#include <asm/processor.h>
#include <asm/uaccess.h>
#include <asm/system.h>
#include <asm/bitops.h>

Include dependency graph for sch_api.c:

Go to the source code of this file.

Defines

#define BUG_TRAP(x)   if (!(x)) { printk("Assertion (" #x ") failed at " __FILE__ "(%d):" __FUNCTION__ "\n", __LINE__); }
#define INIT_QDISC(name)

Functions

int register_qdisc (struct Qdisc_ops *qops)
int unregister_qdisc (struct Qdisc_ops *qops)
Qdiscqdisc_lookup (struct device *dev, u32 handle)
Qdiscqdisc_leaf (struct Qdisc *p, u32 classid)
Qdisc_opsqdisc_lookup_ops (struct rtattr *kind)
qdisc_rate_tableqdisc_get_rtab (struct tc_ratespec *r, struct rtattr *tab)
void qdisc_put_rtab (struct qdisc_rate_table *tab)
u32 qdisc_alloc_handle (struct device *dev)
static struct Qdiscdev_graft_qdisc (struct device *dev, struct Qdisc *qdisc)
int qdisc_graft (struct device *dev, struct Qdisc *parent, u32 classid, struct Qdisc *new, struct Qdisc **old)
int psched_tod_diff (int delta_sec, int bound)
 __initfunc (int psched_calibrate_clock(void))

Variables

static struct Qdisc_opsqdisc_base = NULL
static struct qdisc_rate_tableqdisc_rtab_list
int psched_us_per_tick = 1
int psched_tick_per_us = 1
psched_time_t psched_time_base
psched_tdiff_t psched_clock_per_hz
int psched_clock_scale


Define Documentation

#define BUG_TRAP x   )     if (!(x)) { printk("Assertion (" #x ") failed at " __FILE__ "(%d):" __FUNCTION__ "\n", __LINE__); }
 

Definition at line 43 of file sch_api.c.

#define INIT_QDISC name   ) 
 

Value:

{ \
          extern struct Qdisc_ops name##_qdisc_ops; \
          register_qdisc(&##name##_qdisc_ops); \
        }


Function Documentation

__initfunc int   psched_calibrate_clock(void)  ) 
 

Definition at line 1034 of file sch_api.c.

References boot_cpu_data, delay, do_gettimeofday(), HZ, jiffies, PSCHED_GET_TIME, PSCHED_TDIFF, stop(), time_before, timeval::tv_sec, timeval::tv_usec, cpuinfo_x86::x86_capability, and X86_FEATURE_TSC.

Here is the call graph for this function:

static struct Qdisc* dev_graft_qdisc struct device *  dev,
struct Qdisc qdisc
[static]
 

Definition at line 280 of file sch_api.c.

References atomic_read, dev_activate(), dev_deactivate(), end_bh_atomic(), IFF_UP, noop_qdisc, NULL, qdisc_reset(), Qdisc::refcnt, and start_bh_atomic().

Referenced by qdisc_graft().

Here is the call graph for this function:

int psched_tod_diff int  delta_sec,
int  bound
 

Definition at line 988 of file sch_api.c.

u32 qdisc_alloc_handle struct device *  dev  ) 
 

Definition at line 263 of file sch_api.c.

References i, qdisc_lookup(), TC_H_MAKE, TC_H_ROOT, and u32.

Here is the call graph for this function:

struct qdisc_rate_table* qdisc_get_rtab struct tc_ratespec r,
struct rtattr tab
 

Definition at line 219 of file sch_api.c.

References tc_ratespec::cell_log, kmalloc(), memcmp, memcpy, qdisc_rate_table::next, NULL, tc_ratespec::rate, qdisc_rate_table::rate, qdisc_rate_table::refcnt, RTA_DATA, and RTA_PAYLOAD.

Referenced by cbq_change_class(), cbq_init(), tbf_change(), and tcf_police_locate().

Here is the call graph for this function:

int qdisc_graft struct device *  dev,
struct Qdisc parent,
u32  classid,
struct Qdisc new,
struct Qdisc **  old
 

Definition at line 314 of file sch_api.c.

References cl, Qdisc_ops::cl_ops, dev_graft_qdisc(), EINVAL, Qdisc_class_ops::get, Qdisc_class_ops::graft, NULL, Qdisc::ops, and Qdisc_class_ops::put.

Here is the call graph for this function:

struct Qdisc* qdisc_leaf struct Qdisc p,
u32  classid
 

Definition at line 186 of file sch_api.c.

References cl, Qdisc_class_ops::get, Qdisc_class_ops::leaf, NULL, and Qdisc_class_ops::put.

struct Qdisc* qdisc_lookup struct device *  dev,
u32  handle
 

Definition at line 175 of file sch_api.c.

References Qdisc::handle, Qdisc::next, NULL, and Qdisc::q.

Referenced by qdisc_alloc_handle().

struct Qdisc_ops* qdisc_lookup_ops struct rtattr kind  ) 
 

Definition at line 204 of file sch_api.c.

References Qdisc_ops::id, Qdisc_ops::next, and NULL.

void qdisc_put_rtab struct qdisc_rate_table tab  ) 
 

Definition at line 244 of file sch_api.c.

References kfree(), qdisc_rate_table::next, NULL, and qdisc_rate_table::refcnt.

Referenced by cbq_change_class(), cbq_destroy(), cbq_destroy_class(), tbf_change(), tbf_destroy(), tcf_police_destroy(), and tcf_police_locate().

Here is the call graph for this function:

int register_qdisc struct Qdisc_ops qops  ) 
 

Definition at line 138 of file sch_api.c.

References Qdisc_ops::dequeue, EEXIST, Qdisc_ops::enqueue, Qdisc_ops::id, Qdisc_ops::next, noop_qdisc_ops, NULL, Qdisc_ops::requeue, and strcmp.

Referenced by __initfunc().

int unregister_qdisc struct Qdisc_ops qops  ) 
 

Definition at line 158 of file sch_api.c.

References ENOENT, Qdisc_ops::next, and NULL.


Variable Documentation

psched_tdiff_t psched_clock_per_hz
 

Definition at line 1004 of file sch_api.c.

int psched_clock_scale
 

Definition at line 1005 of file sch_api.c.

int psched_tick_per_us = 1
 

Definition at line 962 of file sch_api.c.

psched_time_t psched_time_base
 

Definition at line 1001 of file sch_api.c.

int psched_us_per_tick = 1
 

Definition at line 961 of file sch_api.c.

struct Qdisc_ops* qdisc_base = NULL [static]
 

Definition at line 134 of file sch_api.c.

struct qdisc_rate_table* qdisc_rtab_list [static]
 

Definition at line 217 of file sch_api.c.