* ntdll.h (_SYSTEM_PROCESSOR_TIMES): Force eight byte alignment.

(_SYSTEM_TIME_OF_DAY_INFORMATION): Ditto.
This commit is contained in:
Christopher Faylor 2002-07-05 21:58:49 +00:00
parent d5591d9df6
commit 91a2f87b9d
3 changed files with 43 additions and 36 deletions

View File

@ -1,3 +1,8 @@
2002-07-05 Christopher Faylor <cgf@redhat.com>
* ntdll.h (_SYSTEM_PROCESSOR_TIMES): Force eight byte alignment.
(_SYSTEM_TIME_OF_DAY_INFORMATION): Ditto.
2002-07-05 Corinna Vinschen <corinna@vinschen.de> 2002-07-05 Corinna Vinschen <corinna@vinschen.de>
* fhandler.h (UNCONNECTED): New define. * fhandler.h (UNCONNECTED): New define.

View File

@ -50,7 +50,7 @@ typedef struct _SYSTEM_BASIC_INFORMATION
UCHAR NumberProcessors; UCHAR NumberProcessors;
} SYSTEM_BASIC_INFORMATION, *PSYSTEM_BASIC_INFORMATION; } SYSTEM_BASIC_INFORMATION, *PSYSTEM_BASIC_INFORMATION;
typedef struct _SYSTEM_PROCESSOR_TIMES typedef struct __attribute__ ((aligned (8))) _SYSTEM_PROCESSOR_TIMES
{ {
LARGE_INTEGER IdleTime; LARGE_INTEGER IdleTime;
LARGE_INTEGER KernelTime; LARGE_INTEGER KernelTime;
@ -244,7 +244,7 @@ typedef struct _SYSTEM_PERFORMANCE_INFORMATION
ULONG SystemCalls; ULONG SystemCalls;
} SYSTEM_PERFORMANCE_INFORMATION, *PSYSTEM_PERFORMANCE_INFORMATION; } SYSTEM_PERFORMANCE_INFORMATION, *PSYSTEM_PERFORMANCE_INFORMATION;
typedef struct _SYSTEM_TIME_OF_DAY_INFORMATION typedef struct __attribute__ ((aligned(8))) _SYSTEM_TIME_OF_DAY_INFORMATION
{ {
LARGE_INTEGER BootTime; LARGE_INTEGER BootTime;
LARGE_INTEGER CurrentTime; LARGE_INTEGER CurrentTime;

View File

@ -2822,8 +2822,43 @@ suffix_scan::has (const char *in_path, const suffix_info *in_suffixes)
int int
suffix_scan::next () suffix_scan::next ()
{ {
if (suffixes) for (;;)
{ {
if (!suffixes)
switch (nextstate)
{
case SCAN_BEG:
suffixes = suffixes_start;
if (!suffixes)
{
nextstate = SCAN_LNK;
return 1;
}
if (!*suffixes->name)
suffixes++;
nextstate = SCAN_EXTRALNK;
/* fall through to suffix checking below */
break;
case SCAN_HASLNK:
nextstate = SCAN_EXTRALNK; /* Skip SCAN_BEG */
return 1;
case SCAN_LNK:
case SCAN_EXTRALNK:
strcpy (eopath, ".lnk");
nextstate = SCAN_DONE;
return 1;
case SCAN_JUSTCHECK:
nextstate = SCAN_APPENDLNK;
return 1;
case SCAN_APPENDLNK:
strcat (eopath, ".lnk");
nextstate = SCAN_DONE;
return 1;
default:
*eopath = '\0';
return 0;
}
while (suffixes && suffixes->name) while (suffixes && suffixes->name)
if (!suffixes->addon) if (!suffixes->addon)
suffixes++; suffixes++;
@ -2837,39 +2872,6 @@ suffix_scan::next ()
} }
suffixes = NULL; suffixes = NULL;
} }
switch (nextstate)
{
case SCAN_BEG:
suffixes = suffixes_start;
if (!suffixes)
nextstate = SCAN_LNK;
else
{
if (!*suffixes->name)
suffixes++;
nextstate = SCAN_EXTRALNK;
}
return 1;
case SCAN_HASLNK:
nextstate = SCAN_EXTRALNK; /* Skip SCAN_BEG */
return 1;
case SCAN_LNK:
case SCAN_EXTRALNK:
strcpy (eopath, ".lnk");
nextstate = SCAN_DONE;
return 1;
case SCAN_JUSTCHECK:
nextstate = SCAN_APPENDLNK;
return 1;
case SCAN_APPENDLNK:
strcat (eopath, ".lnk");
nextstate = SCAN_DONE;
return 1;
default:
*eopath = '\0';
return 0;
}
} }
/* Check if PATH is a symlink. PATH must be a valid Win32 path name. /* Check if PATH is a symlink. PATH must be a valid Win32 path name.