Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
W
wendelin.core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
Kirill Smelkov
wendelin.core
Commits
dd32feba
Commit
dd32feba
authored
Dec 05, 2019
by
Kirill Smelkov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
.
parent
40b59cc4
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
27 deletions
+23
-27
include/wendelin/bigfile/virtmem.h
include/wendelin/bigfile/virtmem.h
+19
-7
setup.py
setup.py
+2
-18
wcfs/internal/wcfs_virtmem.cpp
wcfs/internal/wcfs_virtmem.cpp
+2
-2
No files found.
include/wendelin/bigfile/virtmem.h
View file @
dd32feba
...
...
@@ -39,6 +39,18 @@
#include <wendelin/bigfile/types.h>
#include <wendelin/bigfile/pagemap.h>
#if 0
#include <golang/libgolang.h>
#if BUILDING_LIBVIRTMEM
# define VIRTMEM_API LIBGOLANG_DSO_EXPORT
#else
# define VIRTMEM_API LIBGOLANG_DSO_IMPORT
#endif
#endif
#define VIRTMEM_API
#ifdef __cplusplus
extern
"C"
{
#endif
...
...
@@ -189,7 +201,7 @@ typedef enum FileHOpenFlags FileHOpenFlags;
*
* @return 0 - ok, !0 - fail
*/
int
fileh_open
(
BigFileH
*
fileh
,
BigFile
*
file
,
RAM
*
ram
,
FileHOpenFlags
flags
);
VIRTMEM_API
int
fileh_open
(
BigFileH
*
fileh
,
BigFile
*
file
,
RAM
*
ram
,
FileHOpenFlags
flags
);
/* close fileh
...
...
@@ -197,7 +209,7 @@ int fileh_open(BigFileH *fileh, BigFile *file, RAM *ram, FileHOpenFlags flags);
* it's an error to call fileh_close with existing mappings
* it's an error to call fileh_close while writeout for fileh is in progress
*/
void
fileh_close
(
BigFileH
*
fileh
);
VIRTMEM_API
void
fileh_close
(
BigFileH
*
fileh
);
/* map fileh part into memory
...
...
@@ -207,7 +219,7 @@ void fileh_close(BigFileH *fileh);
* @vma[out] vma to initialize for this mmap
* @return 0 - ok, !0 - fail
*/
int
fileh_mmap
(
VMA
*
vma
,
BigFileH
*
fileh
,
pgoff_t
pgoffset
,
pgoff_t
pglen
);
VIRTMEM_API
int
fileh_mmap
(
VMA
*
vma
,
BigFileH
*
fileh
,
pgoff_t
pgoffset
,
pgoff_t
pglen
);
/* unmap mapping created by fileh_mmap()
...
...
@@ -216,7 +228,7 @@ int fileh_mmap(VMA *vma, BigFileH *fileh, pgoff_t pgoffset, pgoff_t pglen);
* Changes made to fileh pages are preserved (to e.g. either other mappings and
* later commit/discard).
*/
void
vma_unmap
(
VMA
*
vma
);
VIRTMEM_API
void
vma_unmap
(
VMA
*
vma
);
/* what to do at writeout */
...
...
@@ -256,7 +268,7 @@ enum WriteoutFlags {
* it's an error for a given fileh to modify its pages while writeout is in
* progress: until fileh_dirty_writeout(... | WRITEOUT_STORE) has finished.
*/
int
fileh_dirty_writeout
(
BigFileH
*
fileh
,
enum
WriteoutFlags
flags
);
VIRTMEM_API
int
fileh_dirty_writeout
(
BigFileH
*
fileh
,
enum
WriteoutFlags
flags
);
/* discard changes made to fileh memory
...
...
@@ -270,7 +282,7 @@ int fileh_dirty_writeout(BigFileH *fileh, enum WriteoutFlags flags);
* it's an error for a given fileh to call fileh_dirty_discard() while writeout
* is in progress.
*/
void
fileh_dirty_discard
(
BigFileH
*
fileh
);
VIRTMEM_API
void
fileh_dirty_discard
(
BigFileH
*
fileh
);
...
...
@@ -287,7 +299,7 @@ void fileh_dirty_discard(BigFileH *fileh);
* it's an error to call fileh_invalidate_page() while writeout for fileh is in
* progress.
*/
void
fileh_invalidate_page
(
BigFileH
*
fileh
,
pgoff_t
pgoffset
);
VIRTMEM_API
void
fileh_invalidate_page
(
BigFileH
*
fileh
,
pgoff_t
pgoffset
);
/* pagefault handler
...
...
setup.py
View file @
dd32feba
...
...
@@ -33,22 +33,6 @@ import sys
_bigfile
=
PyGoExt
(
'wendelin.bigfile._bigfile'
,
sources
=
[
'bigfile/_bigfile.c'
,
## TODO split -> libvirtmem
#'bigfile/pagefault.c',
#'bigfile/pagemap.c',
#'bigfile/ram.c',
#'bigfile/ram_shmfs.c',
#'bigfile/ram_hugetlbfs.c',
#'bigfile/virtmem.c',
#'lib/bug.c',
#'lib/utils.c',
## TODO split -> libwcfs
#'wcfs/internal/_wcfs.pyx',
#'wcfs/internal/wcfs_virtmem.cpp',
#'wcfs/internal/wcfs_watchlink.cpp',
#'wcfs/internal/wcfs_misc.cpp',
],
include_dirs
=
[
'./include'
,
...
...
@@ -255,11 +239,11 @@ setup(
'./3rdparty/ccan'
,
'./3rdparty/include'
],
define_macros
=
[(
'_GNU_SOURCE'
,
None
)],
# XXX dup
define_macros
=
[(
'_GNU_SOURCE'
,
None
)
,
(
'BUILDING_LIBVIRTMEM'
,
None
)
],
# XXX dup
extra_compile_args
=
[
# XXX dup
'-std=gnu99'
,
# declarations inside for-loop
'-fplan9-extensions'
,
# anonymous-structs + simple inheritance
'-fvisibility=hidden'
,
# by default symbols not visible outside DSO
#'-fvisibility=hidden', # by default symbols not visible outside DSO XXX reenable
# # in C99 declaration after statement is ok, and we explicitly compile with -std=gnu99.
# # Python >= 3.4 however adds -Werror=declaration-after-statement even for extension
...
...
wcfs/internal/wcfs_virtmem.cpp
View file @
dd32feba
...
...
@@ -229,16 +229,16 @@ void _Conn::_pin1(PinReq *req) {
//trace("\tremmapblk %d @%s" % (req->blk, (h(req.at) if req.at else "head")))
// check if virtmem did not dirtied page corresponding to this block already
// XXX reenable (link to libbigfile dso)
#if 0
virt_lock
();
#if 0
TODO (mmap->file->blksize != mmap->fileh->ramh->ram->pagesize);
if (!__fileh_page_isdirty(mmap->fileh, req->blk)) {
#endif
mmap
->
_remmapblk
(
req
->
blk
,
req
->
at
);
// XXX err
#if 0
}
virt_unlock();
#endif
virt_unlock
();
//trace("\t-> remmaped"); XXX
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment