Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ An implementation of [openkal](https://github.com/mcpplibs/openkal) for Windows.

```toml
[dependencies]
openkal = "0.20.0"
openkal = "0.21.0"

[target.'cfg(windows)'.dependencies]
openkal-windows = "0.16.0"
openkal-windows = "0.17.0"
```

Its purpose is as much to test the specification as to be used. openkal was
Expand Down Expand Up @@ -142,6 +142,18 @@ observes is the part a caller depends on rather than the choice between the
two: the region contains the stack of the thread that asked. It is measured on
this system's own runner and again under Wine on a Linux one.

## Version 0.17 (openkal 0.21)

**Instructions from a file are not provided.** `kal_exec_map_part` reports
`kal_err_not_supported` and `KAL_EXEC_PROP_FILE` is not claimed: this system maps
a view of a file only where nothing is mapped, and a part of a reservation
becomes a view (`MapViewOfFile3` with `MEM_REPLACE_PLACEHOLDER`) only where the
reservation was made of placeholders and the part split from it before anything
was committed there. A region would then be a set of pieces released one by
one, and this implementation would keep the table of them (clause 7.1). A
loader copies the file's bytes. An ended program's processor time was already
reported: the process object keeps it while the handle is held.

## Version 0.16 (openkal 0.20)

**Transfers at an offset go through a second handle.** A transfer given an offset
Expand Down
4 changes: 2 additions & 2 deletions mcpp.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
namespace = "mcpplibs"
name = "openkal-windows"
version = "0.16.0"
version = "0.17.0"
description = "An implementation of openkal for Windows, written on the Win32 interfaces and the object manager beneath them, using no C runtime symbol."
license = "Apache-2.0"

Expand Down Expand Up @@ -64,7 +64,7 @@ provides-interfaces = [
]

[dependencies]
openkal = "0.20.0"
openkal = "0.21.0"

# The package contributes definitions and no modules. The interface it
# implements is declared by the specification package, which this package
Expand Down
12 changes: 12 additions & 0 deletions src/exec.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,18 @@ int kal_exec_publish_part(void* region, kal_uintptr offset, kal_uintptr size) {
return kal_ok;
}

// A PART THAT IS A FILE'S (0.21) IS NOT PROVIDED, AND KAL_EXEC_PROP_FILE IS
// WITHHELD. This system maps a view of a file only where nothing is: a part of
// a reservation becomes a view (MapViewOfFile3, MEM_REPLACE_PLACEHOLDER) only
// where the reservation was made of placeholders and the part is a placeholder
// of its own, split from it before anything was committed there. A region
// would then be a set of pieces, each released by its own call, and this
// implementation would keep the table of them (clause 7.1). A loader copies the
// file's bytes, as it does where the position is zero.
int kal_exec_map_part(void*, kal_uintptr, kal_uintptr, kal_file, kal_u64, kal_uintptr) {
return kal_err_not_supported;
}

kal_uintptr kal_exec_props(void) {
return KAL_EXEC_PROP_REPUBLISH | KAL_EXEC_PROP_AVAILABLE;
}
Expand Down
Loading