1
0
mirror of https://github.com/systemd/systemd synced 2026-03-19 11:34:46 +01:00

Compare commits

..

12 Commits

Author SHA1 Message Date
Lennart Poettering
ad64e3e8d6
Merge pull request #19942 from wat-ze-hex/socket-bind-ip-proto-2021-06-10
dbus: extend SocktBind{Allow|Deny}= with ip proto
2021-06-16 00:24:54 +02:00
Frantisek Sumsal
e7848266da test: add a testcase for issue #19895 2021-06-15 23:18:06 +01:00
Lennart Poettering
8f12ee7178
Merge pull request #19896 from keszybz/systemd-efi-options-hint
Print hint in bootctl when systemd-efi-options output is out-of-date
2021-06-16 00:03:08 +02:00
Lennart Poettering
fe1f0129e1
Merge pull request #19943 from poettering/v249rc1-rep
prepare v249-rc1
2021-06-16 00:02:31 +02:00
Julia Kartseva
a5f19be8b1 dbus: update SocketBind{Allow|Deny}= doc 2021-06-15 13:51:33 -07:00
Julia Kartseva
4883a04fe1 dbus: extend SocktBind{Allow|Deny}= with ip proto
Support filtering by ip protocol (L4) in SocketBind{Allow|Deny}=
properties.
The signature of dbus methods must be finalized before new release is
cut, hence reserve a parameter for ip protocol.
Implementation will follow.

Closes https://github.com/systemd/systemd/issues/19891
2021-06-15 13:45:20 -07:00
Zbigniew Jędrzejewski-Szmek
ad2d6880ea bootctl: print SystemdOptions from efivarfs if newer than our cache
The logic is that if the options are updated after boot, we *don't* use
the new value. But we still want to print out the changed contents in
bootctl as to not confuse people.

Fixes #19597.
Also https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=988450.

$ build/bootctl systemd-efi-options
quiet
Note: SystemdOptions EFI variable has been modified since boot. New value: debug

The hint is printed to stderr, so scripts should not be confused.
2021-06-15 22:01:42 +02:00
Zbigniew Jędrzejewski-Szmek
c67bd42b71 Inline some inerator variables 2021-06-15 22:01:42 +02:00
Zbigniew Jędrzejewski-Szmek
e6f055cbc4 basic/efivars: replace dynanamic creation of efivar names with static strings
Creating those string dynamically at runtime is slow and unnecessary.
Let's use static strings with a bit of macro magic and the let the compiler
coalesce as much as possible.

$ size build/src/shared/libsystemd-shared-248.so{.old,}
   text	   data	    bss	    dec	    hex	filename
2813453	  94572	   4584	2912609	 2c7161	build/src/shared/libsystemd-shared-248.so.old
2812309	  94564	   4584	2911457	 2c6ce1	build/src/shared/libsystemd-shared-248.so

A nice side-effect is that the same form is used everywhere, so it's easier to
figure out all variables that are used, and where each specific variable is
used.

C.f. 2b0445262ad9be2a9bf49956ab8e886ea2e48a0a.

Note: 'const char *foo = alloca(…);' seems OK. Our coding style document and
alloca(3) only warn against using alloca() in function invocations. Declaring
both stack variable and alloca at the same time should be fine: no matter in
which order they happen, i.e. if the pointer variable is above the contents,
or the contents are above the pointer, or even if the pointer is elided by the
compiler, everything should be fine.
2021-06-15 22:01:42 +02:00
Zbigniew Jędrzejewski-Szmek
7c7683f36c sd-id128: add SD_ID128_MAKE_UUID_STR
It's like SD_ID128_MAKE_STR, but with hyphens.
2021-06-15 22:01:39 +02:00
Lennart Poettering
ca1e8584c6 meson: bump version for 249-rc1 release 2021-06-15 21:59:44 +02:00
Lennart Poettering
558a9af70f hwbd: run "ninja -C build update-hwdb" again 2021-06-15 21:59:44 +02:00
31 changed files with 1027 additions and 532 deletions

53
NEWS
View File

@ -125,6 +125,12 @@ CHANGES WITH 249 in spe:
gained a new parameter --uuid that prints the UUID for each generated gained a new parameter --uuid that prints the UUID for each generated
uevent. uevent.
* sd-device also gained new APIs sd_device_new_from_ifname() and
sd_device_new_from_ifindex() for allocating an sd-device object for
the specified network interface. The former accepts an interface name
(either a primary or an alternative name), the latter an interface
index.
* The native Journal protocol has been documented. Clients may talk * The native Journal protocol has been documented. Clients may talk
this as alternative to the classic BSD syslog protocol for locally this as alternative to the classic BSD syslog protocol for locally
delivering log records to the Journal. The protocol has been stable delivering log records to the Journal. The protocol has been stable
@ -463,33 +469,42 @@ CHANGES WITH 249 in spe:
* The WakeOnLan= setting in .link files now accepts a list of flags * The WakeOnLan= setting in .link files now accepts a list of flags
instead of a single one, to configure multiple wake-on-LAN policies. instead of a single one, to configure multiple wake-on-LAN policies.
* User-space defined tracepoints (USDT) have been added to udev at
strategic locations. This is useful for tracing udev behaviour and
performance with bpftrace and similar tools.
* systemd-journald-upload gained a new NetworkTimeoutSec= option for
setting a network timeout time.
Contributions from: Aakash Singh, adrian5, Alexander Sverdlin, Contributions from: Aakash Singh, adrian5, Alexander Sverdlin,
alexlzhu, Allen Webb, Alvin Šipraga, Alyssa Ross, Anita Zhang, asavah, alexlzhu, Allen Webb, Alvin Šipraga, Alyssa Ross, Anita Zhang, asavah,
Balint Reczey, Bertrand Jacquin, borna-blazevic, caoxia2008cxx, Balint Reczey, Bertrand Jacquin, borna-blazevic, caoxia2008cxx,
Carlo Teubner, Christian Göttsche, Christian Hesse, Dan Streetman, Carlo Teubner, Christian Göttsche, Christian Hesse, Daniel Schaefer,
David Santamaría Rogado, David Tardon, Deepak Rawat, Dan Streetman, David Santamaría Rogado, David Tardon, Deepak Rawat,
Dimitri John Ledkov, ei-ke, Emilio Herrera, Emil Renner Berthing, Dimitri John Ledkov, ei-ke, Emilio Herrera, Emil Renner Berthing,
Flos Lonicerae, Franck Bui, Francois Gervais, Frantisek Sumsal, Flos Lonicerae, Franck Bui, Francois Gervais, Frantisek Sumsal,
Gibeom Gwon, gitm0, Hans de Goede, Harsh Barsaiyan, Henri Chain, Gibeom Gwon, gitm0, Hans de Goede, Harsh Barsaiyan, Henri Chain,
Igor Zhbanov, imayoda, Jakub Warczarek, James Buren, Jan Janssen, Igor Zhbanov, imayoda, Jakub Warczarek, James Buren, Jan Janssen,
Jan Synacek, Jason Francis, Jérôme Carretero, jiangchuangang, Jan Synacek, Jason Francis, Jayanth Ananthapadmanaban,
Joerg Behrmann, Jóhann B. Guðmundsson, Jörg Deckert, Jörg Thalheim, Jérôme Carretero, jiangchuangang, Joerg Behrmann,
Julia Kartseva, Kai-Heng Feng, Khem Raj, KoyamaSohei, Jóhann B. Guðmundsson, Jörg Deckert, Jörg Thalheim, Julia Kartseva,
Lennart Poettering, LetzteInstanz, Luca Adrian L, Luca Boccassi, Kai-Heng Feng, Khem Raj, KoyamaSohei, Lennart Poettering,
Lucas Magasweran, Mantas Mikulėnas, Marco Antonio Mauro, Mark Wielaard, LetzteInstanz, Luca Adrian L, Luca Boccassi, Lucas Magasweran,
Masahiro Matsuya, Michael Catanzaro, Mike Kazantsev, Milan, Mantas Mikulėnas, Marco Antonio Mauro, Mark Wielaard, Masahiro Matsuya,
Miroslav Suchý, Morten Linderud, Noah Meyerhans, Oleg Popov, Matt Johnston, Michael Catanzaro, Michal Koutný, Michal Sekletár,
Olle Lundberg, Ondrej Kozina, Perry.Yuan, Peter Hutterer, Mike Kazantsev, Milan, Miroslav Suchý, Morten Linderud, nerdopolis,
Peter Kjellerstedt, Peter Morrow, Phaedrus Leeds, Roman Beranek, nl6720, Noah Meyerhans, Oleg Popov, Olle Lundberg, Ondrej Kozina,
Roshan Shariff, Ryan Hendrickson, Samuel BF, scootergrisen, Perry.Yuan, Peter Hutterer, Peter Kjellerstedt, Peter Morrow,
Sebastian Blunt, Seong-ho Cho, Sergey Bugaev, Sevan Janiyan, Sibo Dong, Phaedrus Leeds, Roman Beranek, Roshan Shariff, Ryan Hendrickson,
simmon, Simon Watts, Srinidhi Kaushik, Štěpán Němec, Steve Bonds, Samuel BF, scootergrisen, Sebastian Blunt, Seong-ho Cho, Sergey Bugaev,
Susant Sahani, sverdlin, syyhao1994, Takashi Sakamoto, Topi Miettinen, Sevan Janiyan, Sibo Dong, simmon, Simon Watts, Srinidhi Kaushik,
tramsay, Uwe Kleine-König, Viktor Mihajlovski, Vincent Dechenaux, Štěpán Němec, Steve Bonds, Susant Sahani, sverdlin, syyhao1994,
Vito Caputo, William A. Kennington III, Yangyang Shen, Yegor Alexeyev, Takashi Sakamoto, Topi Miettinen, tramsay, Uwe Kleine-König,
Yi Gao, Yu Watanabe, Zbigniew Jędrzejewski-Szmek, zsien, наб Viktor Mihajlovski, Vincent Dechenaux, Vito Caputo,
William A. Kennington III, Yangyang Shen, Yegor Alexeyev, Yi Gao,
Yu Watanabe, Zbigniew Jędrzejewski-Szmek, zsien, наб
— Berlin, 2021-06-XX — Berlin, 2021-06-15
CHANGES WITH 248: CHANGES WITH 248:

View File

@ -36830,6 +36830,9 @@ OUI:00BD27*
OUI:00BD3A* OUI:00BD3A*
ID_OUI_FROM_DATABASE=Nokia Corporation ID_OUI_FROM_DATABASE=Nokia Corporation
OUI:00BD3E*
ID_OUI_FROM_DATABASE=Vizio, Inc
OUI:00BD82* OUI:00BD82*
ID_OUI_FROM_DATABASE=Shenzhen YOUHUA Technology Co., Ltd ID_OUI_FROM_DATABASE=Shenzhen YOUHUA Technology Co., Ltd
@ -37685,6 +37688,9 @@ OUI:00CD90*
OUI:00CDFE* OUI:00CDFE*
ID_OUI_FROM_DATABASE=Apple, Inc. ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:00CE30*
ID_OUI_FROM_DATABASE=Express LUCK Industrial Ltd.
OUI:00CF1C* OUI:00CF1C*
ID_OUI_FROM_DATABASE=Communication Machinery Corporation ID_OUI_FROM_DATABASE=Communication Machinery Corporation
@ -40716,7 +40722,7 @@ OUI:080041*
ID_OUI_FROM_DATABASE=RACAL-MILGO INFORMATION SYS.. ID_OUI_FROM_DATABASE=RACAL-MILGO INFORMATION SYS..
OUI:080042* OUI:080042*
ID_OUI_FROM_DATABASE=JAPAN MACNICS CORP. ID_OUI_FROM_DATABASE=MACNICA, Inc.
OUI:080043* OUI:080043*
ID_OUI_FROM_DATABASE=PIXEL COMPUTER INC. ID_OUI_FROM_DATABASE=PIXEL COMPUTER INC.
@ -43775,6 +43781,9 @@ OUI:141877*
OUI:1418C3* OUI:1418C3*
ID_OUI_FROM_DATABASE=Intel Corporate ID_OUI_FROM_DATABASE=Intel Corporate
OUI:141973*
ID_OUI_FROM_DATABASE=Beijing Yunyi Times Technology Co.,Ltd
OUI:141A51* OUI:141A51*
ID_OUI_FROM_DATABASE=Treetech Sistemas Digitais ID_OUI_FROM_DATABASE=Treetech Sistemas Digitais
@ -45458,6 +45467,9 @@ OUI:18E1CA*
OUI:18E1DE* OUI:18E1DE*
ID_OUI_FROM_DATABASE=Chengdu ChipIntelli Technology Co., Ltd ID_OUI_FROM_DATABASE=Chengdu ChipIntelli Technology Co., Ltd
OUI:18E215*
ID_OUI_FROM_DATABASE=Nokia
OUI:18E288* OUI:18E288*
ID_OUI_FROM_DATABASE=STT Condigi ID_OUI_FROM_DATABASE=STT Condigi
@ -48899,6 +48911,9 @@ OUI:2834A2*
OUI:283545* OUI:283545*
ID_OUI_FROM_DATABASE=SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD ID_OUI_FROM_DATABASE=SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD
OUI:2836132*
ID_OUI_FROM_DATABASE=Shenzhen HQVT TECHNOLOGY Co.,LTD
OUI:2836380* OUI:2836380*
ID_OUI_FROM_DATABASE=Knowles Electronics LLC ID_OUI_FROM_DATABASE=Knowles Electronics LLC
@ -53117,6 +53132,9 @@ OUI:3859F9*
OUI:385AA8* OUI:385AA8*
ID_OUI_FROM_DATABASE=Beijing Zhongdun Security Technology Development Co. ID_OUI_FROM_DATABASE=Beijing Zhongdun Security Technology Development Co.
OUI:385C76*
ID_OUI_FROM_DATABASE=PLANTRONICS, INC.
OUI:385F66* OUI:385F66*
ID_OUI_FROM_DATABASE=Cisco SPVTG ID_OUI_FROM_DATABASE=Cisco SPVTG
@ -55412,6 +55430,9 @@ OUI:408D5C*
OUI:408F9D* OUI:408F9D*
ID_OUI_FROM_DATABASE=Juniper Networks ID_OUI_FROM_DATABASE=Juniper Networks
OUI:409151*
ID_OUI_FROM_DATABASE=Espressif Inc.
OUI:409505* OUI:409505*
ID_OUI_FROM_DATABASE=ACOINFO TECHNOLOGY CO.,LTD ID_OUI_FROM_DATABASE=ACOINFO TECHNOLOGY CO.,LTD
@ -56150,6 +56171,9 @@ OUI:4447CC*
OUI:444891* OUI:444891*
ID_OUI_FROM_DATABASE=HDMI Licensing, LLC ID_OUI_FROM_DATABASE=HDMI Licensing, LLC
OUI:4448B9*
ID_OUI_FROM_DATABASE=MitraStar Technology Corp.
OUI:4448C1* OUI:4448C1*
ID_OUI_FROM_DATABASE=Hewlett Packard Enterprise ID_OUI_FROM_DATABASE=Hewlett Packard Enterprise
@ -60212,6 +60236,9 @@ OUI:546C0E*
OUI:546D52* OUI:546D52*
ID_OUI_FROM_DATABASE=TOPVIEW OPTRONICS CORP. ID_OUI_FROM_DATABASE=TOPVIEW OPTRONICS CORP.
OUI:546F71*
ID_OUI_FROM_DATABASE=uAvionix Corporation
OUI:5471DD* OUI:5471DD*
ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd. ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
@ -60674,6 +60701,9 @@ OUI:54EDA3*
OUI:54EE75* OUI:54EE75*
ID_OUI_FROM_DATABASE=Wistron InfoComm(Kunshan)Co.,Ltd. ID_OUI_FROM_DATABASE=Wistron InfoComm(Kunshan)Co.,Ltd.
OUI:54EF33*
ID_OUI_FROM_DATABASE=SHENZHEN BILIAN ELECTRONIC CO.LTD
OUI:54EF44* OUI:54EF44*
ID_OUI_FROM_DATABASE=Lumi United Technology Co., Ltd ID_OUI_FROM_DATABASE=Lumi United Technology Co., Ltd
@ -62003,6 +62033,9 @@ OUI:5C80B6*
OUI:5C81A7* OUI:5C81A7*
ID_OUI_FROM_DATABASE=Network Devices Pty Ltd ID_OUI_FROM_DATABASE=Network Devices Pty Ltd
OUI:5C8382*
ID_OUI_FROM_DATABASE=Nokia
OUI:5C838F* OUI:5C838F*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc ID_OUI_FROM_DATABASE=Cisco Systems, Inc
@ -63032,6 +63065,9 @@ OUI:608E08*
OUI:608F5C* OUI:608F5C*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:608FA4*
ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
OUI:609084* OUI:609084*
ID_OUI_FROM_DATABASE=DSSD Inc ID_OUI_FROM_DATABASE=DSSD Inc
@ -63722,6 +63758,9 @@ OUI:64317E*
OUI:6432A8* OUI:6432A8*
ID_OUI_FROM_DATABASE=Intel Corporate ID_OUI_FROM_DATABASE=Intel Corporate
OUI:6433B50*
ID_OUI_FROM_DATABASE=Duomondi International Development Co., Ltd.
OUI:6433B51* OUI:6433B51*
ID_OUI_FROM_DATABASE=Huaqin Telecom Technology Co.,Ltd. ID_OUI_FROM_DATABASE=Huaqin Telecom Technology Co.,Ltd.
@ -63731,21 +63770,39 @@ OUI:6433B52*
OUI:6433B53* OUI:6433B53*
ID_OUI_FROM_DATABASE=Wingtech Mobile Communications Co.,Ltd ID_OUI_FROM_DATABASE=Wingtech Mobile Communications Co.,Ltd
OUI:6433B54*
ID_OUI_FROM_DATABASE=Eagle Eye Networks, Inc
OUI:6433B55* OUI:6433B55*
ID_OUI_FROM_DATABASE=Revo Smart Technologies co.,limited ID_OUI_FROM_DATABASE=Revo Smart Technologies co.,limited
OUI:6433B56*
ID_OUI_FROM_DATABASE=MICROIT SRL
OUI:6433B57* OUI:6433B57*
ID_OUI_FROM_DATABASE=ABB Electrification Smart Power (ELSP) ID_OUI_FROM_DATABASE=ABB Electrification Smart Power (ELSP)
OUI:6433B58* OUI:6433B58*
ID_OUI_FROM_DATABASE=LACO Technologies ID_OUI_FROM_DATABASE=LACO Technologies
OUI:6433B59*
ID_OUI_FROM_DATABASE=Annapurna labs
OUI:6433B5A* OUI:6433B5A*
ID_OUI_FROM_DATABASE=Hometek Eletronics Co., Ltd ID_OUI_FROM_DATABASE=Hometek Eletronics Co., Ltd
OUI:6433B5B* OUI:6433B5B*
ID_OUI_FROM_DATABASE=electroCore Inc. ID_OUI_FROM_DATABASE=electroCore Inc.
OUI:6433B5C*
ID_OUI_FROM_DATABASE=Geksacon
OUI:6433B5D*
ID_OUI_FROM_DATABASE=IIYAMA CORPORATION
OUI:6433B5E*
ID_OUI_FROM_DATABASE=University of Texas at Austin
OUI:6433DB* OUI:6433DB*
ID_OUI_FROM_DATABASE=Texas Instruments ID_OUI_FROM_DATABASE=Texas Instruments
@ -65768,6 +65825,9 @@ OUI:6C8FB5*
OUI:6C90B1* OUI:6C90B1*
ID_OUI_FROM_DATABASE=SanLogic Inc ID_OUI_FROM_DATABASE=SanLogic Inc
OUI:6C9106*
ID_OUI_FROM_DATABASE=Private
OUI:6C92BF* OUI:6C92BF*
ID_OUI_FROM_DATABASE=Inspur Electronic Information Industry Co.,Ltd. ID_OUI_FROM_DATABASE=Inspur Electronic Information Industry Co.,Ltd.
@ -79637,6 +79697,9 @@ OUI:743170*
OUI:743256* OUI:743256*
ID_OUI_FROM_DATABASE=NT-ware Systemprg GmbH ID_OUI_FROM_DATABASE=NT-ware Systemprg GmbH
OUI:7432C2*
ID_OUI_FROM_DATABASE=KYOLIS
OUI:743400* OUI:743400*
ID_OUI_FROM_DATABASE=MTG Co., Ltd. ID_OUI_FROM_DATABASE=MTG Co., Ltd.
@ -79802,6 +79865,9 @@ OUI:745C4B*
OUI:745C9F* OUI:745C9F*
ID_OUI_FROM_DATABASE=TCT mobile ltd ID_OUI_FROM_DATABASE=TCT mobile ltd
OUI:745CFA*
ID_OUI_FROM_DATABASE=Shenzhen Shunrui Gaojie Technology Co., Ltd.
OUI:745D43* OUI:745D43*
ID_OUI_FROM_DATABASE=BSH Hausgeraete GmbH ID_OUI_FROM_DATABASE=BSH Hausgeraete GmbH
@ -80796,7 +80862,7 @@ OUI:78521A*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:78524A* OUI:78524A*
ID_OUI_FROM_DATABASE=Ensenso GmbH ID_OUI_FROM_DATABASE=Optonic GmbH
OUI:785262* OUI:785262*
ID_OUI_FROM_DATABASE=Shenzhen Hojy Software Co., Ltd. ID_OUI_FROM_DATABASE=Shenzhen Hojy Software Co., Ltd.
@ -80906,6 +80972,9 @@ OUI:78719C*
OUI:78725D* OUI:78725D*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc ID_OUI_FROM_DATABASE=Cisco Systems, Inc
OUI:7876D9*
ID_OUI_FROM_DATABASE=EXARA Group
OUI:787A6F* OUI:787A6F*
ID_OUI_FROM_DATABASE=Juice Technology AG ID_OUI_FROM_DATABASE=Juice Technology AG
@ -82415,6 +82484,9 @@ OUI:7CBF88*
OUI:7CBFB1* OUI:7CBFB1*
ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
OUI:7CC177*
ID_OUI_FROM_DATABASE=INGRAM MICRO SERVICES
OUI:7CC255* OUI:7CC255*
ID_OUI_FROM_DATABASE=Super Micro Computer, Inc. ID_OUI_FROM_DATABASE=Super Micro Computer, Inc.
@ -85871,6 +85943,9 @@ OUI:8C1F640E0*
OUI:8C1F64101* OUI:8C1F64101*
ID_OUI_FROM_DATABASE=ASW-ATI Srl ID_OUI_FROM_DATABASE=ASW-ATI Srl
OUI:8C1F64128*
ID_OUI_FROM_DATABASE=YULISTA INTEGRATED SOLUTION
OUI:8C1F64135* OUI:8C1F64135*
ID_OUI_FROM_DATABASE=Yuval Fichman ID_OUI_FROM_DATABASE=Yuval Fichman
@ -85883,9 +85958,15 @@ OUI:8C1F64151*
OUI:8C1F64166* OUI:8C1F64166*
ID_OUI_FROM_DATABASE=Hikari Alphax Inc. ID_OUI_FROM_DATABASE=Hikari Alphax Inc.
OUI:8C1F64193*
ID_OUI_FROM_DATABASE=Sicon srl
OUI:8C1F6419C* OUI:8C1F6419C*
ID_OUI_FROM_DATABASE=Aton srl ID_OUI_FROM_DATABASE=Aton srl
OUI:8C1F641E3*
ID_OUI_FROM_DATABASE=WBNet
OUI:8C1F64204* OUI:8C1F64204*
ID_OUI_FROM_DATABASE=castcore ID_OUI_FROM_DATABASE=castcore
@ -85919,9 +86000,15 @@ OUI:8C1F642A5*
OUI:8C1F642C8* OUI:8C1F642C8*
ID_OUI_FROM_DATABASE=BRS Sistemas Eletrônicos ID_OUI_FROM_DATABASE=BRS Sistemas Eletrônicos
OUI:8C1F642E8*
ID_OUI_FROM_DATABASE=Sonora Network Solutions
OUI:8C1F642EF* OUI:8C1F642EF*
ID_OUI_FROM_DATABASE=Invisense AB ID_OUI_FROM_DATABASE=Invisense AB
OUI:8C1F642F5*
ID_OUI_FROM_DATABASE=Florida R&D Associates LLC
OUI:8C1F64304* OUI:8C1F64304*
ID_OUI_FROM_DATABASE=Jemac Sweden AB ID_OUI_FROM_DATABASE=Jemac Sweden AB
@ -85937,6 +86024,9 @@ OUI:8C1F64391*
OUI:8C1F643A4* OUI:8C1F643A4*
ID_OUI_FROM_DATABASE=QLM Technology Ltd ID_OUI_FROM_DATABASE=QLM Technology Ltd
OUI:8C1F643B5*
ID_OUI_FROM_DATABASE=SVMS
OUI:8C1F643C4* OUI:8C1F643C4*
ID_OUI_FROM_DATABASE=NavSys Technology Inc. ID_OUI_FROM_DATABASE=NavSys Technology Inc.
@ -85991,6 +86081,9 @@ OUI:8C1F6472C*
OUI:8C1F6473D* OUI:8C1F6473D*
ID_OUI_FROM_DATABASE=NewAgeMicro ID_OUI_FROM_DATABASE=NewAgeMicro
OUI:8C1F6473F*
ID_OUI_FROM_DATABASE=UBISCALE
OUI:8C1F64768* OUI:8C1F64768*
ID_OUI_FROM_DATABASE=mapna group ID_OUI_FROM_DATABASE=mapna group
@ -86018,9 +86111,15 @@ OUI:8C1F64856*
OUI:8C1F64878* OUI:8C1F64878*
ID_OUI_FROM_DATABASE=Green Access Ltd ID_OUI_FROM_DATABASE=Green Access Ltd
OUI:8C1F648C2*
ID_OUI_FROM_DATABASE=Cirrus Systems, Inc.
OUI:8C1F64903* OUI:8C1F64903*
ID_OUI_FROM_DATABASE=Portrait Displays, Inc. ID_OUI_FROM_DATABASE=Portrait Displays, Inc.
OUI:8C1F6490E*
ID_OUI_FROM_DATABASE=Xacti Corporation
OUI:8C1F64918* OUI:8C1F64918*
ID_OUI_FROM_DATABASE=Abbott Diagnostics Technologies AS ID_OUI_FROM_DATABASE=Abbott Diagnostics Technologies AS
@ -86060,6 +86159,9 @@ OUI:8C1F64AA4*
OUI:8C1F64AAB* OUI:8C1F64AAB*
ID_OUI_FROM_DATABASE=BlueSword Intelligent Technology Co., Ltd. ID_OUI_FROM_DATABASE=BlueSword Intelligent Technology Co., Ltd.
OUI:8C1F64AB5*
ID_OUI_FROM_DATABASE=JUSTMORPH PTE. LTD.
OUI:8C1F64AE1* OUI:8C1F64AE1*
ID_OUI_FROM_DATABASE=YUYAMA MFG Co.,Ltd ID_OUI_FROM_DATABASE=YUYAMA MFG Co.,Ltd
@ -86084,6 +86186,9 @@ OUI:8C1F64BC0*
OUI:8C1F64C03* OUI:8C1F64C03*
ID_OUI_FROM_DATABASE=Abiman Engineering ID_OUI_FROM_DATABASE=Abiman Engineering
OUI:8C1F64C1F*
ID_OUI_FROM_DATABASE=Esys Srl
OUI:8C1F64C2F* OUI:8C1F64C2F*
ID_OUI_FROM_DATABASE=Power Electronics Espana, S.L. ID_OUI_FROM_DATABASE=Power Electronics Espana, S.L.
@ -86102,6 +86207,12 @@ OUI:8C1F64CF3*
OUI:8C1F64D29* OUI:8C1F64D29*
ID_OUI_FROM_DATABASE=Secure Bits ID_OUI_FROM_DATABASE=Secure Bits
OUI:8C1F64D3C*
ID_OUI_FROM_DATABASE=KIB Energo LLC
OUI:8C1F64D4A*
ID_OUI_FROM_DATABASE=Caproc Oy
OUI:8C1F64D7E* OUI:8C1F64D7E*
ID_OUI_FROM_DATABASE=Thales Belgium ID_OUI_FROM_DATABASE=Thales Belgium
@ -86117,9 +86228,15 @@ OUI:8C1F64E5C*
OUI:8C1F64EAC* OUI:8C1F64EAC*
ID_OUI_FROM_DATABASE=Miracle Healthcare, Inc. ID_OUI_FROM_DATABASE=Miracle Healthcare, Inc.
OUI:8C1F64EE8*
ID_OUI_FROM_DATABASE=Global Organ Group B.V.
OUI:8C1F64F41* OUI:8C1F64F41*
ID_OUI_FROM_DATABASE=AUTOMATIZACION Y CONECTIVIDAD SA DE CV ID_OUI_FROM_DATABASE=AUTOMATIZACION Y CONECTIVIDAD SA DE CV
OUI:8C1F64F86*
ID_OUI_FROM_DATABASE=INFOSTECH Co., Ltd.
OUI:8C1F64FD1* OUI:8C1F64FD1*
ID_OUI_FROM_DATABASE=Edgeware AB ID_OUI_FROM_DATABASE=Edgeware AB
@ -86276,6 +86393,9 @@ OUI:8C4962*
OUI:8C4AEE* OUI:8C4AEE*
ID_OUI_FROM_DATABASE=GIGA TMS INC ID_OUI_FROM_DATABASE=GIGA TMS INC
OUI:8C4B14*
ID_OUI_FROM_DATABASE=Espressif Inc.
OUI:8C4B59* OUI:8C4B59*
ID_OUI_FROM_DATABASE=3D Imaging & Simulations Corp ID_OUI_FROM_DATABASE=3D Imaging & Simulations Corp
@ -88493,6 +88613,9 @@ OUI:94A1A2*
OUI:94A3CA* OUI:94A3CA*
ID_OUI_FROM_DATABASE=KonnectONE, LLC ID_OUI_FROM_DATABASE=KonnectONE, LLC
OUI:94A408*
ID_OUI_FROM_DATABASE=Shenzhen Trolink Technology CO, LTD
OUI:94A40C* OUI:94A40C*
ID_OUI_FROM_DATABASE=Diehl Metering GmbH ID_OUI_FROM_DATABASE=Diehl Metering GmbH
@ -93071,6 +93194,9 @@ OUI:A4DEC9*
OUI:A4E0E6* OUI:A4E0E6*
ID_OUI_FROM_DATABASE=FILIZOLA S.A. PESAGEM E AUTOMACAO ID_OUI_FROM_DATABASE=FILIZOLA S.A. PESAGEM E AUTOMACAO
OUI:A4E11A*
ID_OUI_FROM_DATABASE=Juniper Networks
OUI:A4E31B* OUI:A4E31B*
ID_OUI_FROM_DATABASE=Nokia ID_OUI_FROM_DATABASE=Nokia
@ -95801,6 +95927,9 @@ OUI:B0E892*
OUI:B0E97E* OUI:B0E97E*
ID_OUI_FROM_DATABASE=Advanced Micro Peripherals ID_OUI_FROM_DATABASE=Advanced Micro Peripherals
OUI:B0E9FE*
ID_OUI_FROM_DATABASE=Woan Technology (Shenzhen) Co., Ltd.
OUI:B0EABC* OUI:B0EABC*
ID_OUI_FROM_DATABASE=ASKEY COMPUTER CORP ID_OUI_FROM_DATABASE=ASKEY COMPUTER CORP
@ -99956,6 +100085,9 @@ OUI:C46DF1*
OUI:C46E1F* OUI:C46E1F*
ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD.
OUI:C46E33*
ID_OUI_FROM_DATABASE=Zhong Ge Smart Technology Co., Ltd.
OUI:C46E7B* OUI:C46E7B*
ID_OUI_FROM_DATABASE=SHENZHEN RF-LINK TECHNOLOGY CO.,LTD. ID_OUI_FROM_DATABASE=SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.
@ -101069,6 +101201,9 @@ OUI:C894BB*
OUI:C894D2* OUI:C894D2*
ID_OUI_FROM_DATABASE=Jiangsu Datang Electronic Products Co., Ltd ID_OUI_FROM_DATABASE=Jiangsu Datang Electronic Products Co., Ltd
OUI:C89665*
ID_OUI_FROM_DATABASE=Microsoft Corporation
OUI:C8979F* OUI:C8979F*
ID_OUI_FROM_DATABASE=Nokia Corporation ID_OUI_FROM_DATABASE=Nokia Corporation
@ -104468,6 +104603,9 @@ OUI:D4E33F*
OUI:D4E6B7* OUI:D4E6B7*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:D4E853*
ID_OUI_FROM_DATABASE=Hangzhou Hikvision Digital Technology Co.,Ltd.
OUI:D4E880* OUI:D4E880*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc ID_OUI_FROM_DATABASE=Cisco Systems, Inc

View File

@ -246,6 +246,9 @@ acpi:PIXA*:
acpi:PNSO*: acpi:PNSO*:
ID_VENDOR_FROM_DATABASE=Pensando Systems, Inc. ID_VENDOR_FROM_DATABASE=Pensando Systems, Inc.
acpi:PURI*:
ID_VENDOR_FROM_DATABASE=Purism SPC
acpi:QCOM*: acpi:QCOM*:
ID_VENDOR_FROM_DATABASE=Qualcomm Inc ID_VENDOR_FROM_DATABASE=Qualcomm Inc
@ -2001,6 +2004,9 @@ acpi:DLK*:
acpi:DLL*: acpi:DLL*:
ID_VENDOR_FROM_DATABASE=Dell Inc ID_VENDOR_FROM_DATABASE=Dell Inc
acpi:DLM*:
ID_VENDOR_FROM_DATABASE=DLOGIC Ltd.
acpi:DLO*: acpi:DLO*:
ID_VENDOR_FROM_DATABASE=Shenzhen Dlodlo Technologies Co., Ltd. ID_VENDOR_FROM_DATABASE=Shenzhen Dlodlo Technologies Co., Ltd.
@ -2388,6 +2394,9 @@ acpi:EMK*:
acpi:EMO*: acpi:EMO*:
ID_VENDOR_FROM_DATABASE=ELMO COMPANY, LIMITED ID_VENDOR_FROM_DATABASE=ELMO COMPANY, LIMITED
acpi:EMR*:
ID_VENDOR_FROM_DATABASE=ICC Intelligent Platforms GmbH
acpi:EMU*: acpi:EMU*:
ID_VENDOR_FROM_DATABASE=Emulex Corporation ID_VENDOR_FROM_DATABASE=Emulex Corporation
@ -2766,6 +2775,9 @@ acpi:FTW*:
acpi:FUJ*: acpi:FUJ*:
ID_VENDOR_FROM_DATABASE=Fujitsu Ltd ID_VENDOR_FROM_DATABASE=Fujitsu Ltd
acpi:FUL*:
ID_VENDOR_FROM_DATABASE=Fun Technology Innovation INC.
acpi:FUN*: acpi:FUN*:
ID_VENDOR_FROM_DATABASE=sisel muhendislik ID_VENDOR_FROM_DATABASE=sisel muhendislik
@ -3522,6 +3534,9 @@ acpi:INZ*:
acpi:IOA*: acpi:IOA*:
ID_VENDOR_FROM_DATABASE=CRE Technology Corporation ID_VENDOR_FROM_DATABASE=CRE Technology Corporation
acpi:IOC*:
ID_VENDOR_FROM_DATABASE=Guangxi Century Innovation Display Electronics Co., Ltd
acpi:IOD*: acpi:IOD*:
ID_VENDOR_FROM_DATABASE=I-O Data Device Inc ID_VENDOR_FROM_DATABASE=I-O Data Device Inc
@ -4005,6 +4020,9 @@ acpi:LCM*:
acpi:LCN*: acpi:LCN*:
ID_VENDOR_FROM_DATABASE=LEXICON ID_VENDOR_FROM_DATABASE=LEXICON
acpi:LCP*:
ID_VENDOR_FROM_DATABASE=Silent Power Electronics GmbH
acpi:LCS*: acpi:LCS*:
ID_VENDOR_FROM_DATABASE=Longshine Electronics Company ID_VENDOR_FROM_DATABASE=Longshine Electronics Company
@ -4881,6 +4899,9 @@ acpi:NGC*:
acpi:NGS*: acpi:NGS*:
ID_VENDOR_FROM_DATABASE=A D S Exports ID_VENDOR_FROM_DATABASE=A D S Exports
acpi:NHC*:
ID_VENDOR_FROM_DATABASE=New H3C Technology Co., Ltd.
acpi:NHT*: acpi:NHT*:
ID_VENDOR_FROM_DATABASE=Vinci Labs ID_VENDOR_FROM_DATABASE=Vinci Labs
@ -5991,6 +6012,9 @@ acpi:SCD*:
acpi:SCE*: acpi:SCE*:
ID_VENDOR_FROM_DATABASE=Sun Corporation ID_VENDOR_FROM_DATABASE=Sun Corporation
acpi:SCG*:
ID_VENDOR_FROM_DATABASE=Seco S.p.A.
acpi:SCH*: acpi:SCH*:
ID_VENDOR_FROM_DATABASE=Schlumberger Cards ID_VENDOR_FROM_DATABASE=Schlumberger Cards

View File

@ -1,5 +1,5 @@
--- 20-acpi-vendor.hwdb.base 2021-06-09 11:42:38.243878904 +0200 --- 20-acpi-vendor.hwdb.base 2021-06-15 21:57:03.178869619 +0200
+++ 20-acpi-vendor.hwdb 2021-06-09 11:42:38.251878816 +0200 +++ 20-acpi-vendor.hwdb 2021-06-15 21:57:03.185869634 +0200
@@ -3,6 +3,8 @@ @@ -3,6 +3,8 @@
# Data imported from: # Data imported from:
# https://uefi.org/uefi-pnp-export # https://uefi.org/uefi-pnp-export
@ -19,7 +19,7 @@
acpi:AMDI*: acpi:AMDI*:
ID_VENDOR_FROM_DATABASE=AMD ID_VENDOR_FROM_DATABASE=AMD
@@ -316,6 +315,9 @@ @@ -319,6 +318,9 @@
acpi:AAA*: acpi:AAA*:
ID_VENDOR_FROM_DATABASE=Avolites Ltd ID_VENDOR_FROM_DATABASE=Avolites Ltd
@ -29,7 +29,7 @@
acpi:AAE*: acpi:AAE*:
ID_VENDOR_FROM_DATABASE=Anatek Electronics Inc. ID_VENDOR_FROM_DATABASE=Anatek Electronics Inc.
@@ -343,6 +345,9 @@ @@ -346,6 +348,9 @@
acpi:ABO*: acpi:ABO*:
ID_VENDOR_FROM_DATABASE=D-Link Systems Inc ID_VENDOR_FROM_DATABASE=D-Link Systems Inc
@ -39,7 +39,7 @@
acpi:ABS*: acpi:ABS*:
ID_VENDOR_FROM_DATABASE=Abaco Systems, Inc. ID_VENDOR_FROM_DATABASE=Abaco Systems, Inc.
@@ -388,7 +393,7 @@ @@ -391,7 +396,7 @@
acpi:ACO*: acpi:ACO*:
ID_VENDOR_FROM_DATABASE=Allion Computer Inc. ID_VENDOR_FROM_DATABASE=Allion Computer Inc.
@ -48,7 +48,7 @@
ID_VENDOR_FROM_DATABASE=Aspen Tech Inc ID_VENDOR_FROM_DATABASE=Aspen Tech Inc
acpi:ACR*: acpi:ACR*:
@@ -661,6 +666,9 @@ @@ -664,6 +669,9 @@
acpi:AMT*: acpi:AMT*:
ID_VENDOR_FROM_DATABASE=AMT International Industry ID_VENDOR_FROM_DATABASE=AMT International Industry
@ -58,7 +58,7 @@
acpi:AMX*: acpi:AMX*:
ID_VENDOR_FROM_DATABASE=AMX LLC ID_VENDOR_FROM_DATABASE=AMX LLC
@@ -709,6 +717,9 @@ @@ -712,6 +720,9 @@
acpi:AOA*: acpi:AOA*:
ID_VENDOR_FROM_DATABASE=AOpen Inc. ID_VENDOR_FROM_DATABASE=AOpen Inc.
@ -68,7 +68,7 @@
acpi:AOE*: acpi:AOE*:
ID_VENDOR_FROM_DATABASE=Advanced Optics Electronics, Inc. ID_VENDOR_FROM_DATABASE=Advanced Optics Electronics, Inc.
@@ -718,6 +729,9 @@ @@ -721,6 +732,9 @@
acpi:AOT*: acpi:AOT*:
ID_VENDOR_FROM_DATABASE=Alcatel ID_VENDOR_FROM_DATABASE=Alcatel
@ -78,7 +78,7 @@
acpi:APC*: acpi:APC*:
ID_VENDOR_FROM_DATABASE=American Power Conversion ID_VENDOR_FROM_DATABASE=American Power Conversion
@@ -893,7 +907,7 @@ @@ -896,7 +910,7 @@
ID_VENDOR_FROM_DATABASE=ALPS ALPINE CO., LTD. ID_VENDOR_FROM_DATABASE=ALPS ALPINE CO., LTD.
acpi:AUO*: acpi:AUO*:
@ -87,7 +87,7 @@
acpi:AUR*: acpi:AUR*:
ID_VENDOR_FROM_DATABASE=Aureal Semiconductor ID_VENDOR_FROM_DATABASE=Aureal Semiconductor
@@ -973,6 +987,9 @@ @@ -976,6 +990,9 @@
acpi:AXE*: acpi:AXE*:
ID_VENDOR_FROM_DATABASE=Axell Corporation ID_VENDOR_FROM_DATABASE=Axell Corporation
@ -97,7 +97,7 @@
acpi:AXI*: acpi:AXI*:
ID_VENDOR_FROM_DATABASE=American Magnetics ID_VENDOR_FROM_DATABASE=American Magnetics
@@ -1123,6 +1140,9 @@ @@ -1126,6 +1143,9 @@
acpi:BML*: acpi:BML*:
ID_VENDOR_FROM_DATABASE=BIOMED Lab ID_VENDOR_FROM_DATABASE=BIOMED Lab
@ -107,7 +107,7 @@
acpi:BMS*: acpi:BMS*:
ID_VENDOR_FROM_DATABASE=BIOMEDISYS ID_VENDOR_FROM_DATABASE=BIOMEDISYS
@@ -1135,6 +1155,9 @@ @@ -1138,6 +1158,9 @@
acpi:BNO*: acpi:BNO*:
ID_VENDOR_FROM_DATABASE=Bang & Olufsen ID_VENDOR_FROM_DATABASE=Bang & Olufsen
@ -117,7 +117,7 @@
acpi:BNS*: acpi:BNS*:
ID_VENDOR_FROM_DATABASE=Boulder Nonlinear Systems ID_VENDOR_FROM_DATABASE=Boulder Nonlinear Systems
@@ -1378,6 +1401,9 @@ @@ -1381,6 +1404,9 @@
acpi:CHA*: acpi:CHA*:
ID_VENDOR_FROM_DATABASE=Chase Research PLC ID_VENDOR_FROM_DATABASE=Chase Research PLC
@ -127,7 +127,7 @@
acpi:CHD*: acpi:CHD*:
ID_VENDOR_FROM_DATABASE=ChangHong Electric Co.,Ltd ID_VENDOR_FROM_DATABASE=ChangHong Electric Co.,Ltd
@@ -1540,6 +1566,9 @@ @@ -1543,6 +1569,9 @@
acpi:COD*: acpi:COD*:
ID_VENDOR_FROM_DATABASE=CODAN Pty. Ltd. ID_VENDOR_FROM_DATABASE=CODAN Pty. Ltd.
@ -137,7 +137,7 @@
acpi:COI*: acpi:COI*:
ID_VENDOR_FROM_DATABASE=Codec Inc. ID_VENDOR_FROM_DATABASE=Codec Inc.
@@ -1949,7 +1978,7 @@ @@ -1952,7 +1981,7 @@
ID_VENDOR_FROM_DATABASE=Dragon Information Technology ID_VENDOR_FROM_DATABASE=Dragon Information Technology
acpi:DJE*: acpi:DJE*:
@ -146,7 +146,7 @@
acpi:DJP*: acpi:DJP*:
ID_VENDOR_FROM_DATABASE=Maygay Machines, Ltd ID_VENDOR_FROM_DATABASE=Maygay Machines, Ltd
@@ -2284,6 +2313,9 @@ @@ -2290,6 +2319,9 @@
acpi:EIN*: acpi:EIN*:
ID_VENDOR_FROM_DATABASE=Elegant Invention ID_VENDOR_FROM_DATABASE=Elegant Invention
@ -156,7 +156,7 @@
acpi:EKA*: acpi:EKA*:
ID_VENDOR_FROM_DATABASE=MagTek Inc. ID_VENDOR_FROM_DATABASE=MagTek Inc.
@@ -2545,6 +2577,9 @@ @@ -2554,6 +2586,9 @@
acpi:FCG*: acpi:FCG*:
ID_VENDOR_FROM_DATABASE=First International Computer Ltd ID_VENDOR_FROM_DATABASE=First International Computer Ltd
@ -166,7 +166,7 @@
acpi:FCS*: acpi:FCS*:
ID_VENDOR_FROM_DATABASE=Focus Enhancements, Inc. ID_VENDOR_FROM_DATABASE=Focus Enhancements, Inc.
@@ -2918,7 +2953,7 @@ @@ -2930,7 +2965,7 @@
ID_VENDOR_FROM_DATABASE=General Standards Corporation ID_VENDOR_FROM_DATABASE=General Standards Corporation
acpi:GSM*: acpi:GSM*:
@ -175,7 +175,7 @@
acpi:GSN*: acpi:GSN*:
ID_VENDOR_FROM_DATABASE=Grandstream Networks, Inc. ID_VENDOR_FROM_DATABASE=Grandstream Networks, Inc.
@@ -3019,6 +3054,9 @@ @@ -3031,6 +3066,9 @@
acpi:HEC*: acpi:HEC*:
ID_VENDOR_FROM_DATABASE=Hisense Electric Co., Ltd. ID_VENDOR_FROM_DATABASE=Hisense Electric Co., Ltd.
@ -185,7 +185,7 @@
acpi:HEL*: acpi:HEL*:
ID_VENDOR_FROM_DATABASE=Hitachi Micro Systems Europe Ltd ID_VENDOR_FROM_DATABASE=Hitachi Micro Systems Europe Ltd
@@ -3151,6 +3189,9 @@ @@ -3163,6 +3201,9 @@
acpi:HSD*: acpi:HSD*:
ID_VENDOR_FROM_DATABASE=HannStar Display Corp ID_VENDOR_FROM_DATABASE=HannStar Display Corp
@ -195,7 +195,7 @@
acpi:HSM*: acpi:HSM*:
ID_VENDOR_FROM_DATABASE=AT&T Microelectronics ID_VENDOR_FROM_DATABASE=AT&T Microelectronics
@@ -3274,6 +3315,9 @@ @@ -3286,6 +3327,9 @@
acpi:ICI*: acpi:ICI*:
ID_VENDOR_FROM_DATABASE=Infotek Communication Inc ID_VENDOR_FROM_DATABASE=Infotek Communication Inc
@ -205,7 +205,7 @@
acpi:ICM*: acpi:ICM*:
ID_VENDOR_FROM_DATABASE=Intracom SA ID_VENDOR_FROM_DATABASE=Intracom SA
@@ -3370,6 +3414,9 @@ @@ -3382,6 +3426,9 @@
acpi:IKE*: acpi:IKE*:
ID_VENDOR_FROM_DATABASE=Ikegami Tsushinki Co. Ltd. ID_VENDOR_FROM_DATABASE=Ikegami Tsushinki Co. Ltd.
@ -215,7 +215,7 @@
acpi:IKS*: acpi:IKS*:
ID_VENDOR_FROM_DATABASE=Ikos Systems Inc ID_VENDOR_FROM_DATABASE=Ikos Systems Inc
@@ -3415,6 +3462,9 @@ @@ -3427,6 +3474,9 @@
acpi:IMT*: acpi:IMT*:
ID_VENDOR_FROM_DATABASE=Inmax Technology Corporation ID_VENDOR_FROM_DATABASE=Inmax Technology Corporation
@ -225,7 +225,7 @@
acpi:INA*: acpi:INA*:
ID_VENDOR_FROM_DATABASE=Inventec Corporation ID_VENDOR_FROM_DATABASE=Inventec Corporation
@@ -3925,6 +3975,9 @@ @@ -3940,6 +3990,9 @@
acpi:LAN*: acpi:LAN*:
ID_VENDOR_FROM_DATABASE=Sodeman Lancom Inc ID_VENDOR_FROM_DATABASE=Sodeman Lancom Inc
@ -235,7 +235,7 @@
acpi:LAS*: acpi:LAS*:
ID_VENDOR_FROM_DATABASE=LASAT Comm. A/S ID_VENDOR_FROM_DATABASE=LASAT Comm. A/S
@@ -3970,6 +4023,9 @@ @@ -3988,6 +4041,9 @@
acpi:LED*: acpi:LED*:
ID_VENDOR_FROM_DATABASE=Long Engineering Design Inc ID_VENDOR_FROM_DATABASE=Long Engineering Design Inc
@ -245,7 +245,7 @@
acpi:LEG*: acpi:LEG*:
ID_VENDOR_FROM_DATABASE=Legerity, Inc ID_VENDOR_FROM_DATABASE=Legerity, Inc
@@ -3985,6 +4041,9 @@ @@ -4003,6 +4059,9 @@
acpi:LGC*: acpi:LGC*:
ID_VENDOR_FROM_DATABASE=Logic Ltd ID_VENDOR_FROM_DATABASE=Logic Ltd
@ -255,7 +255,7 @@
acpi:LGI*: acpi:LGI*:
ID_VENDOR_FROM_DATABASE=Logitech Inc ID_VENDOR_FROM_DATABASE=Logitech Inc
@@ -4039,6 +4098,9 @@ @@ -4057,6 +4116,9 @@
acpi:LND*: acpi:LND*:
ID_VENDOR_FROM_DATABASE=Land Computer Company Ltd ID_VENDOR_FROM_DATABASE=Land Computer Company Ltd
@ -265,7 +265,7 @@
acpi:LNK*: acpi:LNK*:
ID_VENDOR_FROM_DATABASE=Link Tech Inc ID_VENDOR_FROM_DATABASE=Link Tech Inc
@@ -4073,7 +4135,7 @@ @@ -4091,7 +4153,7 @@
ID_VENDOR_FROM_DATABASE=Design Technology ID_VENDOR_FROM_DATABASE=Design Technology
acpi:LPL*: acpi:LPL*:
@ -274,7 +274,7 @@
acpi:LSC*: acpi:LSC*:
ID_VENDOR_FROM_DATABASE=LifeSize Communications ID_VENDOR_FROM_DATABASE=LifeSize Communications
@@ -4249,6 +4311,9 @@ @@ -4267,6 +4329,9 @@
acpi:MCX*: acpi:MCX*:
ID_VENDOR_FROM_DATABASE=Millson Custom Solutions Inc. ID_VENDOR_FROM_DATABASE=Millson Custom Solutions Inc.
@ -284,7 +284,7 @@
acpi:MDA*: acpi:MDA*:
ID_VENDOR_FROM_DATABASE=Media4 Inc ID_VENDOR_FROM_DATABASE=Media4 Inc
@@ -4489,6 +4554,9 @@ @@ -4507,6 +4572,9 @@
acpi:MOM*: acpi:MOM*:
ID_VENDOR_FROM_DATABASE=Momentum Data Systems ID_VENDOR_FROM_DATABASE=Momentum Data Systems
@ -294,7 +294,7 @@
acpi:MOS*: acpi:MOS*:
ID_VENDOR_FROM_DATABASE=Moses Corporation ID_VENDOR_FROM_DATABASE=Moses Corporation
@@ -4717,6 +4785,9 @@ @@ -4735,6 +4803,9 @@
acpi:NAL*: acpi:NAL*:
ID_VENDOR_FROM_DATABASE=Network Alchemy ID_VENDOR_FROM_DATABASE=Network Alchemy
@ -304,7 +304,7 @@
acpi:NAT*: acpi:NAT*:
ID_VENDOR_FROM_DATABASE=NaturalPoint Inc. ID_VENDOR_FROM_DATABASE=NaturalPoint Inc.
@@ -5227,6 +5298,9 @@ @@ -5248,6 +5319,9 @@
acpi:PCX*: acpi:PCX*:
ID_VENDOR_FROM_DATABASE=PC Xperten ID_VENDOR_FROM_DATABASE=PC Xperten
@ -314,7 +314,7 @@
acpi:PDM*: acpi:PDM*:
ID_VENDOR_FROM_DATABASE=Psion Dacom Plc. ID_VENDOR_FROM_DATABASE=Psion Dacom Plc.
@@ -5290,9 +5364,6 @@ @@ -5311,9 +5385,6 @@
acpi:PHE*: acpi:PHE*:
ID_VENDOR_FROM_DATABASE=Philips Medical Systems Boeblingen GmbH ID_VENDOR_FROM_DATABASE=Philips Medical Systems Boeblingen GmbH
@ -324,7 +324,7 @@
acpi:PHL*: acpi:PHL*:
ID_VENDOR_FROM_DATABASE=Philips Consumer Electronics Company ID_VENDOR_FROM_DATABASE=Philips Consumer Electronics Company
@@ -5380,9 +5451,6 @@ @@ -5401,9 +5472,6 @@
acpi:PNL*: acpi:PNL*:
ID_VENDOR_FROM_DATABASE=Panelview, Inc. ID_VENDOR_FROM_DATABASE=Panelview, Inc.
@ -334,7 +334,7 @@
acpi:PNR*: acpi:PNR*:
ID_VENDOR_FROM_DATABASE=Planar Systems, Inc. ID_VENDOR_FROM_DATABASE=Planar Systems, Inc.
@@ -5518,15 +5586,9 @@ @@ -5539,15 +5607,9 @@
acpi:PTS*: acpi:PTS*:
ID_VENDOR_FROM_DATABASE=Plain Tree Systems Inc ID_VENDOR_FROM_DATABASE=Plain Tree Systems Inc
@ -350,7 +350,7 @@
acpi:PVG*: acpi:PVG*:
ID_VENDOR_FROM_DATABASE=Proview Global Co., Ltd ID_VENDOR_FROM_DATABASE=Proview Global Co., Ltd
@@ -5842,9 +5904,6 @@ @@ -5863,9 +5925,6 @@
acpi:RTI*: acpi:RTI*:
ID_VENDOR_FROM_DATABASE=Rancho Tech Inc ID_VENDOR_FROM_DATABASE=Rancho Tech Inc
@ -360,7 +360,7 @@
acpi:RTL*: acpi:RTL*:
ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Company Ltd ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Company Ltd
@@ -6010,9 +6069,6 @@ @@ -6034,9 +6093,6 @@
acpi:SEE*: acpi:SEE*:
ID_VENDOR_FROM_DATABASE=SeeColor Corporation ID_VENDOR_FROM_DATABASE=SeeColor Corporation
@ -370,7 +370,7 @@
acpi:SEI*: acpi:SEI*:
ID_VENDOR_FROM_DATABASE=Seitz & Associates Inc ID_VENDOR_FROM_DATABASE=Seitz & Associates Inc
@@ -6475,6 +6531,9 @@ @@ -6499,6 +6555,9 @@
acpi:SVD*: acpi:SVD*:
ID_VENDOR_FROM_DATABASE=SVD Computer ID_VENDOR_FROM_DATABASE=SVD Computer
@ -380,7 +380,7 @@
acpi:SVI*: acpi:SVI*:
ID_VENDOR_FROM_DATABASE=Sun Microsystems ID_VENDOR_FROM_DATABASE=Sun Microsystems
@@ -6559,6 +6618,9 @@ @@ -6583,6 +6642,9 @@
acpi:SZM*: acpi:SZM*:
ID_VENDOR_FROM_DATABASE=Shenzhen MTC Co., Ltd ID_VENDOR_FROM_DATABASE=Shenzhen MTC Co., Ltd
@ -390,7 +390,7 @@
acpi:TAA*: acpi:TAA*:
ID_VENDOR_FROM_DATABASE=Tandberg ID_VENDOR_FROM_DATABASE=Tandberg
@@ -6649,6 +6711,9 @@ @@ -6673,6 +6735,9 @@
acpi:TDG*: acpi:TDG*:
ID_VENDOR_FROM_DATABASE=Six15 Technologies ID_VENDOR_FROM_DATABASE=Six15 Technologies
@ -400,7 +400,7 @@
acpi:TDM*: acpi:TDM*:
ID_VENDOR_FROM_DATABASE=Tandem Computer Europe Inc ID_VENDOR_FROM_DATABASE=Tandem Computer Europe Inc
@@ -6691,6 +6756,9 @@ @@ -6715,6 +6780,9 @@
acpi:TEV*: acpi:TEV*:
ID_VENDOR_FROM_DATABASE=Televés, S.A. ID_VENDOR_FROM_DATABASE=Televés, S.A.
@ -410,7 +410,7 @@
acpi:TEZ*: acpi:TEZ*:
ID_VENDOR_FROM_DATABASE=Tech Source Inc. ID_VENDOR_FROM_DATABASE=Tech Source Inc.
@@ -6814,9 +6882,6 @@ @@ -6838,9 +6906,6 @@
acpi:TNC*: acpi:TNC*:
ID_VENDOR_FROM_DATABASE=TNC Industrial Company Ltd ID_VENDOR_FROM_DATABASE=TNC Industrial Company Ltd
@ -420,7 +420,7 @@
acpi:TNM*: acpi:TNM*:
ID_VENDOR_FROM_DATABASE=TECNIMAGEN SA ID_VENDOR_FROM_DATABASE=TECNIMAGEN SA
@@ -7123,14 +7188,14 @@ @@ -7147,14 +7212,14 @@
acpi:UNC*: acpi:UNC*:
ID_VENDOR_FROM_DATABASE=Unisys Corporation ID_VENDOR_FROM_DATABASE=Unisys Corporation
@ -441,7 +441,7 @@
acpi:UNI*: acpi:UNI*:
ID_VENDOR_FROM_DATABASE=Uniform Industry Corp. ID_VENDOR_FROM_DATABASE=Uniform Industry Corp.
@@ -7165,6 +7230,9 @@ @@ -7189,6 +7254,9 @@
acpi:USA*: acpi:USA*:
ID_VENDOR_FROM_DATABASE=Utimaco Safeware AG ID_VENDOR_FROM_DATABASE=Utimaco Safeware AG
@ -451,7 +451,7 @@
acpi:USD*: acpi:USD*:
ID_VENDOR_FROM_DATABASE=U.S. Digital Corporation ID_VENDOR_FROM_DATABASE=U.S. Digital Corporation
@@ -7414,9 +7482,6 @@ @@ -7438,9 +7506,6 @@
acpi:WAL*: acpi:WAL*:
ID_VENDOR_FROM_DATABASE=Wave Access ID_VENDOR_FROM_DATABASE=Wave Access
@ -461,7 +461,7 @@
acpi:WAV*: acpi:WAV*:
ID_VENDOR_FROM_DATABASE=Wavephore ID_VENDOR_FROM_DATABASE=Wavephore
@@ -7541,7 +7606,7 @@ @@ -7565,7 +7630,7 @@
ID_VENDOR_FROM_DATABASE=WyreStorm Technologies LLC ID_VENDOR_FROM_DATABASE=WyreStorm Technologies LLC
acpi:WYS*: acpi:WYS*:
@ -470,7 +470,7 @@
acpi:WYT*: acpi:WYT*:
ID_VENDOR_FROM_DATABASE=Wooyoung Image & Information Co.,Ltd. ID_VENDOR_FROM_DATABASE=Wooyoung Image & Information Co.,Ltd.
@@ -7555,9 +7620,6 @@ @@ -7579,9 +7644,6 @@
acpi:XDM*: acpi:XDM*:
ID_VENDOR_FROM_DATABASE=XDM Ltd. ID_VENDOR_FROM_DATABASE=XDM Ltd.
@ -480,7 +480,7 @@
acpi:XES*: acpi:XES*:
ID_VENDOR_FROM_DATABASE=Extreme Engineering Solutions, Inc. ID_VENDOR_FROM_DATABASE=Extreme Engineering Solutions, Inc.
@@ -7588,9 +7650,6 @@ @@ -7612,9 +7674,6 @@
acpi:XNT*: acpi:XNT*:
ID_VENDOR_FROM_DATABASE=XN Technologies, Inc. ID_VENDOR_FROM_DATABASE=XN Technologies, Inc.
@ -490,7 +490,7 @@
acpi:XQU*: acpi:XQU*:
ID_VENDOR_FROM_DATABASE=SHANGHAI SVA-DAV ELECTRONICS CO., LTD ID_VENDOR_FROM_DATABASE=SHANGHAI SVA-DAV ELECTRONICS CO., LTD
@@ -7657,6 +7716,9 @@ @@ -7681,6 +7740,9 @@
acpi:ZBX*: acpi:ZBX*:
ID_VENDOR_FROM_DATABASE=Zebax Technologies ID_VENDOR_FROM_DATABASE=Zebax Technologies

