xref: /petsc/src/sys/utils/arch.c (revision 46bc77b6d550debde283362c0c819c2f2ba7ff30)
1e5c89e4eSSatish Balay #define PETSC_DLL
2e5c89e4eSSatish Balay 
3e5c89e4eSSatish Balay #include "petsc.h"         /*I  "petsc.h"  I*/
4e5c89e4eSSatish Balay #include "petscsys.h"           /*I  "petscsys.h"  I*/
5e5c89e4eSSatish Balay 
6e5c89e4eSSatish Balay #undef __FUNCT__
7e5c89e4eSSatish Balay #define __FUNCT__ "PetscGetArchType"
8e5c89e4eSSatish Balay /*@C
9e5c89e4eSSatish Balay      PetscGetArchType - Returns a standardized architecture type for the machine
10e5c89e4eSSatish Balay      that is executing this routine.
11e5c89e4eSSatish Balay 
12e5c89e4eSSatish Balay      Not Collective
13e5c89e4eSSatish Balay 
14e5c89e4eSSatish Balay      Input Parameter:
15e5c89e4eSSatish Balay .    slen - length of string buffer
16e5c89e4eSSatish Balay 
17e5c89e4eSSatish Balay      Output Parameter:
18e5c89e4eSSatish Balay .    str - string area to contain architecture name, should be at least
19e5c89e4eSSatish Balay            10 characters long. Name is truncated if string is not long enough.
20e5c89e4eSSatish Balay 
21e5c89e4eSSatish Balay      Level: developer
22e5c89e4eSSatish Balay 
23e5c89e4eSSatish Balay      Concepts: machine type
24e5c89e4eSSatish Balay      Concepts: architecture
25e5c89e4eSSatish Balay 
26e5c89e4eSSatish Balay @*/
27e5c89e4eSSatish Balay PetscErrorCode PETSC_DLLEXPORT PetscGetArchType(char str[],size_t slen)
28e5c89e4eSSatish Balay {
29e5c89e4eSSatish Balay   PetscErrorCode ierr;
30e5c89e4eSSatish Balay 
31e5c89e4eSSatish Balay   PetscFunctionBegin;
32*46bc77b6SBarry Smith #if defined(PETSC_ARCH)
33*46bc77b6SBarry Smith   ierr = PetscStrncpy(str,PETSC_ARCH,slen-1);CHKERRQ(ierr);
34e5c89e4eSSatish Balay   str[slen-1] = 0;
35e5c89e4eSSatish Balay #else
36*46bc77b6SBarry Smith #error "$PETSC_ARCH/include/petscconf.h is missing PETSC_ARCH"
37e5c89e4eSSatish Balay #endif
38e5c89e4eSSatish Balay   PetscFunctionReturn(0);
39e5c89e4eSSatish Balay }
40e5c89e4eSSatish Balay 
41