aboutsummaryrefslogtreecommitdiff
path: root/okio/src/nativeMain/kotlin/okio/SizetVariant.kt
diff options
context:
space:
mode:
Diffstat (limited to 'okio/src/nativeMain/kotlin/okio/SizetVariant.kt')
-rw-r--r--okio/src/nativeMain/kotlin/okio/SizetVariant.kt39
1 files changed, 39 insertions, 0 deletions
diff --git a/okio/src/nativeMain/kotlin/okio/SizetVariant.kt b/okio/src/nativeMain/kotlin/okio/SizetVariant.kt
new file mode 100644
index 00000000..46f5bca4
--- /dev/null
+++ b/okio/src/nativeMain/kotlin/okio/SizetVariant.kt
@@ -0,0 +1,39 @@
+/*
+* Copyright (C) 2020 Square, Inc.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package okio
+
+import kotlinx.cinterop.ByteVar
+import kotlinx.cinterop.ByteVarOf
+import kotlinx.cinterop.CPointer
+import kotlinx.cinterop.UnsafeNumber
+import kotlinx.cinterop.convert
+import platform.posix.FILE
+import platform.posix.fread
+import platform.posix.fwrite
+
+@OptIn(UnsafeNumber::class)
+internal fun variantFread(
+ target: CPointer<ByteVarOf<Byte>>,
+ byteCount: UInt,
+ file: CPointer<FILE>,
+): UInt = fread(target, 1u, byteCount.convert(), file).convert()
+
+@OptIn(UnsafeNumber::class)
+internal fun variantFwrite(
+ source: CPointer<ByteVar>,
+ byteCount: UInt,
+ file: CPointer<FILE>,
+): UInt = fwrite(source, 1u, byteCount.convert(), file).convert()