View File

@ -107,6 +107,7 @@
<tr class="odd"><td>Pensando Systems, Inc.</td><td>PNSO</td><td>03/24/2021</td> </tr> <tr class="odd"><td>Pensando Systems, Inc.</td><td>PNSO</td><td>03/24/2021</td> </tr>
<tr class="even"><td>Dynabook Inc.</td><td>DNBK</td><td>06/01/2021</td> </tr> <tr class="even"><td>Dynabook Inc.</td><td>DNBK</td><td>06/01/2021</td> </tr>
<tr class="odd"><td>Dioo Microcircuits Co., Ltd. Jiangsu</td><td>DIOO</td><td>06/04/2021</td> </tr> <tr class="odd"><td>Dioo Microcircuits Co., Ltd. Jiangsu</td><td>DIOO</td><td>06/04/2021</td> </tr>
<tr class="even"><td>Purism SPC</td><td>PURI</td><td>06/10/2021</td> </tr>
</tbody> </tbody>
</table> </table>
</body> </body>

View File

@ -36305,6 +36305,24 @@ E0B9E5 (base 16) Technicolor Delivery Technologies Belgium NV
Torino 10121 Torino 10121
IT IT
8C-4B-14 (hex) Espressif Inc.
8C4B14 (base 16) Espressif Inc.
Room 204, Building 2, 690 Bibo Rd, Pudong New Area
Shanghai Shanghai 201203
CN
D4-E8-53 (hex) Hangzhou Hikvision Digital Technology Co.,Ltd.
D4E853 (base 16) Hangzhou Hikvision Digital Technology Co.,Ltd.
No.555 Qianmo Road
Hangzhou Zhejiang 310052
CN
18-E2-15 (hex) Nokia
18E215 (base 16) Nokia
600 March Road
Kanata Ontario K2K 2E6
CA
9C-FF-C2 (hex) AVI Systems GmbH 9C-FF-C2 (hex) AVI Systems GmbH
9CFFC2 (base 16) AVI Systems GmbH 9CFFC2 (base 16) AVI Systems GmbH
Dr. Franz Wilhelmstraße 2A Dr. Franz Wilhelmstraße 2A
@ -72161,12 +72179,48 @@ E0A258 (base 16) Wanbang Digital Energy Co.,Ltd
Gwangju Gwangsan-gu 506-731 Gwangju Gwangsan-gu 506-731
KR KR
74-5C-FA (hex) Shenzhen Shunrui Gaojie Technology Co., Ltd.
745CFA (base 16) Shenzhen Shunrui Gaojie Technology Co., Ltd.
502,Building A,No.18,Gongye 2nd Road,Dakan Industrial Zone,Dakan community,Xili street,Nanshan District
Shenzhen Guangdong 518055
CN
94-A4-08 (hex) Shenzhen Trolink Technology CO, LTD
94A408 (base 16) Shenzhen Trolink Technology CO, LTD
201 B building 4 shijie, Chashu industry 505 block, Baoan airport Sanwei community, Hangcheng street Baoan area.
Shenzhen GuangDong 518000
CN
D0-F8-65 (hex) ITEL MOBILE LIMITED D0-F8-65 (hex) ITEL MOBILE LIMITED
D0F865 (base 16) ITEL MOBILE LIMITED D0F865 (base 16) ITEL MOBILE LIMITED
RM B3 & B4 BLOCK B, KO FAI INDUSTRIAL BUILDING NO.7 KO FAI ROAD, YAU TONG, KLN, H.K RM B3 & B4 BLOCK B, KO FAI INDUSTRIAL BUILDING NO.7 KO FAI ROAD, YAU TONG, KLN, H.K
Hong Kong KOWLOON 999077 Hong Kong KOWLOON 999077
HK HK
38-5C-76 (hex) PLANTRONICS, INC.
385C76 (base 16) PLANTRONICS, INC.
345 ENCINAL STREET
SANTA CRUZ CA 95060
US
7C-C1-77 (hex) INGRAM MICRO SERVICES
7CC177 (base 16) INGRAM MICRO SERVICES
100 CHEMIN DE BAILLOT
MONTAUBAN 82000
FR
78-76-D9 (hex) EXARA Group
7876D9 (base 16) EXARA Group
Andropova pr. 18 1
Moscow 115432
RU
60-8F-A4 (hex) Nokia Solutions and Networks GmbH & Co. KG
608FA4 (base 16) Nokia Solutions and Networks GmbH & Co. KG
Werinherstrasse 91
München Bavaria D-81541
DE
84-80-94 (hex) Meter, Inc. 84-80-94 (hex) Meter, Inc.
848094 (base 16) Meter, Inc. 848094 (base 16) Meter, Inc.
148 Townsend St 148 Townsend St
@ -74405,12 +74459,6 @@ D07FA0 (base 16) Samsung Electronics Co.,Ltd
WEST CHESTER PA 19380 WEST CHESTER PA 19380
US US
78-52-4A (hex) Ensenso GmbH
78524A (base 16) Ensenso GmbH
Gundelfingerstr. 2
Freiburg 79108
DE
E4-FC-82 (hex) Juniper Networks E4-FC-82 (hex) Juniper Networks
E4FC82 (base 16) Juniper Networks E4FC82 (base 16) Juniper Networks
1133 Innovation Way 1133 Innovation Way
@ -108293,6 +108341,42 @@ EC937D (base 16) Technicolor CH USA Inc.
Edegem - Belgium B-2650 Edegem - Belgium B-2650
BE BE
C4-6E-33 (hex) Zhong Ge Smart Technology Co., Ltd.
C46E33 (base 16) Zhong Ge Smart Technology Co., Ltd.
Zhong Ge Smart Technology Co., Ltd
Shanghai 201199
CN
00-CE-30 (hex) Express LUCK Industrial Ltd.
00CE30 (base 16) Express LUCK Industrial Ltd.
No. 88, Baotongnan Road, Xikeng, Yuanshan Street, Longgang District
Shenzhen Guangdong 518100
CN
74-32-C2 (hex) KYOLIS
7432C2 (base 16) KYOLIS
2 RUE DE LA RENAISSANCE
ANTONY 92160
FR
5C-83-82 (hex) Nokia
5C8382 (base 16) Nokia
600 March Road
Kanata Ontario K2K 2E6
CA
28-36-13 (hex) IEEE Registration Authority
283613 (base 16) IEEE Registration Authority
445 Hoes Lane
Piscataway NJ 08554
US
78-52-4A (hex) Optonic GmbH
78524A (base 16) Optonic GmbH
Zollhallenstr. 11
Freiburg 79106
DE
F8-D0-27 (hex) Seiko Epson Corporation F8-D0-27 (hex) Seiko Epson Corporation
F8D027 (base 16) Seiko Epson Corporation F8D027 (base 16) Seiko Epson Corporation
2070 Kotobuki Koaka 2070 Kotobuki Koaka
@ -144314,12 +144398,6 @@ A4B1E9 (base 16) Technicolor Delivery Technologies Belgium NV
Edegem - Belgium B-2650 Edegem - Belgium B-2650
BE BE
0C-E5-A3 (hex) SharkNinja
0CE5A3 (base 16) SharkNinja
85 Cude Ln
Madison TN 37115
US
30-56-96 (hex) Infinix mobility limited 30-56-96 (hex) Infinix mobility limited
305696 (base 16) Infinix mobility limited 305696 (base 16) Infinix mobility limited
RMS 05-15, 13A/F SOUTH TOWER WORLD FINANCE CTR HARBOUR CITY 17 CANTON RD TST KLN HONG KONG RMS 05-15, 13A/F SOUTH TOWER WORLD FINANCE CTR HARBOUR CITY 17 CANTON RD TST KLN HONG KONG
@ -144332,6 +144410,39 @@ A4B1E9 (base 16) Technicolor Delivery Technologies Belgium NV
Chongqing China 401120 Chongqing China 401120
CN CN
B0-E9-FE (hex) Woan Technology (Shenzhen) Co., Ltd.
B0E9FE (base 16) Woan Technology (Shenzhen) Co., Ltd.
1-2F, Building B4, Yintian Industrial Zone, Yantian Community, Xixiang Street, Bao'an District, Shenzhen, Guangdong, P.R.China
Shenzhen Guangdong 518102
CN
00-BD-3E (hex) Vizio, Inc
00BD3E (base 16) Vizio, Inc
39 Tesla
Irvine CA 92618
US
C8-96-65 (hex) Microsoft Corporation
C89665 (base 16) Microsoft Corporation
One Microsoft Way
REDMOND WA 98052
US
0C-E5-A3 (hex) SharkNinja
0CE5A3 (base 16) SharkNinja
85 Cude Ln
Madison TN 37115
US
6C-91-06 (hex) Private
6C9106 (base 16) Private
40-91-51 (hex) Espressif Inc.
409151 (base 16) Espressif Inc.
Room 204, Building 2, 690 Bibo Rd, Pudong New Area
Shanghai Shanghai 201203
CN
7C-8A-E1 (hex) COMPAL INFORMATION (KUNSHAN) CO., LTD. 7C-8A-E1 (hex) COMPAL INFORMATION (KUNSHAN) CO., LTD.
7C8AE1 (base 16) COMPAL INFORMATION (KUNSHAN) CO., LTD. 7C8AE1 (base 16) COMPAL INFORMATION (KUNSHAN) CO., LTD.
NO. 25, THE 3RD Street KUNSHAN EXPORT PROCESSING ZONE NO. 25, THE 3RD Street KUNSHAN EXPORT PROCESSING ZONE
@ -175484,12 +175595,6 @@ EC6C9F (base 16) Chengdu Volans Technology CO.,LTD
UNITED KINGDOM UNITED KINGDOM
GB GB
08-00-42 (hex) JAPAN MACNICS CORP.
080042 (base 16) JAPAN MACNICS CORP.
JP
08-00-66 (hex) AGFA CORPORATION 08-00-66 (hex) AGFA CORPORATION
080066 (base 16) AGFA CORPORATION 080066 (base 16) AGFA CORPORATION
200 BALLARDVALE STREET 200 BALLARDVALE STREET
@ -180251,8 +180356,44 @@ A031DB (base 16) HUAWEI TECHNOLOGIES CO.,LTD
Shinagawa-ku 141-0032 Shinagawa-ku 141-0032
JP JP
08-00-42 (hex) MACNICA, Inc.
080042 (base 16) MACNICA, Inc.
1-6-3 Shin-Yokohama
Kohoku-ku Yokohama 222-8561
JP
54-6F-71 (hex) uAvionix Corporation
546F71 (base 16) uAvionix Corporation
300 Pine Needle Lane
Bigfork MT 59911
US
54-EF-33 (hex) SHENZHEN BILIAN ELECTRONIC CO.LTD
54EF33 (base 16) SHENZHEN BILIAN ELECTRONIC CO.LTD
NO.268? Fuqian Rd, Jutang community, Guanlan Town, Longhua New district
shenzhen guangdong 518000
CN
14-19-73 (hex) Beijing Yunyi Times Technology Co.,Ltd
141973 (base 16) Beijing Yunyi Times Technology Co.,Ltd
Room 4046, Building 1, Yard 10, Beiqijia Hongfu, Changping District
Beijing 102209
CN
5C-75-C6 (hex) China Mobile Group Device Co.,Ltd. 5C-75-C6 (hex) China Mobile Group Device Co.,Ltd.
5C75C6 (base 16) China Mobile Group Device Co.,Ltd. 5C75C6 (base 16) China Mobile Group Device Co.,Ltd.
32 Xuanwumen West Street,Xicheng District 32 Xuanwumen West Street,Xicheng District
Beijing 100053 Beijing 100053
CN CN
44-48-B9 (hex) MitraStar Technology Corp.
4448B9 (base 16) MitraStar Technology Corp.
No. 6, Innovation Road II,
Hsinchu 300
TW
A4-E1-1A (hex) Juniper Networks
A4E11A (base 16) Juniper Networks
1133 Innovation Way
Sunnyvale CA 94089
US

View File

