From 749d1609bb16e01737edf2a5f9cd69360a259996 Mon Sep 17 00:00:00 2001 From: Aditya Patwardhan Date: Wed, 11 Jul 2018 14:32:01 -0700 Subject: [PATCH] Update README files for native code for migration (#7248) --- src/libpsl-native/README.md | 57 ++------------------------------- src/powershell-native/README.md | 5 +++ 2 files changed, 8 insertions(+), 54 deletions(-) create mode 100644 src/powershell-native/README.md diff --git a/src/libpsl-native/README.md b/src/libpsl-native/README.md index 930ea3630d..e445e1debd 100644 --- a/src/libpsl-native/README.md +++ b/src/libpsl-native/README.md @@ -1,56 +1,5 @@ # libpsl-native -This library provides functionality missing from .NET Core via system calls, -that are called from from the `CorePsPlatform.cs` file of PowerShell. The -method to do this is a Platform Invoke, which is C#'s Foreign Function -Interface to C code (and C++ by way of `extern C`). - -## Build - -[CMake][] is used to build the project, which results in a `libpsl-native.so` -library on Linux, and `libpsl-native.dylib` on OS X. - -```sh -cmake -DCMAKE_BUILD_TYPE=Debug . -make -j -``` - -[CMake]: https://cmake.org/cmake/help/v2.8.12/cmake.html - -## Test - -The [Google Test][] framework is used for unit tests. - -Use either `make test` or `ctest --verbose` for more output. - -[Google Test]: https://github.com/google/googletest/tree/release-1.7.0 - -## Notes - -Marshalling data from native to managed code is much easier on Linux than it is -on Windows. For instance, to return a string, you simply return a copy of it on -the heap. Since only one memory allocator is used on Linux, the .NET runtime -has no problem later freeing the buffer. Additionally, .NET presumes that the -codepage "Ansi" on Linux is always UTF-8. So just marshal the string as -`UnmanagedType.LPStr`. - -### C# (Managed) - -```c# -[DllImport("libpsl-native", CharSet = CharSet.Ansi)] -[return: MarshalAs(UnmanagedType.LPStr)] -internal static extern string GetSomeString(); -``` - -### C (Native) - -```c -char *GetSomeString() -{ - return strdup("some string"); -} -``` - -The CoreFX team has an excellent guide for [UNIX Interop][]. - -[UNIX Interop]: https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/interop-guidelines.md#unix-shims +The code under `powershell-native` is being migrated to [PowerShell-native](https://github.com/PowerShell/PowerShell-native) repository. +Please make PRs to the new repository. +Code under here will be removed once the move is complete. diff --git a/src/powershell-native/README.md b/src/powershell-native/README.md new file mode 100644 index 0000000000..5f30a9f480 --- /dev/null +++ b/src/powershell-native/README.md @@ -0,0 +1,5 @@ +# powershell-native + +The code under `powershell-native` is being migrated to [PowerShell-native](https://github.com/PowerShell/PowerShell-native) repository. +Please make PRs to the new repository. +Code under here will be removed once the move is complete.