Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
ps3-sys-manager.c File Reference
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/workqueue.h>
#include <linux/reboot.h>
#include <asm/firmware.h>
#include <asm/lv1call.h>
#include <asm/ps3.h>
#include "vuart.h"

Go to the source code of this file.

Data Structures

struct  ps3_sys_manager_header
 

Macros

#define dump_sm_header(_h)   _dump_sm_header(_h, __func__, __LINE__)
 

Enumerations

enum  { PS3_SM_RX_MSG_LEN_MIN = 24, PS3_SM_RX_MSG_LEN_MAX = 32 }
 
enum  ps3_sys_manager_service_id {
  PS3_SM_SERVICE_ID_REQUEST = 1, PS3_SM_SERVICE_ID_RESPONSE = 2, PS3_SM_SERVICE_ID_COMMAND = 3, PS3_SM_SERVICE_ID_EXTERN_EVENT = 4,
  PS3_SM_SERVICE_ID_SET_NEXT_OP = 5, PS3_SM_SERVICE_ID_REQUEST_ERROR = 6, PS3_SM_SERVICE_ID_SET_ATTR = 8
}
 
enum  ps3_sys_manager_attr {
  PS3_SM_ATTR_POWER = 1, PS3_SM_ATTR_RESET = 2, PS3_SM_ATTR_THERMAL = 4, PS3_SM_ATTR_CONTROLLER = 8,
  PS3_SM_ATTR_ALL = 0x0f
}
 
enum  ps3_sys_manager_event {
  PS3_SM_EVENT_POWER_PRESSED = 3, PS3_SM_EVENT_POWER_RELEASED = 4, PS3_SM_EVENT_RESET_PRESSED = 5, PS3_SM_EVENT_RESET_RELEASED = 6,
  PS3_SM_EVENT_THERMAL_ALERT = 7, PS3_SM_EVENT_THERMAL_CLEARED = 8
}
 
enum  ps3_sys_manager_button_event { PS3_SM_BUTTON_EVENT_HARD = 0, PS3_SM_BUTTON_EVENT_SOFT = 1 }
 
enum  ps3_sys_manager_next_op { PS3_SM_NEXT_OP_SYS_SHUTDOWN = 1, PS3_SM_NEXT_OP_SYS_REBOOT = 2, PS3_SM_NEXT_OP_LPAR_REBOOT = 0x82 }
 
enum  ps3_sys_manager_wake_source { PS3_SM_WAKE_DEFAULT = 0, PS3_SM_WAKE_W_O_L = 0x00000400, PS3_SM_WAKE_P_O_R = 0x80000000 }
 
enum  ps3_sys_manager_cmd { PS3_SM_CMD_SHUTDOWN = 1 }
 

Functions

int ps3_sys_manager_get_wol (void)
 
 EXPORT_SYMBOL_GPL (ps3_sys_manager_get_wol)
 
void ps3_sys_manager_set_wol (int state)
 
 EXPORT_SYMBOL_GPL (ps3_sys_manager_set_wol)
 
 module_init (ps3_sys_manager_init)
 
 MODULE_AUTHOR ("Sony Corporation")
 
 MODULE_LICENSE ("GPL v2")
 
 MODULE_DESCRIPTION ("PS3 System Manager")
 
 MODULE_ALIAS (PS3_MODULE_ALIAS_SYSTEM_MANAGER)
 

Macro Definition Documentation

#define dump_sm_header (   _h)    _dump_sm_header(_h, __func__, __LINE__)

Definition at line 66 of file ps3-sys-manager.c.

Enumeration Type Documentation

anonymous enum

- Shortest received message length. - Longest received message length.

Currently all messages received from the system manager are either (16 bytes header + 8 bytes payload = 24 bytes) or (16 bytes header

  • 16 bytes payload = 32 bytes). This knowledge is used to simplify the logic.
Enumerator:
PS3_SM_RX_MSG_LEN_MIN 
PS3_SM_RX_MSG_LEN_MAX 

Definition at line 87 of file ps3-sys-manager.c.

enum ps3_sys_manager_attr - Notification attribute (bit position mask). : Power button. : Reset button, not available on retail console. : System thermal alert. : Remote controller event. : Logical OR of all.

The guest tells the system manager which events it is interested in receiving notice of by sending the system manager a logical OR of notification attributes via the ps3_sys_manager_send_attr() routine.

