#!/usr/bin/env python3
"""
Read AMD CPU power from MSR (requires root)
PPT = Package Power Tracking (in milliwatts)
"""
import sys
import json

def read_msr(cpu_id, address):
    """Read Model Specific Register."""
    path = f'/dev/cpu/{cpu_id}/msr'
    try:
        with open(path, 'rb') as f:
            f.seek(address * 8)
            data = f.read(8)
            return int.from_bytes(data, 'little')
    except Exception as e:
        return None

def main():
    # AMD PPT MSR - Package Power Tracking (milliwatts)
    ppt_raw = read_msr(0, 0xC001029A)
    
    if ppt_raw is None:
        print(json.dumps({"error": "Could not read MSR"}))
        sys.exit(1)
    
    # Convert to watts
    ppt_watts = ppt_raw / 1000.0
    
    result = {
        "ppt_mw": ppt_raw,
        "ppt_w": round(ppt_watts, 2),
        "success": True
    }
    
    print(json.dumps(result))

if __name__ == "__main__":
    main()