@ -1580,12 +1580,6 @@ E00000-EFFFFF (base 16) Domotz Ltd
Gilching 82205 Gilching 82205
DE DE
04-71-4B (hex) uAvionix Corporation
100000-1FFFFF (base 16) uAvionix Corporation
380 Portage Ave.
Palo Alto CA 94306
US
04-71-4B (hex) Energport Inc 04-71-4B (hex) Energport Inc
800000-8FFFFF (base 16) Energport Inc 800000-8FFFFF (base 16) Energport Inc
48660 Kato Road 48660 Kato Road
@ -4430,18 +4424,18 @@ C8-F5-D6 (hex) EVOTOR LLC
Moscow 119021 Moscow 119021
RU RU
C0-FB-F9 (hex) Dongguan Chuan OptoElectronics Limited
200000-2FFFFF (base 16) Dongguan Chuan OptoElectronics Limited
No.43 Songshui Road,Songmushan Village, Dalang Town
Dongguan Guangdong 523795
CN
C0-FB-F9 (hex) IVT corporation C0-FB-F9 (hex) IVT corporation
600000-6FFFFF (base 16) IVT corporation 600000-6FFFFF (base 16) IVT corporation
5/F, Zhongguancun Fazhan Building, No 12, Shangdi Xinxi Road, Haidian District, Beijing, 100085, P.R. CHINA 5/F, Zhongguancun Fazhan Building, No 12, Shangdi Xinxi Road, Haidian District, Beijing, 100085, P.R. CHINA
Beijing 100085 Beijing 100085
CN CN
C0-FB-F9 (hex) Dongguan Chuan OptoElectronics Limited
200000-2FFFFF (base 16) Dongguan Chuan OptoElectronics Limited
No.43 Songshui Road,Songmushan Village, Dalang Town
Dongguan Guangdong 523795
CN
18-74-E2 (hex) HANGZHOU ZHOUJU ELECTRONIC TECHNOLOGICAL CO.,LTD 18-74-E2 (hex) HANGZHOU ZHOUJU ELECTRONIC TECHNOLOGICAL CO.,LTD
500000-5FFFFF (base 16) HANGZHOU ZHOUJU ELECTRONIC TECHNOLOGICAL CO.,LTD 500000-5FFFFF (base 16) HANGZHOU ZHOUJU ELECTRONIC TECHNOLOGICAL CO.,LTD
Floor 6,A Building, Xianxing Road NO.32,Xianlin Town,Yuhang District Floor 6,A Building, Xianxing Road NO.32,Xianlin Town,Yuhang District
@ -4454,6 +4448,12 @@ B00000-BFFFFF (base 16) Shenzhen Jooan Technology Co., Ltd
Shenzhen Guangdong 518000 Shenzhen Guangdong 518000
CN CN
18-74-E2 (hex) Beijing Jrunion Technology Co., Ltd.
600000-6FFFFF (base 16) Beijing Jrunion Technology Co., Ltd.
Room 01, 2nd Floor, Building 8, Yuquanhuigu, No. 3, Minzhuang Road, Haidian District
Beijing Beijing 100195
CN
18-74-E2 (hex) SHENZHEN AORO COMMUNICATION EQUIPMENT CO., LTD 18-74-E2 (hex) SHENZHEN AORO COMMUNICATION EQUIPMENT CO., LTD
900000-9FFFFF (base 16) SHENZHEN AORO COMMUNICATION EQUIPMENT CO., LTD 900000-9FFFFF (base 16) SHENZHEN AORO COMMUNICATION EQUIPMENT CO., LTD
ROOM 302, 3RD FLOOR BUILDING A9, NO.6 YUANCHUANGYUAN,FUHUA ROAD, JUTANG COMMUNITY, FUCHENG STREET, LONGHUA DISTRICT ROOM 302, 3RD FLOOR BUILDING A9, NO.6 YUANCHUANGYUAN,FUHUA ROAD, JUTANG COMMUNITY, FUCHENG STREET, LONGHUA DISTRICT
@ -4466,12 +4466,6 @@ B00000-BFFFFF (base 16) Shenzhen Jooan Technology Co., Ltd
Shenzhen Guangdong?China 518040 Shenzhen Guangdong?China 518040
CN CN
18-74-E2 (hex) Beijing Jrunion Technology Co., Ltd.
600000-6FFFFF (base 16) Beijing Jrunion Technology Co., Ltd.
Room 01, 2nd Floor, Building 8, Yuquanhuigu, No. 3, Minzhuang Road, Haidian District
Beijing Beijing 100195
CN
FC-CD-2F (hex) QCTEK CO.,LTD. FC-CD-2F (hex) QCTEK CO.,LTD.
500000-5FFFFF (base 16) QCTEK CO.,LTD. 500000-5FFFFF (base 16) QCTEK CO.,LTD.
6F-1., No.496, Bannan Rd., Zhonghe Dist., 6F-1., No.496, Bannan Rd., Zhonghe Dist.,
@ -4490,12 +4484,6 @@ E8-78-29 (hex) JVISMall CO.,LTD
Seoul 04058 Seoul 04058
KR KR
78-13-05 (hex) Shanghai Siminics Optoelectronic Technology Co., Ltd
D00000-DFFFFF (base 16) Shanghai Siminics Optoelectronic Technology Co., Ltd
Room 9, Building 15, Huatai Center Jinyun Rd
Shanghai 201803
CN
E8-78-29 (hex) Annapurna labs E8-78-29 (hex) Annapurna labs
400000-4FFFFF (base 16) Annapurna labs 400000-4FFFFF (base 16) Annapurna labs
Matam Scientific Industries Center, Building 8.2 Matam Scientific Industries Center, Building 8.2
@ -4514,11 +4502,11 @@ C00000-CFFFFF (base 16) Brigates Microelectronics Co., Ltd.
Kunshan Jiangsu 215300 Kunshan Jiangsu 215300
CN CN
98-6D-35 (hex) Advanced Diagnostics LTD 78-13-05 (hex) Shanghai Siminics Optoelectronic Technology Co., Ltd
900000-9FFFFF (base 16) Advanced Diagnostics LTD D00000-DFFFFF (base 16) Shanghai Siminics Optoelectronic Technology Co., Ltd
Diagnostics House, Eastboro Fields, Hemdale Room 9, Building 15, Huatai Center Jinyun Rd
Nuneaton Warwickshire CV116GL Shanghai 201803
GB CN
A8-5B-36 (hex) Shenzhen Dandelion Intelligent Cloud Technology Development Co., LTD A8-5B-36 (hex) Shenzhen Dandelion Intelligent Cloud Technology Development Co., LTD
300000-3FFFFF (base 16) Shenzhen Dandelion Intelligent Cloud Technology Development Co., LTD 300000-3FFFFF (base 16) Shenzhen Dandelion Intelligent Cloud Technology Development Co., LTD
@ -4526,16 +4514,34 @@ A8-5B-36 (hex) Shenzhen Dandelion Intelligent Cloud Technology Development Co
Shenzhen Guangdong 518100 Shenzhen Guangdong 518100
CN CN
98-6D-35 (hex) Advanced Diagnostics LTD
900000-9FFFFF (base 16) Advanced Diagnostics LTD
Diagnostics House, Eastboro Fields, Hemdale
Nuneaton Warwickshire CV116GL
GB
78-13-05 (hex) microtec Sicherheitstechnik GmbH
300000-3FFFFF (base 16) microtec Sicherheitstechnik GmbH
Auf der Langwies 20
Hünstetten 65510
DE
A8-5B-36 (hex) ATER Technologies Co Ltd A8-5B-36 (hex) ATER Technologies Co Ltd
C00000-CFFFFF (base 16) ATER Technologies Co Ltd C00000-CFFFFF (base 16) ATER Technologies Co Ltd
Floor 5,Building 1,HongYe Industry Park,Baoan district Floor 5,Building 1,HongYe Industry Park,Baoan district
Shenzhen Guangdong 518100 Shenzhen Guangdong 518100
CN CN
78-13-05 (hex) microtec Sicherheitstechnik GmbH A8-5B-36 (hex) Loomanet Inc.
300000-3FFFFF (base 16) microtec Sicherheitstechnik GmbH 200000-2FFFFF (base 16) Loomanet Inc.
Auf der Langwies 20 900 Lafayette St. Suite 704
Hünstetten 65510 Santa Clara CA 95050
US
F0-2A-2B (hex) Comexio GmbH
C00000-CFFFFF (base 16) Comexio GmbH
Eisenberger Straße 56a
Kerzenheim 67304
DE DE
A8-5B-36 (hex) JUGANU LTD A8-5B-36 (hex) JUGANU LTD
@ -4550,17 +4556,23 @@ F0-2A-2B (hex) Frigotel SRL
San Donà di Piave 30027 San Donà di Piave 30027
IT IT
A8-5B-36 (hex) Loomanet Inc. 44-A9-2C (hex) ZHEJIANG HISING TECHNOLOGY CO.,LTD
200000-2FFFFF (base 16) Loomanet Inc. 000000-0FFFFF (base 16) ZHEJIANG HISING TECHNOLOGY CO.,LTD
900 Lafayette St. Suite 704 Room 201 and 202,Building 5,328 Pingjiang Road,Yuecheng District,Shaoxing
Santa Clara CA 95050 Shaoxing Zhejiang 312000
US CN
F0-2A-2B (hex) Comexio GmbH 44-A9-2C (hex) Anhui Zhongxin Electronic Technology Co., Ltd.
C00000-CFFFFF (base 16) Comexio GmbH 200000-2FFFFF (base 16) Anhui Zhongxin Electronic Technology Co., Ltd.
Eisenberger Straße 56a South Head, No.11, Building 2, Huayuan Commercial Building,6km, Changqing Township, Yuhui District, Bengbu City,Anhui Province
Kerzenheim 67304 Bengbu Anhui 233010
DE CN
44-A9-2C (hex) Ningbo joyson new energy automotive technology Co.,Ltd
600000-6FFFFF (base 16) Ningbo joyson new energy automotive technology Co.,Ltd
No.1266 Juxian Road, Hi-Tech Park
Ningbo Zhejiang 315000
CN
44-A9-2C (hex) Amethystum Storage Technology Co., Ltd 44-A9-2C (hex) Amethystum Storage Technology Co., Ltd
B00000-BFFFFF (base 16) Amethystum Storage Technology Co., Ltd B00000-BFFFFF (base 16) Amethystum Storage Technology Co., Ltd
@ -4574,24 +4586,6 @@ B00000-BFFFFF (base 16) Amethystum Storage Technology Co., Ltd
Rheine 48429 Rheine 48429
DE DE
44-A9-2C (hex) Anhui Zhongxin Electronic Technology Co., Ltd.
200000-2FFFFF (base 16) Anhui Zhongxin Electronic Technology Co., Ltd.
South Head, No.11, Building 2, Huayuan Commercial Building,6km, Changqing Township, Yuhui District, Bengbu City,Anhui Province
Bengbu Anhui 233010
CN
44-A9-2C (hex) ZHEJIANG HISING TECHNOLOGY CO.,LTD
000000-0FFFFF (base 16) ZHEJIANG HISING TECHNOLOGY CO.,LTD
Room 201 and 202,Building 5,328 Pingjiang Road,Yuecheng District,Shaoxing
Shaoxing Zhejiang 312000
CN
44-A9-2C (hex) Ningbo joyson new energy automotive technology Co.,Ltd
600000-6FFFFF (base 16) Ningbo joyson new energy automotive technology Co.,Ltd
No.1266 Juxian Road, Hi-Tech Park
Ningbo Zhejiang 315000
CN
58-48-49 (hex) X-speed lnformation Technology Co.,Ltd 58-48-49 (hex) X-speed lnformation Technology Co.,Ltd
200000-2FFFFF (base 16) X-speed lnformation Technology Co.,Ltd 200000-2FFFFF (base 16) X-speed lnformation Technology Co.,Ltd
th Floor,Building 2,Xinyu Electronic Industrial Park,No.69, Zhaishan,Houshan Village, High-tech Zone,Fuzhou,Fujian ,China th Floor,Building 2,Xinyu Electronic Industrial Park,No.69, Zhaishan,Houshan Village, High-tech Zone,Fuzhou,Fujian ,China
@ -4604,6 +4598,18 @@ B00000-BFFFFF (base 16) Amethystum Storage Technology Co., Ltd
Walnut CA 91789 Walnut CA 91789
US US
64-33-B5 (hex) Geksacon
C00000-CFFFFF (base 16) Geksacon
revolutionary street
Ufa Republic of Bashkortostan 450005
RU
04-71-4B (hex) uAvionix Corporation
100000-1FFFFF (base 16) uAvionix Corporation
300 Pine Needle Lane
Bigfork MT 59911
US
4C-4B-F9 (hex) Shenzhen dingsheng technology co., LTD 4C-4B-F9 (hex) Shenzhen dingsheng technology co., LTD
400000-4FFFFF (base 16) Shenzhen dingsheng technology co., LTD 400000-4FFFFF (base 16) Shenzhen dingsheng technology co., LTD
Floor 3, building 5, kaijeda industrial zone, no.97, huaxing road, langkou community, dalang street, longhua district Floor 3, building 5, kaijeda industrial zone, no.97, huaxing road, langkou community, dalang street, longhua district
@ -8714,12 +8720,6 @@ D0-9F-D9 (hex) Raymax Technology Ltd.
Hangzhou China 310012 Hangzhou China 310012
CN CN
D0-9F-D9 (hex) Queclink Wireless Solutions Co., Ltd.
800000-8FFFFF (base 16) Queclink Wireless Solutions Co., Ltd.
No.30, Lane 500, Xinlong Road, Minhang District
Shanghai 201101
CN
D0-9F-D9 (hex) Fujian Newland Auto-ID Tech. Co,.Ltd. D0-9F-D9 (hex) Fujian Newland Auto-ID Tech. Co,.Ltd.
C00000-CFFFFF (base 16) Fujian Newland Auto-ID Tech. Co,.Ltd. C00000-CFFFFF (base 16) Fujian Newland Auto-ID Tech. Co,.Ltd.
Newland Science & Technology Park, No.1 Rujiang West Rd,Mawei,Fuzhou, P.R.China Newland Science & Technology Park, No.1 Rujiang West Rd,Mawei,Fuzhou, P.R.China
@ -8732,6 +8732,12 @@ D0-9F-D9 (hex) Lemei Intelligent IOT (Shenzhen) Co., Ltd
Shenzhen Guangdong 518000 Shenzhen Guangdong 518000
CN CN
D0-9F-D9 (hex) Queclink Wireless Solutions Co., Ltd.
800000-8FFFFF (base 16) Queclink Wireless Solutions Co., Ltd.
No.30, Lane 500, Xinlong Road, Minhang District
Shanghai 201101
CN
18-74-E2 (hex) Kano Computing Limited 18-74-E2 (hex) Kano Computing Limited
800000-8FFFFF (base 16) Kano Computing Limited 800000-8FFFFF (base 16) Kano Computing Limited
Unit 12.1 - 12.2, 11-29 Fashion Street Unit 12.1 - 12.2, 11-29 Fashion Street
@ -8744,12 +8750,6 @@ D0-9F-D9 (hex) Lemei Intelligent IOT (Shenzhen) Co., Ltd
Columbia MO 65201 Columbia MO 65201
US US
A8-5B-36 (hex) Luoxian (Guandong) Technology Co., Ltd
400000-4FFFFF (base 16) Luoxian (Guandong) Technology Co., Ltd
4th floor,building 4,European Industrial Park,60 Longbao West Road,Zhangcha Town
FoShan Guandong 528051
CN
A8-5B-36 (hex) TAIDEN INDUSTRIAL CO.,LTD A8-5B-36 (hex) TAIDEN INDUSTRIAL CO.,LTD
A00000-AFFFFF (base 16) TAIDEN INDUSTRIAL CO.,LTD A00000-AFFFFF (base 16) TAIDEN INDUSTRIAL CO.,LTD
6/F, Block B, Future Plaza, 6060 Qiaoxiang Rd, Nanshan District 6/F, Block B, Future Plaza, 6060 Qiaoxiang Rd, Nanshan District
@ -8762,6 +8762,12 @@ F0-2A-2B (hex) ZiGong Pengcheng Technology Co.,Ltd
ZiGong SiChuan 643221 ZiGong SiChuan 643221
CN CN
A8-5B-36 (hex) Luoxian (Guandong) Technology Co., Ltd
400000-4FFFFF (base 16) Luoxian (Guandong) Technology Co., Ltd
4th floor,building 4,European Industrial Park,60 Longbao West Road,Zhangcha Town
FoShan Guandong 528051
CN
A8-5B-36 (hex) Avista Edge A8-5B-36 (hex) Avista Edge
900000-9FFFFF (base 16) Avista Edge 900000-9FFFFF (base 16) Avista Edge
12 N Sheridan St 12 N Sheridan St
@ -8786,17 +8792,29 @@ F0-2A-2B (hex) Tobi Tribe Inc.
Shenzhen 518126 Shenzhen 518126
CN CN
58-48-49 (hex) Shandong Aotai Electric Co., LTD.
700000-7FFFFF (base 16) Shandong Aotai Electric Co., LTD.
282 Bole Avenue, High-tech Development Zone Shandong P.R. China
Jinan Shandong 250101
CN
58-48-49 (hex) Daatrics LTD 58-48-49 (hex) Daatrics LTD
B00000-BFFFFF (base 16) Daatrics LTD B00000-BFFFFF (base 16) Daatrics LTD
4th Floor, 86-90 Paul Street 4th Floor, 86-90 Paul Street
LONDON EC2A 4NE LONDON EC2A 4NE
GB GB
58-48-49 (hex) Shandong Aotai Electric Co., LTD. 64-33-B5 (hex) Duomondi International Development Co., Ltd.
700000-7FFFFF (base 16) Shandong Aotai Electric Co., LTD. 000000-0FFFFF (base 16) Duomondi International Development Co., Ltd.
282 Bole Avenue, High-tech Development Zone Shandong P.R. China Unit D 19/F Roxy Industry Center 59-66 Tai Lin Pai
Jinan Shandong 250101 Kwai Chung NT 999077
CN HK
64-33-B5 (hex) University of Texas at Austin
E00000-EFFFFF (base 16) University of Texas at Austin
1 University Station C3800
Austin TX 78713-7407
US
20-85-93 (hex) UNILUMIN GROUP CO.,LTD 20-85-93 (hex) UNILUMIN GROUP CO.,LTD
300000-3FFFFF (base 16) UNILUMIN GROUP CO.,LTD 300000-3FFFFF (base 16) UNILUMIN GROUP CO.,LTD
@ -13073,6 +13091,12 @@ C0-FB-F9 (hex) SHENZHEN HEQIANG ELECTRONICS LIMITED
SHENZHEN GUANGDONG 518129 SHENZHEN GUANGDONG 518129
CN CN
D0-9F-D9 (hex) elecgator bvba
100000-1FFFFF (base 16) elecgator bvba
Heerbaan, 308
Beringen Limburg 3582
BE
D0-9F-D9 (hex) Carbon Mobile GmbH D0-9F-D9 (hex) Carbon Mobile GmbH
500000-5FFFFF (base 16) Carbon Mobile GmbH 500000-5FFFFF (base 16) Carbon Mobile GmbH
Winterfeldtstr. 21 Winterfeldtstr. 21
@ -13085,12 +13109,6 @@ D0-9F-D9 (hex) ENTTEC Pty Ltd.
ringwood vic 3134 ringwood vic 3134
AU AU
D0-9F-D9 (hex) elecgator bvba
100000-1FFFFF (base 16) elecgator bvba
Heerbaan, 308
Beringen Limburg 3582
BE
D0-9F-D9 (hex) Minibems Ltd D0-9F-D9 (hex) Minibems Ltd
E00000-EFFFFF (base 16) Minibems Ltd E00000-EFFFFF (base 16) Minibems Ltd
Oxford Point, 19 Oxford Road Oxford Point, 19 Oxford Road
@ -13127,11 +13145,17 @@ E8-78-29 (hex) AXING AG
Ramsen 8262 Ramsen 8262
CH CH
78-13-05 (hex) Jiangxi Winsky Intelligence Technology Co., Ltd 78-13-05 (hex) Leonardo SpA - Montevarchi
400000-4FFFFF (base 16) Jiangxi Winsky Intelligence Technology Co., Ltd A00000-AFFFFF (base 16) Leonardo SpA - Montevarchi
Zhihang road Wutong Ave. Hight tech area Jingdezhen City Jiangxi province PRC. via DELLA LAMA, 13
Jingdezhen Jiangxi 333000 Montevarchi AREZZO 52025
CN IT
78-13-05 (hex) InnoSenT
000000-0FFFFF (base 16) InnoSenT
Am Roedertor 30
Donnersdorf Bavaria 97499
DE
78-13-05 (hex) Global Media Streaming LLC 78-13-05 (hex) Global Media Streaming LLC
100000-1FFFFF (base 16) Global Media Streaming LLC 100000-1FFFFF (base 16) Global Media Streaming LLC
@ -13145,17 +13169,11 @@ E8-78-29 (hex) AXING AG
Pskov 180017 Pskov 180017
RU RU
78-13-05 (hex) Leonardo SpA - Montevarchi 78-13-05 (hex) Jiangxi Winsky Intelligence Technology Co., Ltd
A00000-AFFFFF (base 16) Leonardo SpA - Montevarchi 400000-4FFFFF (base 16) Jiangxi Winsky Intelligence Technology Co., Ltd
via DELLA LAMA, 13 Zhihang road Wutong Ave. Hight tech area Jingdezhen City Jiangxi province PRC.
Montevarchi AREZZO 52025 Jingdezhen Jiangxi 333000
IT CN
78-13-05 (hex) InnoSenT
000000-0FFFFF (base 16) InnoSenT
Am Roedertor 30
Donnersdorf Bavaria 97499
DE
A8-5B-36 (hex) ShangHai SnowLake Technology Co.,LTD. A8-5B-36 (hex) ShangHai SnowLake Technology Co.,LTD.
800000-8FFFFF (base 16) ShangHai SnowLake Technology Co.,LTD. 800000-8FFFFF (base 16) ShangHai SnowLake Technology Co.,LTD.
@ -13163,12 +13181,24 @@ A8-5B-36 (hex) ShangHai SnowLake Technology Co.,LTD.
SHANGHAI SHANGHAI 200050 SHANGHAI SHANGHAI 200050
CN CN
F0-2A-2B (hex) Navigil Ltd
A00000-AFFFFF (base 16) Navigil Ltd
Karaportti 5
Espoo Uusimaa 02610
FI
A8-5B-36 (hex) Lampyris Plant LLC A8-5B-36 (hex) Lampyris Plant LLC
B00000-BFFFFF (base 16) Lampyris Plant LLC B00000-BFFFFF (base 16) Lampyris Plant LLC
st.Arbuzova, 12, office. 201 st.Arbuzova, 12, office. 201
Novosibirsk 630117 Novosibirsk 630117
RU RU
F0-2A-2B (hex) Agile Sports Technologies, dba Hudl
500000-5FFFFF (base 16) Agile Sports Technologies, dba Hudl
600 P St, Suite 400
Lincoln NE 68508
US
F0-2A-2B (hex) Shanghai Armour Technology Co., Ltd. F0-2A-2B (hex) Shanghai Armour Technology Co., Ltd.
200000-2FFFFF (base 16) Shanghai Armour Technology Co., Ltd. 200000-2FFFFF (base 16) Shanghai Armour Technology Co., Ltd.
Room 411, building 10, 471 Guiping Road, Xuhui District Room 411, building 10, 471 Guiping Road, Xuhui District
@ -13181,24 +13211,12 @@ B00000-BFFFFF (base 16) EL.MO. spa
Campodarsego Padua I35011 Campodarsego Padua I35011
IT IT
F0-2A-2B (hex) Agile Sports Technologies, dba Hudl
500000-5FFFFF (base 16) Agile Sports Technologies, dba Hudl
600 P St, Suite 400
Lincoln NE 68508
US
F0-2A-2B (hex) Onclave Networks F0-2A-2B (hex) Onclave Networks
400000-4FFFFF (base 16) Onclave Networks 400000-4FFFFF (base 16) Onclave Networks
7950 Jones Branch Drive #805 7950 Jones Branch Drive #805
McLean VA 22102 McLean VA 22102
US US
F0-2A-2B (hex) Navigil Ltd
A00000-AFFFFF (base 16) Navigil Ltd
Karaportti 5
Espoo Uusimaa 02610
FI
F0-2A-2B (hex) Definitely Win Corp.,Ltd. F0-2A-2B (hex) Definitely Win Corp.,Ltd.
D00000-DFFFFF (base 16) Definitely Win Corp.,Ltd. D00000-DFFFFF (base 16) Definitely Win Corp.,Ltd.
2F., No. 48, Da'an St., Xizhi Dist., 2F., No. 48, Da'an St., Xizhi Dist.,
@ -13235,6 +13253,12 @@ C00000-CFFFFF (base 16) Cubitech
Shenzhen 518000 Shenzhen 518000
CN CN
58-48-49 (hex) Hubei Shudi Communication Technology Co., Ltd
500000-5FFFFF (base 16) Hubei Shudi Communication Technology Co., Ltd
11 Lane 2, shuichan street, Huangmei County
Huanggang Hubei 435500
CN
44-A9-2C (hex) Annapurna labs 44-A9-2C (hex) Annapurna labs
E00000-EFFFFF (base 16) Annapurna labs E00000-EFFFFF (base 16) Annapurna labs
Matam Scientific Industries Center, Building 8.2 Matam Scientific Industries Center, Building 8.2
@ -13247,18 +13271,18 @@ E00000-EFFFFF (base 16) Annapurna labs
Littleton CO 80127 Littleton CO 80127
US US
58-48-49 (hex) Hubei Shudi Communication Technology Co., Ltd
500000-5FFFFF (base 16) Hubei Shudi Communication Technology Co., Ltd
11 Lane 2, shuichan street, Huangmei County
Huanggang Hubei 435500
CN
58-48-49 (hex) Viper Design LLC 58-48-49 (hex) Viper Design LLC
300000-3FFFFF (base 16) Viper Design LLC 300000-3FFFFF (base 16) Viper Design LLC
154 Cude Ln 154 Cude Ln
Madison TN 37115 Madison TN 37115
US US
58-48-49 (hex) SKAARHOJ ApS
100000-1FFFFF (base 16) SKAARHOJ ApS
Rosenkaeret 11C
Soeborg 2860
DK
64-33-B5 (hex) Hometek Eletronics Co., Ltd 64-33-B5 (hex) Hometek Eletronics Co., Ltd
A00000-AFFFFF (base 16) Hometek Eletronics Co., Ltd A00000-AFFFFF (base 16) Hometek Eletronics Co., Ltd
7F-2 No. 16,Lane 609, Section 5 Chung Hsin Rd. Sanchong District. New Taipei City Taiwan R.O.C. 7F-2 No. 16,Lane 609, Section 5 Chung Hsin Rd. Sanchong District. New Taipei City Taiwan R.O.C.
@ -13277,11 +13301,11 @@ E00000-EFFFFF (base 16) Avadesign Technology Co. Ltd.
Beijing 100000 Beijing 100000
CN CN
58-48-49 (hex) SKAARHOJ ApS 64-33-B5 (hex) Huaqin Telecom Technology Co.,Ltd.
100000-1FFFFF (base 16) SKAARHOJ ApS 100000-1FFFFF (base 16) Huaqin Telecom Technology Co.,Ltd.
Rosenkaeret 11C Building 1,No.399, Keyuan Road, Pudong, Shanghai China
Soeborg 2860 Shanghai 200120
DK CN
64-33-B5 (hex) Wingtech Mobile Communications Co.,Ltd 64-33-B5 (hex) Wingtech Mobile Communications Co.,Ltd
300000-3FFFFF (base 16) Wingtech Mobile Communications Co.,Ltd 300000-3FFFFF (base 16) Wingtech Mobile Communications Co.,Ltd
@ -13289,11 +13313,11 @@ E00000-EFFFFF (base 16) Avadesign Technology Co. Ltd.
Jiaxing Zhejiang 314001 Jiaxing Zhejiang 314001
CN CN
64-33-B5 (hex) Huaqin Telecom Technology Co.,Ltd. 64-33-B5 (hex) IIYAMA CORPORATION
100000-1FFFFF (base 16) Huaqin Telecom Technology Co.,Ltd. D00000-DFFFFF (base 16) IIYAMA CORPORATION
Building 1,No.399, Keyuan Road, Pudong, Shanghai China Wijkermeerstraat 8
Shanghai 200120 Hoofddorp 2131HA
CN NL
4C-4B-F9 (hex) Shandong Linkotech Electronic Co., Ltd. 4C-4B-F9 (hex) Shandong Linkotech Electronic Co., Ltd.
600000-6FFFFF (base 16) Shandong Linkotech Electronic Co., Ltd. 600000-6FFFFF (base 16) Shandong Linkotech Electronic Co., Ltd.
@ -17471,12 +17495,6 @@ D00000-DFFFFF (base 16) Origins Technology Limited
Beijing 100027 Beijing 100027
CN CN
C8-F5-D6 (hex) Shanghai Mo xiang Network Technology CO.,Ltd
900000-9FFFFF (base 16) Shanghai Mo xiang Network Technology CO.,Ltd
Room#418-421, ShaHeXiLi, 2-2 XiLi North Road, LiCheng Community, Xili Street, NanShan District
Shenzhen Guangdong 518071
CN
C8-F5-D6 (hex) United Barcode Systems C8-F5-D6 (hex) United Barcode Systems
B00000-BFFFFF (base 16) United Barcode Systems B00000-BFFFFF (base 16) United Barcode Systems
Av. Progres 56, Pol. Ind. els Garrofers Av. Progres 56, Pol. Ind. els Garrofers
@ -17489,6 +17507,12 @@ C00000-CFFFFF (base 16) Eltako GmbH
Fellbach BW 70736 Fellbach BW 70736
DE DE
C8-F5-D6 (hex) Shanghai Mo xiang Network Technology CO.,Ltd
900000-9FFFFF (base 16) Shanghai Mo xiang Network Technology CO.,Ltd
Room#418-421, ShaHeXiLi, 2-2 XiLi North Road, LiCheng Community, Xili Street, NanShan District
Shenzhen Guangdong 518071
CN
C0-FB-F9 (hex) SHENZHEN ELSKY TECHNOLOGY CO., LTD C0-FB-F9 (hex) SHENZHEN ELSKY TECHNOLOGY CO., LTD
C00000-CFFFFF (base 16) SHENZHEN ELSKY TECHNOLOGY CO., LTD C00000-CFFFFF (base 16) SHENZHEN ELSKY TECHNOLOGY CO., LTD
1F BUILDING 2# ASIA INDUSTIAL PARK BANTIAN STREET LONGGANG DISTRICT 1F BUILDING 2# ASIA INDUSTIAL PARK BANTIAN STREET LONGGANG DISTRICT
@ -17501,12 +17525,6 @@ D00000-DFFFFF (base 16) Dropbeats Technology Co., Ltd.
Shanghai Shanghai 201203 Shanghai Shanghai 201203
CN CN
D0-9F-D9 (hex) Elevoc Technology Co., Ltd.
600000-6FFFFF (base 16) Elevoc Technology Co., Ltd.
5/F,Unit B,Block12,ShenZhenwan Science and Technology Ecological Garden,Nanshan Dist.
Shenzhen Guangdong 518000
CN
D0-9F-D9 (hex) Eurolan Ltd D0-9F-D9 (hex) Eurolan Ltd
A00000-AFFFFF (base 16) Eurolan Ltd A00000-AFFFFF (base 16) Eurolan Ltd
jk. Drujba 1, ul. 5028, do bl. 15 jk. Drujba 1, ul. 5028, do bl. 15
@ -17519,11 +17537,11 @@ E0-5A-9F (hex) Fujian Newland Auto-ID Tech. Co,.Ltd.
Fuzhou Fujian 350015 Fuzhou Fujian 350015
CN CN
18-74-E2 (hex) NextGen RF Design, Inc. D0-9F-D9 (hex) Elevoc Technology Co., Ltd.
C00000-CFFFFF (base 16) NextGen RF Design, Inc. 600000-6FFFFF (base 16) Elevoc Technology Co., Ltd.
2130 Howard Dr W 5/F,Unit B,Block12,ShenZhenwan Science and Technology Ecological Garden,Nanshan Dist.
North Mankato MN 56003 Shenzhen Guangdong 518000
US CN
18-74-E2 (hex) Sartorius Lab Instruments GmbH & Co. KG 18-74-E2 (hex) Sartorius Lab Instruments GmbH & Co. KG
100000-1FFFFF (base 16) Sartorius Lab Instruments GmbH & Co. KG 100000-1FFFFF (base 16) Sartorius Lab Instruments GmbH & Co. KG
@ -17531,12 +17549,24 @@ C00000-CFFFFF (base 16) NextGen RF Design, Inc.
Goettingen 37079 Goettingen 37079
DE DE
18-74-E2 (hex) NextGen RF Design, Inc.
C00000-CFFFFF (base 16) NextGen RF Design, Inc.
2130 Howard Dr W
North Mankato MN 56003
US
18-74-E2 (hex) Linux Automation GmbH 18-74-E2 (hex) Linux Automation GmbH
A00000-AFFFFF (base 16) Linux Automation GmbH A00000-AFFFFF (base 16) Linux Automation GmbH
Steuerwalder Str 21 Steuerwalder Str 21
Hildesheim 31137 Hildesheim 31137
DE DE
E8-78-29 (hex) METZ CONNECT GmbH
A00000-AFFFFF (base 16) METZ CONNECT GmbH
Im Tal 2
Blumberg 78176
DE
E8-78-29 (hex) Bernd Walter Computer Technology E8-78-29 (hex) Bernd Walter Computer Technology
D00000-DFFFFF (base 16) Bernd Walter Computer Technology D00000-DFFFFF (base 16) Bernd Walter Computer Technology
Fontanestr. 18 Fontanestr. 18
@ -17549,30 +17579,24 @@ D00000-DFFFFF (base 16) Samriddi Automations Pvt. Ltd.
Noida up 201307 Noida up 201307
IN IN
E8-78-29 (hex) METZ CONNECT GmbH
A00000-AFFFFF (base 16) METZ CONNECT GmbH
Im Tal 2
Blumberg 78176
DE
E8-78-29 (hex) Shenzhen Jointelli Technologies Co.,Ltd E8-78-29 (hex) Shenzhen Jointelli Technologies Co.,Ltd
100000-1FFFFF (base 16) Shenzhen Jointelli Technologies Co.,Ltd 100000-1FFFFF (base 16) Shenzhen Jointelli Technologies Co.,Ltd
Room A4-1203, Building A, Kexing Science Park, No. 15, Keyuan Road,Keyuan Community,Yuehai Street,Nanshan District Room A4-1203, Building A, Kexing Science Park, No. 15, Keyuan Road,Keyuan Community,Yuehai Street,Nanshan District
Shenzhen Guangdong 518000 Shenzhen Guangdong 518000
CN CN
78-13-05 (hex) Shenzhen AV-Display Co.,Ltd
800000-8FFFFF (base 16) Shenzhen AV-Display Co.,Ltd
No.39,He Ao Jin Yuan Road, Yuanshan Subdistrict, Longgang District ,Shenzhen, China
SHENZHEN 518000
CN
E8-78-29 (hex) Solos Technology Limited E8-78-29 (hex) Solos Technology Limited
E00000-EFFFFF (base 16) Solos Technology Limited E00000-EFFFFF (base 16) Solos Technology Limited
Unit 211, 2/F., Photonics Centre, No 2 Science Park East Avenue, Shatin Unit 211, 2/F., Photonics Centre, No 2 Science Park East Avenue, Shatin
Hong Kong Hong Kong 999077 Hong Kong Hong Kong 999077
HK HK
78-13-05 (hex) Shenzhen AV-Display Co.,Ltd
800000-8FFFFF (base 16) Shenzhen AV-Display Co.,Ltd
No.39,He Ao Jin Yuan Road, Yuanshan Subdistrict, Longgang District ,Shenzhen, China
SHENZHEN 518000
CN
78-13-05 (hex) Bithouse Oy 78-13-05 (hex) Bithouse Oy
B00000-BFFFFF (base 16) Bithouse Oy B00000-BFFFFF (base 16) Bithouse Oy
Hepolamminkatu 32 Hepolamminkatu 32
@ -17585,18 +17609,18 @@ B00000-BFFFFF (base 16) Bithouse Oy
Nanjing Jiangsu 211800 Nanjing Jiangsu 211800
CN CN
A8-5B-36 (hex) Bluesoo Tech (HongKong) Co.,Limited
000000-0FFFFF (base 16) Bluesoo Tech (HongKong) Co.,Limited
Room 05, 28 / F, good view business centre, 2-16 Garden Street, Mong Kok, Kowloon, Hongkong.
HongKong 999077
HK
A8-5B-36 (hex) DAP B.V. A8-5B-36 (hex) DAP B.V.
600000-6FFFFF (base 16) DAP B.V. 600000-6FFFFF (base 16) DAP B.V.
Tussendiepen 4a Tussendiepen 4a
Drachten 9206 AD Drachten 9206 AD
NL NL
A8-5B-36 (hex) Bluesoo Tech (HongKong) Co.,Limited
000000-0FFFFF (base 16) Bluesoo Tech (HongKong) Co.,Limited
Room 05, 28 / F, good view business centre, 2-16 Garden Street, Mong Kok, Kowloon, Hongkong.
HongKong 999077
HK
A8-5B-36 (hex) Louis Vuitton Malletier A8-5B-36 (hex) Louis Vuitton Malletier
700000-7FFFFF (base 16) Louis Vuitton Malletier 700000-7FFFFF (base 16) Louis Vuitton Malletier
2 rue du Pont Neuf 2 rue du Pont Neuf
@ -17663,6 +17687,12 @@ C00000-CFFFFF (base 16) Haag-Streit AG
Hong Kong 999077 Hong Kong 999077
CN CN
28-36-13 (hex) Shenzhen HQVT TECHNOLOGY Co.,LTD
200000-2FFFFF (base 16) Shenzhen HQVT TECHNOLOGY Co.,LTD
3/F,Building 8 ,Taihua Wutong Island,Xixiang,Bao'an District
China Guang Dong 518000
CN
20-85-93 (hex) Great Lite International 20-85-93 (hex) Great Lite International
700000-7FFFFF (base 16) Great Lite International 700000-7FFFFF (base 16) Great Lite International
11F., No.207-2, Sec. 3, Beixin Rd., Xindian Dist., 11F., No.207-2, Sec. 3, Beixin Rd., Xindian Dist.,
@ -21962,12 +21992,6 @@ C8-F5-D6 (hex) MEIRYO TECHNICA CORPORATION
Owariasahi-city Aichi 488-0052 Owariasahi-city Aichi 488-0052
JP JP
C0-FB-F9 (hex) Minato Advanced Technologies inc
400000-4FFFFF (base 16) Minato Advanced Technologies inc
4105, Minami Yamata-cho, Tsuzuki-ku,
YOKOHAMA Kanagawa 224-0026
JP
C0-FB-F9 (hex) LongSung Technology (Shanghai) Co.,Ltd. C0-FB-F9 (hex) LongSung Technology (Shanghai) Co.,Ltd.
700000-7FFFFF (base 16) LongSung Technology (Shanghai) Co.,Ltd. 700000-7FFFFF (base 16) LongSung Technology (Shanghai) Co.,Ltd.
Room 606, Block B, Bldg. 1, No. 3000 Longdong Avenue., Zhangjiang Hi-Tech Park, Pudong District Room 606, Block B, Bldg. 1, No. 3000 Longdong Avenue., Zhangjiang Hi-Tech Park, Pudong District
@ -21986,6 +22010,12 @@ C8-F5-D6 (hex) BBPOS International Limited
Hong Kong China 00000 Hong Kong China 00000
HK HK
C0-FB-F9 (hex) Minato Advanced Technologies inc
400000-4FFFFF (base 16) Minato Advanced Technologies inc
4105, Minami Yamata-cho, Tsuzuki-ku,
YOKOHAMA Kanagawa 224-0026
JP
88-C9-B3 (hex) Fortive Setra-ICG(Tianjin)Co.,Ltd 88-C9-B3 (hex) Fortive Setra-ICG(Tianjin)Co.,Ltd
300000-3FFFFF (base 16) Fortive Setra-ICG(Tianjin)Co.,Ltd 300000-3FFFFF (base 16) Fortive Setra-ICG(Tianjin)Co.,Ltd
28 weiwu Road,Micro-electronics Industrial Park,Xiqing District Tianjin,P,R,China 28 weiwu Road,Micro-electronics Industrial Park,Xiqing District Tianjin,P,R,China
@ -22004,12 +22034,6 @@ C0-FB-F9 (hex) zxsolution
shenzhen 518000 shenzhen 518000
CN CN
D0-9F-D9 (hex) Westar Display Technologies
200000-2FFFFF (base 16) Westar Display Technologies
4 Research Park Dr
St Charles MO 63304
US
18-74-E2 (hex) Sansec Technology Co.,Ltd 18-74-E2 (hex) Sansec Technology Co.,Ltd
700000-7FFFFF (base 16) Sansec Technology Co.,Ltd 700000-7FFFFF (base 16) Sansec Technology Co.,Ltd
Bejing Chaoyang District Guangshun North Street Hostpital No.16 No.2 building 14 room 1406 Bejing Chaoyang District Guangshun North Street Hostpital No.16 No.2 building 14 room 1406
@ -22022,6 +22046,12 @@ B00000-BFFFFF (base 16) Cablewireless Laboratory Co., Ltd
Beijing 100029 Beijing 100029
CN CN
D0-9F-D9 (hex) Westar Display Technologies
200000-2FFFFF (base 16) Westar Display Technologies
4 Research Park Dr
St Charles MO 63304
US
18-74-E2 (hex) CT Company 18-74-E2 (hex) CT Company
300000-3FFFFF (base 16) CT Company 300000-3FFFFF (base 16) CT Company
Godovikova , 9, Moscow Godovikova , 9, Moscow
@ -22040,9 +22070,6 @@ E8-78-29 (hex) Ryu Tech. LTD
Taipei Taiwan,R.O.C 235 Taipei Taiwan,R.O.C 235
TW TW
E8-78-29 (hex) Private
B00000-BFFFFF (base 16) Private
E8-78-29 (hex) Galcon E8-78-29 (hex) Galcon
200000-2FFFFF (base 16) Galcon 200000-2FFFFF (base 16) Galcon
Kfar Blum israel Kfar Blum israel
@ -22064,6 +22091,9 @@ C00000-CFFFFF (base 16) FairPhone B.V.
Amsterdam 1013 CP Amsterdam 1013 CP
NL NL
E8-78-29 (hex) Private
B00000-BFFFFF (base 16) Private
B4-4B-D6 (hex) Shenzhen Cudy Technology Co., Ltd. B4-4B-D6 (hex) Shenzhen Cudy Technology Co., Ltd.
200000-2FFFFF (base 16) Shenzhen Cudy Technology Co., Ltd. 200000-2FFFFF (base 16) Shenzhen Cudy Technology Co., Ltd.
Room A606, Gaoxinqi Industrial Park, Baoan 67 Dist Room A606, Gaoxinqi Industrial Park, Baoan 67 Dist
@ -22100,11 +22130,11 @@ F0-2A-2B (hex) Tenways Engineering Service Ltd
Edgware Middlesex HA8 8XA Edgware Middlesex HA8 8XA
GB GB
44-A9-2C (hex) NetX Networks a.s. 44-A9-2C (hex) uimcom
400000-4FFFFF (base 16) NetX Networks a.s. 100000-1FFFFF (base 16) uimcom
Palackeho trida 811/112 Yingying building, 99 Tuanjie Road, Pukou District, Nanjing
Brno Czech Republic 62100 nanjing 211800
CZ CN
F0-2A-2B (hex) Shenzhen CUCO Technology Co., Ltd F0-2A-2B (hex) Shenzhen CUCO Technology Co., Ltd
E00000-EFFFFF (base 16) Shenzhen CUCO Technology Co., Ltd E00000-EFFFFF (base 16) Shenzhen CUCO Technology Co., Ltd
@ -22112,11 +22142,11 @@ E00000-EFFFFF (base 16) Shenzhen CUCO Technology Co., Ltd
Shenzhen Guangdong 418000 Shenzhen Guangdong 418000
CN CN
44-A9-2C (hex) uimcom 44-A9-2C (hex) NetX Networks a.s.
100000-1FFFFF (base 16) uimcom 400000-4FFFFF (base 16) NetX Networks a.s.
Yingying building, 99 Tuanjie Road, Pukou District, Nanjing Palackeho trida 811/112
nanjing 211800 Brno Czech Republic 62100
CN CZ
44-A9-2C (hex) Efficient Building Automation Corp. 44-A9-2C (hex) Efficient Building Automation Corp.
700000-7FFFFF (base 16) Efficient Building Automation Corp. 700000-7FFFFF (base 16) Efficient Building Automation Corp.
@ -22136,14 +22166,32 @@ A00000-AFFFFF (base 16) Waoo
Auckland 1150 Auckland 1150
NZ NZ
64-33-B5 (hex) LACO Technologies
800000-8FFFFF (base 16) LACO Technologies
3085 W Directors Row
Salt Lake City UT 84104
US
64-33-B5 (hex) electroCore Inc. 64-33-B5 (hex) electroCore Inc.
B00000-BFFFFF (base 16) electroCore Inc. B00000-BFFFFF (base 16) electroCore Inc.
205 Forge Way 205 Forge Way
Rockaway NJ 07866 Rockaway NJ 07866
US US
64-33-B5 (hex) LACO Technologies 64-33-B5 (hex) Eagle Eye Networks, Inc
800000-8FFFFF (base 16) LACO Technologies 400000-4FFFFF (base 16) Eagle Eye Networks, Inc
3085 W Directors Row 4611 Bee Cave Rd Suite 200
Salt Lake City UT 84104 austin TX 78746
US US
64-33-B5 (hex) MICROIT SRL
600000-6FFFFF (base 16) MICROIT SRL
Via Galileo Galilei 1
Medolla MODENA 41036
IT
64-33-B5 (hex) Annapurna labs
900000-9FFFFF (base 16) Annapurna labs
Matam Scientific Industries Center, Building 8.2
Mail box 15123 Haifa 3508409
IL

