OpenCores
URL https://opencores.org/ocsvn/or1k_old/or1k_old/trunk

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [rc203soc/] [sw/] [uClinux/] [include/] [linux/] [timer.h] - Diff between revs 1765 and 1782

Only display areas with differences | Details | Blame | View Log

Rev 1765 Rev 1782
#ifndef _LINUX_TIMER_H
#ifndef _LINUX_TIMER_H
#define _LINUX_TIMER_H
#define _LINUX_TIMER_H
 
 
/*
/*
 * DON'T CHANGE THESE!! Most of them are hardcoded into some assembly language
 * DON'T CHANGE THESE!! Most of them are hardcoded into some assembly language
 * as well as being defined here.
 * as well as being defined here.
 */
 */
 
 
/*
/*
 * The timers are:
 * The timers are:
 *
 *
 * BLANK_TIMER          console screen-saver timer
 * BLANK_TIMER          console screen-saver timer
 *
 *
 * BEEP_TIMER           console beep timer
 * BEEP_TIMER           console beep timer
 *
 *
 * RS_TIMER             timer for the RS-232 ports
 * RS_TIMER             timer for the RS-232 ports
 *
 *
 * SWAP_TIMER           timer for the background pageout daemon
 * SWAP_TIMER           timer for the background pageout daemon
 *
 *
 * HD_TIMER             harddisk timer
 * HD_TIMER             harddisk timer
 *
 *
 * HD_TIMER2            (atdisk2 patches)
 * HD_TIMER2            (atdisk2 patches)
 *
 *
 * FLOPPY_TIMER         floppy disk timer (not used right now)
 * FLOPPY_TIMER         floppy disk timer (not used right now)
 *
 *
 * SCSI_TIMER           scsi.c timeout timer
 * SCSI_TIMER           scsi.c timeout timer
 *
 *
 * NET_TIMER            tcp/ip timeout timer
 * NET_TIMER            tcp/ip timeout timer
 *
 *
 * COPRO_TIMER          387 timeout for buggy hardware..
 * COPRO_TIMER          387 timeout for buggy hardware..
 *
 *
 * QIC02_TAPE_TIMER     timer for QIC-02 tape driver (it's not hardcoded)
 * QIC02_TAPE_TIMER     timer for QIC-02 tape driver (it's not hardcoded)
 *
 *
 * MCD_TIMER            Mitsumi CD-ROM Timer
 * MCD_TIMER            Mitsumi CD-ROM Timer
 *
 *
 * GSCD_TIMER           Goldstar CD-ROM Timer
 * GSCD_TIMER           Goldstar CD-ROM Timer
 *
 *
 */
 */
 
 
#define BLANK_TIMER     0
#define BLANK_TIMER     0
#define BEEP_TIMER      1
#define BEEP_TIMER      1
#define RS_TIMER        2
#define RS_TIMER        2
#define SWAP_TIMER      3
#define SWAP_TIMER      3
 
 
#define HD_TIMER        16
#define HD_TIMER        16
#define FLOPPY_TIMER    17
#define FLOPPY_TIMER    17
#define SCSI_TIMER      18
#define SCSI_TIMER      18
#define NET_TIMER       19
#define NET_TIMER       19
#define SOUND_TIMER     20
#define SOUND_TIMER     20
#define COPRO_TIMER     21
#define COPRO_TIMER     21
 
 
#define QIC02_TAPE_TIMER        22      /* hhb */
#define QIC02_TAPE_TIMER        22      /* hhb */
#define MCD_TIMER       23
#define MCD_TIMER       23
 
 
#define HD_TIMER2       24
#define HD_TIMER2       24
#define GSCD_TIMER      25
#define GSCD_TIMER      25
 
 
#define DIGI_TIMER      29
#define DIGI_TIMER      29
 
 
struct timer_struct {
struct timer_struct {
        unsigned long expires;
        unsigned long expires;
        void (*fn)(void);
        void (*fn)(void);
};
};
 
 
extern unsigned long timer_active;
extern unsigned long timer_active;
extern struct timer_struct timer_table[32];
extern struct timer_struct timer_table[32];
 
 
/*
/*
 * This is completely separate from the above, and is the
 * This is completely separate from the above, and is the
 * "new and improved" way of handling timers more dynamically.
 * "new and improved" way of handling timers more dynamically.
 * Hopefully efficient and general enough for most things.
 * Hopefully efficient and general enough for most things.
 *
 *
 * The "hardcoded" timers above are still useful for well-
 * The "hardcoded" timers above are still useful for well-
 * defined problems, but the timer-list is probably better
 * defined problems, but the timer-list is probably better
 * when you need multiple outstanding timers or similar.
 * when you need multiple outstanding timers or similar.
 *
 *
 * The "data" field is in case you want to use the same
 * The "data" field is in case you want to use the same
 * timeout function for several timeouts. You can use this
 * timeout function for several timeouts. You can use this
 * to distinguish between the different invocations.
 * to distinguish between the different invocations.
 */
 */
struct timer_list {
struct timer_list {
        struct timer_list *next;
        struct timer_list *next;
        struct timer_list *prev;
        struct timer_list *prev;
        unsigned long expires;
        unsigned long expires;
        unsigned long data;
        unsigned long data;
        void (*function)(unsigned long);
        void (*function)(unsigned long);
};
};
 
 
extern void add_timer(struct timer_list * timer);
extern void add_timer(struct timer_list * timer);
extern int  del_timer(struct timer_list * timer);
extern int  del_timer(struct timer_list * timer);
 
 
extern void it_real_fn(unsigned long);
extern void it_real_fn(unsigned long);
 
 
extern inline void init_timer(struct timer_list * timer)
extern inline void init_timer(struct timer_list * timer)
{
{
        timer->next = NULL;
        timer->next = NULL;
        timer->prev = NULL;
        timer->prev = NULL;
}
}
 
 
#endif
#endif
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.