Re: [linux-audio-dev] Linux Security Module for realtime audio

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] Linux Security Module for realtime audio
From: Tim Hockin (thockin_AT_hockin.org)
Date: Thu Dec 11 2003 - 18:13:35 EET


On Thu, Dec 11, 2003 at 09:15:50AM -0600, Jack O'Quin wrote:
> I've been looking at that, and plan to do it next. A good example is
> always helpful. It can help to avoid missing some subtle detail,
> especially important for kernel-mode programming.

Here is some of the boilerplate code we used. Also have code to make a proc
dir and use it, so instead of /proc/realtime or what not, you could have
/proc/realtime/a, /proc/realtime/b, etc. Also have code to do a read/write
proc file.

These are against linux-2.4. Haven't played with proc on 2.6, yet.

#include <linux/proc_fs.h>

#ifdef CONFIG_PROC_FS
static struct proc_dir_entry *proc_foo;
#endif

init(...)
{
        ...
#ifdef CONFIG_PROC_FS
        proc_foo = create_proc_read_entry("foo", 0, NULL, foo_read_proc, NULL);
        if (!proc_foo {
                printk(KERN_ERR "can't create /proc/foo\n");
        }
#endif
        ...
}

cleanup(...)
{
        ...
        remove_proc_entry("foo", NULL);
        ...
}

#ifdef CONFIG_PROC_FS
static int
foo_read_proc(char *buf, char **start, off_t pos, int len, int *eof, void *x)
{
        int plen;

        plen = sprintf(buf, "%s\n", foo);

        /* trying to read a bad offset? */
        if (pos >= plen) {
                *eof = 1;
                return 0;
        }

        /* did we write everything we wanted to? */
        if (len >= (plen-pos)) {
                *eof = 1;
        }

        *start = buf + pos;
        plen -= pos;

        return (len > plen) ? plen : len;
}
#endif


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Thu Dec 11 2003 - 22:16:03 EET