((cfg & MIPS_SEGCFG_EU) >> MIPS_SEGCFG_EU_SHIFT));
 }
 
-static int show_segments(struct seq_file *m, void *v)
+static int segments_show(struct seq_file *m, void *v)
 {
        unsigned int segcfg;
        char str[42];
 
        return 0;
 }
-
-static int segments_open(struct inode *inode, struct file *file)
-{
-       return single_open(file, show_segments, NULL);
-}
-
-static const struct file_operations segments_fops = {
-       .open           = segments_open,
-       .read           = seq_read,
-       .llseek         = seq_lseek,
-       .release        = single_release,
-};
+DEFINE_SHOW_ATTRIBUTE(segments);
 
 static int __init segments_info(void)
 {