Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
483 commits
Select commit Hold shift + click to select a range
20f53b5
dhcp: Add on_config callback to inet
fwsGonzo Apr 13, 2016
eaaba2f
dhcp: Silence output
fwsGonzo Apr 14, 2016
94dde37
Merge pull request #490 from fwsGonzo/dev
fwsGonzo Apr 14, 2016
d39da32
Merge branch 'dev' of github.com:alfred-bratterud/IncludeOS-1 into dev
fwsGonzo Apr 14, 2016
de724b5
virtio: Update to use new vring
fwsGonzo Apr 14, 2016
7c23ab1
Added support for exporting secondary hard-drive option
alfreb Apr 14, 2016
63e1737
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
alfreb Apr 14, 2016
983ba91
Merge branch 'dev' of https://github.com/fwsGonzo/IncludeOS into dev
alfreb Apr 14, 2016
5d23b6c
Added simple validation tool / schema for (future) test folders
alfreb Apr 14, 2016
ec228b0
tcp: extended work on Retransmission and Congestion Control (Reno)
AndreasAakesson Apr 15, 2016
f7fc9cd
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
AndreasAakesson Apr 15, 2016
ed80618
messed up merge conflict in f7fc9cd :facepalm:
AndreasAakesson Apr 15, 2016
774a544
Merge pull request #492 from AndreasAakesson/dev
alfreb Apr 15, 2016
c0975ab
Update CONTRIBUTE.md
alfreb Apr 16, 2016
fdaf797
Updated submodules to use https
alfreb Apr 16, 2016
cccc747
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
alfreb Apr 16, 2016
b69ccb1
Update common
RicoAntonioFelix Apr 16, 2016
bcac872
Updated UDP-test to use new vmrunner
alfreb Apr 17, 2016
d2b0b3b
A python module to run test VMs
alfreb Apr 17, 2016
993364d
Added NIC info to vm schema
alfreb Apr 17, 2016
c16edd2
Test validator can now be used as a module
alfreb Apr 17, 2016
01d701f
Updated STL test to use new vmrunner
alfreb Apr 17, 2016
dc557a0
Update common
RicoAntonioFelix Apr 17, 2016
4e63644
Merge branch 'dev' of https://github.com/RicoAntonioFelix/IncludeOS i…
alfreb Apr 18, 2016
ad7eb8f
install: Add git submodule update
fwsGonzo Apr 18, 2016
acae3f1
test.py is now executable
alfreb Apr 18, 2016
28613dc
GSL-test is now run by test.py
alfreb Apr 18, 2016
33d57b7
Added a default 'atexit' to get 'std::exit' to work
alfreb Apr 18, 2016
0e6ad26
GSL is now included in common
alfreb Apr 18, 2016
1a0fe7a
New-style makefile for IDE
alfreb Apr 18, 2016
3d4c584
install: Git submodule update in install.sh
fwsGonzo Apr 18, 2016
06db9e1
A WIP test for virtio-block
alfreb Apr 18, 2016
8c89e58
virtio-block test will use test.py
alfreb Apr 18, 2016
45d1025
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
fwsGonzo Apr 18, 2016
912f78b
syscalls: Silence unused param warning
fwsGonzo Apr 18, 2016
bebb466
tcp: work on fast recovery (new reno) rfc 6582
AndreasAakesson Apr 18, 2016
1e35799
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
AndreasAakesson Apr 18, 2016
2744dc7
Minor changes to MemDisk...
RicoAntonioFelix Apr 18, 2016
9d927bc
Add build option to enable contracts...
RicoAntonioFelix Apr 18, 2016
5a1fe58
Fixed adding drives to VM JSONs
alfreb Apr 19, 2016
ba28bb3
Changed virtio tokens to contain direction
alfreb Apr 19, 2016
bd1b553
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
fwsGonzo Apr 19, 2016
a3a36ec
Merge pull request #494 from fwsGonzo/dev
fwsGonzo Apr 19, 2016
dd6655a
Supressed unused param warning in _exit
alfreb Apr 19, 2016
ba6f316
Changed Virtio::Queue::dequeue to return span
alfreb Apr 19, 2016
cf2c107
Merge
alfreb Apr 19, 2016
7181ec5
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
alfreb Apr 19, 2016
3eee986
virtioblk: Moved handler
fwsGonzo Apr 19, 2016
58afa3f
Merge pull request #495 from RicoAntonioFelix/dev
alfreb Apr 19, 2016
e38b0b1
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
alfreb Apr 19, 2016
6dfe129
tcp: some paddling with fast retransmit..
AndreasAakesson Apr 19, 2016
3352b42
Added missing dependencies for new Expects / Ensures
alfreb Apr 19, 2016
b164da8
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
AndreasAakesson Apr 19, 2016
e9c27cd
Fixed include of common
alfreb Apr 19, 2016
14da7a8
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
AndreasAakesson Apr 19, 2016
fa13a2e
link: Align ctor/dtor, disable SSE
fwsGonzo Apr 19, 2016
16ced3c
Merge fix
fwsGonzo Apr 19, 2016
3eb99f1
Merge gonzo
alfreb Apr 19, 2016
fb8e5ce
[Ethernet] Replaced all assert statements for Expects...
RicoAntonioFelix Apr 19, 2016
ac91ab7
Fixed off-by-one in virtio queue
alfreb Apr 20, 2016
263f157
virtioblk: Removed debug
fwsGonzo Apr 20, 2016
8c8e2b1
Merged with dev, virtioblk: use token instead of span
fwsGonzo Apr 20, 2016
f4b0c00
Merge pull request #497 from fwsGonzo/dev
alfreb Apr 20, 2016
57f2261
make: Re-enable SSE
fwsGonzo Apr 20, 2016
b0e20a7
Merge pull request #498 from fwsGonzo/dev
alfreb Apr 20, 2016
812a35b
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
AndreasAakesson Apr 20, 2016
4e144a4
virtioblk: Queue requests after vring full
fwsGonzo Apr 20, 2016
4c55595
crt: Remove test string
fwsGonzo Apr 20, 2016
8725487
virtio: Read cnt sequental sectors
fwsGonzo Apr 20, 2016
144ccd0
Updated vmrunner to check and exit with proper exit status
alfreb Apr 21, 2016
e104dc9
tcp: major refactoring + rewrite of congctrl
AndreasAakesson Apr 21, 2016
fcff7f0
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
AndreasAakesson Apr 21, 2016
0606cdc
virtioblk: Dequeue faster, schedule inverted, inflight counter
fwsGonzo Apr 21, 2016
a2f5227
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
fwsGonzo Apr 21, 2016
88fcf8b
Merge pull request #499 from fwsGonzo/dev
fwsGonzo Apr 21, 2016
4196f61
test: Fix test_disk service
fwsGonzo Apr 21, 2016
35ed5dc
test: Cleanup in test_disk
fwsGonzo Apr 21, 2016
ead5c81
fs: Remove vbr module
fwsGonzo Apr 21, 2016
eb4e02c
Merge pull request #500 from fwsGonzo/dev
fwsGonzo Apr 21, 2016
739647e
test: VirtioBlk test now reads a file!
fwsGonzo Apr 21, 2016
18a3d11
test: Add missing and connect callbacks
fwsGonzo Apr 21, 2016
9aba95d
virtioblk: Fix FAT32 detection in mount()
fwsGonzo Apr 21, 2016
c2eeae0
Merge pull request #501 from fwsGonzo/dev
fwsGonzo Apr 21, 2016
8c9e8d3
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
alfreb Apr 22, 2016
98c4415
Merge branch 'dev' of https://github.com/RicoAntonioFelix/IncludeOS i…
alfreb Apr 22, 2016
6d1c1b6
Corrected inclusion path for common
alfreb Apr 22, 2016
fb566e3
Merge remote-tracking branch 'hioa-cs/dev' into dev
mnordsletten Apr 22, 2016
e5f363c
Changed environment variable to INCLUDEOS_INSTALL in copy_script
mnordsletten Apr 22, 2016
0251965
Merge pull request #502 from mnordsletten/dev
alfreb Apr 22, 2016
445e765
tcp: more work on congestion control
AndreasAakesson Apr 25, 2016
9d6601a
DHCP timeout is now 30 sec
alfreb Apr 25, 2016
4560f40
tcp: refactored send stream
AndreasAakesson Apr 25, 2016
ad53d50
tcp: Debugging reordering
AndreasAakesson Apr 25, 2016
57e6f33
Updated transmission test to verify packet order
alfreb Apr 25, 2016
8700c63
tcp: debug fiesta
AndreasAakesson Apr 26, 2016
b48224a
Added memory barriers w.r.t. Virtio 3.2.1
alfreb Apr 26, 2016
661d9df
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
AndreasAakesson Apr 26, 2016
6b2734c
Nic/virtionet event 'on_exit_to_physical' for pre-flight inspection
alfreb Apr 26, 2016
3848bd8
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
AndreasAakesson Apr 26, 2016
47883b0
Changed virtio queue to use proper token chaining
alfreb Apr 26, 2016
ddefae0
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
AndreasAakesson Apr 26, 2016
48ff052
tcp: searching for needle..
AndreasAakesson Apr 26, 2016
02e2efd
Updated to clang 3.8 (We have Ubuntu 16.04 now)
alfreb Apr 26, 2016
6e11ac4
vmrunner now checks for KVM presence
alfreb Apr 26, 2016
45109d8
Fixed kvm verification command
alfreb Apr 26, 2016
c952216
tcp: bugfix
AndreasAakesson Apr 26, 2016
2af7cbb
Updated transmission test to detect packet loss / reorder
alfreb Apr 26, 2016
b3fdb79
Updated UDP to use correct MDDS + (chain packets WIP)
alfreb Apr 26, 2016
6492de2
Transmission test properly signals SUCCESS
alfreb Apr 26, 2016
47a4b04
Added timing to the transmission test
alfreb Apr 27, 2016
0c34ef6
Merge branch 'dev' of github.com:AndreasAakesson/IncludeOS into dev
alfreb Apr 27, 2016
be6cd7e
Merge branch 'dev' of github.com:hioa-cs/IncludeOS
AndreasAakesson Apr 27, 2016
c4f448c
Added getter for number of arrived incoming packets
alfreb Apr 27, 2016
71691e5
Merge?
fwsGonzo Apr 27, 2016
22f2267
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
fwsGonzo Apr 27, 2016
98af6a3
udp: Remove unused integer
fwsGonzo Apr 27, 2016
7eaeed6
TCP checksum now adds in any carry bit
alfreb Apr 27, 2016
d463394
Merge branch 'dev' of github.com:hioa-cs/IncludeOS
AndreasAakesson Apr 27, 2016
2786643
ip: Refactor IP4 addr to struct
fwsGonzo Apr 27, 2016
f5417ed
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
fwsGonzo Apr 27, 2016
dd543c5
tcp: minor changes
AndreasAakesson Apr 28, 2016
e9411c0
tcp: silenced debug output
AndreasAakesson Apr 28, 2016
100d161
Merge pull request #504 from AndreasAakesson/dev
alfreb Apr 28, 2016
ca55218
Merge remote-tracking branch 'hioa-cs/dev' into dev
mnordsletten Apr 28, 2016
26e6e5a
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
fwsGonzo Apr 28, 2016
01b169e
fs: Add sync_read(blk, cnt)
fwsGonzo Apr 28, 2016
ff4567f
Updated TCP test to work with jenkins
mnordsletten Apr 28, 2016
f3b8e64
fs: FAT read() now uses read(blk, cnt)
fwsGonzo Apr 28, 2016
a329728
Merge pull request #506 from fwsGonzo/dev
fwsGonzo Apr 28, 2016
5b58aeb
Merge pull request #505 from mnordsletten/dev
fwsGonzo Apr 28, 2016
4f59508
Merge remote-tracking branch 'hioa-cs/dev' into dev
mnordsletten Apr 28, 2016
8bcab76
Added vm. json to tcp test
mnordsletten Apr 28, 2016
c8d65d6
tcp: keep track of used ports (wip)
AndreasAakesson Apr 28, 2016
c9a2711
membitmap: chunks are now register size
AndreasAakesson Apr 28, 2016
a0e4fa0
Merge pull request #507 from mnordsletten/dev
fwsGonzo Apr 28, 2016
77810ff
crash when adding addtional bitset
AndreasAakesson Apr 28, 2016
86b0de9
Merge branch 'crash' of github.com:AndreasAakesson/IncludeOS into dev
fwsGonzo Apr 28, 2016
10d80a6
fs: Fix FAT read calculation
fwsGonzo Apr 29, 2016
ad1797b
Merge pull request #508 from fwsGonzo/dev
fwsGonzo Apr 29, 2016
1aeb1ff
build: updated osx script from clang3.6 => 3.8
AndreasAakesson Apr 29, 2016
8eca1f8
fs: Added error object
fwsGonzo Apr 29, 2016
3405a2c
test: updated udp test to reflect changes to ip4::addr
AndreasAakesson Apr 29, 2016
6c21956
fs: Move buffer from FileSystem to namespace
fwsGonzo Apr 29, 2016
020e047
Merge pull request #509 from AndreasAakesson/dev
fwsGonzo Apr 29, 2016
8eba771
Merge pull request #510 from fwsGonzo/dev
fwsGonzo Apr 29, 2016
b140484
Merge remote-tracking branch 'hioa-cs/dev' into dev
mnordsletten Apr 29, 2016
199ad3f
Updated transmission test to reflect changes to ip4::addr
mnordsletten Apr 29, 2016
54ea625
Merge pull request #511 from mnordsletten/dev
alfreb Apr 29, 2016
2574581
Merge branch 'dev' of github.com:fwsGonzo/IncludeOS into dev
fwsGonzo May 2, 2016
873326a
fs: fat_sync errors are unlikely
fwsGonzo May 2, 2016
afcd91c
dns: Resolve now only takes 1 parameter
fwsGonzo May 2, 2016
8af6a4e
tcp: work on port usage
AndreasAakesson May 2, 2016
7d396b2
Merge branch 'dev' of github.com:fwsGonzo/IncludeOS into dev
AndreasAakesson May 2, 2016
c34fb27
util: Async stream
fwsGonzo May 2, 2016
8d9cee8
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
fwsGonzo May 2, 2016
36062c6
stream: Add disk_transfer, rename to Async
fwsGonzo May 2, 2016
c25d792
util: Rename stream to async
fwsGonzo May 2, 2016
6160ce2
Merge pull request #513 from fwsGonzo/dev
fwsGonzo May 2, 2016
62ea735
util: Fix async header include
fwsGonzo May 2, 2016
5d0bfab
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
fwsGonzo May 2, 2016
43d6ce0
tcp: changes to writeq to avoid storing rtx packets (wip)
AndreasAakesson May 2, 2016
a3f5b51
fs: Return vector and error pair for sync ls
fwsGonzo May 2, 2016
b74d75c
fs: Add Dirent only versions for ls
fwsGonzo May 2, 2016
839652a
test: updated vmrunner to not exit on missing kvm
AndreasAakesson May 3, 2016
d3b663a
make: Add stack-protector
fwsGonzo May 3, 2016
82c5105
cabi: Enable stack protector
fwsGonzo May 3, 2016
ad1d00c
make: Generate random number for stack protector
fwsGonzo May 3, 2016
be62fde
Merge pull request #514 from fwsGonzo/dev
fwsGonzo May 3, 2016
6f6a847
tcp: work on write queue
AndreasAakesson May 3, 2016
df38773
cabi: Implement stack-smasher self-test
fwsGonzo May 3, 2016
b25e8fb
Merge branch 'dev' of github.com:fwsGonzo/IncludeOS into dev
alfreb May 3, 2016
6121d10
fs: shared vector for sync ls
fwsGonzo May 3, 2016
8195a58
Merge branch 'dev' of github.com:fwsGonzo/IncludeOS into dev
alfreb May 3, 2016
d32434e
fs: Fix disk test, disable stack smasher
fwsGonzo May 3, 2016
2381367
Merge pull request #515 from fwsGonzo/dev
fwsGonzo May 3, 2016
db80a66
Merge branch 'dev' of github.com:fwsGonzo/IncludeOS into dev
alfreb May 3, 2016
75361fd
tcp: no longer queues packets, but creates new on rtx
AndreasAakesson May 3, 2016
39d0cfb
tcp: comments and cleanup
AndreasAakesson May 3, 2016
d8b0113
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
AndreasAakesson May 3, 2016
fcea048
tcp: silenced printf
AndreasAakesson May 3, 2016
0924595
Merge pull request #516 from AndreasAakesson/dev
alfreb May 3, 2016
cb8e153
Script to create FAT-image from folder contents
alfreb May 3, 2016
b462919
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
alfreb May 3, 2016
decb2c0
async: Fix missing error for write failed
fwsGonzo May 4, 2016
970f447
async: Functions made public
fwsGonzo May 4, 2016
a61fe9d
Merge branch 'dev' of github.com:fwsGonzo/IncludeOS into dev
AndreasAakesson May 4, 2016
f2cdf15
Added minimum values for FAT image creation
alfreb May 4, 2016
2fffa6b
util: fixes to async
AndreasAakesson May 4, 2016
87d220f
fs: Bounds check read() calls, optimize for sector boundary reads
fwsGonzo May 4, 2016
ec68395
Merge branch 'dev' of github.com:AndreasAakesson/IncludeOS into dev
fwsGonzo May 4, 2016
ccf1086
Merge branch 'dev' of github.com:fwsGonzo/IncludeOS into dev
AndreasAakesson May 4, 2016
7c2dc0f
tcp: disabled forced close
AndreasAakesson May 4, 2016
9ad6eba
acpi: MSR, base address retrieval
fwsGonzo May 4, 2016
d9af590
util: Cleanup membitmap
fwsGonzo May 4, 2016
cc3a215
Merge branch 'dev' of github.com:AndreasAakesson/IncludeOS into dev
fwsGonzo May 5, 2016
69601b8
inet: added defaulted dhcp timeout parameter to inet4 constructor
AndreasAakesson May 6, 2016
1c4dc68
apic: Initialize lapic
fwsGonzo May 6, 2016
920d515
apic: Add apic_enable
fwsGonzo May 6, 2016
83c9bc0
Merge pull request #517 from fwsGonzo/dev
fwsGonzo May 6, 2016
65eab93
tcp: fixed multiple callbacks on writerequest on reset
AndreasAakesson May 6, 2016
36b85b3
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
AndreasAakesson May 6, 2016
726ec5f
apic: Fix construction
fwsGonzo May 6, 2016
a9dfe88
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
fwsGonzo May 6, 2016
85e00bc
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
AndreasAakesson May 6, 2016
9272d33
Merge pull request #518 from AndreasAakesson/dev
fwsGonzo May 6, 2016
f23459d
CMOS-test WIP
alfreb May 6, 2016
ff64ba8
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
alfreb May 6, 2016
62d657f
LOL - CMOS time represents decimal values with hex digits :-)
alfreb May 6, 2016
6d3051d
tcp: fixed crash on rtx timeout
AndreasAakesson May 6, 2016
2d0310c
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
AndreasAakesson May 6, 2016
7b75f16
tcp: fixed state transistion to correctly close
AndreasAakesson May 6, 2016
d2348dd
Updated GSL reference
alfreb May 7, 2016
3f9b5dc
Merge pull request #519 from AndreasAakesson/dev
fwsGonzo May 7, 2016
7b80dc8
Added CMOS interface and basic RTC (wallclock) functionality
alfreb May 8, 2016
6ce5b09
CMOS-test (WIP) updated to use new cmos interface
alfreb May 8, 2016
1859506
Testing span bounds chekcing + span and std::regex
alfreb May 7, 2016
914cc80
tcp: now renewing instead of reseting read buffer
AndreasAakesson May 10, 2016
f394c60
Added option to get only name of complete tests
mnordsletten May 12, 2016
5ea68e0
tcp: fixed bug when chaining write calls
AndreasAakesson May 13, 2016
12c73dc
Merge pull request #521 from AndreasAakesson/dev
fwsGonzo May 13, 2016
3c2a3db
Made validate_all.sh a little more easy to read
mnordsletten May 13, 2016
042047f
Merge pull request #522 from mnordsletten/dev
alfreb May 19, 2016
ca5cd48
Added back shields
mnordsletten May 19, 2016
86d944d
Merge remote-tracking branch 'hioa-cs/dev' into dev
mnordsletten May 19, 2016
d10d7e0
Fixed virtio_block test
mnordsletten May 19, 2016
00c628f
Fix for #311 .tar.gz error
mnordsletten May 19, 2016
c89c062
Merge pull request #527 from mnordsletten/dev
alfreb May 20, 2016
9fd453b
Merge pull request #525 from mnordsletten/master
alfreb May 20, 2016
80a1926
tcp: hotfix when limited tx is active
AndreasAakesson May 20, 2016
4a2097c
tcp: silenced print
AndreasAakesson May 20, 2016
cc0b2af
Merge pull request #529 from AndreasAakesson/dev
alfreb May 20, 2016
9eb0ef8
vmbuilder now builds with clang-3.8
alfreb May 21, 2016
bbf057b
Fixed service.cpp to work with IP-constructor
alfreb May 21, 2016
bfb17b4
Run example service with one command
alfreb May 21, 2016
4d01f53
Fixed #531
alfreb May 21, 2016
aaa78e7
Merge pull request #532 from alfred-bratterud/dev
alfreb May 21, 2016
a1d7319
Fixed #533
alfreb May 22, 2016
da69511
Added back dependency list
alfreb May 22, 2016
aca1ed4
Updated GCC to 6.1.0
alfreb May 22, 2016
f4bf25a
Updated binutils to v2.26
alfreb May 22, 2016
1beb37a
Updated newlib to v2.4.0. Fixed #534
alfreb May 22, 2016
b7587f8
Merge pull request #535 from alfred-bratterud/newlib_update
alfreb May 22, 2016
b90689c
Removed unnecessary include-paths for libc++
alfreb May 22, 2016
6f8b484
Update README.md
alfreb May 22, 2016
a98e063
Merge branch 'dev' of github.com:hioa-cs/IncludeOS
alfreb May 22, 2016
199be29
Update README.md
alfreb May 22, 2016
f372afe
Merge branch 'dev' of github.com:hioa-cs/IncludeOS into dev
alfreb May 22, 2016
6129b42
Merge branch 'master' into dev
alfreb May 22, 2016
11a3238
Fetching tags instead of pulling them
alfreb May 22, 2016
4e86cce
Merge pull request #536 from hioa-cs/dev
alfreb May 23, 2016
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
2 changes: 2 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
draw_white_space = all
trim_trailing_white_space_on_save = true

