Rename BPF helper to syscall (#9819)

automerge
This commit is contained in:
Jack May
2020-04-30 01:43:11 -07:00
parent cfdc0eb99e
commit 01c490d354
8 changed files with 171 additions and 172 deletions

4
Cargo.lock generated
View File

@ -4217,9 +4217,9 @@ dependencies = [
[[package]] [[package]]
name = "solana_rbpf" name = "solana_rbpf"
version = "0.1.25" version = "0.1.26"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87d4395203039cac872c125dea2534e6b98ae85e28e3f800872a7571ffa87df8" checksum = "1d6bee545321a2fed2f9a24066bf7bf08f9b814fd48865b7c629ee40f33f3207"
dependencies = [ dependencies = [
"byteorder", "byteorder",
"combine", "combine",

260
programs/bpf/Cargo.lock generated
View File

@ -77,9 +77,9 @@ dependencies = [
[[package]] [[package]]
name = "backtrace-sys" name = "backtrace-sys"
version = "0.1.36" version = "0.1.37"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78848718ee1255a2485d1309ad9cdecfc2e7d0362dd11c6829364c6b35ae1bc7" checksum = "18fbebbe1c9d1f383a9cc7e8ccdb471b91c8d024ee9c2ca5b5346121fe8b4399"
dependencies = [ dependencies = [
"cc", "cc",
"libc", "libc",
@ -526,9 +526,9 @@ dependencies = [
[[package]] [[package]]
name = "failure" name = "failure"
version = "0.1.7" version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8529c2421efa3066a5cbd8063d2244603824daccb6936b079010bb2aa89464b" checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
dependencies = [ dependencies = [
"backtrace", "backtrace",
"failure_derive", "failure_derive",
@ -536,13 +536,13 @@ dependencies = [
[[package]] [[package]]
name = "failure_derive" name = "failure_derive"
version = "0.1.7" version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "030a733c8287d6213886dd487564ff5c8f6aae10278b3588ed177f9d18f8d231" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
dependencies = [ dependencies = [
"proc-macro2 1.0.10", "proc-macro2 1.0.12",
"quote 1.0.3", "quote 1.0.4",
"syn 1.0.18", "syn 1.0.19",
"synstructure", "synstructure",
] ]
@ -620,9 +620,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a5081aa3de1f7542a794a397cde100ed903b0630152d0973479018fd85423a7" checksum = "9a5081aa3de1f7542a794a397cde100ed903b0630152d0973479018fd85423a7"
dependencies = [ dependencies = [
"proc-macro-hack", "proc-macro-hack",
"proc-macro2 1.0.10", "proc-macro2 1.0.12",
"quote 1.0.3", "quote 1.0.4",
"syn 1.0.18", "syn 1.0.19",
] ]
[[package]] [[package]]
@ -711,9 +711,9 @@ checksum = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb"
[[package]] [[package]]
name = "h2" name = "h2"
version = "0.2.4" version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "377038bf3c89d18d6ca1431e7a5027194fbd724ca10592b9487ede5e8e144f42" checksum = "79b7246d7e4b979c03fa093da39cfb3617a96bbeee6310af63991668d7e843ff"
dependencies = [ dependencies = [
"bytes 0.5.4", "bytes 0.5.4",
"fnv", "fnv",
@ -724,7 +724,7 @@ dependencies = [
"indexmap", "indexmap",
"log", "log",
"slab", "slab",
"tokio 0.2.19", "tokio 0.2.20",
"tokio-util", "tokio-util",
] ]
@ -817,7 +817,7 @@ dependencies = [
"net2", "net2",
"pin-project", "pin-project",
"time", "time",
"tokio 0.2.19", "tokio 0.2.20",
"tower-service", "tower-service",
"want", "want",
] ]
@ -835,7 +835,7 @@ dependencies = [
"log", "log",
"rustls", "rustls",
"rustls-native-certs", "rustls-native-certs",
"tokio 0.2.19", "tokio 0.2.20",
"tokio-rustls", "tokio-rustls",
"webpki", "webpki",
] ]
@ -936,9 +936,9 @@ dependencies = [
[[package]] [[package]]
name = "js-sys" name = "js-sys"
version = "0.3.37" version = "0.3.39"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a27d435371a2fa5b6d2b028a74bbdb1234f308da363226a2854ca3ff8ba7055" checksum = "fa5a448de267e7358beaf4a5d849518fe9a0c13fce7afd44b06e68550e5562a7"
dependencies = [ dependencies = [
"wasm-bindgen", "wasm-bindgen",
] ]
@ -1051,9 +1051,9 @@ dependencies = [
[[package]] [[package]]
name = "mio" name = "mio"
version = "0.6.21" version = "0.6.22"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f" checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"fuchsia-zircon", "fuchsia-zircon",
@ -1070,9 +1070,9 @@ dependencies = [
[[package]] [[package]]
name = "mio-uds" name = "mio-uds"
version = "0.6.7" version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
dependencies = [ dependencies = [
"iovec", "iovec",
"libc", "libc",
@ -1093,9 +1093,9 @@ dependencies = [
[[package]] [[package]]
name = "net2" name = "net2"
version = "0.2.33" version = "0.2.34"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"libc", "libc",
@ -1119,9 +1119,9 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c8b15b261814f992e33760b1fca9fe8b693d8a65299f20c9901688636cfb746" checksum = "0c8b15b261814f992e33760b1fca9fe8b693d8a65299f20c9901688636cfb746"
dependencies = [ dependencies = [
"proc-macro2 1.0.10", "proc-macro2 1.0.12",
"quote 1.0.3", "quote 1.0.4",
"syn 1.0.18", "syn 1.0.19",
] ]
[[package]] [[package]]
@ -1202,9 +1202,9 @@ dependencies = [
[[package]] [[package]]
name = "paste" name = "paste"
version = "0.1.11" version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3c897744f63f34f7ae3a024d9162bb5001f4ad661dd24bea0dc9f075d2de1c6" checksum = "0a229b1c58c692edcaa5b9b0948084f130f55d2dcc15b02fcc5340b2b4521476"
dependencies = [ dependencies = [
"paste-impl", "paste-impl",
"proc-macro-hack", "proc-macro-hack",
@ -1212,14 +1212,14 @@ dependencies = [
[[package]] [[package]]
name = "paste-impl" name = "paste-impl"
version = "0.1.11" version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "66fd6f92e3594f2dd7b3fc23e42d82e292f7bcda6d8e5dcd167072327234ab89" checksum = "2e0bf239e447e67ff6d16a8bb5e4d4bd2343acf5066061c0e8e06ac5ba8ca68c"
dependencies = [ dependencies = [
"proc-macro-hack", "proc-macro-hack",
"proc-macro2 1.0.10", "proc-macro2 1.0.12",
"quote 1.0.3", "quote 1.0.4",
"syn 1.0.18", "syn 1.0.19",
] ]
[[package]] [[package]]
@ -1240,29 +1240,29 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
[[package]] [[package]]
name = "pin-project" name = "pin-project"
version = "0.4.9" version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f6a7f5eee6292c559c793430c55c00aea9d3b3d1905e855806ca4d7253426a2" checksum = "82c3bfbfb5bb42f99498c7234bbd768c220eb0cea6818259d0d18a1aa3d2595d"
dependencies = [ dependencies = [
"pin-project-internal", "pin-project-internal",
] ]
[[package]] [[package]]
name = "pin-project-internal" name = "pin-project-internal"
version = "0.4.9" version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8988430ce790d8682672117bc06dda364c0be32d3abd738234f19f3240bad99a" checksum = "ccbf6449dcfb18562c015526b085b8df1aa3cdab180af8ec2ebd300a3bd28f63"
dependencies = [ dependencies = [
"proc-macro2 1.0.10", "proc-macro2 1.0.12",
"quote 1.0.3", "quote 1.0.4",
"syn 1.0.18", "syn 1.0.19",
] ]
[[package]] [[package]]
name = "pin-project-lite" name = "pin-project-lite"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "237844750cfbb86f67afe27eee600dfbbcb6188d734139b534cbfbf4f96792ae" checksum = "f7505eeebd78492e0f6108f7171c4948dbb120ee8119d9d77d0afa5469bef67f"
[[package]] [[package]]
name = "pin-utils" name = "pin-utils"
@ -1311,9 +1311,9 @@ dependencies = [
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.10" version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3" checksum = "8872cf6f48eee44265156c111456a700ab3483686b3f96df4cf5481c89157319"
dependencies = [ dependencies = [
"unicode-xid 0.2.0", "unicode-xid 0.2.0",
] ]
@ -1341,11 +1341,11 @@ dependencies = [
[[package]] [[package]]
name = "quote" name = "quote"
version = "1.0.3" version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f" checksum = "4c1f4b0efa5fc5e8ceb705136bfee52cfdb6a4e3509f770b478cd6ed434232a7"
dependencies = [ dependencies = [
"proc-macro2 1.0.10", "proc-macro2 1.0.12",
] ]
[[package]] [[package]]
@ -1473,7 +1473,7 @@ dependencies = [
"serde_json", "serde_json",
"serde_urlencoded", "serde_urlencoded",
"time", "time",
"tokio 0.2.19", "tokio 0.2.20",
"tokio-rustls", "tokio-rustls",
"url", "url",
"wasm-bindgen", "wasm-bindgen",
@ -1581,9 +1581,9 @@ dependencies = [
[[package]] [[package]]
name = "security-framework" name = "security-framework"
version = "0.4.3" version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f331b9025654145cd425b9ded0caf8f5ae0df80d418b326e2dc1c3dc5eb0620" checksum = "64808902d7d99f78eaddd2b4e2509713babc3dc3c85ad6f4c447680f3c01e535"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"core-foundation", "core-foundation",
@ -1628,9 +1628,9 @@ dependencies = [
[[package]] [[package]]
name = "serde_bytes" name = "serde_bytes"
version = "0.11.3" version = "0.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "325a073952621257820e7a3469f55ba4726d8b28657e7e36653d1c36dc2c84ae" checksum = "3bf487fbf5c6239d7ea2ff8b10cb6b811cd4b5080d1c2aeed1dec18753c06e10"
dependencies = [ dependencies = [
"serde", "serde",
] ]
@ -1641,9 +1641,9 @@ version = "1.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c" checksum = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c"
dependencies = [ dependencies = [
"proc-macro2 1.0.10", "proc-macro2 1.0.12",
"quote 1.0.3", "quote 1.0.4",
"syn 1.0.18", "syn 1.0.19",
] ]
[[package]] [[package]]
@ -1716,7 +1716,7 @@ checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4"
[[package]] [[package]]
name = "solana-bpf-loader-program" name = "solana-bpf-loader-program"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"bincode", "bincode",
"byteorder 1.3.4", "byteorder 1.3.4",
@ -1732,7 +1732,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-programs" name = "solana-bpf-programs"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"bincode", "bincode",
"byteorder 1.3.4", "byteorder 1.3.4",
@ -1747,7 +1747,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-rust-128bit" name = "solana-bpf-rust-128bit"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"solana-bpf-rust-128bit-dep", "solana-bpf-rust-128bit-dep",
"solana-sdk", "solana-sdk",
@ -1756,7 +1756,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-rust-128bit-dep" name = "solana-bpf-rust-128bit-dep"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"solana-sdk", "solana-sdk",
"solana-sdk-bpf-test", "solana-sdk-bpf-test",
@ -1764,7 +1764,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-rust-alloc" name = "solana-bpf-rust-alloc"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"solana-sdk", "solana-sdk",
"solana-sdk-bpf-test", "solana-sdk-bpf-test",
@ -1772,7 +1772,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-rust-dep-crate" name = "solana-bpf-rust-dep-crate"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"byteorder 1.3.4", "byteorder 1.3.4",
"solana-sdk", "solana-sdk",
@ -1781,7 +1781,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-rust-dup-accounts" name = "solana-bpf-rust-dup-accounts"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"solana-sdk", "solana-sdk",
"solana-sdk-bpf-test", "solana-sdk-bpf-test",
@ -1789,7 +1789,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-rust-error-handling" name = "solana-bpf-rust-error-handling"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"num-derive 0.2.5", "num-derive 0.2.5",
"num-traits 0.2.11", "num-traits 0.2.11",
@ -1800,7 +1800,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-rust-external-spend" name = "solana-bpf-rust-external-spend"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"solana-sdk", "solana-sdk",
"solana-sdk-bpf-test", "solana-sdk-bpf-test",
@ -1808,7 +1808,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-rust-iter" name = "solana-bpf-rust-iter"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"solana-sdk", "solana-sdk",
"solana-sdk-bpf-test", "solana-sdk-bpf-test",
@ -1816,7 +1816,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-rust-many-args" name = "solana-bpf-rust-many-args"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"solana-bpf-rust-many-args-dep", "solana-bpf-rust-many-args-dep",
"solana-sdk", "solana-sdk",
@ -1825,7 +1825,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-rust-many-args-dep" name = "solana-bpf-rust-many-args-dep"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"solana-sdk", "solana-sdk",
"solana-sdk-bpf-test", "solana-sdk-bpf-test",
@ -1833,7 +1833,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-rust-noop" name = "solana-bpf-rust-noop"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"solana-sdk", "solana-sdk",
"solana-sdk-bpf-test", "solana-sdk-bpf-test",
@ -1841,7 +1841,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-rust-panic" name = "solana-bpf-rust-panic"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"solana-sdk", "solana-sdk",
"solana-sdk-bpf-test", "solana-sdk-bpf-test",
@ -1849,7 +1849,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-rust-param-passing" name = "solana-bpf-rust-param-passing"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"solana-bpf-rust-param-passing-dep", "solana-bpf-rust-param-passing-dep",
"solana-sdk", "solana-sdk",
@ -1858,7 +1858,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-rust-param-passing-dep" name = "solana-bpf-rust-param-passing-dep"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"solana-sdk", "solana-sdk",
"solana-sdk-bpf-test", "solana-sdk-bpf-test",
@ -1866,7 +1866,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-rust-sysval" name = "solana-bpf-rust-sysval"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"solana-sdk", "solana-sdk",
"solana-sdk-bpf-test", "solana-sdk-bpf-test",
@ -1874,7 +1874,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-config-program" name = "solana-config-program"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"bincode", "bincode",
"chrono", "chrono",
@ -1886,7 +1886,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-crate-features" name = "solana-crate-features"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"backtrace", "backtrace",
"bytes 0.4.12", "bytes 0.4.12",
@ -1902,14 +1902,14 @@ dependencies = [
"reqwest", "reqwest",
"serde", "serde",
"syn 0.15.44", "syn 0.15.44",
"syn 1.0.18", "syn 1.0.19",
"tokio 0.1.22", "tokio 0.1.22",
"winapi 0.3.8", "winapi 0.3.8",
] ]
[[package]] [[package]]
name = "solana-logger" name = "solana-logger"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"env_logger 0.7.1", "env_logger 0.7.1",
"lazy_static", "lazy_static",
@ -1918,7 +1918,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-measure" name = "solana-measure"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"jemalloc-ctl", "jemalloc-ctl",
"jemallocator", "jemallocator",
@ -1929,7 +1929,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-metrics" name = "solana-metrics"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"env_logger 0.7.1", "env_logger 0.7.1",
"gethostname", "gethostname",
@ -1941,7 +1941,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-rayon-threadlimit" name = "solana-rayon-threadlimit"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"lazy_static", "lazy_static",
"num_cpus", "num_cpus",
@ -1949,7 +1949,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-runtime" name = "solana-runtime"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"bincode", "bincode",
"bv", "bv",
@ -1985,7 +1985,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-sdk" name = "solana-sdk"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"assert_matches", "assert_matches",
"bincode", "bincode",
@ -2018,21 +2018,21 @@ dependencies = [
[[package]] [[package]]
name = "solana-sdk-bpf-test" name = "solana-sdk-bpf-test"
version = "1.1.8" version = "1.1.11"
[[package]] [[package]]
name = "solana-sdk-macro" name = "solana-sdk-macro"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"bs58", "bs58",
"proc-macro2 1.0.10", "proc-macro2 1.0.12",
"quote 1.0.3", "quote 1.0.4",
"syn 1.0.18", "syn 1.0.19",
] ]
[[package]] [[package]]
name = "solana-stake-program" name = "solana-stake-program"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"bincode", "bincode",
"log", "log",
@ -2049,7 +2049,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-storage-program" name = "solana-storage-program"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"bincode", "bincode",
"log", "log",
@ -2064,7 +2064,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-vote-program" name = "solana-vote-program"
version = "1.1.8" version = "1.1.11"
dependencies = [ dependencies = [
"bincode", "bincode",
"log", "log",
@ -2079,9 +2079,9 @@ dependencies = [
[[package]] [[package]]
name = "solana_rbpf" name = "solana_rbpf"
version = "0.1.25" version = "0.1.26"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87d4395203039cac872c125dea2534e6b98ae85e28e3f800872a7571ffa87df8" checksum = "1d6bee545321a2fed2f9a24066bf7bf08f9b814fd48865b7c629ee40f33f3207"
dependencies = [ dependencies = [
"byteorder 1.3.4", "byteorder 1.3.4",
"combine", "combine",
@ -2142,12 +2142,12 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "1.0.18" version = "1.0.19"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "410a7488c0a728c7ceb4ad59b9567eb4053d02e8cc7f5c0e0eeeb39518369213" checksum = "e8e5aa70697bb26ee62214ae3288465ecec0000f05182f039b477001f08f5ae7"
dependencies = [ dependencies = [
"proc-macro2 1.0.10", "proc-macro2 1.0.12",
"quote 1.0.3", "quote 1.0.4",
"unicode-xid 0.2.0", "unicode-xid 0.2.0",
] ]
@ -2166,9 +2166,9 @@ version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545" checksum = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545"
dependencies = [ dependencies = [
"proc-macro2 1.0.10", "proc-macro2 1.0.12",
"quote 1.0.3", "quote 1.0.4",
"syn 1.0.18", "syn 1.0.19",
"unicode-xid 0.2.0", "unicode-xid 0.2.0",
] ]
@ -2219,9 +2219,9 @@ version = "1.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f34e0c1caaa462fd840ec6b768946ea1e7842620d94fe29d5b847138f521269" checksum = "3f34e0c1caaa462fd840ec6b768946ea1e7842620d94fe29d5b847138f521269"
dependencies = [ dependencies = [
"proc-macro2 1.0.10", "proc-macro2 1.0.12",
"quote 1.0.3", "quote 1.0.4",
"syn 1.0.18", "syn 1.0.19",
] ]
[[package]] [[package]]
@ -2269,9 +2269,9 @@ dependencies = [
[[package]] [[package]]
name = "tokio" name = "tokio"
version = "0.2.19" version = "0.2.20"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d9c43f1bb96970e153bcbae39a65e249ccb942bd9d36dbdf086024920417c9c" checksum = "05c1d570eb1a36f0345a5ce9c6c6e665b70b73d11236912c0b477616aeec47b1"
dependencies = [ dependencies = [
"bytes 0.5.4", "bytes 0.5.4",
"fnv", "fnv",
@ -2365,7 +2365,7 @@ checksum = "4adb8b3e5f86b707f1b54e7c15b6de52617a823608ccda98a15d3a24222f265a"
dependencies = [ dependencies = [
"futures-core", "futures-core",
"rustls", "rustls",
"tokio 0.2.19", "tokio 0.2.20",
"webpki", "webpki",
] ]
@ -2466,7 +2466,7 @@ dependencies = [
"futures-sink", "futures-sink",
"log", "log",
"pin-project-lite", "pin-project-lite",
"tokio 0.2.19", "tokio 0.2.20",
] ]
[[package]] [[package]]
@ -2557,9 +2557,9 @@ dependencies = [
[[package]] [[package]]
name = "vec_map" name = "vec_map"
version = "0.8.1" version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
[[package]] [[package]]
name = "version_check" name = "version_check"
@ -2596,9 +2596,9 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
[[package]] [[package]]
name = "wasm-bindgen" name = "wasm-bindgen"
version = "0.2.60" version = "0.2.62"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2cc57ce05287f8376e998cbddfb4c8cb43b84a7ec55cf4551d7c00eef317a47f" checksum = "e3c7d40d09cdbf0f4895ae58cf57d92e1e57a9dd8ed2e8390514b54a47cc5551"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"serde", "serde",
@ -2608,24 +2608,24 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-backend" name = "wasm-bindgen-backend"
version = "0.2.60" version = "0.2.62"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d967d37bf6c16cca2973ca3af071d0a2523392e4a594548155d89a678f4237cd" checksum = "c3972e137ebf830900db522d6c8fd74d1900dcfc733462e9a12e942b00b4ac94"
dependencies = [ dependencies = [
"bumpalo", "bumpalo",
"lazy_static", "lazy_static",
"log", "log",
"proc-macro2 1.0.10", "proc-macro2 1.0.12",
"quote 1.0.3", "quote 1.0.4",
"syn 1.0.18", "syn 1.0.19",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
[[package]] [[package]]
name = "wasm-bindgen-futures" name = "wasm-bindgen-futures"
version = "0.4.10" version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7add542ea1ac7fdaa9dc25e031a6af33b7d63376292bd24140c637d00d1c312a" checksum = "8a369c5e1dfb7569e14d62af4da642a3cbc2f9a3652fe586e26ac22222aa4b04"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"js-sys", "js-sys",
@ -2635,38 +2635,38 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-macro" name = "wasm-bindgen-macro"
version = "0.2.60" version = "0.2.62"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8bd151b63e1ea881bb742cd20e1d6127cef28399558f3b5d415289bc41eee3a4" checksum = "2cd85aa2c579e8892442954685f0d801f9129de24fa2136b2c6a539c76b65776"
dependencies = [ dependencies = [
"quote 1.0.3", "quote 1.0.4",
"wasm-bindgen-macro-support", "wasm-bindgen-macro-support",
] ]
[[package]] [[package]]
name = "wasm-bindgen-macro-support" name = "wasm-bindgen-macro-support"
version = "0.2.60" version = "0.2.62"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d68a5b36eef1be7868f668632863292e37739656a80fc4b9acec7b0bd35a4931" checksum = "8eb197bd3a47553334907ffd2f16507b4f4f01bbec3ac921a7719e0decdfe72a"
dependencies = [ dependencies = [
"proc-macro2 1.0.10", "proc-macro2 1.0.12",
"quote 1.0.3", "quote 1.0.4",
"syn 1.0.18", "syn 1.0.19",
"wasm-bindgen-backend", "wasm-bindgen-backend",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
[[package]] [[package]]
name = "wasm-bindgen-shared" name = "wasm-bindgen-shared"
version = "0.2.60" version = "0.2.62"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "daf76fe7d25ac79748a37538b7daeed1c7a6867c92d3245c12c6222e4a20d639" checksum = "a91c2916119c17a8e316507afaaa2dd94b47646048014bbdf6bef098c1bb58ad"
[[package]] [[package]]
name = "web-sys" name = "web-sys"
version = "0.3.37" version = "0.3.39"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d6f51648d8c56c366144378a33290049eafdd784071077f6fe37dae64c1c4cb" checksum = "8bc359e5dd3b46cb9687a051d50a2fdd228e4ba7cf6fcf861a5365c3d671a642"
dependencies = [ dependencies = [
"js-sys", "js-sys",
"wasm-bindgen", "wasm-bindgen",

View File

@ -26,7 +26,7 @@ solana-bpf-loader-program = { path = "../bpf_loader", version = "1.1.11" }
solana-logger = { path = "../../logger", version = "1.1.11" } solana-logger = { path = "../../logger", version = "1.1.11" }
solana-runtime = { path = "../../runtime", version = "1.1.11" } solana-runtime = { path = "../../runtime", version = "1.1.11" }
solana-sdk = { path = "../../sdk", version = "1.1.11" } solana-sdk = { path = "../../sdk", version = "1.1.11" }
solana_rbpf = "=0.1.25" solana_rbpf = "=0.1.26"
[[bench]] [[bench]]
name = "bpf_loader" name = "bpf_loader"

View File

@ -17,7 +17,7 @@ num-derive = { version = "0.3" }
num-traits = { version = "0.2" } num-traits = { version = "0.2" }
solana-logger = { path = "../../logger", version = "1.1.11" } solana-logger = { path = "../../logger", version = "1.1.11" }
solana-sdk = { path = "../../sdk", version = "1.1.11" } solana-sdk = { path = "../../sdk", version = "1.1.11" }
solana_rbpf = "=0.1.25" solana_rbpf = "=0.1.26"
thiserror = "1.0" thiserror = "1.0"
[lib] [lib]

View File

@ -1,9 +1,9 @@
pub mod alloc; pub mod alloc;
pub mod allocator_bump; pub mod allocator_bump;
pub mod bpf_verifier; pub mod bpf_verifier;
pub mod helpers; pub mod syscalls;
use crate::{bpf_verifier::VerifierError, helpers::HelperError}; use crate::{bpf_verifier::VerifierError, syscalls::SyscallError};
use byteorder::{ByteOrder, LittleEndian, WriteBytesExt}; use byteorder::{ByteOrder, LittleEndian, WriteBytesExt};
use log::*; use log::*;
use num_derive::{FromPrimitive, ToPrimitive}; use num_derive::{FromPrimitive, ToPrimitive};
@ -50,7 +50,7 @@ pub enum BPFError {
#[error("{0}")] #[error("{0}")]
VerifierError(#[from] VerifierError), VerifierError(#[from] VerifierError),
#[error("{0}")] #[error("{0}")]
HelperError(#[from] HelperError), SyscallError(#[from] SyscallError),
} }
impl UserDefinedError for BPFError {} impl UserDefinedError for BPFError {}
@ -60,7 +60,7 @@ pub fn create_vm(prog: &[u8]) -> Result<(EbpfVm<BPFError>, MemoryRegion), EbpfEr
vm.set_max_instruction_count(100_000)?; vm.set_max_instruction_count(100_000)?;
vm.set_elf(&prog)?; vm.set_elf(&prog)?;
let heap_region = helpers::register_helpers(&mut vm)?; let heap_region = syscalls::register_syscalls(&mut vm)?;
Ok((vm, heap_region)) Ok((vm, heap_region))
} }
@ -197,8 +197,8 @@ pub fn process_instruction(
Err(error) => { Err(error) => {
warn!("BPF program failed: {}", error); warn!("BPF program failed: {}", error);
return match error { return match error {
EbpfError::UserError(BPFError::HelperError( EbpfError::UserError(BPFError::SyscallError(
HelperError::InstructionError(error), SyscallError::InstructionError(error),
)) => Err(error), )) => Err(error),
_ => Err(BPFLoaderError::VirtualMachineFailedToRunProgram.into()), _ => Err(BPFLoaderError::VirtualMachineFailedToRunProgram.into()),
}; };

View File

@ -2,7 +2,7 @@ use crate::{alloc, BPFError};
use alloc::Alloc; use alloc::Alloc;
use log::*; use log::*;
use solana_rbpf::{ use solana_rbpf::{
ebpf::{EbpfError, HelperObject, ELF_INSN_DUMP_OFFSET, MM_HEAP_START}, ebpf::{EbpfError, SyscallObject, ELF_INSN_DUMP_OFFSET, MM_HEAP_START},
memory_region::{translate_addr, MemoryRegion}, memory_region::{translate_addr, MemoryRegion},
EbpfVm, EbpfVm,
}; };
@ -17,7 +17,7 @@ use thiserror::Error as ThisError;
/// Error definitions /// Error definitions
#[derive(Debug, ThisError)] #[derive(Debug, ThisError)]
pub enum HelperError { pub enum SyscallError {
#[error("{0}: {1:?}")] #[error("{0}: {1:?}")]
InvalidString(Utf8Error, Vec<u8>), InvalidString(Utf8Error, Vec<u8>),
#[error("BPF program called abort()!")] #[error("BPF program called abort()!")]
@ -27,8 +27,8 @@ pub enum HelperError {
#[error("{0}")] #[error("{0}")]
InstructionError(InstructionError), InstructionError(InstructionError),
} }
impl From<HelperError> for EbpfError<BPFError> { impl From<SyscallError> for EbpfError<BPFError> {
fn from(error: HelperError) -> Self { fn from(error: SyscallError) -> Self {
EbpfError::UserError(error.into()) EbpfError::UserError(error.into())
} }
} }
@ -45,21 +45,21 @@ use crate::allocator_bump::BPFAllocator;
/// are expected to enforce this /// are expected to enforce this
const DEFAULT_HEAP_SIZE: usize = 32 * 1024; const DEFAULT_HEAP_SIZE: usize = 32 * 1024;
pub fn register_helpers<'a>( pub fn register_syscalls<'a>(
vm: &mut EbpfVm<'a, BPFError>, vm: &mut EbpfVm<'a, BPFError>,
) -> Result<MemoryRegion, EbpfError<BPFError>> { ) -> Result<MemoryRegion, EbpfError<BPFError>> {
// Helper function common across languages // Helper function common across languages
vm.register_helper_ex("abort", helper_abort)?; vm.register_syscall_ex("abort", syscall_abort)?;
vm.register_helper_ex("sol_panic_", helper_sol_panic)?; vm.register_syscall_ex("sol_panic_", syscall_sol_panic)?;
vm.register_helper_ex("sol_log_", helper_sol_log)?; vm.register_syscall_ex("sol_log_", syscall_sol_log)?;
vm.register_helper_ex("sol_log_64_", helper_sol_log_u64)?; vm.register_syscall_ex("sol_log_64_", syscall_sol_log_u64)?;
// Memory allocator // Memory allocator
let heap = vec![0_u8; DEFAULT_HEAP_SIZE]; let heap = vec![0_u8; DEFAULT_HEAP_SIZE];
let heap_region = MemoryRegion::new_from_slice(&heap, MM_HEAP_START); let heap_region = MemoryRegion::new_from_slice(&heap, MM_HEAP_START);
vm.register_helper_with_context_ex( vm.register_syscall_with_context_ex(
"sol_alloc_free_", "sol_alloc_free_",
Box::new(HelperSolAllocFree { Box::new(SyscallSolAllocFree {
allocator: BPFAllocator::new(heap, MM_HEAP_START), allocator: BPFAllocator::new(heap, MM_HEAP_START),
}), }),
)?; )?;
@ -136,15 +136,14 @@ fn translate_string_and_do(
}; };
match from_utf8(&buf[..i]) { match from_utf8(&buf[..i]) {
Ok(message) => work(message), Ok(message) => work(message),
Err(err) => Err(HelperError::InvalidString(err, buf[..i].to_vec()).into()), Err(err) => Err(SyscallError::InvalidString(err, buf[..i].to_vec()).into()),
} }
} }
/// Abort helper functions, called when the BPF program calls `abort()` /// Abort syscall functions, called when the BPF program calls `abort()`
/// LLVM will insert calls to `abort()` if it detects an untenable situation, /// The verify function returns an error which will cause the BPF program
/// `abort()` is not intended to be called explicitly by the program. /// to be halted immediately
/// Causes the BPF program to be halted immediately pub fn syscall_abort(
pub fn helper_abort(
_arg1: u64, _arg1: u64,
_arg2: u64, _arg2: u64,
_arg3: u64, _arg3: u64,
@ -153,12 +152,13 @@ pub fn helper_abort(
_ro_regions: &[MemoryRegion], _ro_regions: &[MemoryRegion],
_rw_regions: &[MemoryRegion], _rw_regions: &[MemoryRegion],
) -> Result<u64, EbpfError<BPFError>> { ) -> Result<u64, EbpfError<BPFError>> {
Err(HelperError::Abort.into()) Err(SyscallError::Abort.into())
} }
/// Panic helper function, called when the BPF program calls 'sol_panic_()` /// Panic syscall functions, called when the BPF program calls 'sol_panic_()`
/// Causes the BPF program to be halted immediately /// The verify function returns an error which will cause the BPF program
pub fn helper_sol_panic( /// to be halted immediately
pub fn syscall_sol_panic(
file: u64, file: u64,
len: u64, len: u64,
line: u64, line: u64,
@ -168,12 +168,12 @@ pub fn helper_sol_panic(
_rw_regions: &[MemoryRegion], _rw_regions: &[MemoryRegion],
) -> Result<u64, EbpfError<BPFError>> { ) -> Result<u64, EbpfError<BPFError>> {
translate_string_and_do(file, len, ro_regions, &|string: &str| { translate_string_and_do(file, len, ro_regions, &|string: &str| {
Err(HelperError::Panic(string.to_string(), line, column).into()) Err(SyscallError::Panic(string.to_string(), line, column).into())
}) })
} }
/// Log a user's info message /// Log a user's info message
pub fn helper_sol_log( pub fn syscall_sol_log(
addr: u64, addr: u64,
len: u64, len: u64,
_arg3: u64, _arg3: u64,
@ -191,8 +191,8 @@ pub fn helper_sol_log(
Ok(0) Ok(0)
} }
/// Log 5 64-bit values /// Log 5 u64 values
pub fn helper_sol_log_u64( pub fn syscall_sol_log_u64(
arg1: u64, arg1: u64,
arg2: u64, arg2: u64,
arg3: u64, arg3: u64,
@ -210,16 +210,16 @@ pub fn helper_sol_log_u64(
Ok(0) Ok(0)
} }
/// Dynamic memory allocation helper called when the BPF program calls /// Dynamic memory allocation syscall called when the BPF program calls
/// `sol_alloc_free_()`. The allocator is expected to allocate/free /// `sol_alloc_free_()`. The allocator is expected to allocate/free
/// from/to a given chunk of memory and enforce size restrictions. The /// from/to a given chunk of memory and enforce size restrictions. The
/// memory chunk is given to the allocator during allocator creation and /// memory chunk is given to the allocator during allocator creation and
/// information about that memory (start address and size) is passed /// information about that memory (start address and size) is passed
/// to the VM to use for enforcement. /// to the VM to use for enforcement.
pub struct HelperSolAllocFree { pub struct SyscallSolAllocFree {
allocator: BPFAllocator, allocator: BPFAllocator,
} }
impl HelperObject<BPFError> for HelperSolAllocFree { impl SyscallObject<BPFError> for SyscallSolAllocFree {
fn call( fn call(
&mut self, &mut self,
size: u64, size: u64,

View File

@ -126,14 +126,13 @@ static_assert(sizeof(uint64_t) == 8);
#define SOL_FN_PREFIX __attribute__((always_inline)) static #define SOL_FN_PREFIX __attribute__((always_inline)) static
/** /**
* Helper function that prints a string to stdout * Prints a string to stdout
*/ */
void sol_log_(const char *, uint64_t); void sol_log_(const char *, uint64_t);
#define sol_log(message) sol_log_(message, sol_strlen(message)) #define sol_log(message) sol_log_(message, sol_strlen(message))
/** /**
* Helper function that prints a 64 bit values represented in hexadecimal * Prints a 64 bit values represented in hexadecimal to stdout
* to stdout
*/ */
void sol_log_64_(uint64_t, uint64_t, uint64_t, uint64_t, uint64_t); void sol_log_64_(uint64_t, uint64_t, uint64_t, uint64_t, uint64_t);
#define sol_log_64 sol_log_64_ #define sol_log_64 sol_log_64_

View File

@ -1,4 +1,4 @@
//! @brief Solana Rust-based BPF program utility functions and types //! @brief Stubs for syscalls when building tests for x86
#[no_mangle] #[no_mangle]
/// # Safety /// # Safety