Compare commits

...

2 Commits

6 changed files with 44 additions and 0 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@ __pycache__/
compile_commands.json
sysroot/bin
sysroot/usr/bin

View File

@ -15,4 +15,5 @@ set(BASE_LINK_FLAGS "-nostdlib")
add_subdirectory(zion)
add_subdirectory(lib)
add_subdirectory(yunq)
add_subdirectory(usr)
add_subdirectory(sys)

View File

@ -3,6 +3,8 @@
#include <glacier/string/str_format.h>
#include <glacier/string/str_split.h>
#include <mammoth/file/file.h>
#include <mammoth/proc/process.h>
#include <zglobal.h>
void Terminal::HandleCharacter(char c) {
console_.WriteChar(c);
@ -58,6 +60,16 @@ void Terminal::ExecuteCommand(const glcr::String& command) {
console_.WriteChar('\n');
}
}
} else if (cmd == "exec") {
if (tokens.size() != 2) {
console_.WriteString("Provide the name of an executable.\n>");
return;
}
auto file = mmth::File::Open(tokens[1]);
// TODO: Wait until the process exits.
mmth::SpawnProcessFromElfRegion((uint64_t)file.raw_ptr(), gInitEndpointCap);
} else {
console_.WriteString("Unknown command: ");
console_.WriteString(command);

2
usr/CMakeLists.txt Normal file
View File

@ -0,0 +1,2 @@
add_subdirectory(testbed)

View File

@ -0,0 +1,21 @@
add_executable(testbed
test.cpp
)
target_include_directories(testbed
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(testbed
mammoth
)
set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
set_target_properties(testbed PROPERTIES
COMPILE_FLAGS "${CMAKE_CXX_FLAGS} ${BASE_COMPILE_FLAGS}"
LINK_FLAGS "${CMAKE_EXE_LINK_FLAGS} ${BASE_LINK_FLAGS}"
)
install(TARGETS testbed DESTINATION usr/bin)

7
usr/testbed/test.cpp Normal file
View File

@ -0,0 +1,7 @@
#include <mammoth/util/debug.h>
uint64_t main(uint64_t init_port_cap) {
dbgln("testbed");
return glcr::OK;
}