[Makefile]
indent_style = tab
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
*.vmdk
*.tmp
*.d
*.pyc
nbproject

src/bootloader
Expand Down
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@

[submodule "mod/rapidjson"]
path = mod/rapidjson
url = git@github.com:fwsGonzo/rapidjson.git
url = https://github.com/fwsGonzo/rapidjson.git
[submodule "mod/GSL"]
path = mod/GSL
url = git@github.com:Microsoft/GSL.git
url = https://github.com/Microsoft/GSL.git
[submodule "test/lest"]
path = test/lest
url = git@github.com:martinmoene/lest.git
url = https://github.com/martinmoene/lest.git
10 changes: 5 additions & 5 deletions CONTRIBUTE.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Contributing to IncludeOS

Feel free to [clone, edit and send pull-request](https://help.github.com/articles/using-pull-requests).
Feel free to [clone, edit and send pull-request](https://help.github.com/articles/using-pull-requests).

* Send any and all pull-requests to the dev-branch. It's ok if it comes from your master branch.
* Do exactly one thing pr. pull-request. This makes it possible to quickly see and understand what you've done.
* Send any and all pull-requests to the [dev-branch](https://github.com/hioa-cs/IncludeOS/tree/dev). It's ok if it comes from your master branch.
* Do "one thing" pr. pull-request. This makes it possible to quickly see and understand what you've done.
* Please don't redo the folder-structure - if you have suggestions for this, just post an issue explaining the benefits of your suggested structure.
* Everything you commit will be under the same license as this repo (Undecided so far) and HiOA will retain the right to publish your commits under a different license.
* Everything you commit will be under the same license as this repo and the copyright holders will retain the right to publish your commits under a different license.

### Consider making a standalone module!
We're working on a github-based package manager, much like [npm](https://www.npmjs.com/). Most new funcitonality from us, such as HTTP and a REST-framework, will probably come out like separate packages - each with their own repository. This will help keep the IncludeOS core small, and easier to maintain. Clearly, we also want to gather everything in one place, and our upcoming package manager will be doing that. Meanwhile: If you do want make a module - just make it a separate github-repo, and let us know about it. We'll link to it from here, until the package manager is ready.
We're working on a github-based package manager, much like [npm](https://www.npmjs.com/). Most new functionality from us, such as HTTP and a REST-framework, will probably come out like separate packages - each with their own repository. This will help keep the IncludeOS core small, and easier to maintain. Clearly, we also want to gather everything in one place, and our upcoming package manager will be doing that. Meanwhile: If you do want make a module - just make it a separate github-repo, and let us know about it. We'll link to it from here, until the package manager is ready.

## Issue tracker
Post any issues not already mentioned, in the [issue tracker](https://github.com/hioa-cs/IncludeOS/issues). You can also post questions, not answered in the [FAQ](https://github.com/hioa-cs/IncludeOS/wiki/FAQ).
Expand Down
32 changes: 18 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,26 +15,31 @@ IncludeOS is free software, with "no warranties or restrictions of any kind".


## Build status
We're working towards automating everything with our Jenkins CI server. Unfortunately he was recently hacked and is being cloned from DNA recovered from a mosqito in resin plus pig stem cells as we speak. He'll be back on his feet and just like before (ish) pretty soon.
We're working towards automating everything with our Jenkins CI server. The tests performed to generate these badges are taken from the tests folder. More tests are added regularly, so to see which tests have been completed to generate the results click the corresponding badge.

| | Build from bundle | Build from source |
|--------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------|
| Master | [![Build Status](https://jenkins.includeos.org/buildStatus/icon?job=shield_master_bundle_pipe)](https://jenkins.includeos.org/job/shield_master_bundle_pipe/) | Coming soon |
| Dev | [![Build Status](https://jenkins.includeos.org/buildStatus/icon?job=shield_dev_bundle_pipe)](https://jenkins.includeos.org/job/shield_dev_bundle_pipe/) | Coming soon |

### Key features
* **Extreme memory footprint**: A minimal bootable image, including bootloader, operating system components and a complete C++ standard library is currently 693K when optimized for size.
* **KVM and VirtualBox support** with full virtualization, using [x86 hardware virtualization](https://en.wikipedia.org/wiki/X86_virtualization) whenever available (it is on most modern x86 CPU's). In principle IncludeOS should run on any x86 hardware platform, even on a physical x86 computer, given appropriate drivers. Officially, we develop for- and test on [Linux KVM](http://www.linux-kvm.org/page/Main_Page), which power the [OpenStack IaaS cloud](https://www.openstack.org/), and [VirtualBox](https://www.virtualbox.org), which means that you can run your IncludeOS service on both Linux, Microsoft Windows and Apple OS X.
* **C++11/14 support**
* Full C++11/14 language support with [clang](http://clang.llvm.org) v3.6 and later.
* Standard C++ library** (STL) [libc++](http://libcxx.llvm.org) from [LLVM](http://llvm.org/)
* Full C++11/14 language support with [clang](http://clang.llvm.org) v3.8 and later.
* Standard C++ library (STL) [libc++](http://libcxx.llvm.org) from [LLVM](http://llvm.org/)
* Exceptions and stack unwinding (currently using [libgcc](https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html))
* *Note:* Certain language features, such as threads and filestreams are currently missing backend support.
* **Standard C library** using [newlib](https://sourceware.org/newlib/) from [Red Hat](http://www.redhat.com/)
* **Virtio Network driver** with DMA. [Virtio](https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=virtio) provides a highly efficient and widely supported I/O virtualization. Like most implementations IncludeOS currently uses "legacy mode", but we're working towards the new [Virtio 1.0 OASIS standard](http://docs.oasis-open.org/virtio/virtio/v1.0/virtio-v1.0.html)
* **A highly modular TCP/IP-stack** written from scratch, still under heavy development.
* TCP: Just enough to serve HTTP
* UDP: Enough to support a high performance DNS service
* DHCP: Basic support, tested on VirtualBox and KVM
* ICMP: Enough to answer ping, no control messages yet
* TCP: Not all the RFC's are impelemented yet, but it's stable and usable, including congestion control and common options.
* UDP: More or less complete, enough to support a high performance DNS service
* DHCP: Basic support, tested on VirtualBox, KVM and OpenStack
* ICMP: Enough to answer ping, no integration with the rest of the stack yet.
* ARP
* Ethernet
* IPv6 support under active development
* IPv6 support under development

A longer list of features and limitations is on the [wiki feature list](https://github.com/hioa-cs/IncludeOS/wiki/Features)

Expand Down Expand Up @@ -65,14 +70,13 @@ You can now log in to the vagrant build environment and build and run a test ser
$ ./test.sh
```


## Prerequisites for building IncludeOS VM's
* **Ubuntu 14.04 LTS x86_64**, Vanilla, either on a physical or virtual machine (A virtualbox VM works fine)
* **Ubuntu 16.04 or 14.04 LTS, x86_64**, either on a physical or virtual machine (A virtualbox VM works fine)
* For the full source build, you'll need at least 1024 MB memory
* In order to support VGA graphics inside a VM, we recommend a lightweight GUI, such as [lubuntu](http://lubuntu.net/blog/lubuntu-1404-trusty-tahr-released) which runs great inside a virtual machine.
* In order to support VGA graphics inside a VM, we recommend a lightweight GUI, such as [lubuntu](https://help.ubuntu.com/community/Lubuntu/GetLubuntu) which runs great inside a virtual machine.
* *NOTE:* Graphics is by no means necessary, as all IncludeOS output by default will be routed to the serial port, and in Qemu,
* The install scripts may very well work on other flavours on Linux, but we haven't tried. Please let us know if you do.
* **Building on a Mac:** we have done a successful build from bundle, directly on a Mac. It's a work in progress, but see [./etc/install_osx.sh](./etc/install_osx.sh) for details.
* **Building on a Mac:** you can build IncludeOS (from bundle only) directly on a Mac by running [./etc/install_osx.sh](./etc/install_osx.sh).
* You'll need `git` to clone from github.

Once you have a system with the prereqs (virtual or not), you can choose a full build from source, or a fast build from binaries:
Expand All @@ -84,7 +88,7 @@ Once you have a system with the prereqs (virtual or not), you can choose a full
$ ./etc/install_from_bundle.sh

**The script will:**
* Install the required dependencies: `curl make clang-3.6 nasm bridge-utils qemu`
* Install the required dependencies: `curl make clang-3.8 nasm bridge-utils qemu`
* Download the latest binary release bundle from github, using the github API.
* Unzip the bundle to `$INCLUDEOS_INSTALL_LOC` - which you can set in advance, or which defaults to `$HOME`
* Create a network bridge called `include0`, for tap-networking
Expand All @@ -102,7 +106,7 @@ About a minute or two (On a 4-core virtualbox Ubuntu VM, runing on a 2015 MacBoo

**The script will:**
* Install all the tools required for building IncludeOS, and all libraries it depends on:
* `build-essential make nasm texinfo clang-3.6 cmake ninja-build subversion zlib1g-dev libtinfo-dev`
* `build-essential make nasm texinfo clang-3.8 cmake ninja-build subversion zlib1g-dev libtinfo-dev`
* Build a GCC cross compiler along the lines of the [osdev howto](http://wiki.osdev.org/GCC_Cross-Compiler) which we really only need to build `libgcc` and `newlib`.
* Build [Redhat's newlib](https://sourceware.org/newlib/) using the cross compiler, and install it according to `./etc/build_newlib.sh`. The script will also install it to the mentioned location.
* Build a 32-bit version of [LLVM's libc++](http://libcxx.llvm.org/) tailored for IncludeOS.
Expand Down
8 changes: 8 additions & 0 deletions api/async
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#pragma once
#ifndef API_ASYNC_HEADER
#define API_ASYNC_HEADER

// hmm...
#include "utility/async.hpp"

#endif
66 changes: 46 additions & 20 deletions api/common
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
// 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.
Expand Down Expand Up @@ -38,25 +38,13 @@
#error "This project needs to be compiled with an ix86-elf compiler"
#endif

#ifndef __includeOS__
#define __includeOS__
#endif

/* Unused parameters (necessary for syscall warnings) */
/* Unused parameters */
#ifdef __GNUC__
# define UNUSED(x) UNUSED_ ## x __attribute__((__unused__))
#else
# define UNUSED(x) UNUSED_ ## x
#endif

/* Hardware @todo Make this more C++'ish and proper. */
#define MAX_NICS 4
#define MAX_DISKS 4
#define MAX_SERIALS 4

/* LIMITS */
//#define SBRK_MAX 0x10000

/* BOCHS Break point */
#define BREAK __asm__ volatile("xchg %bx,%bx");

Expand All @@ -65,9 +53,47 @@
#include "warn"
#include "info"

// From sanos, pdir.h
#define PAGESHIFT 12
#define BTOP(x) ((unsigned long)(x) >> PAGESHIFT)
#define PAGESIZE 4096
#include <gsl.h>

#endif
/* Define our own termination policy for contract */
/* violation to generate relevant information about */
/* the reason for termination. */
#if defined(OS_TERMINATE_ON_CONTRACT_VIOLATION)

#include <cstdlib> // Needed for std::exit
#include <iostream> // Needed for std::err
#define OS_STRINGIFY(x) #x

/* Function used to set termination behaviour */
inline void expects_and_ensures_termination() { std::exit(EXIT_FAILURE); }

#undef Expects
#undef Ensures

#define Expects(cond) \
do { \
if (not (cond)) { \
std::cerr << "OS: Precondition (" OS_STRINGIFY(cond) \
<< ") failed...\n" << "\t...in function: " \
<< __func__ << " @" << __FILE__ << ":" \
<< __LINE__ << '\n'; \
std::set_terminate(expects_and_ensures_termination); \
std::terminate(); \
} \
} while(0)

#define Ensures(cond) \
do { \
if (not (cond)) { \
std::cerr << "OS: Postcondition (" OS_STRINGIFY(cond) \
<< ") failed...\n" << "\t...in function: " \
<< __func__ << " @" << __FILE__ << ":" \
<< __LINE__ << '\n'; \
std::set_terminate(expects_and_ensures_termination); \
std::terminate(); \
} \
} while(0)

#endif //< defined(OS_TERMINATE_ON_CONTRACT_VIOLATION)

#endif //< INCLUDEOS_COMMON_HEADER
76 changes: 70 additions & 6 deletions api/fs/common.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,80 @@
#define FS_COMMON_HPP

#include <memory>
#include <string>

namespace fs {

typedef std::shared_ptr<uint8_t> buffer_t;
typedef std::shared_ptr<uint8_t> buffer_t;

// TODO: transform this into a class with a bool operator
using error_t = bool;

/** @var no_error: Always returns boolean false when used in expressions */
extern error_t no_error;
struct error_t
{
enum token_t {
NO_ERR = 0,
E_IO, // general I/O error
E_MNT,

E_NOENT,
E_NOTDIR,
};

error_t(token_t tk, const std::string& rsn)
: token_(tk), reason_(rsn) {}

// error code to string
std::string token() const noexcept;
// show explanation for error
std::string reason() const noexcept {
return reason_;
}

// returns "description": "reason"
std::string to_string() const noexcept {
return token() + ": " + reason();
}

// returns true when it's an error
operator bool () const noexcept {
return token_ != NO_ERR;
}

private:
token_t token_;
std::string reason_;
};

struct Buffer
{
Buffer(error_t e, buffer_t b, size_t l)
: err(e), buffer(b), len(l) {}

// returns true if this buffer is valid
bool is_valid() const noexcept {
return buffer != nullptr;
}
operator bool () const noexcept {
return is_valid();
}

uint8_t* data() {
return buffer.get();
}
size_t size() const noexcept {
return len;
}

// create a std::string from the stored buffer and return it
std::string to_string() const noexcept {
return std::string((char*) buffer.get(), size());
}

error_t err;
buffer_t buffer;
uint64_t len;
};

/** @var no_error: Always returns boolean false when used in expressions */
extern error_t no_error;

} //< namespace fs

Expand Down
Loading