![]() |
Re: core2duotemp.c to core2duotemp.pas
Wo genau liegen denn deine Probleme bei der Übersetzung. Ich vermute mal, dass du ein bisschen C kannst (Grundkenntnisse sind ja nicht schwierig), und ich habe jetzt ehrlich gesagt keine Lust, dass aus dem Stand zu übersetzen. Die cpu.h ist kein Standard, die bräuchte man zur Übersetzung auch.
|
Re: core2duotemp.c to core2duotemp.pas
cpu.h ? - OK - here it is...
Delphi-Quellcode:
/*- * Copyright (c) 2006 Stanislav Sedov <stas@FreeBSD.org> * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * $MBSDlabs: devcpu/cpu/cpu.h,v 1.4 2006/12/08 22:32:35 stas Exp $ * */ #ifndef _CPU_H_ #define _CPU_H_ typedef struct { int msr; /* MSR to read */ uint64_t data; } cpu_msr_args_t; typedef struct { int level; /* CPUID level */ uint32_t data[4]; } cpu_cpuid_args_t; typedef struct { void *data; size_t size; } cpu_update_args_t; #define CPU_RDMSR _IOWR('c', 1, cpu_msr_args_t) #define CPU_WRMSR _IOWR('c', 2, cpu_msr_args_t) #define CPU_CPUID _IOWR('c', 3, cpu_cpuid_args_t) #define CPU_UPDATE _IOWR('c', 4, cpu_update_args_t) #define INTEL_VENDOR_ID "GenuineIntel" #define AMD_VENDOR_ID "AuthenticAMD" #define MSR_K8_UCODE_UPDATE 0xc0010020 #endif /* _CPU_H_ */ |
Re: core2duotemp.c to core2duotemp.pas
dir ist schon klar, das solche sachen NUR auf Linux systemen funktioniert?
|
Re: core2duotemp.c to core2duotemp.pas
Zitat:
Die AMD-K8-Temperatur(en) kann man doch auch mit DELPHI unter WINDOWS auslesen - was habt Ihr denn alle für eine Riesenangst, wenn Ihr den Pfad der WINDOWS-(Un)tugend verlasst? Seit Jahren wird dies und das behauptet von Leuten, die KEINE Ahnung haben, aber überall ihren Senf dazugeben müssen!!! |
Re: core2duotemp.c to core2duotemp.pas
Zitat:
und da das System von /dev/cpu0 unter Windows nicht implementiert ist, muß man da mit sicherheit ganz andere wege suchen (du kannst ja mal versuchen in der registry zu suchen) aber fakt ist, das der weg den c source zu übersetzen mit sicherheit scheitert wird (auf windows systemen) |
Re: core2duotemp.c to core2duotemp.pas
Zitat:
Gut gebrüllt, Löwe... :wall: Um es nochmals zu wiederholen: Linux bietet mit den symbolischen Gerätelinks einen direkten Weg Informationen aus dem Ring-0 (Kernel) zur Anwenderschicht (Ring-3) zu übermitteln. Diesen Weg hast du unter Windows nicht. Du hast somit das Problem keinen Aufruf in deiner Ring-3 Applikation zu machen um ein MSR Register auszulesen (RDMSR). Statt dessen haut dir Windows auf die Finger mit einer Exception über eine priviligierte Anweisung. Probier es aus:
Delphi-Quellcode:
/EDIT: Wobei ich mich gerade Frage, ob der interne Assembler die Instruction RDMSR über decodiert. Das muss wahrscheinlich mit define byte hardcodiert werden...
function TryIt; Assembler;
asm pushad mov eax, 1 RDMSR popad end; |
Re: core2duotemp.c to core2duotemp.pas
Liste der Anhänge anzeigen (Anzahl: 1)
amd64coretemp
Bei Intel Prozessoren werden die Temperaturen aus dem MSR (Model Specific Register) und bei AMD Prozessoren aus einem Register in der NB ausgelesen. |
Re: core2duotemp.c to core2duotemp.pas
Zitat:
|
Re: core2duotemp.c to core2duotemp.pas
HI,
auf Codegear habe ich vorkurzem gesehen, dass man (ich schätzte mal sofern man c++ builder und delphi hat) auch c++ units oder komponenten in delphi oder anders rum verwenden kann. Ich hab den artikel nicht gelesen und kann daher auch nicht bestätigen ob dies geht! wenn es gienge wäre es auf jedenfall eine teure angelegenheit! |
Re: core2duotemp.c to core2duotemp.pas
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz