From 01c490d354462aa265e419b74a9dae9877adb3ca Mon Sep 17 00:00:00 2001 From: Jack May Date: Thu, 30 Apr 2020 01:43:11 -0700 Subject: [PATCH] Rename BPF helper to syscall (#9819) automerge --- Cargo.lock | 4 +- programs/bpf/Cargo.lock | 260 +++++++++--------- programs/bpf/Cargo.toml | 2 +- programs/bpf_loader/Cargo.toml | 2 +- programs/bpf_loader/src/lib.rs | 12 +- .../src/{helpers.rs => syscalls.rs} | 56 ++-- sdk/bpf/c/inc/solana_sdk.h | 5 +- sdk/bpf/rust/test/src/lib.rs | 2 +- 8 files changed, 171 insertions(+), 172 deletions(-) rename programs/bpf_loader/src/{helpers.rs => syscalls.rs} (80%) diff --git a/Cargo.lock b/Cargo.lock index dd16c03dab..953fb03010 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4217,9 +4217,9 @@ dependencies = [ [[package]] name = "solana_rbpf" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87d4395203039cac872c125dea2534e6b98ae85e28e3f800872a7571ffa87df8" +checksum = "1d6bee545321a2fed2f9a24066bf7bf08f9b814fd48865b7c629ee40f33f3207" dependencies = [ "byteorder", "combine", diff --git a/programs/bpf/Cargo.lock b/programs/bpf/Cargo.lock index efa654422a..60bdfa5139 100644 --- a/programs/bpf/Cargo.lock +++ b/programs/bpf/Cargo.lock @@ -77,9 +77,9 @@ dependencies = [ [[package]] name = "backtrace-sys" -version = "0.1.36" +version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78848718ee1255a2485d1309ad9cdecfc2e7d0362dd11c6829364c6b35ae1bc7" +checksum = "18fbebbe1c9d1f383a9cc7e8ccdb471b91c8d024ee9c2ca5b5346121fe8b4399" dependencies = [ "cc", "libc", @@ -526,9 +526,9 @@ dependencies = [ [[package]] name = "failure" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8529c2421efa3066a5cbd8063d2244603824daccb6936b079010bb2aa89464b" +checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" dependencies = [ "backtrace", "failure_derive", @@ -536,13 +536,13 @@ dependencies = [ [[package]] name = "failure_derive" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030a733c8287d6213886dd487564ff5c8f6aae10278b3588ed177f9d18f8d231" +checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.10", - "quote 1.0.3", - "syn 1.0.18", + "proc-macro2 1.0.12", + "quote 1.0.4", + "syn 1.0.19", "synstructure", ] @@ -620,9 +620,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a5081aa3de1f7542a794a397cde100ed903b0630152d0973479018fd85423a7" dependencies = [ "proc-macro-hack", - "proc-macro2 1.0.10", - "quote 1.0.3", - "syn 1.0.18", + "proc-macro2 1.0.12", + "quote 1.0.4", + "syn 1.0.19", ] [[package]] @@ -711,9 +711,9 @@ checksum = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" [[package]] name = "h2" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "377038bf3c89d18d6ca1431e7a5027194fbd724ca10592b9487ede5e8e144f42" +checksum = "79b7246d7e4b979c03fa093da39cfb3617a96bbeee6310af63991668d7e843ff" dependencies = [ "bytes 0.5.4", "fnv", @@ -724,7 +724,7 @@ dependencies = [ "indexmap", "log", "slab", - "tokio 0.2.19", + "tokio 0.2.20", "tokio-util", ] @@ -817,7 +817,7 @@ dependencies = [ "net2", "pin-project", "time", - "tokio 0.2.19", + "tokio 0.2.20", "tower-service", "want", ] @@ -835,7 +835,7 @@ dependencies = [ "log", "rustls", "rustls-native-certs", - "tokio 0.2.19", + "tokio 0.2.20", "tokio-rustls", "webpki", ] @@ -936,9 +936,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.37" +version = "0.3.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a27d435371a2fa5b6d2b028a74bbdb1234f308da363226a2854ca3ff8ba7055" +checksum = "fa5a448de267e7358beaf4a5d849518fe9a0c13fce7afd44b06e68550e5562a7" dependencies = [ "wasm-bindgen", ] @@ -1051,9 +1051,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.6.21" +version = "0.6.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f" +checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430" dependencies = [ "cfg-if", "fuchsia-zircon", @@ -1070,9 +1070,9 @@ dependencies = [ [[package]] name = "mio-uds" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" +checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" dependencies = [ "iovec", "libc", @@ -1093,9 +1093,9 @@ dependencies = [ [[package]] name = "net2" -version = "0.2.33" +version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" +checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7" dependencies = [ "cfg-if", "libc", @@ -1119,9 +1119,9 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c8b15b261814f992e33760b1fca9fe8b693d8a65299f20c9901688636cfb746" dependencies = [ - "proc-macro2 1.0.10", - "quote 1.0.3", - "syn 1.0.18", + "proc-macro2 1.0.12", + "quote 1.0.4", + "syn 1.0.19", ] [[package]] @@ -1202,9 +1202,9 @@ dependencies = [ [[package]] name = "paste" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3c897744f63f34f7ae3a024d9162bb5001f4ad661dd24bea0dc9f075d2de1c6" +checksum = "0a229b1c58c692edcaa5b9b0948084f130f55d2dcc15b02fcc5340b2b4521476" dependencies = [ "paste-impl", "proc-macro-hack", @@ -1212,14 +1212,14 @@ dependencies = [ [[package]] name = "paste-impl" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66fd6f92e3594f2dd7b3fc23e42d82e292f7bcda6d8e5dcd167072327234ab89" +checksum = "2e0bf239e447e67ff6d16a8bb5e4d4bd2343acf5066061c0e8e06ac5ba8ca68c" dependencies = [ "proc-macro-hack", - "proc-macro2 1.0.10", - "quote 1.0.3", - "syn 1.0.18", + "proc-macro2 1.0.12", + "quote 1.0.4", + "syn 1.0.19", ] [[package]] @@ -1240,29 +1240,29 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" [[package]] name = "pin-project" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f6a7f5eee6292c559c793430c55c00aea9d3b3d1905e855806ca4d7253426a2" +checksum = "82c3bfbfb5bb42f99498c7234bbd768c220eb0cea6818259d0d18a1aa3d2595d" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8988430ce790d8682672117bc06dda364c0be32d3abd738234f19f3240bad99a" +checksum = "ccbf6449dcfb18562c015526b085b8df1aa3cdab180af8ec2ebd300a3bd28f63" dependencies = [ - "proc-macro2 1.0.10", - "quote 1.0.3", - "syn 1.0.18", + "proc-macro2 1.0.12", + "quote 1.0.4", + "syn 1.0.19", ] [[package]] name = "pin-project-lite" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "237844750cfbb86f67afe27eee600dfbbcb6188d734139b534cbfbf4f96792ae" +checksum = "f7505eeebd78492e0f6108f7171c4948dbb120ee8119d9d77d0afa5469bef67f" [[package]] name = "pin-utils" @@ -1311,9 +1311,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.10" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3" +checksum = "8872cf6f48eee44265156c111456a700ab3483686b3f96df4cf5481c89157319" dependencies = [ "unicode-xid 0.2.0", ] @@ -1341,11 +1341,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f" +checksum = "4c1f4b0efa5fc5e8ceb705136bfee52cfdb6a4e3509f770b478cd6ed434232a7" dependencies = [ - "proc-macro2 1.0.10", + "proc-macro2 1.0.12", ] [[package]] @@ -1473,7 +1473,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "time", - "tokio 0.2.19", + "tokio 0.2.20", "tokio-rustls", "url", "wasm-bindgen", @@ -1581,9 +1581,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f331b9025654145cd425b9ded0caf8f5ae0df80d418b326e2dc1c3dc5eb0620" +checksum = "64808902d7d99f78eaddd2b4e2509713babc3dc3c85ad6f4c447680f3c01e535" dependencies = [ "bitflags", "core-foundation", @@ -1628,9 +1628,9 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325a073952621257820e7a3469f55ba4726d8b28657e7e36653d1c36dc2c84ae" +checksum = "3bf487fbf5c6239d7ea2ff8b10cb6b811cd4b5080d1c2aeed1dec18753c06e10" dependencies = [ "serde", ] @@ -1641,9 +1641,9 @@ version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c" dependencies = [ - "proc-macro2 1.0.10", - "quote 1.0.3", - "syn 1.0.18", + "proc-macro2 1.0.12", + "quote 1.0.4", + "syn 1.0.19", ] [[package]] @@ -1716,7 +1716,7 @@ checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4" [[package]] name = "solana-bpf-loader-program" -version = "1.1.8" +version = "1.1.11" dependencies = [ "bincode", "byteorder 1.3.4", @@ -1732,7 +1732,7 @@ dependencies = [ [[package]] name = "solana-bpf-programs" -version = "1.1.8" +version = "1.1.11" dependencies = [ "bincode", "byteorder 1.3.4", @@ -1747,7 +1747,7 @@ dependencies = [ [[package]] name = "solana-bpf-rust-128bit" -version = "1.1.8" +version = "1.1.11" dependencies = [ "solana-bpf-rust-128bit-dep", "solana-sdk", @@ -1756,7 +1756,7 @@ dependencies = [ [[package]] name = "solana-bpf-rust-128bit-dep" -version = "1.1.8" +version = "1.1.11" dependencies = [ "solana-sdk", "solana-sdk-bpf-test", @@ -1764,7 +1764,7 @@ dependencies = [ [[package]] name = "solana-bpf-rust-alloc" -version = "1.1.8" +version = "1.1.11" dependencies = [ "solana-sdk", "solana-sdk-bpf-test", @@ -1772,7 +1772,7 @@ dependencies = [ [[package]] name = "solana-bpf-rust-dep-crate" -version = "1.1.8" +version = "1.1.11" dependencies = [ "byteorder 1.3.4", "solana-sdk", @@ -1781,7 +1781,7 @@ dependencies = [ [[package]] name = "solana-bpf-rust-dup-accounts" -version = "1.1.8" +version = "1.1.11" dependencies = [ "solana-sdk", "solana-sdk-bpf-test", @@ -1789,7 +1789,7 @@ dependencies = [ [[package]] name = "solana-bpf-rust-error-handling" -version = "1.1.8" +version = "1.1.11" dependencies = [ "num-derive 0.2.5", "num-traits 0.2.11", @@ -1800,7 +1800,7 @@ dependencies = [ [[package]] name = "solana-bpf-rust-external-spend" -version = "1.1.8" +version = "1.1.11" dependencies = [ "solana-sdk", "solana-sdk-bpf-test", @@ -1808,7 +1808,7 @@ dependencies = [ [[package]] name = "solana-bpf-rust-iter" -version = "1.1.8" +version = "1.1.11" dependencies = [ "solana-sdk", "solana-sdk-bpf-test", @@ -1816,7 +1816,7 @@ dependencies = [ [[package]] name = "solana-bpf-rust-many-args" -version = "1.1.8" +version = "1.1.11" dependencies = [ "solana-bpf-rust-many-args-dep", "solana-sdk", @@ -1825,7 +1825,7 @@ dependencies = [ [[package]] name = "solana-bpf-rust-many-args-dep" -version = "1.1.8" +version = "1.1.11" dependencies = [ "solana-sdk", "solana-sdk-bpf-test", @@ -1833,7 +1833,7 @@ dependencies = [ [[package]] name = "solana-bpf-rust-noop" -version = "1.1.8" +version = "1.1.11" dependencies = [ "solana-sdk", "solana-sdk-bpf-test", @@ -1841,7 +1841,7 @@ dependencies = [ [[package]] name = "solana-bpf-rust-panic" -version = "1.1.8" +version = "1.1.11" dependencies = [ "solana-sdk", "solana-sdk-bpf-test", @@ -1849,7 +1849,7 @@ dependencies = [ [[package]] name = "solana-bpf-rust-param-passing" -version = "1.1.8" +version = "1.1.11" dependencies = [ "solana-bpf-rust-param-passing-dep", "solana-sdk", @@ -1858,7 +1858,7 @@ dependencies = [ [[package]] name = "solana-bpf-rust-param-passing-dep" -version = "1.1.8" +version = "1.1.11" dependencies = [ "solana-sdk", "solana-sdk-bpf-test", @@ -1866,7 +1866,7 @@ dependencies = [ [[package]] name = "solana-bpf-rust-sysval" -version = "1.1.8" +version = "1.1.11" dependencies = [ "solana-sdk", "solana-sdk-bpf-test", @@ -1874,7 +1874,7 @@ dependencies = [ [[package]] name = "solana-config-program" -version = "1.1.8" +version = "1.1.11" dependencies = [ "bincode", "chrono", @@ -1886,7 +1886,7 @@ dependencies = [ [[package]] name = "solana-crate-features" -version = "1.1.8" +version = "1.1.11" dependencies = [ "backtrace", "bytes 0.4.12", @@ -1902,14 +1902,14 @@ dependencies = [ "reqwest", "serde", "syn 0.15.44", - "syn 1.0.18", + "syn 1.0.19", "tokio 0.1.22", "winapi 0.3.8", ] [[package]] name = "solana-logger" -version = "1.1.8" +version = "1.1.11" dependencies = [ "env_logger 0.7.1", "lazy_static", @@ -1918,7 +1918,7 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.1.8" +version = "1.1.11" dependencies = [ "jemalloc-ctl", "jemallocator", @@ -1929,7 +1929,7 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "1.1.8" +version = "1.1.11" dependencies = [ "env_logger 0.7.1", "gethostname", @@ -1941,7 +1941,7 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" -version = "1.1.8" +version = "1.1.11" dependencies = [ "lazy_static", "num_cpus", @@ -1949,7 +1949,7 @@ dependencies = [ [[package]] name = "solana-runtime" -version = "1.1.8" +version = "1.1.11" dependencies = [ "bincode", "bv", @@ -1985,7 +1985,7 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.1.8" +version = "1.1.11" dependencies = [ "assert_matches", "bincode", @@ -2018,21 +2018,21 @@ dependencies = [ [[package]] name = "solana-sdk-bpf-test" -version = "1.1.8" +version = "1.1.11" [[package]] name = "solana-sdk-macro" -version = "1.1.8" +version = "1.1.11" dependencies = [ "bs58", - "proc-macro2 1.0.10", - "quote 1.0.3", - "syn 1.0.18", + "proc-macro2 1.0.12", + "quote 1.0.4", + "syn 1.0.19", ] [[package]] name = "solana-stake-program" -version = "1.1.8" +version = "1.1.11" dependencies = [ "bincode", "log", @@ -2049,7 +2049,7 @@ dependencies = [ [[package]] name = "solana-storage-program" -version = "1.1.8" +version = "1.1.11" dependencies = [ "bincode", "log", @@ -2064,7 +2064,7 @@ dependencies = [ [[package]] name = "solana-vote-program" -version = "1.1.8" +version = "1.1.11" dependencies = [ "bincode", "log", @@ -2079,9 +2079,9 @@ dependencies = [ [[package]] name = "solana_rbpf" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87d4395203039cac872c125dea2534e6b98ae85e28e3f800872a7571ffa87df8" +checksum = "1d6bee545321a2fed2f9a24066bf7bf08f9b814fd48865b7c629ee40f33f3207" dependencies = [ "byteorder 1.3.4", "combine", @@ -2142,12 +2142,12 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "410a7488c0a728c7ceb4ad59b9567eb4053d02e8cc7f5c0e0eeeb39518369213" +checksum = "e8e5aa70697bb26ee62214ae3288465ecec0000f05182f039b477001f08f5ae7" dependencies = [ - "proc-macro2 1.0.10", - "quote 1.0.3", + "proc-macro2 1.0.12", + "quote 1.0.4", "unicode-xid 0.2.0", ] @@ -2166,9 +2166,9 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545" dependencies = [ - "proc-macro2 1.0.10", - "quote 1.0.3", - "syn 1.0.18", + "proc-macro2 1.0.12", + "quote 1.0.4", + "syn 1.0.19", "unicode-xid 0.2.0", ] @@ -2219,9 +2219,9 @@ version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f34e0c1caaa462fd840ec6b768946ea1e7842620d94fe29d5b847138f521269" dependencies = [ - "proc-macro2 1.0.10", - "quote 1.0.3", - "syn 1.0.18", + "proc-macro2 1.0.12", + "quote 1.0.4", + "syn 1.0.19", ] [[package]] @@ -2269,9 +2269,9 @@ dependencies = [ [[package]] name = "tokio" -version = "0.2.19" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d9c43f1bb96970e153bcbae39a65e249ccb942bd9d36dbdf086024920417c9c" +checksum = "05c1d570eb1a36f0345a5ce9c6c6e665b70b73d11236912c0b477616aeec47b1" dependencies = [ "bytes 0.5.4", "fnv", @@ -2365,7 +2365,7 @@ checksum = "4adb8b3e5f86b707f1b54e7c15b6de52617a823608ccda98a15d3a24222f265a" dependencies = [ "futures-core", "rustls", - "tokio 0.2.19", + "tokio 0.2.20", "webpki", ] @@ -2466,7 +2466,7 @@ dependencies = [ "futures-sink", "log", "pin-project-lite", - "tokio 0.2.19", + "tokio 0.2.20", ] [[package]] @@ -2557,9 +2557,9 @@ dependencies = [ [[package]] name = "vec_map" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] name = "version_check" @@ -2596,9 +2596,9 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasm-bindgen" -version = "0.2.60" +version = "0.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc57ce05287f8376e998cbddfb4c8cb43b84a7ec55cf4551d7c00eef317a47f" +checksum = "e3c7d40d09cdbf0f4895ae58cf57d92e1e57a9dd8ed2e8390514b54a47cc5551" dependencies = [ "cfg-if", "serde", @@ -2608,24 +2608,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.60" +version = "0.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d967d37bf6c16cca2973ca3af071d0a2523392e4a594548155d89a678f4237cd" +checksum = "c3972e137ebf830900db522d6c8fd74d1900dcfc733462e9a12e942b00b4ac94" dependencies = [ "bumpalo", "lazy_static", "log", - "proc-macro2 1.0.10", - "quote 1.0.3", - "syn 1.0.18", + "proc-macro2 1.0.12", + "quote 1.0.4", + "syn 1.0.19", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7add542ea1ac7fdaa9dc25e031a6af33b7d63376292bd24140c637d00d1c312a" +checksum = "8a369c5e1dfb7569e14d62af4da642a3cbc2f9a3652fe586e26ac22222aa4b04" dependencies = [ "cfg-if", "js-sys", @@ -2635,38 +2635,38 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.60" +version = "0.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bd151b63e1ea881bb742cd20e1d6127cef28399558f3b5d415289bc41eee3a4" +checksum = "2cd85aa2c579e8892442954685f0d801f9129de24fa2136b2c6a539c76b65776" dependencies = [ - "quote 1.0.3", + "quote 1.0.4", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.60" +version = "0.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d68a5b36eef1be7868f668632863292e37739656a80fc4b9acec7b0bd35a4931" +checksum = "8eb197bd3a47553334907ffd2f16507b4f4f01bbec3ac921a7719e0decdfe72a" dependencies = [ - "proc-macro2 1.0.10", - "quote 1.0.3", - "syn 1.0.18", + "proc-macro2 1.0.12", + "quote 1.0.4", + "syn 1.0.19", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.60" +version = "0.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf76fe7d25ac79748a37538b7daeed1c7a6867c92d3245c12c6222e4a20d639" +checksum = "a91c2916119c17a8e316507afaaa2dd94b47646048014bbdf6bef098c1bb58ad" [[package]] name = "web-sys" -version = "0.3.37" +version = "0.3.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d6f51648d8c56c366144378a33290049eafdd784071077f6fe37dae64c1c4cb" +checksum = "8bc359e5dd3b46cb9687a051d50a2fdd228e4ba7cf6fcf861a5365c3d671a642" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/programs/bpf/Cargo.toml b/programs/bpf/Cargo.toml index 6a8d936760..7c3df3d615 100644 --- a/programs/bpf/Cargo.toml +++ b/programs/bpf/Cargo.toml @@ -26,7 +26,7 @@ solana-bpf-loader-program = { path = "../bpf_loader", version = "1.1.11" } solana-logger = { path = "../../logger", version = "1.1.11" } solana-runtime = { path = "../../runtime", version = "1.1.11" } solana-sdk = { path = "../../sdk", version = "1.1.11" } -solana_rbpf = "=0.1.25" +solana_rbpf = "=0.1.26" [[bench]] name = "bpf_loader" diff --git a/programs/bpf_loader/Cargo.toml b/programs/bpf_loader/Cargo.toml index d3fbcc91cc..6593da8bf3 100644 --- a/programs/bpf_loader/Cargo.toml +++ b/programs/bpf_loader/Cargo.toml @@ -17,7 +17,7 @@ num-derive = { version = "0.3" } num-traits = { version = "0.2" } solana-logger = { path = "../../logger", 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" [lib] diff --git a/programs/bpf_loader/src/lib.rs b/programs/bpf_loader/src/lib.rs index dfd0b5c78b..56e3413619 100644 --- a/programs/bpf_loader/src/lib.rs +++ b/programs/bpf_loader/src/lib.rs @@ -1,9 +1,9 @@ pub mod alloc; pub mod allocator_bump; 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 log::*; use num_derive::{FromPrimitive, ToPrimitive}; @@ -50,7 +50,7 @@ pub enum BPFError { #[error("{0}")] VerifierError(#[from] VerifierError), #[error("{0}")] - HelperError(#[from] HelperError), + SyscallError(#[from] SyscallError), } impl UserDefinedError for BPFError {} @@ -60,7 +60,7 @@ pub fn create_vm(prog: &[u8]) -> Result<(EbpfVm, MemoryRegion), EbpfEr vm.set_max_instruction_count(100_000)?; vm.set_elf(&prog)?; - let heap_region = helpers::register_helpers(&mut vm)?; + let heap_region = syscalls::register_syscalls(&mut vm)?; Ok((vm, heap_region)) } @@ -197,8 +197,8 @@ pub fn process_instruction( Err(error) => { warn!("BPF program failed: {}", error); return match error { - EbpfError::UserError(BPFError::HelperError( - HelperError::InstructionError(error), + EbpfError::UserError(BPFError::SyscallError( + SyscallError::InstructionError(error), )) => Err(error), _ => Err(BPFLoaderError::VirtualMachineFailedToRunProgram.into()), }; diff --git a/programs/bpf_loader/src/helpers.rs b/programs/bpf_loader/src/syscalls.rs similarity index 80% rename from programs/bpf_loader/src/helpers.rs rename to programs/bpf_loader/src/syscalls.rs index 8ef7a8bc33..3db51903fe 100644 --- a/programs/bpf_loader/src/helpers.rs +++ b/programs/bpf_loader/src/syscalls.rs @@ -2,7 +2,7 @@ use crate::{alloc, BPFError}; use alloc::Alloc; use log::*; 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}, EbpfVm, }; @@ -17,7 +17,7 @@ use thiserror::Error as ThisError; /// Error definitions #[derive(Debug, ThisError)] -pub enum HelperError { +pub enum SyscallError { #[error("{0}: {1:?}")] InvalidString(Utf8Error, Vec), #[error("BPF program called abort()!")] @@ -27,8 +27,8 @@ pub enum HelperError { #[error("{0}")] InstructionError(InstructionError), } -impl From for EbpfError { - fn from(error: HelperError) -> Self { +impl From for EbpfError { + fn from(error: SyscallError) -> Self { EbpfError::UserError(error.into()) } } @@ -45,21 +45,21 @@ use crate::allocator_bump::BPFAllocator; /// are expected to enforce this const DEFAULT_HEAP_SIZE: usize = 32 * 1024; -pub fn register_helpers<'a>( +pub fn register_syscalls<'a>( vm: &mut EbpfVm<'a, BPFError>, ) -> Result> { // Helper function common across languages - vm.register_helper_ex("abort", helper_abort)?; - vm.register_helper_ex("sol_panic_", helper_sol_panic)?; - vm.register_helper_ex("sol_log_", helper_sol_log)?; - vm.register_helper_ex("sol_log_64_", helper_sol_log_u64)?; + vm.register_syscall_ex("abort", syscall_abort)?; + vm.register_syscall_ex("sol_panic_", syscall_sol_panic)?; + vm.register_syscall_ex("sol_log_", syscall_sol_log)?; + vm.register_syscall_ex("sol_log_64_", syscall_sol_log_u64)?; // Memory allocator let heap = vec![0_u8; DEFAULT_HEAP_SIZE]; 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_", - Box::new(HelperSolAllocFree { + Box::new(SyscallSolAllocFree { allocator: BPFAllocator::new(heap, MM_HEAP_START), }), )?; @@ -136,15 +136,14 @@ fn translate_string_and_do( }; match from_utf8(&buf[..i]) { 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()` -/// LLVM will insert calls to `abort()` if it detects an untenable situation, -/// `abort()` is not intended to be called explicitly by the program. -/// Causes the BPF program to be halted immediately -pub fn helper_abort( +/// Abort syscall functions, called when the BPF program calls `abort()` +/// The verify function returns an error which will cause the BPF program +/// to be halted immediately +pub fn syscall_abort( _arg1: u64, _arg2: u64, _arg3: u64, @@ -153,12 +152,13 @@ pub fn helper_abort( _ro_regions: &[MemoryRegion], _rw_regions: &[MemoryRegion], ) -> Result> { - Err(HelperError::Abort.into()) + Err(SyscallError::Abort.into()) } -/// Panic helper function, called when the BPF program calls 'sol_panic_()` -/// Causes the BPF program to be halted immediately -pub fn helper_sol_panic( +/// Panic syscall functions, called when the BPF program calls 'sol_panic_()` +/// The verify function returns an error which will cause the BPF program +/// to be halted immediately +pub fn syscall_sol_panic( file: u64, len: u64, line: u64, @@ -168,12 +168,12 @@ pub fn helper_sol_panic( _rw_regions: &[MemoryRegion], ) -> Result> { 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 -pub fn helper_sol_log( +pub fn syscall_sol_log( addr: u64, len: u64, _arg3: u64, @@ -191,8 +191,8 @@ pub fn helper_sol_log( Ok(0) } -/// Log 5 64-bit values -pub fn helper_sol_log_u64( +/// Log 5 u64 values +pub fn syscall_sol_log_u64( arg1: u64, arg2: u64, arg3: u64, @@ -210,16 +210,16 @@ pub fn helper_sol_log_u64( 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 /// from/to a given chunk of memory and enforce size restrictions. The /// memory chunk is given to the allocator during allocator creation and /// information about that memory (start address and size) is passed /// to the VM to use for enforcement. -pub struct HelperSolAllocFree { +pub struct SyscallSolAllocFree { allocator: BPFAllocator, } -impl HelperObject for HelperSolAllocFree { +impl SyscallObject for SyscallSolAllocFree { fn call( &mut self, size: u64, diff --git a/sdk/bpf/c/inc/solana_sdk.h b/sdk/bpf/c/inc/solana_sdk.h index 75ccaadf08..ff96779e81 100644 --- a/sdk/bpf/c/inc/solana_sdk.h +++ b/sdk/bpf/c/inc/solana_sdk.h @@ -126,14 +126,13 @@ static_assert(sizeof(uint64_t) == 8); #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); #define sol_log(message) sol_log_(message, sol_strlen(message)) /** - * Helper function that prints a 64 bit values represented in hexadecimal - * to stdout + * Prints a 64 bit values represented in hexadecimal to stdout */ void sol_log_64_(uint64_t, uint64_t, uint64_t, uint64_t, uint64_t); #define sol_log_64 sol_log_64_ diff --git a/sdk/bpf/rust/test/src/lib.rs b/sdk/bpf/rust/test/src/lib.rs index deac7bcd31..16043a6861 100644 --- a/sdk/bpf/rust/test/src/lib.rs +++ b/sdk/bpf/rust/test/src/lib.rs @@ -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] /// # Safety