Main Page | Directories | File List | Globals

machine.c File Reference

#include <agnix/agnix.h>
#include <agnix/bios/apm.h>
#include <agnix/console.h>
#include <agnix/irq.h>

Include dependency graph for machine.c:

Go to the source code of this file.

Defines

#define MOD_NAME   "MACHINE: "

Functions

void do_machine_real_mode_reboot (void)
void do_machine_hard_reboot (void)
void do_machine_reboot (void)
void do_machine_powerdown (void)
void do_machine_halt (void)

Variables

u32 dummy_idt [2]
int apm_enabled


Define Documentation

#define MOD_NAME   "MACHINE: "
 

Definition at line 19 of file machine.c.


Function Documentation

void do_machine_halt void   ) 
 

Definition at line 85 of file machine.c.

References __asm__(), MOD_NAME, and printk().

Referenced by agnix_console_halt().

00086 {
00087     printk(MOD_NAME "Machine halt\n");
00088 
00089     for(;;) {
00090         __asm__ __volatile__ ("hlt");
00091     }    
00092 }

Here is the call graph for this function:

void do_machine_hard_reboot void   ) 
 

Definition at line 39 of file machine.c.

References __asm__(), dummy_idt, MOD_NAME, and printk().

Referenced by do_machine_reboot().

00040 {
00041     printk(MOD_NAME "Machine hard reboot... ");
00042 
00043     __asm__ __volatile__ ("lidt %0\n\t"
00044                           "int $0"
00045                           :
00046                           :"m"(dummy_idt));
00047                           
00048     printk("failed\n");
00049 }

Here is the call graph for this function:

void do_machine_powerdown void   ) 
 

Definition at line 65 of file machine.c.

References __asm__(), apm_enabled, apm_set_power_state(), MOD_NAME, and printk().

Referenced by agnix_console_powerdown().

00066 {
00067     printk(MOD_NAME "Machine poweroff\n");
00068 
00069 #ifdef CONFIG_BIOS_APM
00070     if (apm_enabled) {
00071         apm_set_power_state(APM_ALL_DEVICES, APM_POWER_STATE_OFF);
00072 
00073         printk(MOD_NAME "Machine poweroff failed\n");
00074     } else {
00075         printk(MOD_NAME "APM disabled, halting machine\n");
00076     }
00077 #endif
00078 
00079     cli();      
00080     for(;;) {
00081         __asm__ __volatile__ ("hlt");
00082     }    
00083 }

Here is the call graph for this function:

void do_machine_real_mode_reboot void   ) 
 

Definition at line 28 of file machine.c.

Referenced by do_machine_reboot().

00029 {
00030     /* todo */
00031 }

void do_machine_reboot void   ) 
 

Definition at line 51 of file machine.c.

References __asm__(), do_machine_hard_reboot(), do_machine_real_mode_reboot(), MOD_NAME, and printk().

Referenced by agnix_console_reboot(), cad_power_down(), and do_sys_reboot().

00052 {
00053     printk(MOD_NAME "Machine rebooting...\n");
00054         
00055     do_machine_hard_reboot();
00056     do_machine_real_mode_reboot();
00057     
00058     printk(MOD_NAME "Machine reboot failed\n");
00059     
00060     for(;;) {
00061         __asm__ __volatile__ ("hlt");
00062     }    
00063 }

Here is the call graph for this function:


Variable Documentation

int apm_enabled
 

Definition at line 42 of file apm.c.

u32 dummy_idt[2]
 

Definition at line 25 of file machine.c.

Referenced by do_machine_hard_reboot().

Dokumentacje wygenerowano programem Doxygen 1.4.2 dla projektu Agnix