mirror of
https://github.com/systemd/systemd
synced 2025-11-21 01:34:44 +01:00
Compare commits
No commits in common. "4a875b9b856985a4b14398bc647497a5cb483e49" and "e2b38ddd5f273074e03a48ee277090322561859d" have entirely different histories.
4a875b9b85
...
e2b38ddd5f
2
.github/workflows/mkosi.yml
vendored
2
.github/workflows/mkosi.yml
vendored
@ -87,7 +87,7 @@ jobs:
|
|||||||
relabel: no
|
relabel: no
|
||||||
vm: 0
|
vm: 0
|
||||||
- distro: fedora
|
- distro: fedora
|
||||||
release: "43"
|
release: "42"
|
||||||
sanitizers: address,undefined
|
sanitizers: address,undefined
|
||||||
llvm: 1
|
llvm: 1
|
||||||
cflags: "-Og"
|
cflags: "-Og"
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found.
|
|||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
Version 2.1, February 1999
|
Version 2.1, February 1999
|
||||||
|
|
||||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
|
|||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
You should have received a copy of the GNU Lesser General Public
|
||||||
License along with this library; if not, write to the Free Software
|
License along with this library; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@ GNU LIBRARY GENERAL PUBLIC LICENSE
|
|||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
|
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
|
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
@ -158,7 +158,7 @@ To apply these terms, attach the following notices to the library. It is safest
|
|||||||
|
|
||||||
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.
|
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -396,9 +396,6 @@ acpi:UBLX*:
|
|||||||
acpi:UBOO*:
|
acpi:UBOO*:
|
||||||
ID_VENDOR_FROM_DATABASE=Das U-Boot
|
ID_VENDOR_FROM_DATABASE=Das U-Boot
|
||||||
|
|
||||||
acpi:ULRV*:
|
|
||||||
ID_VENDOR_FROM_DATABASE=UltraRISC Technology (Shanghai) Co., Ltd
|
|
||||||
|
|
||||||
acpi:VAIO*:
|
acpi:VAIO*:
|
||||||
ID_VENDOR_FROM_DATABASE=VAIO Corporation
|
ID_VENDOR_FROM_DATABASE=VAIO Corporation
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
--- 20-acpi-vendor.hwdb.base 2025-09-17 09:39:11.942879943 +0100
|
--- 20-acpi-vendor.hwdb.base 2025-08-20 13:04:02.003302877 +0100
|
||||||
+++ 20-acpi-vendor.hwdb 2025-09-17 09:39:11.950880802 +0100
|
+++ 20-acpi-vendor.hwdb 2025-08-20 13:04:02.007302969 +0100
|
||||||
@@ -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
|
||||||
|
|
||||||
@@ -427,6 +426,9 @@
|
@@ -424,6 +423,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.
|
||||||
|
|
||||||
@@ -454,6 +456,9 @@
|
@@ -451,6 +453,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.
|
||||||
|
|
||||||
@@ -499,7 +504,7 @@
|
@@ -496,7 +501,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*:
|
||||||
@@ -778,6 +783,9 @@
|
@@ -775,6 +780,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
|
||||||
|
|
||||||
@@ -826,6 +834,9 @@
|
@@ -823,6 +831,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.
|
||||||
|
|
||||||
@@ -835,6 +846,9 @@
|
@@ -832,6 +843,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
|
||||||
|
|
||||||
@@ -1016,7 +1030,7 @@
|
@@ -1013,7 +1027,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
|
||||||
@@ -1096,6 +1110,9 @@
|
@@ -1093,6 +1107,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
|
||||||
|
|
||||||
@@ -1255,6 +1272,9 @@
|
@@ -1252,6 +1269,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
|
||||||
|
|
||||||
@@ -1267,6 +1287,9 @@
|
@@ -1264,6 +1284,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
|
||||||
|
|
||||||
@@ -1513,6 +1536,9 @@
|
@@ -1510,6 +1533,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
|
||||||
|
|
||||||
@@ -1678,6 +1704,9 @@
|
@@ -1675,6 +1701,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.
|
||||||
|
|
||||||
@@ -2096,7 +2125,7 @@
|
@@ -2093,7 +2122,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
|
||||||
@@ -2449,6 +2478,9 @@
|
@@ -2446,6 +2475,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.
|
||||||
|
|
||||||
@@ -2719,6 +2751,9 @@
|
@@ -2716,6 +2748,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.
|
||||||
|
|
||||||
@@ -3095,7 +3130,7 @@
|
@@ -3092,7 +3127,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.
|
||||||
@@ -3205,6 +3240,9 @@
|
@@ -3202,6 +3237,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
|
||||||
|
|
||||||
@@ -3340,6 +3378,9 @@
|
@@ -3337,6 +3375,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
|
||||||
|
|
||||||
@@ -3466,6 +3507,9 @@
|
@@ -3463,6 +3504,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
|
||||||
|
|
||||||
@@ -3562,6 +3606,9 @@
|
@@ -3559,6 +3603,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
|
||||||
|
|
||||||
@@ -3610,6 +3657,9 @@
|
@@ -3607,6 +3654,9 @@
|
||||||
acpi:IMX*:
|
acpi:IMX*:
|
||||||
ID_VENDOR_FROM_DATABASE=arpara Technology Co., Ltd.
|
ID_VENDOR_FROM_DATABASE=arpara Technology Co., Ltd.
|
||||||
|
|
||||||
@ -225,7 +225,7 @@
|
|||||||
acpi:INA*:
|
acpi:INA*:
|
||||||
ID_VENDOR_FROM_DATABASE=Inventec Corporation
|
ID_VENDOR_FROM_DATABASE=Inventec Corporation
|
||||||
|
|
||||||
@@ -4138,6 +4188,9 @@
|
@@ -4135,6 +4185,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
|
||||||
|
|
||||||
@@ -4189,6 +4242,9 @@
|
@@ -4186,6 +4239,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
|
||||||
|
|
||||||
@@ -4207,6 +4263,9 @@
|
@@ -4204,6 +4260,9 @@
|
||||||
acpi:LGD*:
|
acpi:LGD*:
|
||||||
ID_VENDOR_FROM_DATABASE=LG Display
|
ID_VENDOR_FROM_DATABASE=LG Display
|
||||||
|
|
||||||
@ -255,7 +255,7 @@
|
|||||||
acpi:LGI*:
|
acpi:LGI*:
|
||||||
ID_VENDOR_FROM_DATABASE=Logitech Inc
|
ID_VENDOR_FROM_DATABASE=Logitech Inc
|
||||||
|
|
||||||
@@ -4273,6 +4332,9 @@
|
@@ -4270,6 +4329,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
|
||||||
|
|
||||||
@@ -4307,7 +4369,7 @@
|
@@ -4304,7 +4366,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
|
||||||
@@ -4483,6 +4545,9 @@
|
@@ -4480,6 +4542,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
|
||||||
|
|
||||||
@@ -4729,6 +4794,9 @@
|
@@ -4726,6 +4791,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
|
||||||
|
|
||||||
@@ -4969,6 +5037,9 @@
|
@@ -4966,6 +5034,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.
|
||||||
|
|
||||||
@@ -5509,6 +5580,9 @@
|
@@ -5506,6 +5577,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.
|
||||||
|
|
||||||
@@ -5572,9 +5646,6 @@
|
@@ -5569,9 +5643,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
|
||||||
|
|
||||||
@@ -5665,9 +5736,6 @@
|
@@ -5662,9 +5733,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.
|
||||||
|
|
||||||
@@ -6145,9 +6213,6 @@
|
@@ -6142,9 +6210,6 @@
|
||||||
acpi:RTI*:
|
acpi:RTI*:
|
||||||
ID_VENDOR_FROM_DATABASE=Rancho Tech Inc
|
ID_VENDOR_FROM_DATABASE=Rancho Tech Inc
|
||||||
|
|
||||||
@ -344,7 +344,7 @@
|
|||||||
acpi:RTL*:
|
acpi:RTL*:
|
||||||
ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Company Ltd
|
ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Company Ltd
|
||||||
|
|
||||||
@@ -6322,9 +6387,6 @@
|
@@ -6319,9 +6384,6 @@
|
||||||
acpi:SEE*:
|
acpi:SEE*:
|
||||||
ID_VENDOR_FROM_DATABASE=SeeColor Corporation
|
ID_VENDOR_FROM_DATABASE=SeeColor Corporation
|
||||||
|
|
||||||
@ -354,7 +354,7 @@
|
|||||||
acpi:SEI*:
|
acpi:SEI*:
|
||||||
ID_VENDOR_FROM_DATABASE=Seitz & Associates Inc
|
ID_VENDOR_FROM_DATABASE=Seitz & Associates Inc
|
||||||
|
|
||||||
@@ -6808,6 +6870,9 @@
|
@@ -6805,6 +6867,9 @@
|
||||||
acpi:SVD*:
|
acpi:SVD*:
|
||||||
ID_VENDOR_FROM_DATABASE=SVD Computer
|
ID_VENDOR_FROM_DATABASE=SVD Computer
|
||||||
|
|
||||||
@ -364,7 +364,7 @@
|
|||||||
acpi:SVI*:
|
acpi:SVI*:
|
||||||
ID_VENDOR_FROM_DATABASE=Sun Microsystems
|
ID_VENDOR_FROM_DATABASE=Sun Microsystems
|
||||||
|
|
||||||
@@ -6892,6 +6957,9 @@
|
@@ -6889,6 +6954,9 @@
|
||||||
acpi:SZM*:
|
acpi:SZM*:
|
||||||
ID_VENDOR_FROM_DATABASE=Shenzhen MTC Co., Ltd
|
ID_VENDOR_FROM_DATABASE=Shenzhen MTC Co., Ltd
|
||||||
|
|
||||||
@ -374,7 +374,7 @@
|
|||||||
acpi:TAA*:
|
acpi:TAA*:
|
||||||
ID_VENDOR_FROM_DATABASE=Tandberg
|
ID_VENDOR_FROM_DATABASE=Tandberg
|
||||||
|
|
||||||
@@ -6982,6 +7050,9 @@
|
@@ -6979,6 +7047,9 @@
|
||||||
acpi:TDG*:
|
acpi:TDG*:
|
||||||
ID_VENDOR_FROM_DATABASE=Six15 Technologies
|
ID_VENDOR_FROM_DATABASE=Six15 Technologies
|
||||||
|
|
||||||
@ -384,7 +384,7 @@
|
|||||||
acpi:TDM*:
|
acpi:TDM*:
|
||||||
ID_VENDOR_FROM_DATABASE=Tandem Computer Europe Inc
|
ID_VENDOR_FROM_DATABASE=Tandem Computer Europe Inc
|
||||||
|
|
||||||
@@ -7024,6 +7095,9 @@
|
@@ -7021,6 +7092,9 @@
|
||||||
acpi:TEV*:
|
acpi:TEV*:
|
||||||
ID_VENDOR_FROM_DATABASE=Televés, S.A.
|
ID_VENDOR_FROM_DATABASE=Televés, S.A.
|
||||||
|
|
||||||
@ -394,7 +394,7 @@
|
|||||||
acpi:TEZ*:
|
acpi:TEZ*:
|
||||||
ID_VENDOR_FROM_DATABASE=Tech Source Inc.
|
ID_VENDOR_FROM_DATABASE=Tech Source Inc.
|
||||||
|
|
||||||
@@ -7153,9 +7227,6 @@
|
@@ -7150,9 +7224,6 @@
|
||||||
acpi:TNC*:
|
acpi:TNC*:
|
||||||
ID_VENDOR_FROM_DATABASE=TNC Industrial Company Ltd
|
ID_VENDOR_FROM_DATABASE=TNC Industrial Company Ltd
|
||||||
|
|
||||||
@ -404,7 +404,7 @@
|
|||||||
acpi:TNM*:
|
acpi:TNM*:
|
||||||
ID_VENDOR_FROM_DATABASE=TECNIMAGEN SA
|
ID_VENDOR_FROM_DATABASE=TECNIMAGEN SA
|
||||||
|
|
||||||
@@ -7468,14 +7539,14 @@
|
@@ -7465,14 +7536,14 @@
|
||||||
acpi:UNC*:
|
acpi:UNC*:
|
||||||
ID_VENDOR_FROM_DATABASE=Unisys Corporation
|
ID_VENDOR_FROM_DATABASE=Unisys Corporation
|
||||||
|
|
||||||
@ -425,7 +425,7 @@
|
|||||||
|
|
||||||
acpi:UNI*:
|
acpi:UNI*:
|
||||||
ID_VENDOR_FROM_DATABASE=Uniform Industry Corp.
|
ID_VENDOR_FROM_DATABASE=Uniform Industry Corp.
|
||||||
@@ -7510,6 +7581,9 @@
|
@@ -7507,6 +7578,9 @@
|
||||||
acpi:USA*:
|
acpi:USA*:
|
||||||
ID_VENDOR_FROM_DATABASE=Utimaco Safeware AG
|
ID_VENDOR_FROM_DATABASE=Utimaco Safeware AG
|
||||||
|
|
||||||
@ -435,7 +435,7 @@
|
|||||||
acpi:USD*:
|
acpi:USD*:
|
||||||
ID_VENDOR_FROM_DATABASE=U.S. Digital Corporation
|
ID_VENDOR_FROM_DATABASE=U.S. Digital Corporation
|
||||||
|
|
||||||
@@ -7771,9 +7845,6 @@
|
@@ -7768,9 +7842,6 @@
|
||||||
acpi:WAL*:
|
acpi:WAL*:
|
||||||
ID_VENDOR_FROM_DATABASE=Wave Access
|
ID_VENDOR_FROM_DATABASE=Wave Access
|
||||||
|
|
||||||
@ -445,7 +445,7 @@
|
|||||||
acpi:WAV*:
|
acpi:WAV*:
|
||||||
ID_VENDOR_FROM_DATABASE=Wavephore
|
ID_VENDOR_FROM_DATABASE=Wavephore
|
||||||
|
|
||||||
@@ -7901,7 +7972,7 @@
|
@@ -7898,7 +7969,7 @@
|
||||||
ID_VENDOR_FROM_DATABASE=WyreStorm Technologies LLC
|
ID_VENDOR_FROM_DATABASE=WyreStorm Technologies LLC
|
||||||
|
|
||||||
acpi:WYS*:
|
acpi:WYS*:
|
||||||
@ -454,7 +454,7 @@
|
|||||||
|
|
||||||
acpi:WYT*:
|
acpi:WYT*:
|
||||||
ID_VENDOR_FROM_DATABASE=Wooyoung Image & Information Co.,Ltd.
|
ID_VENDOR_FROM_DATABASE=Wooyoung Image & Information Co.,Ltd.
|
||||||
@@ -7915,9 +7986,6 @@
|
@@ -7912,9 +7983,6 @@
|
||||||
acpi:XDM*:
|
acpi:XDM*:
|
||||||
ID_VENDOR_FROM_DATABASE=XDM Ltd.
|
ID_VENDOR_FROM_DATABASE=XDM Ltd.
|
||||||
|
|
||||||
@ -464,7 +464,7 @@
|
|||||||
acpi:XES*:
|
acpi:XES*:
|
||||||
ID_VENDOR_FROM_DATABASE=Extreme Engineering Solutions, Inc.
|
ID_VENDOR_FROM_DATABASE=Extreme Engineering Solutions, Inc.
|
||||||
|
|
||||||
@@ -7951,9 +8019,6 @@
|
@@ -7948,9 +8016,6 @@
|
||||||
acpi:XNT*:
|
acpi:XNT*:
|
||||||
ID_VENDOR_FROM_DATABASE=XN Technologies, Inc.
|
ID_VENDOR_FROM_DATABASE=XN Technologies, Inc.
|
||||||
|
|
||||||
@ -474,7 +474,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
|
||||||
|
|
||||||
@@ -8020,6 +8085,9 @@
|
@@ -8017,6 +8082,9 @@
|
||||||
acpi:ZBX*:
|
acpi:ZBX*:
|
||||||
ID_VENDOR_FROM_DATABASE=Zebax Technologies
|
ID_VENDOR_FROM_DATABASE=Zebax Technologies
|
||||||
|
|
||||||
|
|||||||
@ -40403,15 +40403,9 @@ usb:v0B0Dp0000*
|
|||||||
usb:v0B0E*
|
usb:v0B0E*
|
||||||
ID_VENDOR_FROM_DATABASE=GN Netcom
|
ID_VENDOR_FROM_DATABASE=GN Netcom
|
||||||
|
|
||||||
usb:v0B0Ep0301*
|
|
||||||
ID_MODEL_FROM_DATABASE=Jabra EVOLVE 20
|
|
||||||
|
|
||||||
usb:v0B0Ep0305*
|
usb:v0B0Ep0305*
|
||||||
ID_MODEL_FROM_DATABASE=Jabra EVOLVE Link MS
|
ID_MODEL_FROM_DATABASE=Jabra EVOLVE Link MS
|
||||||
|
|
||||||
usb:v0B0Ep030C*
|
|
||||||
ID_MODEL_FROM_DATABASE=Jabra EVOLVE 65
|
|
||||||
|
|
||||||
usb:v0B0Ep0311*
|
usb:v0B0Ep0311*
|
||||||
ID_MODEL_FROM_DATABASE=Jabra EVOLVE 65
|
ID_MODEL_FROM_DATABASE=Jabra EVOLVE 65
|
||||||
|
|
||||||
@ -40466,21 +40460,6 @@ usb:v0B0Ep2456*
|
|||||||
usb:v0B0Ep245E*
|
usb:v0B0Ep245E*
|
||||||
ID_MODEL_FROM_DATABASE=Jabra Link 370
|
ID_MODEL_FROM_DATABASE=Jabra Link 370
|
||||||
|
|
||||||
usb:v0B0Ep248A*
|
|
||||||
ID_MODEL_FROM_DATABASE=Jabra Elite 85h
|
|
||||||
|
|
||||||
usb:v0B0Ep24B8*
|
|
||||||
ID_MODEL_FROM_DATABASE=Jabra Evolve2 65
|
|
||||||
|
|
||||||
usb:v0B0Ep24BB*
|
|
||||||
ID_MODEL_FROM_DATABASE=Jabra Evolve2 85
|
|
||||||
|
|
||||||
usb:v0B0Ep24C9*
|
|
||||||
ID_MODEL_FROM_DATABASE=Jabra Link 380
|
|
||||||
|
|
||||||
usb:v0B0Ep24CA*
|
|
||||||
ID_MODEL_FROM_DATABASE=Jabra Link 380
|
|
||||||
|
|
||||||
usb:v0B0Ep620C*
|
usb:v0B0Ep620C*
|
||||||
ID_MODEL_FROM_DATABASE=Jabra BT620s
|
ID_MODEL_FROM_DATABASE=Jabra BT620s
|
||||||
|
|
||||||
|
|||||||
@ -778,10 +778,6 @@ sensor:modalias:acpi:*BOSC0200*:dmi:*:svnLENOVO*:pn80XE:*
|
|||||||
sensor:modalias:acpi:*BOSC0200*:dmi:*:svnLENOVO*:pn80U1:*
|
sensor:modalias:acpi:*BOSC0200*:dmi:*:svnLENOVO*:pn80U1:*
|
||||||
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
||||||
|
|
||||||
# Legion Go
|
|
||||||
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnLENOVO:pn83E1:*
|
|
||||||
ACCEL_MOUNT_MATRIX=0,1,0;-1,0,0;0,0,1
|
|
||||||
|
|
||||||
# Yoga 300-11IBR, display sensor
|
# Yoga 300-11IBR, display sensor
|
||||||
sensor:modalias:acpi:DUAL250E*:dmi:*:svnLENOVO:*:pvrLenovoYoga300-11IBR:*
|
sensor:modalias:acpi:DUAL250E*:dmi:*:svnLENOVO:*:pvrLenovoYoga300-11IBR:*
|
||||||
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
||||||
@ -1054,11 +1050,6 @@ sensor:modalias:acpi:KIOX010A*:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rv
|
|||||||
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
|
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
|
||||||
ACCEL_LOCATION=display
|
ACCEL_LOCATION=display
|
||||||
|
|
||||||
# Positivo Duo K116J
|
|
||||||
sensor:modalias:acpi:MDA6655*:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvnPositivoTecnologiaSA:rnK116J*
|
|
||||||
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
|
|
||||||
ACCEL_LOCATION=display
|
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
# Predia
|
# Predia
|
||||||
#########################################
|
#########################################
|
||||||
|
|||||||
@ -16,61 +16,6 @@
|
|||||||
usb:v1209p4D69*
|
usb:v1209p4D69*
|
||||||
ID_SIGNAL_ANALYZER=1
|
ID_SIGNAL_ANALYZER=1
|
||||||
|
|
||||||
###########################################################
|
|
||||||
# Hantek DSO-6022 oscilloscopes and compatible devices
|
|
||||||
###########################################################
|
|
||||||
# Hantek DSO-6022BE w/o FW
|
|
||||||
usb:v04B4p6022*
|
|
||||||
ID_SIGNAL_ANALYZER=1
|
|
||||||
|
|
||||||
# Hantek DSO-6022BE with FW
|
|
||||||
usb:v04B5p6022*
|
|
||||||
ID_SIGNAL_ANALYZER=1
|
|
||||||
|
|
||||||
# Hantek DSO-6022BL w/o FW
|
|
||||||
usb:v04B4p602A*
|
|
||||||
ID_SIGNAL_ANALYZER=1
|
|
||||||
|
|
||||||
# Hantek DSO-6022BL with FW
|
|
||||||
usb:v04B5p602A*
|
|
||||||
ID_SIGNAL_ANALYZER=1
|
|
||||||
|
|
||||||
# Hantek DSO-6021 w/o FW
|
|
||||||
usb:v04B4p6021*
|
|
||||||
ID_SIGNAL_ANALYZER=1
|
|
||||||
|
|
||||||
# Hantek DSO-6021 with FW
|
|
||||||
usb:v04B5p6021*
|
|
||||||
ID_SIGNAL_ANALYZER=1
|
|
||||||
|
|
||||||
# Voltcraft DSO-2020, w/o FW, becomes DSO-6022BE with FW
|
|
||||||
usb:v04B4p2020*
|
|
||||||
ID_SIGNAL_ANALYZER=1
|
|
||||||
|
|
||||||
# YiXingDianZiKeJi MDSO w/o FW
|
|
||||||
usb:vD4A2p5660*
|
|
||||||
ID_SIGNAL_ANALYZER=1
|
|
||||||
|
|
||||||
# YiXingDianZiKeJi MDSO with FW
|
|
||||||
usb:v1D50p608E*
|
|
||||||
ID_SIGNAL_ANALYZER=1
|
|
||||||
|
|
||||||
# BUUDAI DDS120 w/o FW
|
|
||||||
usb:v8102p8102*
|
|
||||||
ID_SIGNAL_ANALYZER=1
|
|
||||||
|
|
||||||
# BUUDAI DDS120 with FW
|
|
||||||
usb:v04B5p0120*
|
|
||||||
ID_SIGNAL_ANALYZER=1
|
|
||||||
|
|
||||||
# Instrustar isds-205b w/o FW
|
|
||||||
usb:vD4A2p5661*
|
|
||||||
ID_SIGNAL_ANALYZER=1
|
|
||||||
|
|
||||||
# Instrustar isds-205b with FW
|
|
||||||
usb:v1D50p1D50*
|
|
||||||
ID_SIGNAL_ANALYZER=1
|
|
||||||
|
|
||||||
###########################################################
|
###########################################################
|
||||||
# Total Phase
|
# Total Phase
|
||||||
###########################################################
|
###########################################################
|
||||||
|
|||||||
@ -821,20 +821,6 @@ mouse:usb:v22d4p1308:name:Laview Technology Mionix Avior 7000:*
|
|||||||
mouse:usb:v0e8fp00a7:name:DaKai 2.4G RX:*
|
mouse:usb:v0e8fp00a7:name:DaKai 2.4G RX:*
|
||||||
MOUSE_DPI=*800@126 1600@126
|
MOUSE_DPI=*800@126 1600@126
|
||||||
|
|
||||||
##########################################
|
|
||||||
# Nulea
|
|
||||||
##########################################
|
|
||||||
|
|
||||||
# Note: it is possible that other devices may use the same wireless dongle,
|
|
||||||
# as such this could require revisiting if it causes issues with other mice
|
|
||||||
# Nulea M501 Wireless Trackball (USB Receiver)
|
|
||||||
mouse:usb:v25a7pfa61:name:Compx 2.4G Receiver Mouse:*
|
|
||||||
ID_INPUT_TRACKBALL=1
|
|
||||||
|
|
||||||
# Nulea M501 Wireless Trackball (Bluetooth)
|
|
||||||
mouse:bluetooth:v000ep3412:name:Nulea BT5.0 Mouse:*
|
|
||||||
ID_INPUT_TRACKBALL=1
|
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# Oklick
|
# Oklick
|
||||||
##########################################
|
##########################################
|
||||||
|
|||||||
@ -21,17 +21,6 @@
|
|||||||
# Allowed properties are:
|
# Allowed properties are:
|
||||||
# ID_SOFTWARE_RADIO=0|1
|
# ID_SOFTWARE_RADIO=0|1
|
||||||
|
|
||||||
##########################################
|
|
||||||
# Airspy
|
|
||||||
##########################################
|
|
||||||
# Airspy R2
|
|
||||||
usb:v1D50p60A1*
|
|
||||||
ID_SOFTWARE_RADIO=1
|
|
||||||
|
|
||||||
# Airspy HF+
|
|
||||||
usb:v03EBp800C*
|
|
||||||
ID_SOFTWARE_RADIO=1
|
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# Analog Devices
|
# Analog Devices
|
||||||
##########################################
|
##########################################
|
||||||
@ -59,54 +48,10 @@ usb:v2500p0002*
|
|||||||
usb:v2500p0020*
|
usb:v2500p0020*
|
||||||
usb:v2500p0021*
|
usb:v2500p0021*
|
||||||
usb:v2500p0022*
|
usb:v2500p0022*
|
||||||
usb:v2500p0023*
|
|
||||||
usb:v3923p7813*
|
usb:v3923p7813*
|
||||||
usb:v3923p7814*
|
usb:v3923p7814*
|
||||||
ID_SOFTWARE_RADIO=1
|
ID_SOFTWARE_RADIO=1
|
||||||
|
|
||||||
##########################################
|
|
||||||
# FUNcube
|
|
||||||
##########################################
|
|
||||||
# FUNcube Dongle Pro
|
|
||||||
usb:v04D8pFB56*
|
|
||||||
ID_SOFTWARE_RADIO=1
|
|
||||||
|
|
||||||
# FUNcube Dongle Pro+
|
|
||||||
usb:v04D8pFB31*
|
|
||||||
ID_SOFTWARE_RADIO=1
|
|
||||||
|
|
||||||
##########################################
|
|
||||||
# Great Scott Gadgets
|
|
||||||
##########################################
|
|
||||||
# HackRF Jawbreaker
|
|
||||||
usb:v1D50p604B*
|
|
||||||
ID_SOFTWARE_RADIO=1
|
|
||||||
|
|
||||||
# HackRF One
|
|
||||||
usb:v1D50p6089*
|
|
||||||
ID_SOFTWARE_RADIO=1
|
|
||||||
|
|
||||||
##########################################
|
|
||||||
# HydraSDR
|
|
||||||
##########################################
|
|
||||||
# HydraSDR RFOne
|
|
||||||
usb:v38AFp0001*
|
|
||||||
ID_SOFTWARE_RADIO=1
|
|
||||||
|
|
||||||
##########################################
|
|
||||||
# LimeSDR
|
|
||||||
##########################################
|
|
||||||
# XTRX (USB3380)
|
|
||||||
usb:v0525p3380*
|
|
||||||
ID_SOFTWARE_RADIO=1
|
|
||||||
|
|
||||||
##########################################
|
|
||||||
# Microtelecom
|
|
||||||
##########################################
|
|
||||||
# Perseus
|
|
||||||
usb:v04B4p325C*
|
|
||||||
ID_SOFTWARE_RADIO=1
|
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# Nuand
|
# Nuand
|
||||||
##########################################
|
##########################################
|
||||||
@ -292,34 +237,3 @@ usb:v1F4DpD286*
|
|||||||
# PROlectrix DV107669 (FC0012)
|
# PROlectrix DV107669 (FC0012)
|
||||||
usb:v1F4DpD803*
|
usb:v1F4DpD803*
|
||||||
ID_SOFTWARE_RADIO=1
|
ID_SOFTWARE_RADIO=1
|
||||||
|
|
||||||
##########################################
|
|
||||||
# SDRplay
|
|
||||||
##########################################
|
|
||||||
# RSP1
|
|
||||||
usb:v1DF7p2500*
|
|
||||||
ID_SOFTWARE_RADIO=1
|
|
||||||
|
|
||||||
# RSP1A
|
|
||||||
usb:v1DF7p3000*
|
|
||||||
ID_SOFTWARE_RADIO=1
|
|
||||||
|
|
||||||
# RSP2/RSP2pro
|
|
||||||
usb:v1DF7p3010*
|
|
||||||
ID_SOFTWARE_RADIO=1
|
|
||||||
|
|
||||||
# RSPduo
|
|
||||||
usb:v1DF7p3020*
|
|
||||||
ID_SOFTWARE_RADIO=1
|
|
||||||
|
|
||||||
# RSPdx
|
|
||||||
usb:v1DF7p3030*
|
|
||||||
ID_SOFTWARE_RADIO=1
|
|
||||||
|
|
||||||
# RSP1B
|
|
||||||
usb:v1DF7p3050*
|
|
||||||
ID_SOFTWARE_RADIO=1
|
|
||||||
|
|
||||||
# RSPdxR2
|
|
||||||
usb:v1DF7p3060*
|
|
||||||
ID_SOFTWARE_RADIO=1
|
|
||||||
|
|||||||
@ -138,4 +138,3 @@ IDEMIA,IDEM,06/26/2018
|
|||||||
"Fsas Technologies Inc.",FSAS,04/30/2025
|
"Fsas Technologies Inc.",FSAS,04/30/2025
|
||||||
"JP Morgan Chase N.A.",JPMC,05/30/2025
|
"JP Morgan Chase N.A.",JPMC,05/30/2025
|
||||||
"Roku, Inc.",ROKU,07/15/2025
|
"Roku, Inc.",ROKU,07/15/2025
|
||||||
"UltraRISC Technology (Shanghai) Co., Ltd",ULRV,09/15/2025
|
|
||||||
|
3621
hwdb.d/ma-large.txt
3621
hwdb.d/ma-large.txt
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -9,8 +9,8 @@
|
|||||||
# The latest version can be obtained from
|
# The latest version can be obtained from
|
||||||
# http://www.linux-usb.org/usb.ids
|
# http://www.linux-usb.org/usb.ids
|
||||||
#
|
#
|
||||||
# Version: 2025.09.15
|
# Version: 2025.07.26
|
||||||
# Date: 2025-09-15 20:34:02
|
# Date: 2025-07-26 20:34:01
|
||||||
#
|
#
|
||||||
|
|
||||||
# Vendors, devices and interfaces. Please keep sorted.
|
# Vendors, devices and interfaces. Please keep sorted.
|
||||||
@ -13488,9 +13488,7 @@
|
|||||||
0b0d ProjectLab
|
0b0d ProjectLab
|
||||||
0000 CenturyCD
|
0000 CenturyCD
|
||||||
0b0e GN Netcom
|
0b0e GN Netcom
|
||||||
0301 Jabra EVOLVE 20
|
|
||||||
0305 Jabra EVOLVE Link MS
|
0305 Jabra EVOLVE Link MS
|
||||||
030c Jabra EVOLVE 65
|
|
||||||
0311 Jabra EVOLVE 65
|
0311 Jabra EVOLVE 65
|
||||||
0312 enc060:Buttons Volume up/down/mute + phone [Jabra]
|
0312 enc060:Buttons Volume up/down/mute + phone [Jabra]
|
||||||
0343 Jabra UC VOICE 150a
|
0343 Jabra UC VOICE 150a
|
||||||
@ -13509,11 +13507,6 @@
|
|||||||
2007 GN 2000 Stereo Corded Headset
|
2007 GN 2000 Stereo Corded Headset
|
||||||
2456 Jabra SPEAK 810
|
2456 Jabra SPEAK 810
|
||||||
245e Jabra Link 370
|
245e Jabra Link 370
|
||||||
248a Jabra Elite 85h
|
|
||||||
24b8 Jabra Evolve2 65
|
|
||||||
24bb Jabra Evolve2 85
|
|
||||||
24c9 Jabra Link 380
|
|
||||||
24ca Jabra Link 380
|
|
||||||
620c Jabra BT620s
|
620c Jabra BT620s
|
||||||
9330 Jabra GN9330 Headset
|
9330 Jabra GN9330 Headset
|
||||||
a346 Jabra Engage 75 Stereo
|
a346 Jabra Engage 75 Stereo
|
||||||
|
|||||||
@ -179,16 +179,6 @@
|
|||||||
<xi:include href="version-info.xml" xpointer="v256"/></listitem>
|
<xi:include href="version-info.xml" xpointer="v256"/></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>--prompt-new-user</option></term>
|
|
||||||
|
|
||||||
<listitem><para>If used in conjunction with <command>firstboot</command> and no regular user account
|
|
||||||
exists on the system so far the tool will interactively query for user information and create an
|
|
||||||
account.</para>
|
|
||||||
|
|
||||||
<xi:include href="version-info.xml" xpointer="v256"/></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<xi:include href="user-system-options.xml" xpointer="host" />
|
<xi:include href="user-system-options.xml" xpointer="host" />
|
||||||
<xi:include href="user-system-options.xml" xpointer="machine" />
|
<xi:include href="user-system-options.xml" xpointer="machine" />
|
||||||
|
|
||||||
@ -1222,10 +1212,9 @@
|
|||||||
|
|
||||||
<listitem><para>This command is supposed to be invoked during the initial boot of the system. It
|
<listitem><para>This command is supposed to be invoked during the initial boot of the system. It
|
||||||
checks whether any regular home area exists so far, and if not queries the user interactively on the
|
checks whether any regular home area exists so far, and if not queries the user interactively on the
|
||||||
console for user name and password and creates one (only if <option>--prompt-new-user</option> is
|
console for user name and password and creates one. Alternatively, if one or more service credentials
|
||||||
specified). Alternatively, if one or more service credentials whose name starts with
|
whose name starts with <literal>home.create.</literal> are passed to the command (containing a user
|
||||||
<literal>home.create.</literal> are passed to the command (containing a user record in JSON format)
|
record in JSON format) these users are automatically created at boot.</para>
|
||||||
these users are automatically created at boot.</para>
|
|
||||||
|
|
||||||
<para>This command is invoked by the <filename>systemd-homed-firstboot.service</filename> service
|
<para>This command is invoked by the <filename>systemd-homed-firstboot.service</filename> service
|
||||||
unit.</para>
|
unit.</para>
|
||||||
|
|||||||
@ -737,8 +737,8 @@
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><option>--no-hostname</option></term>
|
<term><option>--no-hostname</option></term>
|
||||||
|
|
||||||
<listitem><para>Do not show the hostname field of log messages. This switch has an effect only on the
|
<listitem><para>Do not show the hostname field of log messages originating from the local host. This
|
||||||
<option>short</option> family of output modes (see above).</para>
|
switch has an effect only on the <option>short</option> family of output modes (see above).</para>
|
||||||
|
|
||||||
<para>Note: this option does not remove occurrences of the hostname from log entries themselves, so
|
<para>Note: this option does not remove occurrences of the hostname from log entries themselves, so
|
||||||
it does not prevent the hostname from being visible in the logs.</para>
|
it does not prevent the hostname from being visible in the logs.</para>
|
||||||
|
|||||||
@ -75,14 +75,13 @@
|
|||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Thread safety</title>
|
<title>Thread safety</title>
|
||||||
|
|
||||||
<para>Functions that operate on <structname>sd_journal</structname> objects are thread agnostic — a given
|
<para>Functions that operate on <structname>sd_journal</structname> objects are thread agnostic — given
|
||||||
<structname>sd_journal</structname> pointer may only be used from one thread at a time, but multiple
|
<structname>sd_journal</structname> pointer may only be used from one specific thread at all times (and it has to
|
||||||
independent threads may use multiple objects concurrently. Some functions — those that are used to send
|
be the very same one during the entire lifetime of the object), but multiple, independent threads may use multiple,
|
||||||
entries to the journal, like
|
independent objects safely. Other functions — those that are used to send entries to the journal, like
|
||||||
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry> and
|
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry> and similar,
|
||||||
similar, or those that are used to retrieve global information like
|
or those that are used to retrieve global information like
|
||||||
<citerefentry><refentrytitle>sd_journal_stream_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
<citerefentry><refentrytitle>sd_journal_stream_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry> and
|
||||||
and
|
|
||||||
<citerefentry><refentrytitle>sd_journal_get_catalog_for_message_id</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
<citerefentry><refentrytitle>sd_journal_get_catalog_for_message_id</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||||
— are fully thread-safe and may be called from multiple threads in parallel.</para>
|
— are fully thread-safe and may be called from multiple threads in parallel.</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|||||||
@ -41,10 +41,10 @@
|
|||||||
system.</para>
|
system.</para>
|
||||||
|
|
||||||
<para>Note that these APIs only allow purely passive access and
|
<para>Note that these APIs only allow purely passive access and
|
||||||
monitoring of seats, sessions, and users. To actively make changes
|
monitoring of seats, sessions and users. To actively make changes
|
||||||
to the seat configuration, terminate login sessions, or switch
|
to the seat configuration, terminate login sessions, or switch
|
||||||
session on a seat you need to utilize the D-Bus API of
|
session on a seat you need to utilize the D-Bus API of
|
||||||
systemd-logind instead.</para>
|
systemd-logind, instead.</para>
|
||||||
|
|
||||||
<para>These functions synchronously access data in
|
<para>These functions synchronously access data in
|
||||||
<filename>/proc/</filename>, <filename>/sys/fs/cgroup/</filename>
|
<filename>/proc/</filename>, <filename>/sys/fs/cgroup/</filename>
|
||||||
@ -62,7 +62,7 @@
|
|||||||
other.</para>
|
other.</para>
|
||||||
|
|
||||||
<para>If the functions return string arrays, these are generally
|
<para>If the functions return string arrays, these are generally
|
||||||
<constant>NULL</constant>-terminated and need to be freed by the
|
<constant>NULL</constant> terminated and need to be freed by the
|
||||||
caller with the libc
|
caller with the libc
|
||||||
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||||
call after use, including the strings referenced therein.
|
call after use, including the strings referenced therein.
|
||||||
|
|||||||
@ -27,7 +27,7 @@
|
|||||||
<funcsynopsisinfo>#include <systemd/sd-bus.h></funcsynopsisinfo>
|
<funcsynopsisinfo>#include <systemd/sd-bus.h></funcsynopsisinfo>
|
||||||
|
|
||||||
<funcprototype>
|
<funcprototype>
|
||||||
<funcdef>int <function>sd_bus_can_send</function></funcdef>
|
<funcdef>void <function>sd_bus_can_send</function></funcdef>
|
||||||
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
|
||||||
<paramdef>char <parameter>type</parameter></paramdef>
|
<paramdef>char <parameter>type</parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
|
|||||||
@ -33,12 +33,6 @@
|
|||||||
<funcsynopsis>
|
<funcsynopsis>
|
||||||
<funcsynopsisinfo>#include <systemd/sd-bus.h></funcsynopsisinfo>
|
<funcsynopsisinfo>#include <systemd/sd-bus.h></funcsynopsisinfo>
|
||||||
|
|
||||||
<funcprototype>
|
|
||||||
<funcdef>typedef int (*<function>sd_bus_track_handler_t</function>)</funcdef>
|
|
||||||
<paramdef>sd_bus_track *<parameter>track</parameter></paramdef>
|
|
||||||
<paramdef>void *<parameter>userdata</parameter></paramdef>
|
|
||||||
</funcprototype>
|
|
||||||
|
|
||||||
<funcprototype>
|
<funcprototype>
|
||||||
<funcdef>int <function>sd_bus_track_new</function></funcdef>
|
<funcdef>int <function>sd_bus_track_new</function></funcdef>
|
||||||
<paramdef>sd_bus* <parameter>bus</parameter></paramdef>
|
<paramdef>sd_bus* <parameter>bus</parameter></paramdef>
|
||||||
@ -227,7 +221,6 @@
|
|||||||
<refsect1>
|
<refsect1>
|
||||||
<title>History</title>
|
<title>History</title>
|
||||||
<para><function>sd_bus_track_new()</function>,
|
<para><function>sd_bus_track_new()</function>,
|
||||||
<function>sd_bus_track_handler_t()</function>,
|
|
||||||
<function>sd_bus_track_ref()</function>,
|
<function>sd_bus_track_ref()</function>,
|
||||||
<function>sd_bus_track_unref()</function>,
|
<function>sd_bus_track_unref()</function>,
|
||||||
<function>sd_bus_track_unrefp()</function>,
|
<function>sd_bus_track_unrefp()</function>,
|
||||||
|
|||||||
@ -84,12 +84,14 @@
|
|||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Notes</title>
|
<title>Notes</title>
|
||||||
|
|
||||||
<para>Function <function>sd_journal_get_catalog()</function> is thread-agnostic and only a single thread
|
<para>Function <function>sd_journal_get_catalog()</function> is thread-agnostic and only
|
||||||
may operate on a given object at any given time. Multiple independent objects may be used from different
|
a single specific thread may operate on a given object during its entire lifetime. It is safe to allocate multiple
|
||||||
threads in parallel.</para>
|
independent objects and use each from a specific thread in parallel. However, it is not safe to allocate such an
|
||||||
|
object in one thread, and operate or free it from any other, even if locking is used to ensure these threads do not
|
||||||
|
operate on it at the very same time.</para>
|
||||||
|
|
||||||
<para>Function <function>sd_journal_get_catalog_for_message_id()</function> is thread-safe and may be
|
<para>Function <function>sd_journal_get_catalog_for_message_id()</function> is are thread-safe and may be called in
|
||||||
called from multiple threads in parallel.</para>
|
parallel from multiple threads.</para>
|
||||||
|
|
||||||
<xi:include href="libsystemd-pkgconfig.xml" xpointer="pkgconfig-text"/>
|
<xi:include href="libsystemd-pkgconfig.xml" xpointer="pkgconfig-text"/>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|||||||
@ -35,9 +35,7 @@
|
|||||||
compatibility. It may also pick up statically defined JSON user/group records from files in
|
compatibility. It may also pick up statically defined JSON user/group records from files in
|
||||||
<filename>/etc/userdb/</filename>, <filename>/run/userdb/</filename>,
|
<filename>/etc/userdb/</filename>, <filename>/run/userdb/</filename>,
|
||||||
<filename>/run/host/userdb/</filename> and <filename>/usr/lib/userdb/</filename> with the
|
<filename>/run/host/userdb/</filename> and <filename>/usr/lib/userdb/</filename> with the
|
||||||
<literal>.user</literal> or <literal>.group</literal> extension. For more details about the extensions
|
<literal>.user</literal> or <literal>.group</literal> extension.</para>
|
||||||
read the <citerefentry><refentrytitle>nss-systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
|
||||||
manpage.</para>
|
|
||||||
|
|
||||||
<para>Most of <command>systemd-userdbd</command>'s functionality is accessible through the
|
<para>Most of <command>systemd-userdbd</command>'s functionality is accessible through the
|
||||||
<citerefentry><refentrytitle>userdbctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
<citerefentry><refentrytitle>userdbctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||||
|
|||||||
@ -583,7 +583,7 @@ CPUWeight=20 DisableControllers=cpu / \
|
|||||||
an absolute number of tasks or a percentage value that is taken relative to the configured maximum
|
an absolute number of tasks or a percentage value that is taken relative to the configured maximum
|
||||||
number of tasks on the system. If assigned the special value <literal>infinity</literal>, no tasks
|
number of tasks on the system. If assigned the special value <literal>infinity</literal>, no tasks
|
||||||
limit is applied. This controls the <literal>pids.max</literal> control group attribute. For
|
limit is applied. This controls the <literal>pids.max</literal> control group attribute. For
|
||||||
details about this control group attribute, see the
|
details about this control group attribute, the
|
||||||
<ulink url="https://docs.kernel.org/admin-guide/cgroup-v2.html#pid">pids controller
|
<ulink url="https://docs.kernel.org/admin-guide/cgroup-v2.html#pid">pids controller
|
||||||
</ulink>.
|
</ulink>.
|
||||||
The effective configuration is reported as <varname>EffectiveTasksMax=</varname>.</para>
|
The effective configuration is reported as <varname>EffectiveTasksMax=</varname>.</para>
|
||||||
|
|||||||
@ -6,9 +6,10 @@
|
|||||||
<refsect1>
|
<refsect1>
|
||||||
<title/>
|
<title/>
|
||||||
|
|
||||||
<para id="strict">All functions listed here are thread-agnostic and only a single thread may operate on a
|
<para id="strict">All functions listed here are thread-agnostic and only a single specific thread may operate on a
|
||||||
given object at any given time. Different threads may access the same object at different times. Multiple
|
given object during its entire lifetime. It is safe to allocate multiple independent objects and use each from a
|
||||||
independent objects may be used from different threads in parallel.</para>
|
specific thread in parallel. However, it is not safe to allocate such an object in one thread, and operate or free it
|
||||||
|
from any other, even if locking is used to ensure these threads do not operate on it at the very same time.</para>
|
||||||
|
|
||||||
<para id="safe">All functions listed here are thread-safe and may be called in parallel from multiple threads.</para>
|
<para id="safe">All functions listed here are thread-safe and may be called in parallel from multiple threads.</para>
|
||||||
|
|
||||||
|
|||||||
@ -37,7 +37,6 @@ Packages=
|
|||||||
btrfs-progs
|
btrfs-progs
|
||||||
apt
|
apt
|
||||||
bind9-dnsutils
|
bind9-dnsutils
|
||||||
bsdutils
|
|
||||||
cryptsetup-bin
|
cryptsetup-bin
|
||||||
dbus-broker
|
dbus-broker
|
||||||
dbus-user-session
|
dbus-user-session
|
||||||
|
|||||||
@ -1,26 +0,0 @@
|
|||||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
||||||
|
|
||||||
# New package needed for TEST-75-RESOLVED
|
|
||||||
|
|
||||||
[TriggerMatch]
|
|
||||||
Distribution=debian
|
|
||||||
Release=!bullseye
|
|
||||||
Release=!bookworm
|
|
||||||
Release=!trixie
|
|
||||||
# TODO: drop once Duke ships
|
|
||||||
Release=!oldstable
|
|
||||||
# TODO: drop once Forky ships
|
|
||||||
Release=!stable
|
|
||||||
|
|
||||||
[TriggerMatch]
|
|
||||||
Distribution=ubuntu
|
|
||||||
Release=!jammy
|
|
||||||
Release=!noble
|
|
||||||
Release=!plucky
|
|
||||||
Release=!questing
|
|
||||||
|
|
||||||
[TriggerMatch]
|
|
||||||
Distribution=kali
|
|
||||||
|
|
||||||
[Content]
|
|
||||||
Packages=knot-keymgr
|
|
||||||
@ -75,7 +75,6 @@ wrap=(
|
|||||||
setpriv
|
setpriv
|
||||||
sshd
|
sshd
|
||||||
stat
|
stat
|
||||||
stress-ng
|
|
||||||
su
|
su
|
||||||
tar
|
tar
|
||||||
tgtd
|
tgtd
|
||||||
|
|||||||
@ -99,7 +99,7 @@ _arguments -s \
|
|||||||
'(- *)'{-h,--help}'[Show this help]' \
|
'(- *)'{-h,--help}'[Show this help]' \
|
||||||
'(- *)--version[Show package version]' \
|
'(- *)--version[Show package version]' \
|
||||||
'--no-pager[Do not pipe output into a pager]' \
|
'--no-pager[Do not pipe output into a pager]' \
|
||||||
--no-hostname"[Don't show the hostname of log messages]" \
|
--no-hostname"[Don't show the hostname of local log messages]" \
|
||||||
'(-l --full)'{-l,--full}'[Show long fields in full]' \
|
'(-l --full)'{-l,--full}'[Show long fields in full]' \
|
||||||
'(-a --all)'{-a,--all}'[Show all fields, including long and unprintable]' \
|
'(-a --all)'{-a,--all}'[Show all fields, including long and unprintable]' \
|
||||||
'(-f --follow)'{-f,--follow}'[Follow journal]' \
|
'(-f --follow)'{-f,--follow}'[Follow journal]' \
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
#include <linux/fs.h>
|
#include <linux/fs.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <sys/uio.h>
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "sd-id128.h"
|
#include "sd-id128.h"
|
||||||
@ -38,7 +37,12 @@ int efi_get_variable(
|
|||||||
void **ret_value,
|
void **ret_value,
|
||||||
size_t *ret_size) {
|
size_t *ret_size) {
|
||||||
|
|
||||||
|
_cleanup_close_ int fd = -EBADF;
|
||||||
|
_cleanup_free_ void *buf = NULL;
|
||||||
|
struct stat st;
|
||||||
usec_t begin = 0; /* Unnecessary initialization to appease gcc */
|
usec_t begin = 0; /* Unnecessary initialization to appease gcc */
|
||||||
|
uint32_t a;
|
||||||
|
ssize_t n;
|
||||||
|
|
||||||
assert(variable);
|
assert(variable);
|
||||||
|
|
||||||
@ -58,101 +62,80 @@ int efi_get_variable(
|
|||||||
begin = now(CLOCK_MONOTONIC);
|
begin = now(CLOCK_MONOTONIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
_cleanup_close_ int fd = open(p, O_RDONLY|O_NOCTTY|O_CLOEXEC);
|
fd = open(p, O_RDONLY|O_NOCTTY|O_CLOEXEC);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return log_debug_errno(errno, "open(\"%s\") failed: %m", p);
|
return log_debug_errno(errno, "open(\"%s\") failed: %m", p);
|
||||||
|
|
||||||
uint32_t attr;
|
|
||||||
_cleanup_free_ char *buf = NULL;
|
|
||||||
ssize_t n;
|
|
||||||
|
|
||||||
/* The kernel ratelimits reads from the efivarfs because EFI is inefficient, and we'll occasionally
|
|
||||||
* fail with EINTR here. A slowdown is better than a failure for us, so retry a few times and
|
|
||||||
* eventually fail with -EBUSY.
|
|
||||||
*
|
|
||||||
* See https://github.com/torvalds/linux/blob/master/fs/efivarfs/file.c#L75 and
|
|
||||||
* https://github.com/torvalds/linux/commit/bef3efbeb897b56867e271cdbc5f8adaacaeb9cd.
|
|
||||||
*
|
|
||||||
* The variable may also be overwritten between the stat and read. If we find out that the new
|
|
||||||
* contents are longer, try again.
|
|
||||||
*/
|
|
||||||
for (unsigned try = 0;; try++) {
|
|
||||||
struct stat st;
|
|
||||||
|
|
||||||
if (fstat(fd, &st) < 0)
|
if (fstat(fd, &st) < 0)
|
||||||
return log_debug_errno(errno, "fstat(\"%s\") failed: %m", p);
|
return log_debug_errno(errno, "fstat(\"%s\") failed: %m", p);
|
||||||
if (st.st_size == 0)
|
|
||||||
return log_debug_errno(SYNTHETIC_ERRNO(ENOENT),
|
|
||||||
"EFI variable %s is uncommitted", p);
|
|
||||||
if (st.st_size < 4)
|
if (st.st_size < 4)
|
||||||
return log_debug_errno(SYNTHETIC_ERRNO(ENODATA), "EFI variable %s is shorter than 4 bytes, refusing.", p);
|
return log_debug_errno(SYNTHETIC_ERRNO(ENODATA), "EFI variable %s is shorter than 4 bytes, refusing.", p);
|
||||||
if (st.st_size > 4*1024*1024 + 4)
|
if (st.st_size > 4*1024*1024 + 4)
|
||||||
return log_debug_errno(SYNTHETIC_ERRNO(E2BIG), "EFI variable %s is ridiculously large, refusing.", p);
|
return log_debug_errno(SYNTHETIC_ERRNO(E2BIG), "EFI variable %s is ridiculously large, refusing.", p);
|
||||||
|
|
||||||
if (!ret_attribute && !ret_value) {
|
if (ret_value || ret_attribute) {
|
||||||
/* No need to read anything, return the reported size. */
|
/* The kernel ratelimits reads from the efivarfs because EFI is inefficient, and we'll
|
||||||
n = st.st_size;
|
* occasionally fail with EINTR here. A slowdown is better than a failure for us, so
|
||||||
break;
|
* retry a few times and eventually fail with -EBUSY.
|
||||||
}
|
*
|
||||||
|
* See https://github.com/torvalds/linux/blob/master/fs/efivarfs/file.c#L75
|
||||||
/* We want +1 for the read call, and +3 for the additional terminating bytes added below. */
|
* and
|
||||||
char *t = realloc(buf, (size_t) st.st_size + MAX(1, 3));
|
* https://github.com/torvalds/linux/commit/bef3efbeb897b56867e271cdbc5f8adaacaeb9cd.
|
||||||
if (!t)
|
*/
|
||||||
return -ENOMEM;
|
for (unsigned try = 0;; try++) {
|
||||||
buf = t;
|
n = read(fd, &a, sizeof(a));
|
||||||
|
|
||||||
const struct iovec iov[] = {
|
|
||||||
{ &attr, sizeof(attr) },
|
|
||||||
{ buf, (size_t) st.st_size + 1 },
|
|
||||||
};
|
|
||||||
|
|
||||||
n = readv(fd, iov, 2);
|
|
||||||
assert(n <= st.st_size + 1);
|
|
||||||
if (n == st.st_size + 1)
|
|
||||||
/* We need to try again with a bigger buffer. */
|
|
||||||
continue;
|
|
||||||
if (n >= 0)
|
if (n >= 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
log_debug_errno(errno, "Reading from \"%s\" failed: %m", p);
|
log_debug_errno(errno, "Reading from \"%s\" failed: %m", p);
|
||||||
if (errno != EINTR)
|
if (errno != EINTR)
|
||||||
return -errno;
|
return -errno;
|
||||||
if (try >= EFI_N_RETRIES_TOTAL)
|
if (try >= EFI_N_RETRIES_TOTAL)
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
|
|
||||||
if (try >= EFI_N_RETRIES_NO_DELAY)
|
if (try >= EFI_N_RETRIES_NO_DELAY)
|
||||||
(void) usleep_safe(EFI_RETRY_DELAY);
|
(void) usleep_safe(EFI_RETRY_DELAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Unfortunately kernel reports EOF if there's an inconsistency between efivarfs var list and
|
/* Unfortunately kernel reports EOF if there's an inconsistency between efivarfs var list
|
||||||
* what's actually stored in firmware, c.f. #34304. A zero size env var is not allowed in EFI
|
* and what's actually stored in firmware, c.f. #34304. A zero size env var is not allowed in
|
||||||
* and hence the variable doesn't really exist in the backing store as long as it is zero
|
* efi and hence the variable doesn't really exist in the backing store as long as it is zero
|
||||||
* sized, and the kernel calls this "uncommitted". Hence we translate EOF back to ENOENT
|
* sized, and the kernel calls this "uncommitted". Hence we translate EOF back to ENOENT here,
|
||||||
* here, as with kernel behavior before
|
* as with kernel behavior before
|
||||||
* https://github.com/torvalds/linux/commit/3fab70c165795431f00ddf9be8b84ddd07bd1f8f.
|
* https://github.com/torvalds/linux/commit/3fab70c165795431f00ddf9be8b84ddd07bd1f8f
|
||||||
*
|
*
|
||||||
* If the kernel changes behaviour (to flush dentries on resume), we can drop this at some
|
* If the kernel changes behaviour (to flush dentries on resume), we can drop
|
||||||
* point in the future. But note that the commit is 11 years old at this point so we'll need
|
* this at some point in the future. But note that the commit is 11
|
||||||
* to deal with the current behaviour for a long time.
|
* years old at this point so we'll need to deal with the current behaviour for
|
||||||
|
* a long time.
|
||||||
*/
|
*/
|
||||||
if (n == 0)
|
if (n == 0)
|
||||||
return log_debug_errno(SYNTHETIC_ERRNO(ENOENT),
|
return log_debug_errno(SYNTHETIC_ERRNO(ENOENT),
|
||||||
"EFI variable %s is uncommitted", p);
|
"EFI variable %s is uncommitted", p);
|
||||||
if (n < 4)
|
|
||||||
return log_debug_errno(SYNTHETIC_ERRNO(EIO),
|
|
||||||
"Read %zi bytes from EFI variable %s, expected >= 4", n, p);
|
|
||||||
|
|
||||||
if (ret_attribute)
|
if (n != sizeof(a))
|
||||||
*ret_attribute = attr;
|
return log_debug_errno(SYNTHETIC_ERRNO(EIO),
|
||||||
if (ret_value) {
|
"Read %zi bytes from EFI variable %s, expected %zu.", n, p, sizeof(a));
|
||||||
assert(buf);
|
|
||||||
/* Always NUL-terminate (3 bytes, to properly protect UTF-16, even if truncated in
|
|
||||||
* the middle of a character) */
|
|
||||||
buf[n - 4] = 0;
|
|
||||||
buf[n - 4 + 1] = 0;
|
|
||||||
buf[n - 4 + 2] = 0;
|
|
||||||
*ret_value = TAKE_PTR(buf);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ret_value) {
|
||||||
|
buf = malloc(st.st_size - 4 + 3);
|
||||||
|
if (!buf)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
n = read(fd, buf, (size_t) st.st_size - 4);
|
||||||
|
if (n < 0)
|
||||||
|
return log_debug_errno(errno, "Failed to read value of EFI variable %s: %m", p);
|
||||||
|
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) */
|
||||||
|
((char*) buf)[n] = 0;
|
||||||
|
((char*) buf)[n + 1] = 0;
|
||||||
|
((char*) buf)[n + 2] = 0;
|
||||||
|
} else
|
||||||
|
/* Assume that the reported size is accurate */
|
||||||
|
n = st.st_size - 4;
|
||||||
|
|
||||||
if (DEBUG_LOGGING) {
|
if (DEBUG_LOGGING) {
|
||||||
usec_t end = now(CLOCK_MONOTONIC);
|
usec_t end = now(CLOCK_MONOTONIC);
|
||||||
if (end > begin + EFI_RETRY_DELAY)
|
if (end > begin + EFI_RETRY_DELAY)
|
||||||
@ -163,8 +146,14 @@ int efi_get_variable(
|
|||||||
/* 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
|
||||||
* with a smaller value. */
|
* with a smaller value. */
|
||||||
|
|
||||||
|
if (ret_attribute)
|
||||||
|
*ret_attribute = a;
|
||||||
|
|
||||||
|
if (ret_value)
|
||||||
|
*ret_value = TAKE_PTR(buf);
|
||||||
|
|
||||||
if (ret_size)
|
if (ret_size)
|
||||||
*ret_size = n - 4;
|
*ret_size = n;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1058,9 +1058,10 @@ int fd_get_diskseq(int fd, uint64_t *ret) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int path_is_root_at(int dir_fd, const char *path) {
|
int path_is_root_at(int dir_fd, const char *path) {
|
||||||
|
_cleanup_close_ int fd = -EBADF, pfd = -EBADF;
|
||||||
|
|
||||||
assert(dir_fd >= 0 || dir_fd == AT_FDCWD);
|
assert(dir_fd >= 0 || dir_fd == AT_FDCWD);
|
||||||
|
|
||||||
_cleanup_close_ int fd = -EBADF;
|
|
||||||
if (!isempty(path)) {
|
if (!isempty(path)) {
|
||||||
fd = openat(dir_fd, path, O_PATH|O_DIRECTORY|O_CLOEXEC);
|
fd = openat(dir_fd, path, O_PATH|O_DIRECTORY|O_CLOEXEC);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
@ -1069,19 +1070,19 @@ int path_is_root_at(int dir_fd, const char *path) {
|
|||||||
dir_fd = fd;
|
dir_fd = fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
_cleanup_close_ int root_fd = openat(AT_FDCWD, "/", O_PATH|O_DIRECTORY|O_CLOEXEC);
|
pfd = openat(dir_fd, "..", O_PATH|O_DIRECTORY|O_CLOEXEC);
|
||||||
if (root_fd < 0)
|
if (pfd < 0)
|
||||||
return -errno;
|
return errno == ENOTDIR ? false : -errno;
|
||||||
|
|
||||||
/* Even if the root directory has the same inode as our fd, the fd may not point to the root
|
/* Even if the parent directory has the same inode, the fd may not point to the root directory "/",
|
||||||
* directory "/", and we also need to check that the mount ids are the same. Otherwise, a construct
|
* and we also need to check that the mount ids are the same. Otherwise, a construct like the
|
||||||
* like the following could be used to trick us:
|
* following could be used to trick us:
|
||||||
*
|
*
|
||||||
* $ mkdir /tmp/x
|
* $ mkdir /tmp/x /tmp/x/y
|
||||||
* $ mount --bind / /tmp/x
|
* $ mount --bind /tmp/x /tmp/x/y
|
||||||
*/
|
*/
|
||||||
|
|
||||||
return fds_are_same_mount(dir_fd, root_fd);
|
return fds_are_same_mount(dir_fd, pfd);
|
||||||
}
|
}
|
||||||
|
|
||||||
int fds_are_same_mount(int fd1, int fd2) {
|
int fds_are_same_mount(int fd1, int fd2) {
|
||||||
|
|||||||
@ -293,20 +293,15 @@ int fchmod_opath(int fd, mode_t m) {
|
|||||||
* - fchmod(2) only operates on open files (i. e., fds with an open file description);
|
* - fchmod(2) only operates on open files (i. e., fds with an open file description);
|
||||||
* - fchmodat(2) does not have a flag arg like fchownat(2) does, so no way to pass AT_EMPTY_PATH;
|
* - fchmodat(2) does not have a flag arg like fchownat(2) does, so no way to pass AT_EMPTY_PATH;
|
||||||
* + it should not be confused with the libc fchmodat(3) interface, which adds 4th flag argument,
|
* + it should not be confused with the libc fchmodat(3) interface, which adds 4th flag argument,
|
||||||
* and supports AT_EMPTY_PATH since v2.39 (previously only supported AT_SYMLINK_NOFOLLOW). So if
|
* but does not support AT_EMPTY_PATH (only supports AT_SYMLINK_NOFOLLOW);
|
||||||
* the kernel has fchmodat2(2), since v2.39 glibc will call into it directly. If the kernel
|
|
||||||
* doesn't, or glibc is older than v2.39, glibc's internal fallback will return EINVAL if
|
|
||||||
* AT_EMPTY_PATH is passed.
|
|
||||||
* - fchmodat2(2) supports all the AT_* flags, but is still very recent.
|
* - fchmodat2(2) supports all the AT_* flags, but is still very recent.
|
||||||
*
|
*
|
||||||
* We try to use fchmodat(3) first, and on EINVAL fall back to fchmodat2(), and, if that is also not
|
* We try to use fchmodat2(), and, if it is not supported, resort
|
||||||
* supported, resort to the /proc/self/fd dance. */
|
* to the /proc/self/fd dance. */
|
||||||
|
|
||||||
assert(fd >= 0);
|
assert(fd >= 0);
|
||||||
|
|
||||||
if (fchmodat(fd, "", m, AT_EMPTY_PATH) >= 0)
|
if (fchmodat2(fd, "", m, AT_EMPTY_PATH) >= 0)
|
||||||
return 0;
|
|
||||||
if (errno == EINVAL && fchmodat2(fd, "", m, AT_EMPTY_PATH) >= 0) /* glibc too old? */
|
|
||||||
return 0;
|
return 0;
|
||||||
if (!IN_SET(errno, ENOSYS, EPERM)) /* Some container managers block unknown syscalls with EPERM */
|
if (!IN_SET(errno, ENOSYS, EPERM)) /* Some container managers block unknown syscalls with EPERM */
|
||||||
return -errno;
|
return -errno;
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind
|
bind
|
||||||
bpf
|
bpf
|
||||||
breakpoint
|
|
||||||
brk
|
brk
|
||||||
cachectl
|
cachectl
|
||||||
cacheflush
|
cacheflush
|
||||||
@ -114,7 +113,6 @@ futimesat
|
|||||||
get_mempolicy
|
get_mempolicy
|
||||||
get_robust_list
|
get_robust_list
|
||||||
get_thread_area
|
get_thread_area
|
||||||
get_tls
|
|
||||||
getcpu
|
getcpu
|
||||||
getcwd
|
getcwd
|
||||||
getdents
|
getdents
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node
|
|||||||
set_robust_list
|
set_robust_list
|
||||||
set_thread_area
|
set_thread_area
|
||||||
set_tid_address
|
set_tid_address
|
||||||
set_tls
|
|
||||||
setdomainname
|
setdomainname
|
||||||
setfsgid
|
setfsgid
|
||||||
setfsgid32
|
setfsgid32
|
||||||
@ -514,8 +511,6 @@ unlinkat
|
|||||||
unshare
|
unshare
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd
|
userfaultfd
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat
|
ustat
|
||||||
utime
|
utime
|
||||||
utimensat
|
utimensat
|
||||||
|
|||||||
@ -16,10 +16,9 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 282
|
bind 282
|
||||||
bpf 386
|
bpf 386
|
||||||
breakpoint 983041
|
|
||||||
brk 45
|
brk 45
|
||||||
cachectl
|
cachectl
|
||||||
cacheflush 983042
|
cacheflush
|
||||||
cachestat 451
|
cachestat 451
|
||||||
capget 184
|
capget 184
|
||||||
capset 185
|
capset 185
|
||||||
@ -114,7 +113,6 @@ futimesat 326
|
|||||||
get_mempolicy 320
|
get_mempolicy 320
|
||||||
get_robust_list 339
|
get_robust_list 339
|
||||||
get_thread_area
|
get_thread_area
|
||||||
get_tls 983046
|
|
||||||
getcpu 345
|
getcpu 345
|
||||||
getcwd 183
|
getcwd 183
|
||||||
getdents 141
|
getdents 141
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 450
|
|||||||
set_robust_list 338
|
set_robust_list 338
|
||||||
set_thread_area
|
set_thread_area
|
||||||
set_tid_address 256
|
set_tid_address 256
|
||||||
set_tls 983045
|
|
||||||
setdomainname 121
|
setdomainname 121
|
||||||
setfsgid 139
|
setfsgid 139
|
||||||
setfsgid32 216
|
setfsgid32 216
|
||||||
@ -514,8 +511,6 @@ unlinkat 328
|
|||||||
unshare 337
|
unshare 337
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 388
|
userfaultfd 388
|
||||||
usr26 983043
|
|
||||||
usr32 983044
|
|
||||||
ustat 62
|
ustat 62
|
||||||
utime
|
utime
|
||||||
utimensat 348
|
utimensat 348
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 200
|
bind 200
|
||||||
bpf 280
|
bpf 280
|
||||||
breakpoint
|
|
||||||
brk 214
|
brk 214
|
||||||
cachectl
|
cachectl
|
||||||
cacheflush
|
cacheflush
|
||||||
@ -114,7 +113,6 @@ futimesat
|
|||||||
get_mempolicy 236
|
get_mempolicy 236
|
||||||
get_robust_list 100
|
get_robust_list 100
|
||||||
get_thread_area
|
get_thread_area
|
||||||
get_tls
|
|
||||||
getcpu 168
|
getcpu 168
|
||||||
getcwd 17
|
getcwd 17
|
||||||
getdents
|
getdents
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 450
|
|||||||
set_robust_list 99
|
set_robust_list 99
|
||||||
set_thread_area
|
set_thread_area
|
||||||
set_tid_address 96
|
set_tid_address 96
|
||||||
set_tls
|
|
||||||
setdomainname 162
|
setdomainname 162
|
||||||
setfsgid 152
|
setfsgid 152
|
||||||
setfsgid32
|
setfsgid32
|
||||||
@ -514,8 +511,6 @@ unlinkat 35
|
|||||||
unshare 97
|
unshare 97
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 282
|
userfaultfd 282
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat
|
ustat
|
||||||
utime
|
utime
|
||||||
utimensat 88
|
utimensat 88
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 361
|
bind 361
|
||||||
bpf 357
|
bpf 357
|
||||||
breakpoint
|
|
||||||
brk 45
|
brk 45
|
||||||
cachectl
|
cachectl
|
||||||
cacheflush
|
cacheflush
|
||||||
@ -114,7 +113,6 @@ futimesat 299
|
|||||||
get_mempolicy 275
|
get_mempolicy 275
|
||||||
get_robust_list 312
|
get_robust_list 312
|
||||||
get_thread_area 244
|
get_thread_area 244
|
||||||
get_tls
|
|
||||||
getcpu 318
|
getcpu 318
|
||||||
getcwd 183
|
getcwd 183
|
||||||
getdents 141
|
getdents 141
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 450
|
|||||||
set_robust_list 311
|
set_robust_list 311
|
||||||
set_thread_area 243
|
set_thread_area 243
|
||||||
set_tid_address 258
|
set_tid_address 258
|
||||||
set_tls
|
|
||||||
setdomainname 121
|
setdomainname 121
|
||||||
setfsgid 139
|
setfsgid 139
|
||||||
setfsgid32 216
|
setfsgid32 216
|
||||||
@ -514,8 +511,6 @@ unlinkat 301
|
|||||||
unshare 310
|
unshare 310
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 374
|
userfaultfd 374
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat 62
|
ustat 62
|
||||||
utime 30
|
utime 30
|
||||||
utimensat 320
|
utimensat 320
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 200
|
bind 200
|
||||||
bpf 280
|
bpf 280
|
||||||
breakpoint
|
|
||||||
brk 214
|
brk 214
|
||||||
cachectl
|
cachectl
|
||||||
cacheflush
|
cacheflush
|
||||||
@ -114,7 +113,6 @@ futimesat
|
|||||||
get_mempolicy 236
|
get_mempolicy 236
|
||||||
get_robust_list 100
|
get_robust_list 100
|
||||||
get_thread_area
|
get_thread_area
|
||||||
get_tls
|
|
||||||
getcpu 168
|
getcpu 168
|
||||||
getcwd 17
|
getcwd 17
|
||||||
getdents
|
getdents
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 450
|
|||||||
set_robust_list 99
|
set_robust_list 99
|
||||||
set_thread_area
|
set_thread_area
|
||||||
set_tid_address 96
|
set_tid_address 96
|
||||||
set_tls
|
|
||||||
setdomainname 162
|
setdomainname 162
|
||||||
setfsgid 152
|
setfsgid 152
|
||||||
setfsgid32
|
setfsgid32
|
||||||
@ -514,8 +511,6 @@ unlinkat 35
|
|||||||
unshare 97
|
unshare 97
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 282
|
userfaultfd 282
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat
|
ustat
|
||||||
utime
|
utime
|
||||||
utimensat 88
|
utimensat 88
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier 336
|
|||||||
atomic_cmpxchg_32 335
|
atomic_cmpxchg_32 335
|
||||||
bind 358
|
bind 358
|
||||||
bpf 354
|
bpf 354
|
||||||
breakpoint
|
|
||||||
brk 45
|
brk 45
|
||||||
cachectl
|
cachectl
|
||||||
cacheflush 123
|
cacheflush 123
|
||||||
@ -114,7 +113,6 @@ futimesat 292
|
|||||||
get_mempolicy 269
|
get_mempolicy 269
|
||||||
get_robust_list 305
|
get_robust_list 305
|
||||||
get_thread_area 333
|
get_thread_area 333
|
||||||
get_tls
|
|
||||||
getcpu 314
|
getcpu 314
|
||||||
getcwd 183
|
getcwd 183
|
||||||
getdents 141
|
getdents 141
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 450
|
|||||||
set_robust_list 304
|
set_robust_list 304
|
||||||
set_thread_area 334
|
set_thread_area 334
|
||||||
set_tid_address 253
|
set_tid_address 253
|
||||||
set_tls
|
|
||||||
setdomainname 121
|
setdomainname 121
|
||||||
setfsgid 139
|
setfsgid 139
|
||||||
setfsgid32 216
|
setfsgid32 216
|
||||||
@ -514,8 +511,6 @@ unlinkat 294
|
|||||||
unshare 303
|
unshare 303
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 373
|
userfaultfd 373
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat 62
|
ustat 62
|
||||||
utime 30
|
utime 30
|
||||||
utimensat 316
|
utimensat 316
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 5048
|
bind 5048
|
||||||
bpf 5315
|
bpf 5315
|
||||||
breakpoint
|
|
||||||
brk 5012
|
brk 5012
|
||||||
cachectl 5198
|
cachectl 5198
|
||||||
cacheflush 5197
|
cacheflush 5197
|
||||||
@ -114,7 +113,6 @@ futimesat 5251
|
|||||||
get_mempolicy 5228
|
get_mempolicy 5228
|
||||||
get_robust_list 5269
|
get_robust_list 5269
|
||||||
get_thread_area
|
get_thread_area
|
||||||
get_tls
|
|
||||||
getcpu 5271
|
getcpu 5271
|
||||||
getcwd 5077
|
getcwd 5077
|
||||||
getdents 5076
|
getdents 5076
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 5450
|
|||||||
set_robust_list 5268
|
set_robust_list 5268
|
||||||
set_thread_area 5242
|
set_thread_area 5242
|
||||||
set_tid_address 5212
|
set_tid_address 5212
|
||||||
set_tls
|
|
||||||
setdomainname 5166
|
setdomainname 5166
|
||||||
setfsgid 5121
|
setfsgid 5121
|
||||||
setfsgid32
|
setfsgid32
|
||||||
@ -514,8 +511,6 @@ unlinkat 5253
|
|||||||
unshare 5262
|
unshare 5262
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 5317
|
userfaultfd 5317
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat 5133
|
ustat 5133
|
||||||
utime 5130
|
utime 5130
|
||||||
utimensat 5275
|
utimensat 5275
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 6048
|
bind 6048
|
||||||
bpf 6319
|
bpf 6319
|
||||||
breakpoint
|
|
||||||
brk 6012
|
brk 6012
|
||||||
cachectl 6198
|
cachectl 6198
|
||||||
cacheflush 6197
|
cacheflush 6197
|
||||||
@ -114,7 +113,6 @@ futimesat 6255
|
|||||||
get_mempolicy 6232
|
get_mempolicy 6232
|
||||||
get_robust_list 6273
|
get_robust_list 6273
|
||||||
get_thread_area
|
get_thread_area
|
||||||
get_tls
|
|
||||||
getcpu 6275
|
getcpu 6275
|
||||||
getcwd 6077
|
getcwd 6077
|
||||||
getdents 6076
|
getdents 6076
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 6450
|
|||||||
set_robust_list 6272
|
set_robust_list 6272
|
||||||
set_thread_area 6246
|
set_thread_area 6246
|
||||||
set_tid_address 6213
|
set_tid_address 6213
|
||||||
set_tls
|
|
||||||
setdomainname 6166
|
setdomainname 6166
|
||||||
setfsgid 6121
|
setfsgid 6121
|
||||||
setfsgid32
|
setfsgid32
|
||||||
@ -514,8 +511,6 @@ unlinkat 6257
|
|||||||
unshare 6266
|
unshare 6266
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 6321
|
userfaultfd 6321
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat 6133
|
ustat 6133
|
||||||
utime 6130
|
utime 6130
|
||||||
utimensat 6279
|
utimensat 6279
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 4169
|
bind 4169
|
||||||
bpf 4355
|
bpf 4355
|
||||||
breakpoint
|
|
||||||
brk 4045
|
brk 4045
|
||||||
cachectl 4148
|
cachectl 4148
|
||||||
cacheflush 4147
|
cacheflush 4147
|
||||||
@ -114,7 +113,6 @@ futimesat 4292
|
|||||||
get_mempolicy 4269
|
get_mempolicy 4269
|
||||||
get_robust_list 4310
|
get_robust_list 4310
|
||||||
get_thread_area
|
get_thread_area
|
||||||
get_tls
|
|
||||||
getcpu 4312
|
getcpu 4312
|
||||||
getcwd 4203
|
getcwd 4203
|
||||||
getdents 4141
|
getdents 4141
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 4450
|
|||||||
set_robust_list 4309
|
set_robust_list 4309
|
||||||
set_thread_area 4283
|
set_thread_area 4283
|
||||||
set_tid_address 4252
|
set_tid_address 4252
|
||||||
set_tls
|
|
||||||
setdomainname 4121
|
setdomainname 4121
|
||||||
setfsgid 4139
|
setfsgid 4139
|
||||||
setfsgid32
|
setfsgid32
|
||||||
@ -514,8 +511,6 @@ unlinkat 4294
|
|||||||
unshare 4303
|
unshare 4303
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 4357
|
userfaultfd 4357
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat 4062
|
ustat 4062
|
||||||
utime 4030
|
utime 4030
|
||||||
utimensat 4316
|
utimensat 4316
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 22
|
bind 22
|
||||||
bpf 341
|
bpf 341
|
||||||
breakpoint
|
|
||||||
brk 45
|
brk 45
|
||||||
cachectl
|
cachectl
|
||||||
cacheflush 356
|
cacheflush 356
|
||||||
@ -114,7 +113,6 @@ futimesat 279
|
|||||||
get_mempolicy 261
|
get_mempolicy 261
|
||||||
get_robust_list 290
|
get_robust_list 290
|
||||||
get_thread_area
|
get_thread_area
|
||||||
get_tls
|
|
||||||
getcpu 296
|
getcpu 296
|
||||||
getcwd 110
|
getcwd 110
|
||||||
getdents 141
|
getdents 141
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 450
|
|||||||
set_robust_list 289
|
set_robust_list 289
|
||||||
set_thread_area
|
set_thread_area
|
||||||
set_tid_address 237
|
set_tid_address 237
|
||||||
set_tls
|
|
||||||
setdomainname 121
|
setdomainname 121
|
||||||
setfsgid 139
|
setfsgid 139
|
||||||
setfsgid32
|
setfsgid32
|
||||||
@ -514,8 +511,6 @@ unlinkat 281
|
|||||||
unshare 288
|
unshare 288
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 344
|
userfaultfd 344
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat 62
|
ustat 62
|
||||||
utime 30
|
utime 30
|
||||||
utimensat 301
|
utimensat 301
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 327
|
bind 327
|
||||||
bpf 361
|
bpf 361
|
||||||
breakpoint
|
|
||||||
brk 45
|
brk 45
|
||||||
cachectl
|
cachectl
|
||||||
cacheflush
|
cacheflush
|
||||||
@ -114,7 +113,6 @@ futimesat 290
|
|||||||
get_mempolicy 260
|
get_mempolicy 260
|
||||||
get_robust_list 299
|
get_robust_list 299
|
||||||
get_thread_area
|
get_thread_area
|
||||||
get_tls
|
|
||||||
getcpu 302
|
getcpu 302
|
||||||
getcwd 182
|
getcwd 182
|
||||||
getdents 141
|
getdents 141
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 450
|
|||||||
set_robust_list 300
|
set_robust_list 300
|
||||||
set_thread_area
|
set_thread_area
|
||||||
set_tid_address 232
|
set_tid_address 232
|
||||||
set_tls
|
|
||||||
setdomainname 121
|
setdomainname 121
|
||||||
setfsgid 139
|
setfsgid 139
|
||||||
setfsgid32
|
setfsgid32
|
||||||
@ -514,8 +511,6 @@ unlinkat 292
|
|||||||
unshare 282
|
unshare 282
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 364
|
userfaultfd 364
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat 62
|
ustat 62
|
||||||
utime 30
|
utime 30
|
||||||
utimensat 304
|
utimensat 304
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 327
|
bind 327
|
||||||
bpf 361
|
bpf 361
|
||||||
breakpoint
|
|
||||||
brk 45
|
brk 45
|
||||||
cachectl
|
cachectl
|
||||||
cacheflush
|
cacheflush
|
||||||
@ -114,7 +113,6 @@ futimesat 290
|
|||||||
get_mempolicy 260
|
get_mempolicy 260
|
||||||
get_robust_list 299
|
get_robust_list 299
|
||||||
get_thread_area
|
get_thread_area
|
||||||
get_tls
|
|
||||||
getcpu 302
|
getcpu 302
|
||||||
getcwd 182
|
getcwd 182
|
||||||
getdents 141
|
getdents 141
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 450
|
|||||||
set_robust_list 300
|
set_robust_list 300
|
||||||
set_thread_area
|
set_thread_area
|
||||||
set_tid_address 232
|
set_tid_address 232
|
||||||
set_tls
|
|
||||||
setdomainname 121
|
setdomainname 121
|
||||||
setfsgid 139
|
setfsgid 139
|
||||||
setfsgid32
|
setfsgid32
|
||||||
@ -514,8 +511,6 @@ unlinkat 292
|
|||||||
unshare 282
|
unshare 282
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 364
|
userfaultfd 364
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat 62
|
ustat 62
|
||||||
utime 30
|
utime 30
|
||||||
utimensat 304
|
utimensat 304
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 200
|
bind 200
|
||||||
bpf 280
|
bpf 280
|
||||||
breakpoint
|
|
||||||
brk 214
|
brk 214
|
||||||
cachectl
|
cachectl
|
||||||
cacheflush
|
cacheflush
|
||||||
@ -114,7 +113,6 @@ futimesat
|
|||||||
get_mempolicy 236
|
get_mempolicy 236
|
||||||
get_robust_list 100
|
get_robust_list 100
|
||||||
get_thread_area
|
get_thread_area
|
||||||
get_tls
|
|
||||||
getcpu 168
|
getcpu 168
|
||||||
getcwd 17
|
getcwd 17
|
||||||
getdents
|
getdents
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 450
|
|||||||
set_robust_list 99
|
set_robust_list 99
|
||||||
set_thread_area
|
set_thread_area
|
||||||
set_tid_address 96
|
set_tid_address 96
|
||||||
set_tls
|
|
||||||
setdomainname 162
|
setdomainname 162
|
||||||
setfsgid 152
|
setfsgid 152
|
||||||
setfsgid32
|
setfsgid32
|
||||||
@ -514,8 +511,6 @@ unlinkat 35
|
|||||||
unshare 97
|
unshare 97
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 282
|
userfaultfd 282
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat
|
ustat
|
||||||
utime
|
utime
|
||||||
utimensat
|
utimensat
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 200
|
bind 200
|
||||||
bpf 280
|
bpf 280
|
||||||
breakpoint
|
|
||||||
brk 214
|
brk 214
|
||||||
cachectl
|
cachectl
|
||||||
cacheflush
|
cacheflush
|
||||||
@ -114,7 +113,6 @@ futimesat
|
|||||||
get_mempolicy 236
|
get_mempolicy 236
|
||||||
get_robust_list 100
|
get_robust_list 100
|
||||||
get_thread_area
|
get_thread_area
|
||||||
get_tls
|
|
||||||
getcpu 168
|
getcpu 168
|
||||||
getcwd 17
|
getcwd 17
|
||||||
getdents
|
getdents
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 450
|
|||||||
set_robust_list 99
|
set_robust_list 99
|
||||||
set_thread_area
|
set_thread_area
|
||||||
set_tid_address 96
|
set_tid_address 96
|
||||||
set_tls
|
|
||||||
setdomainname 162
|
setdomainname 162
|
||||||
setfsgid 152
|
setfsgid 152
|
||||||
setfsgid32
|
setfsgid32
|
||||||
@ -514,8 +511,6 @@ unlinkat 35
|
|||||||
unshare 97
|
unshare 97
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 282
|
userfaultfd 282
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat
|
ustat
|
||||||
utime
|
utime
|
||||||
utimensat 88
|
utimensat 88
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 361
|
bind 361
|
||||||
bpf 351
|
bpf 351
|
||||||
breakpoint
|
|
||||||
brk 45
|
brk 45
|
||||||
cachectl
|
cachectl
|
||||||
cacheflush
|
cacheflush
|
||||||
@ -114,7 +113,6 @@ futimesat 292
|
|||||||
get_mempolicy 269
|
get_mempolicy 269
|
||||||
get_robust_list 305
|
get_robust_list 305
|
||||||
get_thread_area
|
get_thread_area
|
||||||
get_tls
|
|
||||||
getcpu 311
|
getcpu 311
|
||||||
getcwd 183
|
getcwd 183
|
||||||
getdents 141
|
getdents 141
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 450
|
|||||||
set_robust_list 304
|
set_robust_list 304
|
||||||
set_thread_area
|
set_thread_area
|
||||||
set_tid_address 252
|
set_tid_address 252
|
||||||
set_tls
|
|
||||||
setdomainname 121
|
setdomainname 121
|
||||||
setfsgid 139
|
setfsgid 139
|
||||||
setfsgid32 216
|
setfsgid32 216
|
||||||
@ -514,8 +511,6 @@ unlinkat 294
|
|||||||
unshare 303
|
unshare 303
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 355
|
userfaultfd 355
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat 62
|
ustat 62
|
||||||
utime 30
|
utime 30
|
||||||
utimensat 315
|
utimensat 315
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 361
|
bind 361
|
||||||
bpf 351
|
bpf 351
|
||||||
breakpoint
|
|
||||||
brk 45
|
brk 45
|
||||||
cachectl
|
cachectl
|
||||||
cacheflush
|
cacheflush
|
||||||
@ -114,7 +113,6 @@ futimesat 292
|
|||||||
get_mempolicy 269
|
get_mempolicy 269
|
||||||
get_robust_list 305
|
get_robust_list 305
|
||||||
get_thread_area
|
get_thread_area
|
||||||
get_tls
|
|
||||||
getcpu 311
|
getcpu 311
|
||||||
getcwd 183
|
getcwd 183
|
||||||
getdents 141
|
getdents 141
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 450
|
|||||||
set_robust_list 304
|
set_robust_list 304
|
||||||
set_thread_area
|
set_thread_area
|
||||||
set_tid_address 252
|
set_tid_address 252
|
||||||
set_tls
|
|
||||||
setdomainname 121
|
setdomainname 121
|
||||||
setfsgid 216
|
setfsgid 216
|
||||||
setfsgid32
|
setfsgid32
|
||||||
@ -514,8 +511,6 @@ unlinkat 294
|
|||||||
unshare 303
|
unshare 303
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 355
|
userfaultfd 355
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat 62
|
ustat 62
|
||||||
utime 30
|
utime 30
|
||||||
utimensat 315
|
utimensat 315
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 341
|
bind 341
|
||||||
bpf 375
|
bpf 375
|
||||||
breakpoint
|
|
||||||
brk 45
|
brk 45
|
||||||
cachectl
|
cachectl
|
||||||
cacheflush 123
|
cacheflush 123
|
||||||
@ -114,7 +113,6 @@ futimesat 299
|
|||||||
get_mempolicy 275
|
get_mempolicy 275
|
||||||
get_robust_list 312
|
get_robust_list 312
|
||||||
get_thread_area
|
get_thread_area
|
||||||
get_tls
|
|
||||||
getcpu 318
|
getcpu 318
|
||||||
getcwd 183
|
getcwd 183
|
||||||
getdents 141
|
getdents 141
|
||||||
@ -406,7 +404,6 @@ set_mempolicy_home_node 450
|
|||||||
set_robust_list 311
|
set_robust_list 311
|
||||||
set_thread_area
|
set_thread_area
|
||||||
set_tid_address 258
|
set_tid_address 258
|
||||||
set_tls
|
|
||||||
setdomainname 121
|
setdomainname 121
|
||||||
setfsgid 139
|
setfsgid 139
|
||||||
setfsgid32 216
|
setfsgid32 216
|
||||||
@ -515,8 +512,6 @@ unlinkat 301
|
|||||||
unshare 310
|
unshare 310
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 377
|
userfaultfd 377
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat 62
|
ustat 62
|
||||||
utime 30
|
utime 30
|
||||||
utimensat 320
|
utimensat 320
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 353
|
bind 353
|
||||||
bpf 349
|
bpf 349
|
||||||
breakpoint
|
|
||||||
brk 17
|
brk 17
|
||||||
cachectl
|
cachectl
|
||||||
cacheflush
|
cacheflush
|
||||||
@ -114,7 +113,6 @@ futimesat 288
|
|||||||
get_mempolicy 304
|
get_mempolicy 304
|
||||||
get_robust_list 301
|
get_robust_list 301
|
||||||
get_thread_area
|
get_thread_area
|
||||||
get_tls
|
|
||||||
getcpu 308
|
getcpu 308
|
||||||
getcwd 119
|
getcwd 119
|
||||||
getdents 174
|
getdents 174
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 450
|
|||||||
set_robust_list 300
|
set_robust_list 300
|
||||||
set_thread_area
|
set_thread_area
|
||||||
set_tid_address 166
|
set_tid_address 166
|
||||||
set_tls
|
|
||||||
setdomainname 163
|
setdomainname 163
|
||||||
setfsgid 229
|
setfsgid 229
|
||||||
setfsgid32 94
|
setfsgid32 94
|
||||||
@ -514,8 +511,6 @@ unlinkat 290
|
|||||||
unshare 299
|
unshare 299
|
||||||
uretprobe
|
uretprobe
|
||||||
userfaultfd 352
|
userfaultfd 352
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat 168
|
ustat 168
|
||||||
utime 30
|
utime 30
|
||||||
utimensat 310
|
utimensat 310
|
||||||
|
|||||||
@ -16,7 +16,6 @@ atomic_barrier
|
|||||||
atomic_cmpxchg_32
|
atomic_cmpxchg_32
|
||||||
bind 49
|
bind 49
|
||||||
bpf 321
|
bpf 321
|
||||||
breakpoint
|
|
||||||
brk 12
|
brk 12
|
||||||
cachectl
|
cachectl
|
||||||
cacheflush
|
cacheflush
|
||||||
@ -114,7 +113,6 @@ futimesat 261
|
|||||||
get_mempolicy 239
|
get_mempolicy 239
|
||||||
get_robust_list 274
|
get_robust_list 274
|
||||||
get_thread_area 211
|
get_thread_area 211
|
||||||
get_tls
|
|
||||||
getcpu 309
|
getcpu 309
|
||||||
getcwd 79
|
getcwd 79
|
||||||
getdents 78
|
getdents 78
|
||||||
@ -405,7 +403,6 @@ set_mempolicy_home_node 450
|
|||||||
set_robust_list 273
|
set_robust_list 273
|
||||||
set_thread_area 205
|
set_thread_area 205
|
||||||
set_tid_address 218
|
set_tid_address 218
|
||||||
set_tls
|
|
||||||
setdomainname 171
|
setdomainname 171
|
||||||
setfsgid 123
|
setfsgid 123
|
||||||
setfsgid32
|
setfsgid32
|
||||||
@ -514,8 +511,6 @@ unlinkat 263
|
|||||||
unshare 272
|
unshare 272
|
||||||
uretprobe 335
|
uretprobe 335
|
||||||
userfaultfd 323
|
userfaultfd 323
|
||||||
usr26
|
|
||||||
usr32
|
|
||||||
ustat 136
|
ustat 136
|
||||||
utime 132
|
utime 132
|
||||||
utimensat 280
|
utimensat 280
|
||||||
|
|||||||
@ -1359,10 +1359,6 @@ static void boot_entry_parse_tries(
|
|||||||
if (!strcaseeq16(counter, suffix))
|
if (!strcaseeq16(counter, suffix))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
entry->id = xasprintf("%.*ls%ls",
|
|
||||||
(int) prefix_len - 1,
|
|
||||||
file,
|
|
||||||
suffix);
|
|
||||||
entry->tries_left = tries_left;
|
entry->tries_left = tries_left;
|
||||||
entry->tries_done = tries_done;
|
entry->tries_done = tries_done;
|
||||||
entry->path = xstrdup16(path);
|
entry->path = xstrdup16(path);
|
||||||
@ -1535,8 +1531,6 @@ static void boot_entry_add_type1(
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
entry->device = device;
|
entry->device = device;
|
||||||
|
|
||||||
if (!entry->id)
|
|
||||||
entry->id = xstrdup16(file);
|
entry->id = xstrdup16(file);
|
||||||
strtolower16(entry->id);
|
strtolower16(entry->id);
|
||||||
|
|
||||||
|
|||||||
@ -151,15 +151,15 @@
|
|||||||
#define UNIQ_T(x, uniq) CONCATENATE(__unique_prefix_, CONCATENATE(x, uniq))
|
#define UNIQ_T(x, uniq) CONCATENATE(__unique_prefix_, CONCATENATE(x, uniq))
|
||||||
#define UNIQ __COUNTER__
|
#define UNIQ __COUNTER__
|
||||||
|
|
||||||
/* The macro is true when the code block is called first time, and is false for the second and later times.
|
/* Note that this works differently from pthread_once(): this macro does
|
||||||
* Note that this works differently from pthread_once(): this macro does not synchronize code execution, i.e.
|
* not synchronize code execution, i.e. code that is run conditionalized
|
||||||
* code that is run conditionalized on this macro will run concurrently to all other code conditionalized the
|
* on this macro will run concurrently to all other code conditionalized
|
||||||
* same way, there's no ordering or completion enforced. */
|
* the same way, there's no ordering or completion enforced. */
|
||||||
#define ONCE __ONCE(UNIQ_T(_once_, UNIQ))
|
#define ONCE __ONCE(UNIQ_T(_once_, UNIQ))
|
||||||
#define __ONCE(o) \
|
#define __ONCE(o) \
|
||||||
({ \
|
({ \
|
||||||
static bool (o) = false; \
|
static bool (o) = false; \
|
||||||
!__atomic_exchange_n(&(o), true, __ATOMIC_SEQ_CST); \
|
__atomic_exchange_n(&(o), true, __ATOMIC_SEQ_CST); \
|
||||||
})
|
})
|
||||||
|
|
||||||
#define U64_KB UINT64_C(1024)
|
#define U64_KB UINT64_C(1024)
|
||||||
|
|||||||
@ -134,37 +134,17 @@ void pull_job_curl_on_finished(CurlGlue *g, CURL *curl, CURLcode result) {
|
|||||||
if (!j || IN_SET(j->state, PULL_JOB_DONE, PULL_JOB_FAILED))
|
if (!j || IN_SET(j->state, PULL_JOB_DONE, PULL_JOB_FAILED))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (result != CURLE_OK) {
|
||||||
|
r = log_error_errno(SYNTHETIC_ERRNO(EIO), "Transfer failed: %s", curl_easy_strerror(result));
|
||||||
|
goto finish;
|
||||||
|
}
|
||||||
|
|
||||||
code = curl_easy_getinfo(curl, CURLINFO_SCHEME, &scheme);
|
code = curl_easy_getinfo(curl, CURLINFO_SCHEME, &scheme);
|
||||||
if (code != CURLE_OK || !scheme) {
|
if (code != CURLE_OK || !scheme) {
|
||||||
r = log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to retrieve URL scheme.");
|
r = log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to retrieve URL scheme.");
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strcaseeq(scheme, "FILE") && result == CURLE_FILE_COULDNT_READ_FILE && j->on_not_found) {
|
|
||||||
_cleanup_free_ char *new_url = NULL;
|
|
||||||
|
|
||||||
/* This resource wasn't found, but the implementor wants to maybe let us know a new URL, query for it. */
|
|
||||||
r = j->on_not_found(j, &new_url);
|
|
||||||
if (r < 0)
|
|
||||||
goto finish;
|
|
||||||
if (r > 0) { /* A new url to use */
|
|
||||||
assert(new_url);
|
|
||||||
|
|
||||||
r = pull_job_restart(j, new_url);
|
|
||||||
if (r < 0)
|
|
||||||
goto finish;
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* if this didn't work, handle like any other error below */
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result != CURLE_OK) {
|
|
||||||
r = log_error_errno(SYNTHETIC_ERRNO(EIO), "Transfer failed: %s", curl_easy_strerror(result));
|
|
||||||
goto finish;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (STRCASE_IN_SET(scheme, "HTTP", "HTTPS")) {
|
if (STRCASE_IN_SET(scheme, "HTTP", "HTTPS")) {
|
||||||
long status;
|
long status;
|
||||||
|
|
||||||
@ -793,7 +773,7 @@ int pull_job_begin(PullJob *j) {
|
|||||||
if (curl_easy_setopt(j->curl, CURLOPT_XFERINFODATA, j) != CURLE_OK)
|
if (curl_easy_setopt(j->curl, CURLOPT_XFERINFODATA, j) != CURLE_OK)
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
|
||||||
if (curl_easy_setopt(j->curl, CURLOPT_NOPROGRESS, 0L) != CURLE_OK)
|
if (curl_easy_setopt(j->curl, CURLOPT_NOPROGRESS, 0) != CURLE_OK)
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
|
||||||
r = curl_glue_add(j->glue, j->curl);
|
r = curl_glue_add(j->glue, j->curl);
|
||||||
|
|||||||
@ -261,7 +261,7 @@ int start_upload(Uploader *u,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (STRPTR_IN_SET(arg_trust, "-", "all"))
|
if (STRPTR_IN_SET(arg_trust, "-", "all"))
|
||||||
easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L,
|
easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0,
|
||||||
LOG_ERR, return -EUCLEAN);
|
LOG_ERR, return -EUCLEAN);
|
||||||
else if (arg_trust || startswith(u->url, "https://"))
|
else if (arg_trust || startswith(u->url, "https://"))
|
||||||
easy_setopt(curl, CURLOPT_CAINFO, arg_trust ?: TRUST_FILE,
|
easy_setopt(curl, CURLOPT_CAINFO, arg_trust ?: TRUST_FILE,
|
||||||
|
|||||||
@ -153,8 +153,8 @@ int device_set_syspath(sd_device *device, const char *_syspath, bool verify) {
|
|||||||
r = chase(_syspath, NULL, 0, &syspath, &fd);
|
r = chase(_syspath, NULL, 0, &syspath, &fd);
|
||||||
if (r == -ENOENT)
|
if (r == -ENOENT)
|
||||||
/* the device does not exist (any more?) */
|
/* the device does not exist (any more?) */
|
||||||
return log_trace_errno(SYNTHETIC_ERRNO(ENODEV),
|
return log_debug_errno(SYNTHETIC_ERRNO(ENODEV),
|
||||||
"sd-device: Device \"%s\" not found.", _syspath);
|
"sd-device: Failed to chase symlinks in \"%s\".", _syspath);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return log_debug_errno(r, "sd-device: Failed to get target of '%s': %m", _syspath);
|
return log_debug_errno(r, "sd-device: Failed to get target of '%s': %m", _syspath);
|
||||||
|
|
||||||
|
|||||||
@ -4,42 +4,31 @@
|
|||||||
|
|
||||||
static SD_VARLINK_DEFINE_METHOD(
|
static SD_VARLINK_DEFINE_METHOD(
|
||||||
GetInfo,
|
GetInfo,
|
||||||
SD_VARLINK_FIELD_COMMENT("String identifying the vendor of this service"),
|
|
||||||
SD_VARLINK_DEFINE_OUTPUT(vendor, SD_VARLINK_STRING, 0),
|
SD_VARLINK_DEFINE_OUTPUT(vendor, SD_VARLINK_STRING, 0),
|
||||||
SD_VARLINK_FIELD_COMMENT("String identifying the product implementing this service"),
|
|
||||||
SD_VARLINK_DEFINE_OUTPUT(product, SD_VARLINK_STRING, 0),
|
SD_VARLINK_DEFINE_OUTPUT(product, SD_VARLINK_STRING, 0),
|
||||||
SD_VARLINK_FIELD_COMMENT("Version string of this product"),
|
|
||||||
SD_VARLINK_DEFINE_OUTPUT(version, SD_VARLINK_STRING, 0),
|
SD_VARLINK_DEFINE_OUTPUT(version, SD_VARLINK_STRING, 0),
|
||||||
SD_VARLINK_FIELD_COMMENT("Web URL pointing to additional information about this service"),
|
|
||||||
SD_VARLINK_DEFINE_OUTPUT(url, SD_VARLINK_STRING, 0),
|
SD_VARLINK_DEFINE_OUTPUT(url, SD_VARLINK_STRING, 0),
|
||||||
SD_VARLINK_FIELD_COMMENT("List of interfaces implemented by this service"),
|
|
||||||
SD_VARLINK_DEFINE_OUTPUT(interfaces, SD_VARLINK_STRING, SD_VARLINK_ARRAY));
|
SD_VARLINK_DEFINE_OUTPUT(interfaces, SD_VARLINK_STRING, SD_VARLINK_ARRAY));
|
||||||
|
|
||||||
static SD_VARLINK_DEFINE_METHOD(
|
static SD_VARLINK_DEFINE_METHOD(
|
||||||
GetInterfaceDescription,
|
GetInterfaceDescription,
|
||||||
SD_VARLINK_FIELD_COMMENT("Name of interface to query interface description of"),
|
|
||||||
SD_VARLINK_DEFINE_INPUT(interface, SD_VARLINK_STRING, 0),
|
SD_VARLINK_DEFINE_INPUT(interface, SD_VARLINK_STRING, 0),
|
||||||
SD_VARLINK_FIELD_COMMENT("Interface description in Varlink IDL format"),
|
|
||||||
SD_VARLINK_DEFINE_OUTPUT(description, SD_VARLINK_STRING, 0));
|
SD_VARLINK_DEFINE_OUTPUT(description, SD_VARLINK_STRING, 0));
|
||||||
|
|
||||||
static SD_VARLINK_DEFINE_ERROR(
|
static SD_VARLINK_DEFINE_ERROR(
|
||||||
InterfaceNotFound,
|
InterfaceNotFound,
|
||||||
SD_VARLINK_FIELD_COMMENT("Name of interface that was called but does not exist"),
|
|
||||||
SD_VARLINK_DEFINE_FIELD(interface, SD_VARLINK_STRING, 0));
|
SD_VARLINK_DEFINE_FIELD(interface, SD_VARLINK_STRING, 0));
|
||||||
|
|
||||||
static SD_VARLINK_DEFINE_ERROR(
|
static SD_VARLINK_DEFINE_ERROR(
|
||||||
MethodNotFound,
|
MethodNotFound,
|
||||||
SD_VARLINK_FIELD_COMMENT("Name of method that was called but does not exist"),
|
|
||||||
SD_VARLINK_DEFINE_FIELD(method, SD_VARLINK_STRING, 0));
|
SD_VARLINK_DEFINE_FIELD(method, SD_VARLINK_STRING, 0));
|
||||||
|
|
||||||
static SD_VARLINK_DEFINE_ERROR(
|
static SD_VARLINK_DEFINE_ERROR(
|
||||||
MethodNotImplemented,
|
MethodNotImplemented,
|
||||||
SD_VARLINK_FIELD_COMMENT("Name of method that was called but is not implemented."),
|
|
||||||
SD_VARLINK_DEFINE_FIELD(method, SD_VARLINK_STRING, 0));
|
SD_VARLINK_DEFINE_FIELD(method, SD_VARLINK_STRING, 0));
|
||||||
|
|
||||||
static SD_VARLINK_DEFINE_ERROR(
|
static SD_VARLINK_DEFINE_ERROR(
|
||||||
InvalidParameter,
|
InvalidParameter,
|
||||||
SD_VARLINK_FIELD_COMMENT("Name of the invalid parameter"),
|
|
||||||
SD_VARLINK_DEFINE_FIELD(parameter, SD_VARLINK_STRING, 0));
|
SD_VARLINK_DEFINE_FIELD(parameter, SD_VARLINK_STRING, 0));
|
||||||
|
|
||||||
static SD_VARLINK_DEFINE_ERROR(PermissionDenied);
|
static SD_VARLINK_DEFINE_ERROR(PermissionDenied);
|
||||||
@ -50,20 +39,11 @@ static SD_VARLINK_DEFINE_ERROR(ExpectedMore);
|
|||||||
SD_VARLINK_DEFINE_INTERFACE(
|
SD_VARLINK_DEFINE_INTERFACE(
|
||||||
org_varlink_service,
|
org_varlink_service,
|
||||||
"org.varlink.service",
|
"org.varlink.service",
|
||||||
SD_VARLINK_INTERFACE_COMMENT("General Varlink service interface"),
|
|
||||||
SD_VARLINK_SYMBOL_COMMENT("Get service meta information"),
|
|
||||||
&vl_method_GetInfo,
|
&vl_method_GetInfo,
|
||||||
SD_VARLINK_SYMBOL_COMMENT("Get description of an implemented interface in Varlink IDL format"),
|
|
||||||
&vl_method_GetInterfaceDescription,
|
&vl_method_GetInterfaceDescription,
|
||||||
SD_VARLINK_SYMBOL_COMMENT("Error returned if a method is called on an unknown interface"),
|
|
||||||
&vl_error_InterfaceNotFound,
|
&vl_error_InterfaceNotFound,
|
||||||
SD_VARLINK_SYMBOL_COMMENT("Error returned if an unknown method is called on an known interface"),
|
|
||||||
&vl_error_MethodNotFound,
|
&vl_error_MethodNotFound,
|
||||||
SD_VARLINK_SYMBOL_COMMENT("Error returned if an method is called that is known but not implemented"),
|
|
||||||
&vl_error_MethodNotImplemented,
|
&vl_error_MethodNotImplemented,
|
||||||
SD_VARLINK_SYMBOL_COMMENT("Error returned if a method is called with an invalid parameter"),
|
|
||||||
&vl_error_InvalidParameter,
|
&vl_error_InvalidParameter,
|
||||||
SD_VARLINK_SYMBOL_COMMENT("General permission error"),
|
|
||||||
&vl_error_PermissionDenied,
|
&vl_error_PermissionDenied,
|
||||||
SD_VARLINK_SYMBOL_COMMENT("A method was called with the 'more' flag off, but it may only be called with the flag turned on"),
|
|
||||||
&vl_error_ExpectedMore);
|
&vl_error_ExpectedMore);
|
||||||
|
|||||||
@ -21,7 +21,7 @@
|
|||||||
ip={dhcp|on|any|dhcp6|auto6|either6|link6|link-local}
|
ip={dhcp|on|any|dhcp6|auto6|either6|link6|link-local}
|
||||||
ip=<interface>:{dhcp|on|any|dhcp6|auto6|link6|link-local}[:[<mtu>][:<macaddr>]]
|
ip=<interface>:{dhcp|on|any|dhcp6|auto6|link6|link-local}[:[<mtu>][:<macaddr>]]
|
||||||
ip=<client-IP>:[<peer>]:<gateway-IP>:<netmask>:<client_hostname>:<interface>:{none|off|dhcp|on|any|dhcp6|auto6|link6|ibft|link-local}[:[<mtu>][:<macaddr>]]
|
ip=<client-IP>:[<peer>]:<gateway-IP>:<netmask>:<client_hostname>:<interface>:{none|off|dhcp|on|any|dhcp6|auto6|link6|ibft|link-local}[:[<mtu>][:<macaddr>]]
|
||||||
ip=<client-IP>:[<peer>]:<gateway-IP>:<netmask>:<client_hostname>:<interface>:{none|off|dhcp|on|any|dhcp6|auto6|link6|ibft|link-local}[:[<dns1>][:[<dns2>][:[<ntp>]]]]
|
ip=<client-IP>:[<peer>]:<gateway-IP>:<netmask>:<client_hostname>:<interface>:{none|off|dhcp|on|any|dhcp6|auto6|link6|ibft|link-local}[:[<dns1>][:<dns2>]]
|
||||||
rd.route=<net>/<netmask>:<gateway>[:<interface>]
|
rd.route=<net>/<netmask>:<gateway>[:<interface>]
|
||||||
nameserver=<IP> [nameserver=<IP> ...]
|
nameserver=<IP> [nameserver=<IP> ...]
|
||||||
rd.peerdns=0
|
rd.peerdns=0
|
||||||
@ -197,7 +197,6 @@ static Network* network_free(Network *network) {
|
|||||||
strv_free(network->vlan);
|
strv_free(network->vlan);
|
||||||
free(network->bridge);
|
free(network->bridge);
|
||||||
free(network->bond);
|
free(network->bond);
|
||||||
free(network->ntp);
|
|
||||||
|
|
||||||
while ((address = network->addresses))
|
while ((address = network->addresses))
|
||||||
address_free(address);
|
address_free(address);
|
||||||
@ -636,27 +635,6 @@ static int network_set_bond(Context *context, const char *ifname, const char *va
|
|||||||
return free_and_strdup(&network->bond, value);
|
return free_and_strdup(&network->bond, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int network_set_ntp(Context *context, const char *ifname, const char *value) {
|
|
||||||
Network *network;
|
|
||||||
int r;
|
|
||||||
|
|
||||||
assert(context);
|
|
||||||
assert(ifname);
|
|
||||||
|
|
||||||
if (isempty(value))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
r = in_addr_from_string_auto(value, NULL, NULL);
|
|
||||||
if (r < 0)
|
|
||||||
return log_debug_errno(r, "Invalid NTP address '%s' for '%s'", value, ifname);
|
|
||||||
|
|
||||||
r = network_acquire(context, ifname, &network);
|
|
||||||
if (r < 0)
|
|
||||||
return log_debug_errno(r, "Failed to acquire network for '%s': %m", ifname);
|
|
||||||
|
|
||||||
return free_and_strdup(&network->ntp, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int parse_cmdline_ip_mtu_mac(Context *context, const char *ifname, const char *value) {
|
static int parse_cmdline_ip_mtu_mac(Context *context, const char *ifname, const char *value) {
|
||||||
_cleanup_free_ char *mtu = NULL;
|
_cleanup_free_ char *mtu = NULL;
|
||||||
int r;
|
int r;
|
||||||
@ -872,18 +850,6 @@ static int parse_cmdline_ip_address(Context *context, int family, const char *va
|
|||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
/* Next, try [:<ntp>] */
|
|
||||||
_cleanup_free_ char *ntp = NULL;
|
|
||||||
r = extract_ip_address_str(AF_UNSPEC, &p, &ntp);
|
|
||||||
if (r < 0)
|
|
||||||
return log_debug_errno(r, "Failed to parse NTP address in ip=%s: %m", value);
|
|
||||||
if (r == 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
r = network_set_ntp(context, ifname, ntp);
|
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
|
|
||||||
/* refuse unexpected trailing strings */
|
/* refuse unexpected trailing strings */
|
||||||
if (!isempty(p))
|
if (!isempty(p))
|
||||||
return log_debug_errno(SYNTHETIC_ERRNO(EINVAL), "Unexpected trailing string in 'ip=%s'.", value);
|
return log_debug_errno(SYNTHETIC_ERRNO(EINVAL), "Unexpected trailing string in 'ip=%s'.", value);
|
||||||
@ -1392,9 +1358,6 @@ void network_dump(Network *network, FILE *f) {
|
|||||||
if (network->bond)
|
if (network->bond)
|
||||||
fprintf(f, "Bond=%s\n", network->bond);
|
fprintf(f, "Bond=%s\n", network->bond);
|
||||||
|
|
||||||
if (network->ntp)
|
|
||||||
fprintf(f, "NTP=%s\n", network->ntp);
|
|
||||||
|
|
||||||
fputs("\n[DHCP]\n", f);
|
fputs("\n[DHCP]\n", f);
|
||||||
|
|
||||||
if (!isempty(network->hostname))
|
if (!isempty(network->hostname))
|
||||||
|
|||||||
@ -65,7 +65,6 @@ struct Network {
|
|||||||
char **vlan;
|
char **vlan;
|
||||||
char *bridge;
|
char *bridge;
|
||||||
char *bond;
|
char *bond;
|
||||||
char *ntp;
|
|
||||||
|
|
||||||
/* [DHCP] */
|
/* [DHCP] */
|
||||||
char *hostname;
|
char *hostname;
|
||||||
|
|||||||
@ -215,51 +215,6 @@ int main(int argc, char *argv[]) {
|
|||||||
"Gateway=192.168.0.1\n"
|
"Gateway=192.168.0.1\n"
|
||||||
);
|
);
|
||||||
|
|
||||||
test_network_one("eth0", "ip", "192.168.0.10::192.168.0.1:255.255.255.0::eth0:on:10.10.10.10:10.10.10.11:10.10.10.161",
|
|
||||||
"[Match]\n"
|
|
||||||
"Name=eth0\n"
|
|
||||||
"\n[Link]\n"
|
|
||||||
"\n[Network]\n"
|
|
||||||
"DHCP=yes\n"
|
|
||||||
"DNS=10.10.10.10\n"
|
|
||||||
"DNS=10.10.10.11\n"
|
|
||||||
"NTP=10.10.10.161\n"
|
|
||||||
"\n[DHCP]\n"
|
|
||||||
"\n[Address]\n"
|
|
||||||
"Address=192.168.0.10/24\n"
|
|
||||||
"\n[Route]\n"
|
|
||||||
"Gateway=192.168.0.1\n"
|
|
||||||
);
|
|
||||||
|
|
||||||
test_network_one("eth0", "ip", "192.168.0.10::192.168.0.1:255.255.255.0::eth0:on:10.10.10.10::10.10.10.161",
|
|
||||||
"[Match]\n"
|
|
||||||
"Name=eth0\n"
|
|
||||||
"\n[Link]\n"
|
|
||||||
"\n[Network]\n"
|
|
||||||
"DHCP=yes\n"
|
|
||||||
"DNS=10.10.10.10\n"
|
|
||||||
"NTP=10.10.10.161\n"
|
|
||||||
"\n[DHCP]\n"
|
|
||||||
"\n[Address]\n"
|
|
||||||
"Address=192.168.0.10/24\n"
|
|
||||||
"\n[Route]\n"
|
|
||||||
"Gateway=192.168.0.1\n"
|
|
||||||
);
|
|
||||||
|
|
||||||
test_network_one("eth0", "ip", "192.168.0.10::192.168.0.1:255.255.255.0::eth0:on:::10.10.10.161",
|
|
||||||
"[Match]\n"
|
|
||||||
"Name=eth0\n"
|
|
||||||
"\n[Link]\n"
|
|
||||||
"\n[Network]\n"
|
|
||||||
"DHCP=yes\n"
|
|
||||||
"NTP=10.10.10.161\n"
|
|
||||||
"\n[DHCP]\n"
|
|
||||||
"\n[Address]\n"
|
|
||||||
"Address=192.168.0.10/24\n"
|
|
||||||
"\n[Route]\n"
|
|
||||||
"Gateway=192.168.0.1\n"
|
|
||||||
);
|
|
||||||
|
|
||||||
test_network_one("eth0", "ip", "[2001:1234:56:8f63::10]::[2001:1234:56:8f63::1]:64:hogehoge:eth0:on",
|
test_network_one("eth0", "ip", "[2001:1234:56:8f63::10]::[2001:1234:56:8f63::1]:64:hogehoge:eth0:on",
|
||||||
"[Match]\n"
|
"[Match]\n"
|
||||||
"Name=eth0\n"
|
"Name=eth0\n"
|
||||||
|
|||||||
@ -11,6 +11,7 @@
|
|||||||
#include "networkctl-util.h"
|
#include "networkctl-util.h"
|
||||||
|
|
||||||
int list_links(int argc, char *argv[], void *userdata) {
|
int list_links(int argc, char *argv[], void *userdata) {
|
||||||
|
_cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
|
||||||
_cleanup_(sd_netlink_unrefp) sd_netlink *rtnl = NULL;
|
_cleanup_(sd_netlink_unrefp) sd_netlink *rtnl = NULL;
|
||||||
_cleanup_(link_info_array_freep) LinkInfo *links = NULL;
|
_cleanup_(link_info_array_freep) LinkInfo *links = NULL;
|
||||||
_cleanup_(table_unrefp) Table *table = NULL;
|
_cleanup_(table_unrefp) Table *table = NULL;
|
||||||
@ -21,6 +22,10 @@ int list_links(int argc, char *argv[], void *userdata) {
|
|||||||
if (r != 0)
|
if (r != 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
r = acquire_bus(&bus);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
|
||||||
r = sd_netlink_open(&rtnl);
|
r = sd_netlink_open(&rtnl);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return log_error_errno(r, "Failed to connect to netlink: %m");
|
return log_error_errno(r, "Failed to connect to netlink: %m");
|
||||||
|
|||||||
@ -757,7 +757,7 @@ static int link_status_one(
|
|||||||
if (r < 0)
|
if (r < 0)
|
||||||
return table_log_add_error(r);
|
return table_log_add_error(r);
|
||||||
|
|
||||||
r = table_add_cell_stringf(table, NULL, "%sBps/%sBps",
|
r = table_add_cell_stringf(table, NULL, "%sbps/%sbps",
|
||||||
FORMAT_BYTES_FULL(info->tx_bitrate, 0),
|
FORMAT_BYTES_FULL(info->tx_bitrate, 0),
|
||||||
FORMAT_BYTES_FULL(info->rx_bitrate, 0));
|
FORMAT_BYTES_FULL(info->rx_bitrate, 0));
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
|
|||||||
@ -440,15 +440,14 @@ static int network_append_json(Network *network, sd_json_variant **v) {
|
|||||||
v,
|
v,
|
||||||
SD_JSON_BUILD_PAIR_STRING("NetworkFile", network->filename),
|
SD_JSON_BUILD_PAIR_STRING("NetworkFile", network->filename),
|
||||||
SD_JSON_BUILD_PAIR_STRV("NetworkFileDropins", network->dropins),
|
SD_JSON_BUILD_PAIR_STRV("NetworkFileDropins", network->dropins),
|
||||||
SD_JSON_BUILD_PAIR_BOOLEAN("RequiredForOnline", network->required_for_online > 0),
|
SD_JSON_BUILD_PAIR_BOOLEAN("RequiredForOnline", network->required_for_online),
|
||||||
SD_JSON_BUILD_PAIR_CONDITION(
|
SD_JSON_BUILD_PAIR("RequiredOperationalStateForOnline",
|
||||||
operational_state_range_is_valid(&network->required_operstate_for_online),
|
SD_JSON_BUILD_ARRAY(SD_JSON_BUILD_STRING(link_operstate_to_string(network->required_operstate_for_online.min)),
|
||||||
"RequiredOperationalStateForOnline",
|
|
||||||
SD_JSON_BUILD_ARRAY(
|
|
||||||
SD_JSON_BUILD_STRING(link_operstate_to_string(network->required_operstate_for_online.min)),
|
|
||||||
SD_JSON_BUILD_STRING(link_operstate_to_string(network->required_operstate_for_online.max)))),
|
SD_JSON_BUILD_STRING(link_operstate_to_string(network->required_operstate_for_online.max)))),
|
||||||
SD_JSON_BUILD_PAIR_STRING("RequiredFamilyForOnline", link_required_address_family_to_string(network->required_family_for_online)),
|
SD_JSON_BUILD_PAIR_STRING("RequiredFamilyForOnline",
|
||||||
SD_JSON_BUILD_PAIR_STRING("ActivationPolicy", activation_policy_to_string(network->activation_policy)));
|
link_required_address_family_to_string(network->required_family_for_online)),
|
||||||
|
SD_JSON_BUILD_PAIR_STRING("ActivationPolicy",
|
||||||
|
activation_policy_to_string(network->activation_policy)));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int device_append_json(sd_device *device, sd_json_variant **v) {
|
static int device_append_json(sd_device *device, sd_json_variant **v) {
|
||||||
|
|||||||
@ -179,7 +179,6 @@ static char *arg_copy_source = NULL;
|
|||||||
static char *arg_make_ddi = NULL;
|
static char *arg_make_ddi = NULL;
|
||||||
static char *arg_generate_fstab = NULL;
|
static char *arg_generate_fstab = NULL;
|
||||||
static char *arg_generate_crypttab = NULL;
|
static char *arg_generate_crypttab = NULL;
|
||||||
static bool arg_relax_copy_block_security = false;
|
|
||||||
|
|
||||||
STATIC_DESTRUCTOR_REGISTER(arg_node, freep);
|
STATIC_DESTRUCTOR_REGISTER(arg_node, freep);
|
||||||
STATIC_DESTRUCTOR_REGISTER(arg_root, freep);
|
STATIC_DESTRUCTOR_REGISTER(arg_root, freep);
|
||||||
@ -8115,9 +8114,6 @@ static int parse_argv(int argc, char *argv[], X509 **ret_certificate, EVP_PKEY *
|
|||||||
r = parse_path_argument(optarg, /* suppress_root= */ false, &arg_image);
|
r = parse_path_argument(optarg, /* suppress_root= */ false, &arg_image);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
arg_relax_copy_block_security = false;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ARG_IMAGE_POLICY:
|
case ARG_IMAGE_POLICY:
|
||||||
@ -8519,8 +8515,6 @@ static int parse_argv(int argc, char *argv[], X509 **ret_certificate, EVP_PKEY *
|
|||||||
arg_root = strdup("/sysusr");
|
arg_root = strdup("/sysusr");
|
||||||
if (!arg_root)
|
if (!arg_root)
|
||||||
return log_oom();
|
return log_oom();
|
||||||
|
|
||||||
arg_relax_copy_block_security = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argc > optind) {
|
if (argc > optind) {
|
||||||
@ -9195,9 +9189,7 @@ static int run(int argc, char *argv[]) {
|
|||||||
r = context_open_copy_block_paths(
|
r = context_open_copy_block_paths(
|
||||||
context,
|
context,
|
||||||
loop_device ? loop_device->devno : /* if --image= is specified, only allow partitions on the loopback device */
|
loop_device ? loop_device->devno : /* if --image= is specified, only allow partitions on the loopback device */
|
||||||
/* if --root= is specified, don't accept any block device, unless it
|
arg_root && !arg_image ? 0 : /* if --root= is specified, don't accept any block device */
|
||||||
* was set automatically because we are in the initrd */
|
|
||||||
arg_root && !arg_image && !arg_relax_copy_block_security ? 0 :
|
|
||||||
(dev_t) -1); /* if neither is specified, make no restrictions */
|
(dev_t) -1); /* if neither is specified, make no restrictions */
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|||||||
@ -353,7 +353,6 @@ static int help(void) {
|
|||||||
" --tldr Show non-comment parts of configuration\n"
|
" --tldr Show non-comment parts of configuration\n"
|
||||||
" --prefix=PATH Only apply rules with the specified prefix\n"
|
" --prefix=PATH Only apply rules with the specified prefix\n"
|
||||||
" --no-pager Do not pipe output into a pager\n"
|
" --no-pager Do not pipe output into a pager\n"
|
||||||
" --strict Fail on any kind of failures\n"
|
|
||||||
"\nSee the %s for details.\n",
|
"\nSee the %s for details.\n",
|
||||||
program_invocation_short_name,
|
program_invocation_short_name,
|
||||||
link);
|
link);
|
||||||
|
|||||||
@ -1771,7 +1771,10 @@ static int merge_subprocess(
|
|||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
r = dissected_image_decrypt(m, /* passphrase= */ NULL, &verity_settings, flags);
|
r = dissected_image_decrypt_interactively(
|
||||||
|
m, NULL,
|
||||||
|
&verity_settings,
|
||||||
|
flags);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
|||||||
@ -681,134 +681,6 @@ TEST(dir_fd_is_root) {
|
|||||||
assert_se(dir_fd_is_root_or_cwd(fd) == 0);
|
assert_se(dir_fd_is_root_or_cwd(fd) == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_path_is_root_at_one(bool expected) {
|
|
||||||
ASSERT_OK_POSITIVE(path_is_root("/"));
|
|
||||||
ASSERT_OK_POSITIVE(path_is_root("/."));
|
|
||||||
ASSERT_OK_EQ(path_is_root("/./.."), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root("/.."), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root("/../"), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root("/../."), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root("/../.."), expected);
|
|
||||||
|
|
||||||
ASSERT_OK_ZERO(path_is_root("/usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root("/./usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root("/../usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root("/.././usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root("/../../usr"));
|
|
||||||
|
|
||||||
_cleanup_close_ int fd = -EBADF;
|
|
||||||
ASSERT_OK_ERRNO(fd = open("/", O_CLOEXEC|O_PATH|O_DIRECTORY|O_NOFOLLOW));
|
|
||||||
|
|
||||||
ASSERT_OK_POSITIVE(path_is_root_at(fd, NULL));
|
|
||||||
ASSERT_OK_POSITIVE(path_is_root_at(fd, ""));
|
|
||||||
ASSERT_OK_POSITIVE(path_is_root_at(fd, "."));
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, "./../"), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, "../"), expected);
|
|
||||||
ASSERT_OK_POSITIVE(path_is_root_at(fd, "/"));
|
|
||||||
ASSERT_OK_POSITIVE(path_is_root_at(fd, "/."));
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, "/./.."), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, "/.."), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, "/../"), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, "/../."), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, "/../.."), expected);
|
|
||||||
|
|
||||||
ASSERT_OK_ZERO(path_is_root_at(fd, "usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root_at(fd, "./usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root_at(fd, "../usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/./usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/../usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/.././usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/../../usr"));
|
|
||||||
|
|
||||||
safe_close(fd);
|
|
||||||
ASSERT_OK_ERRNO(fd = open("/../", O_CLOEXEC|O_PATH|O_DIRECTORY|O_NOFOLLOW));
|
|
||||||
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, NULL), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, ""), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, "."), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, "./.."), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, "../"), expected);
|
|
||||||
ASSERT_OK_POSITIVE(path_is_root_at(fd, "/"));
|
|
||||||
ASSERT_OK_POSITIVE(path_is_root_at(fd, "/."));
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, "/./.."), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, "/.."), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, "/../"), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, "/../."), expected);
|
|
||||||
ASSERT_OK_EQ(path_is_root_at(fd, "/../.."), expected);
|
|
||||||
|
|
||||||
ASSERT_OK_ZERO(path_is_root_at(fd, "usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root_at(fd, "./usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root_at(fd, "../usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/./usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/../usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/.././usr"));
|
|
||||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/../../usr"));
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(path_is_root_at) {
|
|
||||||
int r;
|
|
||||||
|
|
||||||
test_path_is_root_at_one(true);
|
|
||||||
|
|
||||||
r = detach_mount_namespace();
|
|
||||||
if (r < 0)
|
|
||||||
return (void) log_tests_skipped_errno(r, "Failed to detach mount namespace");
|
|
||||||
|
|
||||||
/* Interestingly, even after bind mount a path on "/", still "/" points to the previous root
|
|
||||||
* directory, but "/../" points to the new root directory. Hence, path_is_root("/") is true but
|
|
||||||
* path_is_root("/../") is false. Such spurious situation is resolved after chroot()ing to the new
|
|
||||||
* root directory. */
|
|
||||||
ASSERT_OK(mount_nofollow_verbose(LOG_DEBUG, "/", "/", NULL, MS_BIND|MS_REC, NULL));
|
|
||||||
log_debug("/* %s: bind mount(\"/\", \"/\") */", __func__);
|
|
||||||
test_path_is_root_at_one(false);
|
|
||||||
|
|
||||||
/* chroot("/") does not change anything. */
|
|
||||||
ASSERT_OK_ERRNO(chroot("/"));
|
|
||||||
log_debug("/* %s: chroot(\"/\") */", __func__);
|
|
||||||
test_path_is_root_at_one(false);
|
|
||||||
|
|
||||||
/* chdir("/") neither change anything. */
|
|
||||||
ASSERT_OK_ERRNO(chdir("/"));
|
|
||||||
log_debug("/* %s: chdir(\"/\") */", __func__);
|
|
||||||
test_path_is_root_at_one(false);
|
|
||||||
|
|
||||||
/* chdir("/../") neither change anything. */
|
|
||||||
ASSERT_OK_ERRNO(chdir("/../"));
|
|
||||||
log_debug("/* %s: chdir(\"/../\") */", __func__);
|
|
||||||
test_path_is_root_at_one(false);
|
|
||||||
|
|
||||||
/* After chroot("/../"), both "/" and "/../" point to the new root directory. */
|
|
||||||
ASSERT_OK_ERRNO(chroot("/../"));
|
|
||||||
log_debug("/* %s: chroot(\"/../\") */", __func__);
|
|
||||||
test_path_is_root_at_one(true);
|
|
||||||
|
|
||||||
/* chdir("/../") does not change anything. */
|
|
||||||
ASSERT_OK_ERRNO(chdir("/../"));
|
|
||||||
log_debug("/* %s: chdir(\"/../\") again */", __func__);
|
|
||||||
test_path_is_root_at_one(true);
|
|
||||||
|
|
||||||
/* bind mounting to non-root directory has no problem, of course. */
|
|
||||||
_cleanup_(rm_rf_physical_and_freep) char *tmp = NULL;
|
|
||||||
ASSERT_OK(mkdtemp_malloc("/tmp/test-path_is_root-XXXXXX", &tmp));
|
|
||||||
ASSERT_OK(mount_nofollow_verbose(LOG_DEBUG, "/", tmp, NULL, MS_BIND|MS_REC, NULL));
|
|
||||||
log_debug("/* %s: bind mount(\"/\", \"%s\") */", __func__, tmp);
|
|
||||||
test_path_is_root_at_one(true);
|
|
||||||
|
|
||||||
ASSERT_OK_ERRNO(chdir(tmp));
|
|
||||||
log_debug("/* %s: chdir(\"%s\") */", __func__, tmp);
|
|
||||||
test_path_is_root_at_one(true);
|
|
||||||
|
|
||||||
ASSERT_OK_ERRNO(chroot(tmp));
|
|
||||||
log_debug("/* %s: chroot(\"%s\") */", __func__, tmp);
|
|
||||||
test_path_is_root_at_one(true);
|
|
||||||
|
|
||||||
ASSERT_OK_ERRNO(chdir(tmp));
|
|
||||||
log_debug("/* %s: chdir(\"%s\") again */", __func__, tmp);
|
|
||||||
test_path_is_root_at_one(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(fds_are_same_mount) {
|
TEST(fds_are_same_mount) {
|
||||||
_cleanup_close_ int fd1 = -EBADF, fd2 = -EBADF, fd3 = -EBADF, fd4 = -EBADF;
|
_cleanup_close_ int fd1 = -EBADF, fd2 = -EBADF, fd3 = -EBADF, fd4 = -EBADF;
|
||||||
|
|
||||||
|
|||||||
@ -45,22 +45,6 @@ static void test_file(void) {
|
|||||||
assert_se(startswith(__FILE__, RELATIVE_SOURCE_PATH "/"));
|
assert_se(startswith(__FILE__, RELATIVE_SOURCE_PATH "/"));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_log_once_impl(void) {
|
|
||||||
log_once(LOG_INFO, "This should be logged in LOG_INFO at first, then in LOG_DEBUG later.");
|
|
||||||
log_once(LOG_DEBUG, "This should be logged only once in LOG_DEBUG.");
|
|
||||||
ASSERT_ERROR(log_once_errno(LOG_INFO, SYNTHETIC_ERRNO(ENOANO),
|
|
||||||
"This should be logged with errno in LOG_INFO at first, then in LOG_DEBUG later: %m"),
|
|
||||||
ENOANO);
|
|
||||||
ASSERT_ERROR(log_once_errno(LOG_DEBUG, SYNTHETIC_ERRNO(EBADMSG),
|
|
||||||
"This should be logged only once with errno in LOG_DEBUG: %m"),
|
|
||||||
EBADMSG);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void test_log_once(void) {
|
|
||||||
for (unsigned i = 0; i < 4; i++)
|
|
||||||
test_log_once_impl();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void test_log_struct(void) {
|
static void test_log_struct(void) {
|
||||||
log_struct(LOG_INFO,
|
log_struct(LOG_INFO,
|
||||||
"MESSAGE=Waldo PID="PID_FMT" (no errno)", getpid_cached(),
|
"MESSAGE=Waldo PID="PID_FMT" (no errno)", getpid_cached(),
|
||||||
@ -252,8 +236,6 @@ int main(int argc, char* argv[]) {
|
|||||||
|
|
||||||
assert_se(log_info_errno(SYNTHETIC_ERRNO(EUCLEAN), "foo") == -EUCLEAN);
|
assert_se(log_info_errno(SYNTHETIC_ERRNO(EUCLEAN), "foo") == -EUCLEAN);
|
||||||
|
|
||||||
test_log_once();
|
|
||||||
|
|
||||||
for (int target = 0; target < _LOG_TARGET_MAX; target++) {
|
for (int target = 0; target < _LOG_TARGET_MAX; target++) {
|
||||||
log_set_target(target);
|
log_set_target(target);
|
||||||
log_open();
|
log_open();
|
||||||
|
|||||||
@ -1228,20 +1228,4 @@ TEST(ASSERT) {
|
|||||||
ASSERT_SIGNAL(ASSERT_NE_ID128(SD_ID128_NULL, SD_ID128_NULL), SIGABRT);
|
ASSERT_SIGNAL(ASSERT_NE_ID128(SD_ID128_NULL, SD_ID128_NULL), SIGABRT);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_once_impl(void) {
|
|
||||||
static unsigned count = 0;
|
|
||||||
|
|
||||||
if (ONCE) {
|
|
||||||
log_info("This should be logged only once.");
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
|
|
||||||
ASSERT_EQ(count, 1u);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(once) {
|
|
||||||
for (unsigned i = 0; i < 20; i++)
|
|
||||||
test_once_impl();
|
|
||||||
}
|
|
||||||
|
|
||||||
DEFINE_TEST_MAIN(LOG_INFO);
|
DEFINE_TEST_MAIN(LOG_INFO);
|
||||||
|
|||||||
@ -335,7 +335,7 @@ static usec_t extra_timeout_usec(void) {
|
|||||||
|
|
||||||
parsed = true;
|
parsed = true;
|
||||||
|
|
||||||
e = secure_getenv("SYSTEMD_UDEV_EXTRA_TIMEOUT_SEC");
|
e = getenv("SYSTEMD_UDEV_EXTRA_TIMEOUT_SEC");
|
||||||
if (!e)
|
if (!e)
|
||||||
return saved;
|
return saved;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user