• Tadjtime | Zeit synchronisieren. |
• Talarm | Weckfunktion. |
• Tgetdate | Datum ermitteln. |
• Tgettime | Uhrzeit ermitteln. |
• Tgettimeofday | interrogates the state of the internal, high resolution system clock. |
• Tmalarm | reads/sets a process alarm for the current process. |
• Tsetdate | Datum einstellen. |
• Tsetitimer | Steuerung eines periodischen Timers. |
• Tsettime | Uhrzeit einstellen. |
• Tsettimeofday | sets the state of the internal, high resolution system clock. |
Querverweis: Datum und Zeit im XBIOS
Name: | »Adjust time« - correct the time to synchronize the system
clock.
|
Opcode: | 343 (0x157)
|
Syntax: | int Tadjtime ( const struct timeval *delta, struct timeval
*olddelta );
|
Description: | The Tadjtime() function gradually adjusts the system clock (as
returned by Tgettimeofday). The amount of time by which the clock is
to be adjusted is specified in the structure pointed to by delta.
If the adjustment in delta is positive, then the system clock is speeded up by some small percentage (i.e., by adding a small amount of time to the clock value in each second) until the adjustment has been completed. If the adjustment in delta is negative, then the clock is slowed down in a similar fashion. If a clock adjustment from an earlier Tadjtime() call is already in progress at the time of a later Tadjtime() call, and delta is not NULL for the later call, then the earlier adjustment is stopped, but any already completed part of that adjustment is not undone. If olddelta is not NULL, then the buffer that it points to is used to return the amount of time remaining from any previous adjustment that has not yet been completed. |
Return value: | A return value 0 if the setting was successful, otherwise a
negative error code is returned.
|
Notes: | The adjustment that Tadjtime() makes to the clock is carried
out in such a manner that the clock is always monotonically
increasing. Using Tadjtime() to adjust the time prevents the problems
that can be caused for certain applications (e.g., make(1)) by abrupt
positive or negative jumps in the system time.
|
Availability: | This function is available as of FreeMiNT 1.16.
|
Group: | Date and Time
|
See also: | Binding Tsetdate Tsettime
|
C: | int Tadjtime ( const struct timeval *delta, struct timeval
*olddelta );
|
Assembler: |
move.l olddelta,-(sp) ; Offset 6 move.l delta,-(sp) ; Offset 2 move.w #343,-(sp) ; Offset 0 trap #1 ; GEMDOS lea 10(sp),sp ; Correct stack |
Name: | »Talarm« - Lesen/setzen eines Alarms für den aktuellen
Prozess.
|
Gemdosnummer: | 288 (0x0120)
|
Deklaration: | int32_t Talarm ( int32_t time );
|
Beschreibung: | Die Funktion sendet dem aufrufenden Prozess nach time
Sekunden ein SIGALRM-Signal.
Falls für dieses Signal kein Signal-Handler per Psignal installiert wurde, wird der Prozess sofort (d.h. beim Eintreffen des Signals) terminiert. Durch einen Wert von time = 0, kann ein früher gesetzter Alarm storniert werden. Ist time negativ, so hat die Funktion keine Auswirkungen und lediglich der Rückgabewert wird geliefert. |
Ergebnis: | Die Funktion liefert die Zeit bis zum Eintreffen des
SIGALRM-Signals (wenn ein Alarm aktiviert wurde) in Sekunden zurück,
und anderenfalls den Wert 0.
|
Verfügbar: | Seit der ersten in MultiTOS integrierten MiNT Version 1.04.
Diese Funktion wurde mit MiNT Version 0.8pl8 eingeführt, aber für Versionen vor 1.12 enthält der Code einen Fehler, der die Funktionalität beeinträchtigt. |
Gruppe: | Datum und Uhrzeit
|
Querverweis: | Binding Tmalarm Pause Psignal Signale
|
C: | int32_t Talarm ( int32_t time );
|
Assembler: |
move.l time,-(sp) ; Offset 2 move.w #288,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #6,sp ; Stack korrigieren |
Name: | »get date« - Tagesdatum ermitteln.
| ||||||||||
Gemdosnummer: | 42
| ||||||||||
Deklaration: | uint16_t Tgetdate ( void );
| ||||||||||
Beschreibung: | Die GEMDOS-Routine Tgetdate ermittelt das aktuelle Tagesdatum.
| ||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis eine uint32_t-Zahl mit dem
Tagesdatum. Das Datum ist wie folgt codiert:
| ||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||
Gruppe: | Datum und Uhrzeit
| ||||||||||
Querverweis: | Binding Tsetdate
|
C: | uint16_t Tgetdate ( void );
|
Assembler: |
move.w #42,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #2,sp ; Stack korrigieren |
Name: | »get time« - ermittelt die Uhrzeit.
| ||||||||||
Gemdosnummer: | 44
| ||||||||||
Deklaration: | uint16_t Tgettime ( void );
| ||||||||||
Beschreibung: | Die GEMDOS-Routine Tgettime ermittelt die Uhrzeit.
| ||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis die Uhrzeit. Sie ist wie
folgt codiert:
| ||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||
Gruppe: | Datum und Uhrzeit
| ||||||||||
Querverweis: | Binding Tsettime
|
C: | uint16_t Tgettime ( void );
|
Assembler: |
move.w #44,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #2,sp ; Stack korrigieren |
Name: | »Tgettimeofday« - erfragt den Status der internen,
hochauflösenden Systemzeit.
|
Gemdosnummer: | 341 (0x0155)
|
Deklaration: | int32_t Tgettimeofday ( timeval *tv, timezone *tzp );
|
Beschreibung: | Diese Funktion erfragt den Status der internen,
hochauflösenden Systemzeit.
Das Argument tv ist ein Zeiger auf eine timeval Struktur. Das Argument tzp ist ein Zeiger auf eine timezone Struktur. Es kann für jeden der beiden Argumente NULL übergeben werden. Dies wird nicht als Fehler angesehen. Entwickler von Bibliotheken sollten beachten, daß die Definition der Struktur timezone nicht konform zu der anderer Strukturen ist. Die Member sind vom Datentyp int und nicht long (Dies trifft nur für die Struktur timezone zu, die Member der Struktur timeval sind vom Datentyp long). 16-Bit Bibliotheken müssen den Inhalt der Struktur, auf die tzp zeigt, kopieren. Der Ssystem() Aufruf hat ein Kommando S_CLOCKMODE. Dieses Kommando erlaubt es, den Modus des Kernel Zeitgebers zu setzen oder anzufragen. Z.B. festzulegen, ob die Hardware Uhr UTC oder die local time anzeigt. Es ist geplant, MiNT kompatibel zu dem kernel time keeping model aus der RFC1305 zu machen. Dieses Modell wurde erfolgreich in Betriebssystemen wie SunOS, Ultrix, OSF/1, HP-UX und Linux umgesetzt. Es ist zu erwarten, daß sich die interen Realsierung in Zukunft ändert. |
Ergebnis: | Der Aufruf kann nicht fehlschlagen, es wird immer E_OK
zurückgeliefert.
|
Verfügbar: | Verfügbar, wenn ein MiNT Kernel mit einer Versionsnummer von
mindestens 1.15.0 erkannt wird.
|
Gruppe: | Datum und Uhrzeit
|
Querverweis: | Binding Ssystem Tsettimeofday
|
C: | int32_t Tgettimeofday ( timeval *tv, timezone *tzp );
|
Assembler: |
pea tzp ; Offset 6 pea tv ; Offset 2 move.w #341,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $0a(sp),sp ; Stack korrigieren |
Name: | »Tmalarm« - interrogates the state of the internal, high
resolution system clock.
|
Gemdosnummer: | 317 (0x013d)
|
Deklaration: | int32_t Tmalarm( int32_t time );
|
Beschreibung: | This function reads/sets a process alarm for the current
process.
time specifies the length of time (in milliseconds) to wait before a SIGALRM signal is delivered. If time is 0 then any previously set alarm is cancelled. If time is negative the function does not modify any alarm currently set. If no SIGALRM signal handler has been set up when the alarm is triggered, the process will be killed. |
Ergebnis: | Returns 0 if no alarm was scheduled prior to this call or the
amount of time remaining (in milliseconds) before the alarm is
triggered.
|
Verfügbar: | Available when a 'MiNT' cookie with a version of at least 1.10
exists.
|
Gruppe: | Datum und Uhrzeit
|
Querverweis: | Binding Talarm Pause Psignal
|
C: | int32_t Tmalarm( int32_t time );
|
Assembler: |
move.l time,-(sp) ; Offset 2 move.w #341,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #6,sp ; Stack korrigieren |
Name: | »set date« - Tagesdatum setzen.
| ||||||||||
Gemdosnummer: | 43
| ||||||||||
Deklaration: | int16_t Tsetdate ( uint16_t date );
| ||||||||||
Beschreibung: | Die GEMDOS-Routine Tsetdate setzt das aktuelle Tagesdatum. Der
Parameter date ist wie folgt codiert:
Hinweis: Ab dem Blitter-TOS wird das Datum auch in der jeweils vorhandenen Hardware-Uhr gesetzt. | ||||||||||
Ergebnis: | Ein Rückgabewert von -1 kennzeichnet ein ungültiges Format
des Datums.
| ||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||
Gruppe: | Datum und Uhrzeit
| ||||||||||
Querverweis: | Binding Tgetdate Tadjtime
|
C: | int32_t Tsetdate ( uint16_t date );
|
Assembler: |
move.w date,-(sp) ; Offset 2 move.w #43,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #4,sp ; Stack korrigieren |
Name: | »Tsetitimer« - steuert einen periodischen Timer.
| ||||||||||||||||||||
Gemdosnummer: | 329 (0x0149)
| ||||||||||||||||||||
Deklaration: | int32_t Tsetitimer ( int16_t which, int32_t *interval, int32_t
*value, int32_t *ointerval, int32_t *ovalue );
| ||||||||||||||||||||
Beschreibung: | Die GEMDOS-Routine Tsetitimer steuert einen von insgesamt drei
möglichen periodischen Timern. Es gilt:
Da alle internen Berechnungen in Millisekunden gemessen werden, ist es nicht möglich einen Timer auf beliebige (sehr große, zukünftige) Werte zu setzen. | ||||||||||||||||||||
Ergebnis: | Die Funktion liefert bei korrekter Ausführung 0, und im
Fehlerfall einen negativen Wert zurück.
| ||||||||||||||||||||
Verfügbar: | Diese Funktion ist optional, daher darf ein Aufruf mit EINVFN
beantwortet werden. Sie ist verfügbar, wenn 'MiNT' Cookie mit einer
Versionsnummer von mindestens 1.11 existiert.
| ||||||||||||||||||||
Gruppe: | Datum und Uhrzeit
| ||||||||||||||||||||
Querverweis: | Binding Pause Psignal Talarm
|
C: | int32_t Tsetitimer ( int16_t which, int32_t *interval, int32_t
*value, int32_t *ointerval, int32_t *ovalue );
|
Assembler: |
move.l ovalue,-(sp) ; Offset 16 move.l ointerval,-(sp) ; Offset 12 move.l value,-(sp) ; Offset 8 move.l interval,-(sp) ; Offset 4 move.w which,-(sp) ; Offset 2 move.w #329,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea 20(sp),sp ; Stack korrigieren |
Name: | »set time« - setzt die Uhrzeit.
| ||||||||||
Gemdosnummer: | 45
| ||||||||||
Deklaration: | int16_t Tsettime ( uint16_t time );
| ||||||||||
Beschreibung: | Die GEMDOS-Routine Tsettime setzt die Uhrzeit. Der Parameter
time muß wie folgt codiert werden:
Hinweis: Ab dem Blitter-TOS 1.02 wird die Zeit auch in der jeweils vorhandenen Hardware-Uhr gesetzt. | ||||||||||
Ergebnis: | Ein Rückgabewert von -1 kennzeichnet ein ungültiges
Zeitformat.
| ||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||
Gruppe: | Datum und Uhrzeit
| ||||||||||
Querverweis: | Binding Tgettime
|
C: | int32_t Tsettime ( uint16_t time );
|
Assembler: |
move.w time,-(sp) ; Offset 2 move.w #45,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #4,sp ; Stack korrigieren |
Name: | »Tsettimeofday« - sets the state of the internal, high
resolution system clock.
|
Gemdosnummer: | 342 (0x0156)
|
Deklaration: | int32_t Tsettimeofday ( timeval *tv, timezone *tzp );
|
Beschreibung: | This function sets the state of the internal, high resolution
system clock.
The argument tv is a pointer to the timeval structure. The argument tzp is a pointer to the timezone structure. You may safely pass NULL for either argument. This isn't considered an error. Implementors of library bindings should be aware that the definition of struct timezone is non-standard. The members are actually int and not long int (this applies only to struct timezone; the members of struct timeval are always long). 16-bit libraries will have to copy the contents of the structure that tzp points to. The tz_dsttime member of timezone is stored, but not evaluated within the kernel. Beware not to misunderstand its meaning: if non-zero it simply signifies that daylight savings time apply during some part of the year, not necessarily now. In other words: if it is non-zero someday, it should be non-zero during the entire year. The Ssystem() call has a command S_CLOCKMODE. This command allows to retrieve or set the kernel clock mode, i.e. to specify whether the hardware clock is meant to run in UTC or in local time. It is planned to make MiNT compliant with the kernel time keeping model described in RFC1305. This model is already successfully implemented in operating systems such as SunOS, Ultrix, OSF/1, HP-UX and Linux. Please expect the internal realization to change in the future. |
Ergebnis: | The following error conditions are defined:
EPERM - an attempt was made by a user without super-user privileges to change the system time or system time zone information. EBADARG - one of the arguments is out of range. Note that the kernel time cannot be set to dates before Jan 1 1980 00:00:00 and after some day in 2038 (yep, MAX_LONG seconds since the epoch). Timezone offsets must be in the range of +/- 720 minutes. |
Verfügbar: | Available when a MiNT kernel of a version at least 1.15.0
release is detected.
|
Gruppe: | Datum und Uhrzeit
|
Querverweis: | Binding Ssystem Tgettimeofday
|
C: | int32_t Tsettimeofday ( timeval *tv, timezone *tzp );
|
Assembler: |
pea tzp ; Offset 6 pea tv ; Offset 2 move.w #342,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $0a(sp),sp ; Stack korrigieren |