Enumerator:
PS3_SM_ATTR_POWER 
PS3_SM_ATTR_RESET 
PS3_SM_ATTR_THERMAL 
PS3_SM_ATTR_CONTROLLER 
PS3_SM_ATTR_ALL 

Definition at line 131 of file ps3-sys-manager.c.

enum ps3_sys_manager_button_event - Button event payload values. : Hardware generated event. : Software generated event.

Enumerator:
PS3_SM_BUTTON_EVENT_HARD 
PS3_SM_BUTTON_EVENT_SOFT 

Definition at line 169 of file ps3-sys-manager.c.

enum ps3_sys_manager_cmd - Command from system manager to guest.

The guest completes the actions needed, then acks or naks the command via ps3_sys_manager_send_response(). In the case of , the guest must be fully prepared for a system poweroff prior to acking the command.

Enumerator:
PS3_SM_CMD_SHUTDOWN 

Definition at line 221 of file ps3-sys-manager.c.

enum ps3_sys_manager_event - External event type, reported by system manager. : payload.value = enum ps3_sys_manager_button_event. : payload.value = time pressed in millisec. : payload.value = enum ps3_sys_manager_button_event. : payload.value = time pressed in millisec. : payload.value = thermal zone id. : payload.value = thermal zone id.

Enumerator:
PS3_SM_EVENT_POWER_PRESSED 
PS3_SM_EVENT_POWER_RELEASED 
PS3_SM_EVENT_RESET_PRESSED 
PS3_SM_EVENT_RESET_RELEASED 
PS3_SM_EVENT_THERMAL_ALERT 
PS3_SM_EVENT_THERMAL_CLEARED 

Definition at line 152 of file ps3-sys-manager.c.

enum ps3_sys_manager_next_op - Operation to perform after lpar is destroyed.

Enumerator:
PS3_SM_NEXT_OP_SYS_SHUTDOWN 
PS3_SM_NEXT_OP_SYS_REBOOT 
PS3_SM_NEXT_OP_LPAR_REBOOT 

Definition at line 178 of file ps3-sys-manager.c.

enum ps3_sys_manager_service_id - Message header service_id. : guest –> sys_manager. : guest <– sys_manager. : guest <– sys_manager. : guest –> sys_manager. : guest –> sys_manager. : guest <– sys_manager. : guest –> sys_manager.

PS3_SM_SERVICE_ID_REQUEST_ERROR is returned for invalid data values in a a PS3_SM_SERVICE_ID_REQUEST message. It also seems to be returned when a REQUEST message is sent at the wrong time.

Enumerator:
PS3_SM_SERVICE_ID_REQUEST 
PS3_SM_SERVICE_ID_RESPONSE 
PS3_SM_SERVICE_ID_COMMAND 
PS3_SM_SERVICE_ID_EXTERN_EVENT 
PS3_SM_SERVICE_ID_SET_NEXT_OP 
PS3_SM_SERVICE_ID_REQUEST_ERROR 
PS3_SM_SERVICE_ID_SET_ATTR 

Definition at line 107 of file ps3-sys-manager.c.

enum ps3_sys_manager_wake_source - Next-op wakeup source (bit position mask). : Disk insert, power button, eject button. : Ether or wireless LAN. : Power on reset.

Additional wakeup sources when specifying PS3_SM_NEXT_OP_SYS_SHUTDOWN. The system will always wake from the PS3_SM_WAKE_DEFAULT sources. Sources listed here are the only ones available to guests in the other-os lpar.

Enumerator:
PS3_SM_WAKE_DEFAULT 
PS3_SM_WAKE_W_O_L 
PS3_SM_WAKE_P_O_R 

Definition at line 197 of file ps3-sys-manager.c.

Function Documentation

EXPORT_SYMBOL_GPL ( ps3_sys_manager_get_wol  )
EXPORT_SYMBOL_GPL ( ps3_sys_manager_set_wol  )
MODULE_ALIAS ( PS3_MODULE_ALIAS_SYSTEM_MANAGER  )
MODULE_AUTHOR ( "Sony Corporation"  )
MODULE_DESCRIPTION ( "PS3 System Manager"  )
module_init ( ps3_sys_manager_init  )
MODULE_LICENSE ( "GPL v2 )
int ps3_sys_manager_get_wol ( void  )

ps3_sys_manager_get_wol - Get wake-on-lan setting.

Definition at line 669 of file ps3-sys-manager.c.

void ps3_sys_manager_set_wol ( int  state)

ps3_sys_manager_set_wol - Set wake-on-lan setting.

Definition at line 681 of file ps3-sys-manager.c.