mirror of
https://github.com/IllusionMan1212/vitasdk-odin.git
synced 2026-10-24 02:12:38 +00:00
added kernel libraries bindings and cleaned up todos
This commit is contained in:
@@ -4,6 +4,7 @@ import "core:c"
|
||||
import sce "../common"
|
||||
|
||||
foreign import power "system:ScePower_stub"
|
||||
foreign import powerkern "system:ScePowerForDriver_stub"
|
||||
|
||||
@(link_prefix = "scePower")
|
||||
foreign power {
|
||||
@@ -237,3 +238,216 @@ foreign power {
|
||||
*/
|
||||
GetUsingWireless :: proc() -> c.int ---
|
||||
}
|
||||
|
||||
foreign powerkern {
|
||||
/**
|
||||
* Registers a ScePower Callback
|
||||
*
|
||||
* @param cbid - The UID of the specified callback
|
||||
*
|
||||
* @return 0 on success, < 0 on error
|
||||
*/
|
||||
kscePowerRegisterCallback :: proc(cbid: sce.UID) -> c.int ---
|
||||
|
||||
/**
|
||||
* Unregister a callback
|
||||
*
|
||||
* @param cbid - The UID of the specified callback
|
||||
*
|
||||
* @return 0 on success, < 0 on error
|
||||
*/
|
||||
kscePowerUnregisterCallback :: proc(cbid: sce.UID) -> c.int ---
|
||||
|
||||
/**
|
||||
* Returns battery charging status
|
||||
*
|
||||
* @return SCE_TRUE if under charge, SCE_FALSE otherwise
|
||||
*/
|
||||
kscePowerIsBatteryCharging :: proc() -> sce.Bool ---
|
||||
|
||||
/**
|
||||
* Returns battery life percentage
|
||||
*
|
||||
* @return Battery life percentage
|
||||
*/
|
||||
kscePowerGetBatteryLifePercent :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Check if a suspend is required
|
||||
*
|
||||
* @return SCE_TRUE if suspend is required, SCE_FALSE otherwise
|
||||
*/
|
||||
kscePowerIsSuspendRequired :: proc() -> sce.Bool ---
|
||||
|
||||
/**
|
||||
* Check if AC is plugged in
|
||||
*
|
||||
* @return SCE_TRUE if plugged in, SCE_FALSE otherwise
|
||||
*/
|
||||
kscePowerIsPowerOnline :: proc() -> sce.Bool ---
|
||||
|
||||
/**
|
||||
* Returns battery life time
|
||||
*
|
||||
* @return Battery life time in minutes
|
||||
*/
|
||||
kscePowerGetBatteryLifeTime :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Returns battery remaining capacity
|
||||
*
|
||||
* @return battery remaining capacity in mAh (milliampere hour)
|
||||
*/
|
||||
kscePowerGetBatteryRemainCapacity :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Returns battery state
|
||||
*
|
||||
* @return SCE_TRUE if battery is low, SCE_FALSE otherwise
|
||||
*/
|
||||
kscePowerIsLowBattery :: proc() -> sce.Bool ---
|
||||
|
||||
/**
|
||||
* Returns battery full capacity
|
||||
*
|
||||
* @return battery full capacity in mAh (milliampere hour)
|
||||
*/
|
||||
kscePowerGetBatteryFullCapacity :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Returns battery temperature
|
||||
*
|
||||
* @return temperature in degrees celcius * 100
|
||||
*/
|
||||
kscePowerGetBatteryTemp :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Returns battery voltage
|
||||
*
|
||||
* @return battery voltage in mV (millivolts)
|
||||
*/
|
||||
kscePowerGetBatteryVolt :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Returns battery state of health
|
||||
*
|
||||
* @return battery state of health percent
|
||||
*/
|
||||
kscePowerGetBatterySOH :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Returns battery cycle count
|
||||
*
|
||||
* @return battery cycle count
|
||||
*/
|
||||
kscePowerGetBatteryCycleCount :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Returns CPU clock frequency
|
||||
*
|
||||
* @return CPU clock frequency in Mhz
|
||||
*/
|
||||
kscePowerGetArmClockFrequency :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Returns BUS clock frequency
|
||||
*
|
||||
* @return BUS clock frequency in Mhz
|
||||
*/
|
||||
kscePowerGetBusClockFrequency :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Returns Sys clock frequency
|
||||
*
|
||||
* @return Sys clock frequency in Mhz
|
||||
*/
|
||||
kscePowerGetSysClockFrequency :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Returns GPU crossbar clock frequency
|
||||
*
|
||||
* @return GPU crossbar clock frequency in Mhz
|
||||
*/
|
||||
kscePowerGetGpuXbarClockFrequency :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Requests PS Vita to do a soft reset
|
||||
*
|
||||
* @return always 0
|
||||
*/
|
||||
kscePowerRequestSoftReset :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Requests PS Vita to do a cold reset
|
||||
*
|
||||
* @return always 0
|
||||
*/
|
||||
kscePowerRequestColdReset :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Requests PS Vita to go into standby
|
||||
*
|
||||
* @return always 0
|
||||
*/
|
||||
kscePowerRequestStandby :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Requests PS Vita to suspend
|
||||
*
|
||||
* @return always 0
|
||||
*/
|
||||
kscePowerRequestSuspend :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Request display off
|
||||
*
|
||||
* @return always 0
|
||||
*/
|
||||
kscePowerRequestDisplayOff :: proc() -> c.int ---
|
||||
|
||||
/**
|
||||
* Set the screen brightness.
|
||||
* @see ::sceAVConfigSetDisplayBrightness for userland counterpart.
|
||||
*
|
||||
* @param brightness Brightness that the screen will be set to (range 21-65536, 0 turns off the screen).
|
||||
*
|
||||
* @return ?
|
||||
*/
|
||||
kscePowerSetDisplayBrightness :: proc(brightness: c.int) -> c.int ---
|
||||
|
||||
/**
|
||||
* Sets CPU clock frequency
|
||||
*
|
||||
* @param freq - Frequency to set in Mhz
|
||||
*
|
||||
* @return 0 on success, < 0 on error
|
||||
*/
|
||||
kscePowerSetArmClockFrequency :: proc(freq: c.int) -> c.int ---
|
||||
|
||||
/**
|
||||
* Sets BUS clock frequency
|
||||
*
|
||||
* @param freq - Frequency to set in Mhz
|
||||
*
|
||||
* @return 0 on success, < 0 on error
|
||||
*/
|
||||
kscePowerSetBusClockFrequency :: proc(freq: c.int) -> c.int ---
|
||||
|
||||
/**
|
||||
* Sets GPU clock frequency
|
||||
*
|
||||
* @param freq - Frequency to set in Mhz
|
||||
*
|
||||
* @return 0 on success, < 0 on error
|
||||
*/
|
||||
kscePowerSetGpuClockFrequency :: proc(freq: c.int) -> c.int ---
|
||||
|
||||
/**
|
||||
* Sets GPU crossbar clock frequency
|
||||
*
|
||||
* @param freq - Frequency to set in Mhz
|
||||
*
|
||||
* @return 0 on success, < 0 on error
|
||||
*/
|
||||
kscePowerSetGpuXbarClockFrequency :: proc(freq: c.int) -> c.int ---
|
||||
}
|
||||
|
||||
+4
-5
@@ -3,7 +3,6 @@ package power
|
||||
import "core:c"
|
||||
import sce "../common"
|
||||
|
||||
// TODO:
|
||||
ScePowerErrorCode :: enum c.uint {
|
||||
INVALID_VALUE = 0x802B0000,
|
||||
ALREADY_REGISTERED = 0x802B0001,
|
||||
@@ -15,10 +14,10 @@ ScePowerErrorCode :: enum c.uint {
|
||||
#assert(size_of(ScePowerErrorCode) == 4)
|
||||
|
||||
ScePowerCallbackType :: enum c.uint {
|
||||
AFTER_SYSTEM_RESUME = 0x00000080, /* TODO: confirm */
|
||||
AFTER_SYSTEM_RESUME = 0x00000080,
|
||||
BATTERY_ONLINE = 0x00000100,
|
||||
THERMAL_SUSPEND = 0x00000200, /* TODO: confirm */
|
||||
LOW_BATTERY_SUSPEND = 0x00000400, /* TODO: confirm */
|
||||
THERMAL_SUSPEND = 0x00000200,
|
||||
LOW_BATTERY_SUSPEND = 0x00000400,
|
||||
LOW_BATTERY = 0x00000800,
|
||||
POWER_ONLINE = 0x00001000,
|
||||
SYSTEM_SUSPEND = 0x00010000,
|
||||
@@ -27,7 +26,7 @@ ScePowerCallbackType :: enum c.uint {
|
||||
UNK_0x100000 = 0x00100000, /* Related to proc_event::display_switch */
|
||||
APP_RESUME = 0x00200000,
|
||||
APP_SUSPEND = 0x00400000,
|
||||
APP_RESUMING = 0x00800000, /* TODO: confirm */
|
||||
APP_RESUMING = 0x00800000,
|
||||
BUTTON_PS_START_PRESS = 0x04000000,
|
||||
BUTTON_PS_POWER_PRESS = 0x08000000,
|
||||
BUTTON_PS_HOLD = 0x10000000,
|
||||
|
||||
Reference in New Issue
Block a user