-
Notifications
You must be signed in to change notification settings - Fork 160
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into third-party-license-doc
- Loading branch information
Showing
16 changed files
with
575 additions
and
58 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
project(print-sys-info C) | ||
|
||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_INSTALL_PREFIX}/lib/cmake") | ||
|
||
file(GLOB SI_SRC | ||
"*.c" | ||
) | ||
|
||
set(SI_PROJECT_NAME print-sys-info) | ||
add_executable(${SI_PROJECT_NAME} ${SI_SRC}) | ||
aws_set_common_properties(${SI_PROJECT_NAME}) | ||
|
||
|
||
target_include_directories(${SI_PROJECT_NAME} PUBLIC | ||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> | ||
$<INSTALL_INTERFACE:include>) | ||
|
||
target_link_libraries(${SI_PROJECT_NAME} PRIVATE aws-c-common) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
|
||
|
||
#include <aws/common/byte_buf.h> | ||
#include <aws/common/logging.h> | ||
#include <aws/common/system_info.h> | ||
|
||
int main(void) { | ||
struct aws_allocator *allocator = aws_default_allocator(); | ||
aws_common_library_init(allocator); | ||
struct aws_logger_standard_options options = { | ||
.file = stderr, | ||
.level = AWS_LOG_LEVEL_TRACE, | ||
}; | ||
|
||
struct aws_logger logger; | ||
aws_logger_init_standard(&logger, allocator, &options); | ||
aws_logger_set(&logger); | ||
|
||
struct aws_system_environment *env = aws_system_environment_load(allocator); | ||
|
||
fprintf(stdout, "crt-detected env: {\n"); | ||
|
||
struct aws_byte_cursor virtualization_vendor = aws_system_environment_get_virtualization_vendor(env); | ||
fprintf( | ||
stdout, | ||
" 'virtualization vendor': '" PRInSTR "',\n", | ||
(int)virtualization_vendor.len, | ||
virtualization_vendor.ptr); | ||
struct aws_byte_cursor product_name = aws_system_environment_get_virtualization_product_name(env); | ||
fprintf(stdout, " 'product name': '" PRInSTR "',\n", (int)product_name.len, product_name.ptr); | ||
fprintf( | ||
stdout, " 'number of processors': '%lu',\n", (unsigned long)aws_system_environment_get_processor_count(env)); | ||
size_t numa_nodes = aws_system_environment_get_cpu_group_count(env); | ||
|
||
if (numa_nodes > 1) { | ||
fprintf(stdout, " 'numa architecture': 'true',\n"); | ||
fprintf(stdout, " 'number of numa nodes': '%lu'\n", (unsigned long)numa_nodes); | ||
} else { | ||
fprintf(stdout, " 'numa architecture': 'false'\n"); | ||
} | ||
|
||
fprintf(stdout, "}\n"); | ||
aws_system_environment_release(env); | ||
aws_logger_clean_up(&logger); | ||
|
||
aws_common_library_clean_up(); | ||
return 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
#ifndef AWS_COMMON_PRIVATE_SYSTEM_INFO_PRIV_H | ||
#define AWS_COMMON_PRIVATE_SYSTEM_INFO_PRIV_H | ||
/** | ||
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. | ||
* SPDX-License-Identifier: Apache-2.0. | ||
*/ | ||
#include <aws/common/byte_buf.h> | ||
#include <aws/common/ref_count.h> | ||
#include <aws/common/string.h> | ||
#include <aws/common/system_info.h> | ||
|
||
struct aws_system_environment { | ||
struct aws_allocator *allocator; | ||
struct aws_ref_count ref_count; | ||
struct aws_byte_buf virtualization_vendor; | ||
struct aws_byte_buf product_name; | ||
enum aws_platform_os os; | ||
size_t cpu_count; | ||
size_t cpu_group_count; | ||
void *impl; | ||
}; | ||
|
||
/** | ||
* For internal implementors. Fill in info in env that you're able to grab, such as dmi info, os version strings etc... | ||
* in here. The default just returns AWS_OP_SUCCESS. This is currently only implemented for linux. | ||
* | ||
* Returns AWS_OP_ERR if the implementation wasn't able to fill in required information for the platform. | ||
*/ | ||
int aws_system_environment_load_platform_impl(struct aws_system_environment *env); | ||
|
||
/** | ||
* For internal implementors. Cleans up anything allocated in aws_system_environment_load_platform_impl, | ||
* but does not release the memory for env. | ||
*/ | ||
void aws_system_environment_destroy_platform_impl(struct aws_system_environment *env); | ||
|
||
#endif // AWS_COMMON_PRIVATE_SYSTEM_INFO_PRIV_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.