next up previous contents
Next: Datei: hardware.c Up: Funktionen der einzelnen Module Previous: Funktionen der einzelnen Module

Datei: pendulum.c

Kennung für das Versionskontroll-System:
char *rcs = ''$Id: pendulum.c,v 1.141 1996/04/23 16:34:01 heuler$'';

Globale Variablen:

char kernel_version[] = UTS_RELEASE;    /* kernel version */

int major = PENDEL_MAJOR;       /* major device id */
int irq   = PENDEL_IRQ;         /* pendulum card irq */
int base  = PENDEL_BASE;        /* pendulum card base */
int freq  = PENDEL_FREQ;        /* frequency of update */

volatile int force;             /* force for pendulum in next IRQ */
volatile int force_flag;        /* force controlling */
volatile int old_irqcounter;    /* old counter of irq */ 
volatile int skipped;           /* number of irqs skipped */
volatile int max_skipped;       /* max number of irqs skipped */

struct task_struct *process;    /* controlling process */
int process_pid;                /* controlling process pid */


Lokale Variablen:

static int lock_ctrl;           /* this flag is set when the 
                                   ctrl device is openend */

static io_outstruct outdata;    /* struct for output of iodata */

static struct file_operations pendel_fops = {
        NULL,           /* lseek */
        pendel_read,    /* read */
        pendel_write,   /* write */
        NULL,           /* readdir */
        NULL,           /* select */
        pendel_ioctl,   /* ioctl */
        NULL,           /* mmap */
        pendel_open,    /* open */
        pendel_close,   /* close */
        NULL,           /* fsync */
        NULL,           /* fasync */
        NULL,           /* check media_change */
        NULL            /* revalidate */
};

Funktionen:
Callback - Wird aufgerufen, wenn das Modul geladen wird:
int init_module();

Callback - Wird aufgerufen, wenn das Modul entfernt wird:
void cleanup_module();

Callback - Wird bei Lesezugriffen auf das Device aufgerufen:
int pendel_read(struct inode *ip, struct file *fp, char* to, int len);

Callback - Wird bei Schreibzugriffen auf das Device aufgerufen:
int pendel_write(struct inode *ip, struct file *fp, const char* from, int len);

Callback - Wird bei Kontrollzugriffen auf das Device aufgerufen:
int pendel_ioctl(struct inode *ip, struct file *fp, uint cmd, ulong arg);

Callback - Wird beim Öffnen des Device aufgerufen:
int pendel_open(struct inode *ip, struct file *fp);

Callback - Wird beim Schließen des Device aufgerufen:
void pendel_close(struct inode *ip, struct file *fp);

Bearbeitet ASCII-Befehle mit Argumenten:
void command_sarg(char *str, int cmd, int fl);

Bearbeitet ASCII-Befehle ohne Argumente:
int parse_command(char *str);



Marius Heuler
Tue Jan 7 12:11:50 MET 1997