minibwa 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/minibwa/compat/sys/mman.h +18 -0
- data/ext/minibwa/extconf.rb +8 -0
- data/ext/minibwa/win_mman.c +52 -0
- data/lib/minibwa/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1edda6290bb47eb0a3d0845ee5221aa8926400069ffdb094f273a96c637771d1
|
|
4
|
+
data.tar.gz: f937061f758b0c151aedc9ab396fde98d4bea351b7931b603ec98d8307238658
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5c893fbb317c8ee8b536b41616b4551494d2c2bc2a449527063570823995a39031c0bc08192347c7469e7763953e0f21424a5850f7bb57a5d2c97b83a5832cbc
|
|
7
|
+
data.tar.gz: 0cdc67a36b58a37510859b87443d721c7ecc1183cc0095786e02e737ab8289d0d8fd2e8ba429c97bbe0dd8297868b150c7279106fff293d8bf8fef19ed58eaad
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#ifndef MINIBWA_WINDOWS_SYS_MMAN_H
|
|
2
|
+
#define MINIBWA_WINDOWS_SYS_MMAN_H
|
|
3
|
+
|
|
4
|
+
#include <stddef.h>
|
|
5
|
+
#include <sys/types.h>
|
|
6
|
+
|
|
7
|
+
#define PROT_READ 0x1
|
|
8
|
+
#define MAP_SHARED 0x1
|
|
9
|
+
#define MAP_FAILED ((void *)-1)
|
|
10
|
+
|
|
11
|
+
void *minibwa_mmap(void *addr, size_t length, int prot, int flags, int fd,
|
|
12
|
+
off_t offset);
|
|
13
|
+
int minibwa_munmap(void *addr, size_t length);
|
|
14
|
+
|
|
15
|
+
#define mmap minibwa_mmap
|
|
16
|
+
#define munmap minibwa_munmap
|
|
17
|
+
|
|
18
|
+
#endif
|
data/ext/minibwa/extconf.rb
CHANGED
|
@@ -46,6 +46,14 @@ sais = %w[libsais libsais64]
|
|
|
46
46
|
|
|
47
47
|
binding_srcs = %w[minibwa mb_options mb_index mb_index_build mb_buffer mb_hit]
|
|
48
48
|
|
|
49
|
+
# Upstream uses the POSIX mmap API to load indexes. Keep the vendored sources
|
|
50
|
+
# untouched and provide that small API surface locally when building with
|
|
51
|
+
# MinGW, where <sys/mman.h> is not available.
|
|
52
|
+
if /mingw|mswin/i.match?(RUBY_PLATFORM)
|
|
53
|
+
binding_srcs << 'win_mman'
|
|
54
|
+
$INCFLAGS << ' -I$(srcdir)/compat'
|
|
55
|
+
end
|
|
56
|
+
|
|
49
57
|
$srcs = binding_srcs.map { |f| "#{f}.c" } +
|
|
50
58
|
(core + ksw2 + sais).map { |f| "minibwa/#{f}.c" }
|
|
51
59
|
$objs = $srcs.map { |f| "#{File.basename(f, '.c')}.o" }
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#include <errno.h>
|
|
2
|
+
#include <stdint.h>
|
|
3
|
+
#include <windows.h>
|
|
4
|
+
#include <io.h>
|
|
5
|
+
|
|
6
|
+
#include "compat/sys/mman.h"
|
|
7
|
+
|
|
8
|
+
void *
|
|
9
|
+
minibwa_mmap(void *addr, size_t length, int prot, int flags, int fd,
|
|
10
|
+
off_t offset)
|
|
11
|
+
{
|
|
12
|
+
HANDLE file;
|
|
13
|
+
HANDLE mapping;
|
|
14
|
+
void *view;
|
|
15
|
+
uint64_t map_offset;
|
|
16
|
+
|
|
17
|
+
(void)addr;
|
|
18
|
+
(void)prot;
|
|
19
|
+
(void)flags;
|
|
20
|
+
|
|
21
|
+
file = (HANDLE)_get_osfhandle(fd);
|
|
22
|
+
if (file == INVALID_HANDLE_VALUE) {
|
|
23
|
+
errno = EBADF;
|
|
24
|
+
return MAP_FAILED;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
mapping = CreateFileMappingA(file, NULL, PAGE_READONLY, 0, 0, NULL);
|
|
28
|
+
if (mapping == NULL) {
|
|
29
|
+
errno = EINVAL;
|
|
30
|
+
return MAP_FAILED;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
map_offset = (uint64_t)offset;
|
|
34
|
+
view = MapViewOfFile(mapping, FILE_MAP_READ, (DWORD)(map_offset >> 32),
|
|
35
|
+
(DWORD)map_offset, length);
|
|
36
|
+
CloseHandle(mapping);
|
|
37
|
+
if (view == NULL) {
|
|
38
|
+
errno = EINVAL;
|
|
39
|
+
return MAP_FAILED;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return view;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
int
|
|
46
|
+
minibwa_munmap(void *addr, size_t length)
|
|
47
|
+
{
|
|
48
|
+
(void)length;
|
|
49
|
+
if (UnmapViewOfFile(addr)) return 0;
|
|
50
|
+
errno = EINVAL;
|
|
51
|
+
return -1;
|
|
52
|
+
}
|
data/lib/minibwa/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: minibwa
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- kojix2
|
|
@@ -16,6 +16,7 @@ extra_rdoc_files: []
|
|
|
16
16
|
files:
|
|
17
17
|
- LICENSE.txt
|
|
18
18
|
- README.md
|
|
19
|
+
- ext/minibwa/compat/sys/mman.h
|
|
19
20
|
- ext/minibwa/extconf.rb
|
|
20
21
|
- ext/minibwa/mb_buffer.c
|
|
21
22
|
- ext/minibwa/mb_hit.c
|
|
@@ -58,6 +59,7 @@ files:
|
|
|
58
59
|
- ext/minibwa/minibwa/pe.c
|
|
59
60
|
- ext/minibwa/minibwa/s2n-lite.h
|
|
60
61
|
- ext/minibwa/minibwa/seed.c
|
|
62
|
+
- ext/minibwa/win_mman.c
|
|
61
63
|
- lib/minibwa.rb
|
|
62
64
|
- lib/minibwa/hit.rb
|
|
63
65
|
- lib/minibwa/index.rb
|
|
@@ -82,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
82
84
|
- !ruby/object:Gem::Version
|
|
83
85
|
version: '0'
|
|
84
86
|
requirements: []
|
|
85
|
-
rubygems_version:
|
|
87
|
+
rubygems_version: 4.0.16
|
|
86
88
|
specification_version: 4
|
|
87
89
|
summary: Ruby bindings for minibwa, a short-read aligner
|
|
88
90
|
test_files: []
|