View File

@ -5255,6 +5255,24 @@ CE3000-CE3FFF (base 16) Pixel Design & Manufacturing Sdn. Bhd.
Tehran 0512258788 Tehran 0512258788
IR IR
8C-1F-64 (hex) Esys Srl
C1F000-C1FFFF (base 16) Esys Srl
via Spagna 240/242
Rende Calabria 87036
IT
8C-1F-64 (hex) Sicon srl
193000-193FFF (base 16) Sicon srl
Via Sila 1/3
Isola Vicentina Vicenza 36033
IT
8C-1F-64 (hex) YULISTA INTEGRATED SOLUTION
128000-128FFF (base 16) YULISTA INTEGRATED SOLUTION
7600 ADVANCED GATEWAY
HUNTSVILLE AL 35808
US
70-B3-D5 (hex) EVCO SPA 70-B3-D5 (hex) EVCO SPA
A80000-A80FFF (base 16) EVCO SPA A80000-A80FFF (base 16) EVCO SPA
VIA FELTRE N. 81 VIA FELTRE N. 81
@ -10475,6 +10493,24 @@ AA4000-AA4FFF (base 16) HEINEN ELEKTRONIK GmbH
Johannesburg Guateng 2170 Johannesburg Guateng 2170
ZA ZA
8C-1F-64 (hex) SVMS
3B5000-3B5FFF (base 16) SVMS
ZA de Berroueta
Urrugne 64122
FR
8C-1F-64 (hex) JUSTMORPH PTE. LTD.
AB5000-AB5FFF (base 16) JUSTMORPH PTE. LTD.
29A Mosque Street
Singapore 059507
SG
8C-1F-64 (hex) INFOSTECH Co., Ltd.
F86000-F86FFF (base 16) INFOSTECH Co., Ltd.
26, Namsan-ro 39beon-gil, Uichang-gu
Changwon-si Gyeongsangnam-do 51368
KR
70-B3-D5 (hex) System West dba ICS Electronics 70-B3-D5 (hex) System West dba ICS Electronics
E06000-E06FFF (base 16) System West dba ICS Electronics E06000-E06FFF (base 16) System West dba ICS Electronics
7034 Commerce Circle Suite A 7034 Commerce Circle Suite A
@ -15638,6 +15674,12 @@ DC9000-DC9FFF (base 16) Peter Huber Kaeltemaschinenbau AG
Duangzhou 511400 Duangzhou 511400
CN CN
8C-1F-64 (hex) Xacti Corporation
90E000-90EFFF (base 16) Xacti Corporation
Tower East 28F,Umeda Sky Building,1-1-88,Oyodonaka,Kita-ku
Osaka Osaka 531-6048
JP
70-B3-D5 (hex) YUYAMA MFG Co.,Ltd 70-B3-D5 (hex) YUYAMA MFG Co.,Ltd
BBB000-BBBFFF (base 16) YUYAMA MFG Co.,Ltd BBB000-BBBFFF (base 16) YUYAMA MFG Co.,Ltd
3-3-1 3-3-1
@ -20984,6 +21026,36 @@ AE1000-AE1FFF (base 16) YUYAMA MFG Co.,Ltd
Broomfield CO 80021 Broomfield CO 80021
US US
8C-1F-64 (hex) Cirrus Systems, Inc.
8C2000-8C2FFF (base 16) Cirrus Systems, Inc.
200 West Road
Portsmouth NH 03801
US
8C-1F-64 (hex) Florida R&D Associates LLC
2F5000-2F5FFF (base 16) Florida R&D Associates LLC
76 Spring Vista Drive
DeBary FL 32713
US
8C-1F-64 (hex) Sonora Network Solutions
2E8000-2E8FFF (base 16) Sonora Network Solutions
8 The Green Suite A
Dover DE 19901
US
8C-1F-64 (hex) Global Organ Group B.V.
EE8000-EE8FFF (base 16) Global Organ Group B.V.
Keplerlaan 2
EDE The Netherlands 6716BS
NL
8C-1F-64 (hex) UBISCALE
73F000-73FFFF (base 16) UBISCALE
1 Avenue de Bellefontaine
Cesson-Sevigne 35510
FR
70-B3-D5 (hex) DISMUNTEL SAL 70-B3-D5 (hex) DISMUNTEL SAL
92C000-92CFFF (base 16) DISMUNTEL SAL 92C000-92CFFF (base 16) DISMUNTEL SAL
Pol ind cotes Pol ind cotes
@ -26120,8 +26192,26 @@ A4E000-A4EFFF (base 16) Syscom Instruments SA
Sainte-Croix 1450 Sainte-Croix 1450
CH CH
8C-1F-64 (hex) Caproc Oy
D4A000-D4AFFF (base 16) Caproc Oy
Vintilänkatu 20
Lahti 15680
FI
8C-1F-64 (hex) KIB Energo LLC
D3C000-D3CFFF (base 16) KIB Energo LLC
Moskovskoe ave. 9
Saint-Petersburg 196158
RU
8C-1F-64 (hex) Nonet Inc 8C-1F-64 (hex) Nonet Inc
2A5000-2A5FFF (base 16) Nonet Inc 2A5000-2A5FFF (base 16) Nonet Inc
Daan Dist, Xinhai Road Section 1, No. 79, 5F Daan Dist, Xinhai Road Section 1, No. 79, 5F
Taipei Taipei 10647 Taipei Taipei 10647
TW TW
8C-1F-64 (hex) WBNet
1E3000-1E3FFF (base 16) WBNet
Drielse Wetering 17
Kerkdriel Gelderland 5331RK
NL

View File

@ -2477,6 +2477,13 @@
<tr class="odd"><td>Shenzhen KTC Technology Group</td><td>SKG</td><td>06/01/2021</td> </tr> <tr class="odd"><td>Shenzhen KTC Technology Group</td><td>SKG</td><td>06/01/2021</td> </tr>
<tr class="even"><td>Truly Semiconductors Ltd.</td><td>TLY</td><td>06/01/2021</td> </tr> <tr class="even"><td>Truly Semiconductors Ltd.</td><td>TLY</td><td>06/01/2021</td> </tr>
<tr class="odd"><td>Hitevision Group</td><td>HHT</td><td>03/08/2021</td> </tr> <tr class="odd"><td>Hitevision Group</td><td>HHT</td><td>03/08/2021</td> </tr>
<tr class="even"><td>DLOGIC Ltd.</td><td>DLM</td><td>06/10/2021</td> </tr>
<tr class="odd"><td>Fun Technology Innovation INC.</td><td>FUL</td><td>06/10/2021</td> </tr>
<tr class="even"><td>Guangxi Century Innovation Display Electronics Co., Ltd</td><td>IOC</td><td>06/10/2021</td> </tr>
<tr class="odd"><td>ICC Intelligent Platforms GmbH</td><td>EMR</td><td>06/10/2021</td> </tr>
<tr class="even"><td>New H3C Technology Co., Ltd.</td><td>NHC</td><td>06/10/2021</td> </tr>
<tr class="odd"><td>Seco S.p.A.</td><td>SCG</td><td>06/10/2021</td> </tr>
<tr class="even"><td>Silent Power Electronics GmbH</td><td>LCP</td><td>06/10/2021</td> </tr>
</tbody> </tbody>
</table> </table>
</body> </body>

View File

@ -2527,9 +2527,9 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(ss) BPFProgram = [...]; readonly a(ss) BPFProgram = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iqq) SocketBindAllow = [...]; readonly a(iiqq) SocketBindAllow = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iqq) SocketBindDeny = [...]; readonly a(iiqq) SocketBindDeny = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const") @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as Environment = ['...', ...]; readonly as Environment = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const") @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
@ -4331,9 +4331,9 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(ss) BPFProgram = [...]; readonly a(ss) BPFProgram = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iqq) SocketBindAllow = [...]; readonly a(iiqq) SocketBindAllow = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iqq) SocketBindDeny = [...]; readonly a(iiqq) SocketBindDeny = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const") @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as Environment = ['...', ...]; readonly as Environment = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const") @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
@ -6054,9 +6054,9 @@ node /org/freedesktop/systemd1/unit/home_2emount {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(ss) BPFProgram = [...]; readonly a(ss) BPFProgram = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iqq) SocketBindAllow = [...]; readonly a(iiqq) SocketBindAllow = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iqq) SocketBindDeny = [...]; readonly a(iiqq) SocketBindDeny = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const") @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as Environment = ['...', ...]; readonly as Environment = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const") @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
@ -7744,9 +7744,9 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(ss) BPFProgram = [...]; readonly a(ss) BPFProgram = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iqq) SocketBindAllow = [...]; readonly a(iiqq) SocketBindAllow = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iqq) SocketBindDeny = [...]; readonly a(iiqq) SocketBindDeny = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const") @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as Environment = ['...', ...]; readonly as Environment = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const") @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
@ -9259,9 +9259,9 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(ss) BPFProgram = [...]; readonly a(ss) BPFProgram = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iqq) SocketBindAllow = [...]; readonly a(iiqq) SocketBindAllow = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iqq) SocketBindDeny = [...]; readonly a(iiqq) SocketBindDeny = [...];
}; };
interface org.freedesktop.DBus.Peer { ... }; interface org.freedesktop.DBus.Peer { ... };
interface org.freedesktop.DBus.Introspectable { ... }; interface org.freedesktop.DBus.Introspectable { ... };
@ -9722,9 +9722,9 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(ss) BPFProgram = [...]; readonly a(ss) BPFProgram = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iqq) SocketBindAllow = [...]; readonly a(iiqq) SocketBindAllow = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iqq) SocketBindDeny = [...]; readonly a(iiqq) SocketBindDeny = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const") @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly s KillMode = '...'; readonly s KillMode = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("const") @org.freedesktop.DBus.Property.EmitsChangedSignal("const")

View File

@ -125,6 +125,7 @@ manpages = [
'SD_ID128_FORMAT_VAL', 'SD_ID128_FORMAT_VAL',
'SD_ID128_MAKE', 'SD_ID128_MAKE',
'SD_ID128_MAKE_STR', 'SD_ID128_MAKE_STR',
'SD_ID128_MAKE_UUID_STR',
'SD_ID128_NULL', 'SD_ID128_NULL',
'SD_ID128_UUID_FORMAT_STR', 'SD_ID128_UUID_FORMAT_STR',
'sd_id128_equal', 'sd_id128_equal',

View File

@ -24,6 +24,7 @@
<refname>SD_ID128_FORMAT_VAL</refname> <refname>SD_ID128_FORMAT_VAL</refname>
<refname>SD_ID128_MAKE</refname> <refname>SD_ID128_MAKE</refname>
<refname>SD_ID128_MAKE_STR</refname> <refname>SD_ID128_MAKE_STR</refname>
<refname>SD_ID128_MAKE_UUID_STR</refname>
<refname>SD_ID128_NULL</refname> <refname>SD_ID128_NULL</refname>
<refname>SD_ID128_UUID_FORMAT_STR</refname> <refname>SD_ID128_UUID_FORMAT_STR</refname>
<refname>sd_id128_equal</refname> <refname>sd_id128_equal</refname>
@ -121,10 +122,12 @@ int main(int argc, char **argv) {
return 0; return 0;
}</programlisting> }</programlisting>
<para><constant>SD_ID128_UUID_FORMAT_STR</constant> is similar to <para><constant>SD_ID128_UUID_FORMAT_STR</constant> and <function>SD_ID128_MAKE_UUID_STR()</function>
<constant>SD_ID128_FORMAT_STR</constant> but includes separating hyphens to conform to the "<ulink are similar to
url="https://en.wikipedia.org/wiki/Universally_unique_identifier#Format">canonical <constant>SD_ID128_FORMAT_STR</constant> and <function>SD_ID128_MAKE_STR()</function>,
representation</ulink>". This formats the string based on <ulink but include separating hyphens to conform to the
"<ulink url="https://en.wikipedia.org/wiki/Universally_unique_identifier#Format">canonical representation</ulink>".
They format the string based on <ulink
url="https://tools.ietf.org/html/rfc4122">RFC4122</ulink> Variant 1 rules, i.e. converting from Big url="https://tools.ietf.org/html/rfc4122">RFC4122</ulink> Variant 1 rules, i.e. converting from Big
Endian byte order. This matches behaviour of most other Linux userspace infrastructure. It's probably Endian byte order. This matches behaviour of most other Linux userspace infrastructure. It's probably
best to avoid UUIDs of other variants, in order to avoid unnecessary ambiguities. All 128-bit IDs best to avoid UUIDs of other variants, in order to avoid unnecessary ambiguities. All 128-bit IDs

View File

@ -1,7 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later # SPDX-License-Identifier: LGPL-2.1-or-later
project('systemd', 'c', project('systemd', 'c',
version : '248', version : '249',
license : 'LGPLv2+', license : 'LGPLv2+',
default_options: [ default_options: [
'c_std=gnu99', 'c_std=gnu99',
@ -13,8 +13,8 @@ project('systemd', 'c',
meson_version : '>= 0.46', meson_version : '>= 0.46',
) )
libsystemd_version = '0.31.0' libsystemd_version = '0.32.0'
libudev_version = '1.7.1' libudev_version = '1.7.2'
conf = configuration_data() conf = configuration_data()
conf.set_quoted('PROJECT_URL', 'https://www.freedesktop.org/wiki/Software/systemd') conf.set_quoted('PROJECT_URL', 'https://www.freedesktop.org/wiki/Software/systemd')

View File

@ -30,48 +30,22 @@
#define EFI_N_RETRIES_TOTAL 25 #define EFI_N_RETRIES_TOTAL 25
#define EFI_RETRY_DELAY (50 * USEC_PER_MSEC) #define EFI_RETRY_DELAY (50 * USEC_PER_MSEC)
char* efi_variable_path(sd_id128_t vendor, const char *name) {
char *p;
if (asprintf(&p,
"/sys/firmware/efi/efivars/%s-" SD_ID128_UUID_FORMAT_STR,
name, SD_ID128_FORMAT_VAL(vendor)) < 0)
return NULL;
return p;
}
static char* efi_variable_cache_path(sd_id128_t vendor, const char *name) {
char *p;
if (asprintf(&p,
"/run/systemd/efivars/%s-" SD_ID128_UUID_FORMAT_STR,
name, SD_ID128_FORMAT_VAL(vendor)) < 0)
return NULL;
return p;
}
int efi_get_variable( int efi_get_variable(
sd_id128_t vendor, const char *variable,
const char *name,
uint32_t *ret_attribute, uint32_t *ret_attribute,
void **ret_value, void **ret_value,
size_t *ret_size) { size_t *ret_size) {
_cleanup_close_ int fd = -1; _cleanup_close_ int fd = -1;
_cleanup_free_ char *p = NULL;
_cleanup_free_ void *buf = NULL; _cleanup_free_ void *buf = NULL;
struct stat st; struct stat st;
usec_t begin = 0; /* Unnecessary initialization to appease gcc */ usec_t begin = 0; /* Unnecessary initialization to appease gcc */
uint32_t a; uint32_t a;
ssize_t n; ssize_t n;
assert(name); assert(variable);
p = efi_variable_path(vendor, name); const char *p = strjoina("/sys/firmware/efi/efivars/", variable);
if (!p)
return -ENOMEM;
if (!ret_value && !ret_size && !ret_attribute) { if (!ret_value && !ret_size && !ret_attribute) {
/* If caller is not interested in anything, just check if the variable exists and is /* If caller is not interested in anything, just check if the variable exists and is
@ -136,7 +110,8 @@ int efi_get_variable(
return log_debug_errno(errno, "Failed to read value of EFI variable %s: %m", p); return log_debug_errno(errno, "Failed to read value of EFI variable %s: %m", p);
assert(n <= st.st_size - 4); assert(n <= st.st_size - 4);
/* Always NUL terminate (3 bytes, to properly protect UTF-16, even if truncated in the middle of a character) */ /* Always NUL-terminate (3 bytes, to properly protect UTF-16, even if truncated in the middle
* of a character) */
((char*) buf)[n] = 0; ((char*) buf)[n] = 0;
((char*) buf)[n + 1] = 0; ((char*) buf)[n + 1] = 0;
((char*) buf)[n + 2] = 0; ((char*) buf)[n + 2] = 0;
@ -150,8 +125,8 @@ int efi_get_variable(
end = now(CLOCK_MONOTONIC); end = now(CLOCK_MONOTONIC);
if (end > begin + EFI_RETRY_DELAY) if (end > begin + EFI_RETRY_DELAY)
log_debug("Detected slow EFI variable read access on " SD_ID128_FORMAT_STR "-%s: %s", log_debug("Detected slow EFI variable read access on %s: %s",
SD_ID128_FORMAT_VAL(vendor), name, format_timespan(ts, sizeof(ts), end - begin, 1)); variable, format_timespan(ts, sizeof(ts), end - begin, 1));
} }
/* Note that efivarfs interestingly doesn't require ftruncate() to update an existing EFI variable /* Note that efivarfs interestingly doesn't require ftruncate() to update an existing EFI variable
@ -169,13 +144,13 @@ int efi_get_variable(
return 0; return 0;
} }
int efi_get_variable_string(sd_id128_t vendor, const char *name, char **p) { int efi_get_variable_string(const char *variable, char **p) {
_cleanup_free_ void *s = NULL; _cleanup_free_ void *s = NULL;
size_t ss = 0; size_t ss = 0;
int r; int r;
char *x; char *x;
r = efi_get_variable(vendor, name, NULL, &s, &ss); r = efi_get_variable(variable, NULL, &s, &ss);
if (r < 0) if (r < 0)
return r; return r;
@ -187,28 +162,20 @@ int efi_get_variable_string(sd_id128_t vendor, const char *name, char **p) {
return 0; return 0;
} }
int efi_set_variable( int efi_set_variable(const char *variable, const void *value, size_t size) {
sd_id128_t vendor,
const char *name,
const void *value,
size_t size) {
struct var { struct var {
uint32_t attr; uint32_t attr;
char buf[]; char buf[];
} _packed_ * _cleanup_free_ buf = NULL; } _packed_ * _cleanup_free_ buf = NULL;
_cleanup_free_ char *p = NULL;
_cleanup_close_ int fd = -1; _cleanup_close_ int fd = -1;
bool saved_flags_valid = false; bool saved_flags_valid = false;
unsigned saved_flags; unsigned saved_flags;
int r; int r;
assert(name); assert(variable);
assert(value || size == 0); assert(value || size == 0);
p = efi_variable_path(vendor, name); const char *p = strjoina("/sys/firmware/efi/efivars/", variable);
if (!p)
return -ENOMEM;
/* Newer efivarfs protects variables that are not in an allow list with FS_IMMUTABLE_FL by default, /* Newer efivarfs protects variables that are not in an allow list with FS_IMMUTABLE_FL by default,
* to protect them for accidental removal and modification. We are not changing these variables * to protect them for accidental removal and modification. We are not changing these variables
@ -274,14 +241,14 @@ finish:
return r; return r;
} }
int efi_set_variable_string(sd_id128_t vendor, const char *name, const char *v) { int efi_set_variable_string(const char *variable, const char *value) {
_cleanup_free_ char16_t *u16 = NULL; _cleanup_free_ char16_t *u16 = NULL;
u16 = utf8_to_utf16(v, strlen(v)); u16 = utf8_to_utf16(value, strlen(value));
if (!u16) if (!u16)
return -ENOMEM; return -ENOMEM;
return efi_set_variable(vendor, name, u16, (char16_strlen(u16) + 1) * sizeof(char16_t)); return efi_set_variable(variable, u16, (char16_strlen(u16) + 1) * sizeof(char16_t));
} }
bool is_efi_boot(void) { bool is_efi_boot(void) {
@ -300,7 +267,7 @@ bool is_efi_boot(void) {
return cache; return cache;
} }
static int read_flag(const char *varname) { static int read_flag(const char *variable) {
_cleanup_free_ void *v = NULL; _cleanup_free_ void *v = NULL;
uint8_t b; uint8_t b;
size_t s; size_t s;
@ -309,7 +276,7 @@ static int read_flag(const char *varname) {
if (!is_efi_boot()) /* If this is not an EFI boot, assume the queried flags are zero */ if (!is_efi_boot()) /* If this is not an EFI boot, assume the queried flags are zero */
return 0; return 0;
r = efi_get_variable(EFI_VENDOR_GLOBAL, varname, NULL, &v, &s); r = efi_get_variable(variable, NULL, &v, &s);
if (r < 0) if (r < 0)
return r; return r;
@ -324,7 +291,7 @@ bool is_efi_secure_boot(void) {
static int cache = -1; static int cache = -1;
if (cache < 0) if (cache < 0)
cache = read_flag("SecureBoot"); cache = read_flag(EFI_GLOBAL_VARIABLE(SecureBoot));
return cache > 0; return cache > 0;
} }
@ -333,13 +300,12 @@ bool is_efi_secure_boot_setup_mode(void) {
static int cache = -1; static int cache = -1;
if (cache < 0) if (cache < 0)
cache = read_flag("SetupMode"); cache = read_flag(EFI_GLOBAL_VARIABLE(SetupMode));
return cache > 0; return cache > 0;
} }
int cache_efi_options_variable(void) { static int read_efi_options_variable(char **line) {
_cleanup_free_ char *line = NULL, *cachepath = NULL;
int r; int r;
/* In SecureBoot mode this is probably not what you want. As your cmdline is cryptographically signed /* In SecureBoot mode this is probably not what you want. As your cmdline is cryptographically signed
@ -350,39 +316,39 @@ int cache_efi_options_variable(void) {
* (NB: For testing purposes, we still check the $SYSTEMD_EFI_OPTIONS env var before accessing this * (NB: For testing purposes, we still check the $SYSTEMD_EFI_OPTIONS env var before accessing this
* cache, even when in SecureBoot mode.) */ * cache, even when in SecureBoot mode.) */
if (is_efi_secure_boot()) { if (is_efi_secure_boot()) {
_cleanup_free_ char *k = NULL;
k = efi_variable_path(EFI_VENDOR_SYSTEMD, "SystemdOptions");
if (!k)
return -ENOMEM;
/* Let's be helpful with the returned error and check if the variable exists at all. If it /* Let's be helpful with the returned error and check if the variable exists at all. If it
* does, let's return a recognizable error (EPERM), and if not ENODATA. */ * does, let's return a recognizable error (EPERM), and if not ENODATA. */
if (access(k, F_OK) < 0) if (access(EFIVAR_PATH(EFI_SYSTEMD_VARIABLE(SystemdOptions)), F_OK) < 0)
return errno == ENOENT ? -ENODATA : -errno; return errno == ENOENT ? -ENODATA : -errno;
return -EPERM; return -EPERM;
} }
r = efi_get_variable_string(EFI_VENDOR_SYSTEMD, "SystemdOptions", &line); r = efi_get_variable_string(EFI_SYSTEMD_VARIABLE(SystemdOptions), line);
if (r == -ENOENT) if (r == -ENOENT)
return -ENODATA; return -ENODATA;
return r;
}
int cache_efi_options_variable(void) {
_cleanup_free_ char *line = NULL;
int r;
r = read_efi_options_variable(&line);
if (r < 0) if (r < 0)
return r; return r;
cachepath = efi_variable_cache_path(EFI_VENDOR_SYSTEMD, "SystemdOptions"); return write_string_file(EFIVAR_CACHE_PATH(EFI_SYSTEMD_VARIABLE(SystemdOptions)), line,
if (!cachepath) WRITE_STRING_FILE_ATOMIC|WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_MKDIR_0755);
return -ENOMEM;
return write_string_file(cachepath, line, WRITE_STRING_FILE_ATOMIC|WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_MKDIR_0755);
} }
int systemd_efi_options_variable(char **line) { int systemd_efi_options_variable(char **line) {
const char *e; const char *e;
_cleanup_free_ char *cachepath = NULL;
int r; int r;
/* Returns the contents of the variable for current boot from the cache. */
assert(line); assert(line);
/* For testing purposes it is sometimes useful to be able to override this */ /* For testing purposes it is sometimes useful to be able to override this */
@ -398,11 +364,37 @@ int systemd_efi_options_variable(char **line) {
return 0; return 0;
} }
cachepath = efi_variable_cache_path(EFI_VENDOR_SYSTEMD, "SystemdOptions"); r = read_one_line_file(EFIVAR_CACHE_PATH(EFI_SYSTEMD_VARIABLE(SystemdOptions)), line);
if (!cachepath) if (r == -ENOENT)
return -ENOMEM; return -ENODATA;
return r;
}
r = read_one_line_file(cachepath, line); static inline int compare_stat_mtime(const struct stat *a, const struct stat *b) {
return CMP(timespec_load(&a->st_mtim), timespec_load(&b->st_mtim));
}
int systemd_efi_options_efivarfs_if_newer(char **line) {
struct stat a = {}, b;
int r;
if (stat(EFIVAR_PATH(EFI_SYSTEMD_VARIABLE(SystemdOptions)), &a) < 0 && errno != ENOENT)
return log_debug_errno(errno, "Failed to stat EFI variable SystemdOptions: %m");
if (stat(EFIVAR_CACHE_PATH(EFI_SYSTEMD_VARIABLE(SystemdOptions)), &b) < 0) {
if (errno != -ENOENT)
log_debug_errno(errno, "Failed to stat "EFIVAR_CACHE_PATH(EFI_SYSTEMD_VARIABLE(SystemdOptions))": %m");
} else if (compare_stat_mtime(&a, &b) > 0)
log_debug("Variable SystemdOptions in evifarfs is newer than in cache.");
else {
log_debug("Variable SystemdOptions in cache is up to date.");
*line = NULL;
return 0;
}
r = read_efi_options_variable(line);
if (r < 0)
log_warning_errno(r, "Failed to read SystemdOptions EFI variable: %m");
if (r == -ENOENT) if (r == -ENOENT)
return -ENODATA; return -ENODATA;
return r; return r;

View File

@ -13,19 +13,38 @@
#include "time-util.h" #include "time-util.h"
#define EFI_VENDOR_LOADER SD_ID128_MAKE(4a,67,b0,82,0a,4c,41,cf,b6,c7,44,0b,29,bb,8c,4f) #define EFI_VENDOR_LOADER SD_ID128_MAKE(4a,67,b0,82,0a,4c,41,cf,b6,c7,44,0b,29,bb,8c,4f)
#define EFI_VENDOR_LOADER_STR SD_ID128_MAKE_UUID_STR(4a,67,b0,82,0a,4c,41,cf,b6,c7,44,0b,29,bb,8c,4f)
#define EFI_VENDOR_GLOBAL SD_ID128_MAKE(8b,e4,df,61,93,ca,11,d2,aa,0d,00,e0,98,03,2b,8c) #define EFI_VENDOR_GLOBAL SD_ID128_MAKE(8b,e4,df,61,93,ca,11,d2,aa,0d,00,e0,98,03,2b,8c)
#define EFI_VENDOR_GLOBAL_STR SD_ID128_MAKE_UUID_STR(8b,e4,df,61,93,ca,11,d2,aa,0d,00,e0,98,03,2b,8c)
#define EFI_VENDOR_SYSTEMD SD_ID128_MAKE(8c,f2,64,4b,4b,0b,42,8f,93,87,6d,87,60,50,dc,67) #define EFI_VENDOR_SYSTEMD SD_ID128_MAKE(8c,f2,64,4b,4b,0b,42,8f,93,87,6d,87,60,50,dc,67)
#define EFI_VENDOR_SYSTEMD_STR SD_ID128_MAKE_UUID_STR(8c,f2,64,4b,4b,0b,42,8f,93,87,6d,87,60,50,dc,67)
#define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001 #define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001
#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002 #define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002
#define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004 #define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004
/* Note that the <lowercaseuuid>-<varname> naming scheme is an efivarfs convention, i.e. part of the Linux
* API file system implementation for EFI. EFI itself processes UIDS in binary form.
*/
#define EFI_VENDOR_VARIABLE_STR(vendor, name) name "-" vendor
#define EFI_GLOBAL_VARIABLE_STR(name) EFI_VENDOR_VARIABLE_STR(EFI_VENDOR_GLOBAL_STR, name)
#define EFI_LOADER_VARIABLE_STR(name) EFI_VENDOR_VARIABLE_STR(EFI_VENDOR_LOADER_STR, name)
#define EFI_SYSTEMD_VARIABLE_STR(name) EFI_VENDOR_VARIABLE_STR(EFI_VENDOR_SYSTEMD_STR, name)
#define EFI_GLOBAL_VARIABLE(name) EFI_GLOBAL_VARIABLE_STR(STRINGIFY(name))
#define EFI_LOADER_VARIABLE(name) EFI_LOADER_VARIABLE_STR(STRINGIFY(name))
#define EFI_SYSTEMD_VARIABLE(name) EFI_SYSTEMD_VARIABLE_STR(STRINGIFY(name))
#define EFIVAR_PATH(variable) "/sys/firmware/efi/efivars/" variable
#define EFIVAR_CACHE_PATH(variable) "/run/systemd/efivars/" variable
#if ENABLE_EFI #if ENABLE_EFI
char* efi_variable_path(sd_id128_t vendor, const char *name); int efi_get_variable(const char *variable, uint32_t *attribute, void **value, size_t *size);
int efi_get_variable(sd_id128_t vendor, const char *name, uint32_t *attribute, void **value, size_t *size); int efi_get_variable_string(const char *variable, char **p);
int efi_get_variable_string(sd_id128_t vendor, const char *name, char **p); int efi_set_variable(const char *variable, const void *value, size_t size);
int efi_set_variable(sd_id128_t vendor, const char *name, const void *value, size_t size); int efi_set_variable_string(const char *variable, const char *p);
int efi_set_variable_string(sd_id128_t vendor, const char *name, const char *p);
bool is_efi_boot(void); bool is_efi_boot(void);
bool is_efi_secure_boot(void); bool is_efi_secure_boot(void);
@ -33,26 +52,23 @@ bool is_efi_secure_boot_setup_mode(void);
int cache_efi_options_variable(void); int cache_efi_options_variable(void);
int systemd_efi_options_variable(char **line); int systemd_efi_options_variable(char **line);
int systemd_efi_options_efivarfs_if_newer(char **line);
#else #else
static inline char* efi_variable_path(sd_id128_t vendor, const char *name) { static inline int efi_get_variable(const char *variable, uint32_t *attribute, void **value, size_t *size) {
return NULL;
}
static inline int efi_get_variable(sd_id128_t vendor, const char *name, uint32_t *attribute, void **value, size_t *size) {
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
static inline int efi_get_variable_string(sd_id128_t vendor, const char *name, char **p) { static inline int efi_get_variable_string(const char *variable, char **p) {
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
static inline int efi_set_variable(sd_id128_t vendor, const char *name, const void *value, size_t size) { static inline int efi_set_variable(const char *variable, const void *value, size_t size) {
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
static inline int efi_set_variable_string(sd_id128_t vendor, const char *name, const char *p) { static inline int efi_set_variable_string(const char *variable, const char *p) {
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
@ -76,4 +92,7 @@ static inline int systemd_efi_options_variable(char **line) {
return -ENODATA; return -ENODATA;
} }
static inline int systemd_efi_options_efivarfs_if_newer(char **line) {
return -ENODATA;
}
#endif #endif

View File

@ -47,7 +47,7 @@ int main(int argc, char *argv[]) {
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
if (access("/sys/firmware/efi/efivars/LoaderBootCountPath-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f", F_OK) < 0) { if (access(EFIVAR_PATH(EFI_LOADER_VARIABLE(LoaderBootCountPath)), F_OK) < 0) {
if (errno == ENOENT) { if (errno == ENOENT) {
log_debug_errno(errno, "Skipping generator, not booted with boot counting in effect."); log_debug_errno(errno, "Skipping generator, not booted with boot counting in effect.");

View File

@ -212,7 +212,7 @@ static int acquire_boot_count_path(
uint64_t left, done; uint64_t left, done;
int r; int r;
r = efi_get_variable_string(EFI_VENDOR_LOADER, "LoaderBootCountPath", &path); r = efi_get_variable_string(EFI_LOADER_VARIABLE(LoaderBootCountPath), &path);
if (r == -ENOENT) if (r == -ENOENT)
return -EUNATCH; /* in this case, let the caller print a message */ return -EUNATCH; /* in this case, let the caller print a message */
if (r < 0) if (r < 0)

View File

@ -288,7 +288,7 @@ static int print_efi_option(uint16_t id, bool in_order) {
static int status_variables(void) { static int status_variables(void) {
_cleanup_free_ uint16_t *options = NULL, *order = NULL; _cleanup_free_ uint16_t *options = NULL, *order = NULL;
int n_options, n_order, i; int n_options, n_order;
n_options = efi_get_boot_options(&options); n_options = efi_get_boot_options(&options);
if (n_options == -ENOENT) if (n_options == -ENOENT)
@ -306,14 +306,12 @@ static int status_variables(void) {
/* print entries in BootOrder first */ /* print entries in BootOrder first */
printf("Boot Loaders Listed in EFI Variables:\n"); printf("Boot Loaders Listed in EFI Variables:\n");
for (i = 0; i < n_order; i++) for (int i = 0; i < n_order; i++)
print_efi_option(order[i], true); print_efi_option(order[i], true);
/* print remaining entries */ /* print remaining entries */
for (i = 0; i < n_options; i++) { for (int i = 0; i < n_options; i++) {
int j; for (int j = 0; j < n_order; j++)
for (j = 0; j < n_order; j++)
if (options[i] == order[j]) if (options[i] == order[j])
goto next_option; goto next_option;
@ -726,7 +724,7 @@ static int find_slot(sd_id128_t uuid, const char *path, uint16_t *id) {
static int insert_into_order(uint16_t slot, bool first) { static int insert_into_order(uint16_t slot, bool first) {
_cleanup_free_ uint16_t *order = NULL; _cleanup_free_ uint16_t *order = NULL;
uint16_t *t; uint16_t *t;
int n, i; int n;
n = efi_get_boot_order(&order); n = efi_get_boot_order(&order);
if (n <= 0) if (n <= 0)
@ -738,7 +736,7 @@ static int insert_into_order(uint16_t slot, bool first) {
return 0; return 0;
/* are we already in the boot order? */ /* are we already in the boot order? */
for (i = 0; i < n; i++) { for (int i = 0; i < n; i++) {
if (order[i] != slot) if (order[i] != slot)
continue; continue;
@ -770,13 +768,13 @@ static int insert_into_order(uint16_t slot, bool first) {
static int remove_from_order(uint16_t slot) { static int remove_from_order(uint16_t slot) {
_cleanup_free_ uint16_t *order = NULL; _cleanup_free_ uint16_t *order = NULL;
int n, i; int n;
n = efi_get_boot_order(&order); n = efi_get_boot_order(&order);
if (n <= 0) if (n <= 0)
return n; return n;
for (i = 0; i < n; i++) { for (int i = 0; i < n; i++) {
if (order[i] != slot) if (order[i] != slot)
continue; continue;
@ -979,29 +977,29 @@ static int remove_variables(sd_id128_t uuid, const char *path, bool in_order) {
} }
static int remove_loader_variables(void) { static int remove_loader_variables(void) {
const char *p; const char *variable;
int r = 0; int r = 0;
/* Remove all persistent loader variables we define */ /* Remove all persistent loader variables we define */
FOREACH_STRING(p, FOREACH_STRING(variable,
"LoaderConfigTimeout", EFI_LOADER_VARIABLE(LoaderConfigTimeout),
"LoaderConfigTimeoutOneShot", EFI_LOADER_VARIABLE(LoaderConfigTimeoutOneShot),
"LoaderEntryDefault", EFI_LOADER_VARIABLE(LoaderEntryDefault),
"LoaderEntryOneShot", EFI_LOADER_VARIABLE(LoaderEntryOneShot),
"LoaderSystemToken") { EFI_LOADER_VARIABLE(LoaderSystemToken)){
int q; int q;
q = efi_set_variable(EFI_VENDOR_LOADER, p, NULL, 0); q = efi_set_variable(variable, NULL, 0);
if (q == -ENOENT) if (q == -ENOENT)
continue; continue;
if (q < 0) { if (q < 0) {
log_warning_errno(q, "Failed to remove %s variable: %m", p); log_warning_errno(q, "Failed to remove EFI variable %s: %m", variable);
if (r >= 0) if (r >= 0)
r = q; r = q;
} else } else
log_info("Removed EFI variable %s.", p); log_info("Removed EFI variable %s.", variable);
} }
return r; return r;
@ -1224,12 +1222,12 @@ static int parse_argv(int argc, char *argv[]) {
return 1; return 1;
} }
static void read_loader_efi_var(const char *name, char **var) { static void read_efi_var(const char *variable, char **ret) {
int r; int r;
r = efi_get_variable_string(EFI_VENDOR_LOADER, name, var); r = efi_get_variable_string(variable, ret);
if (r < 0 && r != -ENOENT) if (r < 0 && r != -ENOENT)
log_warning_errno(r, "Failed to read EFI variable %s: %m", name); log_warning_errno(r, "Failed to read EFI variable %s: %m", variable);
} }
static void print_yes_no_line(bool first, bool good, const char *name) { static void print_yes_no_line(bool first, bool good, const char *name) {
@ -1295,13 +1293,13 @@ static int verb_status(int argc, char *argv[], void *userdata) {
_cleanup_free_ char *fw_type = NULL, *fw_info = NULL, *loader = NULL, *loader_path = NULL, *stub = NULL; _cleanup_free_ char *fw_type = NULL, *fw_info = NULL, *loader = NULL, *loader_path = NULL, *stub = NULL;
sd_id128_t loader_part_uuid = SD_ID128_NULL; sd_id128_t loader_part_uuid = SD_ID128_NULL;
uint64_t loader_features = 0; uint64_t loader_features = 0;
size_t i; int have;
read_loader_efi_var("LoaderFirmwareType", &fw_type); read_efi_var(EFI_LOADER_VARIABLE(LoaderFirmwareType), &fw_type);
read_loader_efi_var("LoaderFirmwareInfo", &fw_info); read_efi_var(EFI_LOADER_VARIABLE(LoaderFirmwareInfo), &fw_info);
read_loader_efi_var("LoaderInfo", &loader); read_efi_var(EFI_LOADER_VARIABLE(LoaderInfo), &loader);
read_loader_efi_var("StubInfo", &stub); read_efi_var(EFI_LOADER_VARIABLE(StubInfo), &stub);
read_loader_efi_var("LoaderImageIdentifier", &loader_path); read_efi_var(EFI_LOADER_VARIABLE(LoaderImageIdentifier), &loader_path);
(void) efi_loader_get_features(&loader_features); (void) efi_loader_get_features(&loader_features);
if (loader_path) if (loader_path)
@ -1333,7 +1331,7 @@ static int verb_status(int argc, char *argv[], void *userdata) {
printf("Current Boot Loader:\n"); printf("Current Boot Loader:\n");
printf(" Product: %s%s%s\n", ansi_highlight(), strna(loader), ansi_normal()); printf(" Product: %s%s%s\n", ansi_highlight(), strna(loader), ansi_normal());
for (i = 0; i < ELEMENTSOF(flags); i++) for (size_t i = 0; i < ELEMENTSOF(flags); i++)
print_yes_no_line(i == 0, FLAGS_SET(loader_features, flags[i].flag), flags[i].name); print_yes_no_line(i == 0, FLAGS_SET(loader_features, flags[i].flag), flags[i].name);
sd_id128_t bootloader_esp_uuid; sd_id128_t bootloader_esp_uuid;
@ -1354,8 +1352,10 @@ static int verb_status(int argc, char *argv[], void *userdata) {
printf("\n"); printf("\n");
printf("Random Seed:\n"); printf("Random Seed:\n");
printf(" Passed to OS: %s\n", yes_no(access("/sys/firmware/efi/efivars/LoaderRandomSeed-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f", F_OK) >= 0)); have = access(EFIVAR_PATH(EFI_LOADER_VARIABLE(LoaderRandomSeed)), F_OK) >= 0;
printf(" System Token: %s\n", access("/sys/firmware/efi/efivars/LoaderSystemToken-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f", F_OK) >= 0 ? "set" : "not set"); printf(" Passed to OS: %s\n", yes_no(have));
have = access(EFIVAR_PATH(EFI_LOADER_VARIABLE(LoaderSystemToken)), F_OK) >= 0;
printf(" System Token: %s\n", have ? "set" : "not set");
if (arg_esp_path) { if (arg_esp_path) {
_cleanup_free_ char *p = NULL; _cleanup_free_ char *p = NULL;
@ -1364,7 +1364,8 @@ static int verb_status(int argc, char *argv[], void *userdata) {
if (!p) if (!p)
return log_oom(); return log_oom();
printf(" Exists: %s\n", yes_no(access(p, F_OK) >= 0)); have = access(p, F_OK) >= 0;
printf(" Exists: %s\n", yes_no(have));
} }
printf("\n"); printf("\n");
@ -1428,13 +1429,11 @@ static int verb_list(int argc, char *argv[], void *userdata) {
if (config.n_entries == 0) if (config.n_entries == 0)
log_info("No boot loader entries found."); log_info("No boot loader entries found.");
else { else {
size_t n;
(void) pager_open(arg_pager_flags); (void) pager_open(arg_pager_flags);
printf("Boot Loader Entries:\n"); printf("Boot Loader Entries:\n");
for (n = 0; n < config.n_entries; n++) { for (size_t n = 0; n < config.n_entries; n++) {
r = boot_entry_show(config.entries + n, n == (size_t) config.default_entry); r = boot_entry_show(config.entries + n, n == (size_t) config.default_entry);
if (r < 0) if (r < 0)
return r; return r;
@ -1539,7 +1538,7 @@ static int install_random_seed(const char *esp) {
return 0; return 0;
} }
r = efi_get_variable(EFI_VENDOR_LOADER, "LoaderSystemToken", NULL, NULL, &token_size); r = efi_get_variable(EFI_LOADER_VARIABLE(LoaderSystemToken), NULL, NULL, &token_size);
if (r == -ENODATA) if (r == -ENODATA)
log_debug_errno(r, "LoaderSystemToken EFI variable is invalid (too short?), replacing."); log_debug_errno(r, "LoaderSystemToken EFI variable is invalid (too short?), replacing.");
else if (r < 0) { else if (r < 0) {
@ -1563,7 +1562,7 @@ static int install_random_seed(const char *esp) {
* and possibly get identification information or too much insight into the kernel's entropy pool * and possibly get identification information or too much insight into the kernel's entropy pool
* state. */ * state. */
RUN_WITH_UMASK(0077) { RUN_WITH_UMASK(0077) {
r = efi_set_variable(EFI_VENDOR_LOADER, "LoaderSystemToken", buffer, sz); r = efi_set_variable(EFI_LOADER_VARIABLE(LoaderSystemToken), buffer, sz);
if (r < 0) { if (r < 0) {
if (!arg_graceful) if (!arg_graceful)
return log_error_errno(r, "Failed to write 'LoaderSystemToken' EFI variable: %m"); return log_error_errno(r, "Failed to write 'LoaderSystemToken' EFI variable: %m");
@ -1764,15 +1763,15 @@ static int verb_is_installed(int argc, char *argv[], void *userdata) {
static int parse_loader_entry_target_arg(const char *arg1, char16_t **ret_target, size_t *ret_target_size) { static int parse_loader_entry_target_arg(const char *arg1, char16_t **ret_target, size_t *ret_target_size) {
int r; int r;
if (streq(arg1, "@current")) { if (streq(arg1, "@current")) {
r = efi_get_variable(EFI_VENDOR_LOADER, "LoaderEntrySelected", NULL, (void *) ret_target, ret_target_size); r = efi_get_variable(EFI_LOADER_VARIABLE(LoaderEntrySelected), NULL, (void *) ret_target, ret_target_size);
if (r < 0) if (r < 0)
return log_error_errno(r, "Failed to get EFI variable 'LoaderEntrySelected': %m"); return log_error_errno(r, "Failed to get EFI variable 'LoaderEntrySelected': %m");
} else if (streq(arg1, "@oneshot")) { } else if (streq(arg1, "@oneshot")) {
r = efi_get_variable(EFI_VENDOR_LOADER, "LoaderEntryOneShot", NULL, (void *) ret_target, ret_target_size); r = efi_get_variable(EFI_LOADER_VARIABLE(LoaderEntryOneShot), NULL, (void *) ret_target, ret_target_size);
if (r < 0) if (r < 0)
return log_error_errno(r, "Failed to get EFI variable 'LoaderEntryOneShot': %m"); return log_error_errno(r, "Failed to get EFI variable 'LoaderEntryOneShot': %m");
} else if (streq(arg1, "@default")) { } else if (streq(arg1, "@default")) {
r = efi_get_variable(EFI_VENDOR_LOADER, "LoaderEntryDefault", NULL, (void *) ret_target, ret_target_size); r = efi_get_variable(EFI_LOADER_VARIABLE(LoaderEntryDefault), NULL, (void *) ret_target, ret_target_size);
if (r < 0) if (r < 0)
return log_error_errno(r, "Failed to get EFI variable 'LoaderEntryDefault': %m"); return log_error_errno(r, "Failed to get EFI variable 'LoaderEntryDefault': %m");
} else { } else {
@ -1787,14 +1786,13 @@ static int parse_loader_entry_target_arg(const char *arg1, char16_t **ret_target
} }
static int verb_set_default(int argc, char *argv[], void *userdata) { static int verb_set_default(int argc, char *argv[], void *userdata) {
const char *name;
int r; int r;
if (!is_efi_boot()) if (!is_efi_boot())
return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
"Not booted with UEFI."); "Not booted with UEFI.");
if (access("/sys/firmware/efi/efivars/LoaderInfo-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f", F_OK) < 0) { if (access(EFIVAR_PATH(EFI_LOADER_VARIABLE(LoaderInfo)), F_OK) < 0) {
if (errno == ENOENT) { if (errno == ENOENT) {
log_error_errno(errno, "Not booted with a supported boot loader."); log_error_errno(errno, "Not booted with a supported boot loader.");
return -EOPNOTSUPP; return -EOPNOTSUPP;
@ -1813,12 +1811,13 @@ static int verb_set_default(int argc, char *argv[], void *userdata) {
"'%s' operation cannot be combined with --touch-variables=no.", "'%s' operation cannot be combined with --touch-variables=no.",
argv[0]); argv[0]);
name = streq(argv[0], "set-default") ? "LoaderEntryDefault" : "LoaderEntryOneShot"; const char *variable = streq(argv[0], "set-default") ?
EFI_LOADER_VARIABLE(LoaderEntryDefault) : EFI_LOADER_VARIABLE(LoaderEntryOneShot);
if (isempty(argv[1])) { if (isempty(argv[1])) {
r = efi_set_variable(EFI_VENDOR_LOADER, name, NULL, 0); r = efi_set_variable(variable, NULL, 0);
if (r < 0 && r != -ENOENT) if (r < 0 && r != -ENOENT)
return log_error_errno(r, "Failed to remove EFI variable '%s': %m", name); return log_error_errno(r, "Failed to remove EFI variable '%s': %m", variable);
} else { } else {
_cleanup_free_ char16_t *target = NULL; _cleanup_free_ char16_t *target = NULL;
size_t target_size = 0; size_t target_size = 0;
@ -1826,9 +1825,9 @@ static int verb_set_default(int argc, char *argv[], void *userdata) {
r = parse_loader_entry_target_arg(argv[1], &target, &target_size); r = parse_loader_entry_target_arg(argv[1], &target, &target_size);
if (r < 0) if (r < 0)
return r; return r;
r = efi_set_variable(EFI_VENDOR_LOADER, name, target, target_size); r = efi_set_variable(variable, target, target_size);
if (r < 0) if (r < 0)
return log_error_errno(r, "Failed to update EFI variable '%s': %m", name); return log_error_errno(r, "Failed to update EFI variable '%s': %m", variable);
} }
return 0; return 0;
@ -1861,16 +1860,27 @@ static int verb_systemd_efi_options(int argc, char *argv[], void *userdata) {
int r; int r;
if (argc == 1) { if (argc == 1) {
_cleanup_free_ char *line = NULL; _cleanup_free_ char *line = NULL, *new = NULL;
r = systemd_efi_options_variable(&line); r = systemd_efi_options_variable(&line);
if (r < 0) if (r == -ENODATA)
return log_error_errno(r, "Failed to query SystemdOptions EFI variable: %m"); log_debug("No SystemdOptions EFI variable present in cache.");
else if (r < 0)
return log_error_errno(r, "Failed to read SystemdOptions EFI variable from cache: %m");
else
puts(line); puts(line);
r = systemd_efi_options_efivarfs_if_newer(&new);
if (r == -ENODATA) {
if (line)
log_notice("Note: SystemdOptions EFI variable has been removed since boot.");
} else if (r < 0)
log_warning_errno(r, "Failed to check SystemdOptions EFI variable in efivarfs, ignoring: %m");
else if (new && !streq_ptr(line, new))
log_notice("Note: SystemdOptions EFI variable has been modified since boot. New value: %s",
new);
} else { } else {
r = efi_set_variable_string(EFI_VENDOR_SYSTEMD, "SystemdOptions", argv[1]); r = efi_set_variable_string(EFI_SYSTEMD_VARIABLE(SystemdOptions), argv[1]);
if (r < 0) if (r < 0)
return log_error_errno(r, "Failed to set SystemdOptions EFI variable: %m"); return log_error_errno(r, "Failed to set SystemdOptions EFI variable: %m");
} }

View File

@ -104,7 +104,8 @@ struct CGroupBPFForeignProgram {
struct CGroupSocketBindItem { struct CGroupSocketBindItem {
LIST_FIELDS(CGroupSocketBindItem, socket_bind_items); LIST_FIELDS(CGroupSocketBindItem, socket_bind_items);
int address_family; int32_t address_family;
int32_t ip_protocol;
uint16_t nr_ports; uint16_t nr_ports;
uint16_t port_min; uint16_t port_min;
}; };

View File

@ -389,12 +389,12 @@ static int property_get_socket_bind(
assert(items); assert(items);
r = sd_bus_message_open_container(reply, 'a', "(iqq)"); r = sd_bus_message_open_container(reply, 'a', "(iiqq)");
if (r < 0) if (r < 0)
return r; return r;
LIST_FOREACH(socket_bind_items, i, *items) { LIST_FOREACH(socket_bind_items, i, *items) {
r = sd_bus_message_append(reply, "(iqq)", i->address_family, i->nr_ports, i->port_min); r = sd_bus_message_append(reply, "(iiqq)", i->address_family, i->ip_protocol, i->nr_ports, i->port_min);
if (r < 0) if (r < 0)
return r; return r;
} }
@ -454,8 +454,8 @@ const sd_bus_vtable bus_cgroup_vtable[] = {
SD_BUS_PROPERTY("ManagedOOMMemoryPressureLimit", "u", NULL, offsetof(CGroupContext, moom_mem_pressure_limit), 0), SD_BUS_PROPERTY("ManagedOOMMemoryPressureLimit", "u", NULL, offsetof(CGroupContext, moom_mem_pressure_limit), 0),
SD_BUS_PROPERTY("ManagedOOMPreference", "s", property_get_managed_oom_preference, offsetof(CGroupContext, moom_preference), 0), SD_BUS_PROPERTY("ManagedOOMPreference", "s", property_get_managed_oom_preference, offsetof(CGroupContext, moom_preference), 0),
SD_BUS_PROPERTY("BPFProgram", "a(ss)", property_get_bpf_foreign_program, 0, 0), SD_BUS_PROPERTY("BPFProgram", "a(ss)", property_get_bpf_foreign_program, 0, 0),
SD_BUS_PROPERTY("SocketBindAllow", "a(iqq)", property_get_socket_bind, offsetof(CGroupContext, socket_bind_allow), 0), SD_BUS_PROPERTY("SocketBindAllow", "a(iiqq)", property_get_socket_bind, offsetof(CGroupContext, socket_bind_allow), 0),
SD_BUS_PROPERTY("SocketBindDeny", "a(iqq)", property_get_socket_bind, offsetof(CGroupContext, socket_bind_deny), 0), SD_BUS_PROPERTY("SocketBindDeny", "a(iiqq)", property_get_socket_bind, offsetof(CGroupContext, socket_bind_deny), 0),
SD_BUS_VTABLE_END SD_BUS_VTABLE_END
}; };
@ -1882,19 +1882,22 @@ int bus_cgroup_set_property(
CGroupSocketBindItem **list; CGroupSocketBindItem **list;
uint16_t nr_ports, port_min; uint16_t nr_ports, port_min;
size_t n = 0; size_t n = 0;
int family; int32_t family, ip_protocol;
list = streq(name, "SocketBindAllow") ? &c->socket_bind_allow : &c->socket_bind_deny; list = streq(name, "SocketBindAllow") ? &c->socket_bind_allow : &c->socket_bind_deny;
r = sd_bus_message_enter_container(message, 'a', "(iqq)"); r = sd_bus_message_enter_container(message, 'a', "(iiqq)");
if (r < 0) if (r < 0)
return r; return r;
while ((r = sd_bus_message_read(message, "(iqq)", &family, &nr_ports, &port_min)) > 0) { while ((r = sd_bus_message_read(message, "(iiqq)", &family, &ip_protocol, &nr_ports, &port_min)) > 0) {
if (!IN_SET(family, AF_UNSPEC, AF_INET, AF_INET6)) if (!IN_SET(family, AF_UNSPEC, AF_INET, AF_INET6))
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "%s= expects INET or INET6 family, if specified.", name); return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "%s= expects INET or INET6 family, if specified.", name);
if (ip_protocol != 0)
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "%s= expects ip protocol equals to 0, for the time being.", name);
if (port_min + (uint32_t) nr_ports > (1 << 16)) if (port_min + (uint32_t) nr_ports > (1 << 16))
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "%s= expects maximum port value lesser than 65536.", name); return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "%s= expects maximum port value lesser than 65536.", name);
@ -1910,6 +1913,7 @@ int bus_cgroup_set_property(
*item = (CGroupSocketBindItem) { *item = (CGroupSocketBindItem) {
.address_family = family, .address_family = family,
.ip_protocol = ip_protocol,
.nr_ports = nr_ports, .nr_ports = nr_ports,
.port_min = port_min .port_min = port_min
}; };

View File

@ -27,8 +27,8 @@ static void lock_down_efi_variables(void) {
* identify the system or gain too much insight into what we might have credited to the entropy * identify the system or gain too much insight into what we might have credited to the entropy
* pool. */ * pool. */
FOREACH_STRING(p, FOREACH_STRING(p,
"/sys/firmware/efi/efivars/LoaderRandomSeed-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f", EFIVAR_PATH(EFI_LOADER_VARIABLE(LoaderRandomSeed)),
"/sys/firmware/efi/efivars/LoaderSystemToken-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f") { EFIVAR_PATH(EFI_LOADER_VARIABLE(LoaderSystemToken))) {
r = chattr_path(p, 0, FS_IMMUTABLE_FL, NULL); r = chattr_path(p, 0, FS_IMMUTABLE_FL, NULL);
if (r == -ENOENT) if (r == -ENOENT)
@ -61,7 +61,7 @@ int efi_take_random_seed(void) {
return 0; return 0;
} }
r = efi_get_variable(EFI_VENDOR_LOADER, "LoaderRandomSeed", NULL, &value, &size); r = efi_get_variable(EFI_LOADER_VARIABLE(LoaderRandomSeed), NULL, &value, &size);
if (r == -EOPNOTSUPP) { if (r == -EOPNOTSUPP) {
log_debug_errno(r, "System lacks EFI support, not initializing random seed from EFI variable."); log_debug_errno(r, "System lacks EFI support, not initializing random seed from EFI variable.");
return 0; return 0;

View File

@ -5687,6 +5687,8 @@ int config_parse_cgroup_socket_bind(
return log_oom(); return log_oom();
*item = (CGroupSocketBindItem) { *item = (CGroupSocketBindItem) {
.address_family = af, .address_family = af,
/* No ip protocol specified for now. */
.ip_protocol = 0,
.nr_ports = nr_ports, .nr_ports = nr_ports,
.port_min = port_min, .port_min = port_min,
}; };

View File

@ -2868,12 +2868,12 @@ static int method_set_reboot_to_boot_loader_menu(
if (use_efi) { if (use_efi) {
if (x == UINT64_MAX) if (x == UINT64_MAX)
r = efi_set_variable(EFI_VENDOR_LOADER, "LoaderConfigTimeoutOneShot", NULL, 0); r = efi_set_variable(EFI_LOADER_VARIABLE(LoaderConfigTimeoutOneShot), NULL, 0);
else { else {
char buf[DECIMAL_STR_MAX(uint64_t) + 1]; char buf[DECIMAL_STR_MAX(uint64_t) + 1];
xsprintf(buf, "%" PRIu64, DIV_ROUND_UP(x, USEC_PER_SEC)); /* second granularity */ xsprintf(buf, "%" PRIu64, DIV_ROUND_UP(x, USEC_PER_SEC)); /* second granularity */
r = efi_set_variable_string(EFI_VENDOR_LOADER, "LoaderConfigTimeoutOneShot", buf); r = efi_set_variable_string(EFI_LOADER_VARIABLE(LoaderConfigTimeoutOneShot), buf);
} }
if (r < 0) if (r < 0)
return r; return r;
@ -3071,9 +3071,9 @@ static int method_set_reboot_to_boot_loader_entry(
if (use_efi) { if (use_efi) {
if (isempty(v)) if (isempty(v))
/* Delete item */ /* Delete item */
r = efi_set_variable(EFI_VENDOR_LOADER, "LoaderEntryOneShot", NULL, 0); r = efi_set_variable(EFI_LOADER_VARIABLE(LoaderEntryOneShot), NULL, 0);
else else
r = efi_set_variable_string(EFI_VENDOR_LOADER, "LoaderEntryOneShot", v); r = efi_set_variable_string(EFI_LOADER_VARIABLE(LoaderEntryOneShot), v);
if (r < 0) if (r < 0)
return r; return r;
} else { } else {

View File

@ -4419,7 +4419,7 @@ static int parse_efi_variable_factory_reset(void) {
if (!in_initrd()) /* Never honour EFI variable factory reset request outside of the initrd */ if (!in_initrd()) /* Never honour EFI variable factory reset request outside of the initrd */
return 0; return 0;
r = efi_get_variable_string(EFI_VENDOR_SYSTEMD, "FactoryReset", &value); r = efi_get_variable_string(EFI_SYSTEMD_VARIABLE(FactoryReset), &value);
if (r == -ENOENT || ERRNO_IS_NOT_SUPPORTED(r)) if (r == -ENOENT || ERRNO_IS_NOT_SUPPORTED(r))
return 0; return 0;
if (r < 0) if (r < 0)
@ -4439,7 +4439,7 @@ static int parse_efi_variable_factory_reset(void) {
static int remove_efi_variable_factory_reset(void) { static int remove_efi_variable_factory_reset(void) {
int r; int r;
r = efi_set_variable(EFI_VENDOR_SYSTEMD, "FactoryReset", NULL, 0); r = efi_set_variable(EFI_SYSTEMD_VARIABLE(FactoryReset), NULL, 0);
if (r == -ENOENT || ERRNO_IS_NOT_SUPPORTED(r)) if (r == -ENOENT || ERRNO_IS_NOT_SUPPORTED(r))
return 0; return 0;
if (r < 0) if (r < 0)

View File

@ -677,14 +677,14 @@ int boot_entries_load_config(
return log_error_errno(r, "Failed to uniquify boot entries: %m"); return log_error_errno(r, "Failed to uniquify boot entries: %m");
if (is_efi_boot()) { if (is_efi_boot()) {
r = efi_get_variable_string(EFI_VENDOR_LOADER, "LoaderEntryOneShot", &config->entry_oneshot); r = efi_get_variable_string(EFI_LOADER_VARIABLE(LoaderEntryOneShot), &config->entry_oneshot);
if (r < 0 && !IN_SET(r, -ENOENT, -ENODATA)) { if (r < 0 && !IN_SET(r, -ENOENT, -ENODATA)) {
log_warning_errno(r, "Failed to read EFI variable \"LoaderEntryOneShot\": %m"); log_warning_errno(r, "Failed to read EFI variable \"LoaderEntryOneShot\": %m");
if (r == -ENOMEM) if (r == -ENOMEM)
return r; return r;
} }
r = efi_get_variable_string(EFI_VENDOR_LOADER, "LoaderEntryDefault", &config->entry_default); r = efi_get_variable_string(EFI_LOADER_VARIABLE(LoaderEntryDefault), &config->entry_default);
if (r < 0 && !IN_SET(r, -ENOENT, -ENODATA)) { if (r < 0 && !IN_SET(r, -ENOENT, -ENODATA)) {
log_warning_errno(r, "Failed to read EFI variable \"LoaderEntryDefault\": %m"); log_warning_errno(r, "Failed to read EFI variable \"LoaderEntryDefault\": %m");
if (r == -ENOMEM) if (r == -ENOMEM)
@ -776,7 +776,7 @@ int boot_entries_augment_from_loader(
break; break;
} }
p = efi_variable_path(EFI_VENDOR_LOADER, "LoaderEntries"); p = strdup(EFIVAR_PATH(EFI_LOADER_VARIABLE(LoaderEntries)));
if (!p) if (!p)
return log_oom(); return log_oom();

View File

@ -866,11 +866,12 @@ static int bus_append_cgroup_property(sd_bus_message *m, const char *field, cons
if (STR_IN_SET(field, "SocketBindAllow", if (STR_IN_SET(field, "SocketBindAllow",
"SocketBindDeny")) { "SocketBindDeny")) {
if (isempty(eq)) if (isempty(eq))
r = sd_bus_message_append(m, "(sv)", field, "a(iqq)", 0); r = sd_bus_message_append(m, "(sv)", field, "a(iiqq)", 0);
else { else {
/* No ip protocol specified for now. */
int32_t family = AF_UNSPEC, ip_protocol = 0;
const char *address_family, *user_port; const char *address_family, *user_port;
_cleanup_free_ char *word = NULL; _cleanup_free_ char *word = NULL;
int family = AF_UNSPEC;
r = extract_first_word(&eq, &word, ":", 0); r = extract_first_word(&eq, &word, ":", 0);
if (r == -ENOMEM) if (r == -ENOMEM)
@ -888,7 +889,7 @@ static int bus_append_cgroup_property(sd_bus_message *m, const char *field, cons
user_port = eq ? eq : word; user_port = eq ? eq : word;
if (streq(user_port, "any")) { if (streq(user_port, "any")) {
r = sd_bus_message_append(m, "(sv)", field, "a(iqq)", 1, family, 0, 0); r = sd_bus_message_append(m, "(sv)", field, "a(iiqq)", 1, family, ip_protocol, 0, 0);
if (r < 0) if (r < 0)
return bus_log_create_error(r); return bus_log_create_error(r);
} else { } else {
@ -901,7 +902,7 @@ static int bus_append_cgroup_property(sd_bus_message *m, const char *field, cons
return log_error_errno(r, "Invalid port or port range: %s", user_port); return log_error_errno(r, "Invalid port or port range: %s", user_port);
r = sd_bus_message_append( r = sd_bus_message_append(
m, "(sv)", field, "a(iqq)", 1, family, port_max - port_min + 1, port_min); m, "(sv)", field, "a(iiqq)", 1, family, ip_protocol, port_max - port_min + 1, port_min);
} }
} }
if (r < 0) if (r < 0)

View File

@ -82,7 +82,7 @@ int efi_reboot_to_firmware_supported(void) {
if (!is_efi_boot()) if (!is_efi_boot())
goto not_supported; goto not_supported;
r = efi_get_variable(EFI_VENDOR_GLOBAL, "OsIndicationsSupported", NULL, &v, &s); r = efi_get_variable(EFI_GLOBAL_VARIABLE(OsIndicationsSupported), NULL, &v, &s);
if (r == -ENOENT) if (r == -ENOENT)
goto not_supported; /* variable doesn't exist? it's not supported then */ goto not_supported; /* variable doesn't exist? it's not supported then */
if (r < 0) if (r < 0)
@ -105,7 +105,6 @@ not_supported:
static int get_os_indications(uint64_t *ret) { static int get_os_indications(uint64_t *ret) {
static struct stat cache_stat = {}; static struct stat cache_stat = {};
_cleanup_free_ void *v = NULL; _cleanup_free_ void *v = NULL;
_cleanup_free_ char *fn = NULL;
static uint64_t cache; static uint64_t cache;
struct stat new_stat; struct stat new_stat;
size_t s; size_t s;
@ -118,12 +117,8 @@ static int get_os_indications(uint64_t *ret) {
if (r < 0) if (r < 0)
return r; return r;
fn = efi_variable_path(EFI_VENDOR_GLOBAL, "OsIndications");
if (!fn)
return -ENOMEM;
/* stat() the EFI variable, to see if the mtime changed. If it did we need to cache again. */ /* stat() the EFI variable, to see if the mtime changed. If it did we need to cache again. */
if (stat(fn, &new_stat) < 0) { if (stat(EFIVAR_PATH(EFI_GLOBAL_VARIABLE(OsIndications)), &new_stat) < 0) {
if (errno != ENOENT) if (errno != ENOENT)
return -errno; return -errno;
@ -137,7 +132,7 @@ static int get_os_indications(uint64_t *ret) {
return 0; return 0;
} }
r = efi_get_variable(EFI_VENDOR_GLOBAL, "OsIndications", NULL, &v, &s); r = efi_get_variable(EFI_GLOBAL_VARIABLE(OsIndications), NULL, &v, &s);
if (r == -ENOENT) { if (r == -ENOENT) {
/* Some firmware implementations that do support OsIndications and report that with /* Some firmware implementations that do support OsIndications and report that with
* OsIndicationsSupported will remove the OsIndications variable when it is unset. Let's * OsIndicationsSupported will remove the OsIndications variable when it is unset. Let's
@ -180,7 +175,7 @@ int efi_set_reboot_to_firmware(bool value) {
/* Avoid writing to efi vars store if we can due to firmware bugs. */ /* Avoid writing to efi vars store if we can due to firmware bugs. */
if (b != b_new) if (b != b_new)
return efi_set_variable(EFI_VENDOR_GLOBAL, "OsIndications", &b_new, sizeof(uint64_t)); return efi_set_variable(EFI_GLOBAL_VARIABLE(OsIndications), &b_new, sizeof(uint64_t));
return 0; return 0;
} }
@ -235,7 +230,7 @@ int efi_get_boot_option(
char **path, char **path,
bool *active) { bool *active) {
char boot_id[9]; char variable[STRLEN(EFI_GLOBAL_VARIABLE_STR("Boot")) + 4 + 1];
_cleanup_free_ uint8_t *buf = NULL; _cleanup_free_ uint8_t *buf = NULL;
size_t l; size_t l;
struct boot_option *header; struct boot_option *header;
@ -247,8 +242,8 @@ int efi_get_boot_option(
if (!is_efi_boot()) if (!is_efi_boot())
return -EOPNOTSUPP; return -EOPNOTSUPP;
xsprintf(boot_id, "Boot%04X", id); xsprintf(variable, EFI_GLOBAL_VARIABLE_STR("Boot%04X"), id);
r = efi_get_variable(EFI_VENDOR_GLOBAL, boot_id, NULL, (void **)&buf, &l); r = efi_get_variable(variable, NULL, (void **)&buf, &l);
if (r < 0) if (r < 0)
return r; return r;
if (l < offsetof(struct boot_option, title)) if (l < offsetof(struct boot_option, title))
@ -350,9 +345,7 @@ static void id128_to_efi_guid(sd_id128_t id, void *guid) {
} }
static uint16_t *tilt_slashes(uint16_t *s) { static uint16_t *tilt_slashes(uint16_t *s) {
uint16_t *p; for (uint16_t *p = s; *p; p++)
for (p = s; *p; p++)
if (*p == '/') if (*p == '/')
*p = '\\'; *p = '\\';
@ -372,7 +365,7 @@ int efi_add_boot_option(
_cleanup_free_ char *buf = NULL; _cleanup_free_ char *buf = NULL;
struct boot_option *option; struct boot_option *option;
struct device_path *devicep; struct device_path *devicep;
char boot_id[9]; char variable[STRLEN(EFI_GLOBAL_VARIABLE_STR("Boot")) + 4 + 1];
if (!is_efi_boot()) if (!is_efi_boot())
return -EOPNOTSUPP; return -EOPNOTSUPP;
@ -424,18 +417,18 @@ int efi_add_boot_option(
devicep->length = offsetof(struct device_path, path); devicep->length = offsetof(struct device_path, path);
size += devicep->length; size += devicep->length;
xsprintf(boot_id, "Boot%04X", id); xsprintf(variable, EFI_GLOBAL_VARIABLE_STR("Boot%04X"), id);
return efi_set_variable(EFI_VENDOR_GLOBAL, boot_id, buf, size); return efi_set_variable(variable, buf, size);
} }
int efi_remove_boot_option(uint16_t id) { int efi_remove_boot_option(uint16_t id) {
char boot_id[9]; char variable[STRLEN(EFI_GLOBAL_VARIABLE_STR("Boot")) + 4 + 1];
if (!is_efi_boot()) if (!is_efi_boot())
return -EOPNOTSUPP; return -EOPNOTSUPP;
xsprintf(boot_id, "Boot%04X", id); xsprintf(variable, EFI_GLOBAL_VARIABLE_STR("Boot%04X"), id);
return efi_set_variable(EFI_VENDOR_GLOBAL, boot_id, NULL, 0); return efi_set_variable(variable, NULL, 0);
} }
int efi_get_boot_order(uint16_t **order) { int efi_get_boot_order(uint16_t **order) {
@ -446,7 +439,7 @@ int efi_get_boot_order(uint16_t **order) {
if (!is_efi_boot()) if (!is_efi_boot())
return -EOPNOTSUPP; return -EOPNOTSUPP;
r = efi_get_variable(EFI_VENDOR_GLOBAL, "BootOrder", NULL, &buf, &l); r = efi_get_variable(EFI_GLOBAL_VARIABLE(BootOrder), NULL, &buf, &l);
if (r < 0) if (r < 0)
return r; return r;
@ -466,15 +459,15 @@ int efi_set_boot_order(uint16_t *order, size_t n) {
if (!is_efi_boot()) if (!is_efi_boot())
return -EOPNOTSUPP; return -EOPNOTSUPP;
return efi_set_variable(EFI_VENDOR_GLOBAL, "BootOrder", order, n * sizeof(uint16_t)); return efi_set_variable(EFI_GLOBAL_VARIABLE(BootOrder), order, n * sizeof(uint16_t));
} }
static int boot_id_hex(const char s[static 4]) { static int boot_id_hex(const char s[static 4]) {
int id = 0, i; int id = 0;
assert(s); assert(s);
for (i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
if (s[i] >= '0' && s[i] <= '9') if (s[i] >= '0' && s[i] <= '9')
id |= (s[i] - '0') << (3 - i) * 4; id |= (s[i] - '0') << (3 - i) * 4;
else if (s[i] >= 'A' && s[i] <= 'F') else if (s[i] >= 'A' && s[i] <= 'F')
@ -500,7 +493,7 @@ int efi_get_boot_options(uint16_t **options) {
if (!is_efi_boot()) if (!is_efi_boot())
return -EOPNOTSUPP; return -EOPNOTSUPP;
dir = opendir("/sys/firmware/efi/efivars/"); dir = opendir(EFIVAR_PATH("."));
if (!dir) if (!dir)
return -errno; return -errno;
@ -513,7 +506,7 @@ int efi_get_boot_options(uint16_t **options) {
if (strlen(de->d_name) != 45) if (strlen(de->d_name) != 45)
continue; continue;
if (strcmp(de->d_name + 8, "-8be4df61-93ca-11d2-aa0d-00e098032b8c") != 0) if (strcmp(de->d_name + 8, EFI_GLOBAL_VARIABLE_STR("")) != 0) /* generate variable suffix using macro */
continue; continue;
id = boot_id_hex(de->d_name + 4); id = boot_id_hex(de->d_name + 4);
@ -533,15 +526,15 @@ int efi_get_boot_options(uint16_t **options) {
return count; return count;
} }
static int read_usec(sd_id128_t vendor, const char *name, usec_t *u) { static int read_usec(const char *variable, usec_t *u) {
_cleanup_free_ char *j = NULL; _cleanup_free_ char *j = NULL;
int r; int r;
uint64_t x = 0; uint64_t x = 0;
assert(name); assert(variable);
assert(u); assert(u);
r = efi_get_variable_string(EFI_VENDOR_LOADER, name, &j); r = efi_get_variable_string(variable, &j);
if (r < 0) if (r < 0)
return r; return r;
@ -563,11 +556,11 @@ int efi_loader_get_boot_usec(usec_t *firmware, usec_t *loader) {
if (!is_efi_boot()) if (!is_efi_boot())
return -EOPNOTSUPP; return -EOPNOTSUPP;
r = read_usec(EFI_VENDOR_LOADER, "LoaderTimeInitUSec", &x); r = read_usec(EFI_LOADER_VARIABLE(LoaderTimeInitUSec), &x);
if (r < 0) if (r < 0)
return log_debug_errno(r, "Failed to read LoaderTimeInitUSec: %m"); return log_debug_errno(r, "Failed to read LoaderTimeInitUSec: %m");
r = read_usec(EFI_VENDOR_LOADER, "LoaderTimeExecUSec", &y); r = read_usec(EFI_LOADER_VARIABLE(LoaderTimeExecUSec), &y);
if (r < 0) if (r < 0)
return log_debug_errno(r, "Failed to read LoaderTimeExecUSec: %m"); return log_debug_errno(r, "Failed to read LoaderTimeExecUSec: %m");
@ -589,7 +582,7 @@ int efi_loader_get_device_part_uuid(sd_id128_t *u) {
if (!is_efi_boot()) if (!is_efi_boot())
return -EOPNOTSUPP; return -EOPNOTSUPP;
r = efi_get_variable_string(EFI_VENDOR_LOADER, "LoaderDevicePartUUID", &p); r = efi_get_variable_string(EFI_LOADER_VARIABLE(LoaderDevicePartUUID), &p);
if (r < 0) if (r < 0)
return r; return r;
@ -600,12 +593,9 @@ int efi_loader_get_device_part_uuid(sd_id128_t *u) {
&parsed[12], &parsed[13], &parsed[14], &parsed[15]) != 16) &parsed[12], &parsed[13], &parsed[14], &parsed[15]) != 16)
return -EIO; return -EIO;
if (u) { if (u)
unsigned i; for (unsigned i = 0; i < ELEMENTSOF(parsed); i++)
for (i = 0; i < ELEMENTSOF(parsed); i++)
u->bytes[i] = parsed[i]; u->bytes[i] = parsed[i];
}
return 0; return 0;
} }
@ -613,7 +603,7 @@ int efi_loader_get_device_part_uuid(sd_id128_t *u) {
int efi_loader_get_entries(char ***ret) { int efi_loader_get_entries(char ***ret) {
_cleanup_free_ char16_t *entries = NULL; _cleanup_free_ char16_t *entries = NULL;
_cleanup_strv_free_ char **l = NULL; _cleanup_strv_free_ char **l = NULL;
size_t size, i, start; size_t size;
int r; int r;
assert(ret); assert(ret);
@ -621,13 +611,13 @@ int efi_loader_get_entries(char ***ret) {
if (!is_efi_boot()) if (!is_efi_boot())
return -EOPNOTSUPP; return -EOPNOTSUPP;
r = efi_get_variable(EFI_VENDOR_LOADER, "LoaderEntries", NULL, (void**) &entries, &size); r = efi_get_variable(EFI_LOADER_VARIABLE(LoaderEntries), NULL, (void**) &entries, &size);
if (r < 0) if (r < 0)
return r; return r;
/* The variable contains a series of individually NUL terminated UTF-16 strings. */ /* The variable contains a series of individually NUL terminated UTF-16 strings. */
for (i = 0, start = 0;; i++) { for (size_t i = 0, start = 0;; i++) {
_cleanup_free_ char *decoded = NULL; _cleanup_free_ char *decoded = NULL;
bool end; bool end;
@ -673,12 +663,12 @@ int efi_loader_get_features(uint64_t *ret) {
return 0; return 0;
} }
r = efi_get_variable(EFI_VENDOR_LOADER, "LoaderFeatures", NULL, &v, &s); r = efi_get_variable(EFI_LOADER_VARIABLE(LoaderFeatures), NULL, &v, &s);
if (r == -ENOENT) { if (r == -ENOENT) {
_cleanup_free_ char *info = NULL; _cleanup_free_ char *info = NULL;
/* The new (v240+) LoaderFeatures variable is not supported, let's see if it's systemd-boot at all */ /* The new (v240+) LoaderFeatures variable is not supported, let's see if it's systemd-boot at all */
r = efi_get_variable_string(EFI_VENDOR_LOADER, "LoaderInfo", &info); r = efi_get_variable_string(EFI_LOADER_VARIABLE(LoaderInfo), &info);
if (r < 0) { if (r < 0) {
if (r != -ENOENT) if (r != -ENOENT)
return r; return r;
@ -713,7 +703,7 @@ int efi_loader_get_features(uint64_t *ret) {
} }
int efi_loader_get_config_timeout_one_shot(usec_t *ret) { int efi_loader_get_config_timeout_one_shot(usec_t *ret) {
_cleanup_free_ char *v = NULL, *fn = NULL; _cleanup_free_ char *v = NULL;
static struct stat cache_stat = {}; static struct stat cache_stat = {};
struct stat new_stat; struct stat new_stat;
static usec_t cache; static usec_t cache;
@ -722,12 +712,8 @@ int efi_loader_get_config_timeout_one_shot(usec_t *ret) {
assert(ret); assert(ret);
fn = efi_variable_path(EFI_VENDOR_LOADER, "LoaderConfigTimeoutOneShot"); /* stat() the EFI variable, to see if the mtime changed. If it did, we need to cache again. */
if (!fn) if (stat(EFIVAR_PATH(EFI_LOADER_VARIABLE(LoaderConfigTimeoutOneShot)), &new_stat) < 0)
return -ENOMEM;
/* stat() the EFI variable, to see if the mtime changed. If it did we need to cache again. */
if (stat(fn, &new_stat) < 0)
return -errno; return -errno;
if (stat_inode_unmodified(&new_stat, &cache_stat)) { if (stat_inode_unmodified(&new_stat, &cache_stat)) {
@ -735,7 +721,7 @@ int efi_loader_get_config_timeout_one_shot(usec_t *ret) {
return 0; return 0;
} }
r = efi_get_variable_string(EFI_VENDOR_LOADER, "LoaderConfigTimeoutOneShot", &v); r = efi_get_variable_string(EFI_LOADER_VARIABLE(LoaderConfigTimeoutOneShot), &v);
if (r < 0) if (r < 0)
return r; return r;
@ -751,25 +737,21 @@ int efi_loader_get_config_timeout_one_shot(usec_t *ret) {
} }
int efi_loader_update_entry_one_shot_cache(char **cache, struct stat *cache_stat) { int efi_loader_update_entry_one_shot_cache(char **cache, struct stat *cache_stat) {
_cleanup_free_ char *fn = NULL, *v = NULL; _cleanup_free_ char *v = NULL;
struct stat new_stat; struct stat new_stat;
int r; int r;
assert(cache); assert(cache);
assert(cache_stat); assert(cache_stat);
fn = efi_variable_path(EFI_VENDOR_LOADER, "LoaderEntryOneShot");
if (!fn)
return -ENOMEM;
/* stat() the EFI variable, to see if the mtime changed. If it did we need to cache again. */ /* stat() the EFI variable, to see if the mtime changed. If it did we need to cache again. */
if (stat(fn, &new_stat) < 0) if (stat(EFIVAR_PATH(EFI_LOADER_VARIABLE(LoaderEntryOneShot)), &new_stat) < 0)
return -errno; return -errno;
if (stat_inode_unmodified(&new_stat, cache_stat)) if (stat_inode_unmodified(&new_stat, cache_stat))
return 0; return 0;
r = efi_get_variable_string(EFI_VENDOR_LOADER, "LoaderEntryOneShot", &v); r = efi_get_variable_string(EFI_LOADER_VARIABLE(LoaderEntryOneShot), &v);
if (r < 0) if (r < 0)
return r; return r;
@ -808,7 +790,6 @@ bool efi_has_tpm2(void) {
#endif #endif
bool efi_loader_entry_name_valid(const char *s) { bool efi_loader_entry_name_valid(const char *s) {
if (!filename_is_valid(s)) /* Make sure entry names fit in filenames */ if (!filename_is_valid(s)) /* Make sure entry names fit in filenames */
return false; return false;
@ -816,9 +797,7 @@ bool efi_loader_entry_name_valid(const char *s) {
} }
char *efi_tilt_backslashes(char *s) { char *efi_tilt_backslashes(char *s) {
char *p; for (char *p = s; *p; p++)
for (p = s; *p; p++)
if (*p == '\\') if (*p == '\\')
*p = '/'; *p = '/';

View File

@ -1712,12 +1712,12 @@ static int print_property(const char *name, const char *expected_value, sd_bus_m
return 1; return 1;
} else if (STR_IN_SET(name, "SocketBindAllow", "SocketBindDeny")) { } else if (STR_IN_SET(name, "SocketBindAllow", "SocketBindDeny")) {
uint16_t nr_ports, port_min; uint16_t nr_ports, port_min;
int af; int32_t af, ip_protocol;
r = sd_bus_message_enter_container(m, SD_BUS_TYPE_ARRAY, "(iqq)"); r = sd_bus_message_enter_container(m, SD_BUS_TYPE_ARRAY, "(iiqq)");
if (r < 0) if (r < 0)
return bus_log_parse_error(r); return bus_log_parse_error(r);
while ((r = sd_bus_message_read(m, "(iqq)", &af, &nr_ports, &port_min)) > 0) { while ((r = sd_bus_message_read(m, "(iiqq)", &af, &ip_protocol, &nr_ports, &port_min)) > 0) {
const char *family, *colon; const char *family, *colon;
family = strempty(af_to_ipv4_ipv6(af)); family = strempty(af_to_ipv4_ipv6(af));

View File

@ -107,6 +107,9 @@ int sd_id128_get_boot_app_specific(sd_id128_t app_id, sd_id128_t *ret);
#define SD_ID128_MAKE_STR(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) \ #define SD_ID128_MAKE_STR(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) \
#a #b #c #d #e #f #g #h #i #j #k #l #m #n #o #p #a #b #c #d #e #f #g #h #i #j #k #l #m #n #o #p
#define SD_ID128_MAKE_UUID_STR(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) \
#a #b #c #d "-" #e #f "-" #g #h "-" #i #j "-" #k #l #m #n #o #p
_sd_pure_ static __inline__ int sd_id128_equal(sd_id128_t a, sd_id128_t b) { _sd_pure_ static __inline__ int sd_id128_equal(sd_id128_t a, sd_id128_t b) {
return memcmp(&a, &b, 16) == 0; return memcmp(&a, &b, 16) == 0;
} }

View File

@ -104,6 +104,7 @@ fi
BASICTOOLS=( BASICTOOLS=(
awk awk
base64
basename basename
bash bash
busybox busybox

View File

@ -2,6 +2,21 @@
set -eux set -eux
set -o pipefail set -o pipefail
# Limit the maximum journal size
trap "journalctl --rotate --vacuum-size=16M" EXIT
# Rotation/flush test, see https://github.com/systemd/systemd/issues/19895
journalctl --relinquish-var
for i in {0..50}; do
dd if=/dev/urandom bs=1M count=1 | base64 | systemd-cat
done
journalctl --rotate
journalctl --flush
journalctl --sync
# Reset the ratelimit buckets for the subsequent tests below.
systemctl restart systemd-journald
# Test stdout stream # Test stdout stream
# Skip empty lines # Skip empty lines