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]]
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",

260
programs/bpf/Cargo.lock generated
View File

@ -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",

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-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"

View File

@ -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]

View File

@ -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<BPFError>, 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()),
};

View File

@ -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<u8>),
#[error("BPF program called abort()!")]
@ -27,8 +27,8 @@ pub enum HelperError {
#[error("{0}")]
InstructionError(InstructionError),
}
impl From<HelperError> for EbpfError<BPFError> {
fn from(error: HelperError) -> Self {
impl From<SyscallError> for EbpfError<BPFError> {
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<MemoryRegion, EbpfError<BPFError>> {
// 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<u64, EbpfError<BPFError>> {
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<u64, EbpfError<BPFError>> {
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<BPFError> for HelperSolAllocFree {
impl SyscallObject<BPFError> for SyscallSolAllocFree {
fn call(
&mut self,
size: u64,

View File

@ -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_

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]
/// # Safety