PCV services: Difference between revisions

ITimeZoneService: Imported from SwIPC.
Line 426: Line 426:
! Cmd || Name || Notes
! Cmd || Name || Notes
|-
|-
| 0 || GetDeviceLocationName || Returns an output [[#LocationName]].
| 0 || GetDeviceLocationName || No input, returns an output [[#LocationName]].
|-
|-
| 1 || SetDeviceLocationName || Takes an input [[#LocationName]].
| 1 || SetDeviceLocationName || Takes an input [[#LocationName]], no output.
|-
|-
| 2 || GetTotalLocationNameCount || No input, returns an output u32.
| 2 || GetTotalLocationNameCount || No input, returns an output s32.
|-
|-
| 3 || LoadLocationNameList ||  
| 3 || LoadLocationNameList || Takes an input s32 and a type-0x6 output buffer for [[#LocationName]], returns an output s32.
|-
|-
| 4 || LoadTimeZoneRule ||  
| 4 || LoadTimeZoneRule || Takes an input [[#LocationName]] and a type-0x16 output buffer for [[#TimeZoneRule]], no output.
|-
|-
| 5 || GetTimeZoneRuleVersion ||   
| 5 || GetTimeZoneRuleVersion ||  No input, returns an output [[#TimeZoneRuleVersion]].
|-
|-
| 100 || ToCalendarTime ||  
| 100 || ToCalendarTime || Takes an input [[#PosixTime]] and a type-0x15 input buffer for [[#TimeZoneRule]], returns an output [[#CalendarTime]] and [[#CalendarAdditionalInfo]].
|-
|-
| 101 || ToCalendarTimeWithMyRule ||  
| 101 || ToCalendarTimeWithMyRule || Takes an input [[#PosixTime]], returns an output [[#CalendarTime]] and [[#CalendarAdditionalInfo]].
|-
|-
| 200 || ToPosixTime ||  
| 200 || ToPosixTime || Takes an input [[#CalendarTime]], a type-0x15 input buffer for [[#TimeZoneRule]], an type-0xA output buffer for [[#PosixTime]] array, and returns an output s32.
|-
|-
| 201 || ToPosixTimeWithMyRule ||  
| 201 || ToPosixTimeWithMyRule || Takes an input [[#CalendarTime]], an type-0xA output buffer for [[#PosixTime]] array, and returns an output s32.
|-
|-
|}
|}
Line 463: Line 463:


This is an 0x24-byte struct.
This is an 0x24-byte struct.
=== TimeZoneRule ===
This is an 0x4000-byte struct. Official sw uses fixed-size 0x4000 for the buffer size with the above commands.
=== TimeZoneRuleVersion ===
This is an u128.
=== CalendarTime ===
This is an u64.
=== CalendarAdditionalInfo ===
This is an 0x18-byte struct.