mirror of
https://github.com/aaru-dps/fstester.git
synced 2025-12-16 19:24:39 +00:00
Implement OS information for AmigaOS.
This commit is contained in:
@@ -31,6 +31,8 @@ project(
|
||||
DESCRIPTION "Filesystem test creator for AmigaOS and compatibles"
|
||||
LANGUAGES C)
|
||||
|
||||
add_definitions(-D__USE_INLINE__)
|
||||
|
||||
set(PLATFORM_SOURCES attr.c deleted.c dirdepth.c filename.c files.c frag.c links.c os.c perms.c perms.h rsrcfork.c sparse.c time.c volume.c xattr.c)
|
||||
|
||||
set(EXECUTABLE_NAME "fssetter-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
|
||||
|
||||
@@ -22,9 +22,89 @@ Aaru Data Preservation Suite
|
||||
Copyright (C) 2011-2021 Natalia Portillo
|
||||
*****************************************************************************/
|
||||
|
||||
#include <exec/execbase.h>
|
||||
#include <proto/exec.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "../include/defs.h"
|
||||
#include "../log.h"
|
||||
|
||||
void GetOsInfo()
|
||||
{
|
||||
// TODO
|
||||
BOOL amithlon = FALSE;
|
||||
struct Node* node;
|
||||
char version[16];
|
||||
char system[16];
|
||||
struct Library* VersionBase;
|
||||
struct Library* ArosBase;
|
||||
int error = -1;
|
||||
|
||||
memset(version, 0, 16);
|
||||
memset(system, 0, 16);
|
||||
|
||||
strncpy(system, "AmigaOS", 7);
|
||||
|
||||
switch(SysBase->LibNode.lib_Version)
|
||||
{
|
||||
case 27: strncpy(version, "0.7", 3); break;
|
||||
case 29: strncpy(version, "0.9", 3); break;
|
||||
case 30: strncpy(version, "1.0", 3); break;
|
||||
case 31:
|
||||
case 32: strncpy(version, "1.1", 3); break;
|
||||
case 33: strncpy(version, "1.2", 3); break;
|
||||
case 34:
|
||||
case 35: strncpy(version, "1.3", 3); break;
|
||||
case 36: strncpy(version, "2.0", 3); break;
|
||||
case 37: strncpy(version, "2.04", 4); break;
|
||||
case 38: strncpy(version, "2.1", 3); break;
|
||||
case 39: strncpy(version, "3.0", 3); break;
|
||||
case 40:
|
||||
case 41: strncpy(version, "3.1", 3); break;
|
||||
case 43: strncpy(version, "3.2", 3); break;
|
||||
case 44: strncpy(version, "3.5", 3); break;
|
||||
case 45: strncpy(version, "3.9", 3); break;
|
||||
case 50:
|
||||
case 51:
|
||||
case 52: strncpy(version, "4.0", 3); break;
|
||||
case 53: strncpy(version, "4.1", 3); break;
|
||||
default: strncpy(version, "unknown version", 15); break;
|
||||
}
|
||||
|
||||
Disable();
|
||||
for(node = SysBase->ResourceList.lh_Head; node->ln_Succ != NULL; node = node->ln_Succ)
|
||||
{
|
||||
if(strcmp(node->ln_Name, "amithlon.resource") == 0)
|
||||
{
|
||||
amithlon = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
Enable();
|
||||
|
||||
ArosBase = OpenLibrary((CONST_STRPTR) "aros.library", 0);
|
||||
if(ArosBase)
|
||||
{
|
||||
memset(system, 0, 16);
|
||||
memset(version, 0, 16);
|
||||
strncpy(system, "AROS", 4);
|
||||
snprintf(version, 16, "%d.%d", ArosBase->lib_Version, ArosBase->lib_Revision);
|
||||
}
|
||||
|
||||
// TODO: Detect MorphOS
|
||||
|
||||
log_write("OS information:\n");
|
||||
|
||||
log_write("Running under %s %s\n", system, version);
|
||||
log_write("KickStart v%d.%d\n", SysBase->LibNode.lib_Version, SysBase->LibNode.lib_Revision);
|
||||
|
||||
VersionBase = OpenLibrary((CONST_STRPTR) "version.library", 0);
|
||||
if(VersionBase)
|
||||
{
|
||||
log_write("Workbench v%d.%d\n", VersionBase->lib_Version, VersionBase->lib_Revision);
|
||||
|
||||
CloseLibrary(VersionBase);
|
||||
}
|
||||
|
||||
if(amithlon) log_write("Running under Amithlon\n");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user