<commit_before>
#define HW_DOS_DONT_DEFINE_MMSYSTEM

/* making the API use FAR CALL function pointers will allow future development
 * where file access and media playback code can exist in external DLLs, whether
 * 16-bit or 32-bit code */
#if TARGET_MSDOS == 32 && !defined(WIN386)
# define dosamp_FAR
#elif defined(LINUX)
# define dosamp_FAR
#else
# define dosamp_FAR far
#endif

/* platform has IRQ handling */
#if defined(LINUX) || defined(TARGET_WINDOWS) || defined(TARGET_OS2)
/* no */
#else
# define HAS_IRQ
#endif

/* platform has DMA handling */
#if defined(LINUX) || defined(TARGET_WINDOWS) || defined(TARGET_OS2)
/* no */
#else
# define HAS_DMA
#endif

/* platform has 8042 timer */
#if defined(LINUX)
/* no */
#elif defined(TARGET_WINDOWS)
/* Windows 3.x MIGHT have WINMM multimedia timer, might not.
 * If it doesn't, we can do what any other Windows 3.x app would do
 * and just talk directly to the 8042, because Windows 3.x/9x/ME
 * is that kind of platform where IO is allowed in userspace (but
 * sometimes virtualized by kernel drivers). Note that direct IO
 * of this kind is a no-no in 32-bit Windows NT, but we'll detect
 * that case and avoid the code then. If we're a 16-bit WINAPP,
 * we *can* do this in Windows NT because NTVDM.EXE will trap and
 * emulate the 8042 timer. */
# if (TARGET_MSDOS == 16)/*Win16*/ || (TARGET_MSDOS == 32 && TARGET_WINDOWS < 40)/*Win32s*/ || defined(WIN386)/*Win386*/
#  define HAS_8254
# endif
#else
# define HAS_8254
#endif

/* platform should use winfcon (our own DOSLIB console emulation) */
#if defined(TARGET_WINDOWS) && TARGET_WINDOWS < 40
/* yes: Windows 3.x does not offer a console even for Win32s applications */
# define USE_WINFCON
#else
/* no */
#endif

/* platform has RDTSC timer */
#if defined(LINUX)
/* no */
#else
# define HAS_RDTSC
#endif

/* platform has Sound Blaster direct access */
#if defined(LINUX) || defined(TARGET_WINDOWS) || defined(TARGET_OS2)
/* no */
#else
# define HAS_SNDSB
#endif

/* platform has CLI/STI */
#if defined(LINUX) || defined(TARGET_WINDOWS) || defined(TARGET_OS2)
/* no */
#else
# define HAS_CLISTI
#endif

/* platform has clock_gettime() and CLOCK_MONOTONIC */
#if defined(LINUX)
# define HAS_CLOCK_MONOTONIC
#else
/* no */
#endif

/* platform has OSS */
#if defined(LINUX)<commit_msg>Let's not use RDTSC on Windows. We can use the multimedia timer more reliably. I'm also concerned about some processors in the Windows 9x/XP timespan that reportedly change clock speed without maintaining a constant time stamp counter. Leave RDTSC with MS-DOS for now where power management is less likely to occur.<commit_after>
#define HW_DOS_DONT_DEFINE_MMSYSTEM

/* making the API use FAR CALL function pointers will allow future development
 * where file access and media playback code can exist in external DLLs, whether
 * 16-bit or 32-bit code */
#if TARGET_MSDOS == 32 && !defined(WIN386)
# define dosamp_FAR
#elif defined(LINUX)
# define dosamp_FAR
#else
# define dosamp_FAR far
#endif

/* platform has IRQ handling */
#if defined(LINUX) || defined(TARGET_WINDOWS) || defined(TARGET_OS2)
/* no */
#else
# define HAS_IRQ
#endif

/* platform has DMA handling */
#if defined(LINUX) || defined(TARGET_WINDOWS) || defined(TARGET_OS2)
/* no */
#else
# define HAS_DMA
#endif

/* platform has 8042 timer */
#if defined(LINUX)
/* no */
#elif defined(TARGET_WINDOWS)
/* Windows 3.x MIGHT have WINMM multimedia timer, might not.
 * If it doesn't, we can do what any other Windows 3.x app would do
 * and just talk directly to the 8042, because Windows 3.x/9x/ME
 * is that kind of platform where IO is allowed in userspace (but
 * sometimes virtualized by kernel drivers). Note that direct IO
 * of this kind is a no-no in 32-bit Windows NT, but we'll detect
 * that case and avoid the code then. If we're a 16-bit WINAPP,
 * we *can* do this in Windows NT because NTVDM.EXE will trap and
 * emulate the 8042 timer. */
# if (TARGET_MSDOS == 16)/*Win16*/ || (TARGET_MSDOS == 32 && TARGET_WINDOWS < 40)/*Win32s*/ || defined(WIN386)/*Win386*/
#  define HAS_8254
# endif
#else
# define HAS_8254
#endif

/* platform should use winfcon (our own DOSLIB console emulation) */
#if defined(TARGET_WINDOWS) && TARGET_WINDOWS < 40
/* yes: Windows 3.x does not offer a console even for Win32s applications */
# define USE_WINFCON
#else
/* no */
#endif

/* platform has RDTSC timer */
#if defined(LINUX)
/* no */
#elif defined(TARGET_WINDOWS)
/* no. we can use the multimedia timer (Windows 3.x and later) or the 8254 (Windows 3.0 and older) */
#else
# define HAS_RDTSC
#endif

/* platform has Sound Blaster direct access */
#if defined(LINUX) || defined(TARGET_WINDOWS) || defined(TARGET_OS2)
/* no */
#else
# define HAS_SNDSB
#endif

/* platform has CLI/STI */
#if defined(LINUX) || defined(TARGET_WINDOWS) || defined(TARGET_OS2)
/* no */
#else
# define HAS_CLISTI
#endif

/* platform has clock_gettime() and CLOCK_MONOTONIC */
#if defined(LINUX)
# define HAS_CLOCK_MONOTONIC
#else
/* no */
#endif

/* platform has OSS */
#if defined(LINUX)
{'fraction_non_alphanumeric': 0.11035856573705179, 'fraction_numerical': 0.026294820717131476, 'mean_word_length': 4.18698347107438, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2603296', 'n_tokens_mistral': 1786, 'n_tokens_neox': 1638, 'n_words': 623}