X-Git-Url: http://git.ozo.com/?p=madwifi%2F.git;a=blobdiff_plain;f=ath_rate%2Fsample%2Fsample.c;h=83391d50632ec503d6edf2f603bbcf8c6b707b53;hp=01ccfbab5861a753e776a521e3e94ccb45b579f2;hb=HEAD;hpb=28fc5861246c1ffe1b000d2c8ed73ecc872eec06 diff --git a/ath_rate/sample/sample.c b/ath_rate/sample/sample.c index 01ccfba..83391d5 100644 --- a/ath_rate/sample/sample.c +++ b/ath_rate/sample/sample.c @@ -1042,17 +1042,10 @@ proc_read_nodes(struct ieee80211vap *vap, const int size, char *buf, int space) } static int -proc_ratesample_open(struct inode *inode, struct file *file) +proc_ratesample_open(struct inode *inode, struct file *file, unsigned long size) { struct proc_ieee80211_priv *pv; struct ieee80211vap *vap = PDE_DATA(inode); - unsigned long size; - - /* Determine what size packets to get stats for based on proc filename */ - size = simple_strtoul(file->f_dentry->d_name.name + - strlen("ratestats_"), NULL, 0); - if (size < 250 || size > 3000) - return -ENOENT; if (!(file->private_data = kzalloc(sizeof(struct proc_ieee80211_priv), GFP_KERNEL))) @@ -1081,10 +1074,42 @@ proc_ratesample_open(struct inode *inode, struct file *file) return 0; } -static struct file_operations proc_ratesample_ops = { +static int +proc_ratesample_open_250(struct inode *inode, struct file *file, unsigned long size) +{ + proc_ratesample_open(inode, file, 250); +} + +static int +proc_ratesample_open_1600(struct inode *inode, struct file *file, unsigned long size) +{ + proc_ratesample_open(inode, file, 1600); +} + +static int +proc_ratesample_open_3000(struct inode *inode, struct file *file, unsigned long size) +{ + proc_ratesample_open(inode, file, 3000); +} + +static struct file_operations proc_ratesample_ops_250 = { + .read = NULL, + .write = NULL, + .open = proc_ratesample_open_250, + .release = NULL, +}; + +static struct file_operations proc_ratesample_ops_1600 = { + .read = NULL, + .write = NULL, + .open = proc_ratesample_open_1600, + .release = NULL, +}; + +static struct file_operations proc_ratesample_ops_3000 = { .read = NULL, .write = NULL, - .open = proc_ratesample_open, + .open = proc_ratesample_open_3000, .release = NULL, }; @@ -1092,9 +1117,9 @@ static void ath_rate_dynamic_proc_register(struct ieee80211vap *vap) { /* Create proc entries for the rate control algorithm */ - ieee80211_proc_vcreate(vap, &proc_ratesample_ops, "ratestats_250"); - ieee80211_proc_vcreate(vap, &proc_ratesample_ops, "ratestats_1600"); - ieee80211_proc_vcreate(vap, &proc_ratesample_ops, "ratestats_3000"); + ieee80211_proc_vcreate(vap, &proc_ratesample_ops_250, "ratestats_250"); + ieee80211_proc_vcreate(vap, &proc_ratesample_ops_1600, "ratestats_1600"); + ieee80211_proc_vcreate(vap, &proc_ratesample_ops_3000, "ratestats_3000"); } static struct ieee80211_rate_ops ath_rate_ops = {