Commit 813dcf7a authored by Alexey Dobriyan's avatar Alexey Dobriyan

proc: move /proc/hardware to m68k-specific code

Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
parent b457d151
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/seq_file.h>
#include <linux/tty.h> #include <linux/tty.h>
#include <linux/console.h> #include <linux/console.h>
#include <linux/rtc.h> #include <linux/rtc.h>
...@@ -93,7 +94,7 @@ static char amiga_model_name[13] = "Amiga "; ...@@ -93,7 +94,7 @@ static char amiga_model_name[13] = "Amiga ";
static void amiga_sched_init(irq_handler_t handler); static void amiga_sched_init(irq_handler_t handler);
static void amiga_get_model(char *model); static void amiga_get_model(char *model);
static int amiga_get_hardware_list(char *buffer); static void amiga_get_hardware_list(struct seq_file *m);
/* amiga specific timer functions */ /* amiga specific timer functions */
static unsigned long amiga_gettimeoffset(void); static unsigned long amiga_gettimeoffset(void);
static int a3000_hwclk(int, struct rtc_time *); static int a3000_hwclk(int, struct rtc_time *);
...@@ -911,13 +912,11 @@ static void amiga_get_model(char *model) ...@@ -911,13 +912,11 @@ static void amiga_get_model(char *model)
} }
static int amiga_get_hardware_list(char *buffer) static void amiga_get_hardware_list(struct seq_file *m)
{ {
int len = 0;
if (AMIGAHW_PRESENT(CHIP_RAM)) if (AMIGAHW_PRESENT(CHIP_RAM))
len += sprintf(buffer+len, "Chip RAM:\t%ldK\n", amiga_chip_size>>10); seq_printf(m, "Chip RAM:\t%ldK\n", amiga_chip_size>>10);
len += sprintf(buffer+len, "PS Freq:\t%dHz\nEClock Freq:\t%ldHz\n", seq_printf(m, "PS Freq:\t%dHz\nEClock Freq:\t%ldHz\n",
amiga_psfreq, amiga_eclock); amiga_psfreq, amiga_eclock);
if (AMIGAHW_PRESENT(AMI_VIDEO)) { if (AMIGAHW_PRESENT(AMI_VIDEO)) {
char *type; char *type;
...@@ -935,14 +934,14 @@ static int amiga_get_hardware_list(char *buffer) ...@@ -935,14 +934,14 @@ static int amiga_get_hardware_list(char *buffer)
type = "Old or Unknown"; type = "Old or Unknown";
break; break;
} }
len += sprintf(buffer+len, "Graphics:\t%s\n", type); seq_printf(m, "Graphics:\t%s\n", type);
} }
#define AMIGAHW_ANNOUNCE(name, str) \ #define AMIGAHW_ANNOUNCE(name, str) \
if (AMIGAHW_PRESENT(name)) \ if (AMIGAHW_PRESENT(name)) \
len += sprintf (buffer+len, "\t%s\n", str) seq_printf (m, "\t%s\n", str)
len += sprintf (buffer + len, "Detected hardware:\n"); seq_printf (m, "Detected hardware:\n");
AMIGAHW_ANNOUNCE(AMI_VIDEO, "Amiga Video"); AMIGAHW_ANNOUNCE(AMI_VIDEO, "Amiga Video");
AMIGAHW_ANNOUNCE(AMI_BLITTER, "Blitter"); AMIGAHW_ANNOUNCE(AMI_BLITTER, "Blitter");
...@@ -975,15 +974,13 @@ static int amiga_get_hardware_list(char *buffer) ...@@ -975,15 +974,13 @@ static int amiga_get_hardware_list(char *buffer)
AMIGAHW_ANNOUNCE(PCMCIA, "PCMCIA Slot"); AMIGAHW_ANNOUNCE(PCMCIA, "PCMCIA Slot");
#ifdef CONFIG_ZORRO #ifdef CONFIG_ZORRO
if (AMIGAHW_PRESENT(ZORRO)) if (AMIGAHW_PRESENT(ZORRO))
len += sprintf(buffer+len, "\tZorro II%s AutoConfig: %d Expansion " seq_printf(m, "\tZorro II%s AutoConfig: %d Expansion "
"Device%s\n", "Device%s\n",
AMIGAHW_PRESENT(ZORRO3) ? "I" : "", AMIGAHW_PRESENT(ZORRO3) ? "I" : "",
zorro_num_autocon, zorro_num_autocon == 1 ? "" : "s"); zorro_num_autocon, zorro_num_autocon == 1 ? "" : "s");
#endif /* CONFIG_ZORRO */ #endif /* CONFIG_ZORRO */
#undef AMIGAHW_ANNOUNCE #undef AMIGAHW_ANNOUNCE
return len;
} }
/* /*
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/seq_file.h>
#include <linux/console.h> #include <linux/console.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/delay.h> #include <linux/delay.h>
...@@ -63,7 +64,7 @@ int atari_rtc_year_offset; ...@@ -63,7 +64,7 @@ int atari_rtc_year_offset;
/* local function prototypes */ /* local function prototypes */
static void atari_reset(void); static void atari_reset(void);
static void atari_get_model(char *model); static void atari_get_model(char *model);
static int atari_get_hardware_list(char *buffer); static void atari_get_hardware_list(struct seq_file *m);
/* atari specific irq functions */ /* atari specific irq functions */
extern void atari_init_IRQ (void); extern void atari_init_IRQ (void);
...@@ -611,21 +612,21 @@ static void atari_get_model(char *model) ...@@ -611,21 +612,21 @@ static void atari_get_model(char *model)
} }
static int atari_get_hardware_list(char *buffer) static void atari_get_hardware_list(struct seq_file *m)
{ {
int len = 0, i; int i;
for (i = 0; i < m68k_num_memory; i++) for (i = 0; i < m68k_num_memory; i++)
len += sprintf(buffer+len, "\t%3ld MB at 0x%08lx (%s)\n", seq_printf(m, "\t%3ld MB at 0x%08lx (%s)\n",
m68k_memory[i].size >> 20, m68k_memory[i].addr, m68k_memory[i].size >> 20, m68k_memory[i].addr,
(m68k_memory[i].addr & 0xff000000 ? (m68k_memory[i].addr & 0xff000000 ?
"alternate RAM" : "ST-RAM")); "alternate RAM" : "ST-RAM"));
#define ATARIHW_ANNOUNCE(name, str) \ #define ATARIHW_ANNOUNCE(name, str) \
if (ATARIHW_PRESENT(name)) \ if (ATARIHW_PRESENT(name)) \
len += sprintf(buffer + len, "\t%s\n", str) seq_printf(m, "\t%s\n", str)
len += sprintf(buffer + len, "Detected hardware:\n"); seq_printf(m, "Detected hardware:\n");
ATARIHW_ANNOUNCE(STND_SHIFTER, "ST Shifter"); ATARIHW_ANNOUNCE(STND_SHIFTER, "ST Shifter");
ATARIHW_ANNOUNCE(EXTD_SHIFTER, "STe Shifter"); ATARIHW_ANNOUNCE(EXTD_SHIFTER, "STe Shifter");
ATARIHW_ANNOUNCE(TT_SHIFTER, "TT Shifter"); ATARIHW_ANNOUNCE(TT_SHIFTER, "TT Shifter");
...@@ -654,6 +655,4 @@ static int atari_get_hardware_list(char *buffer) ...@@ -654,6 +655,4 @@ static int atari_get_hardware_list(char *buffer)
ATARIHW_ANNOUNCE(BLITTER, "Blitter"); ATARIHW_ANNOUNCE(BLITTER, "Blitter");
ATARIHW_ANNOUNCE(VME, "VME Bus"); ATARIHW_ANNOUNCE(VME, "VME Bus");
ATARIHW_ANNOUNCE(DSP56K, "DSP56001 processor"); ATARIHW_ANNOUNCE(DSP56K, "DSP56001 processor");
return len;
} }
...@@ -38,7 +38,6 @@ ...@@ -38,7 +38,6 @@
#include <asm/bvme6000hw.h> #include <asm/bvme6000hw.h>
static void bvme6000_get_model(char *model); static void bvme6000_get_model(char *model);
static int bvme6000_get_hardware_list(char *buffer);
extern void bvme6000_sched_init(irq_handler_t handler); extern void bvme6000_sched_init(irq_handler_t handler);
extern unsigned long bvme6000_gettimeoffset (void); extern unsigned long bvme6000_gettimeoffset (void);
extern int bvme6000_hwclk (int, struct rtc_time *); extern int bvme6000_hwclk (int, struct rtc_time *);
...@@ -82,15 +81,6 @@ static void bvme6000_get_model(char *model) ...@@ -82,15 +81,6 @@ static void bvme6000_get_model(char *model)
sprintf(model, "BVME%d000", m68k_cputype == CPU_68060 ? 6 : 4); sprintf(model, "BVME%d000", m68k_cputype == CPU_68060 ? 6 : 4);
} }
/* No hardware options on BVME6000? */
static int bvme6000_get_hardware_list(char *buffer)
{
*buffer = '\0';
return 0;
}
/* /*
* This function is called during kernel startup to initialize * This function is called during kernel startup to initialize
* the bvme6000 IRQ handling routines. * the bvme6000 IRQ handling routines.
...@@ -127,7 +117,6 @@ void __init config_bvme6000(void) ...@@ -127,7 +117,6 @@ void __init config_bvme6000(void)
mach_set_clock_mmss = bvme6000_set_clock_mmss; mach_set_clock_mmss = bvme6000_set_clock_mmss;
mach_reset = bvme6000_reset; mach_reset = bvme6000_reset;
mach_get_model = bvme6000_get_model; mach_get_model = bvme6000_get_model;
mach_get_hardware_list = bvme6000_get_hardware_list;
printk ("Board is %sconfigured as a System Controller\n", printk ("Board is %sconfigured as a System Controller\n",
*config_reg_ptr & BVME_CONFIG_SW1 ? "" : "not "); *config_reg_ptr & BVME_CONFIG_SW1 ? "" : "not ");
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <linux/string.h> #include <linux/string.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/bootmem.h> #include <linux/bootmem.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/initrd.h> #include <linux/initrd.h>
...@@ -80,7 +81,7 @@ void (*mach_sched_init) (irq_handler_t handler) __initdata = NULL; ...@@ -80,7 +81,7 @@ void (*mach_sched_init) (irq_handler_t handler) __initdata = NULL;
/* machine dependent irq functions */ /* machine dependent irq functions */
void (*mach_init_IRQ) (void) __initdata = NULL; void (*mach_init_IRQ) (void) __initdata = NULL;
void (*mach_get_model) (char *model); void (*mach_get_model) (char *model);
int (*mach_get_hardware_list) (char *buffer); void (*mach_get_hardware_list) (struct seq_file *m);
/* machine dependent timer functions */ /* machine dependent timer functions */
unsigned long (*mach_gettimeoffset) (void); unsigned long (*mach_gettimeoffset) (void);
int (*mach_hwclk) (int, struct rtc_time*); int (*mach_hwclk) (int, struct rtc_time*);
...@@ -467,9 +468,9 @@ const struct seq_operations cpuinfo_op = { ...@@ -467,9 +468,9 @@ const struct seq_operations cpuinfo_op = {
.show = show_cpuinfo, .show = show_cpuinfo,
}; };
int get_hardware_list(char *buffer) #ifdef CONFIG_PROC_HARDWARE
static int hardware_proc_show(struct seq_file *m, void *v)
{ {
int len = 0;
char model[80]; char model[80];
unsigned long mem; unsigned long mem;
int i; int i;
...@@ -479,17 +480,37 @@ int get_hardware_list(char *buffer) ...@@ -479,17 +480,37 @@ int get_hardware_list(char *buffer)
else else
strcpy(model, "Unknown m68k"); strcpy(model, "Unknown m68k");
len += sprintf(buffer + len, "Model:\t\t%s\n", model); seq_printf(m, "Model:\t\t%s\n", model);
for (mem = 0, i = 0; i < m68k_num_memory; i++) for (mem = 0, i = 0; i < m68k_num_memory; i++)
mem += m68k_memory[i].size; mem += m68k_memory[i].size;
len += sprintf(buffer + len, "System Memory:\t%ldK\n", mem >> 10); seq_printf(m, "System Memory:\t%ldK\n", mem >> 10);
if (mach_get_hardware_list) if (mach_get_hardware_list)
len += mach_get_hardware_list(buffer + len); mach_get_hardware_list(m);
return len; return 0;
}
static int hardware_proc_open(struct inode *inode, struct file *file)
{
return single_open(file, hardware_proc_show, NULL);
} }
static const struct file_operations hardware_proc_fops = {
.open = hardware_proc_open,
.read = seq_read,
.llseek = seq_lseek,
.release = single_release,
};
static int __init proc_hardware_init(void)
{
proc_create("hardware", 0, NULL, &hardware_proc_fops);
return 0;
}
module_init(proc_hardware_init);
#endif
void check_bugs(void) void check_bugs(void)
{ {
#ifndef CONFIG_M68KFPU_EMU #ifndef CONFIG_M68KFPU_EMU
......
...@@ -37,7 +37,6 @@ ...@@ -37,7 +37,6 @@
static void mvme147_get_model(char *model); static void mvme147_get_model(char *model);
static int mvme147_get_hardware_list(char *buffer);
extern void mvme147_sched_init(irq_handler_t handler); extern void mvme147_sched_init(irq_handler_t handler);
extern unsigned long mvme147_gettimeoffset (void); extern unsigned long mvme147_gettimeoffset (void);
extern int mvme147_hwclk (int, struct rtc_time *); extern int mvme147_hwclk (int, struct rtc_time *);
...@@ -76,14 +75,6 @@ static void mvme147_get_model(char *model) ...@@ -76,14 +75,6 @@ static void mvme147_get_model(char *model)
sprintf(model, "Motorola MVME147"); sprintf(model, "Motorola MVME147");
} }
static int mvme147_get_hardware_list(char *buffer)
{
*buffer = '\0';
return 0;
}
/* /*
* This function is called during kernel startup to initialize * This function is called during kernel startup to initialize
* the mvme147 IRQ handling routines. * the mvme147 IRQ handling routines.
...@@ -104,7 +95,6 @@ void __init config_mvme147(void) ...@@ -104,7 +95,6 @@ void __init config_mvme147(void)
mach_set_clock_mmss = mvme147_set_clock_mmss; mach_set_clock_mmss = mvme147_set_clock_mmss;
mach_reset = mvme147_reset; mach_reset = mvme147_reset;
mach_get_model = mvme147_get_model; mach_get_model = mvme147_get_model;
mach_get_hardware_list = mvme147_get_hardware_list;
/* Board type is only set by newer versions of vmelilo/tftplilo */ /* Board type is only set by newer versions of vmelilo/tftplilo */
if (!vme_brdtype) if (!vme_brdtype)
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/seq_file.h>
#include <linux/tty.h> #include <linux/tty.h>
#include <linux/console.h> #include <linux/console.h>
#include <linux/linkage.h> #include <linux/linkage.h>
...@@ -42,7 +43,6 @@ extern t_bdid mvme_bdid; ...@@ -42,7 +43,6 @@ extern t_bdid mvme_bdid;
static MK48T08ptr_t volatile rtc = (MK48T08ptr_t)MVME_RTC_BASE; static MK48T08ptr_t volatile rtc = (MK48T08ptr_t)MVME_RTC_BASE;
static void mvme16x_get_model(char *model); static void mvme16x_get_model(char *model);
static int mvme16x_get_hardware_list(char *buffer);
extern void mvme16x_sched_init(irq_handler_t handler); extern void mvme16x_sched_init(irq_handler_t handler);
extern unsigned long mvme16x_gettimeoffset (void); extern unsigned long mvme16x_gettimeoffset (void);
extern int mvme16x_hwclk (int, struct rtc_time *); extern int mvme16x_hwclk (int, struct rtc_time *);
...@@ -93,26 +93,21 @@ static void mvme16x_get_model(char *model) ...@@ -93,26 +93,21 @@ static void mvme16x_get_model(char *model)
} }
static int mvme16x_get_hardware_list(char *buffer) static void mvme16x_get_hardware_list(struct seq_file *m)
{ {
p_bdid p = &mvme_bdid; p_bdid p = &mvme_bdid;
int len = 0;
if (p->brdno == 0x0162 || p->brdno == 0x0172) if (p->brdno == 0x0162 || p->brdno == 0x0172)
{ {
unsigned char rev = *(unsigned char *)MVME162_VERSION_REG; unsigned char rev = *(unsigned char *)MVME162_VERSION_REG;
len += sprintf (buffer+len, "VMEchip2 %spresent\n", seq_printf (m, "VMEchip2 %spresent\n",
rev & MVME16x_CONFIG_NO_VMECHIP2 ? "NOT " : ""); rev & MVME16x_CONFIG_NO_VMECHIP2 ? "NOT " : "");
len += sprintf (buffer+len, "SCSI interface %spresent\n", seq_printf (m, "SCSI interface %spresent\n",
rev & MVME16x_CONFIG_NO_SCSICHIP ? "NOT " : ""); rev & MVME16x_CONFIG_NO_SCSICHIP ? "NOT " : "");
len += sprintf (buffer+len, "Ethernet i/f %spresent\n", seq_printf (m, "Ethernet i/f %spresent\n",
rev & MVME16x_CONFIG_NO_ETHERNET ? "NOT " : ""); rev & MVME16x_CONFIG_NO_ETHERNET ? "NOT " : "");
} }
else
*buffer = '\0';
return (len);
} }
/* /*
......
...@@ -39,7 +39,6 @@ ...@@ -39,7 +39,6 @@
extern irqreturn_t q40_process_int(int level, struct pt_regs *regs); extern irqreturn_t q40_process_int(int level, struct pt_regs *regs);
extern void q40_init_IRQ(void); extern void q40_init_IRQ(void);
static void q40_get_model(char *model); static void q40_get_model(char *model);
static int q40_get_hardware_list(char *buffer);
extern void q40_sched_init(irq_handler_t handler); extern void q40_sched_init(irq_handler_t handler);
static unsigned long q40_gettimeoffset(void); static unsigned long q40_gettimeoffset(void);
...@@ -153,14 +152,6 @@ static void q40_get_model(char *model) ...@@ -153,14 +152,6 @@ static void q40_get_model(char *model)
sprintf(model, "Q40"); sprintf(model, "Q40");
} }
/* No hardware options on Q40? */
static int q40_get_hardware_list(char *buffer)
{
*buffer = '\0';
return 0;
}
static unsigned int serports[] = static unsigned int serports[] =
{ {
0x3f8,0x2f8,0x3e8,0x2e8,0 0x3f8,0x2f8,0x3e8,0x2e8,0
...@@ -191,7 +182,6 @@ void __init config_q40(void) ...@@ -191,7 +182,6 @@ void __init config_q40(void)
mach_reset = q40_reset; mach_reset = q40_reset;
mach_get_model = q40_get_model; mach_get_model = q40_get_model;
mach_get_hardware_list = q40_get_hardware_list;
#if defined(CONFIG_INPUT_M68K_BEEP) || defined(CONFIG_INPUT_M68K_BEEP_MODULE) #if defined(CONFIG_INPUT_M68K_BEEP) || defined(CONFIG_INPUT_M68K_BEEP_MODULE)
mach_beep = q40_mksound; mach_beep = q40_mksound;
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/seq_file.h>
#include <linux/tty.h> #include <linux/tty.h>
#include <linux/console.h> #include <linux/console.h>
#include <linux/init.h> #include <linux/init.h>
...@@ -46,16 +47,9 @@ extern volatile unsigned char* sun3_intreg; ...@@ -46,16 +47,9 @@ extern volatile unsigned char* sun3_intreg;
extern unsigned long availmem; extern unsigned long availmem;
unsigned long num_pages; unsigned long num_pages;
static int sun3_get_hardware_list(char *buffer) static void sun3_get_hardware_list(struct seq_file *m)
{ {
seq_printf(m, "PROM Revision:\t%s\n", romvec->pv_monid);
int len = 0;
len += sprintf(buffer + len, "PROM Revision:\t%s\n",
romvec->pv_monid);
return len;
} }
void __init sun3_init(void) void __init sun3_init(void)
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/seq_file.h>
#include <linux/console.h> #include <linux/console.h>
#include <linux/init.h> #include <linux/init.h>
...@@ -31,16 +32,9 @@ void sun3_leds(unsigned int i) ...@@ -31,16 +32,9 @@ void sun3_leds(unsigned int i)
} }
static int sun3x_get_hardware_list(char *buffer) static void sun3x_get_hardware_list(struct seq_file *m)
{ {
seq_printf(m, "PROM Revision:\t%s\n", romvec->pv_monid);
int len = 0;
len += sprintf(buffer + len, "PROM Revision:\t%s\n",
romvec->pv_monid);
return len;
} }
/* /*
......
...@@ -63,7 +63,6 @@ ...@@ -63,7 +63,6 @@
* have a way to deal with that gracefully. Right now I used straightforward * have a way to deal with that gracefully. Right now I used straightforward
* wrappers, but this needs further analysis wrt potential overflows. * wrappers, but this needs further analysis wrt potential overflows.
*/ */
extern int get_hardware_list(char *);
extern int get_stram_list(char *); extern int get_stram_list(char *);
extern int get_exec_domain_list(char *); extern int get_exec_domain_list(char *);
...@@ -198,15 +197,6 @@ static const struct file_operations proc_vmstat_file_operations = { ...@@ -198,15 +197,6 @@ static const struct file_operations proc_vmstat_file_operations = {
.release = seq_release, .release = seq_release,
}; };
#ifdef CONFIG_PROC_HARDWARE
static int hardware_read_proc(char *page, char **start, off_t off,
int count, int *eof, void *data)
{
int len = get_hardware_list(page);
return proc_calc_metrics(page, start, off, count, eof, len);
}
#endif
#ifdef CONFIG_STRAM_PROC #ifdef CONFIG_STRAM_PROC
static int stram_read_proc(char *page, char **start, off_t off, static int stram_read_proc(char *page, char **start, off_t off,
int count, int *eof, void *data) int count, int *eof, void *data)
...@@ -668,9 +658,6 @@ void __init proc_misc_init(void) ...@@ -668,9 +658,6 @@ void __init proc_misc_init(void)
char *name; char *name;
int (*read_proc)(char*,char**,off_t,int,int*,void*); int (*read_proc)(char*,char**,off_t,int,int*,void*);
} *p, simple_ones[] = { } *p, simple_ones[] = {
#ifdef CONFIG_PROC_HARDWARE
{"hardware", hardware_read_proc},
#endif
#ifdef CONFIG_STRAM_PROC #ifdef CONFIG_STRAM_PROC
{"stram", stram_read_proc}, {"stram", stram_read_proc},
#endif #endif
......
...@@ -14,7 +14,7 @@ extern void (*mach_sched_init) (irq_handler_t handler); ...@@ -14,7 +14,7 @@ extern void (*mach_sched_init) (irq_handler_t handler);
/* machine dependent irq functions */ /* machine dependent irq functions */
extern void (*mach_init_IRQ) (void); extern void (*mach_init_IRQ) (void);
extern void (*mach_get_model) (char *model); extern void (*mach_get_model) (char *model);
extern int (*mach_get_hardware_list) (char *buffer); extern void (*mach_get_hardware_list) (struct seq_file *m);
/* machine dependent timer functions */ /* machine dependent timer functions */
extern unsigned long (*mach_gettimeoffset)(void); extern unsigned long (*mach_gettimeoffset)(void);
extern int (*mach_hwclk)(int, struct rtc_time*); extern int (*mach_hwclk)(int, struct rtc_time*);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment