Hi,
Have you received the new drone information we sent previously? This
product is now ready at our storage facility.
I'm going to provide you again the product specific details.
The GPS brushless drone takes 28 minutes for a long battery life. 1000m
electric fence safety distance.
Fixed point indoor optical flow, GPS positioning outside.
Back home with power off/off signal back home.
Cruise multi-points, VR, multi-lens switching, photo/video panorama,
lens zoom, follow-up, surrounding.
MV mode, home with a single key, headless mode, switching definition,
picture / video gesture, front lens up and down.
Flight system: fixed altitude GPS/air pressure
Camera parameters: ESC PTZ/ ES electronic stabilisation 3840x2160/4K 30
frames
Eight high wind resistance levels
5G Anti-interference Image Transmission Signal:
Diameter of the fan blade (cm): 5.8cm
Capacity of the body: 7.4V 3000mAh with board
Remote battery control (chargeable) capacity: 3.7V 300mAh with board
5G4K with optical flow WIFI configuration:
Time of charging: 180 minutes
Fernsteuerung: endurance charging (no battery required)
Type: 1 type/2 battery type/3 kind of battery
Gray-white color
Substances: plastic and alloy
Size: Drone unfolded size: 26x30x5cm, 14x19x5cm folded size
Pricing details:
288.50 each for one drone
278.59 each for two or three drones
268.50 each for four or more drones
Have you considered to take one or more today. Just let us know name,
phone number and address, and we will arrange the shipment for you
soon.
Dimensions of product (cm): 30x26x5cm
Diameter of the fan blade (cm): 5.8cm
Capacity of the body: 7.4V 3000mAh with board
Remote battery control (chargeable) capacity: 3.7V 300mAh with board
5G4K with optical flow WIFI configuration:
Charging time: 180min Airtime: about 28min
Colour: gray Gray
Distance remote control: 1000M
-Brushless GPS drone, 28-1000 m long life battery safety distance
electronic fence.
-Fixed point inside optical flow, placement of outside GPS
-Auto return back home, off/off signal back home power
-Multipoint, MR mode, multicollap, photo/ video panorama, lens zoom,
-follow, surround, multi-point cruise, VR mode.
-MV mode, home one-key mode, headless mode, photo/video definition, up
and down front lens adjustment.
Thanks,
Thomas Reid
On Thu, 15 Jul 2021 at 20:46, Alan Maguire <alan.maguire(a)oracle.com> wrote:
>
> Add a BTF dumper for typed data, so that the user can dump a typed
> version of the data provided.
>
> The API is
>
> int btf_dump__dump_type_data(struct btf_dump *d, __u32 id,
> void *data, size_t data_sz,
> const struct btf_dump_type_data_opts *opts);
>
> ...where the id is the BTF id of the data pointed to by the "void *"
> argument; for example the BTF id of "struct sk_buff" for a
> "struct skb *" data pointer. Options supported are
>
> - a starting indent level (indent_lvl)
> - a user-specified indent string which will be printed once per
> indent level; if NULL, tab is chosen but any string <= 32 chars
> can be provided.
> - a set of boolean options to control dump display, similar to those
> used for BPF helper bpf_snprintf_btf(). Options are
> - compact : omit newlines and other indentation
> - skip_names: omit member names
> - emit_zeroes: show zero-value members
>
> Default output format is identical to that dumped by bpf_snprintf_btf(),
> for example a "struct sk_buff" representation would look like this:
>
> struct sk_buff){
> (union){
> (struct){
> .next = (struct sk_buff *)0xffffffffffffffff,
> .prev = (struct sk_buff *)0xffffffffffffffff,
> (union){
> .dev = (struct net_device *)0xffffffffffffffff,
> .dev_scratch = (long unsigned int)18446744073709551615,
> },
> },
> ...
>
> If the data structure is larger than the *data_sz*
> number of bytes that are available in *data*, as much
> of the data as possible will be dumped and -E2BIG will
> be returned. This is useful as tracers will sometimes
> not be able to capture all of the data associated with
> a type; for example a "struct task_struct" is ~16k.
> Being able to specify that only a subset is available is
> important for such cases. On success, the amount of data
> dumped is returned.
>
> Signed-off-by: Alan Maguire <alan.maguire(a)oracle.com>
> ---
> tools/lib/bpf/btf.h | 19 ++
> tools/lib/bpf/btf_dump.c | 819 ++++++++++++++++++++++++++++++++++++++++++++++-
> tools/lib/bpf/libbpf.map | 1 +
> 3 files changed, 834 insertions(+), 5 deletions(-)
<trim>
> diff --git a/tools/lib/bpf/btf_dump.c b/tools/lib/bpf/btf_dump.c
> index 5dc6b517..929cf93 100644
> --- a/tools/lib/bpf/btf_dump.c
> +++ b/tools/lib/bpf/btf_dump.c
Following perf build errors noticed on i386 and arm 32-bit architectures on
linux next 20210719 tag with gcc-11.
metadata:
--------------
git_repo: https://gitlab.com/Linaro/lkft/mirrors/next/linux-next
git_short_log: 08076eab6fef ( Add linux-next specific files for 20210719 )
toolchain: gcc-11
target_arch: arm and i386
> +static void btf_dump_int128(struct btf_dump *d,
> + const struct btf_type *t,
> + const void *data)
> +{
> + __int128 num = *(__int128 *)data;
btf_dump.c: In function 'btf_dump_int128':
btf_dump.c:1559:9: error: expected expression before '__int128'
1559 | __int128 num = *(__int128 *)data;
| ^~~~~~~~
btf_dump.c:1561:14: error: 'num' undeclared (first use in this function)
1561 | if ((num >> 64) == 0)
| ^~~
btf_dump.c:1561:14: note: each undeclared identifier is reported only
once for each function it appears in
btf_dump.c: At top level:
btf_dump.c:1568:17: error: '__int128' is not supported on this target
1568 | static unsigned __int128 btf_dump_bitfield_get_data(struct btf_dump *d,
| ^~~~~~~~
btf_dump.c: In function 'btf_dump_bitfield_get_data':
btf_dump.c:1576:18: error: '__int128' is not supported on this target
1576 | unsigned __int128 num = 0, ret;
| ^~~~~~~~
btf_dump.c: In function 'btf_dump_bitfield_check_zero':
btf_dump.c:1608:9: error: expected expression before '__int128'
1608 | __int128 check_num;
| ^~~~~~~~
btf_dump.c:1610:9: error: 'check_num' undeclared (first use in this function)
1610 | check_num = btf_dump_bitfield_get_data(d, t, data,
bits_offset, bit_sz);
| ^~~~~~~~~
btf_dump.c: In function 'btf_dump_bitfield_data':
btf_dump.c:1622:18: error: '__int128' is not supported on this target
1622 | unsigned __int128 print_num;
| ^~~~~~~~
btf_dump.c: In function 'btf_dump_dump_type_data':
btf_dump.c:2212:34: error: '__int128' is not supported on this target
2212 | unsigned __int128 print_num;
| ^~~~~~~~
Reported-by: Linux Kernel Functional Testing <lkft(a)linaro.org>
reference build link,
build: https://builds.tuxbuild.com/1vWeCpIox9EoV35c80bwOvU9nbb/
config: https://builds.tuxbuild.com/1vWeCpIox9EoV35c80bwOvU9nbb/config
steps to reproduce:
---------------------
# TuxMake is a command line tool and Python library that provides
# portable and repeatable Linux kernel builds across a variety of
# architectures, toolchains, kernel configurations, and make targets.
#
# TuxMake supports the concept of runtimes.
# See https://docs.tuxmake.org/runtimes/, for that to work it requires
# that you install podman or docker on your system.
#
# To install tuxmake on your system globally:
# sudo pip3 install -U tuxmake
#
# See https://docs.tuxmake.org/ for complete documentation.
tuxmake --runtime podman --target-arch arm --toolchain gcc-11
--kconfig defconfig --kconfig-add
https://builds.tuxbuild.com/1vWeCpIox9EoV35c80bwOvU9nbb/config
--
Linaro LKFT
https://lkft.linaro.org