From minios-devel-bounces@lists.xenproject.org Mon Mar 01 01:01:38 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 01 Mar 2021 01:01:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.91200.172264 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lGWwI-0005P9-GP; Mon, 01 Mar 2021 01:01:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 91200.172264; Mon, 01 Mar 2021 01:01:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lGWwI-0005Oh-Cv; Mon, 01 Mar 2021 01:01:34 +0000
Received: by outflank-mailman (input) for mailman id 91200;
 Mon, 01 Mar 2021 01:01:32 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=toNe=H7=arm.com=justin.he@srs-us1.protection.inumbo.net>)
 id 1lGWwG-0004TJ-Dh
 for minios-devel@lists.xen.org; Mon, 01 Mar 2021 01:01:32 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com (unknown
 [40.107.20.76]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id fc342b14-a928-4ba3-836d-ab8b3e0f0065;
 Mon, 01 Mar 2021 01:01:27 +0000 (UTC)
Received: from DB6PR0301CA0070.eurprd03.prod.outlook.com (2603:10a6:6:30::17)
 by AM0PR08MB4195.eurprd08.prod.outlook.com (2603:10a6:208:131::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.23; Mon, 1 Mar
 2021 01:01:24 +0000
Received: from DB5EUR03FT045.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:6:30:cafe::a4) by DB6PR0301CA0070.outlook.office365.com
 (2603:10a6:6:30::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.19 via Frontend
 Transport; Mon, 1 Mar 2021 01:01:24 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT045.mail.protection.outlook.com (10.152.21.164) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.3890.19 via Frontend Transport; Mon, 1 Mar 2021 01:01:24 +0000
Received: ("Tessian outbound 9c515f919342:v71");
 Mon, 01 Mar 2021 01:01:24 +0000
Received: from 48c6928b3ccf.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 9557B98B-DD8B-4285-8B55-4B1D474267C7.1; 
 Mon, 01 Mar 2021 01:01:19 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 48c6928b3ccf.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 01 Mar 2021 01:01:19 +0000
Received: from AM6PR08MB4376.eurprd08.prod.outlook.com (2603:10a6:20b:bb::21)
 by AM6PR08MB4613.eurprd08.prod.outlook.com (2603:10a6:20b:80::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3868.28; Mon, 1 Mar
 2021 01:01:17 +0000
Received: from AM6PR08MB4376.eurprd08.prod.outlook.com
 ([fe80::5192:4597:8d30:5800]) by AM6PR08MB4376.eurprd08.prod.outlook.com
 ([fe80::5192:4597:8d30:5800%4]) with mapi id 15.20.3890.028; Mon, 1 Mar 2021
 01:01:17 +0000
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc342b14-a928-4ba3-836d-ab8b3e0f0065
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JNBV9ZlmXsLsIaWKk38MtHhzS2j5rGhRUIq1ggkSaT4=;
 b=hEa+XjFK5aIHJUVYiXm53NOE9ifD1NyQEioMXxWKpXiW5J9Rt6CnJVXVtqgj0rDHr09RLLRCki2C0gwYc60+0ydMP0jIv5w15JURr3CXtxUVa1a8WvQo0SKTnW+QB8DIHTafP8Xlh1RD5pmHCbG4njt/65bnbk/0NTGdOJNa2qQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; lists.xen.org; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;lists.xen.org; dmarc=pass action=none
 header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=LHJpaDaRmpX4USA5odBSRDmd3K/x6tfo4rxoAUYyHAFSdNuCABW2dcAwUxV52WnFy+ANZfieiSuDjD9EaBJKnHrU92GOJVJaxNtvtYKb+ZcRmguBS0nSEXbgbWi1Qu4mqQX14l7d6g0lPYtrOSCNOA12HnqHIggq8Gym+zG6dpxmPapaomvHXECoWobcZmoqPE4VadVOH36DaVqhuUn4QWu2xTW0PPjdvI+TnnzvIO5EvsNR/nAcP98A2nyYcsvpU3Tq1rLh4OFG96YPXToviuo0NyT8Id+v1Ba/2PunulLDDU/FQQgUlTZHkb0K1wu1Yp1BWN6GZxOjf1VI+kSOeQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JNBV9ZlmXsLsIaWKk38MtHhzS2j5rGhRUIq1ggkSaT4=;
 b=HmhnD/Qd0XdIbU55BhSmopRt8ljkNnssPMfrg1emf8u4k+FO828+ZngpPRGu03G2csx/eesMQAjYtBCHtCUZaumoJvU7ZhsAv723HuELg30eukrn4nApswNyWNUiBLIumjs7VqiaEVBlIt2jm/Iny66dsllb+U7P3NPk64bDeApun8cFlr70X6fHVrxzNrZtLHqT5qukO2WE08N4wFivB0Ce93z47c0vqr11cctX0w/S7t79HS5PVyAB3pk2o/Vb9g90Svsx6yTdyoDt9J+Y1z9XdlTFPTRUxTXl4ECQmPbEhnk6tw5+cCp7okVqJ6IONHiX3pITZPshHpDPMPGFYA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JNBV9ZlmXsLsIaWKk38MtHhzS2j5rGhRUIq1ggkSaT4=;
 b=hEa+XjFK5aIHJUVYiXm53NOE9ifD1NyQEioMXxWKpXiW5J9Rt6CnJVXVtqgj0rDHr09RLLRCki2C0gwYc60+0ydMP0jIv5w15JURr3CXtxUVa1a8WvQo0SKTnW+QB8DIHTafP8Xlh1RD5pmHCbG4njt/65bnbk/0NTGdOJNa2qQ=
From: Justin He <Justin.He@arm.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
	<minios-devel@lists.xen.org>
CC: Costin Lupu <costin.lupu@cs.pub.ro>, Sharan Santhanam
	<sharan.santhanam@neclab.eu>, Felipe Huici <felipe.huici@neclab.eu>,
	"nicolescu.roxana1996@gmail.com" <nicolescu.roxana1996@gmail.com>,
	"lascu.bogdan96@gmail.com" <lascu.bogdan96@gmail.com>,
	"razvan.deaconescu@cs.pub.ro" <razvan.deaconescu@cs.pub.ro>,
	"vlad_andrei.badoiu@upb.ro" <vlad_andrei.badoiu@upb.ro>, "cristb@gmail.com"
	<cristb@gmail.com>
Subject: RE: [UNIKRAFT PATCH 2/8] Correct license headers introduced by Arm
 Ltd.
Thread-Topic: [UNIKRAFT PATCH 2/8] Correct license headers introduced by Arm
 Ltd.
Thread-Index: AQHXA4x83Hpw2hkblUC07LYdw0xL56puZWWQ
Date: Mon, 1 Mar 2021 01:01:16 +0000
Message-ID:
 <AM6PR08MB4376D7E2F40DAA81C48299A5F79A9@AM6PR08MB4376.eurprd08.prod.outlook.com>
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
 <20210215111902.3382-3-simon.kuenzer@neclab.eu>
In-Reply-To: <20210215111902.3382-3-simon.kuenzer@neclab.eu>
Accept-Language: en-US, zh-CN
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ts-tracking-id: A0BCD9A91F080B4EBA2B832E216B0826.0
x-checkrecipientchecked: true
Authentication-Results-Original: neclab.eu; dkim=none (message not signed)
 header.d=none;neclab.eu; dmarc=none action=none header.from=arm.com;
x-originating-ip: [203.126.0.113]
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-HT: Tenant
X-MS-Office365-Filtering-Correlation-Id: 1db8315e-be39-47cd-bf1f-08d8dc4d8918
x-ms-traffictypediagnostic: AM6PR08MB4613:|AM0PR08MB4195:
X-Microsoft-Antispam-PRVS:
	<AM0PR08MB4195A6EA5BC8FAD0F474974DF79A9@AM0PR08MB4195.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 7Or9SpAvs8PreVTyG7Fjp9thtsnKiaueGYGVxl7BNgAWdp7kj9WHn1mVq/NKSz/Oft3zVjG9wC6jHSILyBFo4ph82YWUm44hKDC2VGAjksUZ4SLTktr0Xcfo5V83/TtntkrryJ4aTHZeD+ZzQfas1xpbJufRpR19i631SVhywJ584SvfTdNxxMHL9jZJGoGI0XDJO6aqVFxJY8k21ST/Fhwev9jrDOJRBa45LImEPNuzWfXOHb7SybqaNtFh9gJgkEOqz/mAZqoi99VRDDYqYQI9QBpLH8k3dlnYt+Fy2GqGN4p4O2XS+Ck3Vlqy6F8ptRqrqKAGQT5fj2q0XUecU4uR/t6F0ozPMAZoTUf/gAoPeEXiY/fsM7u0vThkka1lA0t4PvjRiqVW8Trr0gEwon00mXvp29+fwTNAJ5AT34haryod2pb0NdDdpFoI3Oynj4UeBLdd5lqYvf9GUrzND4dp3TGsyT9SrnG1Wtt3VvOIvcPN375TO/RlP1C2xvX7fmfCl+m9JYrPn47VWr4LsA==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB4376.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(136003)(396003)(366004)(376002)(346002)(39860400002)(8676002)(7416002)(186003)(26005)(110136005)(7696005)(54906003)(8936002)(316002)(33656002)(86362001)(478600001)(6506007)(53546011)(76116006)(2906002)(66556008)(64756008)(66476007)(5660300002)(66446008)(9686003)(30864003)(52536014)(83380400001)(4326008)(71200400001)(55016002)(66946007)(579004);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata:
 =?us-ascii?Q?1ilENNYX+SySPlZdgiIzkSp0lYHGRuBTjKSSClVi6Hgo4uVCXl3M2gMXg5ew?=
 =?us-ascii?Q?sWSvrIHEb1u1liLJW7drtoqlKWjf2H7jYhWIOLGXKLBzN9Msa9UBw4iqVnhv?=
 =?us-ascii?Q?4JnrLeEQrQAjM54OsDScdzDcczRCb2AJoSATNCzt2yaTQ1TAJgimseYXLioe?=
 =?us-ascii?Q?/HDobIdNS2NfOrHyF/nZNet9qTrK7FH23GPDDo63FdPI20sLdvBENqwPovak?=
 =?us-ascii?Q?3M/63Oz/Mrzz+W+3ciBQ95GoFn8/SQAjEVZYg6PPEnkBbA3beOaARKICAoKf?=
 =?us-ascii?Q?LK9mVVIo3ThXZHwHAEnQAuaIYG6LiVTom/cILxlrtrCLgPsJGuiaQyl13SZn?=
 =?us-ascii?Q?rUXYQ0G19xaxOb4Ai5FWOYgy62DA9agRrcWe/hhBTY0HwGdWOWVqLlat3sxZ?=
 =?us-ascii?Q?LRFSnY5IqcR1TCj4BgnflInD6nY0MMH/7yAoardZdLZhekxiQBcOsJztJjlI?=
 =?us-ascii?Q?MTfRKOps3lP9qpQT8j0+B+IRiO38GWIX8UPhrbpmoZOL8eQS0pGzj68zAzsB?=
 =?us-ascii?Q?88ndfsvwpwKovaqyUH655cEBdUSqfh7ZC5x0Acd5mntYvAVK6cMGfT1JR8Bg?=
 =?us-ascii?Q?KO6LX7lCstY3/pGI2GDcQVxjlOnF2S0YVpAbGyIKWllUqvzxm1tMsFzZRR/0?=
 =?us-ascii?Q?jaGSfAiiWjSnrECcYL8BoKbZ+bhqTPqOIxLnSkyEj3ijbaP17PjD/u6xAE/I?=
 =?us-ascii?Q?DIKI2QS9XDjA4HCMeaVWxpsMP3yZu/BgAy0Go1M+jJIfyKDk41rp9tKmOHSs?=
 =?us-ascii?Q?JBzHNPWljFlZh5G4l0AeVbbHacY2vxjvxzHTtnSxZJ/wapNZnWZkzcwzPbpO?=
 =?us-ascii?Q?rE1lZnP/VvbNLncKZ3QFRfW/V87RY0PVBuW/LhSVT35Gbxc9IrFmTD1lZ0DV?=
 =?us-ascii?Q?ec3inT3q6exHbnaGdQsJg5mnlZ6R5cUeBZiFu8WDVluGF21SHk48emA0A3lx?=
 =?us-ascii?Q?ld4e13Ur9VeB3hSoht40rR8DuzF9zZUHorTOdFOn/Ru7rfRZEw86QQisocTZ?=
 =?us-ascii?Q?oDmObhbL7nf7uzWZ8P4ZWgeEzungX3WoJjP81SMH7tjVtcfTO3hs3B+cBC9i?=
 =?us-ascii?Q?xCNcvc9OdmELq6qH1rUcnv0hOm8EZD482X6GpDsORU2ASk0uRSDgfcoFNKUg?=
 =?us-ascii?Q?5X2H+Ue0soXzrEhYy5+iyOqyJrR/PyPiOub/D+AdS7u4IfU2VCwdjnh0ldr+?=
 =?us-ascii?Q?9upL4gCutinwQAlL/HulWH2YJ4L43hFQqQFHeOPyECQtuyOgG4eN/ZldhHjK?=
 =?us-ascii?Q?Mu8j3rjZHylGWEX+mtr6kv8WfETEXV1PLjPa4KlafSRpgW30l6ZMtg5jZq0D?=
 =?us-ascii?Q?sPyRP4CsxRSUdkIa5kkbP10A?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4613
Original-Authentication-Results: neclab.eu; dkim=none (message not signed)
 header.d=none;neclab.eu; dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT045.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	d1617f09-083b-432f-e720-08d8dc4d84c7
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	IkEKUamnqmiy8twB6hkPU0wCWprvEhL/eRluT4YAf5UzOWKUmOkfWjI27ncvS+iHeX/btVqwWi/yPI16FvtkKhaih3rUdW3uP5ub2r7qhxL1rA62F5N43Gp2DxQN6ePIBMbo5pt3SI45ohrMkFx77Z3t+DAkqeQkVP4yE3H+5KhvjZIy7sMQ3YQn/PayFR4x35wyKs9lGeA+FCQuh25bAzxebH8WG6wlAWBQcMVsQgmo/vFsfLqgeoipdK930Abgnwk5HHXsySYh4WJ0j4ux43IxefXdvrywGeXCDC6tAm0sZgI7Lu2DcV4nujMaXKXJ9FPzdX2MsKbotwn5l5bE0mLgVMn93vJz+0HnMKVRtJ9JjNnH5Qu/97KCU1Pza+N0veOL/t6uMLE2xz5LKY6N469yu6muRIdwIvMcL1i4x2fOwBOSFHLspl1UC++ZFO2270sN4xwLGGa0M56R3ebIYj1AKCRuLPbB4G/NekldMyt1/WiQbAqdG2UxdJRZitE0Z2aO+VD2vBYvVNr8ipiut1qIHmN6K3Famls3mc4+T2TfQI4JyugaYDoWahsdwx/MomMLBNXxJ+5FOG5icUWAO+zQi7Ml56leqp79Q42avrIY53xXA4kcaz/5CZd94BTIouIYwItjuj12DYx9mQyBsg==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(136003)(396003)(376002)(39860400002)(346002)(36840700001)(46966006)(70206006)(8676002)(186003)(52536014)(478600001)(36860700001)(70586007)(26005)(8936002)(336012)(83380400001)(356005)(7696005)(4326008)(107886003)(86362001)(53546011)(30864003)(2906002)(6506007)(33656002)(81166007)(82310400003)(9686003)(55016002)(316002)(47076005)(54906003)(5660300002)(110136005)(82740400003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2021 01:01:24.3548
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1db8315e-be39-47cd-bf1f-08d8dc4d8918
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT045.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB4195

Hi Simon

> -----Original Message-----
> From: Minios-devel <minios-devel-bounces@lists.xenproject.org> On Behalf =
Of
> Simon Kuenzer
> Sent: Monday, February 15, 2021 7:19 PM
> To: minios-devel@lists.xen.org
> Cc: Costin Lupu <costin.lupu@cs.pub.ro>; Sharan Santhanam
> <sharan.santhanam@neclab.eu>; Felipe Huici <felipe.huici@neclab.eu>;
> nicolescu.roxana1996@gmail.com; lascu.bogdan96@gmail.com;
> razvan.deaconescu@cs.pub.ro; vlad_andrei.badoiu@upb.ro; cristb@gmail.com;
> Simon Kuenzer <simon.kuenzer@neclab.eu>
> Subject: [UNIKRAFT PATCH 2/8] Correct license headers introduced by Arm L=
td.
>
> This commit removes the additional clause
> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
> from BSD license headers that got introduced by mistake
> with the following commits:
>  c06ff6e61 - plat/common: Implement assembly helper for Arm64 thread
> context switch
>  ac8ebd49e - plat/common: Add cache maintenance support for arm64
>  d411a62f8 - plat/common: Implement PSCI despatch functions for arm64
>  b329b5143 - plat/common: Move global variables defined in link scripts t=
o
> a header
>  c1827efc4 - plat/kvm: Add Arm64 virtual timer library to provide ticks
>  7a65cf0e3 - plat/common: Common arm64 CPU interrupt flag handling
>  25ff8503b - plat/kvm: Add interrupt handle APIs for arm64
>  70fc87133 - plat/common: Implement CPU halt function for arm64
>  74ef78c41 - plat/include: Define macros for Arm64 to access registers
>  65b6280b6 - plat/kvm: Add linker script for Arm64
>  9c7b1e93b - uk/arch: Add necessary header files for Arm64
>  24297ac1a - plat/kvm: Add Arm64 basic entry code
>  37e9d07f4 - plat/include: Define address offsets of boot stack and
> pagetable
>  1a16e1046 - plat: Implement tls stub for arm64
>  b41faf876 - plat/drivers/ofw: Move gic_get_irq_from_dtb to gic_fdt.c
>  8ed802d62 - plat/kvm: Implement stub of ukplat_stack_set_current_thread
> for arm64
>  1f5ea382e - plat/common: Split arch specific codes from time.c to arm{,
> 64}/time.h
>  2def01809 - lib/fdt: Introduce fdt_getprop_u32_by_offset helper
>  278ad9eda - plat/common: Add a platform API to get IRQ from device tree
>  5183a0a64 - plat/common: Implement gic-v2 library for Arm
>  1fc6481a1 - plat/common: Introduce fdt_interrupt_cells helper to parse i=
rq
>
> On the one hand, this additional clause is redundant because
> the BSD license already states that it must remain and the
> copyright notice must be kept.
> On the other hand, the clause freezes the file header
> and prohibits future contributors from extending the
> copyright notice for their contributions. This additional
> clause is not part of the official BSD 3-clause.
>
> The original author or affiliation consents to the change
> with a `Signed-off-by` or `Reviewed-by` tag to this
> commit.
>

Thanks for the correction.
Signed-off-by: Jia He <justin.he@arm.com>

--
Cheers,
Justin (Jia He)


> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
> ---
>  arch/arm/arm64/include/uk/asm/intsizes.h      | 2 --
>  include/uk/asm.h                              | 2 --
>  lib/fdt/uk_fdt.c                              | 2 --
>  plat/common/arm/cache64.S                     | 2 --
>  plat/common/arm/cpu_native.c                  | 2 --
>  plat/common/arm/psci_arm64.S                  | 2 --
>  plat/common/arm/thread_start64.S              | 2 --
>  plat/common/arm/time.c                        | 2 --
>  plat/common/include/arm/arm/time.h            | 2 --
>  plat/common/include/arm/arm64/cpu.h           | 2 --
>  plat/common/include/arm/arm64/cpu_defs.h      | 2 --
>  plat/common/include/arm/arm64/irq.h           | 2 --
>  plat/common/include/arm/arm64/time.h          | 2 --
>  plat/common/include/arm/arm64/tls.h           | 2 --
>  plat/common/include/arm/cpu.h                 | 2 --
>  plat/common/include/arm/cpu_defs.h            | 2 --
>  plat/common/include/arm/irq.h                 | 2 --
>  plat/common/include/uk/plat/common/irq.h      | 2 --
>  plat/common/include/uk/plat/common/sections.h | 2 --
>  plat/drivers/gic/gic-v2.c                     | 2 --
>  plat/drivers/include/gic/gic-v2.h             | 2 --
>  plat/drivers/include/ofw/fdt.h                | 2 --
>  plat/drivers/include/ofw/gic_fdt.h            | 2 --
>  plat/drivers/ofw/fdt.c                        | 2 --
>  plat/drivers/ofw/gic_fdt.c                    | 2 --
>  plat/kvm/arm/entry64.S                        | 2 --
>  plat/kvm/arm/intctrl.c                        | 2 --
>  plat/kvm/arm/lcpu.c                           | 2 --
>  plat/kvm/arm/link64.lds.S                     | 2 --
>  plat/kvm/arm/memory.c                         | 2 --
>  plat/kvm/include/kvm-arm/arm64/mm.h           | 2 --
>  plat/kvm/include/kvm-arm/mm.h                 | 2 --
>  32 files changed, 64 deletions(-)
>
> diff --git a/arch/arm/arm64/include/uk/asm/intsizes.h
> b/arch/arm/arm64/include/uk/asm/intsizes.h
> index a1bff49b5..658ce8d44 100644
> --- a/arch/arm/arm64/include/uk/asm/intsizes.h
> +++ b/arch/arm/arm64/include/uk/asm/intsizes.h
> @@ -31,8 +31,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>
>  #if ((!defined __UKARCH_TYPES_H__) && (!defined __UKARCH_LIMITS_H__))
> diff --git a/include/uk/asm.h b/include/uk/asm.h
> index 4be346f46..b3a424639 100644
> --- a/include/uk/asm.h
> +++ b/include/uk/asm.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef __INLCUDE_UK_ASM_H__
>  #define __INLCUDE_UK_ASM_H__
> diff --git a/lib/fdt/uk_fdt.c b/lib/fdt/uk_fdt.c
> index e7f30cd61..c4e9b0dd9 100644
> --- a/lib/fdt/uk_fdt.c
> +++ b/lib/fdt/uk_fdt.c
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #include <libfdt_env.h>
>  #include <fdt.h>
> diff --git a/plat/common/arm/cache64.S b/plat/common/arm/cache64.S
> index fb7cdb816..46bab4af0 100644
> --- a/plat/common/arm/cache64.S
> +++ b/plat/common/arm/cache64.S
> @@ -35,8 +35,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #include <uk/asm.h>
>  #include <arm/cpu_defs.h>
> diff --git a/plat/common/arm/cpu_native.c b/plat/common/arm/cpu_native.c
> index 4f27bd286..d5e978fb3 100644
> --- a/plat/common/arm/cpu_native.c
> +++ b/plat/common/arm/cpu_native.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #include <uk/config.h>
>  #include <uk/plat/common/cpu.h>
> diff --git a/plat/common/arm/psci_arm64.S b/plat/common/arm/psci_arm64.S
> index 52d34e5bf..ffbda8c10 100644
> --- a/plat/common/arm/psci_arm64.S
> +++ b/plat/common/arm/psci_arm64.S
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #include <uk/asm.h>
>  #include <arm/cpu_defs.h>
> diff --git a/plat/common/arm/thread_start64.S
> b/plat/common/arm/thread_start64.S
> index 9a80f62a4..8e426170d 100644
> --- a/plat/common/arm/thread_start64.S
> +++ b/plat/common/arm/thread_start64.S
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #include <uk/plat/common/sw_ctx.h>
>  #include <uk/arch/lcpu.h>
> diff --git a/plat/common/arm/time.c b/plat/common/arm/time.c
> index bbb3c72f6..f1b694fc2 100644
> --- a/plat/common/arm/time.c
> +++ b/plat/common/arm/time.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #include <stdlib.h>
>  #include <libfdt.h>
> diff --git a/plat/common/include/arm/arm/time.h
> b/plat/common/include/arm/arm/time.h
> index baff7bf99..6ae2d2191 100644
> --- a/plat/common/include/arm/arm/time.h
> +++ b/plat/common/include/arm/arm/time.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef UK_PLAT_COMMON_ARM_TIME_H
>  #define UK_PLAT_COMMON_ARM_TIME_H
> diff --git a/plat/common/include/arm/arm64/cpu.h
> b/plat/common/include/arm/arm64/cpu.h
> index fe981ebf4..e82f8fba1 100644
> --- a/plat/common/include/arm/arm64/cpu.h
> +++ b/plat/common/include/arm/arm64/cpu.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>
>  #ifndef __PLAT_COMMON_ARM64_CPU_H__
> diff --git a/plat/common/include/arm/arm64/cpu_defs.h
> b/plat/common/include/arm/arm64/cpu_defs.h
> index 675b9e65b..53be825eb 100644
> --- a/plat/common/include/arm/arm64/cpu_defs.h
> +++ b/plat/common/include/arm/arm64/cpu_defs.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef __CPU_ARM_64_DEFS_H__
>  #define __CPU_ARM_64_DEFS_H__
> diff --git a/plat/common/include/arm/arm64/irq.h
> b/plat/common/include/arm/arm64/irq.h
> index f582fc262..c46300e51 100644
> --- a/plat/common/include/arm/arm64/irq.h
> +++ b/plat/common/include/arm/arm64/irq.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef __PLAT_CMN_ARM64_IRQ_H__
>  #define __PLAT_CMN_ARM64_IRQ_H__
> diff --git a/plat/common/include/arm/arm64/time.h
> b/plat/common/include/arm/arm64/time.h
> index bc9d7fb2e..33feb32b9 100644
> --- a/plat/common/include/arm/arm64/time.h
> +++ b/plat/common/include/arm/arm64/time.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef UK_PLAT_COMMON_ARM64_TIME_H
>  #define UK_PLAT_COMMON_ARM64_TIME_H
> diff --git a/plat/common/include/arm/arm64/tls.h
> b/plat/common/include/arm/arm64/tls.h
> index 80c0dc3c8..12b1f00e6 100644
> --- a/plat/common/include/arm/arm64/tls.h
> +++ b/plat/common/include/arm/arm64/tls.h
> @@ -26,8 +26,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef __PLAT_CMN_ARM64_TLS_H__
>  #define __PLAT_CMN_ARM64_TLS_H__
> diff --git a/plat/common/include/arm/cpu.h b/plat/common/include/arm/cpu.=
h
> index 558945f3a..0a336c865 100644
> --- a/plat/common/include/arm/cpu.h
> +++ b/plat/common/include/arm/cpu.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>
>  #ifndef __PLAT_CMN_ARM_CPU_H__
> diff --git a/plat/common/include/arm/cpu_defs.h
> b/plat/common/include/arm/cpu_defs.h
> index 7502f0397..a34f6f2c3 100644
> --- a/plat/common/include/arm/cpu_defs.h
> +++ b/plat/common/include/arm/cpu_defs.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>
>  #ifndef __PLAT_CMN_ARM_CPU_DEFS_H__
> diff --git a/plat/common/include/arm/irq.h b/plat/common/include/arm/irq.=
h
> index b81fa9ef6..8c0f2677c 100644
> --- a/plat/common/include/arm/irq.h
> +++ b/plat/common/include/arm/irq.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>
>  #ifndef __PLAT_CMN_ARM_IRQ_H__
> diff --git a/plat/common/include/uk/plat/common/irq.h
> b/plat/common/include/uk/plat/common/irq.h
> index fac5022f9..bb1592050 100644
> --- a/plat/common/include/uk/plat/common/irq.h
> +++ b/plat/common/include/uk/plat/common/irq.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>
>  #ifndef __PLAT_CMN_IRQ_H__
> diff --git a/plat/common/include/uk/plat/common/sections.h
> b/plat/common/include/uk/plat/common/sections.h
> index a2677ce82..2d89b721c 100644
> --- a/plat/common/include/uk/plat/common/sections.h
> +++ b/plat/common/include/uk/plat/common/sections.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>
>  #ifndef __PLAT_CMN_SECTIONS_H__
> diff --git a/plat/drivers/gic/gic-v2.c b/plat/drivers/gic/gic-v2.c
> index 2428be03b..30e901f4b 100644
> --- a/plat/drivers/gic/gic-v2.c
> +++ b/plat/drivers/gic/gic-v2.c
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #include <string.h>
>  #include <libfdt.h>
> diff --git a/plat/drivers/include/gic/gic-v2.h
> b/plat/drivers/include/gic/gic-v2.h
> index c28b7a7e9..e7b52fcc5 100644
> --- a/plat/drivers/include/gic/gic-v2.h
> +++ b/plat/drivers/include/gic/gic-v2.h
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef __PLAT_DRV_ARM_GIC_H__
>  #define __PLAT_DRV_ARM_GIC_H__
> diff --git a/plat/drivers/include/ofw/fdt.h
> b/plat/drivers/include/ofw/fdt.h
> index 6f80a27da..3dfed2830 100644
> --- a/plat/drivers/include/ofw/fdt.h
> +++ b/plat/drivers/include/ofw/fdt.h
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef _PLAT_DRIVER_OFW_FDT_H
>  #define _PLAT_DRIVER_OFW_FDT_H
> diff --git a/plat/drivers/include/ofw/gic_fdt.h
> b/plat/drivers/include/ofw/gic_fdt.h
> index e55589249..35b0377b2 100644
> --- a/plat/drivers/include/ofw/gic_fdt.h
> +++ b/plat/drivers/include/ofw/gic_fdt.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>
>  #ifndef __PLAT_DRV_GIC_FDT_H__
> diff --git a/plat/drivers/ofw/fdt.c b/plat/drivers/ofw/fdt.c
> index 76f8ff3af..7057be373 100644
> --- a/plat/drivers/ofw/fdt.c
> +++ b/plat/drivers/ofw/fdt.c
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #include <libfdt_env.h>
>  #include <fdt.h>
> diff --git a/plat/drivers/ofw/gic_fdt.c b/plat/drivers/ofw/gic_fdt.c
> index 4f88fdd04..c4421f3f0 100644
> --- a/plat/drivers/ofw/gic_fdt.c
> +++ b/plat/drivers/ofw/gic_fdt.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #include <libfdt_env.h>
>  #include <ofw/fdt.h>
> diff --git a/plat/kvm/arm/entry64.S b/plat/kvm/arm/entry64.S
> index c4de334cd..104fd8b64 100644
> --- a/plat/kvm/arm/entry64.S
> +++ b/plat/kvm/arm/entry64.S
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #include <uk/arch/limits.h>
>  #include <uk/asm.h>
> diff --git a/plat/kvm/arm/intctrl.c b/plat/kvm/arm/intctrl.c
> index f6250245e..ba445580c 100644
> --- a/plat/kvm/arm/intctrl.c
> +++ b/plat/kvm/arm/intctrl.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #include <uk/assert.h>
>  #include <kvm/intctrl.h>
> diff --git a/plat/kvm/arm/lcpu.c b/plat/kvm/arm/lcpu.c
> index 6f15c3f9f..2d322191e 100644
> --- a/plat/kvm/arm/lcpu.c
> +++ b/plat/kvm/arm/lcpu.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #include <stdint.h>
>  #include <uk/plat/lcpu.h>
> diff --git a/plat/kvm/arm/link64.lds.S b/plat/kvm/arm/link64.lds.S
> index 4f8fcc304..7bb014bac 100644
> --- a/plat/kvm/arm/link64.lds.S
> +++ b/plat/kvm/arm/link64.lds.S
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #include <uk/arch/limits.h>
>  #include <uk/plat/common/common.lds.h>
> diff --git a/plat/kvm/arm/memory.c b/plat/kvm/arm/memory.c
> index c40d213ac..7330eae5d 100644
> --- a/plat/kvm/arm/memory.c
> +++ b/plat/kvm/arm/memory.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>
>  #include <uk/essentials.h>
> diff --git a/plat/kvm/include/kvm-arm/arm64/mm.h b/plat/kvm/include/kvm-
> arm/arm64/mm.h
> index 9ec127302..801eff423 100644
> --- a/plat/kvm/include/kvm-arm/arm64/mm.h
> +++ b/plat/kvm/include/kvm-arm/arm64/mm.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>
>  #ifndef __KVM_ARM_64_MM_H__
> diff --git a/plat/kvm/include/kvm-arm/mm.h b/plat/kvm/include/kvm-arm/mm.=
h
> index dfa73239d..5719140a7 100644
> --- a/plat/kvm/include/kvm-arm/mm.h
> +++ b/plat/kvm/include/kvm-arm/mm.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>
>  #ifndef __PLAT_KVM_MM_H__
> --
> 2.20.1

IMPORTANT NOTICE: The contents of this email and any attachments are confid=
ential and may also be privileged. If you are not the intended recipient, p=
lease notify the sender immediately and do not disclose the contents to any=
 other person, use it for any purpose, or store or copy the information in =
any medium. Thank you.


From minios-devel-bounces@lists.xenproject.org Wed Mar 03 16:42:51 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 03 Mar 2021 16:42:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.92919.175236 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lHUaE-0002xb-4g; Wed, 03 Mar 2021 16:42:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 92919.175236; Wed, 03 Mar 2021 16:42:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lHUaE-0002xU-1R; Wed, 03 Mar 2021 16:42:46 +0000
Received: by outflank-mailman (input) for mailman id 92919;
 Wed, 03 Mar 2021 16:42:44 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gerj=IB=gmail.com=lrbarbulescu@srs-us1.protection.inumbo.net>)
 id 1lHUaC-0002xP-P4
 for minios-devel@lists.xen.org; Wed, 03 Mar 2021 16:42:44 +0000
Received: from mail-lf1-x12d.google.com (unknown [2a00:1450:4864:20::12d])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 5ee560e4-156f-4d0d-a566-39cde664e56a;
 Wed, 03 Mar 2021 16:42:43 +0000 (UTC)
Received: by mail-lf1-x12d.google.com with SMTP id k9so18231897lfo.12
 for <minios-devel@lists.xen.org>; Wed, 03 Mar 2021 08:42:42 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ee560e4-156f-4d0d-a566-39cde664e56a
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=DJ8/xeiUQHGTXfJ7eHC/2851H7MyPtobrqTmUrWvVlc=;
        b=XmGbMP4snG+h9WOHEULwNTHz3OmXI4pW+VyOlGw+XCIxWLJK5zEaIGLj/ksqu7yWE0
         cGVdmgvT9A9degncOIu7yZKlssehUsrG1U3CLfxFO/uKlnexgYZO0ncMrO4JeVySu6m9
         APkZ4Jl4S4XI+PR/CUc9FkS2MT7hSlWfuo1MEDq7bZelawSdMyZh/gievg1U3DycmAqi
         QdHKJKOGW7yevgF01RM2AmY+zJEwmwvwzd525sxeGw269lOcv/79y1qvq9iH/Umpemow
         I5x3LjI5Nsm4lPwmoiwiLItPn8hdcO700uSHhxoJQKYFNm/cgp4TzCl0HCLpgxONdq/3
         Uy8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=DJ8/xeiUQHGTXfJ7eHC/2851H7MyPtobrqTmUrWvVlc=;
        b=LIE9bZfq/ygfMRdwPxVINHYCOWgUqHFBSEyMfECw5npX70rHvOxXOsD2RT/nf6q0HC
         NwKQgjTnKFLBnNhsXzc+Pu00NmmMmo0rJ3KsFgvr6Sge9GrU7ci6d6jijiooP6VI14lp
         vvPxRt+AnZd7vnJd1GwqePCdeX+Oy1au9adMpNTmfjEhbC4P8wqWz0Hs4fORtZ9KUSyF
         MdMIRW+73po5kFx+Zb+z/kKgdlLBaqY8Zf2ekYw6M5hXIc9W69k80RWr/cdm3XDunrJb
         cqPG9Bx+gCRJJ8okRvt8xkiv9z2n+SH6BXIn/NUjzo3NpJDjf4hbWVkQMRy2FlRGewSv
         c9rA==
X-Gm-Message-State: AOAM5327jrISEFScZ/53ocDcvNrzhi76gtXlnfKP8TKw2M3cw4HlKDI0
	XHkgbmp/6ue8giw+rJO8a/qk+EW4C1vZAoTcnbY=
X-Google-Smtp-Source: ABdhPJzvBiR0NCTdcGWmMUYcMGqtt/Gc+O3mC2/0ImaRouTKg9+orkTT7Lj+bRhuK1s5TgI9G1PKD8rGmro/Qyanv04=
X-Received: by 2002:ac2:418d:: with SMTP id z13mr8982014lfh.608.1614789761817;
 Wed, 03 Mar 2021 08:42:41 -0800 (PST)
MIME-Version: 1.0
References: <20201120154612.27579-1-simon.kuenzer@neclab.eu> <CAMpNDKkkQ774BPHz=Z8Y0BxSG2Ry7mkoE_ff1j1YkPtidBoh9Q@mail.gmail.com>
In-Reply-To: <CAMpNDKkkQ774BPHz=Z8Y0BxSG2Ry7mkoE_ff1j1YkPtidBoh9Q@mail.gmail.com>
From: Laurentiu Barbulescu <lrbarbulescu@gmail.com>
Date: Wed, 3 Mar 2021 18:42:25 +0200
Message-ID: <CAMpNDKkx=wF6=m4EuFn_9nzOSQ991myCR_x_SVyzRYTQRPALPA@mail.gmail.com>
Subject: Re: [UNIKRAFT PATCH 00/18] Allocator statistics
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Cc: minios-devel@lists.xen.org, Felipe Huici <felipe.huici@neclab.eu>, 
	Sharan Santhanam <sharan.santhanam@neclab.eu>
Content-Type: multipart/alternative; boundary="00000000000023dfc205bca48ae9"

--00000000000023dfc205bca48ae9
Content-Type: text/plain; charset="UTF-8"

Hi!

I'm back with the review for the 2nd part of this patch series.
The first thing is that, unfortunately, this series can no longer be
applied because of
removing the `THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY
WAY.` line from: `lib/ukalloc/include/uk/alloc.h`,
`lib/ukalloc/include/uk/alloc_impl.h`
and `lib/nolibc/malloc.c`.
Looks good overall, but I have a few more comments for the 10th and 17th
patch.
I will leave them there.

Best wishes,
Laurentiu

On Thu, Jan 7, 2021 at 6:21 PM Laurentiu Barbulescu <lrbarbulescu@gmail.com>
wrote:

> Hi Simon,
>
> I was delegated to review only a part of this patch series
> (patches from 1 to 9).
> Great work overall, but I have some comments which I will
> leave inline at the corresponding patches(1, 5, 6 and 7).
>
> Best wishes,
> Laurentiu
>
> On Fri, Nov 20, 2020 at 5:46 PM Simon Kuenzer <simon.kuenzer@neclab.eu>
> wrote:
>
>> This patch series introduces allocator statistics. With minimal
>> instrumentation, allocators can report counters on allocation
>> and freeing events that happened.
>> For example, the following could be queried per allocator:
>>
>>  last_alloc_size:         230 B /* size of the last allocation */
>>  max_alloc_size:         4096 B /* biggest satisfied allocation size */
>>  min_alloc_size:           12 B /* smallest satisfied allocation size */
>>  tot_nb_allocs:            75   /* total number of satisfied allocations
>> */
>>  tot_nb_frees:             22   /* total number of satisfied free
>> operations */
>>  cur_nb_allocs:            53   /* current number of active allocations */
>>  max_nb_allocs:            53   /* maximum number of active allocations */
>>  max_mem_use:          218023 B /* maximum amount of memory that was in
>> use */
>>  cur_mem_use:          217088 B /* current amount of memory that is in
>> use */
>>  nb_enomem:                 0   /* number of times failing allocation
>> requests */
>>
>> Note: The meaning of `CONFIG_IFSTAT` changes with this patch series.
>> The configuration option originally raised wrong expectations while it
>> it just provided an API to query the amount of available memory from
>> an allocator. `CONFIG_IFSTAT` is now enabling these detailed allocator
>> statistics.
>>
>> Note: Since this patch series changes some details on the internal ukalloc
>> API (`<uk/alloc_impl.h>`), external memory allocators (like TLSF,
>> mimalloc)
>> need to be adopted as well. For retrieving statistics from them, they also
>> need to be instrumented to count alloc and free events.
>>
>> The first four commits are doing minor corrections of the API headers.
>> Afterwards, the statistics API is introduced. Additionally, the last
>> commits introduce a one consolidated global allocator statistics, as
>> well as a per library allocator statistics. `lib/nolibc` had to
>> instrumented in order to support per-library statistics properly.
>> Similar to `nolibc`, `newlib` and `musl` need to be instrumented, too to
>> properly support per-library statistics for libc allocation interfaces:
>> malloc(), calloc(), free(), etc.
>>
>> Simon Kuenzer (18):
>>   lib/ukalloc: Correct BSD license header
>>   lib/ukalloc: Move ifpages comment
>>   lib/ukalloc: `extern C {` at the beginning of <uk/alloc.h>
>>   lib/ukalloc: Move `uk_zalloc()` after `uk_calloc()`
>>   lib/ukalloc: Introduce `uk_alloc_maxalloc()` and make
>>     `uk_alloc_availmem()` available
>>   lib/ukalloc: Introduce `uk_alloc_pavail()`, `uk_alloc_pmaxalloc()`
>>   lib/ukalloc: Wrappers for "fee memory" interfaces
>>   lib/ukalloc: Iterator helper for allocators
>>   lib/ukalloc: Introduce `uk_alloc_availmem_total(),
>>     `uk_alloc_pavail_total()`
>>   lib/ukalloc: Allocator statistics
>>   lib/ukalloc: Global statistics
>>   lib/ukallocbbuddy: Instrumentation for statistics
>>   lib/ukallocregion: Internal functions as `static`
>>   lib/ukallocregion: Instrumentation for statistics
>>   lib/ukalloc: Per-library allocation statistics
>>   lib/ukalloc: Iterator for per-library statistics
>>   lib/ukalloc: Use Unikraft internal types
>>   lib/nolibc: Enable per-library allocator statistics
>>
>>  lib/nolibc/Makefile.uk                   |   1 -
>>  lib/nolibc/include/stdlib.h              |  39 ++-
>>  lib/ukalloc/Config.uk                    |  29 ++-
>>  lib/ukalloc/Makefile.uk                  |   5 +
>>  lib/ukalloc/alloc.c                      | 225 ++++++++++------
>>  lib/ukalloc/exportsyms.uk                |   9 +
>>  lib/ukalloc/include/uk/alloc.h           | 174 +++++++++----
>>  lib/ukalloc/include/uk/alloc_impl.h      | 179 +++++++++++--
>>  lib/ukalloc/libstats.c                   | 311 +++++++++++++++++++++++
>>  lib/ukalloc/libstats.ld                  |   9 +
>>  lib/ukalloc/libstats.localsyms.uk        |   2 +
>>  lib/{nolibc/malloc.c => ukalloc/stats.c} |  56 ++--
>>  lib/ukallocbbuddy/bbuddy.c               |  50 +++-
>>  lib/ukallocregion/region.c               |  54 +++-
>>  plat/common/include/pci/pci_bus.h        |   2 +
>>  plat/common/memory.c                     |   2 +
>>  plat/xen/gnttab.c                        |   1 +
>>  plat/xen/memory.c                        |   2 +
>>  plat/xen/x86/gnttab.c                    |   1 +
>>  19 files changed, 952 insertions(+), 199 deletions(-)
>>  create mode 100644 lib/ukalloc/libstats.c
>>  create mode 100644 lib/ukalloc/libstats.ld
>>  create mode 100644 lib/ukalloc/libstats.localsyms.uk
>>  rename lib/{nolibc/malloc.c => ukalloc/stats.c} (62%)
>>
>> --
>> 2.20.1
>>
>>

--00000000000023dfc205bca48ae9
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi!<div><br><div>I&#39;m back with the review for the 2nd =
part of this patch series.<br>The first thing is that, unfortunately, this =
series can no longer be applied because of</div><div>removing the `THIS HEA=
DER MAY NOT BE EXTRACTED OR MODIFIED IN ANY</div><div>WAY.` line from: `lib=
/ukalloc/include/uk/alloc.h`, `lib/ukalloc/include/uk/alloc_impl.h`</div><d=
iv>and `lib/nolibc/malloc.c`.</div><div>Looks good overall, but I have a fe=
w more comments for the 10th and 17th patch.</div><div>I will leave them th=
ere.</div><div><br>Best wishes,<br>Laurentiu<br></div></div></div><br><div =
class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Jan 7, =
2021 at 6:21 PM Laurentiu Barbulescu &lt;<a href=3D"mailto:lrbarbulescu@gma=
il.com">lrbarbulescu@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex"><div dir=3D"ltr">Hi Simon,<br><br>I was deleg=
ated to review only a part of this patch series<br>(patches from 1 to 9).<b=
r>Great work overall, but I have some comments which I will<br>leave inline=
 at the corresponding patches(1, 5, 6 and 7).<br><br>Best wishes,<br>Lauren=
tiu<br></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail=
_attr">On Fri, Nov 20, 2020 at 5:46 PM Simon Kuenzer &lt;<a href=3D"mailto:=
simon.kuenzer@neclab.eu" target=3D"_blank">simon.kuenzer@neclab.eu</a>&gt; =
wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0=
px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">This patc=
h series introduces allocator statistics. With minimal<br>
instrumentation, allocators can report counters on allocation<br>
and freeing events that happened.<br>
For example, the following could be queried per allocator:<br>
<br>
=C2=A0last_alloc_size:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0230 B /* size of th=
e last allocation */<br>
=C2=A0max_alloc_size:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A04096 B /* biggest sa=
tisfied allocation size */<br>
=C2=A0min_alloc_size:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A012 B /* small=
est satisfied allocation size */<br>
=C2=A0tot_nb_allocs:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 75=C2=A0 =C2=
=A0/* total number of satisfied allocations */<br>
=C2=A0tot_nb_frees:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A022=C2=A0=
 =C2=A0/* total number of satisfied free operations */<br>
=C2=A0cur_nb_allocs:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 53=C2=A0 =C2=
=A0/* current number of active allocations */<br>
=C2=A0max_nb_allocs:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 53=C2=A0 =C2=
=A0/* maximum number of active allocations */<br>
=C2=A0max_mem_use:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 218023 B /* maximum am=
ount of memory that was in use */<br>
=C2=A0cur_mem_use:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 217088 B /* current am=
ount of memory that is in use */<br>
=C2=A0nb_enomem:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A00=C2=A0 =C2=A0/* number of times failing allocation requests */<br>
<br>
Note: The meaning of `CONFIG_IFSTAT` changes with this patch series.<br>
The configuration option originally raised wrong expectations while it<br>
it just provided an API to query the amount of available memory from<br>
an allocator. `CONFIG_IFSTAT` is now enabling these detailed allocator<br>
statistics.<br>
<br>
Note: Since this patch series changes some details on the internal ukalloc<=
br>
API (`&lt;uk/alloc_impl.h&gt;`), external memory allocators (like TLSF, mim=
alloc)<br>
need to be adopted as well. For retrieving statistics from them, they also<=
br>
need to be instrumented to count alloc and free events.<br>
<br>
The first four commits are doing minor corrections of the API headers.<br>
Afterwards, the statistics API is introduced. Additionally, the last<br>
commits introduce a one consolidated global allocator statistics, as<br>
well as a per library allocator statistics. `lib/nolibc` had to<br>
instrumented in order to support per-library statistics properly.<br>
Similar to `nolibc`, `newlib` and `musl` need to be instrumented, too to<br=
>
properly support per-library statistics for libc allocation interfaces:<br>
malloc(), calloc(), free(), etc.<br>
<br>
Simon Kuenzer (18):<br>
=C2=A0 lib/ukalloc: Correct BSD license header<br>
=C2=A0 lib/ukalloc: Move ifpages comment<br>
=C2=A0 lib/ukalloc: `extern C {` at the beginning of &lt;uk/alloc.h&gt;<br>
=C2=A0 lib/ukalloc: Move `uk_zalloc()` after `uk_calloc()`<br>
=C2=A0 lib/ukalloc: Introduce `uk_alloc_maxalloc()` and make<br>
=C2=A0 =C2=A0 `uk_alloc_availmem()` available<br>
=C2=A0 lib/ukalloc: Introduce `uk_alloc_pavail()`, `uk_alloc_pmaxalloc()`<b=
r>
=C2=A0 lib/ukalloc: Wrappers for &quot;fee memory&quot; interfaces<br>
=C2=A0 lib/ukalloc: Iterator helper for allocators<br>
=C2=A0 lib/ukalloc: Introduce `uk_alloc_availmem_total(),<br>
=C2=A0 =C2=A0 `uk_alloc_pavail_total()`<br>
=C2=A0 lib/ukalloc: Allocator statistics<br>
=C2=A0 lib/ukalloc: Global statistics<br>
=C2=A0 lib/ukallocbbuddy: Instrumentation for statistics<br>
=C2=A0 lib/ukallocregion: Internal functions as `static`<br>
=C2=A0 lib/ukallocregion: Instrumentation for statistics<br>
=C2=A0 lib/ukalloc: Per-library allocation statistics<br>
=C2=A0 lib/ukalloc: Iterator for per-library statistics<br>
=C2=A0 lib/ukalloc: Use Unikraft internal types<br>
=C2=A0 lib/nolibc: Enable per-library allocator statistics<br>
<br>
=C2=A0lib/nolibc/Makefile.uk=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A01 -<br>
=C2=A0lib/nolibc/include/stdlib.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 |=C2=A0 39 ++-<br>
=C2=A0lib/ukalloc/Config.uk=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 29 ++-<br>
=C2=A0lib/ukalloc/Makefile.uk=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A05 +<br>
=C2=A0lib/ukalloc/alloc.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 | 225 ++++++++++------<br>
=C2=A0lib/ukalloc/<a href=3D"http://exportsyms.uk" rel=3D"noreferrer" targe=
t=3D"_blank">exportsyms.uk</a>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 |=C2=A0 =C2=A09 +<br>
=C2=A0lib/ukalloc/include/uk/alloc.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0| 174 +++++++++----<br>
=C2=A0lib/ukalloc/include/uk/alloc_impl.h=C2=A0 =C2=A0 =C2=A0 | 179 +++++++=
++++--<br>
=C2=A0lib/ukalloc/libstats.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0| 311 +++++++++++++++++++++++<br>
=C2=A0lib/ukalloc/libstats.ld=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A09 +<br>
=C2=A0lib/ukalloc/<a href=3D"http://libstats.localsyms.uk" rel=3D"noreferre=
r" target=3D"_blank">libstats.localsyms.uk</a>=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=
=C2=A0 =C2=A02 +<br>
=C2=A0lib/{nolibc/malloc.c =3D&gt; ukalloc/stats.c} |=C2=A0 56 ++--<br>
=C2=A0lib/ukallocbbuddy/bbuddy.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0|=C2=A0 50 +++-<br>
=C2=A0lib/ukallocregion/region.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0|=C2=A0 54 +++-<br>
=C2=A0plat/common/include/pci/pci_bus.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =
=C2=A02 +<br>
=C2=A0plat/common/memory.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A02 +<br>
=C2=A0plat/xen/gnttab.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A01 +<br>
=C2=A0plat/xen/memory.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A02 +<br>
=C2=A0plat/xen/x86/gnttab.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A01 +<br>
=C2=A019 files changed, 952 insertions(+), 199 deletions(-)<br>
=C2=A0create mode 100644 lib/ukalloc/libstats.c<br>
=C2=A0create mode 100644 lib/ukalloc/libstats.ld<br>
=C2=A0create mode 100644 lib/ukalloc/<a href=3D"http://libstats.localsyms.u=
k" rel=3D"noreferrer" target=3D"_blank">libstats.localsyms.uk</a><br>
=C2=A0rename lib/{nolibc/malloc.c =3D&gt; ukalloc/stats.c} (62%)<br>
<br>
-- <br>
2.20.1<br>
<br>
</blockquote></div>
</blockquote></div>

--00000000000023dfc205bca48ae9--


From minios-devel-bounces@lists.xenproject.org Wed Mar 03 16:46:16 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 03 Mar 2021 16:46:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.92920.175239 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lHUdb-00033m-F0; Wed, 03 Mar 2021 16:46:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 92920.175239; Wed, 03 Mar 2021 16:46:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lHUdb-00033f-Bx; Wed, 03 Mar 2021 16:46:15 +0000
Received: by outflank-mailman (input) for mailman id 92920;
 Wed, 03 Mar 2021 16:46:13 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gerj=IB=gmail.com=lrbarbulescu@srs-us1.protection.inumbo.net>)
 id 1lHUdZ-00033M-SS
 for minios-devel@lists.xen.org; Wed, 03 Mar 2021 16:46:13 +0000
Received: from mail-lf1-x135.google.com (unknown [2a00:1450:4864:20::135])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c2c36f60-0610-43ae-8132-749ae46d3e9b;
 Wed, 03 Mar 2021 16:46:11 +0000 (UTC)
Received: by mail-lf1-x135.google.com with SMTP id v9so20364879lfa.1
 for <minios-devel@lists.xen.org>; Wed, 03 Mar 2021 08:46:11 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c2c36f60-0610-43ae-8132-749ae46d3e9b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=Nti60BowZYeOOiReENUCbNKzRrtK+yH9zyOVBE9xquY=;
        b=WoQ5Dj3VNHWdc/GDm8CGl8Y0JG0zJYdwknTzZIz99uzoTvh23aKYWDVXr+7xl9wfSM
         LJpmVW8VB9MRkRbE3BQe48BXY77IcfEB6Fp4YWauWHv/xHYyoHy6h8pB/iUbqaq1EiXI
         M6mwhzYxLEj0Yc5qWoXwkzy/RYOhKPpTw1IT7SrbIYIWCpdsujZY/OrS/C8YgFE7ovyN
         Nonenh5qQEbMDkF637XF/atnGUwD3WZ9SApwGLNvV3+wJc0TBzyb0hNK73fuHe4e6j2A
         r0UH0cZkuwinR4biCVUIsGSbRfwKzKfDDktgahV4pF946LBmtIg+LBWMtsGQ7JCFuNa8
         dRSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=Nti60BowZYeOOiReENUCbNKzRrtK+yH9zyOVBE9xquY=;
        b=B8QZFAFG73zJRi+KQ3lvgvCTs/ls6bHM7U1/IXhlP40psfHixGChKNr/GAjde0j1mz
         gH61X0gy4IzBCDL9rhZtxicADXh1nTO12OzAs5Je/0X3fzBnqQEIRNjXjFz7mkB7AIKf
         EacRA7vtNFluRSVYVSOz6xIFcNLh3d0c1zqO5tfThu8eJLkx7S9+aEZdltn7gJ/kg5CG
         1ZMHal9O/VA4TYDI1JCUY21TCJ48KOyXOm/FACLLTZxbNt3crScpze5M4yqUO9OcI7Cq
         n8WNGiPPt8zK8IjYpQEmCPWo+nwXSGg6m5Sy7qH3YKVnNbxeYy/wHOYzNLGrHHRDee39
         I50Q==
X-Gm-Message-State: AOAM532d9HlDHy8QsWlVjEt+FneVSmFtEeBzK5s5k4QV/g2XWZveGTfD
	pe7LC3LdwL+GFxiDCvi4BNk2Z8P6yy5NBufYl5c=
X-Google-Smtp-Source: ABdhPJxKFNnLrqpZPuLY9LbBzX5Hp4J48yldTlfSolXYqgg53Ffw8u3QN8Ezy5qVq9h+74tqAp5np6k2tY0/+rBz0EU=
X-Received: by 2002:ac2:418d:: with SMTP id z13mr8988910lfh.608.1614789969812;
 Wed, 03 Mar 2021 08:46:09 -0800 (PST)
MIME-Version: 1.0
References: <20201120154612.27579-1-simon.kuenzer@neclab.eu> <20201120154612.27579-11-simon.kuenzer@neclab.eu>
In-Reply-To: <20201120154612.27579-11-simon.kuenzer@neclab.eu>
From: Laurentiu Barbulescu <lrbarbulescu@gmail.com>
Date: Wed, 3 Mar 2021 18:45:53 +0200
Message-ID: <CAMpNDK=Ec+jSF_+O=14arQ31xFPmamJqhOi7GG3PtDRe+uzmfw@mail.gmail.com>
Subject: Re: [UNIKRAFT PATCH 10/18] lib/ukalloc: Allocator statistics
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Cc: minios-devel@lists.xen.org, Felipe Huici <felipe.huici@neclab.eu>, 
	Sharan Santhanam <sharan.santhanam@neclab.eu>
Content-Type: multipart/alternative; boundary="00000000000089a06805bca4962a"

--00000000000089a06805bca4962a
Content-Type: text/plain; charset="UTF-8"

I have 3 inline comments for this patch:

On Fri, Nov 20, 2020 at 5:47 PM Simon Kuenzer <simon.kuenzer@neclab.eu>
wrote:

> This commit introduces an implementation for the configuration option
> `LIBUKALLOC_IFSTATS`. When enabled, allocators keep allocation statistics,
> like number of current allocations, maximum memory usage due to
> allocations, or how often ENOMEM was returned.
> The statistics are kept on the `uk_alloc` struct while the instrumentation
> of an allocator is minimal: An allocator has only to be modified with
> the following macros:
>  - `uk_alloc_stats_count_alloc()`, `uk_alloc_stats_count_palloc()`
>  - `uk_alloc_stats_count_free()`, `uk_alloc_stats_count_pfree()`
>  - `uk_alloc_stats_count_enomem()`, `uk_alloc_stats_count_penomem()`
> Current statistics can be queried with `uk_alloc_stats()`.
>
> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
> ---
>  lib/ukalloc/Config.uk               |   6 ++
>  lib/ukalloc/Makefile.uk             |   1 +
>  lib/ukalloc/exportsyms.uk           |   1 +
>  lib/ukalloc/include/uk/alloc.h      |  29 ++++++++
>  lib/ukalloc/include/uk/alloc_impl.h | 108 ++++++++++++++++++++++++++++
>  lib/ukalloc/stats.c                 |  47 ++++++++++++
>  6 files changed, 192 insertions(+)
>  create mode 100644 lib/ukalloc/stats.c
>
> diff --git a/lib/ukalloc/Config.uk b/lib/ukalloc/Config.uk
> index 59a6aa78..fc64a13b 100644
> --- a/lib/ukalloc/Config.uk
> +++ b/lib/ukalloc/Config.uk
> @@ -10,4 +10,10 @@ if LIBUKALLOC
>                 default n
>                 help
>                         Provide helpers for allocators defining
> exclusively malloc and free
> +
> +       config LIBUKALLOC_IFSTATS
> +               bool "Allocator statistics interface"
> +               default n
> +               help
> +                       Provide interfaces for querying allocator
> statistics.
>  endif
> diff --git a/lib/ukalloc/Makefile.uk b/lib/ukalloc/Makefile.uk
> index 30636462..d56aabb6 100644
> --- a/lib/ukalloc/Makefile.uk
> +++ b/lib/ukalloc/Makefile.uk
> @@ -4,3 +4,4 @@ CINCLUDES-$(CONFIG_LIBUKALLOC)          +=
> -I$(LIBUKALLOC_BASE)/include
>  CXXINCLUDES-$(CONFIG_LIBUKALLOC)       += -I$(LIBUKALLOC_BASE)/include
>
>  LIBUKALLOC_SRCS-y += $(LIBUKALLOC_BASE)/alloc.c
> +LIBUKALLOC_SRCS-$(CONFIG_LIBUKALLOC_IFSTATS) += $(LIBUKALLOC_BASE)/stats.c
> diff --git a/lib/ukalloc/exportsyms.uk b/lib/ukalloc/exportsyms.uk
> index 7c25a70c..48de908c 100644
> --- a/lib/ukalloc/exportsyms.uk
> +++ b/lib/ukalloc/exportsyms.uk
> @@ -20,3 +20,4 @@ uk_alloc_pavail_compat
>  uk_alloc_availmem_total
>  uk_alloc_pavail_total
>  _uk_alloc_head
> +uk_alloc_stats
> diff --git a/lib/ukalloc/include/uk/alloc.h
> b/lib/ukalloc/include/uk/alloc.h
> index fc19551e..59155d8c 100644
> --- a/lib/ukalloc/include/uk/alloc.h
> +++ b/lib/ukalloc/include/uk/alloc.h
> @@ -71,6 +71,24 @@ typedef ssize_t (*uk_alloc_availmem_func_t)
>  typedef long  (*uk_alloc_pavail_func_t)
>                 (struct uk_alloc *a);
>
> +#if CONFIG_LIBUKALLOC_IFSTATS
>
Honestly I don't know if there is a convention for this, but I found a bit
confusing the
struct `uk_alloc_stats` and the function with the same name,
`uk_alloc_stats`.

> +struct uk_alloc_stats {
> +       size_t last_alloc_size; /* size of the last allocation */
> +       size_t max_alloc_size; /* biggest satisfied allocation size */
> +       size_t min_alloc_size; /* smallest satisfied allocation size */
> +
> +       uint64_t tot_nb_allocs; /* total number of satisfied allocations */
> +       uint64_t tot_nb_frees;  /* total number of satisfied free
> operations */
> +       uint64_t cur_nb_allocs; /* current number of active allocations */
> +       uint64_t max_nb_allocs; /* maximum number of active allocations */
> +
> +       size_t cur_mem_use; /* current used memory by allocations */
> +       size_t max_mem_use; /* maximum amount of memory used by
> allocations */
> +
> +       uint64_t nb_enomem; /* number of times failing allocation requests
> */
> +};
> +#endif /* CONFIG_LIBUKALLOC_IFSTATS */
> +
>  struct uk_alloc {
>         /* memory allocation */
>         uk_alloc_malloc_func_t malloc;
> @@ -96,6 +114,10 @@ struct uk_alloc {
>         /* optional interface */
>         uk_alloc_addmem_func_t addmem;
>
> +#if CONFIG_LIBUKALLOC_IFSTATS
> +       struct uk_alloc_stats _stats;
> +#endif
> +
>         /* internal */
>         struct uk_alloc *next;
>         int8_t priv[];
> @@ -283,6 +305,13 @@ size_t uk_alloc_availmem_total(void);
>
>  unsigned long uk_alloc_pavail_total(void);
>
> +#if CONFIG_LIBUKALLOC_IFSTATS
> +/*
> + * Memory allocation statistics
> + */
> +void uk_alloc_stats(struct uk_alloc *a, struct uk_alloc_stats *dst);
> +#endif /* CONFIG_LIBUKALLOC_IFSTATS */
> +
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/lib/ukalloc/include/uk/alloc_impl.h
> b/lib/ukalloc/include/uk/alloc_impl.h
> index 4811558e..9ef6df13 100644
> --- a/lib/ukalloc/include/uk/alloc_impl.h
> +++ b/lib/ukalloc/include/uk/alloc_impl.h
> @@ -40,6 +40,7 @@
>  #define __UK_ALLOC_IMPL_H__
>
>  #include <uk/alloc.h>
> +#include <uk/preempt.h>
>
>  #ifdef __cplusplus
>  extern "C" {
> @@ -81,6 +82,110 @@ void uk_pfree_compat(struct uk_alloc *a, void *ptr,
> unsigned long num_pages);
>  long uk_alloc_pavail_compat(struct uk_alloc *a);
>  long uk_alloc_pmaxalloc_compat(struct uk_alloc *a);
>
> +#if CONFIG_LIBUKALLOC_IFSTATS

Another thing is that `<uk/preempt.h>` is used only under `#if
CONFIG_LIBUKALLOC_IFSTATS`,
so we can include it here too.

>

+#include <string.h>
> +
> +#if CONFIG_LIBUKALLOC_IFSTATS_GLOBAL
> +extern struct uk_alloc_stats _uk_alloc_stats_global;
> +#endif /* CONFIG_LIBUKALLOC_IFSTATS_GLOBAL */
> +
>
Just for consistency reasons, I don't know why the
`__uk_alloc_stats_refresh_minmax` function
has an extra  `_` in the prefix, compared to the other functions.

> +static inline void __uk_alloc_stats_refresh_minmax(struct uk_alloc_stats
> *stats)
> +{
> +       if (stats->cur_nb_allocs > stats->max_nb_allocs)
> +               stats->max_nb_allocs = stats->cur_nb_allocs;
> +
> +       if (stats->cur_mem_use > stats->max_mem_use)
> +               stats->max_mem_use = stats->cur_mem_use;
> +
> +       if (stats->last_alloc_size) {
> +               /* Force storing the minimum allocation size
> +                * with the first allocation request
> +                */
> +               if ((stats->tot_nb_allocs == 1)
> +                   || (stats->last_alloc_size < stats->min_alloc_size))
> +                       stats->min_alloc_size = stats->last_alloc_size;
> +               if (stats->last_alloc_size > stats->max_alloc_size)
> +                       stats->max_alloc_size = stats->last_alloc_size;
> +       }
> +}
> +
> +static inline void _uk_alloc_stats_count_alloc(struct uk_alloc_stats
> *stats,
> +                                              void *ptr, size_t size)
> +{
> +       /* TODO: SMP safety */
> +       uk_preempt_disable();
> +       if (likely(ptr)) {
> +               stats->tot_nb_allocs++;
> +
> +               stats->cur_nb_allocs++;
> +               stats->cur_mem_use += size;
> +               stats->last_alloc_size = size;
> +               __uk_alloc_stats_refresh_minmax(stats);
> +       } else {
> +               stats->nb_enomem++;
> +       }
> +       uk_preempt_enable();
> +}
> +
> +static inline void _uk_alloc_stats_count_free(struct uk_alloc_stats
> *stats,
> +                                             void *ptr, size_t size)
> +{
> +       uk_preempt_disable();
> +       if (likely(ptr)) {
> +               stats->tot_nb_frees++;
> +
> +               stats->cur_nb_allocs--;
> +               stats->cur_mem_use -= size;
> +               __uk_alloc_stats_refresh_minmax(stats);
> +       }
> +       uk_preempt_enable();
> +}
> +
> +/*
> + * The following macros should be used to instrument an allocator for
> + * statistics:
> + */
> +/* NOTE: If ptr is NULL, an ENOMEM event is counted */
> +#define uk_alloc_stats_count_alloc(a, ptr, size)                       \
> +       do {                                                            \
> +               _uk_alloc_stats_count_alloc(&((a)->_stats),             \
> +                                           (ptr), (size));             \
> +       } while (0)
> +#define uk_alloc_stats_count_palloc(a, ptr, num_pages)                 \
> +       uk_alloc_stats_count_alloc((a), (ptr),                          \
> +                                  ((__sz) (num_pages)) << __PAGE_SHIFT)
> +
> +#define uk_alloc_stats_count_enomem(a, size)                   \
> +       uk_alloc_stats_count_alloc((a), NULL, (size))
> +#define uk_alloc_stats_count_penomem(a, num_pages)                     \
> +       uk_alloc_stats_count_enomem((a),                                \
> +                                   ((__sz) (num_pages)) << __PAGE_SHIFT)
> +
> +/* Note: if ptr is NULL, nothing is counted */
> +#define uk_alloc_stats_count_free(a, ptr, freed_size)                  \
> +       do {                                                            \
> +               _uk_alloc_stats_count_free(&((a)->_stats),              \
> +                                          (ptr), (freed_size));        \
> +       } while (0)
> +#define uk_alloc_stats_count_pfree(a, ptr, num_pages)                  \
> +       uk_alloc_stats_count_free((a), (ptr),                           \
> +                                 ((__sz) (num_pages)) << __PAGE_SHIFT)
> +
> +#define uk_alloc_stats_reset(a)
>       \
> +       do {                                                            \
> +               memset(&(a)->_stats, 0, sizeof((a)->_stats));           \
> +       } while (0)
> +
> +#else /* !CONFIG_LIBUKALLOC_IFSTATS */
> +#define uk_alloc_stats_count_alloc(a, ptr, size) do {} while (0)
> +#define uk_alloc_stats_count_palloc(a, ptr, num_pages) do {} while (0)
> +#define uk_alloc_stats_count_enomem(a, size) do {} while (0)
> +#define uk_alloc_stats_count_penomem(a, num_pages) do {} while (0)
> +#define uk_alloc_stats_count_free(a, ptr, freed_size) do {} while (0)
> +#define uk_alloc_stats_count_pfree(a, ptr, num_pages) do {} while (0)
> +#define uk_alloc_stats_reset(a) do {} while (0)
> +#endif /* !CONFIG_LIBUKALLOC_IFSTATS */
> +
>  /* Shortcut for doing a registration of an allocator that does not
> implement
>   * palloc() or pfree()
>   */
> @@ -104,6 +209,7 @@ long uk_alloc_pmaxalloc_compat(struct uk_alloc *a);
>                                       ? uk_alloc_pmaxalloc_compat : NULL; \
>                 (a)->addmem         = (addmem_f);                       \
>                                                                         \
> +               uk_alloc_stats_reset((a));                              \
>                 uk_alloc_register((a));                                 \
>         } while (0)
>
> @@ -129,6 +235,7 @@ long uk_alloc_pmaxalloc_compat(struct uk_alloc *a);
>                                       ? uk_alloc_pmaxalloc_compat : NULL; \
>                 (a)->addmem         = (addmem_f);                       \
>                                                                         \
> +               uk_alloc_stats_reset((a));                              \
>                 uk_alloc_register((a));                                 \
>         } while (0)
>  #endif
> @@ -155,6 +262,7 @@ long uk_alloc_pmaxalloc_compat(struct uk_alloc *a);
>                                       ? uk_alloc_maxalloc_ifpages : NULL; \
>                 (a)->addmem         = (addmem_func);                    \
>                                                                         \
> +               uk_alloc_stats_reset((a));                              \
>                 uk_alloc_register((a));                                 \
>         } while (0)
>
> diff --git a/lib/ukalloc/stats.c b/lib/ukalloc/stats.c
> new file mode 100644
> index 00000000..26dcc405
> --- /dev/null
> +++ b/lib/ukalloc/stats.c
> @@ -0,0 +1,47 @@
> +/* SPDX-License-Identifier: BSD-3-Clause */
> +/*
> + * Authors: Simon Kuenzer <simon.kuenzer@neclab.eu>
> + *
> + * Copyright (c) 2020, NEC Laboratories Europe GmbH, NEC Corporation.
> + *                     All rights reserved.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + *
> + * 1. Redistributions of source code must retain the above copyright
> + *    notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + *    notice, this list of conditions and the following disclaimer in the
> + *    documentation and/or other materials provided with the distribution.
> + * 3. Neither the name of the copyright holder nor the names of its
> + *    contributors may be used to endorse or promote products derived from
> + *    this software without specific prior written permission.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> "AS IS"
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
> THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
> PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
> BE
> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
> BUSINESS
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> THE
> + * POSSIBILITY OF SUCH DAMAGE.
> + */
> +
> +#include <string.h>
> +#include <uk/preempt.h>
> +#include <uk/alloc_impl.h>
> +
> +void uk_alloc_stats(struct uk_alloc *a,
> +                   struct uk_alloc_stats *dst)
> +{
> +       UK_ASSERT(a);
> +       UK_ASSERT(dst);
> +
> +       uk_preempt_disable();
> +       memcpy(dst, &a->_stats, sizeof(*dst));
> +       uk_preempt_enable();
> +}
> --
> 2.20.1
>
>

--00000000000089a06805bca4962a
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr">I have 3 inline comments for this patch:<=
/div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">O=
n Fri, Nov 20, 2020 at 5:47 PM Simon Kuenzer &lt;<a href=3D"mailto:simon.ku=
enzer@neclab.eu">simon.kuenzer@neclab.eu</a>&gt; wrote:<br></div><blockquot=
e class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px s=
olid rgb(204,204,204);padding-left:1ex">This commit introduces an implement=
ation for the configuration option<br>
`LIBUKALLOC_IFSTATS`. When enabled, allocators keep allocation statistics,<=
br>
like number of current allocations, maximum memory usage due to<br>
allocations, or how often ENOMEM was returned.<br>
The statistics are kept on the `uk_alloc` struct while the instrumentation<=
br>
of an allocator is minimal: An allocator has only to be modified with<br>
the following macros:<br>
=C2=A0- `uk_alloc_stats_count_alloc()`, `uk_alloc_stats_count_palloc()`<br>
=C2=A0- `uk_alloc_stats_count_free()`, `uk_alloc_stats_count_pfree()`<br>
=C2=A0- `uk_alloc_stats_count_enomem()`, `uk_alloc_stats_count_penomem()`<b=
r>
Current statistics can be queried with `uk_alloc_stats()`.<br>
<br>
Signed-off-by: Simon Kuenzer &lt;<a href=3D"mailto:simon.kuenzer@neclab.eu"=
 target=3D"_blank">simon.kuenzer@neclab.eu</a>&gt;<br>
---<br>
=C2=A0lib/ukalloc/Config.uk=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0|=C2=A0 =C2=A06 ++<br>
=C2=A0lib/ukalloc/Makefile.uk=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0|=C2=A0 =C2=A01 +<br>
=C2=A0lib/ukalloc/<a href=3D"http://exportsyms.uk" rel=3D"noreferrer" targe=
t=3D"_blank">exportsyms.uk</a>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=
=A0 =C2=A01 +<br>
=C2=A0lib/ukalloc/include/uk/alloc.h=C2=A0 =C2=A0 =C2=A0 |=C2=A0 29 +++++++=
+<br>
=C2=A0lib/ukalloc/include/uk/alloc_impl.h | 108 +++++++++++++++++++++++++++=
+<br>
=C2=A0lib/ukalloc/stats.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0|=C2=A0 47 ++++++++++++<br>
=C2=A06 files changed, 192 insertions(+)<br>
=C2=A0create mode 100644 lib/ukalloc/stats.c<br>
<br>
diff --git a/lib/ukalloc/Config.uk b/lib/ukalloc/Config.uk<br>
index 59a6aa78..fc64a13b 100644<br>
--- a/lib/ukalloc/Config.uk<br>
+++ b/lib/ukalloc/Config.uk<br>
@@ -10,4 +10,10 @@ if LIBUKALLOC<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 default n<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 help<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 Provide helpers for allocators defining exclusively malloc and f=
ree<br>
+<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0config LIBUKALLOC_IFSTATS<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bool &quot;Allocato=
r statistics interface&quot;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0default n<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0help<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0Provide interfaces for querying allocator statistics.<br>
=C2=A0endif<br>
diff --git a/lib/ukalloc/Makefile.uk b/lib/ukalloc/Makefile.uk<br>
index 30636462..d56aabb6 100644<br>
--- a/lib/ukalloc/Makefile.uk<br>
+++ b/lib/ukalloc/Makefile.uk<br>
@@ -4,3 +4,4 @@ CINCLUDES-$(CONFIG_LIBUKALLOC)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 +=3D -I$(LIBUKALLOC_BASE)/include<br>
=C2=A0CXXINCLUDES-$(CONFIG_LIBUKALLOC)=C2=A0 =C2=A0 =C2=A0 =C2=A0+=3D -I$(L=
IBUKALLOC_BASE)/include<br>
<br>
=C2=A0LIBUKALLOC_SRCS-y +=3D $(LIBUKALLOC_BASE)/alloc.c<br>
+LIBUKALLOC_SRCS-$(CONFIG_LIBUKALLOC_IFSTATS) +=3D $(LIBUKALLOC_BASE)/stats=
.c<br>
diff --git a/lib/ukalloc/<a href=3D"http://exportsyms.uk" rel=3D"noreferrer=
" target=3D"_blank">exportsyms.uk</a> b/lib/ukalloc/<a href=3D"http://expor=
tsyms.uk" rel=3D"noreferrer" target=3D"_blank">exportsyms.uk</a><br>
index 7c25a70c..48de908c 100644<br>
--- a/lib/ukalloc/<a href=3D"http://exportsyms.uk" rel=3D"noreferrer" targe=
t=3D"_blank">exportsyms.uk</a><br>
+++ b/lib/ukalloc/<a href=3D"http://exportsyms.uk" rel=3D"noreferrer" targe=
t=3D"_blank">exportsyms.uk</a><br>
@@ -20,3 +20,4 @@ uk_alloc_pavail_compat<br>
=C2=A0uk_alloc_availmem_total<br>
=C2=A0uk_alloc_pavail_total<br>
=C2=A0_uk_alloc_head<br>
+uk_alloc_stats<br>
diff --git a/lib/ukalloc/include/uk/alloc.h b/lib/ukalloc/include/uk/alloc.=
h<br>
index fc19551e..59155d8c 100644<br>
--- a/lib/ukalloc/include/uk/alloc.h<br>
+++ b/lib/ukalloc/include/uk/alloc.h<br>
@@ -71,6 +71,24 @@ typedef ssize_t (*uk_alloc_availmem_func_t)<br>
=C2=A0typedef long=C2=A0 (*uk_alloc_pavail_func_t)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (struct uk_alloc *a=
);<br>
<br>
+#if CONFIG_LIBUKALLOC_IFSTATS<br></blockquote><div>Honestly I don&#39;t kn=
ow if there is a convention for this, but I found a bit confusing the</div>=
<div>struct `uk_alloc_stats` and the function with the same name, `uk_alloc=
_stats`.=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
+struct uk_alloc_stats {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t last_alloc_size; /* size of the last all=
ocation */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t max_alloc_size; /* biggest satisfied all=
ocation size */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t min_alloc_size; /* smallest satisfied al=
location size */<br>
+<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0uint64_t tot_nb_allocs; /* total number of sati=
sfied allocations */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0uint64_t tot_nb_frees;=C2=A0 /* total number of=
 satisfied free operations */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0uint64_t cur_nb_allocs; /* current number of ac=
tive allocations */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0uint64_t max_nb_allocs; /* maximum number of ac=
tive allocations */<br>
+<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t cur_mem_use; /* current used memory by a=
llocations */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t max_mem_use; /* maximum amount of memory=
 used by allocations */<br>
+<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0uint64_t nb_enomem; /* number of times failing =
allocation requests */<br>
+};<br>
+#endif /* CONFIG_LIBUKALLOC_IFSTATS */<br>
+<br>
=C2=A0struct uk_alloc {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* memory allocation */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 uk_alloc_malloc_func_t malloc;<br>
@@ -96,6 +114,10 @@ struct uk_alloc {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* optional interface */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 uk_alloc_addmem_func_t addmem;<br>
<br>
+#if CONFIG_LIBUKALLOC_IFSTATS<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0struct uk_alloc_stats _stats;<br>
+#endif<br>
+<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* internal */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct uk_alloc *next;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 int8_t priv[];<br>
@@ -283,6 +305,13 @@ size_t uk_alloc_availmem_total(void);<br>
<br>
=C2=A0unsigned long uk_alloc_pavail_total(void);<br>
<br>
+#if CONFIG_LIBUKALLOC_IFSTATS<br>
+/*<br>
+ * Memory allocation statistics<br>
+ */<br>
+void uk_alloc_stats(struct uk_alloc *a, struct uk_alloc_stats *dst);<br>
+#endif /* CONFIG_LIBUKALLOC_IFSTATS */<br>
+<br>
=C2=A0#ifdef __cplusplus<br>
=C2=A0}<br>
=C2=A0#endif<br>
diff --git a/lib/ukalloc/include/uk/alloc_impl.h b/lib/ukalloc/include/uk/a=
lloc_impl.h<br>
index 4811558e..9ef6df13 100644<br>
--- a/lib/ukalloc/include/uk/alloc_impl.h<br>
+++ b/lib/ukalloc/include/uk/alloc_impl.h<br>
@@ -40,6 +40,7 @@<br>
=C2=A0#define __UK_ALLOC_IMPL_H__<br>
<br>
=C2=A0#include &lt;uk/alloc.h&gt;<br>
+#include &lt;uk/preempt.h&gt;<br>
<br>
=C2=A0#ifdef __cplusplus<br>
=C2=A0extern &quot;C&quot; {<br>
@@ -81,6 +82,110 @@ void uk_pfree_compat(struct uk_alloc *a, void *ptr, uns=
igned long num_pages);<br>
=C2=A0long uk_alloc_pavail_compat(struct uk_alloc *a);<br>
=C2=A0long uk_alloc_pmaxalloc_compat(struct uk_alloc *a);<br>
<br>
+#if CONFIG_LIBUKALLOC_IFSTATS</blockquote><div>Another thing is that `&lt;=
uk/preempt.h&gt;` is used only under `#if CONFIG_LIBUKALLOC_IFSTATS`,</div>=
<div>so we can include it here too.=C2=A0</div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,2=
04);padding-left:1ex">=C2=A0</blockquote><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pa=
dding-left:1ex">
+#include &lt;string.h&gt;<br>
+<br>
+#if CONFIG_LIBUKALLOC_IFSTATS_GLOBAL<br>
+extern struct uk_alloc_stats _uk_alloc_stats_global;<br>
+#endif /* CONFIG_LIBUKALLOC_IFSTATS_GLOBAL */<br>
+<br></blockquote><div>Just for consistency reasons, I don&#39;t know why t=
he `__uk_alloc_stats_refresh_minmax` function</div><div>has an extra=C2=A0 =
`_` in the prefix, compared to the other functions.=C2=A0</div><blockquote =
class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px sol=
id rgb(204,204,204);padding-left:1ex">
+static inline void __uk_alloc_stats_refresh_minmax(struct uk_alloc_stats *=
stats)<br>
+{<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0if (stats-&gt;cur_nb_allocs &gt; stats-&gt;max_=
nb_allocs)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0stats-&gt;max_nb_al=
locs =3D stats-&gt;cur_nb_allocs;<br>
+<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0if (stats-&gt;cur_mem_use &gt; stats-&gt;max_me=
m_use)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0stats-&gt;max_mem_u=
se =3D stats-&gt;cur_mem_use;<br>
+<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0if (stats-&gt;last_alloc_size) {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Force storing th=
e minimum allocation size<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * with the first a=
llocation request<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if ((stats-&gt;tot_=
nb_allocs =3D=3D 1)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|| (s=
tats-&gt;last_alloc_size &lt; stats-&gt;min_alloc_size))<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0stats-&gt;min_alloc_size =3D stats-&gt;last_alloc_size;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (stats-&gt;last_=
alloc_size &gt; stats-&gt;max_alloc_size)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0stats-&gt;max_alloc_size =3D stats-&gt;last_alloc_size;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
+}<br>
+<br>
+static inline void _uk_alloc_stats_count_alloc(struct uk_alloc_stats *stat=
s,<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 void *ptr, size_t size)<br>
+{<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0/* TODO: SMP safety */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0uk_preempt_disable();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0if (likely(ptr)) {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0stats-&gt;tot_nb_al=
locs++;<br>
+<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0stats-&gt;cur_nb_al=
locs++;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0stats-&gt;cur_mem_u=
se +=3D size;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0stats-&gt;last_allo=
c_size =3D size;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__uk_alloc_stats_re=
fresh_minmax(stats);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0} else {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0stats-&gt;nb_enomem=
++;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0uk_preempt_enable();<br>
+}<br>
+<br>
+static inline void _uk_alloc_stats_count_free(struct uk_alloc_stats *stats=
,<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0void *ptr, size_t size)<br>
+{<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0uk_preempt_disable();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0if (likely(ptr)) {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0stats-&gt;tot_nb_fr=
ees++;<br>
+<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0stats-&gt;cur_nb_al=
locs--;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0stats-&gt;cur_mem_u=
se -=3D size;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__uk_alloc_stats_re=
fresh_minmax(stats);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0uk_preempt_enable();<br>
+}<br>
+<br>
+/*<br>
+ * The following macros should be used to instrument an allocator for<br>
+ * statistics:<br>
+ */<br>
+/* NOTE: If ptr is NULL, an ENOMEM event is counted */<br>
+#define uk_alloc_stats_count_alloc(a, ptr, size)=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0do {=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0_uk_alloc_stats_cou=
nt_alloc(&amp;((a)-&gt;_stats),=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0\<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0(ptr), (size));=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0} while (0)<br>
+#define uk_alloc_stats_count_palloc(a, ptr, num_pages)=C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0uk_alloc_stats_count_alloc((a), (ptr),=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ((__sz) (num_pages)) &lt;&lt;=
 __PAGE_SHIFT)<br>
+<br>
+#define uk_alloc_stats_count_enomem(a, size)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0uk_alloc_stats_count_alloc((a), NULL, (size))<b=
r>
+#define uk_alloc_stats_count_penomem(a, num_pages)=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0uk_alloc_stats_count_enomem((a),=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0((__sz) (num_pages)) &l=
t;&lt; __PAGE_SHIFT)<br>
+<br>
+/* Note: if ptr is NULL, nothing is counted */<br>
+#define uk_alloc_stats_count_free(a, ptr, freed_size)=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0do {=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0_uk_alloc_stats_cou=
nt_free(&amp;((a)-&gt;_stats),=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (=
ptr), (freed_size));=C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0} while (0)<br>
+#define uk_alloc_stats_count_pfree(a, ptr, num_pages)=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0uk_alloc_stats_count_free((a), (ptr),=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0\<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0((__sz) (num_pages)) &lt;&lt; =
__PAGE_SHIFT)<br>
+<br>
+#define uk_alloc_stats_reset(a)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0do {=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0memset(&amp;(a)-&gt=
;_stats, 0, sizeof((a)-&gt;_stats));=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0\<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0} while (0)<br>
+<br>
+#else /* !CONFIG_LIBUKALLOC_IFSTATS */<br>
+#define uk_alloc_stats_count_alloc(a, ptr, size) do {} while (0)<br>
+#define uk_alloc_stats_count_palloc(a, ptr, num_pages) do {} while (0)<br>
+#define uk_alloc_stats_count_enomem(a, size) do {} while (0)<br>
+#define uk_alloc_stats_count_penomem(a, num_pages) do {} while (0)<br>
+#define uk_alloc_stats_count_free(a, ptr, freed_size) do {} while (0)<br>
+#define uk_alloc_stats_count_pfree(a, ptr, num_pages) do {} while (0)<br>
+#define uk_alloc_stats_reset(a) do {} while (0)<br>
+#endif /* !CONFIG_LIBUKALLOC_IFSTATS */<br>
+<br>
=C2=A0/* Shortcut for doing a registration of an allocator that does not im=
plement<br>
=C2=A0 * palloc() or pfree()<br>
=C2=A0 */<br>
@@ -104,6 +209,7 @@ long uk_alloc_pmaxalloc_compat(struct uk_alloc *a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ? uk_alloc_pmax=
alloc_compat : NULL; \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (a)-&gt;addmem=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=3D (addmem_f);=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0uk_alloc_stats_rese=
t((a));=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 uk_alloc_register((=
a));=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 } while (0)<br>
<br>
@@ -129,6 +235,7 @@ long uk_alloc_pmaxalloc_compat(struct uk_alloc *a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ? uk_alloc_pmax=
alloc_compat : NULL; \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (a)-&gt;addmem=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=3D (addmem_f);=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0uk_alloc_stats_rese=
t((a));=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 uk_alloc_register((=
a));=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 } while (0)<br>
=C2=A0#endif<br>
@@ -155,6 +262,7 @@ long uk_alloc_pmaxalloc_compat(struct uk_alloc *a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ? uk_alloc_maxa=
lloc_ifpages : NULL; \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (a)-&gt;addmem=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=3D (addmem_func);=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0uk_alloc_stats_rese=
t((a));=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 uk_alloc_register((=
a));=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 } while (0)<br>
<br>
diff --git a/lib/ukalloc/stats.c b/lib/ukalloc/stats.c<br>
new file mode 100644<br>
index 00000000..26dcc405<br>
--- /dev/null<br>
+++ b/lib/ukalloc/stats.c<br>
@@ -0,0 +1,47 @@<br>
+/* SPDX-License-Identifier: BSD-3-Clause */<br>
+/*<br>
+ * Authors: Simon Kuenzer &lt;<a href=3D"mailto:simon.kuenzer@neclab.eu" t=
arget=3D"_blank">simon.kuenzer@neclab.eu</a>&gt;<br>
+ *<br>
+ * Copyright (c) 2020, NEC Laboratories Europe GmbH, NEC Corporation.<br>
+ *=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0All rights reserved.<br>
+ *<br>
+ * Redistribution and use in source and binary forms, with or without<br>
+ * modification, are permitted provided that the following conditions<br>
+ * are met:<br>
+ *<br>
+ * 1. Redistributions of source code must retain the above copyright<br>
+ *=C2=A0 =C2=A0 notice, this list of conditions and the following disclaim=
er.<br>
+ * 2. Redistributions in binary form must reproduce the above copyright<br=
>
+ *=C2=A0 =C2=A0 notice, this list of conditions and the following disclaim=
er in the<br>
+ *=C2=A0 =C2=A0 documentation and/or other materials provided with the dis=
tribution.<br>
+ * 3. Neither the name of the copyright holder nor the names of its<br>
+ *=C2=A0 =C2=A0 contributors may be used to endorse or promote products de=
rived from<br>
+ *=C2=A0 =C2=A0 this software without specific prior written permission.<b=
r>
+ *<br>
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &qu=
ot;AS IS&quot;<br>
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, T=
HE<br>
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURP=
OSE<br>
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS =
BE<br>
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR<br>
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF<br=
>
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINES=
S<br>
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN=
<br>
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)=
<br>
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF =
THE<br>
+ * POSSIBILITY OF SUCH DAMAGE.<br>
+ */<br>
+<br>
+#include &lt;string.h&gt;<br>
+#include &lt;uk/preempt.h&gt;<br>
+#include &lt;uk/alloc_impl.h&gt;<br>
+<br>
+void uk_alloc_stats(struct uk_alloc *a,<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struc=
t uk_alloc_stats *dst)<br>
+{<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0UK_ASSERT(a);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0UK_ASSERT(dst);<br>
+<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0uk_preempt_disable();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0memcpy(dst, &amp;a-&gt;_stats, sizeof(*dst));<b=
r>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0uk_preempt_enable();<br>
+}<br>
-- <br>
2.20.1<br>
<br>
</blockquote></div></div>

--00000000000089a06805bca4962a--


From minios-devel-bounces@lists.xenproject.org Wed Mar 03 16:46:42 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 03 Mar 2021 16:46:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.92921.175244 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lHUe2-00035G-K4; Wed, 03 Mar 2021 16:46:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 92921.175244; Wed, 03 Mar 2021 16:46:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lHUe2-000359-GP; Wed, 03 Mar 2021 16:46:42 +0000
Received: by outflank-mailman (input) for mailman id 92921;
 Wed, 03 Mar 2021 16:46:40 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gerj=IB=gmail.com=lrbarbulescu@srs-us1.protection.inumbo.net>)
 id 1lHUe0-000350-Ph
 for minios-devel@lists.xen.org; Wed, 03 Mar 2021 16:46:40 +0000
Received: from mail-lf1-x130.google.com (unknown [2a00:1450:4864:20::130])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 8961db76-1280-4dc8-aa0b-8dfcacc22c78;
 Wed, 03 Mar 2021 16:46:35 +0000 (UTC)
Received: by mail-lf1-x130.google.com with SMTP id d3so38127794lfg.10
 for <minios-devel@lists.xen.org>; Wed, 03 Mar 2021 08:46:35 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8961db76-1280-4dc8-aa0b-8dfcacc22c78
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=LLJJzyvzfFRWWyUVKAFj9hj+mntKssUkiWod/TGGRYY=;
        b=nfy7jIxB4MF+IrqeFVPu1DTaEUQYguVhCAG3GfYgBQeca/EEymJ37NGtMUIE4gFvSc
         LLITYePcDq63y77z0Ff9PYCZyaQCTGKJw/u1h4Nm+sSzBbd3Iv29xiMI/NwRiORQzEVX
         tz9bRi8frAGMIVwpoNjI+kIMmtsqxc4OYflt5e61bBfsakIFgyKyIl7suZVkX93GbkCM
         1edPTpd7XTILzYv8EslwShtJaKJx2WhZ/gxnVO04IjO9JleCz0YUyi/abWMNsg0bcF0c
         hrdK97hsn1CH70JSw7tPzDBi/cBowY7X/u0CILi/HjK3vGdRaNgQpcXEfLQkOvKHk168
         AM+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=LLJJzyvzfFRWWyUVKAFj9hj+mntKssUkiWod/TGGRYY=;
        b=aJ05rbqfxL83SKLLnyx7PSMjoRmXlT/WeiFQ+DgPJ1uCfP8NStk6a0GJx9UfbfL4j5
         A8EwazuOWY5h6/7XHa7Az6hCKIcO+0EEu8xRaStFlGlRqFpFxav8cV00/ZGr0SdWtUft
         FvXwusoC47vhEFh7T35lAeY4m3hQIsAKGzhsAoK5efVipWUx5uq1ExCtr3YcrRsgA83x
         5gefKHio7TdwKtDP0RN+pQgsEp1s7Ks7PmG7CZlP+iXhVZ3I5GnPihj4z4SbqL9DXFfJ
         eDf/WjCOFxCkcTLxt63k+CCeDdmd291o2fEhZtZn2++fzGBo5GgtcycOGQjGOeVM/Mcv
         xQNQ==
X-Gm-Message-State: AOAM533oT9s6GZCg/y9ZYHeqIaaOBCOG6wJ+D57f9s9I9oudwPNQOdQf
	X6iDIzeBtpHbXbEpCCg1SacA7/FHDQm90Jbdf/8=
X-Google-Smtp-Source: ABdhPJz+pXZTMGmaJXYweLs0MrqzHgPFnt9LWHqPZ+WNO7gI9ACasLW6r3ufTpK1nJVduofrD48Xsy5jp8sJJmcWc+A=
X-Received: by 2002:a05:6512:2026:: with SMTP id s6mr11808331lfs.43.1614789994063;
 Wed, 03 Mar 2021 08:46:34 -0800 (PST)
MIME-Version: 1.0
References: <20201120154612.27579-1-simon.kuenzer@neclab.eu> <20201120154612.27579-18-simon.kuenzer@neclab.eu>
In-Reply-To: <20201120154612.27579-18-simon.kuenzer@neclab.eu>
From: Laurentiu Barbulescu <lrbarbulescu@gmail.com>
Date: Wed, 3 Mar 2021 18:46:17 +0200
Message-ID: <CAMpNDKkCb5if1f7TCQi9i+kwazB=iwn2XkuMLxPH9_xXPTEKVQ@mail.gmail.com>
Subject: Re: [UNIKRAFT PATCH 17/18] lib/ukalloc: Use Unikraft internal types
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Cc: minios-devel@lists.xen.org, Felipe Huici <felipe.huici@neclab.eu>, 
	Sharan Santhanam <sharan.santhanam@neclab.eu>
Content-Type: multipart/alternative; boundary="000000000000fbadab05bca49762"

--000000000000fbadab05bca49762
Content-Type: text/plain; charset="UTF-8"

I have just an inline comment for this patch:

On Fri, Nov 20, 2020 at 5:49 PM Simon Kuenzer <simon.kuenzer@neclab.eu>
wrote:

> Use Unikraft-internal types for the API headers in order to have minimal
> dependency to libc definitions. This is done so that libcs can integrate
> `<uk/alloc.h> directly with their header files without breaking the
> declaration set of libc headers.
> This is done towards receiving per-library statistics
> (see the following commit).
>
> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
> ---
>  lib/ukalloc/alloc.c                 | 140 ++++++++++++++--------------
>  lib/ukalloc/include/uk/alloc.h      |  88 +++++++++--------
>  lib/ukalloc/include/uk/alloc_impl.h |  26 +++---
>  lib/ukalloc/libstats.c              |  75 +++++++--------
>  lib/ukallocregion/region.c          |   3 +
>  plat/common/include/pci/pci_bus.h   |   2 +
>  plat/common/memory.c                |   2 +
>  plat/xen/gnttab.c                   |   1 +
>  plat/xen/memory.c                   |   2 +
>  plat/xen/x86/gnttab.c               |   1 +
>  10 files changed, 175 insertions(+), 165 deletions(-)
>
> diff --git a/lib/ukalloc/alloc.c b/lib/ukalloc/alloc.c
> index 1bf596b0..8401124d 100644
> --- a/lib/ukalloc/alloc.c
> +++ b/lib/ukalloc/alloc.c
> @@ -53,14 +53,14 @@ int uk_alloc_register(struct uk_alloc *a)
>
>         if (!_uk_alloc_head) {
>                 _uk_alloc_head = a;
> -               a->next = NULL;
> +               a->next = __NULL;
>                 return 0;
>         }
>
>         while (this && this->next)
>                 this = this->next;
>         this->next = a;
> -       a->next = NULL;
> +       a->next = __NULL;
>         return 0;
>  }
>
> @@ -81,7 +81,7 @@ UK_CTASSERT(!(sizeof(struct metadata_ifpages) >
> METADATA_IFPAGES_SIZE_POW2));
>
>  static struct metadata_ifpages *uk_get_metadata(const void *ptr)
>  {
> -       uintptr_t metadata;
> +       __uptr metadata;
>
>         /* a ptr less or equal to page size would mean that the actual
> allocated
>          * object started at 0x0, so it was NULL.
> @@ -89,11 +89,11 @@ static struct metadata_ifpages *uk_get_metadata(const
> void *ptr)
>          * also imply that the actual allocated object started at 0x0
> because
>          * we need space to store metadata.
>          */
> -       UK_ASSERT((uintptr_t) ptr >= __PAGE_SIZE +
> +       UK_ASSERT((__uptr) ptr >= __PAGE_SIZE +
>                   sizeof(struct metadata_ifpages));
>
> -       metadata = ALIGN_DOWN((uintptr_t) ptr, (uintptr_t) __PAGE_SIZE);
> -       if (metadata == (uintptr_t) ptr) {
> +       metadata = ALIGN_DOWN((__uptr) ptr, (__uptr) __PAGE_SIZE);
> +       if (metadata == (__uptr) ptr) {
>                 /* special case: the memory was page-aligned.
>                  * In this case the metadata lies at the start of the
>                  * previous page, with the rest of that page unused.
> @@ -104,12 +104,12 @@ static struct metadata_ifpages
> *uk_get_metadata(const void *ptr)
>         return (struct metadata_ifpages *) metadata;
>  }
>
> -static size_t uk_getmallocsize(const void *ptr)
> +static __sz uk_getmallocsize(const void *ptr)
>  {
>         struct metadata_ifpages *metadata = uk_get_metadata(ptr);
>
> -       return (size_t)metadata->base + (size_t)(metadata->num_pages) *
> -              __PAGE_SIZE - (size_t)ptr;
> +       return (__sz)metadata->base + (__sz)(metadata->num_pages) *
> +              __PAGE_SIZE - (__sz)ptr;
>  }
>
>  /* This is a very simple, naive implementation of malloc.
> @@ -124,23 +124,23 @@ static size_t uk_getmallocsize(const void *ptr)
>   * locking support yet. Eventually, this should probably be replaced by
>   * something better.
>   */
> -void *uk_malloc_ifpages(struct uk_alloc *a, size_t size)
> +void *uk_malloc_ifpages(struct uk_alloc *a, __sz size)
>  {
> -       uintptr_t intptr;
> +       __uptr intptr;
>         unsigned long num_pages;
>         struct metadata_ifpages *metadata;
> -       size_t realsize = sizeof(*metadata) + size;
> +       __sz realsize = sizeof(*metadata) + size;
>
>         UK_ASSERT(a);
>         /* check for invalid size and overflow */
>         if (!size || realsize < size)
> -               return NULL;
> +               return __NULL;
>
>         num_pages = size_to_num_pages(realsize);
> -       intptr = (uintptr_t)uk_palloc(a, num_pages);
> +       intptr = (__uptr)uk_palloc(a, num_pages);
>
>         if (!intptr)
> -               return NULL;
> +               return __NULL;
>
>         metadata = (struct metadata_ifpages *) intptr;
>         metadata->num_pages = num_pages;
> @@ -159,15 +159,15 @@ void uk_free_ifpages(struct uk_alloc *a, void *ptr)
>
>         metadata = uk_get_metadata(ptr);
>
> -       UK_ASSERT(metadata->base != NULL);
> +       UK_ASSERT(metadata->base != __NULL);
>         UK_ASSERT(metadata->num_pages != 0);
>         uk_pfree(a, metadata->base, metadata->num_pages);
>  }
>
> -void *uk_realloc_ifpages(struct uk_alloc *a, void *ptr, size_t size)
> +void *uk_realloc_ifpages(struct uk_alloc *a, void *ptr, __sz size)
>  {
>         void *retptr;
> -       size_t mallocsize;
> +       __sz mallocsize;
>
>         UK_ASSERT(a);
>         if (!ptr)
> @@ -175,12 +175,12 @@ void *uk_realloc_ifpages(struct uk_alloc *a, void
> *ptr, size_t size)
>
>         if (ptr && !size) {
>                 uk_free_ifpages(a, ptr);
> -               return NULL;
> +               return __NULL;
>         }
>
>         retptr = uk_malloc_ifpages(a, size);
>         if (!retptr)
> -               return NULL;
> +               return __NULL;
>
>         mallocsize = uk_getmallocsize(ptr);
>
> @@ -194,12 +194,12 @@ void *uk_realloc_ifpages(struct uk_alloc *a, void
> *ptr, size_t size)
>  }
>
>  int uk_posix_memalign_ifpages(struct uk_alloc *a,
> -                               void **memptr, size_t align, size_t size)
> +                               void **memptr, __sz align, __sz size)
>  {
>         struct metadata_ifpages *metadata;
>         unsigned long num_pages;
> -       uintptr_t intptr;
> -       size_t realsize, padding;
> +       __uptr intptr;
> +       __sz realsize, padding;
>
>         UK_ASSERT(a);
>         if (((align - 1) & align) != 0
> @@ -252,18 +252,18 @@ int uk_posix_memalign_ifpages(struct uk_alloc *a,
>                 return EINVAL;
>
>         num_pages = size_to_num_pages(realsize);
> -       intptr = (uintptr_t) uk_palloc(a, num_pages);
> +       intptr = (__uptr) uk_palloc(a, num_pages);
>
>         if (!intptr)
>                 return ENOMEM;
>
>         *memptr = (void *) ALIGN_UP(intptr + sizeof(*metadata),
> -                                   (uintptr_t) align);
> +                                   (__uptr) align);
>
>         metadata = uk_get_metadata(*memptr);
>
>         /* check for underflow (should not happen) */
> -       UK_ASSERT(intptr <= (uintptr_t) metadata);
> +       UK_ASSERT(intptr <= (__uptr) metadata);
>
>         metadata->num_pages = num_pages;
>         metadata->base = (void *) intptr;
> @@ -271,7 +271,7 @@ int uk_posix_memalign_ifpages(struct uk_alloc *a,
>         return 0;
>  }
>
> -ssize_t uk_alloc_maxalloc_ifpages(struct uk_alloc *a)
> +__ssz uk_alloc_maxalloc_ifpages(struct uk_alloc *a)
>  {
>         long num_pages;
>
> @@ -279,12 +279,12 @@ ssize_t uk_alloc_maxalloc_ifpages(struct uk_alloc *a)
>
>         num_pages = uk_alloc_pmaxalloc(a);
>         if (num_pages < 0)
> -               return (ssize_t) num_pages;
> +               return (__ssz) num_pages;
>
> -       return ((ssize_t) num_pages) << __PAGE_SHIFT;
> +       return ((__ssz) num_pages) << __PAGE_SHIFT;
>  }
>
> -ssize_t uk_alloc_availmem_ifpages(struct uk_alloc *a)
> +__ssz uk_alloc_availmem_ifpages(struct uk_alloc *a)
>  {
>         long num_pages;
>
> @@ -292,15 +292,15 @@ ssize_t uk_alloc_availmem_ifpages(struct uk_alloc *a)
>
>         num_pages = uk_alloc_pavail(a);
>         if (num_pages < 0)
> -               return (ssize_t) num_pages;
> +               return (__ssz) num_pages;
>
> -       return ((ssize_t) num_pages) << __PAGE_SHIFT;
> +       return ((__ssz) num_pages) << __PAGE_SHIFT;
>  }
>
>  #if CONFIG_LIBUKALLOC_IFMALLOC
>
>  struct metadata_ifmalloc {
> -       size_t  size;
> +       __sz    size;
>         void    *base;
>  };
>
> @@ -309,16 +309,16 @@ UK_CTASSERT(!(sizeof(struct metadata_ifmalloc) >
> METADATA_IFMALLOC_SIZE_POW2));
>
>  static struct metadata_ifmalloc *uk_get_metadata_ifmalloc(const void *ptr)
>  {
> -       return (struct metadata_ifmalloc *)((uintptr_t) ptr -
> +       return (struct metadata_ifmalloc *)((__uptr) ptr -
>                 METADATA_IFMALLOC_SIZE_POW2);
>  }
>
> -static size_t uk_getmallocsize_ifmalloc(const void *ptr)
> +static __sz uk_getmallocsize_ifmalloc(const void *ptr)
>  {
>         struct metadata_ifmalloc *metadata = uk_get_metadata_ifmalloc(ptr);
>
> -       return (size_t) ((uintptr_t) metadata->base + metadata->size -
> -                        (uintptr_t) ptr);
> +       return (__sz) ((__uptr) metadata->base + metadata->size -
> +                        (__uptr) ptr);
>  }
>
>  void uk_free_ifmalloc(struct uk_alloc *a, void *ptr)
> @@ -334,10 +334,10 @@ void uk_free_ifmalloc(struct uk_alloc *a, void *ptr)
>         a->free_backend(a, metadata->base);
>  }
>
> -void *uk_malloc_ifmalloc(struct uk_alloc *a, size_t size)
> +void *uk_malloc_ifmalloc(struct uk_alloc *a, __sz size)
>  {
>         struct metadata_ifmalloc *metadata;
> -       size_t realsize = size + METADATA_IFMALLOC_SIZE_POW2;
> +       __sz realsize = size + METADATA_IFMALLOC_SIZE_POW2;
>         void *ptr;
>
>         UK_ASSERT(a);
> @@ -345,23 +345,23 @@ void *uk_malloc_ifmalloc(struct uk_alloc *a, size_t
> size)
>
>         /* check for overflow */
>         if (unlikely(realsize < size))
> -               return NULL;
> +               return __NULL;
>
>         ptr = a->malloc_backend(a, realsize);
>         if (!ptr)
> -               return NULL;
> +               return __NULL;
>
>         metadata = ptr;
>         metadata->size = realsize;
>         metadata->base = ptr;
>
> -       return (void *) ((uintptr_t) ptr + METADATA_IFMALLOC_SIZE_POW2);
> +       return (void *) ((__uptr) ptr + METADATA_IFMALLOC_SIZE_POW2);
>  }
>
> -void *uk_realloc_ifmalloc(struct uk_alloc *a, void *ptr, size_t size)
> +void *uk_realloc_ifmalloc(struct uk_alloc *a, void *ptr, __sz size)
>  {
>         void *retptr;
> -       size_t mallocsize;
> +       __sz mallocsize;
>
>         UK_ASSERT(a);
>         if (!ptr)
> @@ -369,12 +369,12 @@ void *uk_realloc_ifmalloc(struct uk_alloc *a, void
> *ptr, size_t size)
>
>         if (ptr && !size) {
>                 uk_free_ifmalloc(a, ptr);
> -               return NULL;
> +               return __NULL;
>         }
>
>         retptr = uk_malloc_ifmalloc(a, size);
>         if (!retptr)
> -               return NULL;
> +               return __NULL;
>
>         mallocsize = uk_getmallocsize_ifmalloc(ptr);
>
> @@ -385,11 +385,11 @@ void *uk_realloc_ifmalloc(struct uk_alloc *a, void
> *ptr, size_t size)
>  }
>
>  int uk_posix_memalign_ifmalloc(struct uk_alloc *a,
> -                                    void **memptr, size_t align, size_t
> size)
> +                                    void **memptr, __sz align, __sz size)
>  {
>         struct metadata_ifmalloc *metadata;
> -       size_t realsize, padding;
> -       uintptr_t intptr;
> +       __sz realsize, padding;
> +       __uptr intptr;
>
>         UK_ASSERT(a);
>         if (((align - 1) & align) != 0
> @@ -417,18 +417,18 @@ int uk_posix_memalign_ifmalloc(struct uk_alloc *a,
>         if (unlikely(realsize < size))
>                 return ENOMEM;
>
> -       intptr = (uintptr_t) a->malloc_backend(a, realsize);
> +       intptr = (__uptr) a->malloc_backend(a, realsize);
>
>         if (!intptr)
>                 return ENOMEM;
>
>         *memptr = (void *) ALIGN_UP(intptr + METADATA_IFMALLOC_SIZE_POW2,
> -                                   (uintptr_t) align);
> +                                   (__uptr) align);
>
>         metadata = uk_get_metadata_ifmalloc(*memptr);
>
>         /* check for underflow */
> -       UK_ASSERT(intptr <= (uintptr_t) metadata);
> +       UK_ASSERT(intptr <= (__uptr) metadata);
>
>         metadata->size = realsize;
>         metadata->base = (void *) intptr;
> @@ -456,16 +456,16 @@ void *uk_palloc_compat(struct uk_alloc *a, unsigned
> long num_pages)
>         UK_ASSERT(a);
>
>         /* check for overflow */
> -       if (num_pages > (~(size_t)0)/__PAGE_SIZE)
> -               return NULL;
> +       if (num_pages > (~(__sz)0)/__PAGE_SIZE)
> +               return __NULL;
>
>         if (uk_posix_memalign(a, &ptr, __PAGE_SIZE, num_pages *
> __PAGE_SIZE))
> -               return NULL;
> +               return __NULL;
>
>         return ptr;
>  }
>
> -void *uk_realloc_compat(struct uk_alloc *a, void *ptr, size_t size)
> +void *uk_realloc_compat(struct uk_alloc *a, void *ptr, __sz size)
>  {
>         void *retptr;
>
> @@ -475,12 +475,12 @@ void *uk_realloc_compat(struct uk_alloc *a, void
> *ptr, size_t size)
>
>         if (ptr && !size) {
>                 uk_free(a, ptr);
> -               return NULL;
> +               return __NULL;
>         }
>
>         retptr = uk_malloc(a, size);
>         if (!retptr)
> -               return NULL;
> +               return __NULL;
>
>         memcpy(retptr, ptr, size);
>
> @@ -488,38 +488,38 @@ void *uk_realloc_compat(struct uk_alloc *a, void
> *ptr, size_t size)
>         return retptr;
>  }
>
> -void *uk_calloc_compat(struct uk_alloc *a, size_t nmemb, size_t size)
> +void *uk_calloc_compat(struct uk_alloc *a, __sz nmemb, __sz size)
>  {
>         void *ptr;
> -       size_t tlen = nmemb * size;
> +       __sz tlen = nmemb * size;
>
>         /* check for overflow */
> -       if (nmemb > (~(size_t)0)/size)
> -               return NULL;
> +       if (nmemb > (~(__sz)0)/size)
> +               return __NULL;
>
>         UK_ASSERT(a);
>         ptr = uk_malloc(a, tlen);
>         if (!ptr)
> -               return NULL;
> +               return __NULL;
>
>         memset(ptr, 0, tlen);
>         return ptr;
>  }
>
> -void *uk_memalign_compat(struct uk_alloc *a, size_t align, size_t size)
> +void *uk_memalign_compat(struct uk_alloc *a, __sz align, __sz size)
>  {
>         void *ptr;
>
>         UK_ASSERT(a);
>         if (uk_posix_memalign(a, &ptr, align, size) != 0)
> -               return NULL;
> +               return __NULL;
>
>         return ptr;
>  }
>
>  long uk_alloc_pmaxalloc_compat(struct uk_alloc *a)
>  {
> -       ssize_t mem;
> +       __ssz mem;
>
>         UK_ASSERT(a);
>
> @@ -532,7 +532,7 @@ long uk_alloc_pmaxalloc_compat(struct uk_alloc *a)
>
>  long uk_alloc_pavail_compat(struct uk_alloc *a)
>  {
> -       ssize_t mem;
> +       __ssz mem;
>
>         UK_ASSERT(a);
>
> @@ -543,11 +543,11 @@ long uk_alloc_pavail_compat(struct uk_alloc *a)
>         return (long) (mem >> __PAGE_SHIFT);
>  }
>
> -size_t uk_alloc_availmem_total(void)
> +__sz uk_alloc_availmem_total(void)
>  {
>         struct uk_alloc *a;
> -       ssize_t availmem;
> -       size_t total;
> +       __ssz availmem;
> +       __sz total;
>
>         total = 0;
>         uk_alloc_foreach(a) {
> diff --git a/lib/ukalloc/include/uk/alloc.h
> b/lib/ukalloc/include/uk/alloc.h
> index 5392fcfe..5c6a1188 100644
> --- a/lib/ukalloc/include/uk/alloc.h
> +++ b/lib/ukalloc/include/uk/alloc.h
> @@ -34,13 +34,11 @@
>  #ifndef __UK_ALLOC_H__
>  #define __UK_ALLOC_H__
>
> -#include <stddef.h>
> -#include <stdint.h>
> -#include <sys/types.h>
> -#include <errno.h>
> +#include <uk/arch/types.h>
>  #include <uk/config.h>
>  #include <uk/assert.h>
>  #include <uk/essentials.h>
> +#include <errno.h>
>
>  #ifdef __cplusplus
>  extern "C" {
> @@ -49,15 +47,15 @@ extern "C" {
>  struct uk_alloc;
>
>  typedef void* (*uk_alloc_malloc_func_t)
> -               (struct uk_alloc *a, size_t size);
> +               (struct uk_alloc *a, __sz size);
>  typedef void* (*uk_alloc_calloc_func_t)
> -               (struct uk_alloc *a, size_t nmemb, size_t size);
> +               (struct uk_alloc *a, __sz nmemb, __sz size);
>  typedef int   (*uk_alloc_posix_memalign_func_t)
> -               (struct uk_alloc *a, void **memptr, size_t align, size_t
> size);
> +               (struct uk_alloc *a, void **memptr, __sz align, __sz size);
>  typedef void* (*uk_alloc_memalign_func_t)
> -               (struct uk_alloc *a, size_t align, size_t size);
> +               (struct uk_alloc *a, __sz align, __sz size);
>  typedef void* (*uk_alloc_realloc_func_t)
> -               (struct uk_alloc *a, void *ptr, size_t size);
> +               (struct uk_alloc *a, void *ptr, __sz size);
>  typedef void  (*uk_alloc_free_func_t)
>                 (struct uk_alloc *a, void *ptr);
>  typedef void* (*uk_alloc_palloc_func_t)
> @@ -65,27 +63,27 @@ typedef void* (*uk_alloc_palloc_func_t)
>  typedef void  (*uk_alloc_pfree_func_t)
>                 (struct uk_alloc *a, void *ptr, unsigned long num_pages);
>  typedef int   (*uk_alloc_addmem_func_t)
> -               (struct uk_alloc *a, void *base, size_t size);
> -typedef ssize_t (*uk_alloc_availmem_func_t)
> +               (struct uk_alloc *a, void *base, __sz size);
> +typedef __ssz (*uk_alloc_availmem_func_t)
>                 (struct uk_alloc *a);
>  typedef long  (*uk_alloc_pavail_func_t)
>                 (struct uk_alloc *a);
>
>  #if CONFIG_LIBUKALLOC_IFSTATS
>  struct uk_alloc_stats {
> -       size_t last_alloc_size; /* size of the last allocation */
> -       size_t max_alloc_size; /* biggest satisfied allocation size */
> -       size_t min_alloc_size; /* smallest satisfied allocation size */
> +       __sz last_alloc_size; /* size of the last allocation */
> +       __sz max_alloc_size; /* biggest satisfied allocation size */
> +       __sz min_alloc_size; /* smallest satisfied allocation size */
>
> -       uint64_t tot_nb_allocs; /* total number of satisfied allocations */
> -       uint64_t tot_nb_frees;  /* total number of satisfied free
> operations */
> -       int64_t cur_nb_allocs; /* current number of active allocations */
> -       int64_t max_nb_allocs; /* maximum number of active allocations */
> +       __u64 tot_nb_allocs; /* total number of satisfied allocations */
> +       __u64 tot_nb_frees;  /* total number of satisfied free operations
> */
> +       __s64 cur_nb_allocs; /* current number of active allocations */
> +       __s64 max_nb_allocs; /* maximum number of active allocations */
>
> -       ssize_t cur_mem_use; /* current used memory by allocations */
> -       ssize_t max_mem_use; /* maximum amount of memory used by
> allocations */
> +       __ssz cur_mem_use; /* current used memory by allocations */
> +       __ssz max_mem_use; /* maximum amount of memory used by allocations
> */
>
> -       uint64_t nb_enomem; /* number of times failing allocation requests
> */
> +       __u64 nb_enomem; /* number of times failing allocation requests */
>  };
>  #endif /* CONFIG_LIBUKALLOC_IFSTATS */
>
> @@ -120,7 +118,7 @@ struct uk_alloc {
>
>         /* internal */
>         struct uk_alloc *next;
> -       int8_t priv[];
> +       __u8 priv[];
>  };
>
>  extern struct uk_alloc *_uk_alloc_head;
> @@ -128,7 +126,7 @@ extern struct uk_alloc *_uk_alloc_head;
>  /* Iterate over all registered allocators */
>  #define uk_alloc_foreach(iter)                 \
>         for (iter = _uk_alloc_head;             \
> -            iter != NULL;                      \
> +            iter != __NULL;                    \
>              iter = iter->next)
>
>  #if CONFIG_LIBUKALLOC_IFSTATS_PERLIB
> @@ -141,34 +139,34 @@ static inline struct uk_alloc
> *uk_alloc_get_default(void)
>  #endif /* !CONFIG_LIBUKALLOC_IFSTATS_PERLIB */
>
>  /* wrapper functions */
> -static inline void *uk_do_malloc(struct uk_alloc *a, size_t size)
> +static inline void *uk_do_malloc(struct uk_alloc *a, __sz size)
>  {
>         UK_ASSERT(a);
>         return a->malloc(a, size);
>  }
>
> -static inline void *uk_malloc(struct uk_alloc *a, size_t size)
> +static inline void *uk_malloc(struct uk_alloc *a, __sz size)
>  {
>         if (unlikely(!a)) {
>                 errno = ENOMEM;
> -               return NULL;
> +               return __NULL;
>         }
>         return uk_do_malloc(a, size);
>  }
>
>  static inline void *uk_do_calloc(struct uk_alloc *a,
> -                                size_t nmemb, size_t size)
> +                                __sz nmemb, __sz size)
>  {
>         UK_ASSERT(a);
>         return a->calloc(a, nmemb, size);
>  }
>
>  static inline void *uk_calloc(struct uk_alloc *a,
> -                             size_t nmemb, size_t size)
> +                             __sz nmemb, __sz size)
>  {
>         if (unlikely(!a)) {
>                 errno = ENOMEM;
> -               return NULL;
> +               return __NULL;
>         }
>         return uk_do_calloc(a, nmemb, size);
>  }
> @@ -177,50 +175,50 @@ static inline void *uk_calloc(struct uk_alloc *a,
>  #define uk_zalloc(a, size) uk_calloc((a), 1, (size))
>
>  static inline void *uk_do_realloc(struct uk_alloc *a,
> -                                 void *ptr, size_t size)
> +                                 void *ptr, __sz size)
>  {
>         UK_ASSERT(a);
>         return a->realloc(a, ptr, size);
>  }
>
> -static inline void *uk_realloc(struct uk_alloc *a, void *ptr, size_t size)
> +static inline void *uk_realloc(struct uk_alloc *a, void *ptr, __sz size)
>  {
>         if (unlikely(!a)) {
>                 errno = ENOMEM;
> -               return NULL;
> +               return __NULL;
>         }
>         return uk_do_realloc(a, ptr, size);
>  }
>
>  static inline int uk_do_posix_memalign(struct uk_alloc *a, void **memptr,
> -                                      size_t align, size_t size)
> +                                      __sz align, __sz size)
>  {
>         UK_ASSERT(a);
>         return a->posix_memalign(a, memptr, align, size);
>  }
>
>  static inline int uk_posix_memalign(struct uk_alloc *a, void **memptr,
> -                                   size_t align, size_t size)
> +                                   __sz align, __sz size)
>  {
>         if (unlikely(!a)) {
> -               *memptr = NULL;
> +               *memptr = __NULL;
>                 return ENOMEM;
>         }
>         return uk_do_posix_memalign(a, memptr, align, size);
>  }
>
>  static inline void *uk_do_memalign(struct uk_alloc *a,
> -                                  size_t align, size_t size)
> +                                  __sz align, __sz size)
>  {
>         UK_ASSERT(a);
>         return a->memalign(a, align, size);
>  }
>
>  static inline void *uk_memalign(struct uk_alloc *a,
> -                               size_t align, size_t size)
> +                               __sz align, __sz size)
>  {
>         if (unlikely(!a))
> -               return NULL;
> +               return __NULL;
>         return uk_do_memalign(a, align, size);
>  }
>
> @@ -244,7 +242,7 @@ static inline void *uk_do_palloc(struct uk_alloc *a,
> unsigned long num_pages)
>  static inline void *uk_palloc(struct uk_alloc *a, unsigned long num_pages)
>  {
>         if (unlikely(!a || !a->palloc))
> -               return NULL;
> +               return __NULL;
>         return uk_do_palloc(a, num_pages);
>  }
>
> @@ -262,7 +260,7 @@ static inline void uk_pfree(struct uk_alloc *a, void
> *ptr,
>  }
>
>  static inline int uk_alloc_addmem(struct uk_alloc *a, void *base,
> -                                 size_t size)
> +                                 __sz size)
>  {
>         UK_ASSERT(a);
>         if (a->addmem)
> @@ -272,11 +270,11 @@ static inline int uk_alloc_addmem(struct uk_alloc
> *a, void *base,
>  }
>
>  /* current biggest allocation request possible */
> -static inline ssize_t uk_alloc_maxalloc(struct uk_alloc *a)
> +static inline __ssz uk_alloc_maxalloc(struct uk_alloc *a)
>  {
>         UK_ASSERT(a);
>         if (!a->maxalloc)
> -               return (ssize_t) -ENOTSUP;
> +               return (__ssz) -ENOTSUP;
>         return a->maxalloc(a);
>  }
>
> @@ -289,11 +287,11 @@ static inline long uk_alloc_pmaxalloc(struct
> uk_alloc *a)
>  }
>
>  /* total free memory of the allocator */
> -static inline ssize_t uk_alloc_availmem(struct uk_alloc *a)
> +static inline __ssz uk_alloc_availmem(struct uk_alloc *a)
>  {
>         UK_ASSERT(a);
>         if (!a->availmem)
> -               return (ssize_t) -ENOTSUP;
> +               return (__ssz) -ENOTSUP;
>         return a->availmem(a);
>  }
>
> @@ -305,7 +303,7 @@ static inline long uk_alloc_pavail(struct uk_alloc *a)
>         return a->pavail(a);
>  }
>
> -size_t uk_alloc_availmem_total(void);
> +__sz uk_alloc_availmem_total(void);
>
>  unsigned long uk_alloc_pavail_total(void);
>
> diff --git a/lib/ukalloc/include/uk/alloc_impl.h
> b/lib/ukalloc/include/uk/alloc_impl.h
> index 961e36b5..1db4b5fe 100644
> --- a/lib/ukalloc/include/uk/alloc_impl.h
> +++ b/lib/ukalloc/include/uk/alloc_impl.h
> @@ -57,26 +57,26 @@ int uk_alloc_register(struct uk_alloc *a);
>  /* Functions that can be used by allocators that implement palloc(),
>   * pfree() and potentially pavail(), pmaxalloc() only
>   */
> -void *uk_malloc_ifpages(struct uk_alloc *a, size_t size);
> -void *uk_realloc_ifpages(struct uk_alloc *a, void *ptr, size_t size);
> +void *uk_malloc_ifpages(struct uk_alloc *a, __sz size);
> +void *uk_realloc_ifpages(struct uk_alloc *a, void *ptr, __sz size);
>  int uk_posix_memalign_ifpages(struct uk_alloc *a, void **memptr,
> -                               size_t align, size_t size);
> +                               __sz align, __sz size);
>  void uk_free_ifpages(struct uk_alloc *a, void *ptr);
> -ssize_t uk_alloc_availmem_ifpages(struct uk_alloc *a);
> -ssize_t uk_alloc_maxalloc_ifpages(struct uk_alloc *a);
> +__ssz uk_alloc_availmem_ifpages(struct uk_alloc *a);
> +__ssz uk_alloc_maxalloc_ifpages(struct uk_alloc *a);
>
>  #if CONFIG_LIBUKALLOC_IFMALLOC
> -void *uk_malloc_ifmalloc(struct uk_alloc *a, size_t size);
> -void *uk_realloc_ifmalloc(struct uk_alloc *a, void *ptr, size_t size);
> +void *uk_malloc_ifmalloc(struct uk_alloc *a, __sz size);
> +void *uk_realloc_ifmalloc(struct uk_alloc *a, void *ptr, __sz size);
>  int uk_posix_memalign_ifmalloc(struct uk_alloc *a, void **memptr,
> -                                    size_t align, size_t size);
> +                                    __sz align, __sz size);
>  void uk_free_ifmalloc(struct uk_alloc *a, void *ptr);
>  #endif
>
>  /* Functionality that is provided based on malloc() and posix_memalign()
> */
> -void *uk_calloc_compat(struct uk_alloc *a, size_t num, size_t len);
> -void *uk_realloc_compat(struct uk_alloc *a, void *ptr, size_t size);
> -void *uk_memalign_compat(struct uk_alloc *a, size_t align, size_t len);
> +void *uk_calloc_compat(struct uk_alloc *a, __sz num, __sz len);
> +void *uk_realloc_compat(struct uk_alloc *a, void *ptr, __sz size);
> +void *uk_memalign_compat(struct uk_alloc *a, __sz align, __sz len);
>  void *uk_palloc_compat(struct uk_alloc *a, unsigned long num_pages);
>  void uk_pfree_compat(struct uk_alloc *a, void *ptr, unsigned long
> num_pages);
>  long uk_alloc_pavail_compat(struct uk_alloc *a);
> @@ -110,7 +110,7 @@ static inline void
> __uk_alloc_stats_refresh_minmax(struct uk_alloc_stats *stats)
>  }
>
>  static inline void _uk_alloc_stats_count_alloc(struct uk_alloc_stats
> *stats,
> -                                              void *ptr, size_t size)
> +                                              void *ptr, __sz size)
>  {
>         /* TODO: SMP safety */
>         uk_preempt_disable();
> @@ -128,7 +128,7 @@ static inline void _uk_alloc_stats_count_alloc(struct
> uk_alloc_stats *stats,
>  }
>
>  static inline void _uk_alloc_stats_count_free(struct uk_alloc_stats
> *stats,
> -                                             void *ptr, size_t size)
> +                                             void *ptr, __sz size)
>  {
>         uk_preempt_disable();
>         if (likely(ptr)) {
> diff --git a/lib/ukalloc/libstats.c b/lib/ukalloc/libstats.c
> index 0424e8f5..d49d9dcc 100644
> --- a/lib/ukalloc/libstats.c
> +++ b/lib/ukalloc/libstats.c
> @@ -53,10 +53,10 @@ static inline struct uk_alloc
> *_uk_alloc_get_actual_default(void)
>  }
>
>  #define WATCH_STATS_START(p)                                           \
> -       ssize_t _before_mem_use;                                        \
> -       size_t _before_nb_allocs;                                       \
> -       size_t _before_tot_nb_allocs;                                   \
> -       size_t _before_nb_enomem;                                       \
> +       __ssz _before_mem_use;                                          \
> +       __sz _before_nb_allocs;                                         \
> +       __sz _before_tot_nb_allocs;                                     \
> +       __sz _before_nb_enomem;                                         \
>                                                                         \
>         uk_preempt_disable();                                           \
>         _before_mem_use       = (p)->_stats.cur_mem_use;                \
> @@ -66,8 +66,8 @@ static inline struct uk_alloc
> *_uk_alloc_get_actual_default(void)
>
>  #define WATCH_STATS_END(p, nb_allocs_diff, nb_enomem_diff,             \
>                         mem_use_diff, alloc_size)                       \
> -       size_t _nb_allocs = (p)->_stats.tot_nb_allocs                   \
> -                           - _before_tot_nb_allocs;                    \
> +       __sz _nb_allocs = (p)->_stats.tot_nb_allocs                     \
> +                         - _before_tot_nb_allocs;                      \
>                                                                         \
>         /* NOTE: We assume that an allocator call does at
>          * most one allocation. Otherwise we cannot currently
> @@ -77,9 +77,9 @@ static inline struct uk_alloc
> *_uk_alloc_get_actual_default(void)
>                                                                         \
>         *(mem_use_diff)   = (p)->_stats.cur_mem_use                     \
>                             - _before_mem_use;                          \
> -       *(nb_allocs_diff) = (ssize_t) (p)->_stats.cur_nb_allocs         \
> +       *(nb_allocs_diff) = (__ssz) (p)->_stats.cur_nb_allocs           \
>                             - _before_nb_allocs;                        \
> -       *(nb_enomem_diff) = (ssize_t) (p)->_stats.nb_enomem             \
> +       *(nb_enomem_diff) = (__ssz) (p)->_stats.nb_enomem               \
>                             - _before_nb_enomem;                        \
>         if (_nb_allocs > 0)                                             \
>                 *(alloc_size) = (p)->_stats.last_alloc_size;            \
> @@ -88,10 +88,10 @@ static inline struct uk_alloc
> *_uk_alloc_get_actual_default(void)
>         uk_preempt_enable();
>
>  static inline void update_stats(struct uk_alloc_stats *stats,
> -                               ssize_t nb_allocs_diff,
> -                               ssize_t nb_enomem_diff,
> -                               ssize_t mem_use_diff,
> -                               size_t last_alloc_size)
> +                               __ssz nb_allocs_diff,
> +                               __ssz nb_enomem_diff,
> +                               __ssz mem_use_diff,
> +                               __sz last_alloc_size)
>  {
>         uk_preempt_disable();
>         if (nb_allocs_diff >= 0)
> @@ -107,11 +107,11 @@ static inline void update_stats(struct
> uk_alloc_stats *stats,
>         uk_preempt_enable();
>  }
>
> -static void *wrapper_malloc(struct uk_alloc *a, size_t size)
> +static void *wrapper_malloc(struct uk_alloc *a, __sz size)
>  {
>         struct uk_alloc *p = _uk_alloc_get_actual_default();
> -       ssize_t nb_allocs, mem_use, nb_enomem;
> -       size_t alloc_size;
> +       __ssz nb_allocs, mem_use, nb_enomem;
> +       __sz alloc_size;
>         void *ret;
>
>         UK_ASSERT(p);
> @@ -125,11 +125,11 @@ static void *wrapper_malloc(struct uk_alloc *a,
> size_t size)
>         return ret;
>  }
>
> -static void *wrapper_calloc(struct uk_alloc *a, size_t nmemb, size_t size)
> +static void *wrapper_calloc(struct uk_alloc *a, __sz nmemb, __sz size)
>  {
>         struct uk_alloc *p = _uk_alloc_get_actual_default();
> -       ssize_t nb_allocs, mem_use, nb_enomem;
> -       size_t alloc_size;
> +       __ssz nb_allocs, mem_use, nb_enomem;
> +       __sz alloc_size;
>         void *ret;
>
>         UK_ASSERT(p);
> @@ -138,16 +138,17 @@ static void *wrapper_calloc(struct uk_alloc *a,
> size_t nmemb, size_t size)
>         ret = uk_do_calloc(p, nmemb, size);
>         WATCH_STATS_END(p, &nb_allocs, &nb_enomem, &mem_use, &alloc_size);
>
> -       update_stats(&a->_stats, nb_allocs, nb_enomem, mem_use,
> alloc_size);
>
Shouldn't we make this check for `ret` in the others wrappers as well?

> +       update_stats(&a->_stats, nb_allocs, nb_enomem, mem_use,
> +                    ret != NULL ? alloc_size : 0);
>         return ret;
>  }
>
>  static int wrapper_posix_memalign(struct uk_alloc *a, void **memptr,
> -                                 size_t align, size_t size)
> +                                 __sz align, __sz size)
>  {
>         struct uk_alloc *p = _uk_alloc_get_actual_default();
> -       ssize_t nb_allocs, mem_use, nb_enomem;
> -       size_t alloc_size;
> +       __ssz nb_allocs, mem_use, nb_enomem;
> +       __sz alloc_size;
>         int ret;
>
>         UK_ASSERT(p);
> @@ -160,11 +161,11 @@ static int wrapper_posix_memalign(struct uk_alloc
> *a, void **memptr,
>         return ret;
>  }
>
> -static void *wrapper_memalign(struct uk_alloc *a, size_t align, size_t
> size)
> +static void *wrapper_memalign(struct uk_alloc *a, __sz align, __sz size)
>  {
>         struct uk_alloc *p = _uk_alloc_get_actual_default();
> -       ssize_t nb_allocs, mem_use, nb_enomem;
> -       size_t alloc_size;
> +       __ssz nb_allocs, mem_use, nb_enomem;
> +       __sz alloc_size;
>         void *ret;
>
>         UK_ASSERT(p);
> @@ -177,11 +178,11 @@ static void *wrapper_memalign(struct uk_alloc *a,
> size_t align, size_t size)
>         return ret;
>  }
>
> -static void *wrapper_realloc(struct uk_alloc *a, void *ptr, size_t size)
> +static void *wrapper_realloc(struct uk_alloc *a, void *ptr, __sz size)
>  {
>         struct uk_alloc *p = _uk_alloc_get_actual_default();
> -       ssize_t nb_allocs, mem_use, nb_enomem;
> -       size_t alloc_size;
> +       __ssz nb_allocs, mem_use, nb_enomem;
> +       __sz alloc_size;
>         void *ret;
>
>         UK_ASSERT(p);
> @@ -197,8 +198,8 @@ static void *wrapper_realloc(struct uk_alloc *a, void
> *ptr, size_t size)
>  static void wrapper_free(struct uk_alloc *a, void *ptr)
>  {
>         struct uk_alloc *p = _uk_alloc_get_actual_default();
> -       ssize_t nb_allocs, mem_use, nb_enomem;
> -       size_t alloc_size;
> +       __ssz nb_allocs, mem_use, nb_enomem;
> +       __sz alloc_size;
>
>         UK_ASSERT(p);
>
> @@ -212,8 +213,8 @@ static void wrapper_free(struct uk_alloc *a, void *ptr)
>  static void *wrapper_palloc(struct uk_alloc *a, unsigned long num_pages)
>  {
>         struct uk_alloc *p = _uk_alloc_get_actual_default();
> -       ssize_t nb_allocs, mem_use, nb_enomem;
> -       size_t alloc_size;
> +       __ssz nb_allocs, mem_use, nb_enomem;
> +       __sz alloc_size;
>         void *ret;
>
>         UK_ASSERT(p);
> @@ -230,8 +231,8 @@ static void wrapper_pfree(struct uk_alloc *a, void
> *ptr,
>                           unsigned long num_pages)
>  {
>         struct uk_alloc *p = _uk_alloc_get_actual_default();
> -       ssize_t nb_allocs, mem_use, nb_enomem;
> -       size_t alloc_size;
> +       __ssz nb_allocs, mem_use, nb_enomem;
> +       __sz alloc_size;
>
>         UK_ASSERT(p);
>
> @@ -245,7 +246,7 @@ static void wrapper_pfree(struct uk_alloc *a, void
> *ptr,
>  /* The following interfaces do not change allocation statistics,
>   * this is why we just forward the calls
>   */
> -static int wrapper_addmem(struct uk_alloc *a __unused, void *base, size_t
> size)
> +static int wrapper_addmem(struct uk_alloc *a __unused, void *base, __sz
> size)
>  {
>         struct uk_alloc *p = _uk_alloc_get_actual_default();
>
> @@ -253,7 +254,7 @@ static int wrapper_addmem(struct uk_alloc *a __unused,
> void *base, size_t size)
>         return uk_alloc_addmem(p, base, size);
>  }
>
> -static size_t wrapper_maxalloc(struct uk_alloc *a __unused)
> +static __ssz wrapper_maxalloc(struct uk_alloc *a __unused)
>  {
>         struct uk_alloc *p = _uk_alloc_get_actual_default();
>
> @@ -261,7 +262,7 @@ static size_t wrapper_maxalloc(struct uk_alloc *a
> __unused)
>         return uk_alloc_maxalloc(p);
>  }
>
> -static size_t wrapper_availmem(struct uk_alloc *a __unused)
> +static __ssz wrapper_availmem(struct uk_alloc *a __unused)
>  {
>         struct uk_alloc *p = _uk_alloc_get_actual_default();
>
> diff --git a/lib/ukallocregion/region.c b/lib/ukallocregion/region.c
> index 963d03c8..2c5098b7 100644
> --- a/lib/ukallocregion/region.c
> +++ b/lib/ukallocregion/region.c
> @@ -47,6 +47,9 @@
>   * an introduction to region-based memory management.
>   */
>
> +#include <stdint.h>
> +#include <stddef.h>
> +#include <sys/types.h>
>  #include <uk/allocregion.h>
>  #include <uk/alloc_impl.h>
>  #include <uk/page.h>   /* round_pgup() */
> diff --git a/plat/common/include/pci/pci_bus.h
> b/plat/common/include/pci/pci_bus.h
> index db406a1b..d3235528 100644
> --- a/plat/common/include/pci/pci_bus.h
> +++ b/plat/common/include/pci/pci_bus.h
> @@ -66,6 +66,8 @@
>  #ifndef __UKPLAT_COMMON_PCI_BUS_H__
>  #define __UKPLAT_COMMON_PCI_BUS_H__
>
> +#include <stdint.h>
> +#include <stddef.h>
>  #include <uk/bus.h>
>  #include <uk/alloc.h>
>  #include <uk/ctors.h>
> diff --git a/plat/common/memory.c b/plat/common/memory.c
> index c46a4b0e..de4a38a7 100644
> --- a/plat/common/memory.c
> +++ b/plat/common/memory.c
> @@ -34,6 +34,8 @@
>
>  #include <uk/plat/memory.h>
>  #include <uk/plat/common/memory.h>
> +#include <uk/alloc.h>
> +#include <stddef.h>
>
>  static struct uk_alloc *plat_allocator;
>
> diff --git a/plat/xen/gnttab.c b/plat/xen/gnttab.c
> index 4f28df99..fd056572 100644
> --- a/plat/xen/gnttab.c
> +++ b/plat/xen/gnttab.c
> @@ -17,6 +17,7 @@
>
> ****************************************************************************
>   */
>  #include <stdint.h>
> +#include <stddef.h>
>  #ifdef DBGGNT
>  #include <string.h>
>  #endif
> diff --git a/plat/xen/memory.c b/plat/xen/memory.c
> index 8e7a7dda..365bbaeb 100644
> --- a/plat/xen/memory.c
> +++ b/plat/xen/memory.c
> @@ -34,6 +34,8 @@
>   */
>
>  #include <string.h>
> +#include <stdint.h>
> +#include <stddef.h>
>  #include <uk/plat/common/sections.h>
>
>  #include <common/gnttab.h>
> diff --git a/plat/xen/x86/gnttab.c b/plat/xen/x86/gnttab.c
> index b09d52bf..7a647481 100644
> --- a/plat/xen/x86/gnttab.c
> +++ b/plat/xen/x86/gnttab.c
> @@ -24,6 +24,7 @@
>  /* Taken from Mini-OS */
>
>  #include <stdint.h>
> +#include <stddef.h>
>  #include <uk/print.h>
>  #include <xen/xen.h>
>  #include <xen/grant_table.h>
> --
> 2.20.1
>
>

--000000000000fbadab05bca49762
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr">I have just an inline comment for this pa=
tch:<br></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmai=
l_attr">On Fri, Nov 20, 2020 at 5:49 PM Simon Kuenzer &lt;<a href=3D"mailto=
:simon.kuenzer@neclab.eu">simon.kuenzer@neclab.eu</a>&gt; wrote:<br></div><=
blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l=
eft:1px solid rgb(204,204,204);padding-left:1ex">Use Unikraft-internal type=
s for the API headers in order to have minimal<br>
dependency to libc definitions. This is done so that libcs can integrate<br=
>
`&lt;uk/alloc.h&gt; directly with their header files without breaking the<b=
r>
declaration set of libc headers.<br>
This is done towards receiving per-library statistics<br>
(see the following commit).<br>
<br>
Signed-off-by: Simon Kuenzer &lt;<a href=3D"mailto:simon.kuenzer@neclab.eu"=
 target=3D"_blank">simon.kuenzer@neclab.eu</a>&gt;<br>
---<br>
=C2=A0lib/ukalloc/alloc.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0| 140 ++++++++++++++--------------<br>
=C2=A0lib/ukalloc/include/uk/alloc.h=C2=A0 =C2=A0 =C2=A0 |=C2=A0 88 +++++++=
++--------<br>
=C2=A0lib/ukalloc/include/uk/alloc_impl.h |=C2=A0 26 +++---<br>
=C2=A0lib/ukalloc/libstats.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 |=C2=A0 75 +++++++--------<br>
=C2=A0lib/ukallocregion/region.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =
=C2=A03 +<br>
=C2=A0plat/common/include/pci/pci_bus.h=C2=A0 =C2=A0|=C2=A0 =C2=A02 +<br>
=C2=A0plat/common/memory.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 |=C2=A0 =C2=A02 +<br>
=C2=A0plat/xen/gnttab.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A01 +<br>
=C2=A0plat/xen/memory.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A02 +<br>
=C2=A0plat/xen/x86/gnttab.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0|=C2=A0 =C2=A01 +<br>
=C2=A010 files changed, 175 insertions(+), 165 deletions(-)<br>
<br>
diff --git a/lib/ukalloc/alloc.c b/lib/ukalloc/alloc.c<br>
index 1bf596b0..8401124d 100644<br>
--- a/lib/ukalloc/alloc.c<br>
+++ b/lib/ukalloc/alloc.c<br>
@@ -53,14 +53,14 @@ int uk_alloc_register(struct uk_alloc *a)<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!_uk_alloc_head) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 _uk_alloc_head =3D =
a;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0a-&gt;next =3D NULL=
;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0a-&gt;next =3D __NU=
LL;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return 0;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 while (this &amp;&amp; this-&gt;next)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 this =3D this-&gt;n=
ext;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 this-&gt;next =3D a;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0a-&gt;next =3D NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0a-&gt;next =3D __NULL;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return 0;<br>
=C2=A0}<br>
<br>
@@ -81,7 +81,7 @@ UK_CTASSERT(!(sizeof(struct metadata_ifpages) &gt; METADA=
TA_IFPAGES_SIZE_POW2));<br>
<br>
=C2=A0static struct metadata_ifpages *uk_get_metadata(const void *ptr)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0uintptr_t metadata;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__uptr metadata;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* a ptr less or equal to page size would mean =
that the actual allocated<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* object started at 0x0, so it was NULL.<=
br>
@@ -89,11 +89,11 @@ static struct metadata_ifpages *uk_get_metadata(const v=
oid *ptr)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* also imply that the actual allocated ob=
ject started at 0x0 because<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* we need space to store metadata.<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0UK_ASSERT((uintptr_t) ptr &gt;=3D __PAGE_SIZE +=
<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0UK_ASSERT((__uptr) ptr &gt;=3D __PAGE_SIZE +<br=
>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sizeof(struc=
t metadata_ifpages));<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0metadata =3D ALIGN_DOWN((uintptr_t) ptr, (uintp=
tr_t) __PAGE_SIZE);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0if (metadata =3D=3D (uintptr_t) ptr) {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0metadata =3D ALIGN_DOWN((__uptr) ptr, (__uptr) =
__PAGE_SIZE);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0if (metadata =3D=3D (__uptr) ptr) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* special case: th=
e memory was page-aligned.<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* In this cas=
e the metadata lies at the start of the<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* previous pa=
ge, with the rest of that page unused.<br>
@@ -104,12 +104,12 @@ static struct metadata_ifpages *uk_get_metadata(const=
 void *ptr)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return (struct metadata_ifpages *) metadata;<br=
>
=C2=A0}<br>
<br>
-static size_t uk_getmallocsize(const void *ptr)<br>
+static __sz uk_getmallocsize(const void *ptr)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct metadata_ifpages *metadata =3D uk_get_me=
tadata(ptr);<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0return (size_t)metadata-&gt;base + (size_t)(met=
adata-&gt;num_pages) *<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 __PAGE_SIZE - (size_t)ptr=
;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0return (__sz)metadata-&gt;base + (__sz)(metadat=
a-&gt;num_pages) *<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 __PAGE_SIZE - (__sz)ptr;<=
br>
=C2=A0}<br>
<br>
=C2=A0/* This is a very simple, naive implementation of malloc.<br>
@@ -124,23 +124,23 @@ static size_t uk_getmallocsize(const void *ptr)<br>
=C2=A0 * locking support yet. Eventually, this should probably be replaced =
by<br>
=C2=A0 * something better.<br>
=C2=A0 */<br>
-void *uk_malloc_ifpages(struct uk_alloc *a, size_t size)<br>
+void *uk_malloc_ifpages(struct uk_alloc *a, __sz size)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0uintptr_t intptr;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__uptr intptr;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 unsigned long num_pages;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct metadata_ifpages *metadata;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t realsize =3D sizeof(*metadata) + size;<b=
r>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz realsize =3D sizeof(*metadata) + size;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* check for invalid size and overflow */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!size || realsize &lt; size)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 num_pages =3D size_to_num_pages(realsize);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0intptr =3D (uintptr_t)uk_palloc(a, num_pages);<=
br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0intptr =3D (__uptr)uk_palloc(a, num_pages);<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!intptr)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 metadata =3D (struct metadata_ifpages *) intptr=
;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 metadata-&gt;num_pages =3D num_pages;<br>
@@ -159,15 +159,15 @@ void uk_free_ifpages(struct uk_alloc *a, void *ptr)<b=
r>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 metadata =3D uk_get_metadata(ptr);<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0UK_ASSERT(metadata-&gt;base !=3D NULL);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0UK_ASSERT(metadata-&gt;base !=3D __NULL);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(metadata-&gt;num_pages !=3D 0);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 uk_pfree(a, metadata-&gt;base, metadata-&gt;num=
_pages);<br>
=C2=A0}<br>
<br>
-void *uk_realloc_ifpages(struct uk_alloc *a, void *ptr, size_t size)<br>
+void *uk_realloc_ifpages(struct uk_alloc *a, void *ptr, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 void *retptr;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t mallocsize;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz mallocsize;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!ptr)<br>
@@ -175,12 +175,12 @@ void *uk_realloc_ifpages(struct uk_alloc *a, void *pt=
r, size_t size)<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (ptr &amp;&amp; !size) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 uk_free_ifpages(a, =
ptr);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 retptr =3D uk_malloc_ifpages(a, size);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!retptr)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 mallocsize =3D uk_getmallocsize(ptr);<br>
<br>
@@ -194,12 +194,12 @@ void *uk_realloc_ifpages(struct uk_alloc *a, void *pt=
r, size_t size)<br>
=C2=A0}<br>
<br>
=C2=A0int uk_posix_memalign_ifpages(struct uk_alloc *a,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0void **memptr, size_t align, size_t s=
ize)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0void **memptr, __sz align, __sz size)=
<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct metadata_ifpages *metadata;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 unsigned long num_pages;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0uintptr_t intptr;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t realsize, padding;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__uptr intptr;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz realsize, padding;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (((align - 1) &amp; align) !=3D 0<br>
@@ -252,18 +252,18 @@ int uk_posix_memalign_ifpages(struct uk_alloc *a,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return EINVAL;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 num_pages =3D size_to_num_pages(realsize);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0intptr =3D (uintptr_t) uk_palloc(a, num_pages);=
<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0intptr =3D (__uptr) uk_palloc(a, num_pages);<br=
>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!intptr)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return ENOMEM;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 *memptr =3D (void *) ALIGN_UP(intptr + sizeof(*=
metadata),<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(uintptr_t) align);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(__uptr) align);<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 metadata =3D uk_get_metadata(*memptr);<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* check for underflow (should not happen) */<b=
r>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0UK_ASSERT(intptr &lt;=3D (uintptr_t) metadata);=
<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0UK_ASSERT(intptr &lt;=3D (__uptr) metadata);<br=
>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 metadata-&gt;num_pages =3D num_pages;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 metadata-&gt;base =3D (void *) intptr;<br>
@@ -271,7 +271,7 @@ int uk_posix_memalign_ifpages(struct uk_alloc *a,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return 0;<br>
=C2=A0}<br>
<br>
-ssize_t uk_alloc_maxalloc_ifpages(struct uk_alloc *a)<br>
+__ssz uk_alloc_maxalloc_ifpages(struct uk_alloc *a)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 long num_pages;<br>
<br>
@@ -279,12 +279,12 @@ ssize_t uk_alloc_maxalloc_ifpages(struct uk_alloc *a)=
<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 num_pages =3D uk_alloc_pmaxalloc(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (num_pages &lt; 0)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return (ssize_t) nu=
m_pages;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return (__ssz) num_=
pages;<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0return ((ssize_t) num_pages) &lt;&lt; __PAGE_SH=
IFT;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0return ((__ssz) num_pages) &lt;&lt; __PAGE_SHIF=
T;<br>
=C2=A0}<br>
<br>
-ssize_t uk_alloc_availmem_ifpages(struct uk_alloc *a)<br>
+__ssz uk_alloc_availmem_ifpages(struct uk_alloc *a)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 long num_pages;<br>
<br>
@@ -292,15 +292,15 @@ ssize_t uk_alloc_availmem_ifpages(struct uk_alloc *a)=
<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 num_pages =3D uk_alloc_pavail(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (num_pages &lt; 0)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return (ssize_t) nu=
m_pages;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return (__ssz) num_=
pages;<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0return ((ssize_t) num_pages) &lt;&lt; __PAGE_SH=
IFT;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0return ((__ssz) num_pages) &lt;&lt; __PAGE_SHIF=
T;<br>
=C2=A0}<br>
<br>
=C2=A0#if CONFIG_LIBUKALLOC_IFMALLOC<br>
<br>
=C2=A0struct metadata_ifmalloc {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t=C2=A0 size;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz=C2=A0 =C2=A0 size;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 void=C2=A0 =C2=A0 *base;<br>
=C2=A0};<br>
<br>
@@ -309,16 +309,16 @@ UK_CTASSERT(!(sizeof(struct metadata_ifmalloc) &gt; M=
ETADATA_IFMALLOC_SIZE_POW2));<br>
<br>
=C2=A0static struct metadata_ifmalloc *uk_get_metadata_ifmalloc(const void =
*ptr)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0return (struct metadata_ifmalloc *)((uintptr_t)=
 ptr -<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0return (struct metadata_ifmalloc *)((__uptr) pt=
r -<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 METADATA_IFMALLOC_S=
IZE_POW2);<br>
=C2=A0}<br>
<br>
-static size_t uk_getmallocsize_ifmalloc(const void *ptr)<br>
+static __sz uk_getmallocsize_ifmalloc(const void *ptr)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct metadata_ifmalloc *metadata =3D uk_get_m=
etadata_ifmalloc(ptr);<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0return (size_t) ((uintptr_t) metadata-&gt;base =
+ metadata-&gt;size -<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 (uintptr_t) ptr);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0return (__sz) ((__uptr) metadata-&gt;base + met=
adata-&gt;size -<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 (__uptr) ptr);<br>
=C2=A0}<br>
<br>
=C2=A0void uk_free_ifmalloc(struct uk_alloc *a, void *ptr)<br>
@@ -334,10 +334,10 @@ void uk_free_ifmalloc(struct uk_alloc *a, void *ptr)<=
br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 a-&gt;free_backend(a, metadata-&gt;base);<br>
=C2=A0}<br>
<br>
-void *uk_malloc_ifmalloc(struct uk_alloc *a, size_t size)<br>
+void *uk_malloc_ifmalloc(struct uk_alloc *a, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct metadata_ifmalloc *metadata;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t realsize =3D size + METADATA_IFMALLOC_SI=
ZE_POW2;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz realsize =3D size + METADATA_IFMALLOC_SIZE=
_POW2;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 void *ptr;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
@@ -345,23 +345,23 @@ void *uk_malloc_ifmalloc(struct uk_alloc *a, size_t s=
ize)<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* check for overflow */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (unlikely(realsize &lt; size))<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ptr =3D a-&gt;malloc_backend(a, realsize);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!ptr)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 metadata =3D ptr;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 metadata-&gt;size =3D realsize;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 metadata-&gt;base =3D ptr;<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0return (void *) ((uintptr_t) ptr + METADATA_IFM=
ALLOC_SIZE_POW2);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0return (void *) ((__uptr) ptr + METADATA_IFMALL=
OC_SIZE_POW2);<br>
=C2=A0}<br>
<br>
-void *uk_realloc_ifmalloc(struct uk_alloc *a, void *ptr, size_t size)<br>
+void *uk_realloc_ifmalloc(struct uk_alloc *a, void *ptr, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 void *retptr;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t mallocsize;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz mallocsize;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!ptr)<br>
@@ -369,12 +369,12 @@ void *uk_realloc_ifmalloc(struct uk_alloc *a, void *p=
tr, size_t size)<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (ptr &amp;&amp; !size) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 uk_free_ifmalloc(a,=
 ptr);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 retptr =3D uk_malloc_ifmalloc(a, size);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!retptr)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 mallocsize =3D uk_getmallocsize_ifmalloc(ptr);<=
br>
<br>
@@ -385,11 +385,11 @@ void *uk_realloc_ifmalloc(struct uk_alloc *a, void *p=
tr, size_t size)<br>
=C2=A0}<br>
<br>
=C2=A0int uk_posix_memalign_ifmalloc(struct uk_alloc *a,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 void **memptr, size_t =
align, size_t size)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 void **memptr, __sz al=
ign, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct metadata_ifmalloc *metadata;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t realsize, padding;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0uintptr_t intptr;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz realsize, padding;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__uptr intptr;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (((align - 1) &amp; align) !=3D 0<br>
@@ -417,18 +417,18 @@ int uk_posix_memalign_ifmalloc(struct uk_alloc *a,<br=
>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (unlikely(realsize &lt; size))<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return ENOMEM;<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0intptr =3D (uintptr_t) a-&gt;malloc_backend(a, =
realsize);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0intptr =3D (__uptr) a-&gt;malloc_backend(a, rea=
lsize);<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!intptr)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return ENOMEM;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 *memptr =3D (void *) ALIGN_UP(intptr + METADATA=
_IFMALLOC_SIZE_POW2,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(uintptr_t) align);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(__uptr) align);<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 metadata =3D uk_get_metadata_ifmalloc(*memptr);=
<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* check for underflow */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0UK_ASSERT(intptr &lt;=3D (uintptr_t) metadata);=
<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0UK_ASSERT(intptr &lt;=3D (__uptr) metadata);<br=
>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 metadata-&gt;size =3D realsize;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 metadata-&gt;base =3D (void *) intptr;<br>
@@ -456,16 +456,16 @@ void *uk_palloc_compat(struct uk_alloc *a, unsigned l=
ong num_pages)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* check for overflow */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0if (num_pages &gt; (~(size_t)0)/__PAGE_SIZE)<br=
>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0if (num_pages &gt; (~(__sz)0)/__PAGE_SIZE)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (uk_posix_memalign(a, &amp;ptr, __PAGE_SIZE,=
 num_pages * __PAGE_SIZE))<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return ptr;<br>
=C2=A0}<br>
<br>
-void *uk_realloc_compat(struct uk_alloc *a, void *ptr, size_t size)<br>
+void *uk_realloc_compat(struct uk_alloc *a, void *ptr, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 void *retptr;<br>
<br>
@@ -475,12 +475,12 @@ void *uk_realloc_compat(struct uk_alloc *a, void *ptr=
, size_t size)<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (ptr &amp;&amp; !size) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 uk_free(a, ptr);<br=
>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 retptr =3D uk_malloc(a, size);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!retptr)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 memcpy(retptr, ptr, size);<br>
<br>
@@ -488,38 +488,38 @@ void *uk_realloc_compat(struct uk_alloc *a, void *ptr=
, size_t size)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return retptr;<br>
=C2=A0}<br>
<br>
-void *uk_calloc_compat(struct uk_alloc *a, size_t nmemb, size_t size)<br>
+void *uk_calloc_compat(struct uk_alloc *a, __sz nmemb, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 void *ptr;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t tlen =3D nmemb * size;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz tlen =3D nmemb * size;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* check for overflow */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0if (nmemb &gt; (~(size_t)0)/size)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0if (nmemb &gt; (~(__sz)0)/size)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ptr =3D uk_malloc(a, tlen);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!ptr)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 memset(ptr, 0, tlen);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return ptr;<br>
=C2=A0}<br>
<br>
-void *uk_memalign_compat(struct uk_alloc *a, size_t align, size_t size)<br=
>
+void *uk_memalign_compat(struct uk_alloc *a, __sz align, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 void *ptr;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (uk_posix_memalign(a, &amp;ptr, align, size)=
 !=3D 0)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return ptr;<br>
=C2=A0}<br>
<br>
=C2=A0long uk_alloc_pmaxalloc_compat(struct uk_alloc *a)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t mem;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz mem;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
<br>
@@ -532,7 +532,7 @@ long uk_alloc_pmaxalloc_compat(struct uk_alloc *a)<br>
<br>
=C2=A0long uk_alloc_pavail_compat(struct uk_alloc *a)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t mem;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz mem;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
<br>
@@ -543,11 +543,11 @@ long uk_alloc_pavail_compat(struct uk_alloc *a)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return (long) (mem &gt;&gt; __PAGE_SHIFT);<br>
=C2=A0}<br>
<br>
-size_t uk_alloc_availmem_total(void)<br>
+__sz uk_alloc_availmem_total(void)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct uk_alloc *a;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t availmem;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t total;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz availmem;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz total;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 total =3D 0;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 uk_alloc_foreach(a) {<br>
diff --git a/lib/ukalloc/include/uk/alloc.h b/lib/ukalloc/include/uk/alloc.=
h<br>
index 5392fcfe..5c6a1188 100644<br>
--- a/lib/ukalloc/include/uk/alloc.h<br>
+++ b/lib/ukalloc/include/uk/alloc.h<br>
@@ -34,13 +34,11 @@<br>
=C2=A0#ifndef __UK_ALLOC_H__<br>
=C2=A0#define __UK_ALLOC_H__<br>
<br>
-#include &lt;stddef.h&gt;<br>
-#include &lt;stdint.h&gt;<br>
-#include &lt;sys/types.h&gt;<br>
-#include &lt;errno.h&gt;<br>
+#include &lt;uk/arch/types.h&gt;<br>
=C2=A0#include &lt;uk/config.h&gt;<br>
=C2=A0#include &lt;uk/assert.h&gt;<br>
=C2=A0#include &lt;uk/essentials.h&gt;<br>
+#include &lt;errno.h&gt;<br>
<br>
=C2=A0#ifdef __cplusplus<br>
=C2=A0extern &quot;C&quot; {<br>
@@ -49,15 +47,15 @@ extern &quot;C&quot; {<br>
=C2=A0struct uk_alloc;<br>
<br>
=C2=A0typedef void* (*uk_alloc_malloc_func_t)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(struct uk_alloc *a=
, size_t size);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(struct uk_alloc *a=
, __sz size);<br>
=C2=A0typedef void* (*uk_alloc_calloc_func_t)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(struct uk_alloc *a=
, size_t nmemb, size_t size);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(struct uk_alloc *a=
, __sz nmemb, __sz size);<br>
=C2=A0typedef int=C2=A0 =C2=A0(*uk_alloc_posix_memalign_func_t)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(struct uk_alloc *a=
, void **memptr, size_t align, size_t size);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(struct uk_alloc *a=
, void **memptr, __sz align, __sz size);<br>
=C2=A0typedef void* (*uk_alloc_memalign_func_t)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(struct uk_alloc *a=
, size_t align, size_t size);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(struct uk_alloc *a=
, __sz align, __sz size);<br>
=C2=A0typedef void* (*uk_alloc_realloc_func_t)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(struct uk_alloc *a=
, void *ptr, size_t size);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(struct uk_alloc *a=
, void *ptr, __sz size);<br>
=C2=A0typedef void=C2=A0 (*uk_alloc_free_func_t)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (struct uk_alloc *a=
, void *ptr);<br>
=C2=A0typedef void* (*uk_alloc_palloc_func_t)<br>
@@ -65,27 +63,27 @@ typedef void* (*uk_alloc_palloc_func_t)<br>
=C2=A0typedef void=C2=A0 (*uk_alloc_pfree_func_t)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (struct uk_alloc *a=
, void *ptr, unsigned long num_pages);<br>
=C2=A0typedef int=C2=A0 =C2=A0(*uk_alloc_addmem_func_t)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(struct uk_alloc *a=
, void *base, size_t size);<br>
-typedef ssize_t (*uk_alloc_availmem_func_t)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(struct uk_alloc *a=
, void *base, __sz size);<br>
+typedef __ssz (*uk_alloc_availmem_func_t)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (struct uk_alloc *a=
);<br>
=C2=A0typedef long=C2=A0 (*uk_alloc_pavail_func_t)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (struct uk_alloc *a=
);<br>
<br>
=C2=A0#if CONFIG_LIBUKALLOC_IFSTATS<br>
=C2=A0struct uk_alloc_stats {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t last_alloc_size; /* size of the last all=
ocation */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t max_alloc_size; /* biggest satisfied all=
ocation size */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t min_alloc_size; /* smallest satisfied al=
location size */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz last_alloc_size; /* size of the last alloc=
ation */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz max_alloc_size; /* biggest satisfied alloc=
ation size */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz min_alloc_size; /* smallest satisfied allo=
cation size */<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0uint64_t tot_nb_allocs; /* total number of sati=
sfied allocations */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0uint64_t tot_nb_frees;=C2=A0 /* total number of=
 satisfied free operations */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0int64_t cur_nb_allocs; /* current number of act=
ive allocations */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0int64_t max_nb_allocs; /* maximum number of act=
ive allocations */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__u64 tot_nb_allocs; /* total number of satisfi=
ed allocations */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__u64 tot_nb_frees;=C2=A0 /* total number of sa=
tisfied free operations */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__s64 cur_nb_allocs; /* current number of activ=
e allocations */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__s64 max_nb_allocs; /* maximum number of activ=
e allocations */<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t cur_mem_use; /* current used memory by =
allocations */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t max_mem_use; /* maximum amount of memor=
y used by allocations */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz cur_mem_use; /* current used memory by al=
locations */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz max_mem_use; /* maximum amount of memory =
used by allocations */<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0uint64_t nb_enomem; /* number of times failing =
allocation requests */<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__u64 nb_enomem; /* number of times failing all=
ocation requests */<br>
=C2=A0};<br>
=C2=A0#endif /* CONFIG_LIBUKALLOC_IFSTATS */<br>
<br>
@@ -120,7 +118,7 @@ struct uk_alloc {<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* internal */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct uk_alloc *next;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0int8_t priv[];<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__u8 priv[];<br>
=C2=A0};<br>
<br>
=C2=A0extern struct uk_alloc *_uk_alloc_head;<br>
@@ -128,7 +126,7 @@ extern struct uk_alloc *_uk_alloc_head;<br>
=C2=A0/* Iterate over all registered allocators */<br>
=C2=A0#define uk_alloc_foreach(iter)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0\<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 for (iter =3D _uk_alloc_head;=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 iter !=3D NULL;=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 iter !=3D __NULL;=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0iter =3D iter-&gt;next)<br>
<br>
=C2=A0#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB<br>
@@ -141,34 +139,34 @@ static inline struct uk_alloc *uk_alloc_get_default(v=
oid)<br>
=C2=A0#endif /* !CONFIG_LIBUKALLOC_IFSTATS_PERLIB */<br>
<br>
=C2=A0/* wrapper functions */<br>
-static inline void *uk_do_malloc(struct uk_alloc *a, size_t size)<br>
+static inline void *uk_do_malloc(struct uk_alloc *a, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return a-&gt;malloc(a, size);<br>
=C2=A0}<br>
<br>
-static inline void *uk_malloc(struct uk_alloc *a, size_t size)<br>
+static inline void *uk_malloc(struct uk_alloc *a, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (unlikely(!a)) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 errno =3D ENOMEM;<b=
r>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return uk_do_malloc(a, size);<br>
=C2=A0}<br>
<br>
=C2=A0static inline void *uk_do_calloc(struct uk_alloc *a,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 size_t nmemb, size_t size)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 __sz nmemb, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return a-&gt;calloc(a, nmemb, size);<br>
=C2=A0}<br>
<br>
=C2=A0static inline void *uk_calloc(struct uk_alloc *a,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0size_t nmemb, size_t size)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__sz nmemb, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (unlikely(!a)) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 errno =3D ENOMEM;<b=
r>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return uk_do_calloc(a, nmemb, size);<br>
=C2=A0}<br>
@@ -177,50 +175,50 @@ static inline void *uk_calloc(struct uk_alloc *a,<br>
=C2=A0#define uk_zalloc(a, size) uk_calloc((a), 1, (size))<br>
<br>
=C2=A0static inline void *uk_do_realloc(struct uk_alloc *a,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0void *ptr, size_t size)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0void *ptr, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return a-&gt;realloc(a, ptr, size);<br>
=C2=A0}<br>
<br>
-static inline void *uk_realloc(struct uk_alloc *a, void *ptr, size_t size)=
<br>
+static inline void *uk_realloc(struct uk_alloc *a, void *ptr, __sz size)<b=
r>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (unlikely(!a)) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 errno =3D ENOMEM;<b=
r>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return uk_do_realloc(a, ptr, size);<br>
=C2=A0}<br>
<br>
=C2=A0static inline int uk_do_posix_memalign(struct uk_alloc *a, void **mem=
ptr,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 size_t align, s=
ize_t size)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 __sz align, __s=
z size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return a-&gt;posix_memalign(a, memptr, align, s=
ize);<br>
=C2=A0}<br>
<br>
=C2=A0static inline int uk_posix_memalign(struct uk_alloc *a, void **memptr=
,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0size_t align, size_t si=
ze)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__sz align, __sz size)<=
br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (unlikely(!a)) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*memptr =3D NULL;<b=
r>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*memptr =3D __NULL;=
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return ENOMEM;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return uk_do_posix_memalign(a, memptr, align, s=
ize);<br>
=C2=A0}<br>
<br>
=C2=A0static inline void *uk_do_memalign(struct uk_alloc *a,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 size_t align, size_t size)<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 __sz align, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return a-&gt;memalign(a, align, size);<br>
=C2=A0}<br>
<br>
=C2=A0static inline void *uk_memalign(struct uk_alloc *a,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0size_t align, size_t size)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__sz align, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (unlikely(!a))<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return uk_do_memalign(a, align, size);<br>
=C2=A0}<br>
<br>
@@ -244,7 +242,7 @@ static inline void *uk_do_palloc(struct uk_alloc *a, un=
signed long num_pages)<br>
=C2=A0static inline void *uk_palloc(struct uk_alloc *a, unsigned long num_p=
ages)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (unlikely(!a || !a-&gt;palloc))<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return __NULL;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return uk_do_palloc(a, num_pages);<br>
=C2=A0}<br>
<br>
@@ -262,7 +260,7 @@ static inline void uk_pfree(struct uk_alloc *a, void *p=
tr,<br>
=C2=A0}<br>
<br>
=C2=A0static inline int uk_alloc_addmem(struct uk_alloc *a, void *base,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0size_t size)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (a-&gt;addmem)<br>
@@ -272,11 +270,11 @@ static inline int uk_alloc_addmem(struct uk_alloc *a,=
 void *base,<br>
=C2=A0}<br>
<br>
=C2=A0/* current biggest allocation request possible */<br>
-static inline ssize_t uk_alloc_maxalloc(struct uk_alloc *a)<br>
+static inline __ssz uk_alloc_maxalloc(struct uk_alloc *a)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!a-&gt;maxalloc)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return (ssize_t) -E=
NOTSUP;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return (__ssz) -ENO=
TSUP;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return a-&gt;maxalloc(a);<br>
=C2=A0}<br>
<br>
@@ -289,11 +287,11 @@ static inline long uk_alloc_pmaxalloc(struct uk_alloc=
 *a)<br>
=C2=A0}<br>
<br>
=C2=A0/* total free memory of the allocator */<br>
-static inline ssize_t uk_alloc_availmem(struct uk_alloc *a)<br>
+static inline __ssz uk_alloc_availmem(struct uk_alloc *a)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!a-&gt;availmem)<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return (ssize_t) -E=
NOTSUP;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return (__ssz) -ENO=
TSUP;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return a-&gt;availmem(a);<br>
=C2=A0}<br>
<br>
@@ -305,7 +303,7 @@ static inline long uk_alloc_pavail(struct uk_alloc *a)<=
br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return a-&gt;pavail(a);<br>
=C2=A0}<br>
<br>
-size_t uk_alloc_availmem_total(void);<br>
+__sz uk_alloc_availmem_total(void);<br>
<br>
=C2=A0unsigned long uk_alloc_pavail_total(void);<br>
<br>
diff --git a/lib/ukalloc/include/uk/alloc_impl.h b/lib/ukalloc/include/uk/a=
lloc_impl.h<br>
index 961e36b5..1db4b5fe 100644<br>
--- a/lib/ukalloc/include/uk/alloc_impl.h<br>
+++ b/lib/ukalloc/include/uk/alloc_impl.h<br>
@@ -57,26 +57,26 @@ int uk_alloc_register(struct uk_alloc *a);<br>
=C2=A0/* Functions that can be used by allocators that implement palloc(),<=
br>
=C2=A0 * pfree() and potentially pavail(), pmaxalloc() only<br>
=C2=A0 */<br>
-void *uk_malloc_ifpages(struct uk_alloc *a, size_t size);<br>
-void *uk_realloc_ifpages(struct uk_alloc *a, void *ptr, size_t size);<br>
+void *uk_malloc_ifpages(struct uk_alloc *a, __sz size);<br>
+void *uk_realloc_ifpages(struct uk_alloc *a, void *ptr, __sz size);<br>
=C2=A0int uk_posix_memalign_ifpages(struct uk_alloc *a, void **memptr,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0size_t align, size_t size);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__sz align, __sz size);<br>
=C2=A0void uk_free_ifpages(struct uk_alloc *a, void *ptr);<br>
-ssize_t uk_alloc_availmem_ifpages(struct uk_alloc *a);<br>
-ssize_t uk_alloc_maxalloc_ifpages(struct uk_alloc *a);<br>
+__ssz uk_alloc_availmem_ifpages(struct uk_alloc *a);<br>
+__ssz uk_alloc_maxalloc_ifpages(struct uk_alloc *a);<br>
<br>
=C2=A0#if CONFIG_LIBUKALLOC_IFMALLOC<br>
-void *uk_malloc_ifmalloc(struct uk_alloc *a, size_t size);<br>
-void *uk_realloc_ifmalloc(struct uk_alloc *a, void *ptr, size_t size);<br>
+void *uk_malloc_ifmalloc(struct uk_alloc *a, __sz size);<br>
+void *uk_realloc_ifmalloc(struct uk_alloc *a, void *ptr, __sz size);<br>
=C2=A0int uk_posix_memalign_ifmalloc(struct uk_alloc *a, void **memptr,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 size_t align, size_t s=
ize);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 __sz align, __sz size)=
;<br>
=C2=A0void uk_free_ifmalloc(struct uk_alloc *a, void *ptr);<br>
=C2=A0#endif<br>
<br>
=C2=A0/* Functionality that is provided based on malloc() and posix_memalig=
n() */<br>
-void *uk_calloc_compat(struct uk_alloc *a, size_t num, size_t len);<br>
-void *uk_realloc_compat(struct uk_alloc *a, void *ptr, size_t size);<br>
-void *uk_memalign_compat(struct uk_alloc *a, size_t align, size_t len);<br=
>
+void *uk_calloc_compat(struct uk_alloc *a, __sz num, __sz len);<br>
+void *uk_realloc_compat(struct uk_alloc *a, void *ptr, __sz size);<br>
+void *uk_memalign_compat(struct uk_alloc *a, __sz align, __sz len);<br>
=C2=A0void *uk_palloc_compat(struct uk_alloc *a, unsigned long num_pages);<=
br>
=C2=A0void uk_pfree_compat(struct uk_alloc *a, void *ptr, unsigned long num=
_pages);<br>
=C2=A0long uk_alloc_pavail_compat(struct uk_alloc *a);<br>
@@ -110,7 +110,7 @@ static inline void __uk_alloc_stats_refresh_minmax(stru=
ct uk_alloc_stats *stats)<br>
=C2=A0}<br>
<br>
=C2=A0static inline void _uk_alloc_stats_count_alloc(struct uk_alloc_stats =
*stats,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 void *ptr, size_t size)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 void *ptr, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* TODO: SMP safety */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 uk_preempt_disable();<br>
@@ -128,7 +128,7 @@ static inline void _uk_alloc_stats_count_alloc(struct u=
k_alloc_stats *stats,<br>
=C2=A0}<br>
<br>
=C2=A0static inline void _uk_alloc_stats_count_free(struct uk_alloc_stats *=
stats,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0void *ptr, size_t size)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0void *ptr, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 uk_preempt_disable();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (likely(ptr)) {<br>
diff --git a/lib/ukalloc/libstats.c b/lib/ukalloc/libstats.c<br>
index 0424e8f5..d49d9dcc 100644<br>
--- a/lib/ukalloc/libstats.c<br>
+++ b/lib/ukalloc/libstats.c<br>
@@ -53,10 +53,10 @@ static inline struct uk_alloc *_uk_alloc_get_actual_def=
ault(void)<br>
=C2=A0}<br>
<br>
=C2=A0#define WATCH_STATS_START(p)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t _before_mem_use;=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t _before_nb_allocs;=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t _before_tot_nb_allocs;=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t _before_nb_enomem;=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz _before_mem_use;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz _before_nb_allocs;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz _before_tot_nb_allocs;=C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz _before_nb_enomem;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 uk_preempt_disable();=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 _before_mem_use=C2=A0 =C2=A0 =C2=A0 =C2=A0=3D (=
p)-&gt;_stats.cur_mem_use;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 \<br>
@@ -66,8 +66,8 @@ static inline struct uk_alloc *_uk_alloc_get_actual_defau=
lt(void)<br>
<br>
=C2=A0#define WATCH_STATS_END(p, nb_allocs_diff, nb_enomem_diff,=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 mem_use_diff, alloc_size)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t _nb_allocs =3D (p)-&gt;_stats.tot_nb_all=
ocs=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<b=
r>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0- _before_tot_nb_allocs;=C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz _nb_allocs =3D (p)-&gt;_stats.tot_nb_alloc=
s=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0\<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0- _before_tot_nb_allocs;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* NOTE: We assume that an allocator call does =
at<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* most one allocation. Otherwise we canno=
t currently<br>
@@ -77,9 +77,9 @@ static inline struct uk_alloc *_uk_alloc_get_actual_defau=
lt(void)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 *(mem_use_diff)=C2=A0 =C2=A0=3D (p)-&gt;_stats.=
cur_mem_use=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0\<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 - _before_mem_use;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0*(nb_allocs_diff) =3D (ssize_t) (p)-&gt;_stats.=
cur_nb_allocs=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0*(nb_allocs_diff) =3D (__ssz) (p)-&gt;_stats.cu=
r_nb_allocs=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 - _before_nb_allocs;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0*(nb_enomem_diff) =3D (ssize_t) (p)-&gt;_stats.=
nb_enomem=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0*(nb_enomem_diff) =3D (__ssz) (p)-&gt;_stats.nb=
_enomem=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 - _before_nb_enomem;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (_nb_allocs &gt; 0)=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 *(alloc_size) =3D (=
p)-&gt;_stats.last_alloc_size;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<b=
r>
@@ -88,10 +88,10 @@ static inline struct uk_alloc *_uk_alloc_get_actual_def=
ault(void)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 uk_preempt_enable();<br>
<br>
=C2=A0static inline void update_stats(struct uk_alloc_stats *stats,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t nb_allocs_diff,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t nb_enomem_diff,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t mem_use_diff,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0size_t last_alloc_size)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz nb_allocs_diff,<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz nb_enomem_diff,<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz mem_use_diff,<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__sz last_alloc_size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 uk_preempt_disable();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (nb_allocs_diff &gt;=3D 0)<br>
@@ -107,11 +107,11 @@ static inline void update_stats(struct uk_alloc_stats=
 *stats,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 uk_preempt_enable();<br>
=C2=A0}<br>
<br>
-static void *wrapper_malloc(struct uk_alloc *a, size_t size)<br>
+static void *wrapper_malloc(struct uk_alloc *a, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct uk_alloc *p =3D _uk_alloc_get_actual_def=
ault();<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t nb_allocs, mem_use, nb_enomem;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t alloc_size;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz nb_allocs, mem_use, nb_enomem;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz alloc_size;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 void *ret;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(p);<br>
@@ -125,11 +125,11 @@ static void *wrapper_malloc(struct uk_alloc *a, size_=
t size)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return ret;<br>
=C2=A0}<br>
<br>
-static void *wrapper_calloc(struct uk_alloc *a, size_t nmemb, size_t size)=
<br>
+static void *wrapper_calloc(struct uk_alloc *a, __sz nmemb, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct uk_alloc *p =3D _uk_alloc_get_actual_def=
ault();<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t nb_allocs, mem_use, nb_enomem;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t alloc_size;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz nb_allocs, mem_use, nb_enomem;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz alloc_size;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 void *ret;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(p);<br>
@@ -138,16 +138,17 @@ static void *wrapper_calloc(struct uk_alloc *a, size_=
t nmemb, size_t size)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ret =3D uk_do_calloc(p, nmemb, size);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 WATCH_STATS_END(p, &amp;nb_allocs, &amp;nb_enom=
em, &amp;mem_use, &amp;alloc_size);<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0update_stats(&amp;a-&gt;_stats, nb_allocs, nb_e=
nomem, mem_use, alloc_size);<br></blockquote><div>Shouldn&#39;t we make thi=
s check for `ret` in the others wrappers as well?=C2=A0</div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid=
 rgb(204,204,204);padding-left:1ex">
+=C2=A0 =C2=A0 =C2=A0 =C2=A0update_stats(&amp;a-&gt;_stats, nb_allocs, nb_e=
nomem, mem_use,<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ret =
!=3D NULL ? alloc_size : 0);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return ret;<br>
=C2=A0}<br>
<br>
=C2=A0static int wrapper_posix_memalign(struct uk_alloc *a, void **memptr,<=
br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0size_t align, size_t size)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__sz align, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct uk_alloc *p =3D _uk_alloc_get_actual_def=
ault();<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t nb_allocs, mem_use, nb_enomem;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t alloc_size;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz nb_allocs, mem_use, nb_enomem;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz alloc_size;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 int ret;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(p);<br>
@@ -160,11 +161,11 @@ static int wrapper_posix_memalign(struct uk_alloc *a,=
 void **memptr,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return ret;<br>
=C2=A0}<br>
<br>
-static void *wrapper_memalign(struct uk_alloc *a, size_t align, size_t siz=
e)<br>
+static void *wrapper_memalign(struct uk_alloc *a, __sz align, __sz size)<b=
r>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct uk_alloc *p =3D _uk_alloc_get_actual_def=
ault();<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t nb_allocs, mem_use, nb_enomem;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t alloc_size;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz nb_allocs, mem_use, nb_enomem;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz alloc_size;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 void *ret;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(p);<br>
@@ -177,11 +178,11 @@ static void *wrapper_memalign(struct uk_alloc *a, siz=
e_t align, size_t size)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return ret;<br>
=C2=A0}<br>
<br>
-static void *wrapper_realloc(struct uk_alloc *a, void *ptr, size_t size)<b=
r>
+static void *wrapper_realloc(struct uk_alloc *a, void *ptr, __sz size)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct uk_alloc *p =3D _uk_alloc_get_actual_def=
ault();<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t nb_allocs, mem_use, nb_enomem;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t alloc_size;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz nb_allocs, mem_use, nb_enomem;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz alloc_size;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 void *ret;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(p);<br>
@@ -197,8 +198,8 @@ static void *wrapper_realloc(struct uk_alloc *a, void *=
ptr, size_t size)<br>
=C2=A0static void wrapper_free(struct uk_alloc *a, void *ptr)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct uk_alloc *p =3D _uk_alloc_get_actual_def=
ault();<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t nb_allocs, mem_use, nb_enomem;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t alloc_size;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz nb_allocs, mem_use, nb_enomem;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz alloc_size;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(p);<br>
<br>
@@ -212,8 +213,8 @@ static void wrapper_free(struct uk_alloc *a, void *ptr)=
<br>
=C2=A0static void *wrapper_palloc(struct uk_alloc *a, unsigned long num_pag=
es)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct uk_alloc *p =3D _uk_alloc_get_actual_def=
ault();<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t nb_allocs, mem_use, nb_enomem;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t alloc_size;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz nb_allocs, mem_use, nb_enomem;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz alloc_size;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 void *ret;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(p);<br>
@@ -230,8 +231,8 @@ static void wrapper_pfree(struct uk_alloc *a, void *ptr=
,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 unsigned long num_pages)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct uk_alloc *p =3D _uk_alloc_get_actual_def=
ault();<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0ssize_t nb_allocs, mem_use, nb_enomem;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0size_t alloc_size;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__ssz nb_allocs, mem_use, nb_enomem;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0__sz alloc_size;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 UK_ASSERT(p);<br>
<br>
@@ -245,7 +246,7 @@ static void wrapper_pfree(struct uk_alloc *a, void *ptr=
,<br>
=C2=A0/* The following interfaces do not change allocation statistics,<br>
=C2=A0 * this is why we just forward the calls<br>
=C2=A0 */<br>
-static int wrapper_addmem(struct uk_alloc *a __unused, void *base, size_t =
size)<br>
+static int wrapper_addmem(struct uk_alloc *a __unused, void *base, __sz si=
ze)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct uk_alloc *p =3D _uk_alloc_get_actual_def=
ault();<br>
<br>
@@ -253,7 +254,7 @@ static int wrapper_addmem(struct uk_alloc *a __unused, =
void *base, size_t size)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return uk_alloc_addmem(p, base, size);<br>
=C2=A0}<br>
<br>
-static size_t wrapper_maxalloc(struct uk_alloc *a __unused)<br>
+static __ssz wrapper_maxalloc(struct uk_alloc *a __unused)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct uk_alloc *p =3D _uk_alloc_get_actual_def=
ault();<br>
<br>
@@ -261,7 +262,7 @@ static size_t wrapper_maxalloc(struct uk_alloc *a __unu=
sed)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return uk_alloc_maxalloc(p);<br>
=C2=A0}<br>
<br>
-static size_t wrapper_availmem(struct uk_alloc *a __unused)<br>
+static __ssz wrapper_availmem(struct uk_alloc *a __unused)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct uk_alloc *p =3D _uk_alloc_get_actual_def=
ault();<br>
<br>
diff --git a/lib/ukallocregion/region.c b/lib/ukallocregion/region.c<br>
index 963d03c8..2c5098b7 100644<br>
--- a/lib/ukallocregion/region.c<br>
+++ b/lib/ukallocregion/region.c<br>
@@ -47,6 +47,9 @@<br>
=C2=A0 * an introduction to region-based memory management.<br>
=C2=A0 */<br>
<br>
+#include &lt;stdint.h&gt;<br>
+#include &lt;stddef.h&gt;<br>
+#include &lt;sys/types.h&gt;<br>
=C2=A0#include &lt;uk/allocregion.h&gt;<br>
=C2=A0#include &lt;uk/alloc_impl.h&gt;<br>
=C2=A0#include &lt;uk/page.h&gt;=C2=A0 =C2=A0/* round_pgup() */<br>
diff --git a/plat/common/include/pci/pci_bus.h b/plat/common/include/pci/pc=
i_bus.h<br>
index db406a1b..d3235528 100644<br>
--- a/plat/common/include/pci/pci_bus.h<br>
+++ b/plat/common/include/pci/pci_bus.h<br>
@@ -66,6 +66,8 @@<br>
=C2=A0#ifndef __UKPLAT_COMMON_PCI_BUS_H__<br>
=C2=A0#define __UKPLAT_COMMON_PCI_BUS_H__<br>
<br>
+#include &lt;stdint.h&gt;<br>
+#include &lt;stddef.h&gt;<br>
=C2=A0#include &lt;uk/bus.h&gt;<br>
=C2=A0#include &lt;uk/alloc.h&gt;<br>
=C2=A0#include &lt;uk/ctors.h&gt;<br>
diff --git a/plat/common/memory.c b/plat/common/memory.c<br>
index c46a4b0e..de4a38a7 100644<br>
--- a/plat/common/memory.c<br>
+++ b/plat/common/memory.c<br>
@@ -34,6 +34,8 @@<br>
<br>
=C2=A0#include &lt;uk/plat/memory.h&gt;<br>
=C2=A0#include &lt;uk/plat/common/memory.h&gt;<br>
+#include &lt;uk/alloc.h&gt;<br>
+#include &lt;stddef.h&gt;<br>
<br>
=C2=A0static struct uk_alloc *plat_allocator;<br>
<br>
diff --git a/plat/xen/gnttab.c b/plat/xen/gnttab.c<br>
index 4f28df99..fd056572 100644<br>
--- a/plat/xen/gnttab.c<br>
+++ b/plat/xen/gnttab.c<br>
@@ -17,6 +17,7 @@<br>
=C2=A0 ********************************************************************=
********<br>
=C2=A0 */<br>
=C2=A0#include &lt;stdint.h&gt;<br>
+#include &lt;stddef.h&gt;<br>
=C2=A0#ifdef DBGGNT<br>
=C2=A0#include &lt;string.h&gt;<br>
=C2=A0#endif<br>
diff --git a/plat/xen/memory.c b/plat/xen/memory.c<br>
index 8e7a7dda..365bbaeb 100644<br>
--- a/plat/xen/memory.c<br>
+++ b/plat/xen/memory.c<br>
@@ -34,6 +34,8 @@<br>
=C2=A0 */<br>
<br>
=C2=A0#include &lt;string.h&gt;<br>
+#include &lt;stdint.h&gt;<br>
+#include &lt;stddef.h&gt;<br>
=C2=A0#include &lt;uk/plat/common/sections.h&gt;<br>
<br>
=C2=A0#include &lt;common/gnttab.h&gt;<br>
diff --git a/plat/xen/x86/gnttab.c b/plat/xen/x86/gnttab.c<br>
index b09d52bf..7a647481 100644<br>
--- a/plat/xen/x86/gnttab.c<br>
+++ b/plat/xen/x86/gnttab.c<br>
@@ -24,6 +24,7 @@<br>
=C2=A0/* Taken from Mini-OS */<br>
<br>
=C2=A0#include &lt;stdint.h&gt;<br>
+#include &lt;stddef.h&gt;<br>
=C2=A0#include &lt;uk/print.h&gt;<br>
=C2=A0#include &lt;xen/xen.h&gt;<br>
=C2=A0#include &lt;xen/grant_table.h&gt;<br>
-- <br>
2.20.1<br>
<br>
</blockquote></div></div>

--000000000000fbadab05bca49762--


From minios-devel-bounces@lists.xenproject.org Wed Mar 03 19:00:07 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 03 Mar 2021 19:00:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.92982.175464 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lHWj7-00023L-JY; Wed, 03 Mar 2021 19:00:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 92982.175464; Wed, 03 Mar 2021 19:00:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lHWj7-00022v-Ft; Wed, 03 Mar 2021 19:00:05 +0000
Received: by outflank-mailman (input) for mailman id 92982;
 Wed, 03 Mar 2021 19:00:04 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZSNq=IB=gmail.com=cezar.craciunoiu@srs-us1.protection.inumbo.net>)
 id 1lHWj6-0001pH-7z
 for minios-devel@lists.xen.org; Wed, 03 Mar 2021 19:00:04 +0000
Received: from mail-ej1-x62e.google.com (unknown [2a00:1450:4864:20::62e])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 964d3a56-afab-48a1-a104-3396534fcec2;
 Wed, 03 Mar 2021 19:00:03 +0000 (UTC)
Received: by mail-ej1-x62e.google.com with SMTP id r17so44258043ejy.13
 for <minios-devel@lists.xen.org>; Wed, 03 Mar 2021 11:00:03 -0800 (PST)
Received: from [192.168.0.3] ([86.120.251.226])
 by smtp.gmail.com with ESMTPSA id n2sm22203440ejl.1.2021.03.03.11.00.01
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 03 Mar 2021 11:00:01 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 964d3a56-afab-48a1-a104-3396534fcec2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:date:message-id:subject:from:to:cc:in-reply-to
         :references:user-agent;
        bh=xrCe5Zkohl68i0loq2DJNnRQC/s6TKIgmSHGiae1QME=;
        b=mTIEZRSHAbOLxUs7ucMpl45qaX/zpx9L+c/dxHTkOqNYm9yCGOcd+M4xKSEoJbfwGH
         Tgjx4ZLG5f5Poko1apCuOC9MO+klmWntOrl+OcK5wS3EMfBfbZ/HY51L6Hl4CEOO9Ckb
         2FfthUiiF/SSJneJlojZteSkJv39DAb4mdpbQfT/f/VEefKGrpSTWk2fn2tN2ITSkcEv
         dfUoLuBZaJjXDbBxL9zHt5rXORkCcbRsea3WoXTBh5f7I4FEROisjL7bVS50EBQFvgU8
         MX6UVgU54sZhVwYIcQFJvnkSScJwus9ljlzAuZrCUf3/6TJ0DaiypwGnhK+xuvHZUW6S
         wyHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:date:message-id:subject:from:to:cc
         :in-reply-to:references:user-agent;
        bh=xrCe5Zkohl68i0loq2DJNnRQC/s6TKIgmSHGiae1QME=;
        b=p5/P/MYfel/PHsitOuX+vvKNbguo9ZcrCakwH0DymQ10dNUIjwPPhO64DaTcL5ycR6
         G5BfBTCpilVuEYfDy9rDzN5FJrs1+Mz5sg81UIzmZxMdTMiSlVrplWzrAuYTXIw+5j2X
         iJfL0pct4zFXLblY3ZhTS5gO2ka2Cfogp+p0oU9yR4obl+Ky9Tyhl0akF/d8KzmTlwzX
         r8zV3YGPjcOcybpgEgYIGowO1A6jrArGIv0FIV7oi7EMZLcQdgwDc10LPxYw8w/3lC+x
         ybGeDA7+73U487wlFj/8HsOnnLJabUS3J0IXxYWQPyT9SdR0QmGIXfAnluUyV2wMF306
         VHWQ==
X-Gm-Message-State: AOAM532W+CdFsk6R+UoLUM9jWJuuDSswKseMfDvVILOXwlaxV/NkYTYc
	ypmZGykd+NN6rZ7l2zLiG18=
X-Google-Smtp-Source: ABdhPJx3P/upjHi/W0OQR83RjRRJFFgbXZm10RWOYVuHxioNfR1YGagwwCjw9T6kW09urI+UzL8V/w==
X-Received: by 2002:a17:906:f88a:: with SMTP id lg10mr265356ejb.39.1614798002323;
        Wed, 03 Mar 2021 11:00:02 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="----=_NextPart_50277361.063477969800"
MIME-Version: 1.0
Date: Wed, 03 Mar 2021 21:00:00 +0200
Message-ID: <Mailbird-b770fe31-a9a3-4bcf-820a-7c25442b0691@gmail.com>
Subject: Re: [UNIKRAFT PATCH 1/2] lib/ukallocpool: Always provide
 `uk_alloc_availmem()`, `uk_alloc_maxalloc()`
From: "Cezar Craciunoiu" <cezar.craciunoiu@gmail.com>
To: "Simon Kuenzer" <simon.kuenzer@neclab.eu>
Cc: "Simon Kuenzer" <simon.kuenzer@neclab.eu>,
 "" <minios-devel@lists.xen.org>
In-Reply-To: <20201209213150.18729-2-simon.kuenzer@neclab.eu>
References: <20201209213150.18729-1-simon.kuenzer@neclab.eu>
 <20201209213150.18729-2-simon.kuenzer@neclab.eu>
User-Agent: Mailbird/2.9.21.0
X-Mailbird-ID: Mailbird-b770fe31-a9a3-4bcf-820a-7c25442b0691@gmail.com

------=_NextPart_50277361.063477969800
Content-Type: text/plain;
 charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Hey Simon,

This patch looks good to me.

Just one small thing. Why do these two functions return a signed value if o=
bj_len is unsigned?

Cezar

Reviewed-by: Cezar Craciunoiu <cezar.craciunoiu@gmail.com [mailto:cezar.cra=
ciunoiu@gmail.com]>
On 2020-12-09 23:32:14, Simon Kuenzer <simon.kuenzer@neclab.eu> wrote:
Adopts to the changed meaning of `CONFIG_LIBUKALLLC_IFSTATS` and provide
`uk_alloc_availmem()` and `uk_alloc_maxalloc()` always.

Signed-off-by: Simon Kuenzer
---
lib/ukallocpool/pool.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/lib/ukallocpool/pool.c b/lib/ukallocpool/pool.c
index ad8ac24e..67f235bb 100644
--- a/lib/ukallocpool/pool.c
+++ b/lib/ukallocpool/pool.c
@@ -208,14 +208,19 @@ void uk_allocpool_return_batch(struct uk_allocpool *p,
_prepend_free_obj(p, obj[i]);
}

-#if CONFIG_LIBUKALLOC_IFSTATS
static ssize_t pool_availmem(struct uk_alloc *a)
{
struct uk_allocpool *p =3D ukalloc2pool(a);

- return (size_t) p->free_obj_count * p->obj_len;
+ return (ssize_t) (p->free_obj_count * p->obj_len);
+}
+
+static ssize_t pool_maxalloc(struct uk_alloc *a)
+{
+ struct uk_allocpool *p =3D ukalloc2pool(a);
+
+ return (ssize_t) p->obj_len;
}
-#endif

size_t uk_allocpool_reqmem(unsigned int obj_count, size_t obj_len,
size_t obj_align)
@@ -300,6 +305,8 @@ out:
pool_free,
pool_posix_memalign,
uk_memalign_compat,
+ pool_maxalloc,
+ pool_availmem,
NULL);
#if CONFIG_LIBUKALLOC_IFSTATS
p->self.availmem =3D pool_availmem;
--
2.20.1


------=_NextPart_50277361.063477969800
Content-Type: text/html;
 charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<div id=3D"__MailbirdStyleContent" style=3D"font-size: 10pt;font-family: Ar=
ial;color: #000000;text-align: left" dir=3D"ltr">=0A                       =
                 =0A                                        =0A            =
                                =0A                                        =
=0A                                        =0A                             =
           <span style=3D"font-size: 13.3333px">Hey Simon,</span><div style=
=3D"font-size: 13.3333px"><br></div><div style=3D"font-size: 13.3333px">Thi=
s patch looks good to me.</div><div style=3D"font-size: 13.3333px"><br></di=
v><div style=3D"font-size: 13.3333px">Just one small thing. Why do these tw=
o functions return a signed value if obj_len is unsigned?</div><div style=
=3D"font-size: 13.3333px"><br></div><div style=3D"font-size: 13.3333px">Cez=
ar</div><div style=3D"font-size: 13.3333px"><br></div><div style=3D"font-si=
ze: 13.3333px"><span style=3D"font-size: 13.3333px">Reviewed-by: Cezar Crac=
iunoiu &lt;</span><a href=3D"mailto:cezar.craciunoiu@gmail.com" title=3D"Se=
nd an email to cezar.craciunoiu@gmail.com; Send an email to cezar.craciunoi=
u@gmail.com" style=3D"font-size: 13.3333px;cursor: pointer;color: blue">cez=
ar.craciunoiu@gmail.com</a><span style=3D"font-size: 13.3333px">&gt;</span>=
</div><div class=3D"mb_sig"></div>=0A                                      =
  =0A                                        <blockquote class=3D"history_c=
ontainer" type=3D"cite" style=3D"border-left-style: solid;border-width: 1px=
;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">=0A=
                        <p style=3D"color: #AAAAAA; margin-top: 10px;">On 2=
020-12-09 23:32:14, Simon Kuenzer &lt;simon.kuenzer@neclab.eu&gt; wrote:</p=
><div style=3D"font-family:Arial,Helvetica,sans-serif">Adopts to the change=
d meaning of `CONFIG_LIBUKALLLC_IFSTATS` and provide=0A<br>`uk_alloc_availm=
em()` and `uk_alloc_maxalloc()` always.=0A<br>=0A<br>Signed-off-by: Simon K=
uenzer <simon.kuenzer@neclab.eu>=0A<br>---=0A<br> lib/ukallocpool/pool.c | =
13 ++++++++++---=0A<br> 1 file changed, 10 insertions(+), 3 deletions(-)=0A=
<br>=0A<br>diff --git a/lib/ukallocpool/pool.c b/lib/ukallocpool/pool.c=0A<=
br>index ad8ac24e..67f235bb 100644=0A<br>--- a/lib/ukallocpool/pool.c=0A<br=
>+++ b/lib/ukallocpool/pool.c=0A<br>@@ -208,14 +208,19 @@ void uk_allocpool=
_return_batch(struct uk_allocpool *p,=0A<br> 		_prepend_free_obj(p, obj[i])=
;=0A<br> }=0A<br> =0A<br>-#if CONFIG_LIBUKALLOC_IFSTATS=0A<br> static ssize=
_t pool_availmem(struct uk_alloc *a)=0A<br> {=0A<br> 	struct uk_allocpool *=
p =3D ukalloc2pool(a);=0A<br> =0A<br>-	return (size_t) p-&gt;free_obj_count=
 * p-&gt;obj_len;=0A<br>+	return (ssize_t) (p-&gt;free_obj_count * p-&gt;ob=
j_len);=0A<br>+}=0A<br>+=0A<br>+static ssize_t pool_maxalloc(struct uk_allo=
c *a)=0A<br>+{=0A<br>+	struct uk_allocpool *p =3D ukalloc2pool(a);=0A<br>+=
=0A<br>+	return (ssize_t) p-&gt;obj_len;=0A<br> }=0A<br>-#endif=0A<br> =0A<=
br> size_t uk_allocpool_reqmem(unsigned int obj_count, size_t obj_len,=0A<b=
r> 			   size_t obj_align)=0A<br>@@ -300,6 +305,8 @@ out:=0A<br> 			     po=
ol_free,=0A<br> 			     pool_posix_memalign,=0A<br> 			     uk_memalign_com=
pat,=0A<br>+			     pool_maxalloc,=0A<br>+			     pool_availmem,=0A<br> 			=
     NULL);=0A<br> #if CONFIG_LIBUKALLOC_IFSTATS=0A<br> 	p-&gt;self.availme=
m =3D pool_availmem;=0A<br>-- =0A<br>2.20.1=0A<br>=0A<br></simon.kuenzer@ne=
clab.eu></div></blockquote></div>
------=_NextPart_50277361.063477969800--


From minios-devel-bounces@lists.xenproject.org Wed Mar 03 19:00:10 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 03 Mar 2021 19:00:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.92983.175468 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lHWjC-0002Ab-Km; Wed, 03 Mar 2021 19:00:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 92983.175468; Wed, 03 Mar 2021 19:00:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lHWjC-0002AU-Hi; Wed, 03 Mar 2021 19:00:10 +0000
Received: by outflank-mailman (input) for mailman id 92983;
 Wed, 03 Mar 2021 19:00:09 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZSNq=IB=gmail.com=cezar.craciunoiu@srs-us1.protection.inumbo.net>)
 id 1lHWjB-0001pH-5F
 for minios-devel@lists.xen.org; Wed, 03 Mar 2021 19:00:09 +0000
Received: from mail-ed1-x531.google.com (unknown [2a00:1450:4864:20::531])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 91c3947e-21ee-433d-987e-b613dbabc2f6;
 Wed, 03 Mar 2021 19:00:06 +0000 (UTC)
Received: by mail-ed1-x531.google.com with SMTP id g3so31402463edb.11
 for <minios-devel@lists.xen.org>; Wed, 03 Mar 2021 11:00:06 -0800 (PST)
Received: from [192.168.0.3] ([86.120.251.226])
 by smtp.gmail.com with ESMTPSA id k9sm22922079edo.30.2021.03.03.11.00.04
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 03 Mar 2021 11:00:04 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 91c3947e-21ee-433d-987e-b613dbabc2f6
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:date:message-id:subject:from:to:cc:in-reply-to
         :references:user-agent;
        bh=mSzb0MwLFYeBh/ezHrJW9rxfnbYSlnpy/5WWOuNWrpw=;
        b=TR9SqAARm2v2AJWs3BYKrH3XRvnXrda3UvvmAJnHsW7GMCo/3UXVF4rYpp9vI4RCx0
         CD9goyuQo9fOe/HR54XztFnglFZVoBsicqcr+AvjEOAoGszyhrwkOtSvzrZACoxUQO5n
         S9o72jE/qxKu++Fo0Jv3oV6f2IMcr1ycdDQwDA7vUYAY78TqzCt0tk50QAlamcBd1kdm
         9EP5o55hU41xY7n/fUlOS9jNPdlTCvDRavXbk8pBBw1NDNq8mC3nJXAQFPoMkjjcPy+U
         STRoZ58tDlkfGZYv/XIf/gymjP9Hu5k/hpFoe9wWD+vtG5tJByEcXdvKqJ07CV9GxsID
         rCBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:date:message-id:subject:from:to:cc
         :in-reply-to:references:user-agent;
        bh=mSzb0MwLFYeBh/ezHrJW9rxfnbYSlnpy/5WWOuNWrpw=;
        b=rifk1CVBgwzErOHar0dDEIAnNYrP2WifgkMsNJZkDJmuUvmVP1/WsniwE3aUvZnlbn
         yeUzUt9HnWSW92kELMoQlMQfkIxZdq1FQDxes9orXm+8arbJXjlBA/EvqrbFT1JBNj29
         iU+Qs2WmfIDlhMH0ceNvcdLpZcbloj9v5/eO3vgr4nsL5Xb7syJoSXcLWBX5w2N59qop
         Var1YMvh37QXomZFiJ+EwFHocqvRy0lxOHnfp2egMR6C6CmQ6K3SdaJCBtnq7mEEamlS
         vOfV51CXeGR/TZ9mwoj4vM7+nOrSo+qTZgbEvQ8CQEzpa8bXL3+kZS7/z4Kf3PyOtZ8V
         8GxQ==
X-Gm-Message-State: AOAM533y5hVNbr/LNY7PtGrKX8y4VKXnwGqI3m7mTeFDXhATspQJRrW4
	CP03tM3gRwMuUOFWBj5wpIx73O68PAc=
X-Google-Smtp-Source: ABdhPJyT16wEJUj7iiGuVDQiHxI3nNMYPYfeP5gg4uufemjxd22hP9ymz09u8oWZQLVqjM1QrxPX6w==
X-Received: by 2002:a05:6402:2076:: with SMTP id bd22mr736039edb.378.1614798005297;
        Wed, 03 Mar 2021 11:00:05 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="----=_NextPart_9642910.408139278500"
MIME-Version: 1.0
Date: Wed, 03 Mar 2021 21:00:00 +0200
Message-ID: <Mailbird-bcfc10d7-2ba2-4888-865c-975e297a168f@gmail.com>
Subject: Re: [UNIKRAFT/NEWLIB PATCH] Enable per-library allocator statistics
From: "Cezar Craciunoiu" <cezar.craciunoiu@gmail.com>
To: "Simon Kuenzer" <simon.kuenzer@neclab.eu>
Cc: "Sharan Santhanam" <sharan.santhanam@neclab.eu>,
 "Felipe Huici" <felipe.huici@neclab.eu>,
 "Simon Kuenzer" <simon.kuenzer@neclab.eu>,
 "" <minios-devel@lists.xen.org>
In-Reply-To: <20201122000003.6811-1-simon.kuenzer@neclab.eu>
References: <20201122000003.6811-1-simon.kuenzer@neclab.eu>
User-Agent: Mailbird/2.9.21.0
X-Mailbird-ID: Mailbird-bcfc10d7-2ba2-4888-865c-975e297a168f@gmail.com

------=_NextPart_9642910.408139278500
Content-Type: text/plain;
 charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Hey Simon,

This patch looks good to me.

Cezar

Reviewed-by: Cezar Craciunoiu <cezar.craciunoiu@gmail.com [mailto:cezar.cra=
ciunoiu@gmail.com]>
On 2020-11-22 02:00:51, Simon Kuenzer <simon.kuenzer@neclab.eu> wrote:
Instruments the library so that per-library allocator statistics are
possible. We make sure that code that uses `malloc()`, `free()`, and
company will resolve `uk_alloc_get_default()` within their compilation
scope so that the individual wrapper allocators can be used.
For this purpose, we declare the allocator functions as `static inline`
within the corresponding headers (like ``). Since the libc
headers are modified, we apply the new behavior only when
`CONFIG_LIBUKALLOC_IFSTATS` is switched on.

Signed-off-by: Simon Kuenzer
---
This patch depends on the series 1574 for the Unikraft base repository:
https://patchwork.unikraft.org/project/unikraft/list/?series=3D1574
---
...ble-per-library-allocator-statistics.patch | 260 ++++++++++++++++++
1 file changed, 260 insertions(+)
create mode 100644 patches/0010-enable-per-library-allocator-statistics.pat=
ch

diff --git a/patches/0010-enable-per-library-allocator-statistics.patch b/p=
atches/0010-enable-per-library-allocator-statistics.patch
new file mode 100644
index 0000000..bc8467e
--- /dev/null
+++ b/patches/0010-enable-per-library-allocator-statistics.patch
@@ -0,0 +1,260 @@
+From: Simon Kuenzer
+Subject: Enable per-library allocator statistics
+
+Instruments the library so that per-library allocator statistics are
+possible. We make sure that code that uses `malloc()`, `free()`, and
+company will resolve `uk_alloc_get_default()` within their compilation
+scope so that the individual wrapper allocators can be used.
+For this purpose, we declare the allocator functions as `static inline`
+within the corresponding headers (like ``). Since the libc
+headers are modified, we apply the new behavior only when
+`CONFIG_LIBUKALLOC_IFSTATS` is switched on.
+
+Signed-off-by: Simon Kuenzer
+---
+diff -urNp a/newlib/libc/include/malloc.h b/newlib/libc/include/malloc.h
+--- a/newlib/libc/include/malloc.h 2020-11-18 11:15:46.000000000 +0100
++++ b/newlib/libc/include/malloc.h 2020-11-18 16:17:11.000000000 +0100
+@@ -11,6 +11,12 @@
+
+ /* include any machine-specific extensions */
+ #include
++#ifdef __Unikraft__
++#include
++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB
++#include
++#endif
++#endif
+
+ #ifdef __cplusplus
+ extern "C" {
+@@ -34,7 +38,17 @@ struct mallinfo {
+
+ /* The routines. */
+
++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB
++#ifndef __UK_HAVE_MALLOC__
++#define __UK_HAVE_MALLOC__
++static inline void *malloc(size_t size)
++{
++ return uk_malloc(uk_alloc_get_default(), size);
++}
++#endif /* __UK_HAVE_MALLOC__ */
++#else
+ extern _PTR malloc _PARAMS ((size_t));
++#endif
+ #ifdef __CYGWIN__
+ #undef _malloc_r
+ #define _malloc_r(r, s) malloc (s)
+@@ -42,7 +56,17 @@ extern _PTR malloc _PARAMS ((size_t));
+ extern _PTR _malloc_r _PARAMS ((struct _reent *, size_t));
+ #endif
+
++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB
++#ifndef __UK_HAVE_FREE__
++#define __UK_HAVE_FREE__
++static inline void free(void *ptr)
++{
++ return uk_free(uk_alloc_get_default(), ptr);
++}
++#endif /* __UK_HAVE_FREE__ */
++#else
+ extern _VOID free _PARAMS ((_PTR));
++#endif
+ #ifdef __CYGWIN__
+ #undef _free_r
+ #define _free_r(r, p) free (p)
+@@ -50,7 +74,17 @@ extern _VOID free _PARAMS ((_PTR));
+ extern _VOID _free_r _PARAMS ((struct _reent *, _PTR));
+ #endif
+
++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB
++#ifndef __UK_HAVE_REALLOC__
++#define __UK_HAVE_REALLOC__
++static inline void *realloc(void *ptr, size_t size)
++{
++ return uk_realloc(uk_alloc_get_default(), ptr, size);
++}
++#endif /* __UK_HAVE_REALLOC__ */
++#else
+ extern _PTR realloc _PARAMS ((_PTR, size_t));
++#endif
+ #ifdef __CYGWIN__
+ #undef _realloc_r
+ #define _realloc_r(r, p, s) realloc (p, s)
+@@ -58,7 +92,17 @@ extern _PTR realloc _PARAMS ((_PTR, size
+ extern _PTR _realloc_r _PARAMS ((struct _reent *, _PTR, size_t));
+ #endif
+
++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB
++#ifndef __UK_HAVE_CALLOC__
++#define __UK_HAVE_CALLOC__
++static inline void *calloc(size_t nmemb, size_t size)
++{
++ return uk_calloc(uk_alloc_get_default(), nmemb, size);
++}
++#endif /* __UK_HAVE_CALLOC__ */
++#else
+ extern _PTR calloc _PARAMS ((size_t, size_t));
++#endif
+ #ifdef __CYGWIN__
+ #undef _calloc_r
+ #define _calloc_r(r, s1, s2) calloc (s1, s2);
+@@ -66,7 +110,17 @@ extern _PTR calloc _PARAMS ((size_t, siz
+ extern _PTR _calloc_r _PARAMS ((struct _reent *, size_t, size_t));
+ #endif
+
++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB
++#ifndef __UK_HAVE_MEMALIGN__
++#define __UK_HAVE_MEMALIGN__
++static inline void *memalign(size_t align, size_t size)
++{
++ return uk_memalign(uk_alloc_get_default(), align, size);
++}
++#endif /* __UK_HAVE_MEMALIGN__ */
++#else
+ extern _PTR memalign _PARAMS ((size_t, size_t));
++#endif
+ #ifdef __CYGWIN__
+ #undef _memalign_r
+ #define _memalign_r(r, s1, s2) memalign (s1, s2);
+diff -urNp a/newlib/libc/include/stdlib.h b/newlib/libc/include/stdlib.h
+--- a/newlib/libc/include/stdlib.h 2020-11-18 11:15:47.000000000 +0100
++++ b/newlib/libc/include/stdlib.h 2020-11-18 16:27:19.000000000 +0100
+@@ -30,6 +30,13 @@
+ #include
+ #endif
+
++#ifdef __Unikraft__
++#include
++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB
++#include
++#endif
++#endif
++
+ _BEGIN_STD_C
+
+ typedef struct
+@@ -87,10 +92,30 @@ _PTR _EXFUN(bsearch,(const _PTR __key,
+ size_t __nmemb,
+ size_t __size,
+ __compar_fn_t _compar));
++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB
++#ifndef __UK_HAVE_CALLOC__
++#define __UK_HAVE_CALLOC__
++static inline void *calloc(size_t nmemb, size_t size)
++{
++ return uk_calloc(uk_alloc_get_default(), nmemb, size);
++}
++#endif /* __UK_HAVE_CALLOC__ */
++#else
+ _PTR _EXFUN_NOTHROW(calloc,(size_t __nmemb, size_t __size));
++#endif
+ div_t _EXFUN(div,(int __numer, int __denom));
+ _VOID _EXFUN(exit,(int __status) _ATTRIBUTE ((__noreturn__)));
++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB
++#ifndef __UK_HAVE_FREE__
++#define __UK_HAVE_FREE__
++static inline void free(void *ptr)
++{
++ return uk_free(uk_alloc_get_default(), ptr);
++}
++#endif /* __UK_HAVE_FREE__ */
++#else
+ _VOID _EXFUN_NOTHROW(free,(_PTR));
++#endif
+ char * _EXFUN(getenv,(const char *__string));
+ char * _EXFUN(_getenv_r,(struct _reent *, const char *__string));
+ char * _EXFUN(_findenv,(_CONST char *, int *));
+@@ -101,7 +126,17 @@ int _EXFUN(getsubopt,(char **, char * co
+ #endif
+ long _EXFUN(labs,(long));
+ ldiv_t _EXFUN(ldiv,(long __numer, long __denom));
++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB
++#ifndef __UK_HAVE_MALLOC__
++#define __UK_HAVE_MALLOC__
++static inline void *malloc(size_t size)
++{
++ return uk_malloc(uk_alloc_get_default(), size);
++}
++#endif /* __UK_HAVE_MALLOC__ */
++#else
+ _PTR _EXFUN_NOTHROW(malloc,(size_t __size));
++#endif
+ int _EXFUN(mblen,(const char *, size_t));
+ int _EXFUN(_mblen_r,(struct _reent *, const char *, size_t, _mbstate_t *)=
);
+ int _EXFUN(mbtowc,(wchar_t *__restrict, const char *__restrict, size_t));
+@@ -138,7 +173,17 @@ int _EXFUN(_mkstemps_r, (struct _reent *
+ char * _EXFUN(_mktemp_r, (struct _reent *, char *) _ATTRIBUTE ((__depreca=
ted__("the use of `mktemp' is dangerous; use `mkstemp' instead"))));
+ _VOID _EXFUN(qsort,(_PTR __base, size_t __nmemb, size_t __size, __compar_=
fn_t _compar));
+ int _EXFUN(rand,(_VOID));
++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB
++#ifndef __UK_HAVE_REALLOC__
++#define __UK_HAVE_REALLOC__
++static inline void *realloc(void *ptr, size_t size)
++{
++ return uk_realloc(uk_alloc_get_default(), ptr, size);
++}
++#endif /* __UK_HAVE_REALLOC__ */
++#else
+ _PTR _EXFUN_NOTHROW(realloc,(_PTR __r, size_t __size));
++#endif
+ #if __BSD_VISIBLE
+ void *reallocarray(void *, size_t, size_t) __result_use_check __alloc_siz=
e(2)
+ __alloc_size(3);
+@@ -282,8 +327,19 @@ int _EXFUN(_unsetenv_r,(struct _reent *,
+ #endif /* !__CYGWIN__ */
+
+ #if __POSIX_VISIBLE >=3D 200112
++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB
++#ifndef __UK_HAVE_POSIX_MEMALIGN__
++#define __UK_HAVE_POSIX_MEMALIGN__
++static inline int posix_memalign(void **memptr, size_t align, size_t size)
++{
++ return uk_posix_memalign(uk_alloc_get_default(),
++ memptr, align, size);
++}
++#endif /* __UK_HAVE_POSIX_MEMALIGN__ */
++#else
+ int _EXFUN(__nonnull (1) posix_memalign,(void **, size_t, size_t));
+ #endif
++#endif
+
+ char * _EXFUN(_dtoa_r,(struct _reent *, double, int, int, int *, int*, ch=
ar**));
+ #ifndef __CYGWIN__
+diff -urNp a/newlib/libc/stdlib/__atexit.c b/newlib/libc/stdlib/__atexit.c
+--- a/newlib/libc/stdlib/__atexit.c 2020-11-18 11:16:14.000000000 +0100
++++ b/newlib/libc/stdlib/__atexit.c 2020-11-18 16:33:40.000000000 +0100
+@@ -37,9 +37,14 @@
+ #include
+ #include
+ #include "atexit.h"
++#ifdef __Unikraft__
++#include
++#endif
+
++#if !CONFIG_LIBUKALLOC_IFSTATS_PERLIB
+ /* Make this a weak reference to avoid pulling in malloc. */
+ void * malloc(size_t) _ATTRIBUTE((__weak__));
++#endif
+
+ #ifdef _LITE_EXIT
+ /* As __call_exitprocs is weak reference in lite exit, make a
+diff -urNp a/newlib/libc/stdlib/__call_atexit.c b/newlib/libc/stdlib/__cal=
l_atexit.c
+--- a/newlib/libc/stdlib/__call_atexit.c 2020-11-18 11:16:14.000000000 +01=
00
++++ b/newlib/libc/stdlib/__call_atexit.c 2020-11-18 16:33:51.000000000 +01=
00
+@@ -7,9 +7,14 @@
+ #include
+ #include
+ #include "atexit.h"
++#ifdef __Unikraft__
++#include
++#endif
+
++#if !CONFIG_LIBUKALLOC_IFSTATS_PERLIB
+ /* Make this a weak reference to avoid pulling in free. */
+ void free(void *) _ATTRIBUTE((__weak__));
++#endif
+
+ #ifndef __SINGLE_THREAD__
+ __LOCK_INIT_RECURSIVE(, __atexit_recursive_mutex);
--
2.20.1


------=_NextPart_9642910.408139278500
Content-Type: text/html;
 charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<div id=3D"__MailbirdStyleContent" style=3D"font-size: 10pt;font-family: Ar=
ial;color: #000000;text-align: left" dir=3D"ltr">=0A                       =
                 =0A                                        =0A            =
                                =0A                                        =
=0A                                        =0A                             =
           <span style=3D"font-size: 13.3333px">Hey Simon,</span><div style=
=3D"font-size: 13.3333px"><br></div><div style=3D"font-size: 13.3333px">Thi=
s patch looks good to me.</div><div style=3D"font-size: 13.3333px"><br></di=
v><div style=3D"font-size: 13.3333px">Cezar</div><div style=3D"font-size: 1=
3.3333px"><br></div><div style=3D"font-size: 13.3333px"><span style=3D"font=
-size: 13.3333px">Reviewed-by: Cezar Craciunoiu &lt;</span><a href=3D"mailt=
o:cezar.craciunoiu@gmail.com" title=3D"Send an email to cezar.craciunoiu@gm=
ail.com" style=3D"font-size: 13.3333px;cursor: pointer;color: blue">cezar.c=
raciunoiu@gmail.com</a><span style=3D"font-size: 13.3333px">&gt;</span></di=
v><div class=3D"mb_sig"></div>=0A                                        =
=0A                                        <blockquote class=3D"history_con=
tainer" type=3D"cite" style=3D"border-left-style: solid;border-width: 1px;m=
argin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">=0A  =
                      <p style=3D"color: #AAAAAA; margin-top: 10px;">On 202=
0-11-22 02:00:51, Simon Kuenzer &lt;simon.kuenzer@neclab.eu&gt; wrote:</p><=
div style=3D"font-family:Arial,Helvetica,sans-serif">Instruments the librar=
y so that per-library allocator statistics are=0A<br>possible. We make sure=
 that code that uses `malloc()`, `free()`, and=0A<br>company will resolve `=
uk_alloc_get_default()` within their compilation=0A<br>scope so that the in=
dividual wrapper allocators can be used.=0A<br>For this purpose, we declare=
 the allocator functions as `static inline`=0A<br>within the corresponding =
headers (like `<stdlib.h>`). Since the libc=0A<br>headers are modified, we =
apply the new behavior only when=0A<br>`CONFIG_LIBUKALLOC_IFSTATS` is switc=
hed on.=0A<br>=0A<br>Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>=
=0A<br>---=0A<br>This patch depends on the series 1574 for the Unikraft bas=
e repository:=0A<br>https://patchwork.unikraft.org/project/unikraft/list/?s=
eries=3D1574=0A<br>---=0A<br> ...ble-per-library-allocator-statistics.patch=
 | 260 ++++++++++++++++++=0A<br> 1 file changed, 260 insertions(+)=0A<br> c=
reate mode 100644 patches/0010-enable-per-library-allocator-statistics.patc=
h=0A<br>=0A<br>diff --git a/patches/0010-enable-per-library-allocator-stati=
stics.patch b/patches/0010-enable-per-library-allocator-statistics.patch=0A=
<br>new file mode 100644=0A<br>index 0000000..bc8467e=0A<br>--- /dev/null=
=0A<br>+++ b/patches/0010-enable-per-library-allocator-statistics.patch=0A<=
br>@@ -0,0 +1,260 @@=0A<br>+From: Simon Kuenzer <simon.kuenzer@neclab.eu>=
=0A<br>+Subject: Enable per-library allocator statistics=0A<br>+=0A<br>+Ins=
truments the library so that per-library allocator statistics are=0A<br>+po=
ssible. We make sure that code that uses `malloc()`, `free()`, and=0A<br>+c=
ompany will resolve `uk_alloc_get_default()` within their compilation=0A<br=
>+scope so that the individual wrapper allocators can be used.=0A<br>+For t=
his purpose, we declare the allocator functions as `static inline`=0A<br>+w=
ithin the corresponding headers (like `<stdlib.h>`). Since the libc=0A<br>+=
headers are modified, we apply the new behavior only when=0A<br>+`CONFIG_LI=
BUKALLOC_IFSTATS` is switched on.=0A<br>+=0A<br>+Signed-off-by: Simon Kuenz=
er <simon.kuenzer@neclab.eu>=0A<br>+---=0A<br>+diff -urNp a/newlib/libc/inc=
lude/malloc.h b/newlib/libc/include/malloc.h=0A<br>+--- a/newlib/libc/inclu=
de/malloc.h	2020-11-18 11:15:46.000000000 +0100=0A<br>++++ b/newlib/libc/in=
clude/malloc.h	2020-11-18 16:17:11.000000000 +0100=0A<br>+@@ -11,6 +11,12 @=
@=0A<br>+ =0A<br>+ /* include any machine-specific extensions */=0A<br>+ #i=
nclude <machine malloc.h=3D"">=0A<br>++#ifdef __Unikraft__=0A<br>++#include=
 <uk config.h=3D"">=0A<br>++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB=0A<br>++#i=
nclude <uk alloc.h=3D"">=0A<br>++#endif=0A<br>++#endif=0A<br>+ =0A<br>+ #if=
def __cplusplus=0A<br>+ extern "C" {=0A<br>+@@ -34,7 +38,17 @@ struct malli=
nfo {=0A<br>+ =0A<br>+ /* The routines.  */=0A<br>+ =0A<br>++#if CONFIG_LIB=
UKALLOC_IFSTATS_PERLIB=0A<br>++#ifndef __UK_HAVE_MALLOC__=0A<br>++#define _=
_UK_HAVE_MALLOC__=0A<br>++static inline void *malloc(size_t size)=0A<br>++{=
=0A<br>++	return uk_malloc(uk_alloc_get_default(), size);=0A<br>++}=0A<br>+=
+#endif /* __UK_HAVE_MALLOC__ */=0A<br>++#else=0A<br>+ extern _PTR malloc _=
PARAMS ((size_t));=0A<br>++#endif=0A<br>+ #ifdef __CYGWIN__=0A<br>+ #undef =
_malloc_r=0A<br>+ #define _malloc_r(r, s) malloc (s)=0A<br>+@@ -42,7 +56,17=
 @@ extern _PTR malloc _PARAMS ((size_t));=0A<br>+ extern _PTR _malloc_r _P=
ARAMS ((struct _reent *, size_t));=0A<br>+ #endif=0A<br>+ =0A<br>++#if CONF=
IG_LIBUKALLOC_IFSTATS_PERLIB=0A<br>++#ifndef __UK_HAVE_FREE__=0A<br>++#defi=
ne __UK_HAVE_FREE__=0A<br>++static inline void free(void *ptr)=0A<br>++{=0A=
<br>++	return uk_free(uk_alloc_get_default(), ptr);=0A<br>++}=0A<br>++#endi=
f /* __UK_HAVE_FREE__ */=0A<br>++#else=0A<br>+ extern _VOID free _PARAMS ((=
_PTR));=0A<br>++#endif=0A<br>+ #ifdef __CYGWIN__=0A<br>+ #undef _free_r=0A<=
br>+ #define _free_r(r, p) free (p)=0A<br>+@@ -50,7 +74,17 @@ extern _VOID =
free _PARAMS ((_PTR));=0A<br>+ extern _VOID _free_r _PARAMS ((struct _reent=
 *, _PTR));=0A<br>+ #endif=0A<br>+ =0A<br>++#if CONFIG_LIBUKALLOC_IFSTATS_P=
ERLIB=0A<br>++#ifndef __UK_HAVE_REALLOC__=0A<br>++#define __UK_HAVE_REALLOC=
__=0A<br>++static inline void *realloc(void *ptr, size_t size)=0A<br>++{=0A=
<br>++	return uk_realloc(uk_alloc_get_default(), ptr, size);=0A<br>++}=0A<b=
r>++#endif /* __UK_HAVE_REALLOC__ */=0A<br>++#else=0A<br>+ extern _PTR real=
loc _PARAMS ((_PTR, size_t));=0A<br>++#endif=0A<br>+ #ifdef __CYGWIN__=0A<b=
r>+ #undef _realloc_r=0A<br>+ #define _realloc_r(r, p, s) realloc (p, s)=0A=
<br>+@@ -58,7 +92,17 @@ extern _PTR realloc _PARAMS ((_PTR, size=0A<br>+ ex=
tern _PTR _realloc_r _PARAMS ((struct _reent *, _PTR, size_t));=0A<br>+ #en=
dif=0A<br>+ =0A<br>++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB=0A<br>++#ifndef _=
_UK_HAVE_CALLOC__=0A<br>++#define __UK_HAVE_CALLOC__=0A<br>++static inline =
void *calloc(size_t nmemb, size_t size)=0A<br>++{=0A<br>++	return uk_calloc=
(uk_alloc_get_default(), nmemb, size);=0A<br>++}=0A<br>++#endif /* __UK_HAV=
E_CALLOC__ */=0A<br>++#else=0A<br>+ extern _PTR calloc _PARAMS ((size_t, si=
ze_t));=0A<br>++#endif=0A<br>+ #ifdef __CYGWIN__=0A<br>+ #undef _calloc_r=
=0A<br>+ #define _calloc_r(r, s1, s2) calloc (s1, s2);=0A<br>+@@ -66,7 +110=
,17 @@ extern _PTR calloc _PARAMS ((size_t, siz=0A<br>+ extern _PTR _calloc=
_r _PARAMS ((struct _reent *, size_t, size_t));=0A<br>+ #endif=0A<br>+ =0A<=
br>++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB=0A<br>++#ifndef __UK_HAVE_MEMALIG=
N__=0A<br>++#define __UK_HAVE_MEMALIGN__=0A<br>++static inline void *memali=
gn(size_t align, size_t size)=0A<br>++{=0A<br>++	return uk_memalign(uk_allo=
c_get_default(), align, size);=0A<br>++}=0A<br>++#endif /* __UK_HAVE_MEMALI=
GN__ */=0A<br>++#else=0A<br>+ extern _PTR memalign _PARAMS ((size_t, size_t=
));=0A<br>++#endif=0A<br>+ #ifdef __CYGWIN__=0A<br>+ #undef _memalign_r=0A<=
br>+ #define _memalign_r(r, s1, s2) memalign (s1, s2);=0A<br>+diff -urNp a/=
newlib/libc/include/stdlib.h b/newlib/libc/include/stdlib.h=0A<br>+--- a/ne=
wlib/libc/include/stdlib.h	2020-11-18 11:15:47.000000000 +0100=0A<br>++++ b=
/newlib/libc/include/stdlib.h	2020-11-18 16:27:19.000000000 +0100=0A<br>+@@=
 -30,6 +30,13 @@=0A<br>+ #include <xlocale.h>=0A<br>+ #endif=0A<br>+ =0A<br=
>++#ifdef __Unikraft__=0A<br>++#include <uk config.h=3D"">=0A<br>++#if CONF=
IG_LIBUKALLOC_IFSTATS_PERLIB=0A<br>++#include <uk alloc.h=3D"">=0A<br>++#en=
dif=0A<br>++#endif=0A<br>++=0A<br>+ _BEGIN_STD_C=0A<br>+ =0A<br>+ typedef s=
truct =0A<br>+@@ -87,10 +92,30 @@ _PTR	_EXFUN(bsearch,(const _PTR __key,=0A=
<br>+ 		       size_t __nmemb,=0A<br>+ 		       size_t __size,=0A<br>+ 		  =
     __compar_fn_t _compar));=0A<br>++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB=
=0A<br>++#ifndef __UK_HAVE_CALLOC__=0A<br>++#define __UK_HAVE_CALLOC__=0A<b=
r>++static inline void *calloc(size_t nmemb, size_t size)=0A<br>++{=0A<br>+=
+	return uk_calloc(uk_alloc_get_default(), nmemb, size);=0A<br>++}=0A<br>++=
#endif /* __UK_HAVE_CALLOC__ */=0A<br>++#else=0A<br>+ _PTR	_EXFUN_NOTHROW(c=
alloc,(size_t __nmemb, size_t __size));=0A<br>++#endif=0A<br>+ div_t	_EXFUN=
(div,(int __numer, int __denom));=0A<br>+ _VOID	_EXFUN(exit,(int __status) =
_ATTRIBUTE ((__noreturn__)));=0A<br>++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB=
=0A<br>++#ifndef __UK_HAVE_FREE__=0A<br>++#define __UK_HAVE_FREE__=0A<br>++=
static inline void free(void *ptr)=0A<br>++{=0A<br>++	return uk_free(uk_all=
oc_get_default(), ptr);=0A<br>++}=0A<br>++#endif /* __UK_HAVE_FREE__ */=0A<=
br>++#else=0A<br>+ _VOID	_EXFUN_NOTHROW(free,(_PTR));=0A<br>++#endif=0A<br>=
+ char *  _EXFUN(getenv,(const char *__string));=0A<br>+ char *	_EXFUN(_get=
env_r,(struct _reent *, const char *__string));=0A<br>+ char *	_EXFUN(_find=
env,(_CONST char *, int *));=0A<br>+@@ -101,7 +126,17 @@ int	_EXFUN(getsubo=
pt,(char **, char * co=0A<br>+ #endif=0A<br>+ long	_EXFUN(labs,(long));=0A<=
br>+ ldiv_t	_EXFUN(ldiv,(long __numer, long __denom));=0A<br>++#if CONFIG_L=
IBUKALLOC_IFSTATS_PERLIB=0A<br>++#ifndef __UK_HAVE_MALLOC__=0A<br>++#define=
 __UK_HAVE_MALLOC__=0A<br>++static inline void *malloc(size_t size)=0A<br>+=
+{=0A<br>++	return uk_malloc(uk_alloc_get_default(), size);=0A<br>++}=0A<br=
>++#endif /* __UK_HAVE_MALLOC__ */=0A<br>++#else=0A<br>+ _PTR	_EXFUN_NOTHRO=
W(malloc,(size_t __size));=0A<br>++#endif=0A<br>+ int	_EXFUN(mblen,(const c=
har *, size_t));=0A<br>+ int	_EXFUN(_mblen_r,(struct _reent *, const char *=
, size_t, _mbstate_t *));=0A<br>+ int	_EXFUN(mbtowc,(wchar_t *__restrict, c=
onst char *__restrict, size_t));=0A<br>+@@ -138,7 +173,17 @@ int	_EXFUN(_mk=
stemps_r, (struct _reent *=0A<br>+ char *	_EXFUN(_mktemp_r, (struct _reent =
*, char *) _ATTRIBUTE ((__deprecated__("the use of `mktemp' is dangerous; u=
se `mkstemp' instead"))));=0A<br>+ _VOID	_EXFUN(qsort,(_PTR __base, size_t =
__nmemb, size_t __size, __compar_fn_t _compar));=0A<br>+ int	_EXFUN(rand,(_=
VOID));=0A<br>++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB=0A<br>++#ifndef __UK_H=
AVE_REALLOC__=0A<br>++#define __UK_HAVE_REALLOC__=0A<br>++static inline voi=
d *realloc(void *ptr, size_t size)=0A<br>++{=0A<br>++	return uk_realloc(uk_=
alloc_get_default(), ptr, size);=0A<br>++}=0A<br>++#endif /* __UK_HAVE_REAL=
LOC__ */=0A<br>++#else=0A<br>+ _PTR	_EXFUN_NOTHROW(realloc,(_PTR __r, size_=
t __size));=0A<br>++#endif=0A<br>+ #if __BSD_VISIBLE=0A<br>+ void	*realloca=
rray(void *, size_t, size_t) __result_use_check __alloc_size(2)=0A<br>+ 	  =
  __alloc_size(3);=0A<br>+@@ -282,8 +327,19 @@ int	_EXFUN(_unsetenv_r,(stru=
ct _reent *,=0A<br>+ #endif /* !__CYGWIN__ */=0A<br>+ =0A<br>+ #if __POSIX_=
VISIBLE &gt;=3D 200112=0A<br>++#if CONFIG_LIBUKALLOC_IFSTATS_PERLIB=0A<br>+=
+#ifndef __UK_HAVE_POSIX_MEMALIGN__=0A<br>++#define __UK_HAVE_POSIX_MEMALIG=
N__=0A<br>++static inline int posix_memalign(void **memptr, size_t align, s=
ize_t size)=0A<br>++{=0A<br>++	return uk_posix_memalign(uk_alloc_get_defaul=
t(),=0A<br>++				 memptr, align, size);=0A<br>++}=0A<br>++#endif /* __UK_HA=
VE_POSIX_MEMALIGN__ */=0A<br>++#else=0A<br>+ int _EXFUN(__nonnull (1) posix=
_memalign,(void **, size_t, size_t));=0A<br>+ #endif=0A<br>++#endif=0A<br>+=
 =0A<br>+ char *	_EXFUN(_dtoa_r,(struct _reent *, double, int, int, int *, =
int*, char**));=0A<br>+ #ifndef __CYGWIN__=0A<br>+diff -urNp a/newlib/libc/=
stdlib/__atexit.c b/newlib/libc/stdlib/__atexit.c=0A<br>+--- a/newlib/libc/=
stdlib/__atexit.c	2020-11-18 11:16:14.000000000 +0100=0A<br>++++ b/newlib/l=
ibc/stdlib/__atexit.c	2020-11-18 16:33:40.000000000 +0100=0A<br>+@@ -37,9 +=
37,14 @@=0A<br>+ #include <reent.h>=0A<br>+ #include <sys lock.h=3D"">=0A<b=
r>+ #include "atexit.h"=0A<br>++#ifdef __Unikraft__=0A<br>++#include <uk co=
nfig.h=3D"">=0A<br>++#endif=0A<br>+ =0A<br>++#if !CONFIG_LIBUKALLOC_IFSTATS=
_PERLIB=0A<br>+ /* Make this a weak reference to avoid pulling in malloc.  =
*/=0A<br>+ void * malloc(size_t) _ATTRIBUTE((__weak__));=0A<br>++#endif=0A<=
br>+ =0A<br>+ #ifdef _LITE_EXIT=0A<br>+ /* As __call_exitprocs is weak refe=
rence in lite exit, make a=0A<br>+diff -urNp a/newlib/libc/stdlib/__call_at=
exit.c b/newlib/libc/stdlib/__call_atexit.c=0A<br>+--- a/newlib/libc/stdlib=
/__call_atexit.c	2020-11-18 11:16:14.000000000 +0100=0A<br>++++ b/newlib/li=
bc/stdlib/__call_atexit.c	2020-11-18 16:33:51.000000000 +0100=0A<br>+@@ -7,=
9 +7,14 @@=0A<br>+ #include <reent.h>=0A<br>+ #include <sys lock.h=3D"">=0A=
<br>+ #include "atexit.h"=0A<br>++#ifdef __Unikraft__=0A<br>++#include <uk =
config.h=3D"">=0A<br>++#endif=0A<br>+ =0A<br>++#if !CONFIG_LIBUKALLOC_IFSTA=
TS_PERLIB=0A<br>+ /* Make this a weak reference to avoid pulling in free.  =
*/=0A<br>+ void free(void *) _ATTRIBUTE((__weak__));=0A<br>++#endif=0A<br>+=
 =0A<br>+ #ifndef __SINGLE_THREAD__=0A<br>+ __LOCK_INIT_RECURSIVE(, __atexi=
t_recursive_mutex);=0A<br>-- =0A<br>2.20.1=0A<br>=0A<br></uk></sys></reent.=
h></uk></sys></reent.h></uk></uk></xlocale.h></uk></uk></machine></simon.ku=
enzer@neclab.eu></stdlib.h></simon.kuenzer@neclab.eu></simon.kuenzer@neclab=
.eu></stdlib.h></div></blockquote></div>
------=_NextPart_9642910.408139278500--


From minios-devel-bounces@lists.xenproject.org Wed Mar 03 19:00:15 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 03 Mar 2021 19:00:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.92984.175472 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lHWjH-0002C1-N7; Wed, 03 Mar 2021 19:00:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 92984.175472; Wed, 03 Mar 2021 19:00:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lHWjH-0002Bu-K8; Wed, 03 Mar 2021 19:00:15 +0000
Received: by outflank-mailman (input) for mailman id 92984;
 Wed, 03 Mar 2021 19:00:14 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZSNq=IB=gmail.com=cezar.craciunoiu@srs-us1.protection.inumbo.net>)
 id 1lHWjG-0001pH-5N
 for minios-devel@lists.xen.org; Wed, 03 Mar 2021 19:00:14 +0000
Received: from mail-ej1-x636.google.com (unknown [2a00:1450:4864:20::636])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 9450bbd5-3884-463a-87df-4b1720fd2e24;
 Wed, 03 Mar 2021 19:00:07 +0000 (UTC)
Received: by mail-ej1-x636.google.com with SMTP id ci14so25285186ejc.7
 for <minios-devel@lists.xen.org>; Wed, 03 Mar 2021 11:00:07 -0800 (PST)
Received: from [192.168.0.3] ([86.120.251.226])
 by smtp.gmail.com with ESMTPSA id i18sm21964121edt.68.2021.03.03.11.00.06
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 03 Mar 2021 11:00:06 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9450bbd5-3884-463a-87df-4b1720fd2e24
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:date:message-id:subject:from:to:cc:in-reply-to
         :references:user-agent;
        bh=P/svvSyK7kVQ6JAeUL+ynTUd/E4XR/8BTnfzFxpCDvk=;
        b=K1DMZC9+pqbjOtvOv+oNPRV+DjjCr+LeGjGaic7C9RjzgJTyHI+YdROsIsvM8N+jKN
         IGdApIMEnyYPHtHh59/mfK6i1JWdgyredSngSROW+yhAvMdG2spBpA8kroLTtkwUAW8B
         g5x5omm0fOtK4vMI/vtwu8blrs7rEE2Ap20D89RwEsuxQqICxbbY6H7QcmuC4FfXOZvx
         5L4cn4hcQWcTPZiKFrcPt1aBKnrTA6tfny/C68rYlMc0ooaf7hVrEU/+GTTB9qum2NLB
         B5y5qNAqC2bvU6AvbZuqqsM1zNJV62CPoNJYbrE7j/+Y+H+kS5Mhg/G0Qef7vql19pJB
         WO9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:date:message-id:subject:from:to:cc
         :in-reply-to:references:user-agent;
        bh=P/svvSyK7kVQ6JAeUL+ynTUd/E4XR/8BTnfzFxpCDvk=;
        b=VrqK/3SAjRlWV9J42lZweRudO3DFLvWRQ3suA98DGxXnZm7R7W7e5yWcFgE2sZXkuY
         Iy8DK9fA4NZmmS5dM3RHFLzDy2vJFNNRWlvZ/XnqG8rhSoWADUXN7no7rIbuPhxTMA8m
         Up2tI0jr54hgp1S9f2sD7Q2ZktTgJJae35kfhUsl4105niWHdO3rCjlQo622SETI3C71
         5/bUyuuKAMCM7YiPpVTfr09zxVq+WjGUGyxoCNU37E6e+JkPtGIv0H27MqLli939JhT8
         tEWO69aX8klGQ5zuvMo1EMIYoNH9MlzPbzSwH/vidKJI7TzrjCAdyUkMfhLS1VhjuFqo
         atPQ==
X-Gm-Message-State: AOAM532uMdOpFhq7p8aDpr3BV+yjmVuge/+1l7jJLlKohyT5FWTZ1ruc
	THAINvw15JS8wbOvje2Il2Q=
X-Google-Smtp-Source: ABdhPJzwqymSKbknlwcqkQ5HfpmmkhCIzxzzIEpGUd0Gw/on9HkfAsLKiIN0j70vmvBGrpb/z4kMiQ==
X-Received: by 2002:a17:906:d8ca:: with SMTP id re10mr306914ejb.18.1614798007030;
        Wed, 03 Mar 2021 11:00:07 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="----=_NextPart_57431615.651642363832"
MIME-Version: 1.0
Date: Wed, 03 Mar 2021 21:00:00 +0200
Message-ID: <Mailbird-b889a2ac-4093-434d-99c3-8b702a1cd312@gmail.com>
Subject: Re: [UNIKRAFT PATCH] lib/ukalloc: per-library stats: Return ENOMEM
From: "Cezar Craciunoiu" <cezar.craciunoiu@gmail.com>
To: "Simon Kuenzer" <simon.kuenzer@neclab.eu>
Cc: "Simon Kuenzer" <simon.kuenzer@neclab.eu>,
 "" <minios-devel@lists.xen.org>
In-Reply-To: <20201123122053.18247-1-simon.kuenzer@neclab.eu>
References: <20201123122053.18247-1-simon.kuenzer@neclab.eu>
User-Agent: Mailbird/2.9.21.0
X-Mailbird-ID: Mailbird-b889a2ac-4093-434d-99c3-8b702a1cd312@gmail.com

------=_NextPart_57431615.651642363832
Content-Type: text/plain;
 charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Hey Simon,

This patch looks good to me.

Cezar

Reviewed-by: Cezar Craciunoiu <cezar.craciunoiu@gmail.com [mailto:cezar.cra=
ciunoiu@gmail.com]>
On 2020-11-23 14:21:21, Simon Kuenzer <simon.kuenzer@neclab.eu> wrote:
The per-library wrapper returns ENOMEM instead of failing in an assertions
when the default allocator is not yet initialized.

Signed-off-by: Simon Kuenzer
---
This patch depends on patch series: 1574
https://patchwork.unikraft.org/project/unikraft/list/?series=3D1574
---
lib/ukalloc/libstats.c | 30 +++++++++++++++++++++++++-----
1 file changed, 25 insertions(+), 5 deletions(-)

diff --git a/lib/ukalloc/libstats.c b/lib/ukalloc/libstats.c
index d49d9dcc..b2831ba2 100644
--- a/lib/ukalloc/libstats.c
+++ b/lib/ukalloc/libstats.c
@@ -45,6 +45,7 @@

#include
#include
+#include
#include

static inline struct uk_alloc *_uk_alloc_get_actual_default(void)
@@ -114,7 +115,11 @@ static void *wrapper_malloc(struct uk_alloc *a, __sz s=
ize)
__sz alloc_size;
void *ret;

- UK_ASSERT(p);
+ if (unlikely(!p)) {
+ update_stats(&a->_stats, 0, 1, 0, 0);
+ errno =3D ENOMEM;
+ return NULL;
+ }

WATCH_STATS_START(p);
ret =3D uk_do_malloc(p, size);
@@ -132,7 +137,11 @@ static void *wrapper_calloc(struct uk_alloc *a, __sz n=
memb, __sz size)
__sz alloc_size;
void *ret;

- UK_ASSERT(p);
+ if (unlikely(!p)) {
+ update_stats(&a->_stats, 0, 1, 0, 0);
+ errno =3D ENOMEM;
+ return NULL;
+ }

WATCH_STATS_START(p);
ret =3D uk_do_calloc(p, nmemb, size);
@@ -151,7 +160,10 @@ static int wrapper_posix_memalign(struct uk_alloc *a, =
void **memptr,
__sz alloc_size;
int ret;

- UK_ASSERT(p);
+ if (unlikely(!p)) {
+ update_stats(&a->_stats, 0, 1, 0, 0);
+ return ENOMEM;
+ }

WATCH_STATS_START(p);
ret =3D uk_do_posix_memalign(p, memptr, align, size);
@@ -168,7 +180,11 @@ static void *wrapper_memalign(struct uk_alloc *a, __sz=
 align, __sz size)
__sz alloc_size;
void *ret;

- UK_ASSERT(p);
+ if (unlikely(!p)) {
+ update_stats(&a->_stats, 0, 1, 0, 0);
+ errno =3D ENOMEM;
+ return NULL;
+ }

WATCH_STATS_START(p);
ret =3D uk_do_memalign(p, align, size);
@@ -185,7 +201,11 @@ static void *wrapper_realloc(struct uk_alloc *a, void =
*ptr, __sz size)
__sz alloc_size;
void *ret;

- UK_ASSERT(p);
+ if (unlikely(!p)) {
+ update_stats(&a->_stats, 0, 1, 0, 0);
+ errno =3D ENOMEM;
+ return NULL;
+ }

WATCH_STATS_START(p);
ret =3D uk_do_realloc(p, ptr, size);
--
2.20.1


------=_NextPart_57431615.651642363832
Content-Type: text/html;
 charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<div id=3D"__MailbirdStyleContent" style=3D"font-size: 10pt;font-family: Ar=
ial;color: #000000;text-align: left" dir=3D"ltr">=0A                       =
                 =0A                                        =0A            =
                                =0A                                        =
=0A                                        =0A                             =
           <span style=3D"font-size: 13.3333px">Hey Simon,</span><div style=
=3D"font-size: 13.3333px"><br></div><div style=3D"font-size: 13.3333px">Thi=
s patch looks good to me.</div><div style=3D"font-size: 13.3333px"><br></di=
v><div style=3D"font-size: 13.3333px">Cezar</div><div style=3D"font-size: 1=
3.3333px"><br></div><div style=3D"font-size: 13.3333px"><span style=3D"font=
-size: 13.3333px">Reviewed-by: Cezar Craciunoiu &lt;</span><a href=3D"mailt=
o:cezar.craciunoiu@gmail.com" title=3D"Send an email to cezar.craciunoiu@gm=
ail.com; Send an email to cezar.craciunoiu@gmail.com" style=3D"font-size: 1=
3.3333px;cursor: pointer;color: blue">cezar.craciunoiu@gmail.com</a><span s=
tyle=3D"font-size: 13.3333px">&gt;</span></div><div class=3D"mb_sig"></div>=
=0A                                        =0A                             =
           <blockquote class=3D"history_container" type=3D"cite" style=3D"b=
order-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px=
;padding-left: 10px;min-width: 500px">=0A                        <p style=
=3D"color: #AAAAAA; margin-top: 10px;">On 2020-11-23 14:21:21, Simon Kuenze=
r &lt;simon.kuenzer@neclab.eu&gt; wrote:</p><div style=3D"font-family:Arial=
,Helvetica,sans-serif">The per-library wrapper returns ENOMEM instead of fa=
iling in an assertions=0A<br>when the default allocator is not yet initiali=
zed.=0A<br>=0A<br>Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>=0A=
<br>---=0A<br>This patch depends on patch series: 1574=0A<br>https://patchw=
ork.unikraft.org/project/unikraft/list/?series=3D1574=0A<br>---=0A<br> lib/=
ukalloc/libstats.c | 30 +++++++++++++++++++++++++-----=0A<br> 1 file change=
d, 25 insertions(+), 5 deletions(-)=0A<br>=0A<br>diff --git a/lib/ukalloc/l=
ibstats.c b/lib/ukalloc/libstats.c=0A<br>index d49d9dcc..b2831ba2 100644=0A=
<br>--- a/lib/ukalloc/libstats.c=0A<br>+++ b/lib/ukalloc/libstats.c=0A<br>@=
@ -45,6 +45,7 @@=0A<br> =0A<br> #include <uk print.h=3D"">=0A<br> #include =
<uk alloc_impl.h=3D"">=0A<br>+#include <uk essentials.h=3D"">=0A<br> #inclu=
de <uk preempt.h=3D"">=0A<br> =0A<br> static inline struct uk_alloc *_uk_al=
loc_get_actual_default(void)=0A<br>@@ -114,7 +115,11 @@ static void *wrappe=
r_malloc(struct uk_alloc *a, __sz size)=0A<br> 	__sz alloc_size;=0A<br> 	vo=
id *ret;=0A<br> =0A<br>-	UK_ASSERT(p);=0A<br>+	if (unlikely(!p)) {=0A<br>+	=
	update_stats(&amp;a-&gt;_stats, 0, 1, 0, 0);=0A<br>+		errno =3D ENOMEM;=0A=
<br>+		return NULL;=0A<br>+	}=0A<br> =0A<br> 	WATCH_STATS_START(p);=0A<br> =
	ret =3D uk_do_malloc(p, size);=0A<br>@@ -132,7 +137,11 @@ static void *wra=
pper_calloc(struct uk_alloc *a, __sz nmemb, __sz size)=0A<br> 	__sz alloc_s=
ize;=0A<br> 	void *ret;=0A<br> =0A<br>-	UK_ASSERT(p);=0A<br>+	if (unlikely(=
!p)) {=0A<br>+		update_stats(&amp;a-&gt;_stats, 0, 1, 0, 0);=0A<br>+		errno=
 =3D ENOMEM;=0A<br>+		return NULL;=0A<br>+	}=0A<br> =0A<br> 	WATCH_STATS_ST=
ART(p);=0A<br> 	ret =3D uk_do_calloc(p, nmemb, size);=0A<br>@@ -151,7 +160,=
10 @@ static int wrapper_posix_memalign(struct uk_alloc *a, void **memptr,=
=0A<br> 	__sz alloc_size;=0A<br> 	int ret;=0A<br> =0A<br>-	UK_ASSERT(p);=0A=
<br>+	if (unlikely(!p)) {=0A<br>+		update_stats(&amp;a-&gt;_stats, 0, 1, 0,=
 0);=0A<br>+		return ENOMEM;=0A<br>+	}=0A<br> =0A<br> 	WATCH_STATS_START(p)=
;=0A<br> 	ret =3D uk_do_posix_memalign(p, memptr, align, size);=0A<br>@@ -1=
68,7 +180,11 @@ static void *wrapper_memalign(struct uk_alloc *a, __sz alig=
n, __sz size)=0A<br> 	__sz alloc_size;=0A<br> 	void *ret;=0A<br> =0A<br>-	U=
K_ASSERT(p);=0A<br>+	if (unlikely(!p)) {=0A<br>+		update_stats(&amp;a-&gt;_=
stats, 0, 1, 0, 0);=0A<br>+		errno =3D ENOMEM;=0A<br>+		return NULL;=0A<br>=
+	}=0A<br> =0A<br> 	WATCH_STATS_START(p);=0A<br> 	ret =3D uk_do_memalign(p,=
 align, size);=0A<br>@@ -185,7 +201,11 @@ static void *wrapper_realloc(stru=
ct uk_alloc *a, void *ptr, __sz size)=0A<br> 	__sz alloc_size;=0A<br> 	void=
 *ret;=0A<br> =0A<br>-	UK_ASSERT(p);=0A<br>+	if (unlikely(!p)) {=0A<br>+		u=
pdate_stats(&amp;a-&gt;_stats, 0, 1, 0, 0);=0A<br>+		errno =3D ENOMEM;=0A<b=
r>+		return NULL;=0A<br>+	}=0A<br> =0A<br> 	WATCH_STATS_START(p);=0A<br> 	r=
et =3D uk_do_realloc(p, ptr, size);=0A<br>-- =0A<br>2.20.1=0A<br>=0A<br></u=
k></uk></uk></uk></simon.kuenzer@neclab.eu></div></blockquote></div>
------=_NextPart_57431615.651642363832--


From minios-devel-bounces@lists.xenproject.org Wed Mar 03 19:00:20 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 03 Mar 2021 19:00:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.92985.175476 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lHWjM-0002DA-PA; Wed, 03 Mar 2021 19:00:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 92985.175476; Wed, 03 Mar 2021 19:00:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lHWjM-0002D3-Lu; Wed, 03 Mar 2021 19:00:20 +0000
Received: by outflank-mailman (input) for mailman id 92985;
 Wed, 03 Mar 2021 19:00:19 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZSNq=IB=gmail.com=cezar.craciunoiu@srs-us1.protection.inumbo.net>)
 id 1lHWjL-0001pH-5Q
 for minios-devel@lists.xen.org; Wed, 03 Mar 2021 19:00:19 +0000
Received: from mail-ej1-x635.google.com (unknown [2a00:1450:4864:20::635])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id ee5be762-1cfa-46c9-8945-78b813e48067;
 Wed, 03 Mar 2021 19:00:10 +0000 (UTC)
Received: by mail-ej1-x635.google.com with SMTP id jt13so44374283ejb.0
 for <minios-devel@lists.xen.org>; Wed, 03 Mar 2021 11:00:10 -0800 (PST)
Received: from [192.168.0.3] ([86.120.251.226])
 by smtp.gmail.com with ESMTPSA id jj15sm17990996ejc.99.2021.03.03.11.00.08
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 03 Mar 2021 11:00:08 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee5be762-1cfa-46c9-8945-78b813e48067
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:date:message-id:subject:from:to:cc:in-reply-to
         :references:user-agent;
        bh=ep/0p7HlAegqk5WIgb402BgwQCSriUcPqAS82CuBs2Y=;
        b=tXGlylP0jd6FgwDfWhjlKSsEcJHydLY7NjLEkQ1oU5uY1jt3HYvY5YNHfZG4QHmVFC
         4MMO3dQQZcfkIUT9RmUTLIXwShZEXYEPyeAnggy8ZSkyMzjqBudaoxGwtHjfgByXYpjX
         jiuWWXAEBluremi2NiDW2+6HdHO9x8o+/YoaU+tcLRLMRiEtSboSf0tIoxLa/A13NxUm
         41z8j6d0Vq4AktjuIqWUc4nFdPb44XD/f3QXNX/HZq70cT/K8vxs8peqyeZvoUhv9ZNe
         YpA35nDZX5yCROE4F3tOI3NgM5OAJWOj71yWrFwl2pW/4ESIQl+HOaBUy9o8mJxgKHAf
         +FtA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:date:message-id:subject:from:to:cc
         :in-reply-to:references:user-agent;
        bh=ep/0p7HlAegqk5WIgb402BgwQCSriUcPqAS82CuBs2Y=;
        b=aIuMx4f5f09h4RfDOZMzb2FRTR3hE3v8jRUXV/ZwgFcbuUzTLrpRfm8E8TiKELxfSj
         8JC5dxB6Pz+laNjnGesAPki+X090mVmykuINE9Q0BTgYZiOyFUYke7k8eV3Wezu2FHkS
         2xO6NERz4iZLLNOEvEJGrt1MOBCafhAxk66GKMGg9wp9siHZTGYccPgFSovSEf0jiCHQ
         G5E/Mj3GfGnoyU7nRbcIt4saFE01LW1YBGP/0C7rNmmTvTxYFNBfwqsCcrxtDe85QHBn
         bHhvQ3BeGt5IL6M5G1v6ZgYqXWw2x70PX3IbZZca6z6FFSUfCZDFPdd0nJHG3IPPLRco
         hzGQ==
X-Gm-Message-State: AOAM533lHKA+CNBkLidb2O1yb4RiA9ecuLw92Hbjw/Dw+Aqtx4p0Br+f
	ZfCTjmDjz1TV5uEirvCTtgk=
X-Google-Smtp-Source: ABdhPJwfDKOa7uVUOUq/Wv++JbHdwj5RYcdkRD70IOT0za1h61QsIdMQIUIhoHnwLcp21YTqsgcX0w==
X-Received: by 2002:a17:906:3395:: with SMTP id v21mr285300eja.322.1614798008767;
        Wed, 03 Mar 2021 11:00:08 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="----=_NextPart_66909259.903256468265"
MIME-Version: 1.0
Date: Wed, 03 Mar 2021 21:00:00 +0200
Message-ID: <Mailbird-1534e17d-c64c-4946-9048-a21516414c8f@gmail.com>
Subject: Re: [UNIKRAFT PATCH v2 2/2] lib/ukallocpool: Instrumentation for
 statistics
From: "Cezar Craciunoiu" <cezar.craciunoiu@gmail.com>
To: "Simon Kuenzer" <simon.kuenzer@neclab.eu>
Cc: "Simon Kuenzer" <simon.kuenzer@neclab.eu>,
 "" <minios-devel@lists.xen.org>
In-Reply-To: <20201222125632.29415-3-simon.kuenzer@neclab.eu>
References: <20201222125632.29415-1-simon.kuenzer@neclab.eu>
 <20201222125632.29415-3-simon.kuenzer@neclab.eu>
User-Agent: Mailbird/2.9.21.0
X-Mailbird-ID: Mailbird-1534e17d-c64c-4946-9048-a21516414c8f@gmail.com

------=_NextPart_66909259.903256468265
Content-Type: text/plain;
 charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Hey Simon,

This patch looks good to me.

Cezar

Reviewed-by: Cezar Craciunoiu <cezar.craciunoiu@gmail.com [mailto:cezar.cra=
ciunoiu@gmail.com]>
On 2020-12-22 14:57:13, Simon Kuenzer <simon.kuenzer@neclab.eu> wrote:
Instruments the allocator to record allocation statistics.

Signed-off-by: Simon Kuenzer
---
lib/ukallocpool/pool.c | 37 ++++++++++++++++++++++++++++++++-----
1 file changed, 32 insertions(+), 5 deletions(-)

diff --git a/lib/ukallocpool/pool.c b/lib/ukallocpool/pool.c
index 0ff24c38..bc337e12 100644
--- a/lib/ukallocpool/pool.c
+++ b/lib/ukallocpool/pool.c
@@ -130,21 +130,27 @@ static void pool_free(struct uk_alloc *a, void *ptr)
{
struct uk_allocpool *p =3D ukalloc2pool(a);

- if (likely(ptr))
+ if (likely(ptr)) {
_prepend_free_obj(p, ptr);
+ uk_alloc_stats_count_free(a, ptr, p->obj_len);
+ }
}

static void *pool_malloc(struct uk_alloc *a, size_t size)
{
struct uk_allocpool *p =3D ukalloc2pool(a);
+ void *obj;

if (unlikely((size > p->obj_len)
|| uk_list_empty(&p->free_obj))) {
+ uk_alloc_stats_count_enomem(a, p->obj_len);
errno =3D ENOMEM;
return NULL;
}

- return _take_free_obj(p);
+ obj =3D _take_free_obj(p);
+ uk_alloc_stats_count_alloc(a, obj, p->obj_len);
+ return obj;
}

static int pool_posix_memalign(struct uk_alloc *a, void **memptr, size_t al=
ign,
@@ -155,21 +161,31 @@ static int pool_posix_memalign(struct uk_alloc *a, vo=
id **memptr, size_t align,
if (unlikely((size > p->obj_len)
|| (align > p->obj_align)
|| uk_list_empty(&p->free_obj))) {
+ uk_alloc_stats_count_enomem(a, p->obj_len);
return ENOMEM;
}

*memptr =3D _take_free_obj(p);
+ uk_alloc_stats_count_alloc(a, *memptr, p->obj_len);
return 0;
}

void *uk_allocpool_take(struct uk_allocpool *p)
{
+ void *obj;
+
UK_ASSERT(p);

- if (unlikely(uk_list_empty(&p->free_obj)))
+ if (unlikely(uk_list_empty(&p->free_obj))) {
+ uk_alloc_stats_count_enomem(allocpool2ukalloc(p),
+ p->obj_len);
return NULL;
+ }

- return _take_free_obj(p);
+ obj =3D _take_free_obj(p);
+ uk_alloc_stats_count_alloc(allocpool2ukalloc(p),
+ obj, p->obj_len);
+ return obj;
}

unsigned int uk_allocpool_take_batch(struct uk_allocpool *p,
@@ -184,8 +200,14 @@ unsigned int uk_allocpool_take_batch(struct uk_allocpo=
ol *p,
if (unlikely(uk_list_empty(&p->free_obj)))
break;
obj[i] =3D _take_free_obj(p);
+ uk_alloc_stats_count_alloc(allocpool2ukalloc(p),
+ obj[i], p->obj_len);
}

+ if (unlikely(i =3D=3D 0))
+ uk_alloc_stats_count_enomem(allocpool2ukalloc(p),
+ p->obj_len);
+
return i;
}

@@ -194,6 +216,8 @@ void uk_allocpool_return(struct uk_allocpool *p, void *=
obj)
UK_ASSERT(p);

_prepend_free_obj(p, obj);
+ uk_alloc_stats_count_free(allocpool2ukalloc(p),
+ obj, p->obj_len);
}

void uk_allocpool_return_batch(struct uk_allocpool *p,
@@ -204,8 +228,11 @@ void uk_allocpool_return_batch(struct uk_allocpool *p,
UK_ASSERT(p);
UK_ASSERT(obj);

- for (i =3D 0; i < count; ++i)
+ for (i =3D 0; i < count; ++i) {
_prepend_free_obj(p, obj[i]);
+ uk_alloc_stats_count_free(allocpool2ukalloc(p),
+ obj[i], p->obj_len);
+ }
}

static ssize_t pool_availmem(struct uk_alloc *a)
--
2.20.1


------=_NextPart_66909259.903256468265
Content-Type: text/html;
 charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<div id=3D"__MailbirdStyleContent" style=3D"font-size: 10pt;font-family: Ar=
ial;color: #000000;text-align: left" dir=3D"ltr">=0A                       =
                 =0A                                        =0A            =
                                =0A                                        =
=0A                                        =0A                             =
           <span style=3D"font-size: 13.3333px">Hey Simon,</span><div style=
=3D"font-size: 13.3333px"><br></div><div style=3D"font-size: 13.3333px">Thi=
s patch looks good to me.</div><div style=3D"font-size: 13.3333px"><br></di=
v><div style=3D"font-size: 13.3333px">Cezar</div><div style=3D"font-size: 1=
3.3333px"><br></div><div style=3D"font-size: 13.3333px"><span style=3D"font=
-size: 13.3333px">Reviewed-by: Cezar Craciunoiu &lt;</span><a href=3D"mailt=
o:cezar.craciunoiu@gmail.com" title=3D"Send an email to cezar.craciunoiu@gm=
ail.com; Send an email to cezar.craciunoiu@gmail.com" style=3D"font-size: 1=
3.3333px;cursor: pointer;color: blue">cezar.craciunoiu@gmail.com</a><span s=
tyle=3D"font-size: 13.3333px">&gt;</span></div><div class=3D"mb_sig"></div>=
=0A                                        =0A                             =
           <blockquote class=3D"history_container" type=3D"cite" style=3D"b=
order-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px=
;padding-left: 10px;min-width: 500px">=0A                        <p style=
=3D"color: #AAAAAA; margin-top: 10px;">On 2020-12-22 14:57:13, Simon Kuenze=
r &lt;simon.kuenzer@neclab.eu&gt; wrote:</p><div style=3D"font-family:Arial=
,Helvetica,sans-serif">Instruments the allocator to record allocation stati=
stics.=0A<br>=0A<br>Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>=
=0A<br>---=0A<br> lib/ukallocpool/pool.c | 37 +++++++++++++++++++++++++++++=
+++-----=0A<br> 1 file changed, 32 insertions(+), 5 deletions(-)=0A<br>=0A<=
br>diff --git a/lib/ukallocpool/pool.c b/lib/ukallocpool/pool.c=0A<br>index=
 0ff24c38..bc337e12 100644=0A<br>--- a/lib/ukallocpool/pool.c=0A<br>+++ b/l=
ib/ukallocpool/pool.c=0A<br>@@ -130,21 +130,27 @@ static void pool_free(str=
uct uk_alloc *a, void *ptr)=0A<br> {=0A<br> 	struct uk_allocpool *p =3D uka=
lloc2pool(a);=0A<br> =0A<br>-	if (likely(ptr))=0A<br>+	if (likely(ptr)) {=
=0A<br> 		_prepend_free_obj(p, ptr);=0A<br>+		uk_alloc_stats_count_free(a, =
ptr, p-&gt;obj_len);=0A<br>+	}=0A<br> }=0A<br> =0A<br> static void *pool_ma=
lloc(struct uk_alloc *a, size_t size)=0A<br> {=0A<br> 	struct uk_allocpool =
*p =3D ukalloc2pool(a);=0A<br>+	void *obj;=0A<br> =0A<br> 	if (unlikely((si=
ze &gt; p-&gt;obj_len)=0A<br> 		     || uk_list_empty(&amp;p-&gt;free_obj))=
) {=0A<br>+		uk_alloc_stats_count_enomem(a, p-&gt;obj_len);=0A<br> 		errno =
=3D ENOMEM;=0A<br> 		return NULL;=0A<br> 	}=0A<br> =0A<br>-	return _take_fr=
ee_obj(p);=0A<br>+	obj =3D _take_free_obj(p);=0A<br>+	uk_alloc_stats_count_=
alloc(a, obj, p-&gt;obj_len);=0A<br>+	return obj;=0A<br> }=0A<br> =0A<br> s=
tatic int pool_posix_memalign(struct uk_alloc *a, void **memptr, size_t ali=
gn,=0A<br>@@ -155,21 +161,31 @@ static int pool_posix_memalign(struct uk_al=
loc *a, void **memptr, size_t align,=0A<br> 	if (unlikely((size &gt; p-&gt;=
obj_len)=0A<br> 		     || (align &gt; p-&gt;obj_align)=0A<br> 		     || uk_=
list_empty(&amp;p-&gt;free_obj))) {=0A<br>+		uk_alloc_stats_count_enomem(a,=
 p-&gt;obj_len);=0A<br> 		return ENOMEM;=0A<br> 	}=0A<br> =0A<br> 	*memptr =
=3D _take_free_obj(p);=0A<br>+	uk_alloc_stats_count_alloc(a, *memptr, p-&gt=
;obj_len);=0A<br> 	return 0;=0A<br> }=0A<br> =0A<br> void *uk_allocpool_tak=
e(struct uk_allocpool *p)=0A<br> {=0A<br>+	void *obj;=0A<br>+=0A<br> 	UK_AS=
SERT(p);=0A<br> =0A<br>-	if (unlikely(uk_list_empty(&amp;p-&gt;free_obj)))=
=0A<br>+	if (unlikely(uk_list_empty(&amp;p-&gt;free_obj))) {=0A<br>+		uk_al=
loc_stats_count_enomem(allocpool2ukalloc(p),=0A<br>+					    p-&gt;obj_len)=
;=0A<br> 		return NULL;=0A<br>+	}=0A<br> =0A<br>-	return _take_free_obj(p);=
=0A<br>+	obj =3D _take_free_obj(p);=0A<br>+	uk_alloc_stats_count_alloc(allo=
cpool2ukalloc(p),=0A<br>+				   obj, p-&gt;obj_len);=0A<br>+	return obj;=0A=
<br> }=0A<br> =0A<br> unsigned int uk_allocpool_take_batch(struct uk_allocp=
ool *p,=0A<br>@@ -184,8 +200,14 @@ unsigned int uk_allocpool_take_batch(str=
uct uk_allocpool *p,=0A<br> 		if (unlikely(uk_list_empty(&amp;p-&gt;free_ob=
j)))=0A<br> 			break;=0A<br> 		obj[i] =3D _take_free_obj(p);=0A<br>+		uk_al=
loc_stats_count_alloc(allocpool2ukalloc(p),=0A<br>+					   obj[i], p-&gt;ob=
j_len);=0A<br> 	}=0A<br> =0A<br>+	if (unlikely(i =3D=3D 0))=0A<br>+		uk_all=
oc_stats_count_enomem(allocpool2ukalloc(p),=0A<br>+					    p-&gt;obj_len);=
=0A<br>+=0A<br> 	return i;=0A<br> }=0A<br> =0A<br>@@ -194,6 +216,8 @@ void =
uk_allocpool_return(struct uk_allocpool *p, void *obj)=0A<br> 	UK_ASSERT(p)=
;=0A<br> =0A<br> 	_prepend_free_obj(p, obj);=0A<br>+	uk_alloc_stats_count_f=
ree(allocpool2ukalloc(p),=0A<br>+				  obj, p-&gt;obj_len);=0A<br> }=0A<br>=
 =0A<br> void uk_allocpool_return_batch(struct uk_allocpool *p,=0A<br>@@ -2=
04,8 +228,11 @@ void uk_allocpool_return_batch(struct uk_allocpool *p,=0A<b=
r> 	UK_ASSERT(p);=0A<br> 	UK_ASSERT(obj);=0A<br> =0A<br>-	for (i =3D 0; i &=
lt; count; ++i)=0A<br>+	for (i =3D 0; i &lt; count; ++i) {=0A<br> 		_prepen=
d_free_obj(p, obj[i]);=0A<br>+		uk_alloc_stats_count_free(allocpool2ukalloc=
(p),=0A<br>+					  obj[i], p-&gt;obj_len);=0A<br>+	}=0A<br> }=0A<br> =0A<br=
> static ssize_t pool_availmem(struct uk_alloc *a)=0A<br>-- =0A<br>2.20.1=
=0A<br>=0A<br></simon.kuenzer@neclab.eu></div></blockquote></div>
------=_NextPart_66909259.903256468265--


From minios-devel-bounces@lists.xenproject.org Wed Mar 03 20:10:44 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 03 Mar 2021 20:10:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.93006.175519 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lHXpO-0001Ir-SW; Wed, 03 Mar 2021 20:10:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 93006.175519; Wed, 03 Mar 2021 20:10:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lHXpO-0001Ik-PS; Wed, 03 Mar 2021 20:10:38 +0000
Received: by outflank-mailman (input) for mailman id 93006;
 Wed, 03 Mar 2021 20:10:37 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZSNq=IB=gmail.com=cezar.craciunoiu@srs-us1.protection.inumbo.net>)
 id 1lHXpN-0001If-5m
 for minios-devel@lists.xen.org; Wed, 03 Mar 2021 20:10:37 +0000
Received: from mail-ej1-x636.google.com (unknown [2a00:1450:4864:20::636])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id b9821751-120d-4d89-8598-945fa25aafe9;
 Wed, 03 Mar 2021 20:10:35 +0000 (UTC)
Received: by mail-ej1-x636.google.com with SMTP id bm21so25889374ejb.4
 for <minios-devel@lists.xen.org>; Wed, 03 Mar 2021 12:10:35 -0800 (PST)
Received: from [192.168.0.3] ([86.120.251.226])
 by smtp.gmail.com with ESMTPSA id q2sm22180726edv.93.2021.03.03.12.10.34
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 03 Mar 2021 12:10:34 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b9821751-120d-4d89-8598-945fa25aafe9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:date:message-id:subject:from:to:cc:in-reply-to
         :references:user-agent;
        bh=0ZzuaevByN1oH3L4K4Ey9DfxlUykiEzk0BazoJlDC2Q=;
        b=h1Yc9wMFG9PkLLQrXGKAJXMPwellwXSzcbVxNcAaljPOzWOA6h3+hWeSjQNzjD65gd
         6atNMeOeLMgomX8O6UT0L1c1fA+ZoFFt1fmJ192RlIvKqlNaflsKmVIJ+mtd2gZt3gCK
         +RlqfSjFfdM250/5yFB74TCAMchpzECCem3wkXsAo0pOZJUj3z/5+Omad072/aItdco1
         EgtgWHvnxtE07rN3nMw3vRAAhPIr+NaFpx5S3XAmConkVifJj0bLuzn1rXos1/TBIZMg
         e2HmUn6QB8dnAnsagB3oSWczDZNHHp1FNHHYm+NTfIVM+0/8i6Qv4c/NASG0apHfx9na
         3Vuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:date:message-id:subject:from:to:cc
         :in-reply-to:references:user-agent;
        bh=0ZzuaevByN1oH3L4K4Ey9DfxlUykiEzk0BazoJlDC2Q=;
        b=h7cYGPB/CuUTeWMBTSNHHruYY0SKtat/DN86oGhLKXlFydHIF1QxTUwif6Zih6yLqg
         g0o6aPQEYYm4DqZ1OREqj+qSCdXe1FxIWhnaUr5WadkcjKVxWfK0RQtu7ILwAcg3JIG1
         2g260rTa+uChlEatPyypI/V+uvstQZBdDstas/eigRXcc5SEOOlx86LQRhhPxIl/VW/C
         yoG/SZXWvLplg3W5sxGbn6oHZR2+ib3+7T22mVPiEA0MjMegKy4D0QQLC/4pNNKwmNPS
         mSQCqJPlF2caK5qOxCk5AWz5nlEmSJQZbFjLBRO07aRWXarq+HuIIJvGkmLZuUVIgbpo
         fCIQ==
X-Gm-Message-State: AOAM532XIxam3V1gl9PyI28kDSDChBbQ7cJhNWkfBH2GyoeWSjIGPwqo
	ktRf2PCZM2rNh9xvSgdVFOIux2SH/no=
X-Google-Smtp-Source: ABdhPJyo/bhfUglKwyf+e2C0+Fn5dOi9A1Ztr5WnNqtYWRAQaNpfibONjPtSOHs13v8ZkVhAVA2qKg==
X-Received: by 2002:a17:907:3d01:: with SMTP id gm1mr549158ejc.214.1614802235004;
        Wed, 03 Mar 2021 12:10:35 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="----=_NextPart_11770754.788683783016"
MIME-Version: 1.0
Date: Wed, 03 Mar 2021 22:10:03 +0200
Message-ID: <Mailbird-dd58cf78-fa01-4a86-af74-4d0ef48fbf2b@gmail.com>
Subject: Re: [UNIKRAFT PATCH v2 1/2] lib/ukallocpool: Always provide
 `uk_alloc_availmem()`, `uk_alloc_maxalloc()`
From: "Cezar Craciunoiu" <cezar.craciunoiu@gmail.com>
To: "Simon Kuenzer" <simon.kuenzer@neclab.eu>
Cc: "Simon Kuenzer" <simon.kuenzer@neclab.eu>,
 "" <minios-devel@lists.xen.org>,
 "Razvan Deaconescu" <razvan.deaconescu@cs.pub.ro>
In-Reply-To: <20201222125632.29415-2-simon.kuenzer@neclab.eu>
References: <20201222125632.29415-1-simon.kuenzer@neclab.eu>
 <20201222125632.29415-2-simon.kuenzer@neclab.eu>
User-Agent: Mailbird/2.9.21.0
X-Mailbird-ID: Mailbird-dd58cf78-fa01-4a86-af74-4d0ef48fbf2b@gmail.com

------=_NextPart_11770754.788683783016
Content-Type: text/plain;
 charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Hey Simon,

This patch looks good to me.

Just one small thing. Why do these two functions return a signed value if o=
bj_len is unsigned?

Cezar

Reviewed-by: Cezar Craciunoiu <cezar.craciunoiu@gmail.com [mailto:cezar.cra=
ciunoiu@gmail.com]>
On 2020-12-22 14:57:11, Simon Kuenzer <simon.kuenzer@neclab.eu> wrote:
Adopts to the changed meaning of `CONFIG_LIBUKALLLC_IFSTATS` and provide
`uk_alloc_availmem()` and `uk_alloc_maxalloc()` always.

Signed-off-by: Simon Kuenzer
---
lib/ukallocpool/pool.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/lib/ukallocpool/pool.c b/lib/ukallocpool/pool.c
index 390f6b92..0ff24c38 100644
--- a/lib/ukallocpool/pool.c
+++ b/lib/ukallocpool/pool.c
@@ -208,14 +208,19 @@ void uk_allocpool_return_batch(struct uk_allocpool *p,
_prepend_free_obj(p, obj[i]);
}

-#if CONFIG_LIBUKALLOC_IFSTATS
static ssize_t pool_availmem(struct uk_alloc *a)
{
struct uk_allocpool *p =3D ukalloc2pool(a);

- return (size_t) p->free_obj_count * p->obj_len;
+ return (ssize_t) (p->free_obj_count * p->obj_len);
+}
+
+static ssize_t pool_maxalloc(struct uk_alloc *a)
+{
+ struct uk_allocpool *p =3D ukalloc2pool(a);
+
+ return (ssize_t) p->obj_len;
}
-#endif

size_t uk_allocpool_reqmem(unsigned int obj_count, size_t obj_len,
size_t obj_align)
@@ -300,6 +305,8 @@ out:
pool_free,
pool_posix_memalign,
uk_memalign_compat,
+ pool_maxalloc,
+ pool_availmem,
NULL);
#if CONFIG_LIBUKALLOC_IFSTATS
p->self.availmem =3D pool_availmem;
--
2.20.1


------=_NextPart_11770754.788683783016
Content-Type: text/html;
 charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<div id=3D"__MailbirdStyleContent" style=3D"font-size: 10pt;font-family: Ar=
ial;color: #000000;text-align: left" dir=3D"ltr">=0A                       =
                 =0A                                        =0A            =
                                =0A                                        =
=0A                                        =0A                             =
           <span style=3D"font-size: 13.3333px">Hey Simon,</span><div style=
=3D"font-size: 13.3333px"><br></div><div style=3D"font-size: 13.3333px">Thi=
s patch looks good to me.</div><div style=3D"font-size: 13.3333px"><br></di=
v><div style=3D"font-size: 13.3333px">Just one small thing. Why do these tw=
o functions return a signed value if obj_len is unsigned?</div><div style=
=3D"font-size: 13.3333px"><br></div><div style=3D"font-size: 13.3333px">Cez=
ar</div><div style=3D"font-size: 13.3333px"><br></div><div style=3D"font-si=
ze: 13.3333px"><span style=3D"font-size: 13.3333px">Reviewed-by: Cezar Crac=
iunoiu &lt;</span><a href=3D"mailto:cezar.craciunoiu@gmail.com" title=3D"Se=
nd an email to cezar.craciunoiu@gmail.com; Send an email to cezar.craciunoi=
u@gmail.com; Send an email to cezar.craciunoiu@gmail.com" style=3D"font-siz=
e: 13.3333px;cursor: pointer;color: blue">cezar.craciunoiu@gmail.com</a><sp=
an style=3D"font-size: 13.3333px">&gt;</span></div><div class=3D"mb_sig"></=
div><blockquote class=3D"history_container" type=3D"cite" style=3D"border-l=
eft-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-=
left:10px;">=0A                        <p style=3D"color: #AAAAAA; margin-t=
op: 10px;">On 2020-12-22 14:57:11, Simon Kuenzer &lt;simon.kuenzer@neclab.e=
u&gt; wrote:</p><div style=3D"font-family:Arial,Helvetica,sans-serif">Adopt=
s to the changed meaning of `CONFIG_LIBUKALLLC_IFSTATS` and provide=0A<br>`=
uk_alloc_availmem()` and `uk_alloc_maxalloc()` always.=0A<br>=0A<br>Signed-=
off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>=0A<br>---=0A<br> lib/ukallo=
cpool/pool.c | 13 ++++++++++---=0A<br> 1 file changed, 10 insertions(+), 3 =
deletions(-)=0A<br>=0A<br>diff --git a/lib/ukallocpool/pool.c b/lib/ukalloc=
pool/pool.c=0A<br>index 390f6b92..0ff24c38 100644=0A<br>--- a/lib/ukallocpo=
ol/pool.c=0A<br>+++ b/lib/ukallocpool/pool.c=0A<br>@@ -208,14 +208,19 @@ vo=
id uk_allocpool_return_batch(struct uk_allocpool *p,=0A<br> 		_prepend_free=
_obj(p, obj[i]);=0A<br> }=0A<br> =0A<br>-#if CONFIG_LIBUKALLOC_IFSTATS=0A<b=
r> static ssize_t pool_availmem(struct uk_alloc *a)=0A<br> {=0A<br> 	struct=
 uk_allocpool *p =3D ukalloc2pool(a);=0A<br> =0A<br>-	return (size_t) p-&gt=
;free_obj_count * p-&gt;obj_len;=0A<br>+	return (ssize_t) (p-&gt;free_obj_c=
ount * p-&gt;obj_len);=0A<br>+}=0A<br>+=0A<br>+static ssize_t pool_maxalloc=
(struct uk_alloc *a)=0A<br>+{=0A<br>+	struct uk_allocpool *p =3D ukalloc2po=
ol(a);=0A<br>+=0A<br>+	return (ssize_t) p-&gt;obj_len;=0A<br> }=0A<br>-#end=
if=0A<br> =0A<br> size_t uk_allocpool_reqmem(unsigned int obj_count, size_t=
 obj_len,=0A<br> 			   size_t obj_align)=0A<br>@@ -300,6 +305,8 @@ out:=0A<=
br> 			     pool_free,=0A<br> 			     pool_posix_memalign,=0A<br> 			     u=
k_memalign_compat,=0A<br>+			     pool_maxalloc,=0A<br>+			     pool_availm=
em,=0A<br> 			     NULL);=0A<br> #if CONFIG_LIBUKALLOC_IFSTATS=0A<br> 	p-&g=
t;self.availmem =3D pool_availmem;=0A<br>-- =0A<br>2.20.1=0A<br>=0A<br></si=
mon.kuenzer@neclab.eu></div></blockquote>=0A                               =
         =0A                                        </div>
------=_NextPart_11770754.788683783016--


From minios-devel-bounces@lists.xenproject.org Fri Mar 05 06:30:54 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 05 Mar 2021 06:30:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.93377.176406 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lI3z2-0005sU-F6; Fri, 05 Mar 2021 06:30:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 93377.176406; Fri, 05 Mar 2021 06:30:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lI3z2-0005sM-Bu; Fri, 05 Mar 2021 06:30:44 +0000
Received: by outflank-mailman (input) for mailman id 93377;
 Thu, 04 Mar 2021 19:27:32 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eU8K=IC=gmail.com=nicolescu.roxana1996@srs-us1.protection.inumbo.net>)
 id 1lHtdE-0004fy-Bv
 for minios-devel@lists.xen.org; Thu, 04 Mar 2021 19:27:32 +0000
Received: from mail-oi1-x22d.google.com (unknown [2607:f8b0:4864:20::22d])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 9b6f526b-06a5-4c0c-ad1c-d9d02da4107d;
 Thu, 04 Mar 2021 19:27:30 +0000 (UTC)
Received: by mail-oi1-x22d.google.com with SMTP id w65so7798687oie.7
 for <minios-devel@lists.xen.org>; Thu, 04 Mar 2021 11:27:30 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9b6f526b-06a5-4c0c-ad1c-d9d02da4107d
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=fwPJV8eVFXTZ/NtzT2iRRoT6BgWkiYkx2molCRQW1RE=;
        b=LR4kroWDnVPSGJY1ZDzHcMRKJ/0dh20Oo2/fUhV+hbNkhL7kQusC58xWsQrkal7CiU
         ZuyzVJ6LeHii6LL4CfbKyzCRSW81PLQ1VlU+ZXhqJcQSmQ4XpE32MV/xFGlyeHXzcsqW
         OGAGj7sqjikXktu8B6AroJCAiozKVlAPZQ1KVD+cih8NCFsQ6YUoXHjJNKBuSdEc2Gxg
         t+oVyRZgJKgAE8tiicUmYNmDqpq04/TPZc3yajKAlrRqsSIxpARjnBBIQZ9I+w7MaWiy
         MHaVJTZnzj5VnrugFQfPJ84nxqjrGl5RLiclbAajigS4z+9i1mQ6u6d8KM7i8tajeP1/
         XTnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=fwPJV8eVFXTZ/NtzT2iRRoT6BgWkiYkx2molCRQW1RE=;
        b=GKWcqJiXoIDQZ07UNcXE6YO4sJtxqxlSeskmTm5ab9iIt5iZ8c/JRSxUNlxsyHlfDj
         CNyFmKhumCe9ucSlkgsih1KEs5ibPDFPiUc5nMRAzMyJ0X2K+V4VZ8mTLk/HYn/8TI8t
         cUPHYZTQQAF9iOSezudTvKDonYYAW4mc3Cu2R9webLb21Cnyqs8pC6z3Y3E8j/w5ci73
         RGSrrj/UdYQqrrV6SbnUNi3X1fWvKBgZFvPw/3OOCrAQYZorhuTOitnOXaw/VZu1pEHk
         Ja7S3mG00XqPSepnBNejQTOrEpZreOlOLCQoUkiAEmhWSmxe6wv/9UaXPRiTUYiknTAD
         P3nw==
X-Gm-Message-State: AOAM532DodTshpguoF1kS6tY+vc3w4mnP2laju4lCERhoBmyz+Bj36xQ
	VInI+DriSy79ByY8BVfkm5LDtBtg6Lz+ofJ5MlA=
X-Google-Smtp-Source: ABdhPJzw9YEBH5U4NHkjVxZEqdiqxR8ff/k6kRssc0k4g8GtPMZIm9uDUazppJ6jFjBpjTRMlVQprdFxy6uSwnEkfRA=
X-Received: by 2002:aca:ba02:: with SMTP id k2mr4262711oif.60.1614886050070;
 Thu, 04 Mar 2021 11:27:30 -0800 (PST)
MIME-Version: 1.0
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu> <20210215111902.3382-9-simon.kuenzer@neclab.eu>
In-Reply-To: <20210215111902.3382-9-simon.kuenzer@neclab.eu>
From: Roxana Nicolescu <nicolescu.roxana1996@gmail.com>
Date: Thu, 4 Mar 2021 20:27:19 +0100
Message-ID: <CAJ5aZkuAu11tgnEP+11a-Jhqqia3AWH500Sk3taa_w=-ChBoOA@mail.gmail.com>
Subject: Re: [UNIKRAFT PATCH 8/8] Correct license headers introduced by UPB
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Cc: minios-devel@lists.xen.org, Costin Lupu <costin.lupu@cs.pub.ro>, 
	Sharan Santhanam <sharan.santhanam@neclab.eu>, Felipe Huici <felipe.huici@neclab.eu>, 
	Bogdan Lascu <lascu.bogdan96@gmail.com>, Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>, 
	vlad_andrei.badoiu@upb.ro, Cristian Banu <cristb@gmail.com>
Content-Type: multipart/alternative; boundary="0000000000005e079e05bcbaf5ba"

--0000000000005e079e05bcbaf5ba
Content-Type: text/plain; charset="UTF-8"

Sorry for the late reply.

Signed-off-by: Roxana Nicolescu <nicolescu.roxana1996@gmail.com>

All the best,
Roxana


On Mon, 15 Feb 2021 at 12:19, Simon Kuenzer <simon.kuenzer@neclab.eu> wrote:

> This commit removes the additional clause
> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
> from BSD license headers that got introduced by mistake
> Roxana Nicolescu with the following commit:
>  cd1873671 - lib/ukblkdev: Request interface
>  9065c15ef - plat/xen/drivers/blk: Register blkfront with libukblkdev
>  30f42955f - plat/xen/drivers: Introduce blkfront driver skeleton
>  620425c02 - lib/ukblkdev: Blkdev registration
>  bff097cd2 - plat/xen/drivers/blk: Init Xenbus Device
>
> On the one hand, this additional clause is redundant because
> the BSD license already states that it must remain and the
> copyright notice must be kept.
> On the other hand, the clause freezes the file header
> and prohibits future contributors from extending the
> copyright notice for their contributions. This additional
> clause is not part of the official BSD 3-clause.
>
> The original author consents to the change with a `Signed-off-by`
> or `Reviewed-by` tag to this commit.
>
> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
> ---
>  lib/ukblkdev/blkdev.c                   | 2 --
>  lib/ukblkdev/include/uk/blkdev.h        | 2 --
>  lib/ukblkdev/include/uk/blkdev_core.h   | 2 --
>  lib/ukblkdev/include/uk/blkdev_driver.h | 2 --
>  lib/ukblkdev/include/uk/blkreq.h        | 2 --
>  plat/xen/drivers/blk/blkfront.c         | 2 --
>  plat/xen/drivers/blk/blkfront.h         | 2 --
>  plat/xen/drivers/blk/blkfront_xb.h      | 2 --
>  plat/xen/drivers/blk/blkfront_xs.c      | 2 --
>  9 files changed, 18 deletions(-)
>
> diff --git a/lib/ukblkdev/blkdev.c b/lib/ukblkdev/blkdev.c
> index 9cafa0c42..bac30a724 100644
> --- a/lib/ukblkdev/blkdev.c
> +++ b/lib/ukblkdev/blkdev.c
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  /* This is derived from uknetdev because of consistency reasons */
>  #define _GNU_SOURCE /* for asprintf() */
> diff --git a/lib/ukblkdev/include/uk/blkdev.h
> b/lib/ukblkdev/include/uk/blkdev.h
> index 3e42eb98a..a6c0f3b9b 100644
> --- a/lib/ukblkdev/include/uk/blkdev.h
> +++ b/lib/ukblkdev/include/uk/blkdev.h
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  /* This is derived from uknetdev because of consistency reasons */
>  #ifndef __UK_BLKDEV__
> diff --git a/lib/ukblkdev/include/uk/blkdev_core.h
> b/lib/ukblkdev/include/uk/blkdev_core.h
> index 11a642c40..360af9f95 100644
> --- a/lib/ukblkdev/include/uk/blkdev_core.h
> +++ b/lib/ukblkdev/include/uk/blkdev_core.h
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  /* This is derived from uknetdev because of consistency reasons */
>  #ifndef __UK_BLKDEV_CORE__
> diff --git a/lib/ukblkdev/include/uk/blkdev_driver.h
> b/lib/ukblkdev/include/uk/blkdev_driver.h
> index cb1b3ba39..27c928feb 100644
> --- a/lib/ukblkdev/include/uk/blkdev_driver.h
> +++ b/lib/ukblkdev/include/uk/blkdev_driver.h
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  /* This is derived from uknetdev because of consistency reasons */
>  #ifndef __UK_BLKDEV_DRIVER__
> diff --git a/lib/ukblkdev/include/uk/blkreq.h
> b/lib/ukblkdev/include/uk/blkreq.h
> index ae1a31ed5..ec8d744ea 100644
> --- a/lib/ukblkdev/include/uk/blkreq.h
> +++ b/lib/ukblkdev/include/uk/blkreq.h
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef UK_BLKREQ_H_
>  #define UK_BLKREQ_H_
> diff --git a/plat/xen/drivers/blk/blkfront.c
> b/plat/xen/drivers/blk/blkfront.c
> index a41373409..558526838 100644
> --- a/plat/xen/drivers/blk/blkfront.c
> +++ b/plat/xen/drivers/blk/blkfront.c
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #include <inttypes.h>
>  #include <string.h>
> diff --git a/plat/xen/drivers/blk/blkfront.h
> b/plat/xen/drivers/blk/blkfront.h
> index 40622ce9c..97f2c68e0 100644
> --- a/plat/xen/drivers/blk/blkfront.h
> +++ b/plat/xen/drivers/blk/blkfront.h
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef __BLKFRONT_H__
>  #define __BLKFRONT_H__
> diff --git a/plat/xen/drivers/blk/blkfront_xb.h
> b/plat/xen/drivers/blk/blkfront_xb.h
> index d1b5f1ea8..a4b14acd6 100644
> --- a/plat/xen/drivers/blk/blkfront_xb.h
> +++ b/plat/xen/drivers/blk/blkfront_xb.h
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef __BLKFRONT_XB_H__
>  #define __BLKFRONT_XB_H__
> diff --git a/plat/xen/drivers/blk/blkfront_xs.c
> b/plat/xen/drivers/blk/blkfront_xs.c
> index f10ca66a1..890281195 100644
> --- a/plat/xen/drivers/blk/blkfront_xs.c
> +++ b/plat/xen/drivers/blk/blkfront_xs.c
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #define _GNU_SOURCE /* for asprintf() */
>  #include <inttypes.h>
> --
> 2.20.1
>

--0000000000005e079e05bcbaf5ba
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Sorry for the late reply.<br><br>Signed-off-by: Roxana Nic=
olescu &lt;<a href=3D"mailto:nicolescu.roxana1996@gmail.com">nicolescu.roxa=
na1996@gmail.com</a>&gt;<span class=3D"sewmus8kceprazw"></span><span class=
=3D"sewmus8kceprazw"></span><br><br>All the best,<br>Roxana<br></div><br><b=
r><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, =
15 Feb 2021 at 12:19, Simon Kuenzer &lt;<a href=3D"mailto:simon.kuenzer@nec=
lab.eu">simon.kuenzer@neclab.eu</a>&gt; wrote:<br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg=
b(204,204,204);padding-left:1ex">This commit removes the additional clause<=
br>
&quot;THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY&quot;<br>
from BSD license headers that got introduced by mistake<br>
Roxana Nicolescu with the following commit:<br>
=C2=A0cd1873671 - lib/ukblkdev: Request interface<br>
=C2=A09065c15ef - plat/xen/drivers/blk: Register blkfront with libukblkdev<=
br>
=C2=A030f42955f - plat/xen/drivers: Introduce blkfront driver skeleton<br>
=C2=A0620425c02 - lib/ukblkdev: Blkdev registration<br>
=C2=A0bff097cd2 - plat/xen/drivers/blk: Init Xenbus Device<br>
<br>
On the one hand, this additional clause is redundant because<br>
the BSD license already states that it must remain and the<br>
copyright notice must be kept.<br>
On the other hand, the clause freezes the file header<br>
and prohibits future contributors from extending the<br>
copyright notice for their contributions. This additional<br>
clause is not part of the official BSD 3-clause.<br>
<br>
The original author consents to the change with a `Signed-off-by`<br>
or `Reviewed-by` tag to this commit.<br>
<br>
Signed-off-by: Simon Kuenzer &lt;<a href=3D"mailto:simon.kuenzer@neclab.eu"=
 target=3D"_blank">simon.kuenzer@neclab.eu</a>&gt;<br>
---<br>
=C2=A0lib/ukblkdev/blkdev.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0| 2 --<br>
=C2=A0lib/ukblkdev/include/uk/blkdev.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 | 2 --<br=
>
=C2=A0lib/ukblkdev/include/uk/blkdev_core.h=C2=A0 =C2=A0| 2 --<br>
=C2=A0lib/ukblkdev/include/uk/blkdev_driver.h | 2 --<br>
=C2=A0lib/ukblkdev/include/uk/blkreq.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 | 2 --<br=
>
=C2=A0plat/xen/drivers/blk/blkfront.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 2 =
--<br>
=C2=A0plat/xen/drivers/blk/blkfront.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 2 =
--<br>
=C2=A0plat/xen/drivers/blk/blkfront_xb.h=C2=A0 =C2=A0 =C2=A0 | 2 --<br>
=C2=A0plat/xen/drivers/blk/blkfront_xs.c=C2=A0 =C2=A0 =C2=A0 | 2 --<br>
=C2=A09 files changed, 18 deletions(-)<br>
<br>
diff --git a/lib/ukblkdev/blkdev.c b/lib/ukblkdev/blkdev.c<br>
index 9cafa0c42..bac30a724 100644<br>
--- a/lib/ukblkdev/blkdev.c<br>
+++ b/lib/ukblkdev/blkdev.c<br>
@@ -29,8 +29,6 @@<br>
=C2=A0 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)<br>
=C2=A0 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE<br>
=C2=A0 * POSSIBILITY OF SUCH DAMAGE.<br>
- *<br>
- * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.<br>
=C2=A0 */<br>
=C2=A0/* This is derived from uknetdev because of consistency reasons */<br=
>
=C2=A0#define _GNU_SOURCE /* for asprintf() */<br>
diff --git a/lib/ukblkdev/include/uk/blkdev.h b/lib/ukblkdev/include/uk/blk=
dev.h<br>
index 3e42eb98a..a6c0f3b9b 100644<br>
--- a/lib/ukblkdev/include/uk/blkdev.h<br>
+++ b/lib/ukblkdev/include/uk/blkdev.h<br>
@@ -29,8 +29,6 @@<br>
=C2=A0 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)<br>
=C2=A0 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE<br>
=C2=A0 * POSSIBILITY OF SUCH DAMAGE.<br>
- *<br>
- * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.<br>
=C2=A0 */<br>
=C2=A0/* This is derived from uknetdev because of consistency reasons */<br=
>
=C2=A0#ifndef __UK_BLKDEV__<br>
diff --git a/lib/ukblkdev/include/uk/blkdev_core.h b/lib/ukblkdev/include/u=
k/blkdev_core.h<br>
index 11a642c40..360af9f95 100644<br>
--- a/lib/ukblkdev/include/uk/blkdev_core.h<br>
+++ b/lib/ukblkdev/include/uk/blkdev_core.h<br>
@@ -29,8 +29,6 @@<br>
=C2=A0 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)<br>
=C2=A0 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE<br>
=C2=A0 * POSSIBILITY OF SUCH DAMAGE.<br>
- *<br>
- * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.<br>
=C2=A0 */<br>
=C2=A0/* This is derived from uknetdev because of consistency reasons */<br=
>
=C2=A0#ifndef __UK_BLKDEV_CORE__<br>
diff --git a/lib/ukblkdev/include/uk/blkdev_driver.h b/lib/ukblkdev/include=
/uk/blkdev_driver.h<br>
index cb1b3ba39..27c928feb 100644<br>
--- a/lib/ukblkdev/include/uk/blkdev_driver.h<br>
+++ b/lib/ukblkdev/include/uk/blkdev_driver.h<br>
@@ -29,8 +29,6 @@<br>
=C2=A0 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)<br>
=C2=A0 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE<br>
=C2=A0 * POSSIBILITY OF SUCH DAMAGE.<br>
- *<br>
- * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.<br>
=C2=A0 */<br>
=C2=A0/* This is derived from uknetdev because of consistency reasons */<br=
>
=C2=A0#ifndef __UK_BLKDEV_DRIVER__<br>
diff --git a/lib/ukblkdev/include/uk/blkreq.h b/lib/ukblkdev/include/uk/blk=
req.h<br>
index ae1a31ed5..ec8d744ea 100644<br>
--- a/lib/ukblkdev/include/uk/blkreq.h<br>
+++ b/lib/ukblkdev/include/uk/blkreq.h<br>
@@ -29,8 +29,6 @@<br>
=C2=A0 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)<br>
=C2=A0 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE<br>
=C2=A0 * POSSIBILITY OF SUCH DAMAGE.<br>
- *<br>
- * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.<br>
=C2=A0 */<br>
=C2=A0#ifndef UK_BLKREQ_H_<br>
=C2=A0#define UK_BLKREQ_H_<br>
diff --git a/plat/xen/drivers/blk/blkfront.c b/plat/xen/drivers/blk/blkfron=
t.c<br>
index a41373409..558526838 100644<br>
--- a/plat/xen/drivers/blk/blkfront.c<br>
+++ b/plat/xen/drivers/blk/blkfront.c<br>
@@ -29,8 +29,6 @@<br>
=C2=A0 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)<br>
=C2=A0 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE<br>
=C2=A0 * POSSIBILITY OF SUCH DAMAGE.<br>
- *<br>
- * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.<br>
=C2=A0 */<br>
=C2=A0#include &lt;inttypes.h&gt;<br>
=C2=A0#include &lt;string.h&gt;<br>
diff --git a/plat/xen/drivers/blk/blkfront.h b/plat/xen/drivers/blk/blkfron=
t.h<br>
index 40622ce9c..97f2c68e0 100644<br>
--- a/plat/xen/drivers/blk/blkfront.h<br>
+++ b/plat/xen/drivers/blk/blkfront.h<br>
@@ -29,8 +29,6 @@<br>
=C2=A0 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)<br>
=C2=A0 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE<br>
=C2=A0 * POSSIBILITY OF SUCH DAMAGE.<br>
- *<br>
- * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.<br>
=C2=A0 */<br>
=C2=A0#ifndef __BLKFRONT_H__<br>
=C2=A0#define __BLKFRONT_H__<br>
diff --git a/plat/xen/drivers/blk/blkfront_xb.h b/plat/xen/drivers/blk/blkf=
ront_xb.h<br>
index d1b5f1ea8..a4b14acd6 100644<br>
--- a/plat/xen/drivers/blk/blkfront_xb.h<br>
+++ b/plat/xen/drivers/blk/blkfront_xb.h<br>
@@ -29,8 +29,6 @@<br>
=C2=A0 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)<br>
=C2=A0 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE<br>
=C2=A0 * POSSIBILITY OF SUCH DAMAGE.<br>
- *<br>
- * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.<br>
=C2=A0 */<br>
=C2=A0#ifndef __BLKFRONT_XB_H__<br>
=C2=A0#define __BLKFRONT_XB_H__<br>
diff --git a/plat/xen/drivers/blk/blkfront_xs.c b/plat/xen/drivers/blk/blkf=
ront_xs.c<br>
index f10ca66a1..890281195 100644<br>
--- a/plat/xen/drivers/blk/blkfront_xs.c<br>
+++ b/plat/xen/drivers/blk/blkfront_xs.c<br>
@@ -29,8 +29,6 @@<br>
=C2=A0 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)<br>
=C2=A0 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE<br>
=C2=A0 * POSSIBILITY OF SUCH DAMAGE.<br>
- *<br>
- * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.<br>
=C2=A0 */<br>
=C2=A0#define _GNU_SOURCE /* for asprintf() */<br>
=C2=A0#include &lt;inttypes.h&gt;<br>
-- <br>
2.20.1<br>
</blockquote></div>

--0000000000005e079e05bcbaf5ba--


From minios-devel-bounces@lists.xenproject.org Wed Mar 10 06:36:52 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 10 Mar 2021 06:36:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.95859.180953 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lJsSf-0003T5-GO; Wed, 10 Mar 2021 06:36:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 95859.180953; Wed, 10 Mar 2021 06:36:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lJsSf-0003Sy-D5; Wed, 10 Mar 2021 06:36:49 +0000
Received: by outflank-mailman (input) for mailman id 95859;
 Wed, 10 Mar 2021 06:36:48 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/gcx=II=gmail.com=razvand@srs-us1.protection.inumbo.net>)
 id 1lJsSe-0003St-2z
 for minios-devel@lists.xen.org; Wed, 10 Mar 2021 06:36:48 +0000
Received: from mail-wm1-x333.google.com (unknown [2a00:1450:4864:20::333])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 1a4cc137-9f54-4a01-b0a9-d1a8542b096e;
 Wed, 10 Mar 2021 06:36:44 +0000 (UTC)
Received: by mail-wm1-x333.google.com with SMTP id
 j4-20020a05600c4104b029010c62bc1e20so9672281wmi.3
 for <minios-devel@lists.xen.org>; Tue, 09 Mar 2021 22:36:44 -0800 (PST)
Received: from localhost ([141.85.225.205])
 by smtp.gmail.com with ESMTPSA id u20sm32072452wru.6.2021.03.09.22.36.42
 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256);
 Tue, 09 Mar 2021 22:36:43 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 1a4cc137-9f54-4a01-b0a9-d1a8542b096e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
         :user-agent:mime-version;
        bh=srCIQ/b6i3Kkh146Os2Yh2EA0SPozEBEo9a81oHbZx8=;
        b=BpTEHAf5q2mK4QH1YjKR5fG4wWqRIn0VbfEhSEM/T4WTnJBZILM6h2lHkwE3LrkH2q
         c2LavO17RVm9Lnt7bJ8pcH3PzXFZjt1hah/lIecn0oO4/mDla6IEzWKjgRB6aVlyDm+w
         a4DeK8xWqe3dHwfC2Zwz7PsoMaQjH3c+OqvKceosKnxH8nJ1ZXOktiK8SqmRfyp0VXV1
         j+Mb9gkbE4qqrxoLt/O6BefUE2AfhvoL/46de3uKejAQyuUFZ6e2/6yBuXI63TzltGc6
         Bmbn64aGZyBxmUCOaQtyS5DYiDjdXpVyjwnDqiuf78Q53tI9R3lnuxyOljMD5rC49zCt
         Zg3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:sender:from:to:cc:subject:references:date
         :in-reply-to:message-id:user-agent:mime-version;
        bh=srCIQ/b6i3Kkh146Os2Yh2EA0SPozEBEo9a81oHbZx8=;
        b=EaYsOseBWCv9H4nBQDijnnny1tUo4L8k3yvks6DGOhNnY6rLbDAuvKxIZchD6HBjK3
         2KESrGRkQxF9qcy/qRssq0j/uZPFy3ENny6a1/xdGmUn+01GC9YW8h2Mk8n0wnaiz/d8
         CxOmiSmZvJRt5zbGvWoObSgkoZj0cND+zIJfFBbOb4dxZkT2f0GqEAXPbvNaEWZEwTCs
         p3RmSL/G3jrEWDHC0m8oC+6YFqFEIWJQo0esbl0vuT0WCLnaCaGtBxlL31eMU5lIjo2i
         yEy9t0dDICC7QgKsdqJJ4E/3QKdQAbRJ3oxFsa4R+cg2bQvE4JKpyCjJexMi1f4pZ8ok
         /9/Q==
X-Gm-Message-State: AOAM532WECd44hIOaaYX7t0Tx6PFwwkxEvSt8RnYhv17YwUGaK1KaEA3
	8hj/wvrKgdK0GSqhUfvcgiY=
X-Google-Smtp-Source: ABdhPJycH7+oLFa/682wJ2E3AGSLDaQGc4PeQL42DuDWnJ28ShAwBOwH5HQrAeQfrdvTRejgFASQ+A==
X-Received: by 2002:a1c:195:: with SMTP id 143mr1653151wmb.147.1615358203597;
        Tue, 09 Mar 2021 22:36:43 -0800 (PST)
Sender: Razvan Deaconescu <razvand@gmail.com>
From: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Cc: <minios-devel@lists.xen.org>,  Costin Lupu <costin.lupu@cs.pub.ro>,  Sharan Santhanam <sharan.santhanam@neclab.eu>,  Felipe Huici <felipe.huici@neclab.eu>,  <nicolescu.roxana1996@gmail.com>,  <lascu.bogdan96@gmail.com>,  <vlad_andrei.badoiu@upb.ro>,  <cristb@gmail.com>
Subject: Re: [UNIKRAFT PATCH 4/8] Correct license headers introduced by UPB
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
	<20210215111902.3382-5-simon.kuenzer@neclab.eu>
Date: Wed, 10 Mar 2021 08:36:41 +0200
In-Reply-To: <20210215111902.3382-5-simon.kuenzer@neclab.eu> (Simon Kuenzer's
	message of "Mon, 15 Feb 2021 12:18:58 +0100")
Message-ID: <86czw7zf9i.fsf@drone.cs.pub.ro>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain

This is OK from UPB's side.

Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>

Razvan

Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
> This commit removes the additional clause
> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
> from BSD license headers that got introduced by mistake
> by Cristian Banu with the following commits:
>  ca9616f9a - lib/uk9p: Add 9P fid abstraction
>  b2ce99adc - lib/uk9p: Add 9P transport registration
>  5c24de843 - lib/uk9p: Add 9P device implementation
>  440259b39 - plat/xen/drivers/9p: Initialize xenbus device
>  5282598ae - plat/drivers: Virtio 9P driver skeleton
>  7ee9a512d - plat/xen/drivers: Add 9pfront driver skeleton
>  f2c29a657 - lib/uk9p: Add 9P requests abstraction
>  f74733d49 - lib/9pfs: Implement mount and unmount
>  cd65e50e4 - lib/uk9p: Add 9P protocol core definitions
>  ef1021378 - lib/9pfs: Add 9pfs header
>  e77b99c78 - lib/uk9p: Add 9P helper API
>
> On the one hand, this additional clause is redundant because
> the BSD license already states that it must remain and the
> copyright notice must be kept.
> On the other hand, the clause freezes the file header
> and prohibits future contributors from extending the
> copyright notice for their contributions. This additional
> clause is not part of the official BSD 3-clause.
>
> The original author consents to the change with a `Signed-off-by`
> or `Reviewed-by` tag to this commit.
>
> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
> ---
>  lib/9pfs/9pfs.h                         | 2 --
>  lib/9pfs/9pfs_vfsops.c                  | 2 --
>  lib/9pfs/9pfs_vnops.c                   | 2 --
>  lib/uk9p/9p.c                           | 2 --
>  lib/uk9p/9pdev.c                        | 2 --
>  lib/uk9p/9pdev_trans.c                  | 2 --
>  lib/uk9p/9pfid.c                        | 2 --
>  lib/uk9p/9preq.c                        | 2 --
>  lib/uk9p/include/uk/9p.h                | 2 --
>  lib/uk9p/include/uk/9p_core.h           | 2 --
>  lib/uk9p/include/uk/9pdev.h             | 2 --
>  lib/uk9p/include/uk/9pdev_core.h        | 2 --
>  lib/uk9p/include/uk/9pdev_trans.h       | 2 --
>  lib/uk9p/include/uk/9pfid.h             | 2 --
>  lib/uk9p/include/uk/9preq.h             | 2 --
>  plat/drivers/include/virtio/virtio_9p.h | 2 --
>  plat/drivers/virtio/virtio_9p.c         | 2 --
>  plat/xen/drivers/9p/9pfront.c           | 2 --
>  plat/xen/drivers/9p/9pfront.h           | 2 --
>  plat/xen/drivers/9p/9pfront_xb.h        | 2 --
>  plat/xen/drivers/9p/9pfront_xs.c        | 2 --
>  21 files changed, 42 deletions(-)
>
> diff --git a/lib/9pfs/9pfs.h b/lib/9pfs/9pfs.h
> index 3571c857b..38eb00b8c 100644
> --- a/lib/9pfs/9pfs.h
> +++ b/lib/9pfs/9pfs.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __UK_9PFS__
> diff --git a/lib/9pfs/9pfs_vfsops.c b/lib/9pfs/9pfs_vfsops.c
> index 5293b2213..6550a5e99 100644
> --- a/lib/9pfs/9pfs_vfsops.c
> +++ b/lib/9pfs/9pfs_vfsops.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <uk/config.h>
> diff --git a/lib/9pfs/9pfs_vnops.c b/lib/9pfs/9pfs_vnops.c
> index 5a0700c61..a0b11686c 100644
> --- a/lib/9pfs/9pfs_vnops.c
> +++ b/lib/9pfs/9pfs_vnops.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #define _GNU_SOURCE
> diff --git a/lib/uk9p/9p.c b/lib/uk9p/9p.c
> index abddb6088..a6a7fb943 100644
> --- a/lib/uk9p/9p.c
> +++ b/lib/uk9p/9p.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <uk/config.h>
> diff --git a/lib/uk9p/9pdev.c b/lib/uk9p/9pdev.c
> index bdd6a84cf..1cc6167f8 100644
> --- a/lib/uk9p/9pdev.c
> +++ b/lib/uk9p/9pdev.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <stdbool.h>
> diff --git a/lib/uk9p/9pdev_trans.c b/lib/uk9p/9pdev_trans.c
> index 156632032..628f67d24 100644
> --- a/lib/uk9p/9pdev_trans.c
> +++ b/lib/uk9p/9pdev_trans.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <errno.h>
> diff --git a/lib/uk9p/9pfid.c b/lib/uk9p/9pfid.c
> index 85d14c660..16e27b74f 100644
> --- a/lib/uk9p/9pfid.c
> +++ b/lib/uk9p/9pfid.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <uk/config.h>
> diff --git a/lib/uk9p/9preq.c b/lib/uk9p/9preq.c
> index edc462cc0..b85798051 100644
> --- a/lib/uk9p/9preq.c
> +++ b/lib/uk9p/9preq.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <string.h>
> diff --git a/lib/uk9p/include/uk/9p.h b/lib/uk9p/include/uk/9p.h
> index e91b14774..06befc755 100644
> --- a/lib/uk9p/include/uk/9p.h
> +++ b/lib/uk9p/include/uk/9p.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef __UK_9P__
>  #define __UK_9P__
> diff --git a/lib/uk9p/include/uk/9p_core.h b/lib/uk9p/include/uk/9p_core.h
> index 197f7a95d..59f5527ae 100644
> --- a/lib/uk9p/include/uk/9p_core.h
> +++ b/lib/uk9p/include/uk/9p_core.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __UK_9P_CORE__
> diff --git a/lib/uk9p/include/uk/9pdev.h b/lib/uk9p/include/uk/9pdev.h
> index 560ba8f79..75be3518f 100644
> --- a/lib/uk9p/include/uk/9pdev.h
> +++ b/lib/uk9p/include/uk/9pdev.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __UK_9PDEV__
> diff --git a/lib/uk9p/include/uk/9pdev_core.h b/lib/uk9p/include/uk/9pdev_core.h
> index fcad1ef75..99c290b4c 100644
> --- a/lib/uk9p/include/uk/9pdev_core.h
> +++ b/lib/uk9p/include/uk/9pdev_core.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __UK_9PDEV_CORE__
> diff --git a/lib/uk9p/include/uk/9pdev_trans.h b/lib/uk9p/include/uk/9pdev_trans.h
> index 6e981ae88..7a68ff027 100644
> --- a/lib/uk9p/include/uk/9pdev_trans.h
> +++ b/lib/uk9p/include/uk/9pdev_trans.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __UK_9PDEV_TRANS__
> diff --git a/lib/uk9p/include/uk/9pfid.h b/lib/uk9p/include/uk/9pfid.h
> index 7ec75bb4a..ad33efbaa 100644
> --- a/lib/uk9p/include/uk/9pfid.h
> +++ b/lib/uk9p/include/uk/9pfid.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __UK_9PFID__
> diff --git a/lib/uk9p/include/uk/9preq.h b/lib/uk9p/include/uk/9preq.h
> index aad8d4263..90febd865 100644
> --- a/lib/uk9p/include/uk/9preq.h
> +++ b/lib/uk9p/include/uk/9preq.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __UK_9PREQ__
> diff --git a/plat/drivers/include/virtio/virtio_9p.h b/plat/drivers/include/virtio/virtio_9p.h
> index 29158ab71..383a60832 100644
> --- a/plat/drivers/include/virtio/virtio_9p.h
> +++ b/plat/drivers/include/virtio/virtio_9p.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __PLAT_DRV_VIRTIO_9P_H
> diff --git a/plat/drivers/virtio/virtio_9p.c b/plat/drivers/virtio/virtio_9p.c
> index a783eba27..1974efe88 100644
> --- a/plat/drivers/virtio/virtio_9p.c
> +++ b/plat/drivers/virtio/virtio_9p.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <inttypes.h>
> diff --git a/plat/xen/drivers/9p/9pfront.c b/plat/xen/drivers/9p/9pfront.c
> index 429c7b97d..6c9f232c0 100644
> --- a/plat/xen/drivers/9p/9pfront.c
> +++ b/plat/xen/drivers/9p/9pfront.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <stdbool.h>
> diff --git a/plat/xen/drivers/9p/9pfront.h b/plat/xen/drivers/9p/9pfront.h
> index 0bbc7f445..2fba9ad7d 100644
> --- a/plat/xen/drivers/9p/9pfront.h
> +++ b/plat/xen/drivers/9p/9pfront.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __9PFRONT_H__
> diff --git a/plat/xen/drivers/9p/9pfront_xb.h b/plat/xen/drivers/9p/9pfront_xb.h
> index 6e2697f9c..bfa094fb8 100644
> --- a/plat/xen/drivers/9p/9pfront_xb.h
> +++ b/plat/xen/drivers/9p/9pfront_xb.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __9PFRONT_XB_H__
> diff --git a/plat/xen/drivers/9p/9pfront_xs.c b/plat/xen/drivers/9p/9pfront_xs.c
> index 7185061cc..b78e67211 100644
> --- a/plat/xen/drivers/9p/9pfront_xs.c
> +++ b/plat/xen/drivers/9p/9pfront_xs.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <string.h>


From minios-devel-bounces@lists.xenproject.org Wed Mar 10 06:37:00 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 10 Mar 2021 06:37:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.95860.180956 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lJsSq-0003Tt-I4; Wed, 10 Mar 2021 06:37:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 95860.180956; Wed, 10 Mar 2021 06:37:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lJsSq-0003Tm-F2; Wed, 10 Mar 2021 06:37:00 +0000
Received: by outflank-mailman (input) for mailman id 95860;
 Wed, 10 Mar 2021 06:36:59 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/gcx=II=gmail.com=razvand@srs-us1.protection.inumbo.net>)
 id 1lJsSo-0003Tf-Vo
 for minios-devel@lists.xen.org; Wed, 10 Mar 2021 06:36:59 +0000
Received: from mail-wm1-x333.google.com (unknown [2a00:1450:4864:20::333])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 29db0f26-fe91-4cb0-a76b-2c18320193c8;
 Wed, 10 Mar 2021 06:36:57 +0000 (UTC)
Received: by mail-wm1-x333.google.com with SMTP id i9so6102066wml.0
 for <minios-devel@lists.xen.org>; Tue, 09 Mar 2021 22:36:56 -0800 (PST)
Received: from localhost ([141.85.225.205])
 by smtp.gmail.com with ESMTPSA id z2sm15446598wrv.47.2021.03.09.22.36.55
 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256);
 Tue, 09 Mar 2021 22:36:55 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 29db0f26-fe91-4cb0-a76b-2c18320193c8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
         :user-agent:mime-version;
        bh=pbccneHGQjspmDP2OxvgtE/jMWRDv0jK0ZE9AfyyM6M=;
        b=byTWg7w7mS85utahR556z7NsRp4fwcENi808Bg1a5bqZlLkiCQuupqp+D7z3bwqlC4
         4MWpzW+DSuhEBirmOI3uB/nYW2gRWpIVIsTTYFHYYfZtudGTZ4uhpJs1fbWyPci9DwYx
         zTWiPOzs7/N6n9FHaOeBYiORSN5ICR2Pb/mZg/hos6zNUlNSDTPJJARWPFWZVnaQuob4
         5PwHnOWX/t6+1UG91CZfxzzYDyNlZrrTi7cU6ns6YJf2g9L4g64e1V5WzretUOAAg9LG
         +IEa3GS6CoLMOlR9+YrIwhfL9iiLN6T55zs7Io1ElUBa4KI2J/92gmqCCwZK8eLVjOmT
         eeDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:sender:from:to:cc:subject:references:date
         :in-reply-to:message-id:user-agent:mime-version;
        bh=pbccneHGQjspmDP2OxvgtE/jMWRDv0jK0ZE9AfyyM6M=;
        b=s2uiRzSyiLBjbnC/AzLL3X/JdraLE8PG6HC+ScaVo6ykkFI4ZM3xfaJ9aqJezh2GYy
         cYdjFUqNFf3o4LY+OYw/6svO4SfvOtto36e4KTM7wtUWWCQJQgcMKeJghkQYwhDJeTaM
         dswJmi8kwKQTgFkK9MppBOb6Eq109Gk1oIsiSPIHYzOEondhxLH0nEXEHcKwW5x8LTjU
         39pNLmrQ/5E9Os0Zv4IFw9J3Vc4cJxI4ot9BtflC+11oD4Setsms+m1c3+QPrTBQkgjE
         /YAOEdKt1BF3mbOo6cLY1VtlYJwC9paJpeHANwjwfVXsnyZaCrSwyoA/kH47rJ4Gb/J/
         GRDA==
X-Gm-Message-State: AOAM532EaunsKRXgiJt+LhXvX8W4DG561YE5piwSh1Epdrx3GXqU49Ak
	X6pzouLW+IM1JZPSU4wIyjU=
X-Google-Smtp-Source: ABdhPJyN4FmPYb3yxkTF1xO2iSuGdcr94RkwcbzmXVxRBZJMQpQv6zFBScPUpsXq3BSjl8z3jWWTFg==
X-Received: by 2002:a7b:cd8f:: with SMTP id y15mr1645555wmj.185.1615358216191;
        Tue, 09 Mar 2021 22:36:56 -0800 (PST)
Sender: Razvan Deaconescu <razvand@gmail.com>
From: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Cc: <minios-devel@lists.xen.org>,  Costin Lupu <costin.lupu@cs.pub.ro>,  Sharan Santhanam <sharan.santhanam@neclab.eu>,  Felipe Huici <felipe.huici@neclab.eu>,  <nicolescu.roxana1996@gmail.com>,  <lascu.bogdan96@gmail.com>,  <vlad_andrei.badoiu@upb.ro>,  <cristb@gmail.com>
Subject: Re: [UNIKRAFT PATCH 6/8] Correct license headers introduced by UPB
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
	<20210215111902.3382-7-simon.kuenzer@neclab.eu>
Date: Wed, 10 Mar 2021 08:36:54 +0200
In-Reply-To: <20210215111902.3382-7-simon.kuenzer@neclab.eu> (Simon Kuenzer's
	message of "Mon, 15 Feb 2021 12:19:00 +0100")
Message-ID: <868s6vzf95.fsf@drone.cs.pub.ro>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain

This is OK from UPB's side.

Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>

Razvan

Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
> This commit removes the additional clause
> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
> from BSD license headers that got introduced by mistake
> by Razvan Cojocaru with the following commit:
>  63fac86c7 - lib/uknetdev: Netdev registration
>
> On the one hand, this additional clause is redundant because
> the BSD license already states that it must remain and the
> copyright notice must be kept.
> On the other hand, the clause freezes the file header
> and prohibits future contributors from extending the
> copyright notice for their contributions. This additional
> clause is not part of the official BSD 3-clause.
>
> The original author consents to the change with a `Signed-off-by`
> or `Reviewed-by` tag to this commit.
>
> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
> ---
>  lib/uknetdev/include/uk/netdev.h        | 2 --
>  lib/uknetdev/include/uk/netdev_core.h   | 2 --
>  lib/uknetdev/include/uk/netdev_driver.h | 2 --
>  lib/uknetdev/netdev.c                   | 2 --
>  4 files changed, 8 deletions(-)
>
> diff --git a/lib/uknetdev/include/uk/netdev.h b/lib/uknetdev/include/uk/netdev.h
> index 74a04ad73..b3ee666b3 100644
> --- a/lib/uknetdev/include/uk/netdev.h
> +++ b/lib/uknetdev/include/uk/netdev.h
> @@ -30,8 +30,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  /* Derived from DPDK rte_ethdev_core.h - DPDK.org 18.02.2 */
>  #ifndef __UK_NETDEV__
> diff --git a/lib/uknetdev/include/uk/netdev_core.h b/lib/uknetdev/include/uk/netdev_core.h
> index df6ceebfd..e8ebaae8b 100644
> --- a/lib/uknetdev/include/uk/netdev_core.h
> +++ b/lib/uknetdev/include/uk/netdev_core.h
> @@ -30,8 +30,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  /* Derived from DPDK rte_ethdev_core.h - DPDK.org 18.02.2 */
>  #ifndef __UK_NETDEV_CORE__
> diff --git a/lib/uknetdev/include/uk/netdev_driver.h b/lib/uknetdev/include/uk/netdev_driver.h
> index 6033f6201..96408580b 100644
> --- a/lib/uknetdev/include/uk/netdev_driver.h
> +++ b/lib/uknetdev/include/uk/netdev_driver.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef __UK_NETDEV_DRIVER__
>  #define __UK_NETDEV_DRIVER__
> diff --git a/lib/uknetdev/netdev.c b/lib/uknetdev/netdev.c
> index 87322c7f4..cb02b06a5 100644
> --- a/lib/uknetdev/netdev.c
> +++ b/lib/uknetdev/netdev.c
> @@ -30,8 +30,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #define _GNU_SOURCE /* for asprintf() */
>  #include <stdio.h>


From minios-devel-bounces@lists.xenproject.org Wed Mar 10 06:37:12 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 10 Mar 2021 06:37:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.95861.180961 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lJsT2-0003VO-KS; Wed, 10 Mar 2021 06:37:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 95861.180961; Wed, 10 Mar 2021 06:37:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lJsT2-0003VH-H6; Wed, 10 Mar 2021 06:37:12 +0000
Received: by outflank-mailman (input) for mailman id 95861;
 Wed, 10 Mar 2021 06:37:10 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/gcx=II=gmail.com=razvand@srs-us1.protection.inumbo.net>)
 id 1lJsT0-0003V9-OW
 for minios-devel@lists.xen.org; Wed, 10 Mar 2021 06:37:10 +0000
Received: from mail-wr1-x42c.google.com (unknown [2a00:1450:4864:20::42c])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 10db19b6-6076-420d-8c05-5a1257a3112a;
 Wed, 10 Mar 2021 06:37:07 +0000 (UTC)
Received: by mail-wr1-x42c.google.com with SMTP id v15so21572541wrx.4
 for <minios-devel@lists.xen.org>; Tue, 09 Mar 2021 22:37:07 -0800 (PST)
Received: from localhost ([141.85.225.205])
 by smtp.gmail.com with ESMTPSA id a8sm7620965wmm.46.2021.03.09.22.37.05
 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256);
 Tue, 09 Mar 2021 22:37:06 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 10db19b6-6076-420d-8c05-5a1257a3112a
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
         :user-agent:mime-version;
        bh=EXhIXNslAq1zhS9W4HeJkaUTReuBPF6zW3Bs6exozZo=;
        b=juRhkhdbMzUnfi/UUMQe9RPbi66efw9wtfgO9NWeppChzMxsoVTkcaq5xFsk3WcgJ9
         0Qenqghz6bcvMfm7cRbTFF1lbzl0YO9GrZmdpNn0ttI6/366B/VU0VPv84fUpbzIxA38
         YYKxDkL6/AYdUxu5vI3CtEEOueHFpDnCfL5QBQi2jjC0jlWCehvuoGnXnW9vhLTwQVEY
         pSJEedKhdgOQNKwh3jveIs1/64hnLkKma5sj6YmWxCtgnM1HyMsnePynnHc39OsH0J9W
         MR8gVn7O+jlUV7kupWQiskBK9FJ/Ghi/k5qfqCFjTKwM7UNOM3/hwONfJV/3WYhOJ69i
         GYhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:sender:from:to:cc:subject:references:date
         :in-reply-to:message-id:user-agent:mime-version;
        bh=EXhIXNslAq1zhS9W4HeJkaUTReuBPF6zW3Bs6exozZo=;
        b=pE/oz1fhtTqQeCdCOfIgZnkzLvTtFF3SPxpi+KPamC1VDfsuVgIgyYg6YwYR+U4Upw
         nL1O9ar1xAqK6w09vzO3tZTjHeVnP4JCyRn48JWhnIcbfvFIHCKUAmSVS+/XGsPvjRr4
         Lr3SpdMK8/t0g01Q/fwfGjdSfqwND0T4tjPxJaGApARgzoeE3fo2/cxtefU5PQhC7iIx
         dXRjSu5gFAZ93FmtMERExoxn8Du9wJBdJuW+VRx+8ZA5s6Tzoys9+Wf/LokePp6sYzsV
         6EZj6+PSVFJbf7oGRD4CWkiAGaxO99EXQFQWX8u1UdLvnsQZYtT3YG2xzSg6AV5tNlWJ
         vqgg==
X-Gm-Message-State: AOAM530unj0AMKFfWXbSiio6YEjxHmen29xqc2JpwPFATRwNTGmH9r8E
	8HDMaZDWdOFh/3CZsXnZxlE=
X-Google-Smtp-Source: ABdhPJxgnbFhGa1rdIrKiF+Ffrf/k4VfWJ0ybtuY7LVmhAf4hycfOu2EMeVIhxge7xqfN2P98lZ86A==
X-Received: by 2002:a5d:6290:: with SMTP id k16mr1632275wru.177.1615358226375;
        Tue, 09 Mar 2021 22:37:06 -0800 (PST)
Sender: Razvan Deaconescu <razvand@gmail.com>
From: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Cc: <minios-devel@lists.xen.org>,  Costin Lupu <costin.lupu@cs.pub.ro>,  Sharan Santhanam <sharan.santhanam@neclab.eu>,  Felipe Huici <felipe.huici@neclab.eu>,  <nicolescu.roxana1996@gmail.com>,  <lascu.bogdan96@gmail.com>,  <vlad_andrei.badoiu@upb.ro>,  <cristb@gmail.com>
Subject: Re: [UNIKRAFT PATCH 3/8] Correct license headers introduced by UPB
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
	<20210215111902.3382-4-simon.kuenzer@neclab.eu>
Date: Wed, 10 Mar 2021 08:37:04 +0200
In-Reply-To: <20210215111902.3382-4-simon.kuenzer@neclab.eu> (Simon Kuenzer's
	message of "Mon, 15 Feb 2021 12:18:57 +0100")
Message-ID: <864khjzf8v.fsf@drone.cs.pub.ro>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain

This is OK from UPB's side.

Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>

Razvan

Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
> This commit removes the additional clause
> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
> from BSD license headers that got introduced by mistake
> by Costin Lupu with the following commits:
>  e09db222a - lib/posix-process: Introduce library
>  790787e1a - plat/kvm: Add KVM (x86_64) timer support
>  495221f5a - plat/common: Common x86 tracing functions
>  6ea24ce5f - plat/common: Common x86 segment descriptors definitions
>  3174af1a1 - plat/common: Common x86 traps definitions and functions
>  f2478ed85 - plat/kvm: Add KVM (x86_64) interrupts support
>  9f0389adf - plat/xen: Add Xenbus driver registration support
>  ff0c0bf65 - plat/kvm: Fix current thread retrieval in interrupt context on x86_64
>  fbbc468c9 - lib/uktime: Introduce time_types.h for type defintions
>  a79078c96 - plat/xen: Add API for Xenstore messages
>  300c8309c - plat: Introduce API for setting platform default allocator
>  45d7afdb5 - lib/uksched: Introduce thread attributes
>  9464bdc06 - plat/xen: Introduce client API for Xenbus drivers
>  cf2e10677 - plat/common: Common x86 CPU definitions
>  3bf7ba15a - plat/xen: Add IRQ subsystem initialization function
>  26a59e3d2 - plat/xen: Add support for communication with Xenstore daemon
>  cc797499a - plat/common: Common x86 CPU functions
>  dde942de7 - lib/ukunistd: Add user.h for user related functions declarations
>  1162bca18 - lib/posix-libdl: Add stubs
>  0101002ee - plat/common: Halting functions
>  5e73e025f - plat/xen: Add Xenstore watch support
>  62917eb15 - plat/linuxu: Add linuxu (x86_64) interrupts support
>  2c29345cd - lib/ukswrand: Add getrandom() function
>  925b04e24 - plat/linuxu: Add linuxu (x86_64) timer support
>  df484abae - lib/nolibc: Add time.c
>
> On the one hand, this additional clause is redundant because
> the BSD license already states that it must remain and the
> copyright notice must be kept.
> On the other hand, the clause freezes the file header
> and prohibits future contributors from extending the
> copyright notice for their contributions. This additional
> clause is not part of the official BSD 3-clause.
>
> The original author  consents to the change with a `Signed-off-by`
> or `Reviewed-by` tag to this commit.
>
> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
> ---
>  include/uk/plat/irq.h                       | 2 --
>  lib/posix-libdl/stubs.c                     | 2 --
>  lib/posix-process/include/uk/process.h      | 2 --
>  lib/posix-process/process.c                 | 2 --
>  lib/posix-user/include/uk/user.h            | 2 --
>  lib/uksched/include/uk/thread_attr.h        | 2 --
>  lib/uksched/thread_attr.c                   | 2 --
>  lib/ukswrand/getrandom.c                    | 2 --
>  lib/ukswrand/include/sys/random.h           | 2 --
>  lib/uktime/include/uk/time_types.h          | 2 --
>  lib/uktime/time.c                           | 2 --
>  plat/common/include/uk/plat/common/_time.h  | 2 --
>  plat/common/include/uk/plat/common/cpu.h    | 2 --
>  plat/common/include/uk/plat/common/memory.h | 2 --
>  plat/common/include/uk/plat/common/trace.h  | 2 --
>  plat/common/include/x86/cpu_defs.h          | 2 --
>  plat/common/include/x86/desc.h              | 2 --
>  plat/common/include/x86/traps.h             | 2 --
>  plat/common/lcpu.c                          | 2 --
>  plat/common/memory.c                        | 2 --
>  plat/common/x86/cpu_native.c                | 2 --
>  plat/common/x86/trace.c                     | 2 --
>  plat/common/x86/traps.c                     | 2 --
>  plat/kvm/include/kvm/intctrl.h              | 2 --
>  plat/kvm/include/kvm/irq.h                  | 2 --
>  plat/kvm/include/kvm/tscclock.h             | 2 --
>  plat/kvm/x86/memory.c                       | 2 --
>  plat/linuxu/include/linuxu/signal.h         | 2 --
>  plat/linuxu/include/linuxu/time.h           | 2 --
>  plat/linuxu/irq.c                           | 2 --
>  plat/xen/include/xenbus/client.h            | 2 --
>  plat/xen/include/xenbus/xenbus.h            | 2 --
>  plat/xen/include/xenbus/xs.h                | 2 --
>  plat/xen/x86/cpu_pv.c                       | 2 --
>  plat/xen/xenbus/client.c                    | 2 --
>  plat/xen/xenbus/xenbus.c                    | 2 --
>  plat/xen/xenbus/xs.c                        | 2 --
>  plat/xen/xenbus/xs_comms.c                  | 2 --
>  plat/xen/xenbus/xs_comms.h                  | 2 --
>  plat/xen/xenbus/xs_watch.c                  | 2 --
>  plat/xen/xenbus/xs_watch.h                  | 2 --
>  41 files changed, 82 deletions(-)
>
> diff --git a/include/uk/plat/irq.h b/include/uk/plat/irq.h
> index 6c1eb9402..baf0fa6e9 100644
> --- a/include/uk/plat/irq.h
> +++ b/include/uk/plat/irq.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef __UKPLAT_IRQ_H__
>  #define __UKPLAT_IRQ_H__
> diff --git a/lib/posix-libdl/stubs.c b/lib/posix-libdl/stubs.c
> index 4d1ea3e93..8407562d5 100644
> --- a/lib/posix-libdl/stubs.c
> +++ b/lib/posix-libdl/stubs.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <uk/essentials.h>
> diff --git a/lib/posix-process/include/uk/process.h b/lib/posix-process/include/uk/process.h
> index b5eeb90a0..de7f80077 100644
> --- a/lib/posix-process/include/uk/process.h
> +++ b/lib/posix-process/include/uk/process.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __UK_PROCESS_H__
> diff --git a/lib/posix-process/process.c b/lib/posix-process/process.c
> index a8541d8ab..3aecf01a5 100644
> --- a/lib/posix-process/process.c
> +++ b/lib/posix-process/process.c
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <errno.h>
> diff --git a/lib/posix-user/include/uk/user.h b/lib/posix-user/include/uk/user.h
> index 9c72bc0f7..6548702eb 100644
> --- a/lib/posix-user/include/uk/user.h
> +++ b/lib/posix-user/include/uk/user.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __UK_USER_H__
> diff --git a/lib/uksched/include/uk/thread_attr.h b/lib/uksched/include/uk/thread_attr.h
> index f4ba6cc39..48b47c60f 100644
> --- a/lib/uksched/include/uk/thread_attr.h
> +++ b/lib/uksched/include/uk/thread_attr.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __UK_SCHED_THREAD_ATTR_H__
> diff --git a/lib/uksched/thread_attr.c b/lib/uksched/thread_attr.c
> index 52afe9f94..388557081 100644
> --- a/lib/uksched/thread_attr.c
> +++ b/lib/uksched/thread_attr.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <stdlib.h>
> diff --git a/lib/ukswrand/getrandom.c b/lib/ukswrand/getrandom.c
> index f4567385a..f4f2b210a 100644
> --- a/lib/ukswrand/getrandom.c
> +++ b/lib/ukswrand/getrandom.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <string.h>
> diff --git a/lib/ukswrand/include/sys/random.h b/lib/ukswrand/include/sys/random.h
> index 4ccee1ccd..3fe8897f3 100644
> --- a/lib/ukswrand/include/sys/random.h
> +++ b/lib/ukswrand/include/sys/random.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef _SYS_RANDOM_H
> diff --git a/lib/uktime/include/uk/time_types.h b/lib/uktime/include/uk/time_types.h
> index d6b0083f1..36f76775d 100644
> --- a/lib/uktime/include/uk/time_types.h
> +++ b/lib/uktime/include/uk/time_types.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #if (defined __NEED_time_t && !defined __DEFINED_time_t)
> diff --git a/lib/uktime/time.c b/lib/uktime/time.c
> index 307d5008b..de4204697 100644
> --- a/lib/uktime/time.c
> +++ b/lib/uktime/time.c
> @@ -31,8 +31,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <errno.h>
> diff --git a/plat/common/include/uk/plat/common/_time.h b/plat/common/include/uk/plat/common/_time.h
> index 06240ff0f..31a2c9a90 100644
> --- a/plat/common/include/uk/plat/common/_time.h
> +++ b/plat/common/include/uk/plat/common/_time.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __PLAT_CMN_TIME_H__
> diff --git a/plat/common/include/uk/plat/common/cpu.h b/plat/common/include/uk/plat/common/cpu.h
> index ac2f8fe3a..5506c25b6 100644
> --- a/plat/common/include/uk/plat/common/cpu.h
> +++ b/plat/common/include/uk/plat/common/cpu.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __PLAT_CMN_CPU_H__
> diff --git a/plat/common/include/uk/plat/common/memory.h b/plat/common/include/uk/plat/common/memory.h
> index f627348a9..1d05ada1d 100644
> --- a/plat/common/include/uk/plat/common/memory.h
> +++ b/plat/common/include/uk/plat/common/memory.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __PLAT_CMN_MEMORY_H__
> diff --git a/plat/common/include/uk/plat/common/trace.h b/plat/common/include/uk/plat/common/trace.h
> index bc3b6de87..2727bf5ae 100644
> --- a/plat/common/include/uk/plat/common/trace.h
> +++ b/plat/common/include/uk/plat/common/trace.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef __PLAT_CMN_TRACE_H__
>  #define __PLAT_CMN_TRACE_H__
> diff --git a/plat/common/include/x86/cpu_defs.h b/plat/common/include/x86/cpu_defs.h
> index 1cf5367db..161b72f38 100644
> --- a/plat/common/include/x86/cpu_defs.h
> +++ b/plat/common/include/x86/cpu_defs.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef __PLAT_CMN_X86_CPU_DEFS_H__
>  #define __PLAT_CMN_X86_CPU_DEFS_H__
> diff --git a/plat/common/include/x86/desc.h b/plat/common/include/x86/desc.h
> index 10cabd52f..9ef26f87a 100644
> --- a/plat/common/include/x86/desc.h
> +++ b/plat/common/include/x86/desc.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  /*
>   * Adapted from Mini-OS: include/x86/desc.h
> diff --git a/plat/common/include/x86/traps.h b/plat/common/include/x86/traps.h
> index da90f2ea0..9fd9a4920 100644
> --- a/plat/common/include/x86/traps.h
> +++ b/plat/common/include/x86/traps.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  /* Ported from Mini-OS */
>  
> diff --git a/plat/common/lcpu.c b/plat/common/lcpu.c
> index fe08a393c..4c31231e6 100644
> --- a/plat/common/lcpu.c
> +++ b/plat/common/lcpu.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <uk/plat/lcpu.h>
> diff --git a/plat/common/memory.c b/plat/common/memory.c
> index c46a4b0ef..ddcb7084d 100644
> --- a/plat/common/memory.c
> +++ b/plat/common/memory.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <uk/plat/memory.h>
> diff --git a/plat/common/x86/cpu_native.c b/plat/common/x86/cpu_native.c
> index e29c2dbcc..b7298a5a5 100644
> --- a/plat/common/x86/cpu_native.c
> +++ b/plat/common/x86/cpu_native.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <x86/cpu.h>
> diff --git a/plat/common/x86/trace.c b/plat/common/x86/trace.c
> index d1abd4611..4f2e8b095 100644
> --- a/plat/common/x86/trace.c
> +++ b/plat/common/x86/trace.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <uk/plat/common/trace.h>
> diff --git a/plat/common/x86/traps.c b/plat/common/x86/traps.c
> index 961438674..f638db5eb 100644
> --- a/plat/common/x86/traps.c
> +++ b/plat/common/x86/traps.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  /* Ported from Mini-OS */
>  
> diff --git a/plat/kvm/include/kvm/intctrl.h b/plat/kvm/include/kvm/intctrl.h
> index a6ce3075a..c87fe5d90 100644
> --- a/plat/kvm/include/kvm/intctrl.h
> +++ b/plat/kvm/include/kvm/intctrl.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  void intctrl_init(void);
> diff --git a/plat/kvm/include/kvm/irq.h b/plat/kvm/include/kvm/irq.h
> index 750ccd254..19232d285 100644
> --- a/plat/kvm/include/kvm/irq.h
> +++ b/plat/kvm/include/kvm/irq.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __KVM_IRQ_H_
> diff --git a/plat/kvm/include/kvm/tscclock.h b/plat/kvm/include/kvm/tscclock.h
> index 27d0e0241..2105ed785 100644
> --- a/plat/kvm/include/kvm/tscclock.h
> +++ b/plat/kvm/include/kvm/tscclock.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __KVM_TSCCLOCK_H__
> diff --git a/plat/kvm/x86/memory.c b/plat/kvm/x86/memory.c
> index ed58c1a43..1ca2a715f 100644
> --- a/plat/kvm/x86/memory.c
> +++ b/plat/kvm/x86/memory.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <uk/plat/memory.h>
> diff --git a/plat/linuxu/include/linuxu/signal.h b/plat/linuxu/include/linuxu/signal.h
> index 62395df3f..5d1582da5 100644
> --- a/plat/linuxu/include/linuxu/signal.h
> +++ b/plat/linuxu/include/linuxu/signal.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  /* This file contains definitions for interfacing with the Linux kernel. To
> diff --git a/plat/linuxu/include/linuxu/time.h b/plat/linuxu/include/linuxu/time.h
> index 648ad0bbe..d2c5da370 100644
> --- a/plat/linuxu/include/linuxu/time.h
> +++ b/plat/linuxu/include/linuxu/time.h
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #ifndef __LINUXU_TIME_H__
>  #define __LINUXU_TIME_H__
> diff --git a/plat/linuxu/irq.c b/plat/linuxu/irq.c
> index 961dcf9b6..f1dbd58cb 100644
> --- a/plat/linuxu/irq.c
> +++ b/plat/linuxu/irq.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #include <string.h>
>  #include <uk/alloc.h>
> diff --git a/plat/xen/include/xenbus/client.h b/plat/xen/include/xenbus/client.h
> index a9417a929..aa362fef7 100644
> --- a/plat/xen/include/xenbus/client.h
> +++ b/plat/xen/include/xenbus/client.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  /*
>   * Client interface between the device and the Xenbus driver.
> diff --git a/plat/xen/include/xenbus/xenbus.h b/plat/xen/include/xenbus/xenbus.h
> index 9fc942bcb..138db6c50 100644
> --- a/plat/xen/include/xenbus/xenbus.h
> +++ b/plat/xen/include/xenbus/xenbus.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __XENBUS_H__
> diff --git a/plat/xen/include/xenbus/xs.h b/plat/xen/include/xenbus/xs.h
> index e887bc492..f41f53dcb 100644
> --- a/plat/xen/include/xenbus/xs.h
> +++ b/plat/xen/include/xenbus/xs.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  /* Xenstore API */
>  /*
> diff --git a/plat/xen/x86/cpu_pv.c b/plat/xen/x86/cpu_pv.c
> index 471cc37e4..fa50fb1c4 100644
> --- a/plat/xen/x86/cpu_pv.c
> +++ b/plat/xen/x86/cpu_pv.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <x86/cpu.h>
> diff --git a/plat/xen/xenbus/client.c b/plat/xen/xenbus/client.c
> index 504b117e0..20e671ec1 100644
> --- a/plat/xen/xenbus/client.c
> +++ b/plat/xen/xenbus/client.c
> @@ -32,8 +32,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  /*
>   * Client interface between the device and the Xenbus driver.
> diff --git a/plat/xen/xenbus/xenbus.c b/plat/xen/xenbus/xenbus.c
> index a2cd65c6e..2fa23577f 100644
> --- a/plat/xen/xenbus/xenbus.c
> +++ b/plat/xen/xenbus/xenbus.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #define _GNU_SOURCE
> diff --git a/plat/xen/xenbus/xs.c b/plat/xen/xenbus/xs.c
> index d4819ea80..4fc10cb54 100644
> --- a/plat/xen/xenbus/xs.c
> +++ b/plat/xen/xenbus/xs.c
> @@ -32,8 +32,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  /*
>   * Ported from Mini-OS xenbus.c
> diff --git a/plat/xen/xenbus/xs_comms.c b/plat/xen/xenbus/xs_comms.c
> index 5c393c1e7..b81d16bd2 100644
> --- a/plat/xen/xenbus/xs_comms.c
> +++ b/plat/xen/xenbus/xs_comms.c
> @@ -32,8 +32,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  /*
>   * Communication with Xenstore
> diff --git a/plat/xen/xenbus/xs_comms.h b/plat/xen/xenbus/xs_comms.h
> index cae609364..4ece31e05 100644
> --- a/plat/xen/xenbus/xs_comms.h
> +++ b/plat/xen/xenbus/xs_comms.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #ifndef __XS_COMMS_H__
> diff --git a/plat/xen/xenbus/xs_watch.c b/plat/xen/xenbus/xs_watch.c
> index d77a285e8..b958b5862 100644
> --- a/plat/xen/xenbus/xs_watch.c
> +++ b/plat/xen/xenbus/xs_watch.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  /* Internal API for Xenstore watches */
>  
> diff --git a/plat/xen/xenbus/xs_watch.h b/plat/xen/xenbus/xs_watch.h
> index f9a5bff49..662187b02 100644
> --- a/plat/xen/xenbus/xs_watch.h
> +++ b/plat/xen/xenbus/xs_watch.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  /* Internal API for Xenstore watches */


From minios-devel-bounces@lists.xenproject.org Wed Mar 10 06:38:06 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 10 Mar 2021 06:38:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.95862.180964 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lJsTt-0003bn-Oz; Wed, 10 Mar 2021 06:38:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 95862.180964; Wed, 10 Mar 2021 06:38:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lJsTt-0003bg-Lz; Wed, 10 Mar 2021 06:38:05 +0000
Received: by outflank-mailman (input) for mailman id 95862;
 Wed, 10 Mar 2021 06:38:03 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/gcx=II=gmail.com=razvand@srs-us1.protection.inumbo.net>)
 id 1lJsTr-0003ba-Oc
 for minios-devel@lists.xen.org; Wed, 10 Mar 2021 06:38:03 +0000
Received: from mail-wr1-x434.google.com (unknown [2a00:1450:4864:20::434])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 697a65fa-e5be-4222-af3e-8034cda8ccad;
 Wed, 10 Mar 2021 06:38:02 +0000 (UTC)
Received: by mail-wr1-x434.google.com with SMTP id b18so21563604wrn.6
 for <minios-devel@lists.xen.org>; Tue, 09 Mar 2021 22:38:02 -0800 (PST)
Received: from localhost ([141.85.225.205])
 by smtp.gmail.com with ESMTPSA id c26sm29763383wrb.87.2021.03.09.22.38.00
 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256);
 Tue, 09 Mar 2021 22:38:00 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 697a65fa-e5be-4222-af3e-8034cda8ccad
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
         :user-agent:mime-version:content-transfer-encoding;
        bh=gW2aEskexSgKEo/3K1WOXnUAjs1YMYSmgZeNR/ymAcQ=;
        b=d6A8GeK8CWaDL9vbobag9wucZ93IGg995WGv1OdajU6g8tdp5/3TvfVqRKHFbUPWuM
         jmGvCjL2UYoMjxBFSPB94n1cxE47m9R5t6hx25y9BudniJ1gGcBico+avDuewkClOFlm
         UGtr9pWSbBLwFfBPoGBjp/GxvIR8k9dJygBRa52m99a9PH5lTmvQ8RMTFTyWtg8xSHmV
         T0Et8Cs2Crz9z4yEYE96mqYGBedW/v+lIUh4h2SukrpUXlYaNSQ5L/tGG2vP7ttCf4KN
         //UL8+5RjI1zEDSraZIMjHD7OsS1ubKQmIBi1AhCuwPAMmU7VxfUAIe5k0Eq/qjLQa+f
         xn8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:sender:from:to:cc:subject:references:date
         :in-reply-to:message-id:user-agent:mime-version
         :content-transfer-encoding;
        bh=gW2aEskexSgKEo/3K1WOXnUAjs1YMYSmgZeNR/ymAcQ=;
        b=Cm5QwZ+eVOWNjQTYvzbR+Bmvbmexgq1SFK4Bq3RfBffyqnLG/UW5NCTOrpbg4vFbk/
         /QRLo+XPdPAKBLE+6BQtKt+z9CG7SvR2qTB7fNMjTIQTDdRTfnv0Yw/GYhzH727S85yk
         Kt5wSYsr15VHNw0JfJGolYjwQO0PaUtW8tA61q1FqURoiSSTXryhK+1nNxjLM+RuW46m
         2eNM73V1UaN+nBX45KUbQdABlVLM7vx52WOtB7pwVX26kK0ktUrcnr5cq/jLKSAfi5+J
         bqKysl0DLO0ryekZp6aiyCMC+1o2JUJ40s0idtMPyU5Ao4YIxciCwJQj80GTAwtsQktp
         LvEw==
X-Gm-Message-State: AOAM530PZQKd/qVt8BEC3XDEQA5mCAxuwT/J1jOTgjnMV6eNNEAlkzKJ
	gTeldfknp5gjYb3QbiqUxmP+GGCH+tM=
X-Google-Smtp-Source: ABdhPJy3TpNJDKupglR1kbyy6CQZvW3GXFZifqDPjTcA3PdsUEoYzdmlEpRcywSgm0Mui6el1wrM9w==
X-Received: by 2002:adf:c3c8:: with SMTP id d8mr1721465wrg.167.1615358281490;
        Tue, 09 Mar 2021 22:38:01 -0800 (PST)
Sender: Razvan Deaconescu <razvand@gmail.com>
From: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Cc: <minios-devel@lists.xen.org>,  Costin Lupu <costin.lupu@cs.pub.ro>,  Sharan Santhanam <sharan.santhanam@neclab.eu>,  Felipe Huici <felipe.huici@neclab.eu>,  <nicolescu.roxana1996@gmail.com>,  <lascu.bogdan96@gmail.com>,  <vlad_andrei.badoiu@upb.ro>,  <cristb@gmail.com>
Subject: Re: [UNIKRAFT PATCH 5/8] Correct license headers introduced by UPB
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
	<20210215111902.3382-6-simon.kuenzer@neclab.eu>
Date: Wed, 10 Mar 2021 08:37:59 +0200
In-Reply-To: <20210215111902.3382-6-simon.kuenzer@neclab.eu> (Simon Kuenzer's
	message of "Mon, 15 Feb 2021 12:18:59 +0100")
Message-ID: <86zgzby0mw.fsf@drone.cs.pub.ro>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

This is OK from UPB's side.

Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>

Razvan

Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
> This commit removes the additional clause
> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
> from BSD license headers that got introduced by mistake
> by Vlad-Andrei B=C4=82DOIU with the following commits:
>  d2967b3b1 - lib/ukswrand: Adapt the library to work with multiple algori=
thms
>  9bb9a617d - lib/ukswrand: Add ChaCha algorithm
>  8c5e2b4bb - lib/ukswrand: Add /dev/random and /dev/urandom
>  2784ae201 - lib/nolibc: Add pwd.h
>  19ebca61d - include/uk: Add page.h
>  8c9cd0ec9 - lib/uksysinfo: Introduce uksysinfo library
>  3a39d50dd - plat/*: Introduce unikraft internal constructors
>  200037918 - lib/nolibc: Add utsname.h
>
> On the one hand, this additional clause is redundant because
> the BSD license already states that it must remain and the
> copyright notice must be kept.
> On the other hand, the clause freezes the file header
> and prohibits future contributors from extending the
> copyright notice for their contributions. This additional
> clause is not part of the official BSD 3-clause.
>
> The original author consents to the change with a `Signed-off-by`
> or `Reviewed-by` tag to this commit.
>
> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
> ---
>  include/uk/ctors.h                      | 2 --
>  include/uk/page.h                       | 2 --
>  lib/nolibc/include/pwd.h                | 2 --
>  lib/posix-sysinfo/include/sys/utsname.h | 2 --
>  lib/posix-sysinfo/sysinfo.c             | 2 --
>  lib/ukswrand/chacha.c                   | 2 --
>  lib/ukswrand/dev.c                      | 2 --
>  lib/ukswrand/swrand.c                   | 2 --
>  8 files changed, 16 deletions(-)
>
> diff --git a/include/uk/ctors.h b/include/uk/ctors.h
> index 9c87b53f7..247c3cbdc 100644
> --- a/include/uk/ctors.h
> +++ b/include/uk/ctors.h
> @@ -30,8 +30,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>=20=20
>  #ifndef __UK_CTORS_H__
> diff --git a/include/uk/page.h b/include/uk/page.h
> index a9262635a..16f3fc4e7 100644
> --- a/include/uk/page.h
> +++ b/include/uk/page.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>=20=20
>  #ifndef __UK_PAGE_H__
> diff --git a/lib/nolibc/include/pwd.h b/lib/nolibc/include/pwd.h
> index 4d81a4324..8a80ee53d 100644
> --- a/lib/nolibc/include/pwd.h
> +++ b/lib/nolibc/include/pwd.h
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>=20=20
>  #ifndef __PWD_H__
> diff --git a/lib/posix-sysinfo/include/sys/utsname.h b/lib/posix-sysinfo/=
include/sys/utsname.h
> index 25baf2fff..d3973c3de 100644
> --- a/lib/posix-sysinfo/include/sys/utsname.h
> +++ b/lib/posix-sysinfo/include/sys/utsname.h
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>=20=20
>  #ifndef __SYS_UTSNAME_H__
> diff --git a/lib/posix-sysinfo/sysinfo.c b/lib/posix-sysinfo/sysinfo.c
> index 922f3b141..f57914b68 100644
> --- a/lib/posix-sysinfo/sysinfo.c
> +++ b/lib/posix-sysinfo/sysinfo.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>=20=20
>  #include <stddef.h>
> diff --git a/lib/ukswrand/chacha.c b/lib/ukswrand/chacha.c
> index 0ce1b992a..ae1185924 100644
> --- a/lib/ukswrand/chacha.c
> +++ b/lib/ukswrand/chacha.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>=20=20
>  #include <string.h>
> diff --git a/lib/ukswrand/dev.c b/lib/ukswrand/dev.c
> index 40a14268c..fbd447d1b 100644
> --- a/lib/ukswrand/dev.c
> +++ b/lib/ukswrand/dev.c
> @@ -28,8 +28,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>=20=20
>  #include <stdlib.h>
> diff --git a/lib/ukswrand/swrand.c b/lib/ukswrand/swrand.c
> index ded57bb58..37af27f75 100644
> --- a/lib/ukswrand/swrand.c
> +++ b/lib/ukswrand/swrand.c
> @@ -26,8 +26,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS=
E)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O=
F THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  #include <string.h>
>  #include <uk/swrand.h>


From minios-devel-bounces@lists.xenproject.org Wed Mar 10 10:26:49 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 10 Mar 2021 10:26:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.95957.181223 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lJw3C-0001LE-WA; Wed, 10 Mar 2021 10:26:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 95957.181223; Wed, 10 Mar 2021 10:26:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lJw3C-0001L7-TJ; Wed, 10 Mar 2021 10:26:46 +0000
Received: by outflank-mailman (input) for mailman id 95957;
 Wed, 10 Mar 2021 10:26:46 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b5Z5=II=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1lJw3C-0001L2-7y
 for minios-devel@lists.xen.org; Wed, 10 Mar 2021 10:26:46 +0000
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 42654d20-2b01-4019-b728-fcb19d0d2465;
 Wed, 10 Mar 2021 10:26:44 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id C34A6F326C;
 Wed, 10 Mar 2021 11:26:42 +0100 (CET)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id FcF6EF1NBfxv; Wed, 10 Mar 2021 11:26:42 +0100 (CET)
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 92533F326B;
 Wed, 10 Mar 2021 11:26:36 +0100 (CET)
Received: from [10.7.2.70] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 10 Mar
 2021 11:26:36 +0100
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 42654d20-2b01-4019-b728-fcb19d0d2465
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Subject: Re: [UNIKRAFT PATCH v2 1/2] lib/ukallocpool: Always provide
 `uk_alloc_availmem()`, `uk_alloc_maxalloc()`
To: Cezar Craciunoiu <cezar.craciunoiu@gmail.com>
CC: <minios-devel@lists.xen.org>, Razvan Deaconescu
	<razvan.deaconescu@cs.pub.ro>
References: <20201222125632.29415-1-simon.kuenzer@neclab.eu>
 <20201222125632.29415-2-simon.kuenzer@neclab.eu>
 <Mailbird-dd58cf78-fa01-4a86-af74-4d0ef48fbf2b@gmail.com>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <850ba0ce-c5d3-15b8-7c4e-b406d6e987da@neclab.eu>
Date: Wed, 10 Mar 2021 11:26:35 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0)
 Gecko/20100101 Thunderbird/78.7.0
MIME-Version: 1.0
In-Reply-To: <Mailbird-dd58cf78-fa01-4a86-af74-4d0ef48fbf2b@gmail.com>
Content-Type: text/plain; charset="utf-8"; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)

Hi Cezar,

thanks a lot for your review.

On 03.03.21 21:10, Cezar Craciunoiu wrote:
> Hey Simon,
> 
> This patch looks good to me.
> 
> Just one small thing. Why do these two functions return a signed value if obj_len is unsigned?

This is coming from the API and for the case to return error values as 
negative numbers, e.g., -ENOTSUP.

Thanks,

Simon

> 
> Cezar
> 
> Reviewed-by: Cezar Craciunoiu <cezar.craciunoiu@gmail.com [mailto:cezar.craciunoiu@gmail.com]>
> On 2020-12-22 14:57:11, Simon Kuenzer <simon.kuenzer@neclab.eu> wrote:
> Adopts to the changed meaning of `CONFIG_LIBUKALLLC_IFSTATS` and provide
> `uk_alloc_availmem()` and `uk_alloc_maxalloc()` always.
> 
> Signed-off-by: Simon Kuenzer
> ---
> lib/ukallocpool/pool.c | 13 ++++++++++---
> 1 file changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/ukallocpool/pool.c b/lib/ukallocpool/pool.c
> index 390f6b92..0ff24c38 100644
> --- a/lib/ukallocpool/pool.c
> +++ b/lib/ukallocpool/pool.c
> @@ -208,14 +208,19 @@ void uk_allocpool_return_batch(struct uk_allocpool *p,
> _prepend_free_obj(p, obj[i]);
> }
> 
> -#if CONFIG_LIBUKALLOC_IFSTATS
> static ssize_t pool_availmem(struct uk_alloc *a)
> {
> struct uk_allocpool *p = ukalloc2pool(a);
> 
> - return (size_t) p->free_obj_count * p->obj_len;
> + return (ssize_t) (p->free_obj_count * p->obj_len);
> +}
> +
> +static ssize_t pool_maxalloc(struct uk_alloc *a)
> +{
> + struct uk_allocpool *p = ukalloc2pool(a);
> +
> + return (ssize_t) p->obj_len;
> }
> -#endif
> 
> size_t uk_allocpool_reqmem(unsigned int obj_count, size_t obj_len,
> size_t obj_align)
> @@ -300,6 +305,8 @@ out:
> pool_free,
> pool_posix_memalign,
> uk_memalign_compat,
> + pool_maxalloc,
> + pool_availmem,
> NULL);
> #if CONFIG_LIBUKALLOC_IFSTATS
> p->self.availmem = pool_availmem;
> --
> 2.20.1
> 
> 


From minios-devel-bounces@lists.xenproject.org Wed Mar 10 12:59:36 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 10 Mar 2021 12:59:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.96045.181498 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lJyR2-0000SA-Q5; Wed, 10 Mar 2021 12:59:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 96045.181498; Wed, 10 Mar 2021 12:59:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lJyR2-0000S3-N1; Wed, 10 Mar 2021 12:59:32 +0000
Received: by outflank-mailman (input) for mailman id 96045;
 Wed, 10 Mar 2021 12:59:31 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eJoR=II=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1lJyR1-0000Rt-Bt
 for minios-devel@lists.xenproject.org; Wed, 10 Mar 2021 12:59:31 +0000
Received: from mail-vs1-xe35.google.com (unknown [2607:f8b0:4864:20::e35])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c7f88617-7e02-4b12-83a1-5f2115b91fbc;
 Wed, 10 Mar 2021 12:59:29 +0000 (UTC)
Received: by mail-vs1-xe35.google.com with SMTP id a15so8664663vsi.7
 for <minios-devel@lists.xenproject.org>; Wed, 10 Mar 2021 04:59:29 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c7f88617-7e02-4b12-83a1-5f2115b91fbc
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=sL3J3DidWMwCbSbJ/V2hosCu09ErkDpUw9zrQsDSlMQ=;
        b=ZHu5IXXTmVRPQYyhn4ndtmFvGuGCcBgyl0cMf1THQwf1e0ipsU5JfEd+NKok0q8bzG
         4CFxigNroqdCgCRgcE4QoOGzk3fULOTCPOFkP7NYHcqSxeGnqONQp8SeK4iGByRAlUV4
         f0OrEzjB4AJAjYWHADOB2ZvnAceRQiijclIFglojdc8bAt2KWjpDJT5YJjL8NTZwIGgs
         lqwtHz188zcmWbIeOPurSpWWJ3oqF1oZ3Dem9xpNJQPKi9JpDS9cExWS+XlWYMzcd2c/
         jezSDpXdl4LGt/oOwwkQxnve7D/QMUFUQub550MluyCVTf+R01MxxvvKHjypik5s2DYi
         en7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=sL3J3DidWMwCbSbJ/V2hosCu09ErkDpUw9zrQsDSlMQ=;
        b=LpCWxKPjSB2btvwJoqrEwZjaGnskSUj8ZYab4nUyCODaKaLY2xD9oz45EW4TKI0Ck2
         GmF2GOxFPEiw3VxUpio/x0+ZFBjVAZsYpQCuPY9djOx3jhto5YYrCwEywmm+uK5nj0UP
         QGmlt0DzX4URkM8ppJ3jq9PeefYXSG4reV56eIky6qO35Yir91WfoafKNA7SFg1zvcox
         dkgfEfqTtZnpZFQFUDrhiJBfJCRU+brKq5WtFDR3N2gtvGtxUnQhoiYhw2NmqX9GOvZe
         7aE7mJJhh8BW5UKK+wW9k4qx6L7aXFHlO+E4zD6gUIgrYM0fdpGDAer0CgHQTh+mLVf7
         mClQ==
X-Gm-Message-State: AOAM530IdDkEoWDedPqjYcKLqaPlO1RQgMPpghZHBMnOhDaVc526nj7L
	9zljKm+xhpfehtZQuT3XjqGdrHBKuLp2Tg2n78g=
X-Google-Smtp-Source: ABdhPJzo88T/qkQS4T+u3CNwtqVlHXB7JzWYiTBBj70imPHc2RjjI3QAjujwGnt7ccYF5e2PLdlDCWijKphoe5b6/Ms=
X-Received: by 2002:a67:fc4b:: with SMTP id p11mr1577606vsq.3.1615381168554;
 Wed, 10 Mar 2021 04:59:28 -0800 (PST)
MIME-Version: 1.0
References: <cover.1592488459.git.hugo.lefeuvre@neclab.eu> <47f5bc15fe26623f2f1019477716ea5f3c3fa986.1592488459.git.hugo.lefeuvre@neclab.eu>
In-Reply-To: <47f5bc15fe26623f2f1019477716ea5f3c3fa986.1592488459.git.hugo.lefeuvre@neclab.eu>
From: felipehuici <felipehuici@gmail.com>
Date: Wed, 10 Mar 2021 13:59:17 +0100
Message-ID: <CAEX4t-OrORVMk_eM8fvP-5Ja5+RGpZi4wMPksaBf6j7fjGoa+A@mail.gmail.com>
Subject: Re: [UNIKRAFT/LWIP PATCH v2] lwip: support for memory pools
To: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
Cc: minios-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000ba85f105bd2e3c9c"

--000000000000ba85f105bd2e3c9c
Content-Type: text/plain; charset="UTF-8"

Hi Hugo,

This patch looks good, thanks.

Reviewed-by: Felipe Huici <felipe.huici@neclab.eu>

On Thu, Jun 18, 2020 at 3:59 PM Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
wrote:

> Add support for memory pools.
>
> There are now two allocation modes:
>
> (1) heap only, malloc/free are used everywhere (even for memp allocations)
> (2) memory pools with custom pools.
>
> The pools are sized to provide good performance for Redis: 1000x256,
> 1000x512, 1000x1256. Overall this is equivalent to ~2MB, which might be
> too much in some cases. In any case, these should be manually tweaked
> for performance critical applications.
>
> Increase the defaults for the maximum number of TCP sockets and listeners
> (was previously 5, now 64), and expose them via the menuconfig.
>
> Signed-off-by: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
> ---
>  Config.uk           | 12 ++++++++++--
>  include/lwipopts.h  | 49 +++++++++++++++++++++++++++----------------------
>  include/lwippools.h |  7 +++++++
>  3 files changed, 44 insertions(+), 24 deletions(-)
>  create mode 100644 include/lwippools.h
>
> diff --git a/Config.uk b/Config.uk
> index aaaaae0..3bbb018 100644
> --- a/Config.uk
> +++ b/Config.uk
> @@ -63,8 +63,8 @@ config LWIP_HEAP
>         help
>                 Use default ukalloc allocator for all memory allocation
> requests
>
> -#config LWIP_POOLS
> -#      bool "Memory pools"
> +config LWIP_POOLS
> +       bool "Memory pools"
>  endchoice
>
>  config LWIP_NETIF_EXT_STATUS_CALLBACK
> @@ -118,6 +118,14 @@ config LWIP_TCP_KEEPALIVE
>  config LWIP_TCP_TIMESTAMPS
>         bool "Timestamps"
>         default n
> +
> +config LWIP_NUM_TCPCON
> +       int "Maximum number of simultaneous TCP connections"
> +       default 64
> +
> +config LWIP_NUM_TCPLISTENERS
> +       int "Maximum number of simultaneous TCP listeners"
> +       default 64
>  endif
>
>  config LWIP_ICMP
> diff --git a/include/lwipopts.h b/include/lwipopts.h
> index 148028d..d0ed208 100644
> --- a/include/lwipopts.h
> +++ b/include/lwipopts.h
> @@ -16,27 +16,29 @@
>  /**
>   * Memory mode
>   */
> -/* provide malloc/free by Unikraft */
>  #if CONFIG_LWIP_HEAP
>    /* Only use malloc/free for lwIP.
>     * Every allocation is done by the heap.
>     * Note: This setting results in the smallest binary
>     *       size but leads to heavy malloc/free usage during
> -   *       network processing.
> +   *       network processing and subsequent performance decrease.
>     */
>    #define MEM_LIBC_MALLOC 1 /* enable heap */
>    #define MEMP_MEM_MALLOC 1 /* pool allocations via malloc */
>  #elif CONFIG_LWIP_POOLS
> -  /* Pools are used for pool allocations and the heap
> -   * is used for all the rest of allocations.
> -   * Note: Per design, lwIP allocates outgoing packet buffers
> -   *       from heap (via PBUF_RAM) and incoming from pools (via
> PBUF_POOL)
> -   *       CONFIG_LWIP_PBUF_POOL_SIZE defines the pool size for PBUF_POOL
> -   *       allocations
> +  /* Pools are used for all allocations.
>     * Note: lwIP allocate pools on the data segment
>     */
> -  #define MEM_LIBC_MALLOC 1 /* enable heap */
> -  #define MEMP_MEM_MALLOC 0 /* pool allocations still via pool */
> +  #define MEM_LIBC_MALLOC 0 /* disable heap */
> +  #define MEMP_MEM_MALLOC 0 /* pool allocations via pool (default) */
> +
> +  /* When mem_malloc is called, an element of the smallest pool that can
> provide
> +   * the length needed is returned.
> +   */
> +  #define MEM_USE_POOLS   1
> +  #define MEMP_USE_CUSTOM_POOLS 1
> +  #define MEM_USE_POOLS_TRY_BIGGER_POOL 1 /* take a bigger pool if
> necessary */
> +  #define MEMP_SEPARATE_POOLS 1
>  #else
>   #error Configuration error!
>  #endif /* CONFIG_LWIP_HEAP_ONLY / CONFIG_LWIP_POOLS_ONLY */
> @@ -55,15 +57,6 @@ void sys_free(void *ptr);
>  #define mem_clib_free     sys_free
>  #endif /* MEM_LIBC_MALLOC */
>
> -#if MEM_USE_POOLS
> -/*
> - * Use lwIP's pools
> - */
> -#define MEMP_USE_CUSTOM_POOLS 0
> -/* for each pool use a separate array in data segment */
> -#define MEMP_SEPARATE_POOLS 1
> -#endif /* MEM_USE_POOLS */
> -
>  /**
>   * Operation mode (threaded, mainloop)
>   */
> @@ -171,14 +164,15 @@ void sys_free(void *ptr);
>  #define TCP_SND_BUF (TCP_WND + (2 * TCP_MSS))
>  #endif /* CONFIG_LWIP_WND_SCALE */
>
> +#define MEMP_NUM_TCP_PCB CONFIG_LWIP_NUM_TCPCON /* max num of sim. TCP
> connections */
> +#define MEMP_NUM_TCP_PCB_LISTEN CONFIG_LWIP_NUM_TCPLISTENERS /* max num
> of sim. TCP listeners */
> +
>  #define TCP_SNDLOWAT (4 * TCP_MSS)
>  #define TCP_SND_QUEUELEN (2 * (TCP_SND_BUF) / (TCP_MSS))
>  #define TCP_QUEUE_OOSEQ 4
> -#define MEMP_NUM_TCP_SEG (MEMP_NUM_TCP_PCB * ((TCP_SND_QUEUELEN) / 5))
> +#define MEMP_NUM_TCP_SEG ((MEMP_NUM_TCP_PCB) * ((TCP_SND_QUEUELEN) / 5))
>  #define MEMP_NUM_FRAG_PBUF 32
>
> -#define MEMP_NUM_TCP_PCB CONFIG_LWIP_NUM_TCPCON /* max num of sim. TCP
> connections */
> -#define MEMP_NUM_TCP_PCB_LISTEN 32 /* max num of sim. TCP listeners */
>  #endif /* LWIP_TCP */
>
>  /**
> @@ -249,6 +243,10 @@ void sys_free(void *ptr);
>  #ifndef PBUF_POOL_SIZE
>  #define PBUF_POOL_SIZE ((TCP_WND + TCP_MSS - 1) / TCP_MSS)
>  #endif
> +#ifndef PBUF_POOL_BUFSIZE
> +/* smallest PBUF_POOL_BUFSIZE which satisfies TCP_WND < PBUF_POOL_SIZE *
> (PBUF_POOL_BUFSIZE - protocol headers) */
> +#define PBUF_POOL_BUFSIZE ((TCP_WND / PBUF_POOL_SIZE) +
> (PBUF_LINK_ENCAPSULATION_HLEN + PBUF_LINK_HLEN + PBUF_IP_HLEN +
> PBUF_TRANSPORT_HLEN) + 1)
> +#endif
>  #ifndef MEMP_NUM_PBUF
>  #define MEMP_NUM_PBUF ((MEMP_NUM_TCP_PCB * (TCP_SND_QUEUELEN)) / 2)
>  #endif
> @@ -286,6 +284,13 @@ void sys_free(void *ptr);
>  #define LWIP_NETCONN 0
>  #else
>  #define LWIP_NETCONN 1
> +/* maximum number of struct netconn entries, which limits the maximum
> + * number of open sockets */
> +#if LWIP_TCP
> +#define MEMP_NUM_NETCONN CONFIG_LWIP_NUM_TCPCON
> +#else
> +#define MEMP_NUM_NETCONN 64
> +#endif /* LWIP_TCP */
>  #endif
>
>  /**
> diff --git a/include/lwippools.h b/include/lwippools.h
> new file mode 100644
> index 0000000..3ec8104
> --- /dev/null
> +++ b/include/lwippools.h
> @@ -0,0 +1,7 @@
> +#if CONFIG_LWIP_POOLS
> +LWIP_MALLOC_MEMPOOL_START
> +LWIP_MALLOC_MEMPOOL(1000, 256)
> +LWIP_MALLOC_MEMPOOL(1000, 512)
> +LWIP_MALLOC_MEMPOOL(1000, 1560)
> +LWIP_MALLOC_MEMPOOL_END
> +#endif
> --
> 2.7.4
>
>
>

--000000000000ba85f105bd2e3c9c
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi Hugo,<div><br></div><div>This patch looks good, thanks.=
</div><div><br></div><div><span style=3D"color:rgba(0,0,0,0.847);font-famil=
y:Helvetica;font-size:12px">Reviewed-by: Felipe Huici &lt;<a href=3D"mailto=
:felipe.huici@neclab.eu">felipe.huici@neclab.eu</a>&gt;</span><br></div></d=
iv><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On =
Thu, Jun 18, 2020 at 3:59 PM Hugo Lefeuvre &lt;<a href=3D"mailto:hugo.lefeu=
vre@neclab.eu">hugo.lefeuvre@neclab.eu</a>&gt; wrote:<br></div><blockquote =
class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px sol=
id rgb(204,204,204);padding-left:1ex">Add support for memory pools.<br>
<br>
There are now two allocation modes:<br>
<br>
(1) heap only, malloc/free are used everywhere (even for memp allocations)<=
br>
(2) memory pools with custom pools.<br>
<br>
The pools are sized to provide good performance for Redis: 1000x256,<br>
1000x512, 1000x1256. Overall this is equivalent to ~2MB, which might be<br>
too much in some cases. In any case, these should be manually tweaked<br>
for performance critical applications.<br>
<br>
Increase the defaults for the maximum number of TCP sockets and listeners<b=
r>
(was previously 5, now 64), and expose them via the menuconfig.<br>
<br>
Signed-off-by: Hugo Lefeuvre &lt;<a href=3D"mailto:hugo.lefeuvre@neclab.eu"=
 target=3D"_blank">hugo.lefeuvre@neclab.eu</a>&gt;<br>
---<br>
=C2=A0Config.uk=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 12 ++++++++++--<b=
r>
=C2=A0include/lwipopts.h=C2=A0 | 49 +++++++++++++++++++++++++++------------=
----------<br>
=C2=A0include/lwippools.h |=C2=A0 7 +++++++<br>
=C2=A03 files changed, 44 insertions(+), 24 deletions(-)<br>
=C2=A0create mode 100644 include/lwippools.h<br>
<br>
diff --git a/Config.uk b/Config.uk<br>
index aaaaae0..3bbb018 100644<br>
--- a/Config.uk<br>
+++ b/Config.uk<br>
@@ -63,8 +63,8 @@ config LWIP_HEAP<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 help<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Use default ukalloc=
 allocator for all memory allocation requests<br>
<br>
-#config LWIP_POOLS<br>
-#=C2=A0 =C2=A0 =C2=A0 bool &quot;Memory pools&quot;<br>
+config LWIP_POOLS<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0bool &quot;Memory pools&quot;<br>
=C2=A0endchoice<br>
<br>
=C2=A0config LWIP_NETIF_EXT_STATUS_CALLBACK<br>
@@ -118,6 +118,14 @@ config LWIP_TCP_KEEPALIVE<br>
=C2=A0config LWIP_TCP_TIMESTAMPS<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 bool &quot;Timestamps&quot;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 default n<br>
+<br>
+config LWIP_NUM_TCPCON<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0int &quot;Maximum number of simultaneous TCP co=
nnections&quot;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0default 64<br>
+<br>
+config LWIP_NUM_TCPLISTENERS<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0int &quot;Maximum number of simultaneous TCP li=
steners&quot;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0default 64<br>
=C2=A0endif<br>
<br>
=C2=A0config LWIP_ICMP<br>
diff --git a/include/lwipopts.h b/include/lwipopts.h<br>
index 148028d..d0ed208 100644<br>
--- a/include/lwipopts.h<br>
+++ b/include/lwipopts.h<br>
@@ -16,27 +16,29 @@<br>
=C2=A0/**<br>
=C2=A0 * Memory mode<br>
=C2=A0 */<br>
-/* provide malloc/free by Unikraft */<br>
=C2=A0#if CONFIG_LWIP_HEAP<br>
=C2=A0 =C2=A0/* Only use malloc/free for lwIP.<br>
=C2=A0 =C2=A0 * Every allocation is done by the heap.<br>
=C2=A0 =C2=A0 * Note: This setting results in the smallest binary<br>
=C2=A0 =C2=A0 *=C2=A0 =C2=A0 =C2=A0 =C2=A0size but leads to heavy malloc/fr=
ee usage during<br>
-=C2=A0 =C2=A0*=C2=A0 =C2=A0 =C2=A0 =C2=A0network processing.<br>
+=C2=A0 =C2=A0*=C2=A0 =C2=A0 =C2=A0 =C2=A0network processing and subsequent=
 performance decrease.<br>
=C2=A0 =C2=A0 */<br>
=C2=A0 =C2=A0#define MEM_LIBC_MALLOC 1 /* enable heap */<br>
=C2=A0 =C2=A0#define MEMP_MEM_MALLOC 1 /* pool allocations via malloc */<br=
>
=C2=A0#elif CONFIG_LWIP_POOLS<br>
-=C2=A0 /* Pools are used for pool allocations and the heap<br>
-=C2=A0 =C2=A0* is used for all the rest of allocations.<br>
-=C2=A0 =C2=A0* Note: Per design, lwIP allocates outgoing packet buffers<br=
>
-=C2=A0 =C2=A0*=C2=A0 =C2=A0 =C2=A0 =C2=A0from heap (via PBUF_RAM) and inco=
ming from pools (via PBUF_POOL)<br>
-=C2=A0 =C2=A0*=C2=A0 =C2=A0 =C2=A0 =C2=A0CONFIG_LWIP_PBUF_POOL_SIZE define=
s the pool size for PBUF_POOL<br>
-=C2=A0 =C2=A0*=C2=A0 =C2=A0 =C2=A0 =C2=A0allocations<br>
+=C2=A0 /* Pools are used for all allocations.<br>
=C2=A0 =C2=A0 * Note: lwIP allocate pools on the data segment<br>
=C2=A0 =C2=A0 */<br>
-=C2=A0 #define MEM_LIBC_MALLOC 1 /* enable heap */<br>
-=C2=A0 #define MEMP_MEM_MALLOC 0 /* pool allocations still via pool */<br>
+=C2=A0 #define MEM_LIBC_MALLOC 0 /* disable heap */<br>
+=C2=A0 #define MEMP_MEM_MALLOC 0 /* pool allocations via pool (default) */=
<br>
+<br>
+=C2=A0 /* When mem_malloc is called, an element of the smallest pool that =
can provide<br>
+=C2=A0 =C2=A0* the length needed is returned.<br>
+=C2=A0 =C2=A0*/<br>
+=C2=A0 #define MEM_USE_POOLS=C2=A0 =C2=A01<br>
+=C2=A0 #define MEMP_USE_CUSTOM_POOLS 1<br>
+=C2=A0 #define MEM_USE_POOLS_TRY_BIGGER_POOL 1 /* take a bigger pool if ne=
cessary */<br>
+=C2=A0 #define MEMP_SEPARATE_POOLS 1<br>
=C2=A0#else<br>
=C2=A0 #error Configuration error!<br>
=C2=A0#endif /* CONFIG_LWIP_HEAP_ONLY / CONFIG_LWIP_POOLS_ONLY */<br>
@@ -55,15 +57,6 @@ void sys_free(void *ptr);<br>
=C2=A0#define mem_clib_free=C2=A0 =C2=A0 =C2=A0sys_free<br>
=C2=A0#endif /* MEM_LIBC_MALLOC */<br>
<br>
-#if MEM_USE_POOLS<br>
-/*<br>
- * Use lwIP&#39;s pools<br>
- */<br>
-#define MEMP_USE_CUSTOM_POOLS 0<br>
-/* for each pool use a separate array in data segment */<br>
-#define MEMP_SEPARATE_POOLS 1<br>
-#endif /* MEM_USE_POOLS */<br>
-<br>
=C2=A0/**<br>
=C2=A0 * Operation mode (threaded, mainloop)<br>
=C2=A0 */<br>
@@ -171,14 +164,15 @@ void sys_free(void *ptr);<br>
=C2=A0#define TCP_SND_BUF (TCP_WND + (2 * TCP_MSS))<br>
=C2=A0#endif /* CONFIG_LWIP_WND_SCALE */<br>
<br>
+#define MEMP_NUM_TCP_PCB CONFIG_LWIP_NUM_TCPCON /* max num of sim. TCP con=
nections */<br>
+#define MEMP_NUM_TCP_PCB_LISTEN CONFIG_LWIP_NUM_TCPLISTENERS /* max num of=
 sim. TCP listeners */<br>
+<br>
=C2=A0#define TCP_SNDLOWAT (4 * TCP_MSS)<br>
=C2=A0#define TCP_SND_QUEUELEN (2 * (TCP_SND_BUF) / (TCP_MSS))<br>
=C2=A0#define TCP_QUEUE_OOSEQ 4<br>
-#define MEMP_NUM_TCP_SEG (MEMP_NUM_TCP_PCB * ((TCP_SND_QUEUELEN) / 5))<br>
+#define MEMP_NUM_TCP_SEG ((MEMP_NUM_TCP_PCB) * ((TCP_SND_QUEUELEN) / 5))<b=
r>
=C2=A0#define MEMP_NUM_FRAG_PBUF 32<br>
<br>
-#define MEMP_NUM_TCP_PCB CONFIG_LWIP_NUM_TCPCON /* max num of sim. TCP con=
nections */<br>
-#define MEMP_NUM_TCP_PCB_LISTEN 32 /* max num of sim. TCP listeners */<br>
=C2=A0#endif /* LWIP_TCP */<br>
<br>
=C2=A0/**<br>
@@ -249,6 +243,10 @@ void sys_free(void *ptr);<br>
=C2=A0#ifndef PBUF_POOL_SIZE<br>
=C2=A0#define PBUF_POOL_SIZE ((TCP_WND + TCP_MSS - 1) / TCP_MSS)<br>
=C2=A0#endif<br>
+#ifndef PBUF_POOL_BUFSIZE<br>
+/* smallest PBUF_POOL_BUFSIZE which satisfies TCP_WND &lt; PBUF_POOL_SIZE =
* (PBUF_POOL_BUFSIZE - protocol headers) */<br>
+#define PBUF_POOL_BUFSIZE ((TCP_WND / PBUF_POOL_SIZE) + (PBUF_LINK_ENCAPSU=
LATION_HLEN + PBUF_LINK_HLEN + PBUF_IP_HLEN + PBUF_TRANSPORT_HLEN) + 1)<br>
+#endif<br>
=C2=A0#ifndef MEMP_NUM_PBUF<br>
=C2=A0#define MEMP_NUM_PBUF ((MEMP_NUM_TCP_PCB * (TCP_SND_QUEUELEN)) / 2)<b=
r>
=C2=A0#endif<br>
@@ -286,6 +284,13 @@ void sys_free(void *ptr);<br>
=C2=A0#define LWIP_NETCONN 0<br>
=C2=A0#else<br>
=C2=A0#define LWIP_NETCONN 1<br>
+/* maximum number of struct netconn entries, which limits the maximum<br>
+ * number of open sockets */<br>
+#if LWIP_TCP<br>
+#define MEMP_NUM_NETCONN CONFIG_LWIP_NUM_TCPCON<br>
+#else<br>
+#define MEMP_NUM_NETCONN 64<br>
+#endif /* LWIP_TCP */<br>
=C2=A0#endif<br>
<br>
=C2=A0/**<br>
diff --git a/include/lwippools.h b/include/lwippools.h<br>
new file mode 100644<br>
index 0000000..3ec8104<br>
--- /dev/null<br>
+++ b/include/lwippools.h<br>
@@ -0,0 +1,7 @@<br>
+#if CONFIG_LWIP_POOLS<br>
+LWIP_MALLOC_MEMPOOL_START<br>
+LWIP_MALLOC_MEMPOOL(1000, 256)<br>
+LWIP_MALLOC_MEMPOOL(1000, 512)<br>
+LWIP_MALLOC_MEMPOOL(1000, 1560)<br>
+LWIP_MALLOC_MEMPOOL_END<br>
+#endif<br>
-- <br>
2.7.4<br>
<br>
<br>
</blockquote></div>

--000000000000ba85f105bd2e3c9c--


From minios-devel-bounces@lists.xenproject.org Wed Mar 10 20:08:21 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 10 Mar 2021 20:08:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.96295.182030 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lK57y-0002eU-9f; Wed, 10 Mar 2021 20:08:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 96295.182030; Wed, 10 Mar 2021 20:08:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lK57y-0002eN-6q; Wed, 10 Mar 2021 20:08:18 +0000
Received: by outflank-mailman (input) for mailman id 96295;
 Wed, 10 Mar 2021 20:08:16 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/gcx=II=gmail.com=razvand@srs-us1.protection.inumbo.net>)
 id 1lK57w-0002eG-13
 for minios-devel@lists.xen.org; Wed, 10 Mar 2021 20:08:16 +0000
Received: from mail-wr1-x430.google.com (unknown [2a00:1450:4864:20::430])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id b7224c58-2b99-402e-a530-60bcad0f5e37;
 Wed, 10 Mar 2021 20:08:13 +0000 (UTC)
Received: by mail-wr1-x430.google.com with SMTP id d15so24746248wrv.5
 for <minios-devel@lists.xen.org>; Wed, 10 Mar 2021 12:08:13 -0800 (PST)
Received: from localhost ([141.85.225.205])
 by smtp.gmail.com with ESMTPSA id z1sm362506wru.95.2021.03.10.12.08.11
 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256);
 Wed, 10 Mar 2021 12:08:12 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: b7224c58-2b99-402e-a530-60bcad0f5e37
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
         :user-agent:mime-version;
        bh=jlLncMrDPFA43MfPxGSzlYvWqA8a/pDDabvoRvB87jk=;
        b=gNW5H2sBZjyU/PjCkWmOzXE0ZScfYk0RpclissL63fi/fXhRF7nbardb/gnc52ZeMo
         nYnSUrF0PdXNRganSclqa0sNDhfHzvo5JrfNmrRJbi14pDm7f29lobobHYMJtCpujySC
         mqUfNRLq1x1c2NTe/XKcU7OmIQZyr1yrUmIqyYWIQOLZ1joSMIVfJHno7ubY3V2AUO36
         cDRUK8XAWGon3H3gjB3jnKaVfpDMDW3H/XwcnViJoFIYfaPPFnv37c5UaM9FmIE17/OK
         EFTFJz0eBJyHKgovPKJLR84i1tNoLiuoIJGPbcMRqaLPjjc1336IqFDvBRnDivvV0PBY
         hHnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:sender:from:to:cc:subject:references:date
         :in-reply-to:message-id:user-agent:mime-version;
        bh=jlLncMrDPFA43MfPxGSzlYvWqA8a/pDDabvoRvB87jk=;
        b=qhZdWUNnx1WnOg04nuIAaUjsQoC6iVUVqps9NcdtefVi44tlWko/AJ4oBGa3VL7rYn
         lwuS2k7FdT4cOJCePzGAkwuQPvnELvM8pAqG2nxEOfdFF4kgWCcQ/63r+Re6xrmiONXo
         tbFT0tT99ymvlrXBjayA6Jbhb1MyWgiZlr14OIrX12ISgRIXvCoX7EVifZ6yDW8AkreY
         xgI64XDc3rIHMPD8sgQBRGddFeLh37YcBjezbNMpctKib7tYgRb6PZvOhBtRld9GpFec
         eHRDaJVIauDlJUPQZT5snOFoCNh6iMMCXmd7PlWyBLAjpU2F9GvObr5ngHV2STW4zG0y
         HuNQ==
X-Gm-Message-State: AOAM531R1PzEjyeuD6RRUwqKn4QP9MeEl9vjG2TUFouaoFOdT6bjssu0
	8/1dcKulsYaf5rkV/X5Dce0=
X-Google-Smtp-Source: ABdhPJzgVBnn11jEERFtM5YIrmlXKjTHmlzqn8nDDO076ckGMEiqk9/SMLZeklIT+00VGqwoB9vXnw==
X-Received: by 2002:a5d:4c84:: with SMTP id z4mr5183653wrs.158.1615406892631;
        Wed, 10 Mar 2021 12:08:12 -0800 (PST)
Sender: Razvan Deaconescu <razvand@gmail.com>
From: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Cc: <minios-devel@lists.xen.org>,  Costin Lupu <costin.lupu@cs.pub.ro>,  Sharan Santhanam <sharan.santhanam@neclab.eu>,  Felipe Huici <felipe.huici@neclab.eu>,  <nicolescu.roxana1996@gmail.com>,  <lascu.bogdan96@gmail.com>,  <vlad_andrei.badoiu@upb.ro>,  <cristb@gmail.com>
Subject: Re: [UNIKRAFT PATCH 7/8] Correct license headers introduced by UPB
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
	<20210215111902.3382-8-simon.kuenzer@neclab.eu>
Date: Wed, 10 Mar 2021 22:08:11 +0200
In-Reply-To: <20210215111902.3382-8-simon.kuenzer@neclab.eu> (Simon Kuenzer's
	message of "Mon, 15 Feb 2021 12:19:01 +0100")
Message-ID: <86sg52wz4k.fsf@drone.cs.pub.ro>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain

This is OK from UPB's side.

Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>

Razvan

Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
> This commit removes the additional clause
> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
> from BSD license headers that got introduced by mistake
> by Bogdan Lascu with the following commit:
>  32ad87545 - lib/vfscore: Add anonymous pipe
>
> On the one hand, this additional clause is redundant because
> the BSD license already states that it must remain and the
> copyright notice must be kept.
> On the other hand, the clause freezes the file header
> and prohibits future contributors from extending the
> copyright notice for their contributions. This additional
> clause is not part of the official BSD 3-clause.
>
> The original author consents to the change with a `Signed-off-by`
> or `Reviewed-by` tag to this commit.
>
> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
> ---
>  lib/vfscore/pipe.c | 2 --
>  1 file changed, 2 deletions(-)
>
> diff --git a/lib/vfscore/pipe.c b/lib/vfscore/pipe.c
> index 8d382965e..09597dbcb 100644
> --- a/lib/vfscore/pipe.c
> +++ b/lib/vfscore/pipe.c
> @@ -29,8 +29,6 @@
>   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>   * POSSIBILITY OF SUCH DAMAGE.
> - *
> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>   */
>  
>  #include <uk/config.h>


From minios-devel-bounces@lists.xenproject.org Fri Mar 12 23:22:18 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 12 Mar 2021 23:22:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.97376.184979 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lKr6l-0006QR-R9; Fri, 12 Mar 2021 23:22:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 97376.184979; Fri, 12 Mar 2021 23:22:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lKr6l-0006QK-ON; Fri, 12 Mar 2021 23:22:15 +0000
Received: by outflank-mailman (input) for mailman id 97376;
 Fri, 12 Mar 2021 23:22:14 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Iv30=IK=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1lKr6k-0006QF-O3
 for minios-devel@lists.xen.org; Fri, 12 Mar 2021 23:22:14 +0000
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 13092e35-83d5-4ba0-a9dd-6d2995b78cd0;
 Fri, 12 Mar 2021 23:22:11 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 39FC6103996;
 Sat, 13 Mar 2021 00:22:10 +0100 (CET)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id xerRjRN3xeKP; Sat, 13 Mar 2021 00:22:10 +0100 (CET)
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id DB478100156;
 Sat, 13 Mar 2021 00:22:09 +0100 (CET)
Received: from [10.7.2.42] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Sat, 13 Mar
 2021 00:22:09 +0100
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 13092e35-83d5-4ba0-a9dd-6d2995b78cd0
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Subject: Re: [UNIKRAFT PATCH 4/8] Correct license headers introduced by UPB
To: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
CC: <minios-devel@lists.xen.org>, Costin Lupu <costin.lupu@cs.pub.ro>, Sharan
 Santhanam <sharan.santhanam@neclab.eu>, Felipe Huici
	<felipe.huici@neclab.eu>, <nicolescu.roxana1996@gmail.com>,
	<lascu.bogdan96@gmail.com>, <vlad_andrei.badoiu@upb.ro>, <cristb@gmail.com>
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
 <20210215111902.3382-5-simon.kuenzer@neclab.eu>
 <86czw7zf9i.fsf@drone.cs.pub.ro>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <711c22c3-22cb-a05d-c3d3-ea590a33bbac@neclab.eu>
Date: Sat, 13 Mar 2021 00:22:08 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0)
 Gecko/20100101 Thunderbird/78.7.1
MIME-Version: 1.0
In-Reply-To: <86czw7zf9i.fsf@drone.cs.pub.ro>
Content-Type: text/plain; charset="utf-8"; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)

Hi Razvan,

as discussed offline, I will add a note to your `reviewed-by` tag that 
says that you did it `on behalf of` Cristian Banu who gave the agreement 
to you.

Thanks,

Simon


On 10.03.21 07:36, Razvan Deaconescu wrote:
> This is OK from UPB's side.
> 
> Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
> 
> Razvan
> 
> Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
>> This commit removes the additional clause
>> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
>> from BSD license headers that got introduced by mistake
>> by Cristian Banu with the following commits:
>>   ca9616f9a - lib/uk9p: Add 9P fid abstraction
>>   b2ce99adc - lib/uk9p: Add 9P transport registration
>>   5c24de843 - lib/uk9p: Add 9P device implementation
>>   440259b39 - plat/xen/drivers/9p: Initialize xenbus device
>>   5282598ae - plat/drivers: Virtio 9P driver skeleton
>>   7ee9a512d - plat/xen/drivers: Add 9pfront driver skeleton
>>   f2c29a657 - lib/uk9p: Add 9P requests abstraction
>>   f74733d49 - lib/9pfs: Implement mount and unmount
>>   cd65e50e4 - lib/uk9p: Add 9P protocol core definitions
>>   ef1021378 - lib/9pfs: Add 9pfs header
>>   e77b99c78 - lib/uk9p: Add 9P helper API
>>
>> On the one hand, this additional clause is redundant because
>> the BSD license already states that it must remain and the
>> copyright notice must be kept.
>> On the other hand, the clause freezes the file header
>> and prohibits future contributors from extending the
>> copyright notice for their contributions. This additional
>> clause is not part of the official BSD 3-clause.
>>
>> The original author consents to the change with a `Signed-off-by`
>> or `Reviewed-by` tag to this commit.
>>
>> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
>> ---
>>   lib/9pfs/9pfs.h                         | 2 --
>>   lib/9pfs/9pfs_vfsops.c                  | 2 --
>>   lib/9pfs/9pfs_vnops.c                   | 2 --
>>   lib/uk9p/9p.c                           | 2 --
>>   lib/uk9p/9pdev.c                        | 2 --
>>   lib/uk9p/9pdev_trans.c                  | 2 --
>>   lib/uk9p/9pfid.c                        | 2 --
>>   lib/uk9p/9preq.c                        | 2 --
>>   lib/uk9p/include/uk/9p.h                | 2 --
>>   lib/uk9p/include/uk/9p_core.h           | 2 --
>>   lib/uk9p/include/uk/9pdev.h             | 2 --
>>   lib/uk9p/include/uk/9pdev_core.h        | 2 --
>>   lib/uk9p/include/uk/9pdev_trans.h       | 2 --
>>   lib/uk9p/include/uk/9pfid.h             | 2 --
>>   lib/uk9p/include/uk/9preq.h             | 2 --
>>   plat/drivers/include/virtio/virtio_9p.h | 2 --
>>   plat/drivers/virtio/virtio_9p.c         | 2 --
>>   plat/xen/drivers/9p/9pfront.c           | 2 --
>>   plat/xen/drivers/9p/9pfront.h           | 2 --
>>   plat/xen/drivers/9p/9pfront_xb.h        | 2 --
>>   plat/xen/drivers/9p/9pfront_xs.c        | 2 --
>>   21 files changed, 42 deletions(-)
>>
>> diff --git a/lib/9pfs/9pfs.h b/lib/9pfs/9pfs.h
>> index 3571c857b..38eb00b8c 100644
>> --- a/lib/9pfs/9pfs.h
>> +++ b/lib/9pfs/9pfs.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __UK_9PFS__
>> diff --git a/lib/9pfs/9pfs_vfsops.c b/lib/9pfs/9pfs_vfsops.c
>> index 5293b2213..6550a5e99 100644
>> --- a/lib/9pfs/9pfs_vfsops.c
>> +++ b/lib/9pfs/9pfs_vfsops.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <uk/config.h>
>> diff --git a/lib/9pfs/9pfs_vnops.c b/lib/9pfs/9pfs_vnops.c
>> index 5a0700c61..a0b11686c 100644
>> --- a/lib/9pfs/9pfs_vnops.c
>> +++ b/lib/9pfs/9pfs_vnops.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #define _GNU_SOURCE
>> diff --git a/lib/uk9p/9p.c b/lib/uk9p/9p.c
>> index abddb6088..a6a7fb943 100644
>> --- a/lib/uk9p/9p.c
>> +++ b/lib/uk9p/9p.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <uk/config.h>
>> diff --git a/lib/uk9p/9pdev.c b/lib/uk9p/9pdev.c
>> index bdd6a84cf..1cc6167f8 100644
>> --- a/lib/uk9p/9pdev.c
>> +++ b/lib/uk9p/9pdev.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <stdbool.h>
>> diff --git a/lib/uk9p/9pdev_trans.c b/lib/uk9p/9pdev_trans.c
>> index 156632032..628f67d24 100644
>> --- a/lib/uk9p/9pdev_trans.c
>> +++ b/lib/uk9p/9pdev_trans.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <errno.h>
>> diff --git a/lib/uk9p/9pfid.c b/lib/uk9p/9pfid.c
>> index 85d14c660..16e27b74f 100644
>> --- a/lib/uk9p/9pfid.c
>> +++ b/lib/uk9p/9pfid.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <uk/config.h>
>> diff --git a/lib/uk9p/9preq.c b/lib/uk9p/9preq.c
>> index edc462cc0..b85798051 100644
>> --- a/lib/uk9p/9preq.c
>> +++ b/lib/uk9p/9preq.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <string.h>
>> diff --git a/lib/uk9p/include/uk/9p.h b/lib/uk9p/include/uk/9p.h
>> index e91b14774..06befc755 100644
>> --- a/lib/uk9p/include/uk/9p.h
>> +++ b/lib/uk9p/include/uk/9p.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   #ifndef __UK_9P__
>>   #define __UK_9P__
>> diff --git a/lib/uk9p/include/uk/9p_core.h b/lib/uk9p/include/uk/9p_core.h
>> index 197f7a95d..59f5527ae 100644
>> --- a/lib/uk9p/include/uk/9p_core.h
>> +++ b/lib/uk9p/include/uk/9p_core.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __UK_9P_CORE__
>> diff --git a/lib/uk9p/include/uk/9pdev.h b/lib/uk9p/include/uk/9pdev.h
>> index 560ba8f79..75be3518f 100644
>> --- a/lib/uk9p/include/uk/9pdev.h
>> +++ b/lib/uk9p/include/uk/9pdev.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __UK_9PDEV__
>> diff --git a/lib/uk9p/include/uk/9pdev_core.h b/lib/uk9p/include/uk/9pdev_core.h
>> index fcad1ef75..99c290b4c 100644
>> --- a/lib/uk9p/include/uk/9pdev_core.h
>> +++ b/lib/uk9p/include/uk/9pdev_core.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __UK_9PDEV_CORE__
>> diff --git a/lib/uk9p/include/uk/9pdev_trans.h b/lib/uk9p/include/uk/9pdev_trans.h
>> index 6e981ae88..7a68ff027 100644
>> --- a/lib/uk9p/include/uk/9pdev_trans.h
>> +++ b/lib/uk9p/include/uk/9pdev_trans.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __UK_9PDEV_TRANS__
>> diff --git a/lib/uk9p/include/uk/9pfid.h b/lib/uk9p/include/uk/9pfid.h
>> index 7ec75bb4a..ad33efbaa 100644
>> --- a/lib/uk9p/include/uk/9pfid.h
>> +++ b/lib/uk9p/include/uk/9pfid.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __UK_9PFID__
>> diff --git a/lib/uk9p/include/uk/9preq.h b/lib/uk9p/include/uk/9preq.h
>> index aad8d4263..90febd865 100644
>> --- a/lib/uk9p/include/uk/9preq.h
>> +++ b/lib/uk9p/include/uk/9preq.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __UK_9PREQ__
>> diff --git a/plat/drivers/include/virtio/virtio_9p.h b/plat/drivers/include/virtio/virtio_9p.h
>> index 29158ab71..383a60832 100644
>> --- a/plat/drivers/include/virtio/virtio_9p.h
>> +++ b/plat/drivers/include/virtio/virtio_9p.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __PLAT_DRV_VIRTIO_9P_H
>> diff --git a/plat/drivers/virtio/virtio_9p.c b/plat/drivers/virtio/virtio_9p.c
>> index a783eba27..1974efe88 100644
>> --- a/plat/drivers/virtio/virtio_9p.c
>> +++ b/plat/drivers/virtio/virtio_9p.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <inttypes.h>
>> diff --git a/plat/xen/drivers/9p/9pfront.c b/plat/xen/drivers/9p/9pfront.c
>> index 429c7b97d..6c9f232c0 100644
>> --- a/plat/xen/drivers/9p/9pfront.c
>> +++ b/plat/xen/drivers/9p/9pfront.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <stdbool.h>
>> diff --git a/plat/xen/drivers/9p/9pfront.h b/plat/xen/drivers/9p/9pfront.h
>> index 0bbc7f445..2fba9ad7d 100644
>> --- a/plat/xen/drivers/9p/9pfront.h
>> +++ b/plat/xen/drivers/9p/9pfront.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __9PFRONT_H__
>> diff --git a/plat/xen/drivers/9p/9pfront_xb.h b/plat/xen/drivers/9p/9pfront_xb.h
>> index 6e2697f9c..bfa094fb8 100644
>> --- a/plat/xen/drivers/9p/9pfront_xb.h
>> +++ b/plat/xen/drivers/9p/9pfront_xb.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __9PFRONT_XB_H__
>> diff --git a/plat/xen/drivers/9p/9pfront_xs.c b/plat/xen/drivers/9p/9pfront_xs.c
>> index 7185061cc..b78e67211 100644
>> --- a/plat/xen/drivers/9p/9pfront_xs.c
>> +++ b/plat/xen/drivers/9p/9pfront_xs.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <string.h>


From minios-devel-bounces@lists.xenproject.org Fri Mar 12 23:22:30 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 12 Mar 2021 23:22:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.97377.184982 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lKr70-0006RX-Ta; Fri, 12 Mar 2021 23:22:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 97377.184982; Fri, 12 Mar 2021 23:22:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lKr70-0006RQ-Qb; Fri, 12 Mar 2021 23:22:30 +0000
Received: by outflank-mailman (input) for mailman id 97377;
 Fri, 12 Mar 2021 23:22:29 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Iv30=IK=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1lKr6z-0006RF-Jx
 for minios-devel@lists.xen.org; Fri, 12 Mar 2021 23:22:29 +0000
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id faef7db5-bcaa-4e12-aa28-ec524dfdce98;
 Fri, 12 Mar 2021 23:22:28 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id F1934103ECD;
 Sat, 13 Mar 2021 00:22:27 +0100 (CET)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id al9K21h1VmKw; Sat, 13 Mar 2021 00:22:27 +0100 (CET)
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id C354D100156;
 Sat, 13 Mar 2021 00:22:27 +0100 (CET)
Received: from [10.7.2.42] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Sat, 13 Mar
 2021 00:22:16 +0100
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: faef7db5-bcaa-4e12-aa28-ec524dfdce98
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Subject: Re: [UNIKRAFT PATCH 7/8] Correct license headers introduced by UPB
To: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
CC: <minios-devel@lists.xen.org>, Costin Lupu <costin.lupu@cs.pub.ro>, Sharan
 Santhanam <sharan.santhanam@neclab.eu>, Felipe Huici
	<felipe.huici@neclab.eu>, <nicolescu.roxana1996@gmail.com>,
	<lascu.bogdan96@gmail.com>, <vlad_andrei.badoiu@upb.ro>, <cristb@gmail.com>
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
 <20210215111902.3382-8-simon.kuenzer@neclab.eu>
 <86sg52wz4k.fsf@drone.cs.pub.ro>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <0ac18b59-4c0c-d26f-95da-a360727f5ee2@neclab.eu>
Date: Sat, 13 Mar 2021 00:22:15 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0)
 Gecko/20100101 Thunderbird/78.7.1
MIME-Version: 1.0
In-Reply-To: <86sg52wz4k.fsf@drone.cs.pub.ro>
Content-Type: text/plain; charset="utf-8"; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)

Hi Razvan,

as discussed offline, I will add a note to your `reviewed-by` tag that 
says that you did it `on behalf of` Bogdan Lascu who gave the agreement 
to you.

Thanks,

Simon

On 10.03.21 21:08, Razvan Deaconescu wrote:
> This is OK from UPB's side.
> 
> Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
> 
> Razvan
> 
> Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
>> This commit removes the additional clause
>> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
>> from BSD license headers that got introduced by mistake
>> by Bogdan Lascu with the following commit:
>>   32ad87545 - lib/vfscore: Add anonymous pipe
>>
>> On the one hand, this additional clause is redundant because
>> the BSD license already states that it must remain and the
>> copyright notice must be kept.
>> On the other hand, the clause freezes the file header
>> and prohibits future contributors from extending the
>> copyright notice for their contributions. This additional
>> clause is not part of the official BSD 3-clause.
>>
>> The original author consents to the change with a `Signed-off-by`
>> or `Reviewed-by` tag to this commit.
>>
>> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
>> ---
>>   lib/vfscore/pipe.c | 2 --
>>   1 file changed, 2 deletions(-)
>>
>> diff --git a/lib/vfscore/pipe.c b/lib/vfscore/pipe.c
>> index 8d382965e..09597dbcb 100644
>> --- a/lib/vfscore/pipe.c
>> +++ b/lib/vfscore/pipe.c
>> @@ -29,8 +29,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <uk/config.h>


From minios-devel-bounces@lists.xenproject.org Fri Mar 12 23:22:31 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 12 Mar 2021 23:22:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.97378.184987 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lKr71-0006SA-V3; Fri, 12 Mar 2021 23:22:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 97378.184987; Fri, 12 Mar 2021 23:22:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lKr71-0006S6-S4; Fri, 12 Mar 2021 23:22:31 +0000
Received: by outflank-mailman (input) for mailman id 97378;
 Fri, 12 Mar 2021 23:22:30 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Iv30=IK=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1lKr6z-0006RF-VT
 for minios-devel@lists.xen.org; Fri, 12 Mar 2021 23:22:30 +0000
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 066c5c8c-7df0-4cd3-a84d-ea15fd91df35;
 Fri, 12 Mar 2021 23:22:29 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 1B097100156;
 Sat, 13 Mar 2021 00:22:28 +0100 (CET)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id I4y2zGJUXuc4; Sat, 13 Mar 2021 00:22:27 +0100 (CET)
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id CBD97103996;
 Sat, 13 Mar 2021 00:22:27 +0100 (CET)
Received: from [10.7.2.42] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Sat, 13 Mar
 2021 00:22:20 +0100
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 066c5c8c-7df0-4cd3-a84d-ea15fd91df35
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Subject: Re: [UNIKRAFT PATCH 6/8] Correct license headers introduced by UPB
To: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
CC: <minios-devel@lists.xen.org>, Costin Lupu <costin.lupu@cs.pub.ro>, Sharan
 Santhanam <sharan.santhanam@neclab.eu>, Felipe Huici
	<felipe.huici@neclab.eu>, <nicolescu.roxana1996@gmail.com>,
	<lascu.bogdan96@gmail.com>, <vlad_andrei.badoiu@upb.ro>, <cristb@gmail.com>
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
 <20210215111902.3382-7-simon.kuenzer@neclab.eu>
 <868s6vzf95.fsf@drone.cs.pub.ro>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <15ac9922-98b1-a296-2e0d-2070768239d0@neclab.eu>
Date: Sat, 13 Mar 2021 00:22:20 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0)
 Gecko/20100101 Thunderbird/78.7.1
MIME-Version: 1.0
In-Reply-To: <868s6vzf95.fsf@drone.cs.pub.ro>
Content-Type: text/plain; charset="utf-8"; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)

Hi Razvan,

as discussed offline, I will add a note to your `reviewed-by` tag that 
says that you did it `on behalf of` Razvan Cojocaru who gave the 
agreement to you.

Thanks,

Simon

On 10.03.21 07:36, Razvan Deaconescu wrote:
> This is OK from UPB's side.
> 
> Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
> 
> Razvan
> 
> Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
>> This commit removes the additional clause
>> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
>> from BSD license headers that got introduced by mistake
>> by Razvan Cojocaru with the following commit:
>>   63fac86c7 - lib/uknetdev: Netdev registration
>>
>> On the one hand, this additional clause is redundant because
>> the BSD license already states that it must remain and the
>> copyright notice must be kept.
>> On the other hand, the clause freezes the file header
>> and prohibits future contributors from extending the
>> copyright notice for their contributions. This additional
>> clause is not part of the official BSD 3-clause.
>>
>> The original author consents to the change with a `Signed-off-by`
>> or `Reviewed-by` tag to this commit.
>>
>> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
>> ---
>>   lib/uknetdev/include/uk/netdev.h        | 2 --
>>   lib/uknetdev/include/uk/netdev_core.h   | 2 --
>>   lib/uknetdev/include/uk/netdev_driver.h | 2 --
>>   lib/uknetdev/netdev.c                   | 2 --
>>   4 files changed, 8 deletions(-)
>>
>> diff --git a/lib/uknetdev/include/uk/netdev.h b/lib/uknetdev/include/uk/netdev.h
>> index 74a04ad73..b3ee666b3 100644
>> --- a/lib/uknetdev/include/uk/netdev.h
>> +++ b/lib/uknetdev/include/uk/netdev.h
>> @@ -30,8 +30,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   /* Derived from DPDK rte_ethdev_core.h - DPDK.org 18.02.2 */
>>   #ifndef __UK_NETDEV__
>> diff --git a/lib/uknetdev/include/uk/netdev_core.h b/lib/uknetdev/include/uk/netdev_core.h
>> index df6ceebfd..e8ebaae8b 100644
>> --- a/lib/uknetdev/include/uk/netdev_core.h
>> +++ b/lib/uknetdev/include/uk/netdev_core.h
>> @@ -30,8 +30,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   /* Derived from DPDK rte_ethdev_core.h - DPDK.org 18.02.2 */
>>   #ifndef __UK_NETDEV_CORE__
>> diff --git a/lib/uknetdev/include/uk/netdev_driver.h b/lib/uknetdev/include/uk/netdev_driver.h
>> index 6033f6201..96408580b 100644
>> --- a/lib/uknetdev/include/uk/netdev_driver.h
>> +++ b/lib/uknetdev/include/uk/netdev_driver.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   #ifndef __UK_NETDEV_DRIVER__
>>   #define __UK_NETDEV_DRIVER__
>> diff --git a/lib/uknetdev/netdev.c b/lib/uknetdev/netdev.c
>> index 87322c7f4..cb02b06a5 100644
>> --- a/lib/uknetdev/netdev.c
>> +++ b/lib/uknetdev/netdev.c
>> @@ -30,8 +30,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   #define _GNU_SOURCE /* for asprintf() */
>>   #include <stdio.h>


From minios-devel-bounces@lists.xenproject.org Fri Mar 12 23:22:33 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 12 Mar 2021 23:22:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.97379.184991 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lKr73-0006Sr-0z; Fri, 12 Mar 2021 23:22:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 97379.184991; Fri, 12 Mar 2021 23:22:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lKr72-0006Sk-Ta; Fri, 12 Mar 2021 23:22:32 +0000
Received: by outflank-mailman (input) for mailman id 97379;
 Fri, 12 Mar 2021 23:22:31 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Iv30=IK=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1lKr71-0006Ry-Dx
 for minios-devel@lists.xen.org; Fri, 12 Mar 2021 23:22:31 +0000
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 221872bc-1f7a-4860-9658-2453cb44c9d9;
 Fri, 12 Mar 2021 23:22:29 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 54246103996;
 Sat, 13 Mar 2021 00:22:28 +0100 (CET)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id CNvKxR-359LR; Sat, 13 Mar 2021 00:22:28 +0100 (CET)
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id D4E88103C13;
 Sat, 13 Mar 2021 00:22:27 +0100 (CET)
Received: from [10.7.2.42] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Sat, 13 Mar
 2021 00:22:23 +0100
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 221872bc-1f7a-4860-9658-2453cb44c9d9
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Subject: Re: [UNIKRAFT PATCH 5/8] Correct license headers introduced by UPB
To: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
CC: <minios-devel@lists.xen.org>, Costin Lupu <costin.lupu@cs.pub.ro>, Sharan
 Santhanam <sharan.santhanam@neclab.eu>, Felipe Huici
	<felipe.huici@neclab.eu>, <nicolescu.roxana1996@gmail.com>,
	<lascu.bogdan96@gmail.com>, <vlad_andrei.badoiu@upb.ro>, <cristb@gmail.com>
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
 <20210215111902.3382-6-simon.kuenzer@neclab.eu>
 <86zgzby0mw.fsf@drone.cs.pub.ro>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <54e03d1f-4ae7-0f2a-0ff7-392066eaa948@neclab.eu>
Date: Sat, 13 Mar 2021 00:22:22 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0)
 Gecko/20100101 Thunderbird/78.7.1
MIME-Version: 1.0
In-Reply-To: <86zgzby0mw.fsf@drone.cs.pub.ro>
Content-Type: text/plain; charset="utf-8"; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)

Hi Razvan,

as discussed offline, I will add a note to your `reviewed-by` tag that 
says that you did it `on behalf of` Vlad-Andrei BĂDOIU who gave the 
agreement to you.

Thanks,

Simon

On 10.03.21 07:37, Razvan Deaconescu wrote:
> This is OK from UPB's side.
> 
> Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
> 
> Razvan
> 
> Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
>> This commit removes the additional clause
>> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
>> from BSD license headers that got introduced by mistake
>> by Vlad-Andrei BĂDOIU with the following commits:
>>   d2967b3b1 - lib/ukswrand: Adapt the library to work with multiple algorithms
>>   9bb9a617d - lib/ukswrand: Add ChaCha algorithm
>>   8c5e2b4bb - lib/ukswrand: Add /dev/random and /dev/urandom
>>   2784ae201 - lib/nolibc: Add pwd.h
>>   19ebca61d - include/uk: Add page.h
>>   8c9cd0ec9 - lib/uksysinfo: Introduce uksysinfo library
>>   3a39d50dd - plat/*: Introduce unikraft internal constructors
>>   200037918 - lib/nolibc: Add utsname.h
>>
>> On the one hand, this additional clause is redundant because
>> the BSD license already states that it must remain and the
>> copyright notice must be kept.
>> On the other hand, the clause freezes the file header
>> and prohibits future contributors from extending the
>> copyright notice for their contributions. This additional
>> clause is not part of the official BSD 3-clause.
>>
>> The original author consents to the change with a `Signed-off-by`
>> or `Reviewed-by` tag to this commit.
>>
>> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
>> ---
>>   include/uk/ctors.h                      | 2 --
>>   include/uk/page.h                       | 2 --
>>   lib/nolibc/include/pwd.h                | 2 --
>>   lib/posix-sysinfo/include/sys/utsname.h | 2 --
>>   lib/posix-sysinfo/sysinfo.c             | 2 --
>>   lib/ukswrand/chacha.c                   | 2 --
>>   lib/ukswrand/dev.c                      | 2 --
>>   lib/ukswrand/swrand.c                   | 2 --
>>   8 files changed, 16 deletions(-)
>>
>> diff --git a/include/uk/ctors.h b/include/uk/ctors.h
>> index 9c87b53f7..247c3cbdc 100644
>> --- a/include/uk/ctors.h
>> +++ b/include/uk/ctors.h
>> @@ -30,8 +30,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __UK_CTORS_H__
>> diff --git a/include/uk/page.h b/include/uk/page.h
>> index a9262635a..16f3fc4e7 100644
>> --- a/include/uk/page.h
>> +++ b/include/uk/page.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __UK_PAGE_H__
>> diff --git a/lib/nolibc/include/pwd.h b/lib/nolibc/include/pwd.h
>> index 4d81a4324..8a80ee53d 100644
>> --- a/lib/nolibc/include/pwd.h
>> +++ b/lib/nolibc/include/pwd.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __PWD_H__
>> diff --git a/lib/posix-sysinfo/include/sys/utsname.h b/lib/posix-sysinfo/include/sys/utsname.h
>> index 25baf2fff..d3973c3de 100644
>> --- a/lib/posix-sysinfo/include/sys/utsname.h
>> +++ b/lib/posix-sysinfo/include/sys/utsname.h
>> @@ -29,8 +29,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __SYS_UTSNAME_H__
>> diff --git a/lib/posix-sysinfo/sysinfo.c b/lib/posix-sysinfo/sysinfo.c
>> index 922f3b141..f57914b68 100644
>> --- a/lib/posix-sysinfo/sysinfo.c
>> +++ b/lib/posix-sysinfo/sysinfo.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <stddef.h>
>> diff --git a/lib/ukswrand/chacha.c b/lib/ukswrand/chacha.c
>> index 0ce1b992a..ae1185924 100644
>> --- a/lib/ukswrand/chacha.c
>> +++ b/lib/ukswrand/chacha.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <string.h>
>> diff --git a/lib/ukswrand/dev.c b/lib/ukswrand/dev.c
>> index 40a14268c..fbd447d1b 100644
>> --- a/lib/ukswrand/dev.c
>> +++ b/lib/ukswrand/dev.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <stdlib.h>
>> diff --git a/lib/ukswrand/swrand.c b/lib/ukswrand/swrand.c
>> index ded57bb58..37af27f75 100644
>> --- a/lib/ukswrand/swrand.c
>> +++ b/lib/ukswrand/swrand.c
>> @@ -26,8 +26,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   #include <string.h>
>>   #include <uk/swrand.h>


From minios-devel-bounces@lists.xenproject.org Fri Mar 12 23:22:38 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 12 Mar 2021 23:22:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.97380.184994 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lKr78-0006UG-39; Fri, 12 Mar 2021 23:22:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 97380.184994; Fri, 12 Mar 2021 23:22:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lKr78-0006U9-0F; Fri, 12 Mar 2021 23:22:38 +0000
Received: by outflank-mailman (input) for mailman id 97380;
 Fri, 12 Mar 2021 23:22:36 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Iv30=IK=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1lKr76-0006Ry-9o
 for minios-devel@lists.xen.org; Fri, 12 Mar 2021 23:22:36 +0000
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 10094c42-00dd-4edf-bed1-29f474281e32;
 Fri, 12 Mar 2021 23:22:29 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id E54D9F2090;
 Sat, 13 Mar 2021 00:22:27 +0100 (CET)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 9wWw-PEz-cpH; Sat, 13 Mar 2021 00:22:27 +0100 (CET)
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id A81EDF208F;
 Sat, 13 Mar 2021 00:22:13 +0100 (CET)
Received: from [10.7.2.42] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Sat, 13 Mar
 2021 00:22:13 +0100
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 10094c42-00dd-4edf-bed1-29f474281e32
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Subject: Re: [UNIKRAFT PATCH 3/8] Correct license headers introduced by UPB
To: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
CC: <minios-devel@lists.xen.org>, Costin Lupu <costin.lupu@cs.pub.ro>, Sharan
 Santhanam <sharan.santhanam@neclab.eu>, Felipe Huici
	<felipe.huici@neclab.eu>, <nicolescu.roxana1996@gmail.com>,
	<lascu.bogdan96@gmail.com>, <vlad_andrei.badoiu@upb.ro>, <cristb@gmail.com>
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
 <20210215111902.3382-4-simon.kuenzer@neclab.eu>
 <864khjzf8v.fsf@drone.cs.pub.ro>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <345e6593-08ab-9547-939b-38d1457a7896@neclab.eu>
Date: Sat, 13 Mar 2021 00:22:12 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0)
 Gecko/20100101 Thunderbird/78.7.1
MIME-Version: 1.0
In-Reply-To: <864khjzf8v.fsf@drone.cs.pub.ro>
Content-Type: text/plain; charset="utf-8"; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)

Hi Razvan,

as discussed offline, I will add a note to your `reviewed-by` tag that 
says that you did it `on behalf of` Costin Lupu who gave the agreement 
to you.

Thanks,

Simon

On 10.03.21 07:37, Razvan Deaconescu wrote:
> This is OK from UPB's side.
> 
> Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
> 
> Razvan
> 
> Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
>> This commit removes the additional clause
>> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
>> from BSD license headers that got introduced by mistake
>> by Costin Lupu with the following commits:
>>   e09db222a - lib/posix-process: Introduce library
>>   790787e1a - plat/kvm: Add KVM (x86_64) timer support
>>   495221f5a - plat/common: Common x86 tracing functions
>>   6ea24ce5f - plat/common: Common x86 segment descriptors definitions
>>   3174af1a1 - plat/common: Common x86 traps definitions and functions
>>   f2478ed85 - plat/kvm: Add KVM (x86_64) interrupts support
>>   9f0389adf - plat/xen: Add Xenbus driver registration support
>>   ff0c0bf65 - plat/kvm: Fix current thread retrieval in interrupt context on x86_64
>>   fbbc468c9 - lib/uktime: Introduce time_types.h for type defintions
>>   a79078c96 - plat/xen: Add API for Xenstore messages
>>   300c8309c - plat: Introduce API for setting platform default allocator
>>   45d7afdb5 - lib/uksched: Introduce thread attributes
>>   9464bdc06 - plat/xen: Introduce client API for Xenbus drivers
>>   cf2e10677 - plat/common: Common x86 CPU definitions
>>   3bf7ba15a - plat/xen: Add IRQ subsystem initialization function
>>   26a59e3d2 - plat/xen: Add support for communication with Xenstore daemon
>>   cc797499a - plat/common: Common x86 CPU functions
>>   dde942de7 - lib/ukunistd: Add user.h for user related functions declarations
>>   1162bca18 - lib/posix-libdl: Add stubs
>>   0101002ee - plat/common: Halting functions
>>   5e73e025f - plat/xen: Add Xenstore watch support
>>   62917eb15 - plat/linuxu: Add linuxu (x86_64) interrupts support
>>   2c29345cd - lib/ukswrand: Add getrandom() function
>>   925b04e24 - plat/linuxu: Add linuxu (x86_64) timer support
>>   df484abae - lib/nolibc: Add time.c
>>
>> On the one hand, this additional clause is redundant because
>> the BSD license already states that it must remain and the
>> copyright notice must be kept.
>> On the other hand, the clause freezes the file header
>> and prohibits future contributors from extending the
>> copyright notice for their contributions. This additional
>> clause is not part of the official BSD 3-clause.
>>
>> The original author  consents to the change with a `Signed-off-by`
>> or `Reviewed-by` tag to this commit.
>>
>> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
>> ---
>>   include/uk/plat/irq.h                       | 2 --
>>   lib/posix-libdl/stubs.c                     | 2 --
>>   lib/posix-process/include/uk/process.h      | 2 --
>>   lib/posix-process/process.c                 | 2 --
>>   lib/posix-user/include/uk/user.h            | 2 --
>>   lib/uksched/include/uk/thread_attr.h        | 2 --
>>   lib/uksched/thread_attr.c                   | 2 --
>>   lib/ukswrand/getrandom.c                    | 2 --
>>   lib/ukswrand/include/sys/random.h           | 2 --
>>   lib/uktime/include/uk/time_types.h          | 2 --
>>   lib/uktime/time.c                           | 2 --
>>   plat/common/include/uk/plat/common/_time.h  | 2 --
>>   plat/common/include/uk/plat/common/cpu.h    | 2 --
>>   plat/common/include/uk/plat/common/memory.h | 2 --
>>   plat/common/include/uk/plat/common/trace.h  | 2 --
>>   plat/common/include/x86/cpu_defs.h          | 2 --
>>   plat/common/include/x86/desc.h              | 2 --
>>   plat/common/include/x86/traps.h             | 2 --
>>   plat/common/lcpu.c                          | 2 --
>>   plat/common/memory.c                        | 2 --
>>   plat/common/x86/cpu_native.c                | 2 --
>>   plat/common/x86/trace.c                     | 2 --
>>   plat/common/x86/traps.c                     | 2 --
>>   plat/kvm/include/kvm/intctrl.h              | 2 --
>>   plat/kvm/include/kvm/irq.h                  | 2 --
>>   plat/kvm/include/kvm/tscclock.h             | 2 --
>>   plat/kvm/x86/memory.c                       | 2 --
>>   plat/linuxu/include/linuxu/signal.h         | 2 --
>>   plat/linuxu/include/linuxu/time.h           | 2 --
>>   plat/linuxu/irq.c                           | 2 --
>>   plat/xen/include/xenbus/client.h            | 2 --
>>   plat/xen/include/xenbus/xenbus.h            | 2 --
>>   plat/xen/include/xenbus/xs.h                | 2 --
>>   plat/xen/x86/cpu_pv.c                       | 2 --
>>   plat/xen/xenbus/client.c                    | 2 --
>>   plat/xen/xenbus/xenbus.c                    | 2 --
>>   plat/xen/xenbus/xs.c                        | 2 --
>>   plat/xen/xenbus/xs_comms.c                  | 2 --
>>   plat/xen/xenbus/xs_comms.h                  | 2 --
>>   plat/xen/xenbus/xs_watch.c                  | 2 --
>>   plat/xen/xenbus/xs_watch.h                  | 2 --
>>   41 files changed, 82 deletions(-)
>>
>> diff --git a/include/uk/plat/irq.h b/include/uk/plat/irq.h
>> index 6c1eb9402..baf0fa6e9 100644
>> --- a/include/uk/plat/irq.h
>> +++ b/include/uk/plat/irq.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   #ifndef __UKPLAT_IRQ_H__
>>   #define __UKPLAT_IRQ_H__
>> diff --git a/lib/posix-libdl/stubs.c b/lib/posix-libdl/stubs.c
>> index 4d1ea3e93..8407562d5 100644
>> --- a/lib/posix-libdl/stubs.c
>> +++ b/lib/posix-libdl/stubs.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <uk/essentials.h>
>> diff --git a/lib/posix-process/include/uk/process.h b/lib/posix-process/include/uk/process.h
>> index b5eeb90a0..de7f80077 100644
>> --- a/lib/posix-process/include/uk/process.h
>> +++ b/lib/posix-process/include/uk/process.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __UK_PROCESS_H__
>> diff --git a/lib/posix-process/process.c b/lib/posix-process/process.c
>> index a8541d8ab..3aecf01a5 100644
>> --- a/lib/posix-process/process.c
>> +++ b/lib/posix-process/process.c
>> @@ -29,8 +29,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <errno.h>
>> diff --git a/lib/posix-user/include/uk/user.h b/lib/posix-user/include/uk/user.h
>> index 9c72bc0f7..6548702eb 100644
>> --- a/lib/posix-user/include/uk/user.h
>> +++ b/lib/posix-user/include/uk/user.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __UK_USER_H__
>> diff --git a/lib/uksched/include/uk/thread_attr.h b/lib/uksched/include/uk/thread_attr.h
>> index f4ba6cc39..48b47c60f 100644
>> --- a/lib/uksched/include/uk/thread_attr.h
>> +++ b/lib/uksched/include/uk/thread_attr.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __UK_SCHED_THREAD_ATTR_H__
>> diff --git a/lib/uksched/thread_attr.c b/lib/uksched/thread_attr.c
>> index 52afe9f94..388557081 100644
>> --- a/lib/uksched/thread_attr.c
>> +++ b/lib/uksched/thread_attr.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <stdlib.h>
>> diff --git a/lib/ukswrand/getrandom.c b/lib/ukswrand/getrandom.c
>> index f4567385a..f4f2b210a 100644
>> --- a/lib/ukswrand/getrandom.c
>> +++ b/lib/ukswrand/getrandom.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <string.h>
>> diff --git a/lib/ukswrand/include/sys/random.h b/lib/ukswrand/include/sys/random.h
>> index 4ccee1ccd..3fe8897f3 100644
>> --- a/lib/ukswrand/include/sys/random.h
>> +++ b/lib/ukswrand/include/sys/random.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef _SYS_RANDOM_H
>> diff --git a/lib/uktime/include/uk/time_types.h b/lib/uktime/include/uk/time_types.h
>> index d6b0083f1..36f76775d 100644
>> --- a/lib/uktime/include/uk/time_types.h
>> +++ b/lib/uktime/include/uk/time_types.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #if (defined __NEED_time_t && !defined __DEFINED_time_t)
>> diff --git a/lib/uktime/time.c b/lib/uktime/time.c
>> index 307d5008b..de4204697 100644
>> --- a/lib/uktime/time.c
>> +++ b/lib/uktime/time.c
>> @@ -31,8 +31,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <errno.h>
>> diff --git a/plat/common/include/uk/plat/common/_time.h b/plat/common/include/uk/plat/common/_time.h
>> index 06240ff0f..31a2c9a90 100644
>> --- a/plat/common/include/uk/plat/common/_time.h
>> +++ b/plat/common/include/uk/plat/common/_time.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __PLAT_CMN_TIME_H__
>> diff --git a/plat/common/include/uk/plat/common/cpu.h b/plat/common/include/uk/plat/common/cpu.h
>> index ac2f8fe3a..5506c25b6 100644
>> --- a/plat/common/include/uk/plat/common/cpu.h
>> +++ b/plat/common/include/uk/plat/common/cpu.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __PLAT_CMN_CPU_H__
>> diff --git a/plat/common/include/uk/plat/common/memory.h b/plat/common/include/uk/plat/common/memory.h
>> index f627348a9..1d05ada1d 100644
>> --- a/plat/common/include/uk/plat/common/memory.h
>> +++ b/plat/common/include/uk/plat/common/memory.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __PLAT_CMN_MEMORY_H__
>> diff --git a/plat/common/include/uk/plat/common/trace.h b/plat/common/include/uk/plat/common/trace.h
>> index bc3b6de87..2727bf5ae 100644
>> --- a/plat/common/include/uk/plat/common/trace.h
>> +++ b/plat/common/include/uk/plat/common/trace.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   #ifndef __PLAT_CMN_TRACE_H__
>>   #define __PLAT_CMN_TRACE_H__
>> diff --git a/plat/common/include/x86/cpu_defs.h b/plat/common/include/x86/cpu_defs.h
>> index 1cf5367db..161b72f38 100644
>> --- a/plat/common/include/x86/cpu_defs.h
>> +++ b/plat/common/include/x86/cpu_defs.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   #ifndef __PLAT_CMN_X86_CPU_DEFS_H__
>>   #define __PLAT_CMN_X86_CPU_DEFS_H__
>> diff --git a/plat/common/include/x86/desc.h b/plat/common/include/x86/desc.h
>> index 10cabd52f..9ef26f87a 100644
>> --- a/plat/common/include/x86/desc.h
>> +++ b/plat/common/include/x86/desc.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   /*
>>    * Adapted from Mini-OS: include/x86/desc.h
>> diff --git a/plat/common/include/x86/traps.h b/plat/common/include/x86/traps.h
>> index da90f2ea0..9fd9a4920 100644
>> --- a/plat/common/include/x86/traps.h
>> +++ b/plat/common/include/x86/traps.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   /* Ported from Mini-OS */
>>   
>> diff --git a/plat/common/lcpu.c b/plat/common/lcpu.c
>> index fe08a393c..4c31231e6 100644
>> --- a/plat/common/lcpu.c
>> +++ b/plat/common/lcpu.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <uk/plat/lcpu.h>
>> diff --git a/plat/common/memory.c b/plat/common/memory.c
>> index c46a4b0ef..ddcb7084d 100644
>> --- a/plat/common/memory.c
>> +++ b/plat/common/memory.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <uk/plat/memory.h>
>> diff --git a/plat/common/x86/cpu_native.c b/plat/common/x86/cpu_native.c
>> index e29c2dbcc..b7298a5a5 100644
>> --- a/plat/common/x86/cpu_native.c
>> +++ b/plat/common/x86/cpu_native.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <x86/cpu.h>
>> diff --git a/plat/common/x86/trace.c b/plat/common/x86/trace.c
>> index d1abd4611..4f2e8b095 100644
>> --- a/plat/common/x86/trace.c
>> +++ b/plat/common/x86/trace.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <uk/plat/common/trace.h>
>> diff --git a/plat/common/x86/traps.c b/plat/common/x86/traps.c
>> index 961438674..f638db5eb 100644
>> --- a/plat/common/x86/traps.c
>> +++ b/plat/common/x86/traps.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   /* Ported from Mini-OS */
>>   
>> diff --git a/plat/kvm/include/kvm/intctrl.h b/plat/kvm/include/kvm/intctrl.h
>> index a6ce3075a..c87fe5d90 100644
>> --- a/plat/kvm/include/kvm/intctrl.h
>> +++ b/plat/kvm/include/kvm/intctrl.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   void intctrl_init(void);
>> diff --git a/plat/kvm/include/kvm/irq.h b/plat/kvm/include/kvm/irq.h
>> index 750ccd254..19232d285 100644
>> --- a/plat/kvm/include/kvm/irq.h
>> +++ b/plat/kvm/include/kvm/irq.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __KVM_IRQ_H_
>> diff --git a/plat/kvm/include/kvm/tscclock.h b/plat/kvm/include/kvm/tscclock.h
>> index 27d0e0241..2105ed785 100644
>> --- a/plat/kvm/include/kvm/tscclock.h
>> +++ b/plat/kvm/include/kvm/tscclock.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __KVM_TSCCLOCK_H__
>> diff --git a/plat/kvm/x86/memory.c b/plat/kvm/x86/memory.c
>> index ed58c1a43..1ca2a715f 100644
>> --- a/plat/kvm/x86/memory.c
>> +++ b/plat/kvm/x86/memory.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <uk/plat/memory.h>
>> diff --git a/plat/linuxu/include/linuxu/signal.h b/plat/linuxu/include/linuxu/signal.h
>> index 62395df3f..5d1582da5 100644
>> --- a/plat/linuxu/include/linuxu/signal.h
>> +++ b/plat/linuxu/include/linuxu/signal.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   /* This file contains definitions for interfacing with the Linux kernel. To
>> diff --git a/plat/linuxu/include/linuxu/time.h b/plat/linuxu/include/linuxu/time.h
>> index 648ad0bbe..d2c5da370 100644
>> --- a/plat/linuxu/include/linuxu/time.h
>> +++ b/plat/linuxu/include/linuxu/time.h
>> @@ -29,8 +29,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   #ifndef __LINUXU_TIME_H__
>>   #define __LINUXU_TIME_H__
>> diff --git a/plat/linuxu/irq.c b/plat/linuxu/irq.c
>> index 961dcf9b6..f1dbd58cb 100644
>> --- a/plat/linuxu/irq.c
>> +++ b/plat/linuxu/irq.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   #include <string.h>
>>   #include <uk/alloc.h>
>> diff --git a/plat/xen/include/xenbus/client.h b/plat/xen/include/xenbus/client.h
>> index a9417a929..aa362fef7 100644
>> --- a/plat/xen/include/xenbus/client.h
>> +++ b/plat/xen/include/xenbus/client.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   /*
>>    * Client interface between the device and the Xenbus driver.
>> diff --git a/plat/xen/include/xenbus/xenbus.h b/plat/xen/include/xenbus/xenbus.h
>> index 9fc942bcb..138db6c50 100644
>> --- a/plat/xen/include/xenbus/xenbus.h
>> +++ b/plat/xen/include/xenbus/xenbus.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __XENBUS_H__
>> diff --git a/plat/xen/include/xenbus/xs.h b/plat/xen/include/xenbus/xs.h
>> index e887bc492..f41f53dcb 100644
>> --- a/plat/xen/include/xenbus/xs.h
>> +++ b/plat/xen/include/xenbus/xs.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   /* Xenstore API */
>>   /*
>> diff --git a/plat/xen/x86/cpu_pv.c b/plat/xen/x86/cpu_pv.c
>> index 471cc37e4..fa50fb1c4 100644
>> --- a/plat/xen/x86/cpu_pv.c
>> +++ b/plat/xen/x86/cpu_pv.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #include <x86/cpu.h>
>> diff --git a/plat/xen/xenbus/client.c b/plat/xen/xenbus/client.c
>> index 504b117e0..20e671ec1 100644
>> --- a/plat/xen/xenbus/client.c
>> +++ b/plat/xen/xenbus/client.c
>> @@ -32,8 +32,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   /*
>>    * Client interface between the device and the Xenbus driver.
>> diff --git a/plat/xen/xenbus/xenbus.c b/plat/xen/xenbus/xenbus.c
>> index a2cd65c6e..2fa23577f 100644
>> --- a/plat/xen/xenbus/xenbus.c
>> +++ b/plat/xen/xenbus/xenbus.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #define _GNU_SOURCE
>> diff --git a/plat/xen/xenbus/xs.c b/plat/xen/xenbus/xs.c
>> index d4819ea80..4fc10cb54 100644
>> --- a/plat/xen/xenbus/xs.c
>> +++ b/plat/xen/xenbus/xs.c
>> @@ -32,8 +32,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   /*
>>    * Ported from Mini-OS xenbus.c
>> diff --git a/plat/xen/xenbus/xs_comms.c b/plat/xen/xenbus/xs_comms.c
>> index 5c393c1e7..b81d16bd2 100644
>> --- a/plat/xen/xenbus/xs_comms.c
>> +++ b/plat/xen/xenbus/xs_comms.c
>> @@ -32,8 +32,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   /*
>>    * Communication with Xenstore
>> diff --git a/plat/xen/xenbus/xs_comms.h b/plat/xen/xenbus/xs_comms.h
>> index cae609364..4ece31e05 100644
>> --- a/plat/xen/xenbus/xs_comms.h
>> +++ b/plat/xen/xenbus/xs_comms.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   
>>   #ifndef __XS_COMMS_H__
>> diff --git a/plat/xen/xenbus/xs_watch.c b/plat/xen/xenbus/xs_watch.c
>> index d77a285e8..b958b5862 100644
>> --- a/plat/xen/xenbus/xs_watch.c
>> +++ b/plat/xen/xenbus/xs_watch.c
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   /* Internal API for Xenstore watches */
>>   
>> diff --git a/plat/xen/xenbus/xs_watch.h b/plat/xen/xenbus/xs_watch.h
>> index f9a5bff49..662187b02 100644
>> --- a/plat/xen/xenbus/xs_watch.h
>> +++ b/plat/xen/xenbus/xs_watch.h
>> @@ -28,8 +28,6 @@
>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>    * POSSIBILITY OF SUCH DAMAGE.
>> - *
>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>    */
>>   /* Internal API for Xenstore watches */


From minios-devel-bounces@lists.xenproject.org Sat Mar 13 10:29:58 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 13 Mar 2021 10:29:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.97494.185227 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lL1Wq-0006EY-KC; Sat, 13 Mar 2021 10:29:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 97494.185227; Sat, 13 Mar 2021 10:29:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lL1Wq-0006ER-HF; Sat, 13 Mar 2021 10:29:52 +0000
Received: by outflank-mailman (input) for mailman id 97494;
 Sat, 13 Mar 2021 10:29:51 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=peRY=IL=gmail.com=razvand@srs-us1.protection.inumbo.net>)
 id 1lL1Wp-0006EM-2Q
 for minios-devel@lists.xen.org; Sat, 13 Mar 2021 10:29:51 +0000
Received: from mail-wr1-x431.google.com (unknown [2a00:1450:4864:20::431])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id b1ac30d9-9f28-4280-9677-025e2846212d;
 Sat, 13 Mar 2021 10:29:48 +0000 (UTC)
Received: by mail-wr1-x431.google.com with SMTP id v4so3121738wrp.13
 for <minios-devel@lists.xen.org>; Sat, 13 Mar 2021 02:29:48 -0800 (PST)
Received: from localhost ([141.85.225.205])
 by smtp.gmail.com with ESMTPSA id w131sm5865949wmb.8.2021.03.13.02.29.46
 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256);
 Sat, 13 Mar 2021 02:29:46 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: b1ac30d9-9f28-4280-9677-025e2846212d
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
         :user-agent:mime-version;
        bh=yuIe+35fblUgpdXtrES1Zum1zeTBX97draA+RddD3EU=;
        b=SQ/pW1eWl23gpHBPtBqzs+6ETHXH5epw6MM4X0ZAFxcVWIQIEf2fVoR0ALIStJZ1CE
         cV88CUBiDSLjMNd5b25PRaAU7p4k7eUVmdFg32mNTLjsZmdUUR6DGy2ZgDAoWR2JUFR/
         gZORmy2BiZKtxnQQH/4/2SHKcPUcyaG9hfnekZr4gNbnnX+uih/2hwAF9P46KaxRnbaX
         dboqgWY8D1y25uu2CC/9sMiWBBcbzf6Pyf6UUnbC49Mn9+uTUaHtoESD40BXAHOHj5SK
         g8Nur1M2K7RYRsXR63xptyF8QwQqKzfFLJPTmtA5uoXDegbtXuDOAXX8gRf+I0sz0cJQ
         PMew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:sender:from:to:cc:subject:references:date
         :in-reply-to:message-id:user-agent:mime-version;
        bh=yuIe+35fblUgpdXtrES1Zum1zeTBX97draA+RddD3EU=;
        b=j4jIG2d6aH3036nbNpkdXEUO2e1Bcj9ssuTfoMXz3eqYyb8GtPuTLd6I9skCC+tGvm
         s9d0hrIRBidleUiInaCp2ixRePrj3Vyu0d/7pAY7aLxbIBtsIZE2F+j0gvVLUs5J3qIt
         EBZtkDaZcBtcADWuA0xH7YaWnGYYLqtW8x1S/pMKMK+CUNZEARw7pfeW2JkJeBeVuuxo
         rQXt6tWH8nBZ4CUtzJjlFFjEBtkNQYdZq1REcP+uCXrnF+ysWR1Efv0VaiZ0ebYtPJfO
         G0le2oCfSO4BGZjNq/37HbFM1yYyPfPsJccSGrgDgu37SqxvXN3aCzGT0frYUq6ay+mx
         jW0w==
X-Gm-Message-State: AOAM531M5z4OmmQKMR5PwKT2Y+/r3NXUYszffyjWk5SlZOLs0mbgXBLQ
	F29ZbzfWIx+ySft05KttQY4=
X-Google-Smtp-Source: ABdhPJyDX/0g6t4oCHjMmq2MOsH3h4KXE6ro2fFMkE8It48V8c9vEsD+JdfeB+ouEtiTwxGU27JxbA==
X-Received: by 2002:a5d:6a86:: with SMTP id s6mr19063016wru.307.1615631387343;
        Sat, 13 Mar 2021 02:29:47 -0800 (PST)
Sender: Razvan Deaconescu <razvand@gmail.com>
From: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Cc: <minios-devel@lists.xen.org>,  Costin Lupu <costin.lupu@cs.pub.ro>,  Sharan Santhanam <sharan.santhanam@neclab.eu>,  Felipe Huici <felipe.huici@neclab.eu>,  <nicolescu.roxana1996@gmail.com>,  <lascu.bogdan96@gmail.com>,  <vlad_andrei.badoiu@upb.ro>,  <cristb@gmail.com>
Subject: Re: [UNIKRAFT PATCH 4/8] Correct license headers introduced by UPB
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
	<20210215111902.3382-5-simon.kuenzer@neclab.eu>
	<86czw7zf9i.fsf@drone.cs.pub.ro>
	<711c22c3-22cb-a05d-c3d3-ea590a33bbac@neclab.eu>
Date: Sat, 13 Mar 2021 12:29:46 +0200
In-Reply-To: <711c22c3-22cb-a05d-c3d3-ea590a33bbac@neclab.eu> (Simon Kuenzer's
	message of "Sat, 13 Mar 2021 00:22:08 +0100")
Message-ID: <86v99vcpnp.fsf@drone.cs.pub.ro>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain

Yup, I already discussed with Cristian Banu. All is OK.

Razvan

Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
> Hi Razvan,
>
> as discussed offline, I will add a note to your `reviewed-by` tag that
> says that you did it `on behalf of` Cristian Banu who gave the
> agreement to you.
>
> Thanks,
>
> Simon
>
>
> On 10.03.21 07:36, Razvan Deaconescu wrote:
>> This is OK from UPB's side.
>>
>> Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
>>
>> Razvan
>>
>> Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
>>> This commit removes the additional clause
>>> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
>>> from BSD license headers that got introduced by mistake
>>> by Cristian Banu with the following commits:
>>>   ca9616f9a - lib/uk9p: Add 9P fid abstraction
>>>   b2ce99adc - lib/uk9p: Add 9P transport registration
>>>   5c24de843 - lib/uk9p: Add 9P device implementation
>>>   440259b39 - plat/xen/drivers/9p: Initialize xenbus device
>>>   5282598ae - plat/drivers: Virtio 9P driver skeleton
>>>   7ee9a512d - plat/xen/drivers: Add 9pfront driver skeleton
>>>   f2c29a657 - lib/uk9p: Add 9P requests abstraction
>>>   f74733d49 - lib/9pfs: Implement mount and unmount
>>>   cd65e50e4 - lib/uk9p: Add 9P protocol core definitions
>>>   ef1021378 - lib/9pfs: Add 9pfs header
>>>   e77b99c78 - lib/uk9p: Add 9P helper API
>>>
>>> On the one hand, this additional clause is redundant because
>>> the BSD license already states that it must remain and the
>>> copyright notice must be kept.
>>> On the other hand, the clause freezes the file header
>>> and prohibits future contributors from extending the
>>> copyright notice for their contributions. This additional
>>> clause is not part of the official BSD 3-clause.
>>>
>>> The original author consents to the change with a `Signed-off-by`
>>> or `Reviewed-by` tag to this commit.
>>>
>>> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
>>> ---
>>>   lib/9pfs/9pfs.h                         | 2 --
>>>   lib/9pfs/9pfs_vfsops.c                  | 2 --
>>>   lib/9pfs/9pfs_vnops.c                   | 2 --
>>>   lib/uk9p/9p.c                           | 2 --
>>>   lib/uk9p/9pdev.c                        | 2 --
>>>   lib/uk9p/9pdev_trans.c                  | 2 --
>>>   lib/uk9p/9pfid.c                        | 2 --
>>>   lib/uk9p/9preq.c                        | 2 --
>>>   lib/uk9p/include/uk/9p.h                | 2 --
>>>   lib/uk9p/include/uk/9p_core.h           | 2 --
>>>   lib/uk9p/include/uk/9pdev.h             | 2 --
>>>   lib/uk9p/include/uk/9pdev_core.h        | 2 --
>>>   lib/uk9p/include/uk/9pdev_trans.h       | 2 --
>>>   lib/uk9p/include/uk/9pfid.h             | 2 --
>>>   lib/uk9p/include/uk/9preq.h             | 2 --
>>>   plat/drivers/include/virtio/virtio_9p.h | 2 --
>>>   plat/drivers/virtio/virtio_9p.c         | 2 --
>>>   plat/xen/drivers/9p/9pfront.c           | 2 --
>>>   plat/xen/drivers/9p/9pfront.h           | 2 --
>>>   plat/xen/drivers/9p/9pfront_xb.h        | 2 --
>>>   plat/xen/drivers/9p/9pfront_xs.c        | 2 --
>>>   21 files changed, 42 deletions(-)
>>>
>>> diff --git a/lib/9pfs/9pfs.h b/lib/9pfs/9pfs.h
>>> index 3571c857b..38eb00b8c 100644
>>> --- a/lib/9pfs/9pfs.h
>>> +++ b/lib/9pfs/9pfs.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __UK_9PFS__
>>> diff --git a/lib/9pfs/9pfs_vfsops.c b/lib/9pfs/9pfs_vfsops.c
>>> index 5293b2213..6550a5e99 100644
>>> --- a/lib/9pfs/9pfs_vfsops.c
>>> +++ b/lib/9pfs/9pfs_vfsops.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <uk/config.h>
>>> diff --git a/lib/9pfs/9pfs_vnops.c b/lib/9pfs/9pfs_vnops.c
>>> index 5a0700c61..a0b11686c 100644
>>> --- a/lib/9pfs/9pfs_vnops.c
>>> +++ b/lib/9pfs/9pfs_vnops.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #define _GNU_SOURCE
>>> diff --git a/lib/uk9p/9p.c b/lib/uk9p/9p.c
>>> index abddb6088..a6a7fb943 100644
>>> --- a/lib/uk9p/9p.c
>>> +++ b/lib/uk9p/9p.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <uk/config.h>
>>> diff --git a/lib/uk9p/9pdev.c b/lib/uk9p/9pdev.c
>>> index bdd6a84cf..1cc6167f8 100644
>>> --- a/lib/uk9p/9pdev.c
>>> +++ b/lib/uk9p/9pdev.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <stdbool.h>
>>> diff --git a/lib/uk9p/9pdev_trans.c b/lib/uk9p/9pdev_trans.c
>>> index 156632032..628f67d24 100644
>>> --- a/lib/uk9p/9pdev_trans.c
>>> +++ b/lib/uk9p/9pdev_trans.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <errno.h>
>>> diff --git a/lib/uk9p/9pfid.c b/lib/uk9p/9pfid.c
>>> index 85d14c660..16e27b74f 100644
>>> --- a/lib/uk9p/9pfid.c
>>> +++ b/lib/uk9p/9pfid.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <uk/config.h>
>>> diff --git a/lib/uk9p/9preq.c b/lib/uk9p/9preq.c
>>> index edc462cc0..b85798051 100644
>>> --- a/lib/uk9p/9preq.c
>>> +++ b/lib/uk9p/9preq.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <string.h>
>>> diff --git a/lib/uk9p/include/uk/9p.h b/lib/uk9p/include/uk/9p.h
>>> index e91b14774..06befc755 100644
>>> --- a/lib/uk9p/include/uk/9p.h
>>> +++ b/lib/uk9p/include/uk/9p.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   #ifndef __UK_9P__
>>>   #define __UK_9P__
>>> diff --git a/lib/uk9p/include/uk/9p_core.h b/lib/uk9p/include/uk/9p_core.h
>>> index 197f7a95d..59f5527ae 100644
>>> --- a/lib/uk9p/include/uk/9p_core.h
>>> +++ b/lib/uk9p/include/uk/9p_core.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __UK_9P_CORE__
>>> diff --git a/lib/uk9p/include/uk/9pdev.h b/lib/uk9p/include/uk/9pdev.h
>>> index 560ba8f79..75be3518f 100644
>>> --- a/lib/uk9p/include/uk/9pdev.h
>>> +++ b/lib/uk9p/include/uk/9pdev.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __UK_9PDEV__
>>> diff --git a/lib/uk9p/include/uk/9pdev_core.h b/lib/uk9p/include/uk/9pdev_core.h
>>> index fcad1ef75..99c290b4c 100644
>>> --- a/lib/uk9p/include/uk/9pdev_core.h
>>> +++ b/lib/uk9p/include/uk/9pdev_core.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __UK_9PDEV_CORE__
>>> diff --git a/lib/uk9p/include/uk/9pdev_trans.h b/lib/uk9p/include/uk/9pdev_trans.h
>>> index 6e981ae88..7a68ff027 100644
>>> --- a/lib/uk9p/include/uk/9pdev_trans.h
>>> +++ b/lib/uk9p/include/uk/9pdev_trans.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __UK_9PDEV_TRANS__
>>> diff --git a/lib/uk9p/include/uk/9pfid.h b/lib/uk9p/include/uk/9pfid.h
>>> index 7ec75bb4a..ad33efbaa 100644
>>> --- a/lib/uk9p/include/uk/9pfid.h
>>> +++ b/lib/uk9p/include/uk/9pfid.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __UK_9PFID__
>>> diff --git a/lib/uk9p/include/uk/9preq.h b/lib/uk9p/include/uk/9preq.h
>>> index aad8d4263..90febd865 100644
>>> --- a/lib/uk9p/include/uk/9preq.h
>>> +++ b/lib/uk9p/include/uk/9preq.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __UK_9PREQ__
>>> diff --git a/plat/drivers/include/virtio/virtio_9p.h b/plat/drivers/include/virtio/virtio_9p.h
>>> index 29158ab71..383a60832 100644
>>> --- a/plat/drivers/include/virtio/virtio_9p.h
>>> +++ b/plat/drivers/include/virtio/virtio_9p.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __PLAT_DRV_VIRTIO_9P_H
>>> diff --git a/plat/drivers/virtio/virtio_9p.c b/plat/drivers/virtio/virtio_9p.c
>>> index a783eba27..1974efe88 100644
>>> --- a/plat/drivers/virtio/virtio_9p.c
>>> +++ b/plat/drivers/virtio/virtio_9p.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <inttypes.h>
>>> diff --git a/plat/xen/drivers/9p/9pfront.c b/plat/xen/drivers/9p/9pfront.c
>>> index 429c7b97d..6c9f232c0 100644
>>> --- a/plat/xen/drivers/9p/9pfront.c
>>> +++ b/plat/xen/drivers/9p/9pfront.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <stdbool.h>
>>> diff --git a/plat/xen/drivers/9p/9pfront.h b/plat/xen/drivers/9p/9pfront.h
>>> index 0bbc7f445..2fba9ad7d 100644
>>> --- a/plat/xen/drivers/9p/9pfront.h
>>> +++ b/plat/xen/drivers/9p/9pfront.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __9PFRONT_H__
>>> diff --git a/plat/xen/drivers/9p/9pfront_xb.h b/plat/xen/drivers/9p/9pfront_xb.h
>>> index 6e2697f9c..bfa094fb8 100644
>>> --- a/plat/xen/drivers/9p/9pfront_xb.h
>>> +++ b/plat/xen/drivers/9p/9pfront_xb.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __9PFRONT_XB_H__
>>> diff --git a/plat/xen/drivers/9p/9pfront_xs.c b/plat/xen/drivers/9p/9pfront_xs.c
>>> index 7185061cc..b78e67211 100644
>>> --- a/plat/xen/drivers/9p/9pfront_xs.c
>>> +++ b/plat/xen/drivers/9p/9pfront_xs.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <string.h>


From minios-devel-bounces@lists.xenproject.org Sat Mar 13 10:30:01 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 13 Mar 2021 10:30:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.97495.185231 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lL1Wz-0006Fl-NH; Sat, 13 Mar 2021 10:30:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 97495.185231; Sat, 13 Mar 2021 10:30:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lL1Wz-0006Fe-K3; Sat, 13 Mar 2021 10:30:01 +0000
Received: by outflank-mailman (input) for mailman id 97495;
 Sat, 13 Mar 2021 10:30:00 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=peRY=IL=gmail.com=razvand@srs-us1.protection.inumbo.net>)
 id 1lL1Wy-0006FV-9j
 for minios-devel@lists.xen.org; Sat, 13 Mar 2021 10:30:00 +0000
Received: from mail-wr1-x430.google.com (unknown [2a00:1450:4864:20::430])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c8ac8aec-9379-407d-acf5-1f6f078428a5;
 Sat, 13 Mar 2021 10:29:58 +0000 (UTC)
Received: by mail-wr1-x430.google.com with SMTP id o16so3122139wrn.0
 for <minios-devel@lists.xen.org>; Sat, 13 Mar 2021 02:29:58 -0800 (PST)
Received: from localhost ([141.85.225.205])
 by smtp.gmail.com with ESMTPSA id u4sm12655711wrm.24.2021.03.13.02.29.57
 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256);
 Sat, 13 Mar 2021 02:29:57 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: c8ac8aec-9379-407d-acf5-1f6f078428a5
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
         :user-agent:mime-version:content-transfer-encoding;
        bh=9cwMAMw7ruj/0PPMNQBwZ72WWfOsjAiHthhHFrHzGdY=;
        b=CN2hAoLgf/j3tTGU0+EkP7jAFhPudVdvkLp/q9aCIgAgxfdfO8Msmf63/pPP/7TbrX
         bvTC/vPHfCi3TQUW0kKhsURIRnYzCAGDZqiCAXS+vF6HK3z3sGFlZj47gkpAqOWhXkxC
         TVvcpAuixUDpMOc25eanVGjOCREQTMV436By7i1ii19w+TtqCa5x3tvJU3ir9FSbL/rf
         Mu19feqyBSJVskZggpPF60a5oxQ8NwMcNqj+m2TW6T/8/TfnTH2kZaMB4y4FjEJ3BLn5
         t9jtvL/NsnaArrtJ41zQhvUpyoCePJO+rvDhwfnBTPKacaOzBVcdBqekPlbCy6Sr42Nk
         ivnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:sender:from:to:cc:subject:references:date
         :in-reply-to:message-id:user-agent:mime-version
         :content-transfer-encoding;
        bh=9cwMAMw7ruj/0PPMNQBwZ72WWfOsjAiHthhHFrHzGdY=;
        b=Hq4O+90r2T6u+zxRPsPgyVe87Yb49R3C+d4iawR2UhwetlNgfUc5jTiFWhDGKQYhcZ
         wSRfi1wZyuKcSMlcGIygecmRQU5JOsyfn8JXvHEQ9/ZBXwkYFNBnLGgrJQUfyS1iJBYf
         QQKgEQKPi5WorW3purKkRILt/1ZVYjXjDZah7yyuc0vBFmviRtX6Rnqj5BtFTIZF4/mL
         5qM7WSnlzR4K13hAPqvMlx7Rkd5oQXB6hS1HiBDRpdFG8Q4HFUuhmgJ1HhF2xgYs+iJ9
         NyGIZ3PMe1p0r4DeqTJEvIzonJdC+vKRmYzAqREIhrE44RIzn9nlJ8Zgv4eDwYGTeSm6
         jVbw==
X-Gm-Message-State: AOAM530P1w09eGXGeLqWUIK0R9v9M4RYPyL/DkqAHcjhCWUrkXFO0wCb
	y18Cn3MEp/VgznhjgM4r58ROkl2o0B0=
X-Google-Smtp-Source: ABdhPJwUvd9jWYTKt1if7aZx+j0L4NL/jxOFH4MFO30HGhpuN6r7jbFdakeFfnS5bdXKSqz41Kv0RA==
X-Received: by 2002:adf:bc46:: with SMTP id a6mr18355337wrh.418.1615631397590;
        Sat, 13 Mar 2021 02:29:57 -0800 (PST)
Sender: Razvan Deaconescu <razvand@gmail.com>
From: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Cc: <minios-devel@lists.xen.org>,  Costin Lupu <costin.lupu@cs.pub.ro>,  Sharan Santhanam <sharan.santhanam@neclab.eu>,  Felipe Huici <felipe.huici@neclab.eu>,  <nicolescu.roxana1996@gmail.com>,  <lascu.bogdan96@gmail.com>,  <vlad_andrei.badoiu@upb.ro>,  <cristb@gmail.com>
Subject: Re: [UNIKRAFT PATCH 5/8] Correct license headers introduced by UPB
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
	<20210215111902.3382-6-simon.kuenzer@neclab.eu>
	<86zgzby0mw.fsf@drone.cs.pub.ro>
	<54e03d1f-4ae7-0f2a-0ff7-392066eaa948@neclab.eu>
Date: Sat, 13 Mar 2021 12:29:56 +0200
In-Reply-To: <54e03d1f-4ae7-0f2a-0ff7-392066eaa948@neclab.eu> (Simon Kuenzer's
	message of "Sat, 13 Mar 2021 00:22:22 +0100")
Message-ID: <86r1kjcpnf.fsf@drone.cs.pub.ro>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Yup, I already discussed with Cristian Banu. All is OK.

Razvan

Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
> Hi Razvan,
>
> as discussed offline, I will add a note to your `reviewed-by` tag that
> says that you did it `on behalf of` Vlad-Andrei B=C4=82DOIU who gave the
> agreement to you.
>
> Thanks,
>
> Simon
>
> On 10.03.21 07:37, Razvan Deaconescu wrote:
>> This is OK from UPB's side.
>>
>> Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
>>
>> Razvan
>>
>> Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
>>> This commit removes the additional clause
>>> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
>>> from BSD license headers that got introduced by mistake
>>> by Vlad-Andrei B=C4=82DOIU with the following commits:
>>>   d2967b3b1 - lib/ukswrand: Adapt the library to work with multiple alg=
orithms
>>>   9bb9a617d - lib/ukswrand: Add ChaCha algorithm
>>>   8c5e2b4bb - lib/ukswrand: Add /dev/random and /dev/urandom
>>>   2784ae201 - lib/nolibc: Add pwd.h
>>>   19ebca61d - include/uk: Add page.h
>>>   8c9cd0ec9 - lib/uksysinfo: Introduce uksysinfo library
>>>   3a39d50dd - plat/*: Introduce unikraft internal constructors
>>>   200037918 - lib/nolibc: Add utsname.h
>>>
>>> On the one hand, this additional clause is redundant because
>>> the BSD license already states that it must remain and the
>>> copyright notice must be kept.
>>> On the other hand, the clause freezes the file header
>>> and prohibits future contributors from extending the
>>> copyright notice for their contributions. This additional
>>> clause is not part of the official BSD 3-clause.
>>>
>>> The original author consents to the change with a `Signed-off-by`
>>> or `Reviewed-by` tag to this commit.
>>>
>>> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
>>> ---
>>>   include/uk/ctors.h                      | 2 --
>>>   include/uk/page.h                       | 2 --
>>>   lib/nolibc/include/pwd.h                | 2 --
>>>   lib/posix-sysinfo/include/sys/utsname.h | 2 --
>>>   lib/posix-sysinfo/sysinfo.c             | 2 --
>>>   lib/ukswrand/chacha.c                   | 2 --
>>>   lib/ukswrand/dev.c                      | 2 --
>>>   lib/ukswrand/swrand.c                   | 2 --
>>>   8 files changed, 16 deletions(-)
>>>
>>> diff --git a/include/uk/ctors.h b/include/uk/ctors.h
>>> index 9c87b53f7..247c3cbdc 100644
>>> --- a/include/uk/ctors.h
>>> +++ b/include/uk/ctors.h
>>> @@ -30,8 +30,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __UK_CTORS_H__
>>> diff --git a/include/uk/page.h b/include/uk/page.h
>>> index a9262635a..16f3fc4e7 100644
>>> --- a/include/uk/page.h
>>> +++ b/include/uk/page.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __UK_PAGE_H__
>>> diff --git a/lib/nolibc/include/pwd.h b/lib/nolibc/include/pwd.h
>>> index 4d81a4324..8a80ee53d 100644
>>> --- a/lib/nolibc/include/pwd.h
>>> +++ b/lib/nolibc/include/pwd.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __PWD_H__
>>> diff --git a/lib/posix-sysinfo/include/sys/utsname.h b/lib/posix-sysinf=
o/include/sys/utsname.h
>>> index 25baf2fff..d3973c3de 100644
>>> --- a/lib/posix-sysinfo/include/sys/utsname.h
>>> +++ b/lib/posix-sysinfo/include/sys/utsname.h
>>> @@ -29,8 +29,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __SYS_UTSNAME_H__
>>> diff --git a/lib/posix-sysinfo/sysinfo.c b/lib/posix-sysinfo/sysinfo.c
>>> index 922f3b141..f57914b68 100644
>>> --- a/lib/posix-sysinfo/sysinfo.c
>>> +++ b/lib/posix-sysinfo/sysinfo.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <stddef.h>
>>> diff --git a/lib/ukswrand/chacha.c b/lib/ukswrand/chacha.c
>>> index 0ce1b992a..ae1185924 100644
>>> --- a/lib/ukswrand/chacha.c
>>> +++ b/lib/ukswrand/chacha.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <string.h>
>>> diff --git a/lib/ukswrand/dev.c b/lib/ukswrand/dev.c
>>> index 40a14268c..fbd447d1b 100644
>>> --- a/lib/ukswrand/dev.c
>>> +++ b/lib/ukswrand/dev.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <stdlib.h>
>>> diff --git a/lib/ukswrand/swrand.c b/lib/ukswrand/swrand.c
>>> index ded57bb58..37af27f75 100644
>>> --- a/lib/ukswrand/swrand.c
>>> +++ b/lib/ukswrand/swrand.c
>>> @@ -26,8 +26,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   #include <string.h>
>>>   #include <uk/swrand.h>


From minios-devel-bounces@lists.xenproject.org Sat Mar 13 10:43:16 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 13 Mar 2021 10:43:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.97507.185251 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lL1jm-00085F-48; Sat, 13 Mar 2021 10:43:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 97507.185251; Sat, 13 Mar 2021 10:43:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lL1jm-000858-0h; Sat, 13 Mar 2021 10:43:14 +0000
Received: by outflank-mailman (input) for mailman id 97507;
 Sat, 13 Mar 2021 10:43:12 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=peRY=IL=gmail.com=razvand@srs-us1.protection.inumbo.net>)
 id 1lL1jk-000853-8z
 for minios-devel@lists.xen.org; Sat, 13 Mar 2021 10:43:12 +0000
Received: from mail-wm1-x32f.google.com (unknown [2a00:1450:4864:20::32f])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id bbc45fdc-9999-46a3-9c6a-912f1f430519;
 Sat, 13 Mar 2021 10:43:10 +0000 (UTC)
Received: by mail-wm1-x32f.google.com with SMTP id
 w203-20020a1c49d40000b029010c706d0642so285006wma.0
 for <minios-devel@lists.xen.org>; Sat, 13 Mar 2021 02:43:10 -0800 (PST)
Received: from localhost ([141.85.225.205])
 by smtp.gmail.com with ESMTPSA id h25sm6868195wml.32.2021.03.13.02.43.08
 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256);
 Sat, 13 Mar 2021 02:43:08 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: bbc45fdc-9999-46a3-9c6a-912f1f430519
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
         :user-agent:mime-version:content-transfer-encoding;
        bh=vLZpvEBk4LQtu6t2o0pfGxljPZCvhgPF1kfxgZqj+QQ=;
        b=pIKcT2olE9cNytEWIZzb4eQRIKz39zWKVpMltPVAQGQUBHTwYX1JxvFcYY6B4TCxhC
         3z7pzr/3G3t4v0H/V6Hf+pBfvY7+owJIxSauwDhY2FrWqty4d50VnnPF1hRn6YAzfKHE
         sPn2+4lI1FZs/H8iWtYNJdSlbVmqwPhXU4q4MrmWbFFlJjiAT/w+6S27iUKa/NLI2d7y
         6sHAZhDR9/nYDVik3TyiWrARUMBeDbl6VghpR9Yr3PU2PiwOKP4PwFybkNBnoggwvNDO
         D2x17DODhtkgh5dw/olvGdCG3li8kexH7EzatMoSF8vPtXD33MRl6FNelfy7+n0zw3aF
         HY6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:sender:from:to:cc:subject:references:date
         :in-reply-to:message-id:user-agent:mime-version
         :content-transfer-encoding;
        bh=vLZpvEBk4LQtu6t2o0pfGxljPZCvhgPF1kfxgZqj+QQ=;
        b=dXEqm+1Cz+NPnH1tcPvQWFxVcSN1zBz3JgvXINGas0lWqP+7HA/myWi6BV/uJ7JFU2
         tiDlXREJ6xd73npkdT12SksfsXbcFGDp3+xu9eltG99Xn5dxbFOz+LQfwSpcvJ/7BCk3
         x0jUSuSSEoIQQab4YEhmx/pRhk28Tlpe5AZHNvcvMwq8EJ2mgeHil1a0m1NCrLtyE8bt
         dAeVUVZf8wLoc6kaQYL3zJLoki1/86n5U6aXtsNMUU/CmxsuR3cksu+oVVtt9rgqzwSu
         gLHpS6/U80cpYNMcXitlLGOvhYiYjUTEHjnKiEmEkn8FibcsMK7E6WVtClUXhzPz2flT
         DoDg==
X-Gm-Message-State: AOAM532xZWQZ0DJ1OBu1wfDkTZ/3zxKYJrd4gXlr9zzCj9YOvswvbnC2
	CjDjS/9z6Gid90eIwnehsig=
X-Google-Smtp-Source: ABdhPJx9lG9zxczFTPiAoaKaqmj121mTXbn6CFxQo/20AbNIgs4j886hXsTZsHriflqjSA8nD+5W/A==
X-Received: by 2002:a05:600c:4112:: with SMTP id j18mr17325288wmi.143.1615632189335;
        Sat, 13 Mar 2021 02:43:09 -0800 (PST)
Sender: Razvan Deaconescu <razvand@gmail.com>
From: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Cc: <minios-devel@lists.xen.org>,  Costin Lupu <costin.lupu@cs.pub.ro>,  Sharan Santhanam <sharan.santhanam@neclab.eu>,  Felipe Huici <felipe.huici@neclab.eu>,  <nicolescu.roxana1996@gmail.com>,  <lascu.bogdan96@gmail.com>,  <vlad_andrei.badoiu@upb.ro>,  <cristb@gmail.com>
Subject: Re: [UNIKRAFT PATCH 5/8] Correct license headers introduced by UPB
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
	<20210215111902.3382-6-simon.kuenzer@neclab.eu>
	<86zgzby0mw.fsf@drone.cs.pub.ro>
	<54e03d1f-4ae7-0f2a-0ff7-392066eaa948@neclab.eu>
Date: Sat, 13 Mar 2021 12:43:08 +0200
In-Reply-To: <54e03d1f-4ae7-0f2a-0ff7-392066eaa948@neclab.eu> (Simon Kuenzer's
	message of "Sat, 13 Mar 2021 00:22:22 +0100")
Message-ID: <86mtv7cp1f.fsf@drone.cs.pub.ro>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Yup, I already discussed with Vlad B=C4=83doiu. All is OK.

Razvan

Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
> Hi Razvan,
>
> as discussed offline, I will add a note to your `reviewed-by` tag that
> says that you did it `on behalf of` Vlad-Andrei B=C4=82DOIU who gave the
> agreement to you.
>
> Thanks,
>
> Simon
>
> On 10.03.21 07:37, Razvan Deaconescu wrote:
>> This is OK from UPB's side.
>>
>> Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
>>
>> Razvan
>>
>> Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
>>> This commit removes the additional clause
>>> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
>>> from BSD license headers that got introduced by mistake
>>> by Vlad-Andrei B=C4=82DOIU with the following commits:
>>>   d2967b3b1 - lib/ukswrand: Adapt the library to work with multiple alg=
orithms
>>>   9bb9a617d - lib/ukswrand: Add ChaCha algorithm
>>>   8c5e2b4bb - lib/ukswrand: Add /dev/random and /dev/urandom
>>>   2784ae201 - lib/nolibc: Add pwd.h
>>>   19ebca61d - include/uk: Add page.h
>>>   8c9cd0ec9 - lib/uksysinfo: Introduce uksysinfo library
>>>   3a39d50dd - plat/*: Introduce unikraft internal constructors
>>>   200037918 - lib/nolibc: Add utsname.h
>>>
>>> On the one hand, this additional clause is redundant because
>>> the BSD license already states that it must remain and the
>>> copyright notice must be kept.
>>> On the other hand, the clause freezes the file header
>>> and prohibits future contributors from extending the
>>> copyright notice for their contributions. This additional
>>> clause is not part of the official BSD 3-clause.
>>>
>>> The original author consents to the change with a `Signed-off-by`
>>> or `Reviewed-by` tag to this commit.
>>>
>>> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
>>> ---
>>>   include/uk/ctors.h                      | 2 --
>>>   include/uk/page.h                       | 2 --
>>>   lib/nolibc/include/pwd.h                | 2 --
>>>   lib/posix-sysinfo/include/sys/utsname.h | 2 --
>>>   lib/posix-sysinfo/sysinfo.c             | 2 --
>>>   lib/ukswrand/chacha.c                   | 2 --
>>>   lib/ukswrand/dev.c                      | 2 --
>>>   lib/ukswrand/swrand.c                   | 2 --
>>>   8 files changed, 16 deletions(-)
>>>
>>> diff --git a/include/uk/ctors.h b/include/uk/ctors.h
>>> index 9c87b53f7..247c3cbdc 100644
>>> --- a/include/uk/ctors.h
>>> +++ b/include/uk/ctors.h
>>> @@ -30,8 +30,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __UK_CTORS_H__
>>> diff --git a/include/uk/page.h b/include/uk/page.h
>>> index a9262635a..16f3fc4e7 100644
>>> --- a/include/uk/page.h
>>> +++ b/include/uk/page.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __UK_PAGE_H__
>>> diff --git a/lib/nolibc/include/pwd.h b/lib/nolibc/include/pwd.h
>>> index 4d81a4324..8a80ee53d 100644
>>> --- a/lib/nolibc/include/pwd.h
>>> +++ b/lib/nolibc/include/pwd.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __PWD_H__
>>> diff --git a/lib/posix-sysinfo/include/sys/utsname.h b/lib/posix-sysinf=
o/include/sys/utsname.h
>>> index 25baf2fff..d3973c3de 100644
>>> --- a/lib/posix-sysinfo/include/sys/utsname.h
>>> +++ b/lib/posix-sysinfo/include/sys/utsname.h
>>> @@ -29,8 +29,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __SYS_UTSNAME_H__
>>> diff --git a/lib/posix-sysinfo/sysinfo.c b/lib/posix-sysinfo/sysinfo.c
>>> index 922f3b141..f57914b68 100644
>>> --- a/lib/posix-sysinfo/sysinfo.c
>>> +++ b/lib/posix-sysinfo/sysinfo.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <stddef.h>
>>> diff --git a/lib/ukswrand/chacha.c b/lib/ukswrand/chacha.c
>>> index 0ce1b992a..ae1185924 100644
>>> --- a/lib/ukswrand/chacha.c
>>> +++ b/lib/ukswrand/chacha.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <string.h>
>>> diff --git a/lib/ukswrand/dev.c b/lib/ukswrand/dev.c
>>> index 40a14268c..fbd447d1b 100644
>>> --- a/lib/ukswrand/dev.c
>>> +++ b/lib/ukswrand/dev.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <stdlib.h>
>>> diff --git a/lib/ukswrand/swrand.c b/lib/ukswrand/swrand.c
>>> index ded57bb58..37af27f75 100644
>>> --- a/lib/ukswrand/swrand.c
>>> +++ b/lib/ukswrand/swrand.c
>>> @@ -26,8 +26,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   #include <string.h>
>>>   #include <uk/swrand.h>


From minios-devel-bounces@lists.xenproject.org Sat Mar 13 10:43:28 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 13 Mar 2021 10:43:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.97508.185254 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lL1k0-00086M-6P; Sat, 13 Mar 2021 10:43:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 97508.185254; Sat, 13 Mar 2021 10:43:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lL1k0-00086F-3D; Sat, 13 Mar 2021 10:43:28 +0000
Received: by outflank-mailman (input) for mailman id 97508;
 Sat, 13 Mar 2021 10:43:26 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=peRY=IL=gmail.com=razvand@srs-us1.protection.inumbo.net>)
 id 1lL1jy-000867-2E
 for minios-devel@lists.xen.org; Sat, 13 Mar 2021 10:43:26 +0000
Received: from mail-wr1-x431.google.com (unknown [2a00:1450:4864:20::431])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 096fbc1b-83eb-4199-bb6a-7ef72d201c2c;
 Sat, 13 Mar 2021 10:43:22 +0000 (UTC)
Received: by mail-wr1-x431.google.com with SMTP id j2so6137385wrx.9
 for <minios-devel@lists.xen.org>; Sat, 13 Mar 2021 02:43:22 -0800 (PST)
Received: from localhost ([141.85.225.205])
 by smtp.gmail.com with ESMTPSA id q17sm7002221wrv.25.2021.03.13.02.43.21
 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256);
 Sat, 13 Mar 2021 02:43:21 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 096fbc1b-83eb-4199-bb6a-7ef72d201c2c
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
         :user-agent:mime-version;
        bh=ZSRjdHJpDCC4Ojs7TxT/5GWL59dtI5RkVUnitSMrqsA=;
        b=gxHHjPj9uKA3euZoEvd7iwmbJfW5icq4Y6XCavVYge1QYO2IduUdCAWYdVg+2wMru1
         UQQG8HNrrD719iwmnwcdr0aqUKbNxQHx5sIspDfhmKjzNQYhmiRzFUkHQDtikSllbhsT
         LaUVSL4wBIoueZajTC3axN1lE1KMtdTrunPVb37yMs/B7E3qMI1ujP8q8ps1yherFgwA
         9lAf8ND3Rt+mBBCgTjAvhaa6jzKXvCY5e/XzhYLMRvxXuwPJtstO63F7xwCyBM36TtaL
         Y2ZgCLMlWh5OpsgpTg8mK+kcbOfLMsP3oeERsM0OgScCz21a5OjdEeZ0jObnpI7bSLAr
         pS1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:sender:from:to:cc:subject:references:date
         :in-reply-to:message-id:user-agent:mime-version;
        bh=ZSRjdHJpDCC4Ojs7TxT/5GWL59dtI5RkVUnitSMrqsA=;
        b=J2YxbPqQtVIlOpQj2y2Q6/X1Kayz08t3As2n2STs2+vTo90GIwk46j/N9rOfjELzvV
         iktRRPXn3S2lZx1QIbtb3xYlOW1MvIY5ouq6nylopS9FUD2+df9Ce8CFxsb0M0GEv9EB
         fU2RX+7ULvQNfgGGHSSUyUhSuCOcJoTM+y7yHVQGw7hRTw4FlOkxFaNs+870DCGfDgNF
         KpTo+SdSCjMZWobL9NO3DYJ5YfBp4/gJGqpEsZKKzxKanlXSPisW32b1FyR5hQjnDVYn
         mDRAAsOoCjd3U9BBuOBu6nCeVxq6pXe6ykwgb26sKUi9H1aB3Q4EnSlou0jHYJgkpRMi
         SgmQ==
X-Gm-Message-State: AOAM530sSb8NrHozPNUFwmV9MJ0cq83xq7JrW3TKtnQMk9sg2N2Guod1
	DSJxHtyCTJhNjKdgm3nXgik=
X-Google-Smtp-Source: ABdhPJxpKHmpVKdP9rC3K3+PGUDR9droY76OPiCdgLY2yCl2j0ubqGvzh7o/UAujDaCoAeYJDO/81Q==
X-Received: by 2002:adf:e582:: with SMTP id l2mr18522986wrm.207.1615632201721;
        Sat, 13 Mar 2021 02:43:21 -0800 (PST)
Sender: Razvan Deaconescu <razvand@gmail.com>
From: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Cc: <minios-devel@lists.xen.org>,  Costin Lupu <costin.lupu@cs.pub.ro>,  Sharan Santhanam <sharan.santhanam@neclab.eu>,  Felipe Huici <felipe.huici@neclab.eu>,  <nicolescu.roxana1996@gmail.com>,  <lascu.bogdan96@gmail.com>,  <vlad_andrei.badoiu@upb.ro>,  <cristb@gmail.com>
Subject: Re: [UNIKRAFT PATCH 3/8] Correct license headers introduced by UPB
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
	<20210215111902.3382-4-simon.kuenzer@neclab.eu>
	<864khjzf8v.fsf@drone.cs.pub.ro>
	<345e6593-08ab-9547-939b-38d1457a7896@neclab.eu>
Date: Sat, 13 Mar 2021 12:43:20 +0200
In-Reply-To: <345e6593-08ab-9547-939b-38d1457a7896@neclab.eu> (Simon Kuenzer's
	message of "Sat, 13 Mar 2021 00:22:12 +0100")
Message-ID: <86im5vcp13.fsf@drone.cs.pub.ro>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain

Yup, I already discussed with Costin Lupu. All is OK.

Razvan

Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
> Hi Razvan,
>
> as discussed offline, I will add a note to your `reviewed-by` tag that
> says that you did it `on behalf of` Costin Lupu who gave the agreement
> to you.
>
> Thanks,
>
> Simon
>
> On 10.03.21 07:37, Razvan Deaconescu wrote:
>> This is OK from UPB's side.
>>
>> Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
>>
>> Razvan
>>
>> Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
>>> This commit removes the additional clause
>>> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
>>> from BSD license headers that got introduced by mistake
>>> by Costin Lupu with the following commits:
>>>   e09db222a - lib/posix-process: Introduce library
>>>   790787e1a - plat/kvm: Add KVM (x86_64) timer support
>>>   495221f5a - plat/common: Common x86 tracing functions
>>>   6ea24ce5f - plat/common: Common x86 segment descriptors definitions
>>>   3174af1a1 - plat/common: Common x86 traps definitions and functions
>>>   f2478ed85 - plat/kvm: Add KVM (x86_64) interrupts support
>>>   9f0389adf - plat/xen: Add Xenbus driver registration support
>>>   ff0c0bf65 - plat/kvm: Fix current thread retrieval in interrupt context on x86_64
>>>   fbbc468c9 - lib/uktime: Introduce time_types.h for type defintions
>>>   a79078c96 - plat/xen: Add API for Xenstore messages
>>>   300c8309c - plat: Introduce API for setting platform default allocator
>>>   45d7afdb5 - lib/uksched: Introduce thread attributes
>>>   9464bdc06 - plat/xen: Introduce client API for Xenbus drivers
>>>   cf2e10677 - plat/common: Common x86 CPU definitions
>>>   3bf7ba15a - plat/xen: Add IRQ subsystem initialization function
>>>   26a59e3d2 - plat/xen: Add support for communication with Xenstore daemon
>>>   cc797499a - plat/common: Common x86 CPU functions
>>>   dde942de7 - lib/ukunistd: Add user.h for user related functions declarations
>>>   1162bca18 - lib/posix-libdl: Add stubs
>>>   0101002ee - plat/common: Halting functions
>>>   5e73e025f - plat/xen: Add Xenstore watch support
>>>   62917eb15 - plat/linuxu: Add linuxu (x86_64) interrupts support
>>>   2c29345cd - lib/ukswrand: Add getrandom() function
>>>   925b04e24 - plat/linuxu: Add linuxu (x86_64) timer support
>>>   df484abae - lib/nolibc: Add time.c
>>>
>>> On the one hand, this additional clause is redundant because
>>> the BSD license already states that it must remain and the
>>> copyright notice must be kept.
>>> On the other hand, the clause freezes the file header
>>> and prohibits future contributors from extending the
>>> copyright notice for their contributions. This additional
>>> clause is not part of the official BSD 3-clause.
>>>
>>> The original author  consents to the change with a `Signed-off-by`
>>> or `Reviewed-by` tag to this commit.
>>>
>>> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
>>> ---
>>>   include/uk/plat/irq.h                       | 2 --
>>>   lib/posix-libdl/stubs.c                     | 2 --
>>>   lib/posix-process/include/uk/process.h      | 2 --
>>>   lib/posix-process/process.c                 | 2 --
>>>   lib/posix-user/include/uk/user.h            | 2 --
>>>   lib/uksched/include/uk/thread_attr.h        | 2 --
>>>   lib/uksched/thread_attr.c                   | 2 --
>>>   lib/ukswrand/getrandom.c                    | 2 --
>>>   lib/ukswrand/include/sys/random.h           | 2 --
>>>   lib/uktime/include/uk/time_types.h          | 2 --
>>>   lib/uktime/time.c                           | 2 --
>>>   plat/common/include/uk/plat/common/_time.h  | 2 --
>>>   plat/common/include/uk/plat/common/cpu.h    | 2 --
>>>   plat/common/include/uk/plat/common/memory.h | 2 --
>>>   plat/common/include/uk/plat/common/trace.h  | 2 --
>>>   plat/common/include/x86/cpu_defs.h          | 2 --
>>>   plat/common/include/x86/desc.h              | 2 --
>>>   plat/common/include/x86/traps.h             | 2 --
>>>   plat/common/lcpu.c                          | 2 --
>>>   plat/common/memory.c                        | 2 --
>>>   plat/common/x86/cpu_native.c                | 2 --
>>>   plat/common/x86/trace.c                     | 2 --
>>>   plat/common/x86/traps.c                     | 2 --
>>>   plat/kvm/include/kvm/intctrl.h              | 2 --
>>>   plat/kvm/include/kvm/irq.h                  | 2 --
>>>   plat/kvm/include/kvm/tscclock.h             | 2 --
>>>   plat/kvm/x86/memory.c                       | 2 --
>>>   plat/linuxu/include/linuxu/signal.h         | 2 --
>>>   plat/linuxu/include/linuxu/time.h           | 2 --
>>>   plat/linuxu/irq.c                           | 2 --
>>>   plat/xen/include/xenbus/client.h            | 2 --
>>>   plat/xen/include/xenbus/xenbus.h            | 2 --
>>>   plat/xen/include/xenbus/xs.h                | 2 --
>>>   plat/xen/x86/cpu_pv.c                       | 2 --
>>>   plat/xen/xenbus/client.c                    | 2 --
>>>   plat/xen/xenbus/xenbus.c                    | 2 --
>>>   plat/xen/xenbus/xs.c                        | 2 --
>>>   plat/xen/xenbus/xs_comms.c                  | 2 --
>>>   plat/xen/xenbus/xs_comms.h                  | 2 --
>>>   plat/xen/xenbus/xs_watch.c                  | 2 --
>>>   plat/xen/xenbus/xs_watch.h                  | 2 --
>>>   41 files changed, 82 deletions(-)
>>>
>>> diff --git a/include/uk/plat/irq.h b/include/uk/plat/irq.h
>>> index 6c1eb9402..baf0fa6e9 100644
>>> --- a/include/uk/plat/irq.h
>>> +++ b/include/uk/plat/irq.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   #ifndef __UKPLAT_IRQ_H__
>>>   #define __UKPLAT_IRQ_H__
>>> diff --git a/lib/posix-libdl/stubs.c b/lib/posix-libdl/stubs.c
>>> index 4d1ea3e93..8407562d5 100644
>>> --- a/lib/posix-libdl/stubs.c
>>> +++ b/lib/posix-libdl/stubs.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <uk/essentials.h>
>>> diff --git a/lib/posix-process/include/uk/process.h b/lib/posix-process/include/uk/process.h
>>> index b5eeb90a0..de7f80077 100644
>>> --- a/lib/posix-process/include/uk/process.h
>>> +++ b/lib/posix-process/include/uk/process.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __UK_PROCESS_H__
>>> diff --git a/lib/posix-process/process.c b/lib/posix-process/process.c
>>> index a8541d8ab..3aecf01a5 100644
>>> --- a/lib/posix-process/process.c
>>> +++ b/lib/posix-process/process.c
>>> @@ -29,8 +29,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <errno.h>
>>> diff --git a/lib/posix-user/include/uk/user.h b/lib/posix-user/include/uk/user.h
>>> index 9c72bc0f7..6548702eb 100644
>>> --- a/lib/posix-user/include/uk/user.h
>>> +++ b/lib/posix-user/include/uk/user.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __UK_USER_H__
>>> diff --git a/lib/uksched/include/uk/thread_attr.h b/lib/uksched/include/uk/thread_attr.h
>>> index f4ba6cc39..48b47c60f 100644
>>> --- a/lib/uksched/include/uk/thread_attr.h
>>> +++ b/lib/uksched/include/uk/thread_attr.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __UK_SCHED_THREAD_ATTR_H__
>>> diff --git a/lib/uksched/thread_attr.c b/lib/uksched/thread_attr.c
>>> index 52afe9f94..388557081 100644
>>> --- a/lib/uksched/thread_attr.c
>>> +++ b/lib/uksched/thread_attr.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <stdlib.h>
>>> diff --git a/lib/ukswrand/getrandom.c b/lib/ukswrand/getrandom.c
>>> index f4567385a..f4f2b210a 100644
>>> --- a/lib/ukswrand/getrandom.c
>>> +++ b/lib/ukswrand/getrandom.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <string.h>
>>> diff --git a/lib/ukswrand/include/sys/random.h b/lib/ukswrand/include/sys/random.h
>>> index 4ccee1ccd..3fe8897f3 100644
>>> --- a/lib/ukswrand/include/sys/random.h
>>> +++ b/lib/ukswrand/include/sys/random.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef _SYS_RANDOM_H
>>> diff --git a/lib/uktime/include/uk/time_types.h b/lib/uktime/include/uk/time_types.h
>>> index d6b0083f1..36f76775d 100644
>>> --- a/lib/uktime/include/uk/time_types.h
>>> +++ b/lib/uktime/include/uk/time_types.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #if (defined __NEED_time_t && !defined __DEFINED_time_t)
>>> diff --git a/lib/uktime/time.c b/lib/uktime/time.c
>>> index 307d5008b..de4204697 100644
>>> --- a/lib/uktime/time.c
>>> +++ b/lib/uktime/time.c
>>> @@ -31,8 +31,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <errno.h>
>>> diff --git a/plat/common/include/uk/plat/common/_time.h b/plat/common/include/uk/plat/common/_time.h
>>> index 06240ff0f..31a2c9a90 100644
>>> --- a/plat/common/include/uk/plat/common/_time.h
>>> +++ b/plat/common/include/uk/plat/common/_time.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __PLAT_CMN_TIME_H__
>>> diff --git a/plat/common/include/uk/plat/common/cpu.h b/plat/common/include/uk/plat/common/cpu.h
>>> index ac2f8fe3a..5506c25b6 100644
>>> --- a/plat/common/include/uk/plat/common/cpu.h
>>> +++ b/plat/common/include/uk/plat/common/cpu.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __PLAT_CMN_CPU_H__
>>> diff --git a/plat/common/include/uk/plat/common/memory.h b/plat/common/include/uk/plat/common/memory.h
>>> index f627348a9..1d05ada1d 100644
>>> --- a/plat/common/include/uk/plat/common/memory.h
>>> +++ b/plat/common/include/uk/plat/common/memory.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __PLAT_CMN_MEMORY_H__
>>> diff --git a/plat/common/include/uk/plat/common/trace.h b/plat/common/include/uk/plat/common/trace.h
>>> index bc3b6de87..2727bf5ae 100644
>>> --- a/plat/common/include/uk/plat/common/trace.h
>>> +++ b/plat/common/include/uk/plat/common/trace.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   #ifndef __PLAT_CMN_TRACE_H__
>>>   #define __PLAT_CMN_TRACE_H__
>>> diff --git a/plat/common/include/x86/cpu_defs.h b/plat/common/include/x86/cpu_defs.h
>>> index 1cf5367db..161b72f38 100644
>>> --- a/plat/common/include/x86/cpu_defs.h
>>> +++ b/plat/common/include/x86/cpu_defs.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   #ifndef __PLAT_CMN_X86_CPU_DEFS_H__
>>>   #define __PLAT_CMN_X86_CPU_DEFS_H__
>>> diff --git a/plat/common/include/x86/desc.h b/plat/common/include/x86/desc.h
>>> index 10cabd52f..9ef26f87a 100644
>>> --- a/plat/common/include/x86/desc.h
>>> +++ b/plat/common/include/x86/desc.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   /*
>>>    * Adapted from Mini-OS: include/x86/desc.h
>>> diff --git a/plat/common/include/x86/traps.h b/plat/common/include/x86/traps.h
>>> index da90f2ea0..9fd9a4920 100644
>>> --- a/plat/common/include/x86/traps.h
>>> +++ b/plat/common/include/x86/traps.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   /* Ported from Mini-OS */
>>>   diff --git a/plat/common/lcpu.c b/plat/common/lcpu.c
>>> index fe08a393c..4c31231e6 100644
>>> --- a/plat/common/lcpu.c
>>> +++ b/plat/common/lcpu.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <uk/plat/lcpu.h>
>>> diff --git a/plat/common/memory.c b/plat/common/memory.c
>>> index c46a4b0ef..ddcb7084d 100644
>>> --- a/plat/common/memory.c
>>> +++ b/plat/common/memory.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <uk/plat/memory.h>
>>> diff --git a/plat/common/x86/cpu_native.c b/plat/common/x86/cpu_native.c
>>> index e29c2dbcc..b7298a5a5 100644
>>> --- a/plat/common/x86/cpu_native.c
>>> +++ b/plat/common/x86/cpu_native.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <x86/cpu.h>
>>> diff --git a/plat/common/x86/trace.c b/plat/common/x86/trace.c
>>> index d1abd4611..4f2e8b095 100644
>>> --- a/plat/common/x86/trace.c
>>> +++ b/plat/common/x86/trace.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <uk/plat/common/trace.h>
>>> diff --git a/plat/common/x86/traps.c b/plat/common/x86/traps.c
>>> index 961438674..f638db5eb 100644
>>> --- a/plat/common/x86/traps.c
>>> +++ b/plat/common/x86/traps.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   /* Ported from Mini-OS */
>>>   diff --git a/plat/kvm/include/kvm/intctrl.h
>>> b/plat/kvm/include/kvm/intctrl.h
>>> index a6ce3075a..c87fe5d90 100644
>>> --- a/plat/kvm/include/kvm/intctrl.h
>>> +++ b/plat/kvm/include/kvm/intctrl.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     void intctrl_init(void);
>>> diff --git a/plat/kvm/include/kvm/irq.h b/plat/kvm/include/kvm/irq.h
>>> index 750ccd254..19232d285 100644
>>> --- a/plat/kvm/include/kvm/irq.h
>>> +++ b/plat/kvm/include/kvm/irq.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __KVM_IRQ_H_
>>> diff --git a/plat/kvm/include/kvm/tscclock.h b/plat/kvm/include/kvm/tscclock.h
>>> index 27d0e0241..2105ed785 100644
>>> --- a/plat/kvm/include/kvm/tscclock.h
>>> +++ b/plat/kvm/include/kvm/tscclock.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __KVM_TSCCLOCK_H__
>>> diff --git a/plat/kvm/x86/memory.c b/plat/kvm/x86/memory.c
>>> index ed58c1a43..1ca2a715f 100644
>>> --- a/plat/kvm/x86/memory.c
>>> +++ b/plat/kvm/x86/memory.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <uk/plat/memory.h>
>>> diff --git a/plat/linuxu/include/linuxu/signal.h b/plat/linuxu/include/linuxu/signal.h
>>> index 62395df3f..5d1582da5 100644
>>> --- a/plat/linuxu/include/linuxu/signal.h
>>> +++ b/plat/linuxu/include/linuxu/signal.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     /* This file contains definitions for interfacing with the
>>> Linux kernel. To
>>> diff --git a/plat/linuxu/include/linuxu/time.h b/plat/linuxu/include/linuxu/time.h
>>> index 648ad0bbe..d2c5da370 100644
>>> --- a/plat/linuxu/include/linuxu/time.h
>>> +++ b/plat/linuxu/include/linuxu/time.h
>>> @@ -29,8 +29,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   #ifndef __LINUXU_TIME_H__
>>>   #define __LINUXU_TIME_H__
>>> diff --git a/plat/linuxu/irq.c b/plat/linuxu/irq.c
>>> index 961dcf9b6..f1dbd58cb 100644
>>> --- a/plat/linuxu/irq.c
>>> +++ b/plat/linuxu/irq.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   #include <string.h>
>>>   #include <uk/alloc.h>
>>> diff --git a/plat/xen/include/xenbus/client.h b/plat/xen/include/xenbus/client.h
>>> index a9417a929..aa362fef7 100644
>>> --- a/plat/xen/include/xenbus/client.h
>>> +++ b/plat/xen/include/xenbus/client.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   /*
>>>    * Client interface between the device and the Xenbus driver.
>>> diff --git a/plat/xen/include/xenbus/xenbus.h b/plat/xen/include/xenbus/xenbus.h
>>> index 9fc942bcb..138db6c50 100644
>>> --- a/plat/xen/include/xenbus/xenbus.h
>>> +++ b/plat/xen/include/xenbus/xenbus.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __XENBUS_H__
>>> diff --git a/plat/xen/include/xenbus/xs.h b/plat/xen/include/xenbus/xs.h
>>> index e887bc492..f41f53dcb 100644
>>> --- a/plat/xen/include/xenbus/xs.h
>>> +++ b/plat/xen/include/xenbus/xs.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   /* Xenstore API */
>>>   /*
>>> diff --git a/plat/xen/x86/cpu_pv.c b/plat/xen/x86/cpu_pv.c
>>> index 471cc37e4..fa50fb1c4 100644
>>> --- a/plat/xen/x86/cpu_pv.c
>>> +++ b/plat/xen/x86/cpu_pv.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <x86/cpu.h>
>>> diff --git a/plat/xen/xenbus/client.c b/plat/xen/xenbus/client.c
>>> index 504b117e0..20e671ec1 100644
>>> --- a/plat/xen/xenbus/client.c
>>> +++ b/plat/xen/xenbus/client.c
>>> @@ -32,8 +32,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   /*
>>>    * Client interface between the device and the Xenbus driver.
>>> diff --git a/plat/xen/xenbus/xenbus.c b/plat/xen/xenbus/xenbus.c
>>> index a2cd65c6e..2fa23577f 100644
>>> --- a/plat/xen/xenbus/xenbus.c
>>> +++ b/plat/xen/xenbus/xenbus.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #define _GNU_SOURCE
>>> diff --git a/plat/xen/xenbus/xs.c b/plat/xen/xenbus/xs.c
>>> index d4819ea80..4fc10cb54 100644
>>> --- a/plat/xen/xenbus/xs.c
>>> +++ b/plat/xen/xenbus/xs.c
>>> @@ -32,8 +32,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   /*
>>>    * Ported from Mini-OS xenbus.c
>>> diff --git a/plat/xen/xenbus/xs_comms.c b/plat/xen/xenbus/xs_comms.c
>>> index 5c393c1e7..b81d16bd2 100644
>>> --- a/plat/xen/xenbus/xs_comms.c
>>> +++ b/plat/xen/xenbus/xs_comms.c
>>> @@ -32,8 +32,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   /*
>>>    * Communication with Xenstore
>>> diff --git a/plat/xen/xenbus/xs_comms.h b/plat/xen/xenbus/xs_comms.h
>>> index cae609364..4ece31e05 100644
>>> --- a/plat/xen/xenbus/xs_comms.h
>>> +++ b/plat/xen/xenbus/xs_comms.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #ifndef __XS_COMMS_H__
>>> diff --git a/plat/xen/xenbus/xs_watch.c b/plat/xen/xenbus/xs_watch.c
>>> index d77a285e8..b958b5862 100644
>>> --- a/plat/xen/xenbus/xs_watch.c
>>> +++ b/plat/xen/xenbus/xs_watch.c
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   /* Internal API for Xenstore watches */
>>>   diff --git a/plat/xen/xenbus/xs_watch.h
>>> b/plat/xen/xenbus/xs_watch.h
>>> index f9a5bff49..662187b02 100644
>>> --- a/plat/xen/xenbus/xs_watch.h
>>> +++ b/plat/xen/xenbus/xs_watch.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   /* Internal API for Xenstore watches */


From minios-devel-bounces@lists.xenproject.org Sat Mar 13 10:44:10 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 13 Mar 2021 10:44:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.97509.185258 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lL1kg-00088L-Ad; Sat, 13 Mar 2021 10:44:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 97509.185258; Sat, 13 Mar 2021 10:44:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lL1kg-00088E-7i; Sat, 13 Mar 2021 10:44:10 +0000
Received: by outflank-mailman (input) for mailman id 97509;
 Sat, 13 Mar 2021 10:44:09 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=peRY=IL=gmail.com=razvand@srs-us1.protection.inumbo.net>)
 id 1lL1kf-000889-10
 for minios-devel@lists.xen.org; Sat, 13 Mar 2021 10:44:09 +0000
Received: from mail-wm1-x32f.google.com (unknown [2a00:1450:4864:20::32f])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 72ec39fc-59e5-448a-abfc-6d17fb269b11;
 Sat, 13 Mar 2021 10:44:07 +0000 (UTC)
Received: by mail-wm1-x32f.google.com with SMTP id
 j4-20020a05600c4104b029010c62bc1e20so16611596wmi.3
 for <minios-devel@lists.xen.org>; Sat, 13 Mar 2021 02:44:07 -0800 (PST)
Received: from localhost ([141.85.225.205])
 by smtp.gmail.com with ESMTPSA id f16sm11754442wrt.21.2021.03.13.02.44.06
 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256);
 Sat, 13 Mar 2021 02:44:06 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 72ec39fc-59e5-448a-abfc-6d17fb269b11
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
         :user-agent:mime-version;
        bh=a1+6BHgYRR/go8wupUGXo8+BJT13UZNikDw3E5sU2Uk=;
        b=Kk7+iE6S4SolpwgN9DjUv0FW5OIxQImSvLvgLEDas/96eHagMeIWPdhy0MosuCCfYo
         NzFyDBj7PiDVTWgxZVrUXaV1QBNi1JnjtvFUZqJoHQTl3RZk5VrgvxYg8uzQt6Px6Ts6
         ZJ4VOjmf2J3EOAXt55Ts0oVzA1ln4DIDbDHhfSfUcsxBSXvpYpOtwLnzGJEJCpmBrokm
         diGbe6qvYQWp7NTHE5/SHnuI4VBWJu7RMQg2jWW91ADnSD51S2EEoneGB+kuk//DfLM3
         FScq9CB1x2NTtl5WURj/sTjQDIsSy0OXtBOpRA2sGvAF4pLhRw40+iqATfcH9pp4sjlC
         pYIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:sender:from:to:cc:subject:references:date
         :in-reply-to:message-id:user-agent:mime-version;
        bh=a1+6BHgYRR/go8wupUGXo8+BJT13UZNikDw3E5sU2Uk=;
        b=ERuNdnPGr7d33Edmwy4oYQzFXT93zZ/FJviMv73o3YBsfzXbJhsvW5NP0uCTOwmeTj
         YO2YQ/gIVUkD0EtMNA1VlvflvuzFo2238pEiCE9VZD7nJk7egWEAWABKimwBRuvyjudX
         ggyVaUzCsSFKPL6QPoWt4707U25yZWJwL1Q4sa+Fzl19ua/lfRb4YypB38mNMIUUYt5f
         lyJYQXa/bzSBpEjRUUTmW1bL3KtkZE4iGbgbs5iwmtjwa395g8ICwvbwe9+CKFVGhrCn
         H6zogaPYG7MwdxNS8jGm1TaR00SldvchibDmLSXRX/fGisy0JwpFPFPKdLpioOdeoSGY
         iodg==
X-Gm-Message-State: AOAM532hFuKv5Bo01v+7eMgDSZlhYyZGVXOop1WBMLhBqrX7g4ZAOUsB
	xklKEJc60wE70t/aBcJUmNY=
X-Google-Smtp-Source: ABdhPJyT8O9riVqG6HmbTGhT7Lhu38MRMllu+KL7iaipjpk9pP3gphApaZFbQvKUGDrhIdeEXU1VFQ==
X-Received: by 2002:a05:600c:2053:: with SMTP id p19mr17308316wmg.87.1615632247051;
        Sat, 13 Mar 2021 02:44:07 -0800 (PST)
Sender: Razvan Deaconescu <razvand@gmail.com>
From: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Cc: <minios-devel@lists.xen.org>,  Costin Lupu <costin.lupu@cs.pub.ro>,  Sharan Santhanam <sharan.santhanam@neclab.eu>,  Felipe Huici <felipe.huici@neclab.eu>,  <nicolescu.roxana1996@gmail.com>,  <lascu.bogdan96@gmail.com>,  <vlad_andrei.badoiu@upb.ro>,  <cristb@gmail.com>
Subject: Re: [UNIKRAFT PATCH 6/8] Correct license headers introduced by UPB
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
	<20210215111902.3382-7-simon.kuenzer@neclab.eu>
	<868s6vzf95.fsf@drone.cs.pub.ro>
	<15ac9922-98b1-a296-2e0d-2070768239d0@neclab.eu>
Date: Sat, 13 Mar 2021 12:44:06 +0200
In-Reply-To: <15ac9922-98b1-a296-2e0d-2070768239d0@neclab.eu> (Simon Kuenzer's
	message of "Sat, 13 Mar 2021 00:22:20 +0100")
Message-ID: <86eegjcozt.fsf@drone.cs.pub.ro>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain

Yup, I already discussed with Razvan Cojocaru. All is OK.

Razvan

Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
> Hi Razvan,
>
> as discussed offline, I will add a note to your `reviewed-by` tag that
> says that you did it `on behalf of` Razvan Cojocaru who gave the
> agreement to you.
>
> Thanks,
>
> Simon
>
> On 10.03.21 07:36, Razvan Deaconescu wrote:
>> This is OK from UPB's side.
>>
>> Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
>>
>> Razvan
>>
>> Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
>>> This commit removes the additional clause
>>> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
>>> from BSD license headers that got introduced by mistake
>>> by Razvan Cojocaru with the following commit:
>>>   63fac86c7 - lib/uknetdev: Netdev registration
>>>
>>> On the one hand, this additional clause is redundant because
>>> the BSD license already states that it must remain and the
>>> copyright notice must be kept.
>>> On the other hand, the clause freezes the file header
>>> and prohibits future contributors from extending the
>>> copyright notice for their contributions. This additional
>>> clause is not part of the official BSD 3-clause.
>>>
>>> The original author consents to the change with a `Signed-off-by`
>>> or `Reviewed-by` tag to this commit.
>>>
>>> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
>>> ---
>>>   lib/uknetdev/include/uk/netdev.h        | 2 --
>>>   lib/uknetdev/include/uk/netdev_core.h   | 2 --
>>>   lib/uknetdev/include/uk/netdev_driver.h | 2 --
>>>   lib/uknetdev/netdev.c                   | 2 --
>>>   4 files changed, 8 deletions(-)
>>>
>>> diff --git a/lib/uknetdev/include/uk/netdev.h b/lib/uknetdev/include/uk/netdev.h
>>> index 74a04ad73..b3ee666b3 100644
>>> --- a/lib/uknetdev/include/uk/netdev.h
>>> +++ b/lib/uknetdev/include/uk/netdev.h
>>> @@ -30,8 +30,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   /* Derived from DPDK rte_ethdev_core.h - DPDK.org 18.02.2 */
>>>   #ifndef __UK_NETDEV__
>>> diff --git a/lib/uknetdev/include/uk/netdev_core.h b/lib/uknetdev/include/uk/netdev_core.h
>>> index df6ceebfd..e8ebaae8b 100644
>>> --- a/lib/uknetdev/include/uk/netdev_core.h
>>> +++ b/lib/uknetdev/include/uk/netdev_core.h
>>> @@ -30,8 +30,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   /* Derived from DPDK rte_ethdev_core.h - DPDK.org 18.02.2 */
>>>   #ifndef __UK_NETDEV_CORE__
>>> diff --git a/lib/uknetdev/include/uk/netdev_driver.h b/lib/uknetdev/include/uk/netdev_driver.h
>>> index 6033f6201..96408580b 100644
>>> --- a/lib/uknetdev/include/uk/netdev_driver.h
>>> +++ b/lib/uknetdev/include/uk/netdev_driver.h
>>> @@ -28,8 +28,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   #ifndef __UK_NETDEV_DRIVER__
>>>   #define __UK_NETDEV_DRIVER__
>>> diff --git a/lib/uknetdev/netdev.c b/lib/uknetdev/netdev.c
>>> index 87322c7f4..cb02b06a5 100644
>>> --- a/lib/uknetdev/netdev.c
>>> +++ b/lib/uknetdev/netdev.c
>>> @@ -30,8 +30,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>   #define _GNU_SOURCE /* for asprintf() */
>>>   #include <stdio.h>


From minios-devel-bounces@lists.xenproject.org Sat Mar 13 10:44:24 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 13 Mar 2021 10:44:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.97510.185263 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lL1ku-00089Z-Cv; Sat, 13 Mar 2021 10:44:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 97510.185263; Sat, 13 Mar 2021 10:44:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lL1ku-00089S-9k; Sat, 13 Mar 2021 10:44:24 +0000
Received: by outflank-mailman (input) for mailman id 97510;
 Sat, 13 Mar 2021 10:44:23 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=peRY=IL=gmail.com=razvand@srs-us1.protection.inumbo.net>)
 id 1lL1kt-00089M-7w
 for minios-devel@lists.xen.org; Sat, 13 Mar 2021 10:44:23 +0000
Received: from mail-wr1-x434.google.com (unknown [2a00:1450:4864:20::434])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 52849004-dcf2-4a57-b63e-379d0aaf9335;
 Sat, 13 Mar 2021 10:44:21 +0000 (UTC)
Received: by mail-wr1-x434.google.com with SMTP id j2so6138141wrx.9
 for <minios-devel@lists.xen.org>; Sat, 13 Mar 2021 02:44:21 -0800 (PST)
Received: from localhost ([141.85.225.205])
 by smtp.gmail.com with ESMTPSA id f126sm6171579wmf.17.2021.03.13.02.44.20
 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256);
 Sat, 13 Mar 2021 02:44:20 -0800 (PST)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 52849004-dcf2-4a57-b63e-379d0aaf9335
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
         :user-agent:mime-version;
        bh=x54P1/8MEJwJyU5E5NPypPk8aI49kWMoUuJe1PdfNOI=;
        b=stoOpMLcY1UQmM9DzC2IHSlymY5JLhz/DSRD8EJzK3Eavmyq/ihY3E6FymMCA0u2/T
         yIO0lfp8QijPu0Zm+j1uhfqmhzTI7CVWcSvcwNm+MuAtbkWpMsNbode9D/P53HwizsS0
         WaX83clqBWtrlg9Cbk/qSA+wr5Rfn7qjdey6iHGdp2PJiL1MAZnMThRCIPtxjlB81iVo
         NZzSPnY69mmy/uxiqEWlMyzrEqRc/Nf6uTfyrGdNtJGJ19Tp2E0tRklQRGEkiPBrXnYE
         5+9Y+/OOoCBz/kDcG6/hZnagi/AD3FPl9yaX5kZEpvpWYF/6hSpYedImpV9JCl1vm2gj
         l72g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:sender:from:to:cc:subject:references:date
         :in-reply-to:message-id:user-agent:mime-version;
        bh=x54P1/8MEJwJyU5E5NPypPk8aI49kWMoUuJe1PdfNOI=;
        b=LdTx7K/7AKrBPbj5Ni/SUAYXzGS5B4pRxpF+x0wPUVViSIQmvszaTsnxKW4C8NTBsx
         1fu8I5HRalNLlrfN7DMV7WvKvxiPDlAC99bU3S7daX4I6C+qlDj/PEqauLvC5mBn8GjN
         H4SPSijw/0O6bjUzpTYgjro+pJy3Cdmvec78xG8zUQcxjbi4LywN1YW7Vo6p6NGIEqAn
         VNAw78lEtcydbFS0oiToZ/y3EbWbpP/zeAy3u1jBxenGM+XfUHvQ2vZ7Cg6mc282ZXiC
         bq/opHzyNn0Vmql6WjtoRhHyppNRK4WJUZvxkllbcaeoA2d6yDPO0oPwIbQI3qi+x4B1
         7oWg==
X-Gm-Message-State: AOAM532MfLaRSJvNADRMrja4I4Pls+3R6z/+RLGSdDyHgwbbynK1BqWm
	7Wo51Ws6LlCW/3rYhDe9dFC5muixL6c=
X-Google-Smtp-Source: ABdhPJxQ0EpMbS+/gCjJUjLV/HkNq9Rf1IXAFk4sJ3BkT0ukHrTZjP7XyvMGxwWRdPqIVNgmEtmukA==
X-Received: by 2002:a5d:6048:: with SMTP id j8mr19043863wrt.115.1615632260641;
        Sat, 13 Mar 2021 02:44:20 -0800 (PST)
Sender: Razvan Deaconescu <razvand@gmail.com>
From: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Cc: <minios-devel@lists.xen.org>,  Costin Lupu <costin.lupu@cs.pub.ro>,  Sharan Santhanam <sharan.santhanam@neclab.eu>,  Felipe Huici <felipe.huici@neclab.eu>,  <nicolescu.roxana1996@gmail.com>,  <lascu.bogdan96@gmail.com>,  <vlad_andrei.badoiu@upb.ro>,  <cristb@gmail.com>
Subject: Re: [UNIKRAFT PATCH 7/8] Correct license headers introduced by UPB
References: <20210215111902.3382-1-simon.kuenzer@neclab.eu>
	<20210215111902.3382-8-simon.kuenzer@neclab.eu>
	<86sg52wz4k.fsf@drone.cs.pub.ro>
	<0ac18b59-4c0c-d26f-95da-a360727f5ee2@neclab.eu>
Date: Sat, 13 Mar 2021 12:44:19 +0200
In-Reply-To: <0ac18b59-4c0c-d26f-95da-a360727f5ee2@neclab.eu> (Simon Kuenzer's
	message of "Sat, 13 Mar 2021 00:22:15 +0100")
Message-ID: <86a6r7cozg.fsf@drone.cs.pub.ro>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain

Yup, I already discussed with Bogdan Lascu. All is OK.

Razvan

Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
> Hi Razvan,
>
> as discussed offline, I will add a note to your `reviewed-by` tag that
> says that you did it `on behalf of` Bogdan Lascu who gave the
> agreement to you.
>
> Thanks,
>
> Simon
>
> On 10.03.21 21:08, Razvan Deaconescu wrote:
>> This is OK from UPB's side.
>>
>> Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
>>
>> Razvan
>>
>> Simon Kuenzer <simon.kuenzer@neclab.eu> writes:
>>> This commit removes the additional clause
>>> "THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
>>> from BSD license headers that got introduced by mistake
>>> by Bogdan Lascu with the following commit:
>>>   32ad87545 - lib/vfscore: Add anonymous pipe
>>>
>>> On the one hand, this additional clause is redundant because
>>> the BSD license already states that it must remain and the
>>> copyright notice must be kept.
>>> On the other hand, the clause freezes the file header
>>> and prohibits future contributors from extending the
>>> copyright notice for their contributions. This additional
>>> clause is not part of the official BSD 3-clause.
>>>
>>> The original author consents to the change with a `Signed-off-by`
>>> or `Reviewed-by` tag to this commit.
>>>
>>> Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
>>> ---
>>>   lib/vfscore/pipe.c | 2 --
>>>   1 file changed, 2 deletions(-)
>>>
>>> diff --git a/lib/vfscore/pipe.c b/lib/vfscore/pipe.c
>>> index 8d382965e..09597dbcb 100644
>>> --- a/lib/vfscore/pipe.c
>>> +++ b/lib/vfscore/pipe.c
>>> @@ -29,8 +29,6 @@
>>>    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>>    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>>>    * POSSIBILITY OF SUCH DAMAGE.
>>> - *
>>> - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>>    */
>>>     #include <uk/config.h>


From minios-devel-bounces@lists.xenproject.org Sun Mar 14 18:51:46 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 14 Mar 2021 18:51:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.97804.185554 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lLVq3-0006FH-N8; Sun, 14 Mar 2021 18:51:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 97804.185554; Sun, 14 Mar 2021 18:51:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lLVq3-0006FA-K8; Sun, 14 Mar 2021 18:51:43 +0000
Received: by outflank-mailman (input) for mailman id 97804;
 Sun, 14 Mar 2021 18:51:43 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sv8W=IM=gmail.com=virtanrazvan@srs-us1.protection.inumbo.net>)
 id 1lLVq2-0006F5-Rf
 for minios-devel@lists.xen.org; Sun, 14 Mar 2021 18:51:42 +0000
Received: from mail-ej1-x631.google.com (unknown [2a00:1450:4864:20::631])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id bf7cb20f-100b-4291-b0a2-877f7a96cbed;
 Sun, 14 Mar 2021 18:51:41 +0000 (UTC)
Received: by mail-ej1-x631.google.com with SMTP id ci14so62486838ejc.7
 for <minios-devel@lists.xen.org>; Sun, 14 Mar 2021 11:51:41 -0700 (PDT)
Received: from razvan-Lenovo-Legion-Y530-15ICH.local
 ([2a02:2f08:c108:a200:4114:7189:7918:3b6d])
 by smtp.gmail.com with ESMTPSA id x21sm6506101eds.53.2021.03.14.11.51.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 14 Mar 2021 11:51:40 -0700 (PDT)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf7cb20f-100b-4291-b0a2-877f7a96cbed
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=lmm87Jnrfd7VfT6EM8wWL02LoMFIUcV3P735kitwl2U=;
        b=IjjI972fJ5axUhIreoBZZyEmOr6UZ1uGRSetIZRX0sgyzgs2rmnSpQIduvEsMU13o9
         93Tcv/4530sTZ6BfY0zmqlAo4cIxsFOUxj/8EFxGg+kylqHjldOtY6Uqd1r2h+5lRUMJ
         Y5cTAdyv6U6WiyrEO+VjuqZGUTWCI7gpQfI4fbW5Go9MAsrXZtNerEvUJ6wJoryj5NSy
         FkdfrDbJULGC/pMIhaomLrHgjSqVdDjl+k0oNjbSCepJ9+ck843HdJf2OEjbbE+ADLKP
         iOHGY54e9NhwJSqsUGwQcmABqWkFPXyueGKMmJe19c3FI//DPGziIKZMpjyqR9+IZhBZ
         /8pA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=lmm87Jnrfd7VfT6EM8wWL02LoMFIUcV3P735kitwl2U=;
        b=TkaEFkLAdC3UefE9hA6aJOoJKlenwaOGk6mZAWnaa/K6t842QZOgUZQEMfQmCecBoS
         GK39EiOBnvoL+YkAYqCiph4B6ZTCf7xe2M9ws9GyR/IF3SpL5warEUe+t75J4M8sDXlG
         rhL69LfzwBtkaM/HY6RK9vy1zrRwEU4k7Sd3QUo3bCi0WaT2gT1Z2xlfsB7tx/V2k0zX
         Iy3VkyE+xffZKBlSr4ENZZNjhxPF1oiDuBr2DRomD9o1l2WnoUeT23UI0c0R7FtqDZgQ
         O25evQHlA7Q1bvJygXUt0arnsGDC2sjhi2/mdKJMNIRMji1ortEXk3GXgL32sw1Qnhsx
         tpMQ==
X-Gm-Message-State: AOAM532s7Z8P6NA5WN2hHGOBJXfzHxspLKfU9Z8swPcNH42wroIF64iB
	Eveh9Knz7kGh6GZ+sLBAWtW4KHZo3bjysw==
X-Google-Smtp-Source: ABdhPJzP7g64c/CCaxdkj4ovIIOlXQ9wjBI3iZPsj0C/3+1inQqjn+ipcGKJEKhfHknggzuARueOZg==
X-Received: by 2002:a17:906:3751:: with SMTP id e17mr19977843ejc.553.1615747900637;
        Sun, 14 Mar 2021 11:51:40 -0700 (PDT)
From: Razvan Virtan <virtanrazvan@gmail.com>
X-Google-Original-From: Razvan Virtan <razvanvirtan@gmail.com>
To: justin.he@arm.com
Cc: minios-devel@lists.xen.org
Subject: Re: [RFCv4,17/35] plat/pci_bus: Split specific code into different files
Date: Sun, 14 Mar 2021 20:51:38 +0200
Message-Id: <20210314185138.12344-1-razvanvirtan@gmail.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20201223073857.118076-18-justin.he@arm.com>
References: <20201223073857.118076-18-justin.he@arm.com>

Hi, Justin.

After applying all the patches in this series, I've tried to run httpreply and
everything worked fine with the arm64 build. However, when I've tried to build and
run the same app on x86_64, I've got this error:
`[    0.100170] ERR:  [libkvmpci] <pci_bus_x86.c @   88> PCI 00:02.00: Failed to initialize: Out of memory!`

Here is a description of the problem I've found. 
The pci_bus_handler (ph) used in the x86 specific code is declared in "pc_bus.h" as a static variable.
This header file is included in "pci_bus.c", where the functions that initialize
the fields of ph are defined, and also in "pci_bus_x86.c", where functions that
use ph during probing are defined.
Since ph is declared as static in "pci_bus.h",  all of it's fields are seen as empty
in "pci_bus_x86.c". When pci_driver_add_device() tries to use one of these fields
during probing, it fails and generates that OOM error.
The problem is not the memory, but the fact that uk_calloc() gets a null value as it's alloc function.

Since the only field of ph used in pci_bus_x86.c code was "ph.a"(uk_alloc), I've solved the issue
by sending it as a parameter to all of the functions that use it ("ph.a" was already
provided by "pci_probe()" to "arch_pci_probe()", the function that connects
"pci_bus.c" to architecture-specific sources).

Here is the diff between the original "pci_bus_x86.c" source in the patch and
the fixed one.

--- pci_bus_x86_original.c	2021-03-14 20:34:34.610336281 +0200
+++ pci_bus_x86.c	2021-03-14 20:36:45.523341015 +0200
@@ -68,7 +68,8 @@
 
 static inline int pci_driver_add_device(struct pci_driver *drv,
 					struct pci_address *addr,
-					struct pci_device_id *devid)
+					struct pci_device_id *devid,
+					struct uk_alloc *pha)
 {
 	struct pci_device *dev;
 	uint32_t config_addr;
@@ -79,7 +80,7 @@
 	UK_ASSERT(addr != NULL);
 	UK_ASSERT(devid != NULL);
 
-	dev = (struct pci_device *) uk_calloc(ph.a, 1, sizeof(*dev));
+	dev = (struct pci_device *) uk_calloc(pha, 1, sizeof(*dev));
 	if (!dev) {
 		uk_pr_err("PCI %02x:%02x.%02x: Failed to initialize: Out of memory!\n",
 			  (int) addr->bus,
@@ -109,12 +110,12 @@
 	return 0;
 }
 
-static void probe_bus(uint32_t);
+static void probe_bus(uint32_t, struct uk_alloc *pha);
 
 /* Probe a function. Return 1 if the function does not exist in the device, 0
  * otherwise.
  */
-static int probe_function(uint32_t bus, uint32_t device, uint32_t function)
+static int probe_function(uint32_t bus, uint32_t device, uint32_t function, struct uk_alloc *pha)
 {
 	uint32_t config_addr, config_data, subclass, secondary_bus;
 	struct pci_address addr;
@@ -169,14 +170,14 @@
 		uk_pr_info("<no driver>\n");
 	} else {
 		uk_pr_info("driver %p\n", drv);
-		pci_driver_add_device(drv, &addr, &devid);
+		pci_driver_add_device(drv, &addr, &devid, pha);
 	}
 
 	/* 0x06 = Bridge Device, 0x04 = PCI-to-PCI bridge */
 	if ((devid.class_id == 0x06) && (subclass == 0x04) ) {
 		PCI_CONF_READ(uint32_t, &secondary_bus,
 				config_addr, SECONDARY_BUS);
-		probe_bus(secondary_bus);
+		probe_bus(secondary_bus, pha);
 	}
 
 	return 0;
@@ -185,12 +186,12 @@
 /* Recursive PCI enumeration: this function is called recursively by
  * probe_function upon discovering PCI-to-PCI bridges.
  */
-static void probe_bus(uint32_t bus)
+static void probe_bus(uint32_t bus, struct uk_alloc *pha)
 {
 	uint32_t config_addr, device, header_type, function = 0;
 
 	for (device = 0; device < PCI_MAX_DEVICES; ++device) {
-		if (!probe_function(bus, device, function))
+		if (!probe_function(bus, device, function, pha))
 			continue;
 
 		config_addr = (PCI_ENABLE_BIT);
@@ -203,11 +204,11 @@
 
 		/* Check remaining functions */
 		for (function = 1; function < PCI_MAX_FUNCTIONS; function++)
-			probe_function(bus, device, function);
+			probe_function(bus, device, function, pha);
 	}
 }
 
-int arch_pci_probe(void)
+int arch_pci_probe(struct uk_alloc *pha)
 {
 	uint32_t config_addr, function, header_type, vendor_id;
 
@@ -219,7 +220,7 @@
 
 	if ((header_type & PCI_HEADER_TYPE_MSB_MASK) == 0) {
 		/* Single PCI host controller */
-		probe_bus(0);
+		probe_bus(0, pha);
 	} else {
 		/* Multiple PCI host controllers */
 		for (function = 0; function < PCI_MAX_FUNCTIONS; function++) {
@@ -232,7 +233,7 @@
 			if (vendor_id != PCI_INVALID_ID)
 				break;
 
-			probe_bus(function);
+			probe_bus(function, pha);
 		}
 	}

Reviewed-by: Razvan Virtan <virtanrazvan@gmail.com>


From minios-devel-bounces@lists.xenproject.org Mon Mar 15 07:23:32 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 15 Mar 2021 07:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.97852.185638 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lLhZZ-0002AP-IU; Mon, 15 Mar 2021 07:23:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 97852.185638; Mon, 15 Mar 2021 07:23:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lLhZZ-0002AI-FY; Mon, 15 Mar 2021 07:23:29 +0000
Received: by outflank-mailman (input) for mailman id 97852;
 Mon, 15 Mar 2021 07:23:28 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jdtE=IN=arm.com=justin.he@srs-us1.protection.inumbo.net>)
 id 1lLhZY-0002AD-Ht
 for minios-devel@lists.xen.org; Mon, 15 Mar 2021 07:23:28 +0000
Received: from EUR01-HE1-obe.outbound.protection.outlook.com (unknown
 [40.107.13.83]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id d620b59b-3338-4df6-a7cc-c55c1794588a;
 Mon, 15 Mar 2021 07:23:25 +0000 (UTC)
Received: from MR1P264CA0036.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:2f::23)
 by PA4PR08MB6112.eurprd08.prod.outlook.com (2603:10a6:102:f1::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32; Mon, 15 Mar
 2021 07:23:20 +0000
Received: from VE1EUR03FT011.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:501:2f:cafe::e5) by MR1P264CA0036.outlook.office365.com
 (2603:10a6:501:2f::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.31 via Frontend
 Transport; Mon, 15 Mar 2021 07:23:20 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT011.mail.protection.outlook.com (10.152.18.134) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.3933.30 via Frontend Transport; Mon, 15 Mar 2021 07:23:20 +0000
Received: ("Tessian outbound 67e186bef91c:v71");
 Mon, 15 Mar 2021 07:23:19 +0000
Received: from 62b3b7141b1a.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 86D9FC3A-3AD9-48F5-B291-7ADD4DD61876.1; 
 Mon, 15 Mar 2021 07:23:14 +0000
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 62b3b7141b1a.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 15 Mar 2021 07:23:14 +0000
Received: from AM6PR08MB4376.eurprd08.prod.outlook.com (2603:10a6:20b:bb::21)
 by AM5PR0801MB1666.eurprd08.prod.outlook.com (2603:10a6:203:3a::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32; Mon, 15 Mar
 2021 07:23:13 +0000
Received: from AM6PR08MB4376.eurprd08.prod.outlook.com
 ([fe80::5192:4597:8d30:5800]) by AM6PR08MB4376.eurprd08.prod.outlook.com
 ([fe80::5192:4597:8d30:5800%4]) with mapi id 15.20.3933.032; Mon, 15 Mar 2021
 07:23:13 +0000
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d620b59b-3338-4df6-a7cc-c55c1794588a
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QHC8U9xDJ8Vht9mVmXZuyZV7tytyW8auxJsk3OJqFUY=;
 b=h4nLf71GSB5E74gJHGzhY4B73fT5ByoUlT3vl/Do+i366yhdK7al5I9+TKTV8TsKaWFZpAc2APVBG//E7GYLgVK9GY0JtVSIRqgnbKrz+i+7nDGzpWQCpiV7bVeXJggWDKFcfmsjFTvjCcU+kIWvSgLNTMbeAG14fwkIA93/514=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; lists.xen.org; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;lists.xen.org; dmarc=pass action=none
 header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QhI2CxdtD8AHaa+CQsxO1BDz6ahUrdHcpenUerO/3SZGEcuIW9pRp0tpNKCUZ1u+RH6Ay6+SKmFInt5GvpgD/fW5aedQk7KR0pQqQ37jN89FxlROOBqRmUGG5eB+7d8EglvpKJWLJQp8HjomBWkPESY0HaOM2Z8uV7L1EHIsIrpKbez9GG1amYjz/+kURLmTEerWcK6oReZ4I5xXJhyY9XZM3E1o3qkRxuAqyKZYzyspCUhS+ZW1+ynIr2Zy/DsjsJ14wCHQgEDR3d1KQT502WxKKWdDm2XFcHHuH7n+Io4QmYD7dIOpykd8R3sNeK6TDMlOWxMUFEqyyHZQGYrtIQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QHC8U9xDJ8Vht9mVmXZuyZV7tytyW8auxJsk3OJqFUY=;
 b=c9za7Zy8asB9Bn+o6VLuxNkdHOHc4TeMedj1U8f5rLvP/cTnT8HtUxg4zLDN3gxs1+BxxaJjc26ltod8a/Gczhmvy+XfFMZkto82dcrIWaxRP+uU67WNICbv4XztAQRPlSVMyedVLNQI8KlJK0MGRoXLU0vcPPEGawU+oGUJktP9qfBpmuNnUMy6qSIyJ/kSNeXUVSKGRkRD2t+GIbNYWqKbp9x7y2ul9OmtJQKNCcSwBH4cw8suicMrfZy5K0EuCyZF0hCDnm/i25b4NiQxCTzFuRLsY9Hu3UmAAlTNxsssMvpSSo3tS/dxlBUgI+t9/FeyiYj/Gz4iNCtG/yzZ3A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QHC8U9xDJ8Vht9mVmXZuyZV7tytyW8auxJsk3OJqFUY=;
 b=h4nLf71GSB5E74gJHGzhY4B73fT5ByoUlT3vl/Do+i366yhdK7al5I9+TKTV8TsKaWFZpAc2APVBG//E7GYLgVK9GY0JtVSIRqgnbKrz+i+7nDGzpWQCpiV7bVeXJggWDKFcfmsjFTvjCcU+kIWvSgLNTMbeAG14fwkIA93/514=
From: Justin He <Justin.He@arm.com>
To: Razvan Virtan <virtanrazvan@gmail.com>
CC: "minios-devel@lists.xen.org" <minios-devel@lists.xen.org>
Subject: RE: [RFCv4,17/35] plat/pci_bus: Split specific code into different
 files
Thread-Topic: [RFCv4,17/35] plat/pci_bus: Split specific code into different
 files
Thread-Index: AQHXGQMdTsSHdQfE2UeUQScg+McqtaqEpVLA
Date: Mon, 15 Mar 2021 07:23:13 +0000
Message-ID:
 <AM6PR08MB43768F418363403229C8DCC1F76C9@AM6PR08MB4376.eurprd08.prod.outlook.com>
References: <20201223073857.118076-18-justin.he@arm.com>
 <20210314185138.12344-1-razvanvirtan@gmail.com>
In-Reply-To: <20210314185138.12344-1-razvanvirtan@gmail.com>
Accept-Language: en-US, zh-CN
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ts-tracking-id: 690E4427A8D8534AB011EDAFC3D0FAE4.0
x-checkrecipientchecked: true
Authentication-Results-Original: gmail.com; dkim=none (message not signed)
 header.d=none;gmail.com; dmarc=none action=none header.from=arm.com;
x-originating-ip: [203.126.0.111]
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-HT: Tenant
X-MS-Office365-Filtering-Correlation-Id: 3b3037c8-dd8f-467c-3cfe-08d8e78335c0
x-ms-traffictypediagnostic: AM5PR0801MB1666:|PA4PR08MB6112:
X-Microsoft-Antispam-PRVS:
	<PA4PR08MB6112821D3A4B65DDC78DEA4CF76C9@PA4PR08MB6112.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:7691;OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 3hoYcKvBZJOADeqLjhRYTAV9R1DARlXjw1sRXdpS7W8HpEjYmqFkQ4YeDiQQ5Wfh9juM9KYTrXdNPOWO3cEnftKWzNxc3d5enp6RXeFW/l5LzahgU+Yppqd400/AE1Ez6cdERWUfeXKexyk1Ms5VUqtTTlzWZj2eGv0qx8G+y5GHX8OWFwy+oQmR5zYGcKR3Vd8pbOxZffwTF4QPT7N4PYlGx34JeUHafE1uZICx1NUeiQMiDTjUp5PTfZ+FC4Q68bf4MM4sQCmtQArPU20lgCVLcsxgRYW1XingsRLYYlAFNIdRkgLs8ZgKobFy6m2XtJCflgdUtsI6z1KfnIERoqFUxb9E2yUpFap8EbgtwDjmqRR9rncBMIhfYHuJ0M8RalcWdllfxC2j/HEuEM7hz329qj9LFnhFYNoi51iR9Fg+ey0c4d733xe06A5fNxXI5Uk1gmn1wQ1XpdHeKvVa6qF/oN+scjLfXdEL+lzBfgI1JmEApq0I1KuWII/aTJJyh8Q1TyvcI2r78HIn9ddN8+PrB6zXjHJ7GTaU71aMrKiSw5QDedAju3MkXqTxoqSS
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB4376.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(346002)(366004)(396003)(136003)(376002)(9686003)(55016002)(2906002)(33656002)(66946007)(4326008)(26005)(186003)(5660300002)(76116006)(86362001)(83380400001)(64756008)(66446008)(52536014)(7696005)(66476007)(53546011)(6916009)(316002)(6506007)(8936002)(66556008)(71200400001)(478600001)(8676002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata:
 =?us-ascii?Q?faYm1w+uYknMZJX2zoOVb65rTZFtYZk5CG34elYhc027B8g5DkQYCXAXOTN9?=
 =?us-ascii?Q?/fhtBM2aZYQvn8mqSXwmFJ7RHeJa2i9FLNz1HkZ3RTHQLWXeip3ql5BhDuLV?=
 =?us-ascii?Q?9HgmOUeWPmyr4vHZpV4YovDMP4kWr6sXVoJRq+xH16vhTB7fyKWvCTmaR9yh?=
 =?us-ascii?Q?r0wrFlpVRlN26sOev2XAVwMZON1pJm3WpDyz1jhoOGIexwd1Gx4KIzbwKxh+?=
 =?us-ascii?Q?L0v0AIfF0PwQw+YH9f0zAlIMPSiYh8/qqPJmAhVDkeS6W51k9SwKbfRpV09i?=
 =?us-ascii?Q?/1KGB1NloJScHTLv+IwQuVyJfExAB3vW2ADmi0CAbngAZsQSGVFdjKmq1mhL?=
 =?us-ascii?Q?WwDJaXqBHNqqiBKtCHj7W/LTH4G6qiVI62RM5AHUujKgxuHCTzIFhvHl56sd?=
 =?us-ascii?Q?w0PVxXO0CfFaOkgvWkIJixEkSEzfYzo1Mpvyt9yyoouR7p8MMCB4kpvJF/ws?=
 =?us-ascii?Q?pQFFx5JPSliqst3ji1Eyo3RDsMoa7/VmvzVb5iQHl9n4YQDUPAMxg1RFaDbw?=
 =?us-ascii?Q?iNVgxqJBU9+tnDSHMHmgoaJsAYwWGFsRnLKaAyYWAnTSpk+cxP43TT7I86IA?=
 =?us-ascii?Q?+5ofs5sYp7TIo0z6vXaGVKbAWW4xkhaN8yXrS3kBB5P/87H/teWq1l64P+9n?=
 =?us-ascii?Q?KwyjbTnHCJmtdxUf4VUt/imtYAyv8A5EFMs0ma5B/LL/p4275LtSJpk9goBN?=
 =?us-ascii?Q?G0u0vIX5IKNtO/MEd6/vlcBqC/JUArZMQxu+h6CECbd7mPfhZhBqqaxwcU8B?=
 =?us-ascii?Q?tbV34Z8p6q8C20brAU+4gfqpU+pNu346WARZndTQBfWgFy2k2HvL3A9WHRwG?=
 =?us-ascii?Q?bn2bxudBN7Zc0DFmIVQgO2pKe8ePk7X6wFyL1hhpI83ZkEgL6TAMUviOGBh+?=
 =?us-ascii?Q?l/vTSOagXYf7PqoprRJnn0uzotapzBkqwYIMm9I4xxDP8gPqUKWcEgnTccm5?=
 =?us-ascii?Q?BhWyqoG7XQPW+ZUKGA7Hcc8SZBhTLzn4WrBMWFmSDf2Qbg4RDmbE0s+TFwwk?=
 =?us-ascii?Q?0E8mSnHQkTyREDbGNQY6i6+GZdMz0QAbAmP7eNu3caVcEwFu1SX2vXHCrKda?=
 =?us-ascii?Q?Y6hBxdKXFGFyxi9vB72jSkyQEwtu0zMPd+8JFV+emDberZcf1NgHr0FTYvN7?=
 =?us-ascii?Q?v4FrTrVBg5yQfgFyN/hiC3mgIfdmxwrVJuiBisCJo47z1K1tiZV771i1bK7g?=
 =?us-ascii?Q?/fMIXET+3qGKb/Sa3Z8PBxj4db7w/CN+t3/1rMTpCkKnIgw9UvBokL/waYCT?=
 =?us-ascii?Q?uD5OpeLuxAlmTTwoP/GnMaCjaMcijmv3YOFQ1N8oEd4CY9hJBaSt3kZb6F4t?=
 =?us-ascii?Q?hagCz/+u3MWdCyxd9fxBVZ9W?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1666
Original-Authentication-Results: gmail.com; dkim=none (message not signed)
 header.d=none;gmail.com; dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT011.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	1cb5ea6f-3cbd-4cac-f498-08d8e78331b5
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	OyV2Soc6eDWTrca5dJiS+UDOZvkviT8E3xz9+P36Yw8CjXLwJOhXoC59qq3Vr63EPp+FxpFqlGD/4sLrWNRGJiPpd5VaqaalfjeApOslrviGirAehGyVefOWj6SdamH3WnEqeWz4rGlBj7IX1SmVH51Oc6t8tpThqbKA8a28BfBsCZbk9Jzdfrc4OtAXzruMCxC/QEF4qPBHfHD7RXEPloaUONGfW2xvo/XZ+cm9BBMXvIWmkedsqldRzhZ2GWEuN70s3wcJ9587isStm2nwR/g80e4+Gpqei+K5uk7VFwDTmlUo3bsHI1FzTN8irQW/mjfSmkwA/H1CrqschjXyDiQ6xw087snv1DkfM1Jh7G5dZhY3Gtd5aZgExcRNnbOM2NwCOnEPc6Cl2p7tPV0whVYkDZTC94ID1JxKgUmrcxjTJ4BGVjS7nyH1YtHq9y1TGbv34iNeYE4CTV15Ya/UR+/uLNYrfgBgeOfBu5RmS89xnSZy3SZE6/cYzfm1545gK8TLriCk8gHR8u0Ig1xTtocnU0bSWe4/OIGgLzFWAWHIXh75cFzgPEejSpF5zMXUm0hhr6cc3S6j2hhec03AaUdiaMyt7H37GZ3UyFNydrZCuKWcvuVm7ZtiTfVkEo3OY+hOv08w7DYsr9vzQY8SZHJPdbPXsJsP3MHzAheY7aw=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(396003)(136003)(346002)(39860400002)(376002)(46966006)(36840700001)(82310400003)(33656002)(8936002)(81166007)(336012)(83380400001)(356005)(47076005)(7696005)(53546011)(70586007)(6506007)(26005)(4326008)(316002)(9686003)(8676002)(36860700001)(70206006)(186003)(82740400003)(6862004)(86362001)(55016002)(478600001)(5660300002)(52536014)(2906002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Mar 2021 07:23:20.0118
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3b3037c8-dd8f-467c-3cfe-08d8e78335c0
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT011.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6112

Hi Razyan

> -----Original Message-----
> From: Razvan Virtan <virtanrazvan@gmail.com>
> Sent: Monday, March 15, 2021 2:52 AM
> To: Justin He <Justin.He@arm.com>
> Cc: minios-devel@lists.xen.org
> Subject: Re: [RFCv4,17/35] plat/pci_bus: Split specific code into differe=
nt
> files
>
> Hi, Justin.
>
> After applying all the patches in this series, I've tried to run httprepl=
y
> and
> everything worked fine with the arm64 build. However, when I've tried to
> build and
> run the same app on x86_64, I've got this error:
> `[    0.100170] ERR:  [libkvmpci] <pci_bus_x86.c @   88> PCI 00:02.00:
> Failed to initialize: Out of memory!`
>
> Here is a description of the problem I've found.
> The pci_bus_handler (ph) used in the x86 specific code is declared in
> "pc_bus.h" as a static variable.
> This header file is included in "pci_bus.c", where the functions that
> initialize
> the fields of ph are defined, and also in "pci_bus_x86.c", where function=
s
> that
> use ph during probing are defined.
> Since ph is declared as static in "pci_bus.h",  all of it's fields are se=
en
> as empty
> in "pci_bus_x86.c". When pci_driver_add_device() tries to use one of thes=
e
> fields
> during probing, it fails and generates that OOM error.
> The problem is not the memory, but the fact that uk_calloc() gets a null
> value as it's alloc function.
>
> Since the only field of ph used in pci_bus_x86.c code was "ph.a"(uk_alloc=
),
> I've solved the issue
> by sending it as a parameter to all of the functions that use it ("ph.a"
> was already
> provided by "pci_probe()" to "arch_pci_probe()", the function that connec=
ts
> "pci_bus.c" to architecture-specific sources).
>
> Here is the diff between the original "pci_bus_x86.c" source in the patch
> and
> the fixed one.

Thanks a lot for the debugging.
I will send out the new version(v5) to contain your fix. Maybe together wit=
h
your comments for other patches.

--
Cheers,
Justin (Jia He)
>
> --- pci_bus_x86_original.c2021-03-14 20:34:34.610336281 +0200
> +++ pci_bus_x86.c2021-03-14 20:36:45.523341015 +0200
> @@ -68,7 +68,8 @@
>
>  static inline int pci_driver_add_device(struct pci_driver *drv,
>  struct pci_address *addr,
> -struct pci_device_id *devid)
> +struct pci_device_id *devid,
> +struct uk_alloc *pha)
>  {
>  struct pci_device *dev;
>  uint32_t config_addr;
> @@ -79,7 +80,7 @@
>  UK_ASSERT(addr !=3D NULL);
>  UK_ASSERT(devid !=3D NULL);
>
> -dev =3D (struct pci_device *) uk_calloc(ph.a, 1, sizeof(*dev));
> +dev =3D (struct pci_device *) uk_calloc(pha, 1, sizeof(*dev));
>  if (!dev) {
>  uk_pr_err("PCI %02x:%02x.%02x: Failed to initialize: Out of
> memory!\n",
>    (int) addr->bus,
> @@ -109,12 +110,12 @@
>  return 0;
>  }
>
> -static void probe_bus(uint32_t);
> +static void probe_bus(uint32_t, struct uk_alloc *pha);
>
>  /* Probe a function. Return 1 if the function does not exist in the devi=
ce,
> 0
>   * otherwise.
>   */
> -static int probe_function(uint32_t bus, uint32_t device, uint32_t functi=
on)
> +static int probe_function(uint32_t bus, uint32_t device, uint32_t functi=
on,
> struct uk_alloc *pha)
>  {
>  uint32_t config_addr, config_data, subclass, secondary_bus;
>  struct pci_address addr;
> @@ -169,14 +170,14 @@
>  uk_pr_info("<no driver>\n");
>  } else {
>  uk_pr_info("driver %p\n", drv);
> -pci_driver_add_device(drv, &addr, &devid);
> +pci_driver_add_device(drv, &addr, &devid, pha);
>  }
>
>  /* 0x06 =3D Bridge Device, 0x04 =3D PCI-to-PCI bridge */
>  if ((devid.class_id =3D=3D 0x06) && (subclass =3D=3D 0x04) ) {
>  PCI_CONF_READ(uint32_t, &secondary_bus,
>  config_addr, SECONDARY_BUS);
> -probe_bus(secondary_bus);
> +probe_bus(secondary_bus, pha);
>  }
>
>  return 0;
> @@ -185,12 +186,12 @@
>  /* Recursive PCI enumeration: this function is called recursively by
>   * probe_function upon discovering PCI-to-PCI bridges.
>   */
> -static void probe_bus(uint32_t bus)
> +static void probe_bus(uint32_t bus, struct uk_alloc *pha)
>  {
>  uint32_t config_addr, device, header_type, function =3D 0;
>
>  for (device =3D 0; device < PCI_MAX_DEVICES; ++device) {
> -if (!probe_function(bus, device, function))
> +if (!probe_function(bus, device, function, pha))
>  continue;
>
>  config_addr =3D (PCI_ENABLE_BIT);
> @@ -203,11 +204,11 @@
>
>  /* Check remaining functions */
>  for (function =3D 1; function < PCI_MAX_FUNCTIONS; function++)
> -probe_function(bus, device, function);
> +probe_function(bus, device, function, pha);
>  }
>  }
>
> -int arch_pci_probe(void)
> +int arch_pci_probe(struct uk_alloc *pha)
>  {
>  uint32_t config_addr, function, header_type, vendor_id;
>
> @@ -219,7 +220,7 @@
>
>  if ((header_type & PCI_HEADER_TYPE_MSB_MASK) =3D=3D 0) {
>  /* Single PCI host controller */
> -probe_bus(0);
> +probe_bus(0, pha);
>  } else {
>  /* Multiple PCI host controllers */
>  for (function =3D 0; function < PCI_MAX_FUNCTIONS; function++) {
> @@ -232,7 +233,7 @@
>  if (vendor_id !=3D PCI_INVALID_ID)
>  break;
>
> -probe_bus(function);
> +probe_bus(function, pha);
>  }
>  }
>
> Reviewed-by: Razvan Virtan <virtanrazvan@gmail.com>
IMPORTANT NOTICE: The contents of this email and any attachments are confid=
ential and may also be privileged. If you are not the intended recipient, p=
lease notify the sender immediately and do not disclose the contents to any=
 other person, use it for any purpose, or store or copy the information in =
any medium. Thank you.


From minios-devel-bounces@lists.xenproject.org Mon Mar 15 16:55:01 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 15 Mar 2021 16:55:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.98092.185938 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lLqUc-0006I0-9M; Mon, 15 Mar 2021 16:54:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 98092.185938; Mon, 15 Mar 2021 16:54:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lLqUc-0006Ht-6L; Mon, 15 Mar 2021 16:54:58 +0000
Received: by outflank-mailman (input) for mailman id 98092;
 Mon, 15 Mar 2021 16:54:57 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nm/Q=IN=gmail.com=virtanrazvan@srs-us1.protection.inumbo.net>)
 id 1lLqUa-0006Ho-Te
 for minios-devel@lists.xen.org; Mon, 15 Mar 2021 16:54:56 +0000
Received: from mail-ed1-x532.google.com (unknown [2a00:1450:4864:20::532])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 01841a14-98f7-4ba9-b959-8e0a74888d68;
 Mon, 15 Mar 2021 16:54:55 +0000 (UTC)
Received: by mail-ed1-x532.google.com with SMTP id bf3so18150496edb.6
 for <minios-devel@lists.xen.org>; Mon, 15 Mar 2021 09:54:55 -0700 (PDT)
Received: from razvan-Lenovo-Legion-Y530-15ICH.local
 ([2a02:2f08:c108:a200:10b8:5f04:32d4:9b71])
 by smtp.gmail.com with ESMTPSA id c2sm7589644ejn.63.2021.03.15.09.54.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 15 Mar 2021 09:54:54 -0700 (PDT)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01841a14-98f7-4ba9-b959-8e0a74888d68
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=on5i/RF+on0p7PEQetI2QpLs0h9Zl6shLGEKIgDzyCQ=;
        b=koq1Q2AE6LiLE9bpK6dzlDofRV55R726oM6WmTS32g9QD5KOiEgG+x8rLdXsV7T1ji
         S5HgVUYK3igezhaDJgPWCkQRhbO24r397oTUfoecR2+WLj0obtL/ZcB6vRzmADUich5u
         8w6MBtaMMnxhSOHGtnrANtFg5pU0vdYhZqWttILlDWg1+4vz+9URdGmxyT8F932WdR2/
         R+im1GLG86WYCoA8JCBN80IGcSTYWXUO5hDUtesVHw3hrIZvB9C51g+9tt1yxppXaVgt
         2/AaJae97D0GqIeQWnY/ufWnMsHB72DK/J16cxOESdTqzUbiq88tqHOa9RtcxbcOjRoJ
         85Qw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=on5i/RF+on0p7PEQetI2QpLs0h9Zl6shLGEKIgDzyCQ=;
        b=K+XGWOfourp3p499/9nENTG7rw2Gl1sqX3opPhYmpRaqYGhnNHpKxDqlC6RIyKwfKm
         649vmBopzNhYhsIOZ2RiNTojIEJseKC0J6KApwmtCxPo4IFp/MVTjgV89sRGy4ECvaTc
         wnx7t+FwxrYsa0xAqKlPzbWazPV8RtkIZEoc4kqPQbOIadzI4cpdpEZbrdxAb0uhZGYu
         dsrw6aIoVawiO4bj4Lsyl+D8wPk0GolmefgT4hkKU/veab8W08wCz/6+yTWRUGMn6JqO
         CaLKKUnBcBlwCJwqFUD1NUOcev0N4AYkk5sM6P+ESylyJfASvcZeaQ9GUb0WLKERAp5x
         yyOQ==
X-Gm-Message-State: AOAM533Xy+g9F7Jlv9fOxiP7x3apVvusDf1bS/ArrZYtcIjbur9zzm3D
	3XnHh67dWW1IaWJjZF5SVSU=
X-Google-Smtp-Source: ABdhPJw2JJz0/2EK4Bs3YnShOuS56mNLvddEUrGzGqRH86w0Rg3IkAXCTNhCIo275uoFyueIf+ewkQ==
X-Received: by 2002:a05:6402:3593:: with SMTP id y19mr31110400edc.317.1615827294529;
        Mon, 15 Mar 2021 09:54:54 -0700 (PDT)
From: Razvan Virtan <virtanrazvan@gmail.com>
X-Google-Original-From: Razvan Virtan <razvanvirtan@gmail.com>
To: justin.he@arm.com
Cc: minios-devel@lists.xen.org
Subject: Re: [RFCv4,01/35] plat/virtio: Introduce several helpers for virtio ring
Date: Mon, 15 Mar 2021 18:54:52 +0200
Message-Id: <20210315165452.30686-1-razvanvirtan@gmail.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20201223073857.118076-2-justin.he@arm.com>
References: <20201223073857.118076-2-justin.he@arm.com>

This patch looks good to me, I have only 2 inline sugestions for "virito_ring.c".

diff --git a/plat/drivers/virtio/virtio_ring.c b/plat/drivers/virtio/virtio_ring.c
index 0a5c3f3..bda7549 100644
--- a/plat/drivers/virtio/virtio_ring.c
+++ b/plat/drivers/virtio/virtio_ring.c
@@ -262,6 +262,38 @@  __phys_addr virtqueue_physaddr(struct virtqueue *vq)
 	return ukplat_virt_to_phys(vrq->vring_mem);
 }
 
+__phys_addr virtqueue_get_avail_addr(struct virtqueue *vq)
+{
+	struct virtqueue_vring *vrq = NULL;
+
+	UK_ASSERT(vq);
+
+	vrq = to_virtqueue_vring(vq);
Maybe `return ukplat_virt_to_phys((void *) vrq->vring.avail);` would be more straightforward?
+	return virtqueue_physaddr(vq) +
+		((char *)vrq->vring.avail - (char *)vrq->vring.desc);
+}
+
+__phys_addr virtqueue_get_used_addr(struct virtqueue *vq)
+{
+	struct virtqueue_vring *vrq = NULL;
+
+	UK_ASSERT(vq);
+
+	vrq = to_virtqueue_vring(vq);
Maybe `return ukplat_virt_to_phys((void *) vrq->vring.used);` would be more straightforward?
+	return virtqueue_physaddr(vq) +
+		((char *)vrq->vring.used - (char *)vrq->vring.desc);
+}
+
+unsigned int virtqueue_vring_get_num(struct virtqueue *vq)
+{
+	struct virtqueue_vring *vrq = NULL;
+
+	UK_ASSERT(vq);
+
+	vrq = to_virtqueue_vring(vq);
+	return vrq->vring.num;
+}
+

Reviewed-by: Razvan Virtan <virtanrazvan@gmail.com>


From minios-devel-bounces@lists.xenproject.org Fri Mar 19 15:35:01 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 19 Mar 2021 15:35:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.99335.188873 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lNH9P-0004l1-Ie; Fri, 19 Mar 2021 15:34:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 99335.188873; Fri, 19 Mar 2021 15:34:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lNH9P-0004ku-Fd; Fri, 19 Mar 2021 15:34:59 +0000
Received: by outflank-mailman (input) for mailman id 99335;
 Fri, 19 Mar 2021 15:34:58 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=c4oI=IR=gmail.com=virtanrazvan@srs-us1.protection.inumbo.net>)
 id 1lNH9O-0004kp-NO
 for minios-devel@lists.xen.org; Fri, 19 Mar 2021 15:34:58 +0000
Received: from mail-ej1-x630.google.com (unknown [2a00:1450:4864:20::630])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id fd644a61-9d4b-4205-a1c1-1513088f1b4f;
 Fri, 19 Mar 2021 15:34:57 +0000 (UTC)
Received: by mail-ej1-x630.google.com with SMTP id t18so10384212ejc.13
 for <minios-devel@lists.xen.org>; Fri, 19 Mar 2021 08:34:55 -0700 (PDT)
Received: from razvan-Lenovo-Legion-Y530-15ICH.local
 ([2a02:2f08:c108:a200:5484:a5a5:66e1:c5cf])
 by smtp.gmail.com with ESMTPSA id m14sm4281766edr.13.2021.03.19.08.34.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 19 Mar 2021 08:34:54 -0700 (PDT)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fd644a61-9d4b-4205-a1c1-1513088f1b4f
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=AKe+Wx7kcqUjFCUP8ELmsLmu9WFK/GR9oh5QYqM/0cU=;
        b=H83punWvmRQPnFToKWDlfhGeu4EKKLQB6CwvcQlsTvK3BWbRcYAbPUIT0evjpJfpjq
         yXrBgKZkk2Dhov3z0H/TkUk8MgTKKJupzWhADAqGG+0bt9nVi+SfzxdjgT1N/MzGQymT
         xDwkiA5cprKjPyXLG5IT7V2Cfakf+xyGTS5Ztttay3zUtfI+z4dHS2yDDoPps26LM9AD
         z0zrPveiQTTDfQiFULtOlE8G1J+FS/efB/owh8Kb3EYjy2K5cwmISQU8ynJo6Cu4G1QC
         GJeBLR93awi7z2A959y93LzZqPVREoehwEihCp7d58oRzmOzhAr22wQ7rGFyVyM2cwtv
         ZCVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=AKe+Wx7kcqUjFCUP8ELmsLmu9WFK/GR9oh5QYqM/0cU=;
        b=kP3LeVYk3Xcx9WM0uWtRH8hiEyl4gkh0CLnPg+0ZUpfYn/74Bnr563xzgzDQnGjPi7
         TgklTpboLHIr0t9VBbhGDtAxIdcZxR/ntg1RFT0sgE4oaKN2I1JaSKAJpbtk3tbjt9sW
         bm+/v1iVG7miFuYeGuY3/ZqCSRG3blJnPtOmUBNvsciAcsRFXBML/gCwkQTYfTvkqI5X
         6od8zFV8LexDio8CcADKlHDIdDf5vHMVYzpXz46X4Dxj90S6zDq+VD7OZYyRSI8T/lnn
         HwyxrtvnTG1ZuahlKjr73QxSmOZRd5nh2K2qAnUEI8F/JsGdn2YKRBevbcfgT4HIj3Vs
         HW/Q==
X-Gm-Message-State: AOAM532EhpEx5ky3lALYqXWr7VNt/up8rvOY8AxbH2cPWm6bAwWEM7XN
	CCzZ+P4w8AOkSyO7IHN3V/s=
X-Google-Smtp-Source: ABdhPJw/2+DcoiXgGgXVVvAK8QVCUGBpzZHX33P3s4nSsBmgKUf1KnacngQeRm83CdF41Lilv4BHbQ==
X-Received: by 2002:a17:906:40c7:: with SMTP id a7mr5001809ejk.109.1616168095095;
        Fri, 19 Mar 2021 08:34:55 -0700 (PDT)
From: Razvan Virtan <virtanrazvan@gmail.com>
X-Google-Original-From: Razvan Virtan <razvanvirtan@gmail.com>
To: justin.he@arm.com
Cc: minios-devel@lists.xen.org
Subject: Re: [RFCv4,02/35] plat/platform: Introduce new platform bus
Date: Fri, 19 Mar 2021 17:34:52 +0200
Message-Id: <20210319153452.16051-1-razvanvirtan@gmail.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20201223073857.118076-3-justin.he@arm.com>
References: <20201223073857.118076-3-justin.he@arm.com>

Hi, Justin.
This patch looks good to me.

Reviewed-by: Razvan Virtan <virtanrazvan@gmail.com>


From minios-devel-bounces@lists.xenproject.org Fri Mar 19 17:46:16 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 19 Mar 2021 17:46:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.99356.188914 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lNJCP-0000mK-Rt; Fri, 19 Mar 2021 17:46:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 99356.188914; Fri, 19 Mar 2021 17:46:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lNJCP-0000mD-Ol; Fri, 19 Mar 2021 17:46:13 +0000
Received: by outflank-mailman (input) for mailman id 99356;
 Fri, 19 Mar 2021 17:46:11 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=c4oI=IR=gmail.com=virtanrazvan@srs-us1.protection.inumbo.net>)
 id 1lNJCN-0000m8-Pr
 for minios-devel@lists.xen.org; Fri, 19 Mar 2021 17:46:11 +0000
Received: from mail-ed1-x52f.google.com (unknown [2a00:1450:4864:20::52f])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id f4b39384-79cd-4ac4-97e3-68cd908d49ba;
 Fri, 19 Mar 2021 17:46:10 +0000 (UTC)
Received: by mail-ed1-x52f.google.com with SMTP id dm8so11780992edb.2
 for <minios-devel@lists.xen.org>; Fri, 19 Mar 2021 10:46:10 -0700 (PDT)
Received: from razvan-Lenovo-Legion-Y530-15ICH.local
 ([2a02:2f08:c108:a200:5484:a5a5:66e1:c5cf])
 by smtp.gmail.com with ESMTPSA id gb4sm3922371ejc.122.2021.03.19.10.46.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 19 Mar 2021 10:46:09 -0700 (PDT)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f4b39384-79cd-4ac4-97e3-68cd908d49ba
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=xXklu47QXxNZg0AvF4dKSLo511qJ94n0yNbps8DC780=;
        b=klVOYq71bhcwm7VRnYWSWah9CN1YmR5BHVt9l9/mwoCHS148+5oNbDr9B0hjyU1b7v
         RmQjFFWbHT07Jx/xxk6LULEbNJ33Oh+vSgsGBC0GgYyXpLgjsk6WHC6DvdFqgQqIQfzk
         iLLO4ed1aVgYuT4Ci6CkEBZwBUUjUk+ptYcIs4h2M6C9LcoA3hOO1ijmTudRPVGJYrrp
         XTiYq+ODSzpcGBEo+Mk2P0CuOepxErmjXPA9KIL/lD1Dcgszrq9TgqHMi8SXyQhGpKdi
         43UNab3K2uJxphTH7tOxpdsR0u0430ryBBaaEA9IA3sV6EU8wz2gDnELKCZSt8y3IBgn
         DbOQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=xXklu47QXxNZg0AvF4dKSLo511qJ94n0yNbps8DC780=;
        b=aRTcL0tRq+BFnsQE1UwEITr8mTNz4B++AtIQjabWQ7yrr1qNLJlDptI9PTR6iT+bpA
         3HPkwPCCyS8nQQPbyYdQO/VBmuu2/A9RxnXsIfwvIQ9Pxkm7pzyJZnNomBaktMVrvGgp
         mncxY/2LqFPcqHKqp6jVBgufd/7Ukc59EoRT5mzAkmrRwqI8B3XQA/ykkPjAJB00cOwW
         0KfknBQliRmQbcQj8GsTpEwvj9Ghz4tY2AsLaRjeu3s82v9PnwyW3eIJlp2WfkOXxAaA
         SMnQsw8euChKGVxaW5HuvTLwl4gdUvntxH7GUGjk0SA5WFRueBgNzwBJAJDNCYWbSHir
         bPFQ==
X-Gm-Message-State: AOAM5322UpiKDZEFiLT2+F8KBk0Q45/cVELibmHMmM2waU/bptRz3t6f
	Ox0xEh+xwhYN+jyakJvu6N8=
X-Google-Smtp-Source: ABdhPJwW8CKjhLO8C2BLz2EKLgNDjoAQoIJJsEtwcqTDQS7XbYnsc1MattyCQbck6b7w7WsMics2VA==
X-Received: by 2002:a05:6402:1d33:: with SMTP id dh19mr10918150edb.362.1616175969765;
        Fri, 19 Mar 2021 10:46:09 -0700 (PDT)
From: Razvan Virtan <virtanrazvan@gmail.com>
X-Google-Original-From: Razvan Virtan <razvanvirtan@gmail.com>
To: justin.he@arm.com
Cc: minios-devel@lists.xen.org
Subject: Re: [RFCv4,12/35] plat/platform_bus: Add probe/match interface for platform devices 
Date: Fri, 19 Mar 2021 19:46:07 +0200
Message-Id: <20210319174607.21726-1-razvanvirtan@gmail.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20201223073857.118076-13-justin.he@arm.com>
References: <20201223073857.118076-13-justin.he@arm.com>

I've found some minor typos and I have some questions regarding the pf_find_driver()
function from "platform_bus.c". I'll let them here, as inline comments.

diff --git a/plat/common/platform_bus.c b/plat/common/platform_bus.c
index 1410e71..fecb389 100644
--- a/plat/common/platform_bus.c
+++ b/plat/common/platform_bus.c
@@ -52,8 +52,10 @@  struct pf_bus_handler {
 };
 static struct pf_bus_handler pfh;
 
-static const char * const pf_device_list[] = {

Typo: "*pf_device_compatible_list[]"

+static const char *pf_device_compatilbe_list[] = {
 	"virtio,mmio",
+	"pci-host-ecam-generic",
+	NULL
 };
 
 static inline int pf_device_id_match(const struct pf_device_id *id0,
@@ -67,14 +69,22 @@  static inline int pf_device_id_match(const struct pf_device_id *id0,
 	return rc;
 }
 
-static inline struct pf_driver *pf_find_driver(struct pf_device_id *id)
+static inline struct pf_driver *pf_find_driver(const char *compatible)
 {
 	struct pf_driver *drv;
+	struct pf_device_id id;
 
 	UK_TAILQ_FOREACH(drv, &pfh.drv_list, next) {
-		if (pf_device_id_match(id, drv->device_ids)) {
-			uk_pr_debug("pf driver found devid=%d\n", drv->device_ids->device_id);
-			return drv; /* driver found */
+		if (!drv->match)
+			continue;
+
+		id.device_id = (uint16_t)drv->match(compatible);

In both the virtio_mmio and pci_ecam implementations, driver match() function returns
-1 when the "compatible" parameter isn't found in the driver's match table.
Therefore, I think the condition in this statement should be "if (id.device_id > 0)".

+		if (id.device_id) {

What would happen if a platform driver would support more than one device?
For example, the implementation of "virtio_mmio_match_table[]" from "virtio_mmio.c"
would allow, theoretically, more than one supported devices. If that would happen,
I think "drv->device_ids" should become an array of ids and we should call "pf_device_id_match()"
on all of it's elements.
Would it be possible to need a platform driver like that in the future? (if it would
be possible, I think we should adapt the implementation)

+			if (pf_device_id_match(&id, drv->device_ids)) {
+				uk_pr_debug("pf driver found  devid(0x%x)\n", id.device_id);
+
+				return drv;
+			}
 		}
 	}
 
@@ -84,104 +94,96 @@  static inline struct pf_driver *pf_find_driver(struct pf_device_id *id)
 }
 
 static inline int pf_driver_add_device(struct pf_driver *drv,
-					struct pf_device_id *devid,
-					__u64 dev_base,
-					int dev_irq)
+					struct pf_device *dev)
 {
-	struct pf_device *dev;
 	int ret;
 
 	UK_ASSERT(drv != NULL);
 	UK_ASSERT(drv->add_dev != NULL);
+	UK_ASSERT(dev != NULL);
 
-	dev = (struct pf_device *) uk_calloc(pfh.a, 1, sizeof(*dev));
-	if (!dev) {
-		uk_pr_err("Platform : Failed to initialize: Out of memory!\n");
-		return -ENOMEM;
-	}
-
-	memcpy(&dev->id, devid, sizeof(dev->id));
-	uk_pr_debug("pf_driver_add_device dev->id=%d\n", dev->id.device_id);
-
-	dev->base = dev_base;
-	dev->irq = dev_irq;
+	uk_pr_debug("pf_driver_add_device devid=%d\n", dev->id.device_id);
 
 	ret = drv->add_dev(dev);
 	if (ret < 0) {
 		uk_pr_err("Platform Failed to initialize device driver\n");
-		uk_free(pfh.a, dev);
 	}
 
 	return ret;
 }
 
+static inline int pf_driver_probe_device(struct pf_driver *drv,
+					struct pf_device *dev)
+{
+	int ret;
+
+	UK_ASSERT(drv != NULL && dev != NULL);
+	UK_ASSERT(drv->probe != NULL);
+
+	uk_pr_info("pf_driver_probe_device devid=%d\n", dev->id.device_id);
+
+	ret = drv->probe(dev);
+	if (ret < 0) {
+		uk_pr_err("Platform Failed to probe device driver\n");
+
+		return ret;
+	}
+
+	return 0;
+}
+
 static int pf_probe(void)
 {
-	struct pf_device_id devid;
 	struct pf_driver *drv;
-	int i;
-	int end_offset = -1;
+	int idx = 0;
 	int ret = -ENODEV;
-	const fdt32_t *prop;
-	int type, hwirq, prop_len;
-	__u64 reg_base;
-	__phys_addr dev_base;
-	int dev_irq;
+	struct pf_device *dev;
+	int fdt_pf = -1;
 
 	uk_pr_info("Probe PF\n");
 
-	/* We only support virtio_mmio as a platform device here.
-	 * A loop here is needed for finding drivers if more devices
-	 */
-	devid.device_id = VIRTIO_MMIO_ID;
+	/* Search all the platform bus devices provided by fdt */
+	do {

Typo: "pf_device_compatible_list"

+		fdt_pf = fdt_node_offset_idx_by_compatible_list(_libkvmplat_cfg.dtb,
+						fdt_pf, pf_device_compatilbe_list, &idx);
+		if (fdt_pf < 0) {
+			uk_pr_info("End of searching platform devices\n");
+			break;
+		}
 
-	drv = pf_find_driver(&devid);
-	if (!drv) {
-		uk_pr_info("<no driver>\n");
-		return -ENODEV;
-	}
+		/* Alloc dev */
+		dev = (struct pf_device *) uk_calloc(pfh.a, 1, sizeof(*dev));
+		if (!dev) {
+			uk_pr_err("Platform : Failed to initialize: Out of memory!\n");
+			return -ENOMEM;
+		}
 
-	uk_pr_info("driver %p\n", drv);
-
-	/* qemu creates virtio devices in reverse order */
-	for (i = 0; i < UK_MAX_VIRTIO_MMIO_DEVICE; i++) {
-		end_offset = fdt_node_offset_by_compatible_list(fdt_start,
-							end_offset,
-							pf_device_list);
-		if (end_offset == -FDT_ERR_NOTFOUND) {
-			uk_pr_info("device not found in fdt\n");
-			goto error_exit;
-		} else {
-			prop = fdt_getprop(fdt_start, end_offset, "interrupts", &prop_len);
-			if (!prop) {
-				uk_pr_err("irq of device not found in fdt\n");
-				goto error_exit;
-			}
+		dev->fdt_offset = fdt_pf;
 
-			type = fdt32_to_cpu(prop[0]);
-			hwirq = fdt32_to_cpu(prop[1]);
+		/* Find drv with compatible-id match table */

Typo: "pf_device_compatible_list"

+		drv = pf_find_driver(pf_device_compatilbe_list[idx]);
+		if (!drv) {
+			uk_free(pfh.a, dev);
+			continue;
+		}
 
-			prop = fdt_getprop(fdt_start, end_offset, "reg", &prop_len);
-			if (!prop) {
-				uk_pr_err("reg of device not found in fdt\n");
-				goto error_exit;
-			}
+		dev->id = *(struct pf_device_id *)drv->device_ids;
+		uk_pr_info("driver %p\n", drv);
 
-			/* only care about base addr, ignore the size */
-			reg_base = fdt32_to_cpu(prop[0]);
-			reg_base = reg_base << 32 | fdt32_to_cpu(prop[1]);
+		ret = pf_driver_probe_device(drv, dev);
+		if (ret < 0) {
+			uk_free(pfh.a, dev);
+			continue;
 		}
 
-		dev_base = reg_base;
-		dev_irq = gic_irq_translate(type, hwirq);
-
-		ret = pf_driver_add_device(drv, &devid, dev_base, dev_irq);
-	}
+		ret = pf_driver_add_device(drv, dev);
+		if (ret < 0) {
+			uk_pr_err("Platform Failed to initialize device driver, ret(%d)\n",ret);
+			uk_free(pfh.a, dev);
+		}
+	} while (1);
 
 	return ret;
-
-error_exit:
-	return -ENODEV;
 }
 
 
@@ -232,4 +234,4 @@  static struct pf_bus_handler pfh = {
 	.b.init = pf_init,
 	.b.probe = pf_probe
 };
-UK_BUS_REGISTER(&pfh.b);
+UK_BUS_REGISTER_PRIORITY(&pfh.b, 1);

Reviewed-by: Razvan Virtan <virtanrazvan@gmail.com>


From minios-devel-bounces@lists.xenproject.org Mon Mar 22 16:25:02 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 22 Mar 2021 16:25:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.100360.191165 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lONMS-0003mV-Ot; Mon, 22 Mar 2021 16:25:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 100360.191165; Mon, 22 Mar 2021 16:25:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lONMS-0003mO-Li; Mon, 22 Mar 2021 16:25:00 +0000
Received: by outflank-mailman (input) for mailman id 100360;
 Mon, 22 Mar 2021 16:24:59 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x6W4=IU=gmail.com=virtanrazvan@srs-us1.protection.inumbo.net>)
 id 1lONMR-0003mJ-5O
 for minios-devel@lists.xen.org; Mon, 22 Mar 2021 16:24:59 +0000
Received: from mail-ed1-x52e.google.com (unknown [2a00:1450:4864:20::52e])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 8f153bc0-6e5d-44a4-9270-c4e70cbeaa9d;
 Mon, 22 Mar 2021 16:24:58 +0000 (UTC)
Received: by mail-ed1-x52e.google.com with SMTP id y6so20118109eds.1
 for <minios-devel@lists.xen.org>; Mon, 22 Mar 2021 09:24:58 -0700 (PDT)
Received: from razvan-Lenovo-Legion-Y530-15ICH.local
 ([2a02:2f08:c108:a200:f8da:c34b:7c2a:2268])
 by smtp.gmail.com with ESMTPSA id h15sm11644491edb.74.2021.03.22.09.24.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Mar 2021 09:24:56 -0700 (PDT)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f153bc0-6e5d-44a4-9270-c4e70cbeaa9d
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=3lHcMmP4YNfGZoz3CDN+iVL+p9IJUZQgPdJT/ipGwK0=;
        b=DkGcK89VdnxSfqHB9K7m2pCoUIqzg8bnVtx+zj29/oqleOp9jV+/VGY4YZFY7dawJ5
         gFDAEruEBiAqHLcOfw+LzPG6EcDH5BlWpxX5wTkElpxJGCLExmNxM0PqFmF7IdBQFZ8t
         gMzQCnx+6o5mq7wv0bJAGNm53hgbIBtszuq4gENxNpFpiDeZBSgB/jmtHX7IuQawqEs/
         Ys4tk+1sQ8zMjIeo4NGR/b0EsuP04UTtPciy4j0cvtmRWs3tvJDmXFXyKkoEGYsDmGgy
         qf3fNuGxvwFdsTmCIuZ7Y3gS2DXIn78toD7k8iHVQBbOQDB70rWrPXgi7JwQAj1uUgvH
         8mQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=3lHcMmP4YNfGZoz3CDN+iVL+p9IJUZQgPdJT/ipGwK0=;
        b=Ib1PDLBrqprELSYTHYqxcDCVkuhJo8lpRfHDz6y+WjcCFxGI8AuUZpFWrqJqv652Xl
         ReY6qNbJ3RhOkEJEJgQd3njGd3NiHqTmZezQsyxiaICSP1LwhQ5iQTL+bbaPfOdPv0wd
         NZQezgd4FA8yTAzdZceSCFdTQCH5BWmWeVvGKIHs9MBRwTW/3LBY0TyuKc3ftOpM51dC
         M2z4GCGbxkN1oG20CeLMH0HkKcq2YU/wR08KxTxSkOdesRJaZLBeAqwtrJhpjW3/+xFi
         xjrEkgND1QnD3kw77bwi30pKQcmofX6BUPXw/gr9++rblf7S1l1vFXXqLgb7TJpjHQbk
         SYqw==
X-Gm-Message-State: AOAM5339RMsuNRpU1SglPYfBQA/oSkeDpZR4qBALJcSZdfFVagqSLUP/
	LPRkrLCvJqGoRKwLZSoJxAU=
X-Google-Smtp-Source: ABdhPJzHMF/vdkz98EEhAk/jWEEjNnmQaVO87C4IVTCbXtDJF8M+7PIyqu1FEgZV1MXzeuj/uLRLEQ==
X-Received: by 2002:a05:6402:646:: with SMTP id u6mr408064edx.250.1616430297313;
        Mon, 22 Mar 2021 09:24:57 -0700 (PDT)
From: Razvan Virtan <virtanrazvan@gmail.com>
X-Google-Original-From: Razvan Virtan <razvanvirtan@gmail.com>
To: justin.he@arm.com
Cc: minios-devel@lists.xen.org
Subject: Re: [RFCv4,17/35] plat/pci_bus: Split specific code into different files
Date: Mon, 22 Mar 2021 18:24:54 +0200
Message-Id: <20210322162454.10945-1-razvanvirtan@gmail.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20201223073857.118076-18-justin.he@arm.com>
References: <20201223073857.118076-18-justin.he@arm.com>

I've found a simpler fix to the problem described in the previous mail.

Since we have a static pci_bus_handler (ph) declared in pci_bus_x86.c, we can
use it and initialize ph.a in arch_pci_probe(). In this way, we can keep the rest
of the code intact, without any modification in function headers (other than
arch_pci_probe, where we need to add the uk_alloc parameter).

Here is the diff between the initial "pci_bus_x86.c" source file and the fixed one.

--- pci_bus_x86_original.c	2021-03-14 20:34:34.610336281 +0200
+++ pci_bus_x86.c	2021-03-22 17:53:24.487358411 +0200
@@ -207,12 +207,14 @@
 	}
 }
 
-int arch_pci_probe(void)
+int arch_pci_probe(struct uk_alloc *pha)
 {
 	uint32_t config_addr, function, header_type, vendor_id;
 
 	uk_pr_debug("Probe PCI\n");
 
+	ph.a = pha;
+
 	config_addr = (PCI_ENABLE_BIT);
 	PCI_CONF_READ(uint32_t, &header_type,
 			config_addr, HEADER_TYPE);


Reviewed-by: Razvan Virtan <virtanrazvan@gmail.com>


From minios-devel-bounces@lists.xenproject.org Thu Mar 25 14:14:02 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 25 Mar 2021 14:14:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.101406.193945 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lPQkJ-0006I6-Tk; Thu, 25 Mar 2021 14:13:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 101406.193945; Thu, 25 Mar 2021 14:13:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lPQkJ-0006Hy-QK; Thu, 25 Mar 2021 14:13:59 +0000
Received: by outflank-mailman (input) for mailman id 101406;
 Thu, 25 Mar 2021 14:13:58 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CKh6=IX=gmail.com=virtanrazvan@srs-us1.protection.inumbo.net>)
 id 1lPQkI-0006Ht-EA
 for minios-devel@lists.xen.org; Thu, 25 Mar 2021 14:13:58 +0000
Received: from mail-ed1-x52f.google.com (unknown [2a00:1450:4864:20::52f])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 3a2a7979-eab3-4235-88e6-68eb9893a7a0;
 Thu, 25 Mar 2021 14:13:57 +0000 (UTC)
Received: by mail-ed1-x52f.google.com with SMTP id o19so2603387edc.3
 for <minios-devel@lists.xen.org>; Thu, 25 Mar 2021 07:13:57 -0700 (PDT)
Received: from razvan-Lenovo-Legion-Y530-15ICH.local
 ([2a02:2f08:c108:a200:c153:8853:2a9e:6480])
 by smtp.gmail.com with ESMTPSA id v24sm2493050ejw.17.2021.03.25.07.13.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Mar 2021 07:13:56 -0700 (PDT)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a2a7979-eab3-4235-88e6-68eb9893a7a0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=AKe+Wx7kcqUjFCUP8ELmsLmu9WFK/GR9oh5QYqM/0cU=;
        b=sEmRoquGOgEAAGSVoLeyfy6ylRp1BP0L8GT0EYBZ/2P8fOx3DxZ752sWuudwIY+xdB
         Ib9RoVi2vkiouXdwZSS2yNnQK3UQasn64CQk9d932OhoSMCPEjfSkf5uHV2q9WVfzths
         6ulFXdkEYOik66BsoQfqY2ls46XwWJjYmynO4Qe6L29gUjfe5X7+Cz7NGO4jpBQqkvCk
         719kxSteE7qn2g/uSp98BHLFlhkyxh2ttnKlsMGiYI5mOkZRg/h9RpSYy5I9N2pqOPr/
         QXa72KQTx11lWxvcPgjLJXqTa66W+6Ums4psp6BrF3hmESZ9070iUEZukfVGP5EphDMV
         PZ6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=AKe+Wx7kcqUjFCUP8ELmsLmu9WFK/GR9oh5QYqM/0cU=;
        b=N5MXoowXkbd9jy3AWXrqIqiAYxSqnO4P5NOel7wJIozPXmJ2uly4jnF8NDeqdy114q
         cIOKlj6WtgNRnGCNf4x6zEJ8y4XXJBMubl0gby77jNwPTUS5Aug+9IrceLx8zBon91Z8
         egYcwMzcvu8XifihLjJcJ/RXWiAnVkL73ZUGMqSpKNJR++dPFu0fZKcxt/qGkIgiWLFQ
         f/dtB2HkA5nnOG+z86q47vHzLGNe2F2qeLYK1Kvkm5AiT0Jn54U0ZgLUn/7ncmKod+di
         NST79pdPWnRCPtLk2BtYMmy+2aW53qW7akUbg3d6gYF8rLzaPXAKTJZPCpJe6ke9LN7t
         0SHw==
X-Gm-Message-State: AOAM530LL1xkbbGeAld1CC5lkxbkEbNhqDYrEfL9lkgd16y24apeeCY8
	rkXjZ/AAzWpLwYhekCwcxSgimGuyz35gIqXL
X-Google-Smtp-Source: ABdhPJxcIXfHoAZn09tPKd3GrStROZYLvs5/FNHXLTUE/spntzLF7acvuAyDBFsVAVnTtmKruiZU/w==
X-Received: by 2002:a05:6402:5113:: with SMTP id m19mr9547749edd.78.1616681636578;
        Thu, 25 Mar 2021 07:13:56 -0700 (PDT)
From: Razvan Virtan <virtanrazvan@gmail.com>
X-Google-Original-From: Razvan Virtan <razvanvirtan@gmail.com>
To: justin.he@arm.com
Cc: minios-devel@lists.xen.org
Subject: Re: [RFCv4,03/35] plat/virtio: Support virtio_cread/cwrite on arm64
Date: Thu, 25 Mar 2021 16:13:54 +0200
Message-Id: <20210325141354.21502-1-razvanvirtan@gmail.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20201223073857.118076-4-justin.he@arm.com>
References: <20201223073857.118076-4-justin.he@arm.com>

Hi, Justin.
This patch looks good to me.

Reviewed-by: Razvan Virtan <virtanrazvan@gmail.com>


From minios-devel-bounces@lists.xenproject.org Thu Mar 25 14:14:15 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 25 Mar 2021 14:14:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.101407.193948 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lPQkY-0006JN-VZ; Thu, 25 Mar 2021 14:14:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 101407.193948; Thu, 25 Mar 2021 14:14:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lPQkY-0006JG-Sj; Thu, 25 Mar 2021 14:14:14 +0000
Received: by outflank-mailman (input) for mailman id 101407;
 Thu, 25 Mar 2021 14:14:13 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CKh6=IX=gmail.com=virtanrazvan@srs-us1.protection.inumbo.net>)
 id 1lPQkX-0006JA-Gw
 for minios-devel@lists.xen.org; Thu, 25 Mar 2021 14:14:13 +0000
Received: from mail-ej1-x629.google.com (unknown [2a00:1450:4864:20::629])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id f0542ecf-d205-4fea-b527-41f40aa5a65f;
 Thu, 25 Mar 2021 14:14:12 +0000 (UTC)
Received: by mail-ej1-x629.google.com with SMTP id u9so3162090ejj.7
 for <minios-devel@lists.xen.org>; Thu, 25 Mar 2021 07:14:12 -0700 (PDT)
Received: from razvan-Lenovo-Legion-Y530-15ICH.local
 ([2a02:2f08:c108:a200:c153:8853:2a9e:6480])
 by smtp.gmail.com with ESMTPSA id s14sm864335ejm.110.2021.03.25.07.14.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Mar 2021 07:14:11 -0700 (PDT)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f0542ecf-d205-4fea-b527-41f40aa5a65f
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=rFIGMMGdUKypVS791qsUrVtP+UTrWZ8VctJzchD/AkE=;
        b=hs1VF+uJzZike9CdANQmj55debwujdNHDOah7IAZKdKNM7r97D4Y8TdOYkTkcnGY1V
         CjwS66WbHMhhkYHvcXliIK3Gu7JQhCqvy0Dm2KI9Y/C54e7hrfqh88buJvg5p3mmMq8h
         8TKMcJxiAQaqaNckTpc0GCphnek+0zsV3NtqmUNY0AhKK5pdlSjqwLyaQ3m/zXkSSRiJ
         LzqrqCsM34B+VFUtcdtMRNM4Nlw5LS0tcZWFyWw65Ft/08qzaCTpUywGXQ1lNKUdc5zr
         uo6IzFWmW2erWLx9bF5LlwGDF6jnakCDZOnwJUhzgPY66LMCaYAXr5iscg02FuO/tr+/
         8PDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=rFIGMMGdUKypVS791qsUrVtP+UTrWZ8VctJzchD/AkE=;
        b=mU/vkcU0nDuoSS4hlmvexk4nOGSnq58Ay7/+D6qzqrMvW8o14bfQasqNT/L0m87K01
         mm7YLd/megeVQ+02LpMr/LfjlrYXtttYSY58AERHcVNtKmmFFvMWIzULS1TB+ueklKwE
         QIMK70E1RhdivVfXjJvOA7wI2r8yjEJkHepQwnImZAKzhUWj5Kk0T5/LF56fhq8UgaeC
         xn5yDlNEdbk/qUFNAMk84WVMS1bdSmU0KSiFe4zX/inwTX0wFoTM81qHokyZKCcGuNzR
         MdgGMmWP1JtXmLxRVrTl8CWEf7lGt6AyNxOtRe5l0dr9DklbXjFkkC1nFOaX++pTOiN9
         mgig==
X-Gm-Message-State: AOAM5336T9XDuLED9cFvWuVC/dNXIvadAe7ratomq1yXPTgspJAUsw1b
	qt+vBi0r6gSz3nIbP8GIkhA=
X-Google-Smtp-Source: ABdhPJzUMVMsexqqXURtSLf2gWVjzg9qF3G0VNraiajPMIvJacJ5+yfTax7bt9nxUa8r3FI853Y9Pw==
X-Received: by 2002:a17:906:b20b:: with SMTP id p11mr9939411ejz.0.1616681652051;
        Thu, 25 Mar 2021 07:14:12 -0700 (PDT)
From: Razvan Virtan <virtanrazvan@gmail.com>
X-Google-Original-From: Razvan Virtan <razvanvirtan@gmail.com>
To: justin.he@arm.com
Cc: minios-devel@lists.xen.org
Subject: Re: [RFCv4,26/35] plat/virtio: Use better iormb/iowmb on arm64
Date: Thu, 25 Mar 2021 16:14:11 +0200
Message-Id: <20210325141411.21561-1-razvanvirtan@gmail.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20201223073857.118076-27-justin.he@arm.com>
References: <20201223073857.118076-27-justin.he@arm.com>

Hi, Justin.
What is the purpose of the inline assembly part from the read barrier __iormb()?
I understand that the "memory" clobber acts as a compiler memory barrier, but I
couldn't get the role of the actual assembly code.
Also, don't we need a "memory" clobber for __iowmb() too?

+#define __iormb(v)							\
+({									\
+	unsigned long tmp;						\
+	dmb(oshld);							\
+									\
+	asm volatile("eor	%0, %1, %1\n"				\
+		     "cbnz	%0, ."					\
+		     : "=r" (tmp) : "r" ((unsigned long)(v))		\
+		     : "memory");					\
+})
+
+#define __iowmb()		dmb(oshst)

Reviewed-by: Razvan Virtan <virtanrazvan@gmail.com>


From minios-devel-bounces@lists.xenproject.org Mon Mar 29 17:00:18 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 29 Mar 2021 17:00:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.103192.196908 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lQvFQ-0004Rx-Kz; Mon, 29 Mar 2021 17:00:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 103192.196908; Mon, 29 Mar 2021 17:00:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lQvFQ-0004Rq-Hr; Mon, 29 Mar 2021 17:00:16 +0000
Received: by outflank-mailman (input) for mailman id 103192;
 Mon, 29 Mar 2021 17:00:14 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ubfu=I3=gmail.com=virtanrazvan@srs-us1.protection.inumbo.net>)
 id 1lQvFO-0004Rl-Qe
 for minios-devel@lists.xen.org; Mon, 29 Mar 2021 17:00:14 +0000
Received: from mail-ed1-x52a.google.com (unknown [2a00:1450:4864:20::52a])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 559a0f6e-c3ad-4842-ab0f-ab5c3ad0c1f6;
 Mon, 29 Mar 2021 17:00:13 +0000 (UTC)
Received: by mail-ed1-x52a.google.com with SMTP id o19so15022275edc.3
 for <minios-devel@lists.xen.org>; Mon, 29 Mar 2021 10:00:13 -0700 (PDT)
Received: from razvan-Lenovo-Legion-Y530-15ICH.local
 ([2a02:2f08:c211:9400:852c:52c3:a196:f17e])
 by smtp.gmail.com with ESMTPSA id z9sm9865830edr.75.2021.03.29.10.00.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Mar 2021 10:00:12 -0700 (PDT)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 559a0f6e-c3ad-4842-ab0f-ab5c3ad0c1f6
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=AKe+Wx7kcqUjFCUP8ELmsLmu9WFK/GR9oh5QYqM/0cU=;
        b=rk/yoIEQGH5dN513vi5afKsj83Aj6dKW+2I3A5vL7i6Ory2x158ORrm4QtILx5Dca6
         7JRfAHo0jJNCIM1ds1oZ3nanXxzymTAbllA0tEMVqPl6yELaCGHOdgCFxEi6LMR5+q1N
         GGZp7bN3wtxd37I3HJ6pdYCDXWDBIWdagdgHtRtWcw/n14Z40EkuBYn0uleRKW0ajdyg
         i627yr/WlYKRglrB8P4QJTpyVvyI+MNb9DMdCfJDqWLYLq1zaL/kdheXfrCFaNqfpV68
         FEQmBqejVum/yC3MgcFWGOwHIvEt2YzAxjTGth8gft8FsK1Ziy2eFkL1NlZr7tZAD0sn
         BvAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=AKe+Wx7kcqUjFCUP8ELmsLmu9WFK/GR9oh5QYqM/0cU=;
        b=j3wDBjF3/hAh0cpdETXJZFGf2MD4a/7kT/mCebT5l2/Y4LgyRU+quAsUWGOCgF6HjV
         3aTLDVOa4/EZHSqcD0cmmeKR3DXu/YOediM3xQhmZMztZd0cmT1oc9AaBMrB0d/pVv6/
         XFR06Ax7E5KNIntPAWxSEWfMjX0ek1VrBocyti+AObtUGXmq2BLk8MtqdOVQ4SSId3xe
         HLv9ajfJ0gWuRBjTvKEBdVb4FhSC5tWuh0OBmHfwWwv9Vv7k9X7NkSnKGZiudKXtkMlk
         l+64jYspkZiY105NG7IpSziItKuh5pkULXiHstTi5agL/LuG+PEtrIEb+FDLWhu7VyKw
         L8Fw==
X-Gm-Message-State: AOAM531G4XKD6W/5iYgfR7+xyvO2BAWxPTrxt9VbqisZc1+KIjnEOiO8
	5NChEGi7NUml8lYs5IW9EMU=
X-Google-Smtp-Source: ABdhPJy+yFIthVhFVnhhoGFmOZFtgfM8IuOA2oxibnST2l2TSWAzs3J2PYGbDRaCHPpX+5y2IiiAMQ==
X-Received: by 2002:a05:6402:524e:: with SMTP id t14mr29886595edd.371.1617037212804;
        Mon, 29 Mar 2021 10:00:12 -0700 (PDT)
From: Razvan Virtan <virtanrazvan@gmail.com>
X-Google-Original-From: Razvan Virtan <razvanvirtan@gmail.com>
To: justin.he@arm.com
Cc: minios-devel@lists.xen.org
Subject: Re: [RFCv4,27/35] plat/platform_bus,virtio_mmio: Avoid useless log storm
Date: Mon, 29 Mar 2021 20:00:09 +0300
Message-Id: <20210329170009.32088-1-razvanvirtan@gmail.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20201223073857.118076-28-justin.he@arm.com>
References: <20201223073857.118076-28-justin.he@arm.com>

Hi, Justin.
This patch looks good to me.

Reviewed-by: Razvan Virtan <virtanrazvan@gmail.com>


From minios-devel-bounces@lists.xenproject.org Mon Mar 29 17:27:17 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 29 Mar 2021 17:27:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.103212.196961 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lQvfY-0007G3-Lz; Mon, 29 Mar 2021 17:27:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 103212.196961; Mon, 29 Mar 2021 17:27:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lQvfY-0007Fv-Id; Mon, 29 Mar 2021 17:27:16 +0000
Received: by outflank-mailman (input) for mailman id 103212;
 Mon, 29 Mar 2021 17:27:15 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ubfu=I3=gmail.com=virtanrazvan@srs-us1.protection.inumbo.net>)
 id 1lQvfX-0007FS-0T
 for minios-devel@lists.xen.org; Mon, 29 Mar 2021 17:27:15 +0000
Received: from mail-ed1-x529.google.com (unknown [2a00:1450:4864:20::529])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c5992590-5391-47ce-9f7c-b20cc8a7a4db;
 Mon, 29 Mar 2021 17:27:14 +0000 (UTC)
Received: by mail-ed1-x529.google.com with SMTP id h10so15070385edt.13
 for <minios-devel@lists.xen.org>; Mon, 29 Mar 2021 10:27:14 -0700 (PDT)
Received: from razvan-Lenovo-Legion-Y530-15ICH.local
 ([2a02:2f08:c211:9400:852c:52c3:a196:f17e])
 by smtp.gmail.com with ESMTPSA id jj15sm8718781ejc.99.2021.03.29.10.27.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Mar 2021 10:27:13 -0700 (PDT)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c5992590-5391-47ce-9f7c-b20cc8a7a4db
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=AKe+Wx7kcqUjFCUP8ELmsLmu9WFK/GR9oh5QYqM/0cU=;
        b=OdgrycHR/K2YYTjUMZwygBJwMpyVkxEivQ7m1xf39KBLgT7/cgBfmns3B33/PiDfFz
         3YC47NqFC9fVEUNgeKeT/AN6V2UeoDQScZym5jl/Oe34uUMro3kVxtdw43XiYxHbzaoL
         sZbjAsa/4WrhiUNmakSn6pNCLx3mjS/e5Ra8nMwH/EnImmA1phC0d/cJHwiafcd3adez
         MGqkQDh1UunHSLFvZs6ZEdkaUCSW2j5PaCxcKzAZ/BCLGxlSHEm6RyhdkATcNA8/4gFY
         rH8WcL9KaYql1DKBSCCzWWdo30i2dAmWGYkbjdFDjS97zgKSXhPbuqOU/hlX5U/Fmf9+
         J+qg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=AKe+Wx7kcqUjFCUP8ELmsLmu9WFK/GR9oh5QYqM/0cU=;
        b=b43XeV1B/UaKy0CnxaCCsOtemlZa4Z0kuJ0l8XqxleF5uD7bRRAQ/+9vyUdPMaN72a
         YTvO5v+j8AaJEdcR2tkq5iYt/V+jALVEUHLmqBQkF7THvoNsGmqjINV8Kf3HVayAWWJO
         i+lKQ/WgOnsIGJQC27q1HCiu86Un6Znv+8UH4D/Ms7kZfeFNz/qDpuasm+6krDufMOz7
         CSpoQaHLnsSZnbmMWEfV5plwz4Z4LiuFRk9Hs/GURbDo8+YcNQDPauzISp7+6ORT+k0Z
         mC6QhoIWlMhTlwpy0jMV6EM4xvi/v9+6a4Dio6yriK4FqYqSe4XtX3YVuBmrRRrZwLVP
         LQNg==
X-Gm-Message-State: AOAM5326BojUs4z/KHSirVAQ4TrZyI57xk1qMQ84W6UKp1q9SKob7yA6
	pIeTcedN/A5P3VLJREGJilI=
X-Google-Smtp-Source: ABdhPJzTNWpN10v96Z4rfQA0EdpgeOsSfkkiWHU5BP7kqC5VaGZPlM58TeStGueuvWj/YzlIMMNT1g==
X-Received: by 2002:aa7:dc4e:: with SMTP id g14mr29918564edu.114.1617038833463;
        Mon, 29 Mar 2021 10:27:13 -0700 (PDT)
From: Razvan Virtan <virtanrazvan@gmail.com>
X-Google-Original-From: Razvan Virtan <razvanvirtan@gmail.com>
To: justin.he@arm.com
Cc: minios-devel@lists.xen.org
Subject: Re: [RFCv4,11/35] plat/ofw: Add fdt_node_offset_idx_by_compatible_list
Date: Mon, 29 Mar 2021 20:27:11 +0300
Message-Id: <20210329172711.840-1-razvanvirtan@gmail.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20201223073857.118076-12-justin.he@arm.com>
References: <20201223073857.118076-12-justin.he@arm.com>

Hi, Justin.
This patch looks good to me.

Reviewed-by: Razvan Virtan <virtanrazvan@gmail.com>


From minios-devel-bounces@lists.xenproject.org Mon Mar 29 21:39:30 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 29 Mar 2021 21:39:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.103278.197084 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lQzbc-0000Rz-9h; Mon, 29 Mar 2021 21:39:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 103278.197084; Mon, 29 Mar 2021 21:39:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lQzbc-0000Rs-6N; Mon, 29 Mar 2021 21:39:28 +0000
Received: by outflank-mailman (input) for mailman id 103278;
 Mon, 29 Mar 2021 21:39:26 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hCeh=I3=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1lQzba-0000Rg-2o
 for minios-devel@lists.xen.org; Mon, 29 Mar 2021 21:39:26 +0000
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 4b122b9f-bca5-4d9b-8f89-2020c69ca281;
 Mon, 29 Mar 2021 21:39:24 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 0A162103AB6;
 Mon, 29 Mar 2021 23:39:23 +0200 (CEST)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id OjSMcQsae3YM; Mon, 29 Mar 2021 23:39:22 +0200 (CEST)
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id D0D43101F0F;
 Mon, 29 Mar 2021 23:39:22 +0200 (CEST)
Received: from [10.7.2.51] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Mon, 29 Mar
 2021 23:39:22 +0200
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4b122b9f-bca5-4d9b-8f89-2020c69ca281
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Subject: Re: [[UNIKRAFT] 1/4] lib/isrlib: Introduce libc-like
 interrupt-context-safe routines
To: cristian-vijelie <cristianvijelie@gmail.com>, <minios-devel@lists.xen.org>
References: <20210128113449.22457-1-cristianvijelie@gmail.com>
 <20210128113449.22457-2-cristianvijelie@gmail.com>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <48ef02f3-5087-e71a-7b26-570bfc51bc2a@neclab.eu>
Date: Mon, 29 Mar 2021 23:39:21 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0)
 Gecko/20100101 Thunderbird/78.8.1
MIME-Version: 1.0
In-Reply-To: <20210128113449.22457-2-cristianvijelie@gmail.com>
Content-Type: text/plain; charset="utf-8"; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)

Hi all,

I resubmitted a revision of this single patch as PR request in GitHub:
https://github.com/unikraft/unikraft/pull/151

Thanks,

Simon

On 28.01.21 12:34, cristian-vijelie wrote:
> libisr library means to introduce interrupt-context-safe routines,
> to be used in interrupt handlers and drivers. It is derived from nolibc.
> 
> Signed-off-by: cristian-vijelie <cristianvijelie@gmail.com>
> ---
>   lib/isrlib/Config.uk               |   3 +
>   lib/isrlib/Makefile.uk             |  10 +
>   lib/isrlib/include/uk/isr/stdlib.h |  60 +++++
>   lib/isrlib/include/uk/isr/string.h |  72 +++++
>   lib/isrlib/stdlib.c                | 417 +++++++++++++++++++++++++++++
>   lib/isrlib/string.c                | 325 ++++++++++++++++++++++
>   6 files changed, 887 insertions(+)
>   create mode 100644 lib/isrlib/Config.uk
>   create mode 100644 lib/isrlib/Makefile.uk
>   create mode 100644 lib/isrlib/include/uk/isr/stdlib.h
>   create mode 100644 lib/isrlib/include/uk/isr/string.h
>   create mode 100644 lib/isrlib/stdlib.c
>   create mode 100644 lib/isrlib/string.c
> 
> diff --git a/lib/isrlib/Config.uk b/lib/isrlib/Config.uk
> new file mode 100644
> index 0000000..128b9b4
> --- /dev/null
> +++ b/lib/isrlib/Config.uk
> @@ -0,0 +1,3 @@
> +config LIBISRLIB
> +    bool "isrlib: Interrupt-safe standard routines"
> +    default n
> diff --git a/lib/isrlib/Makefile.uk b/lib/isrlib/Makefile.uk
> new file mode 100644
> index 0000000..9b60e04
> --- /dev/null
> +++ b/lib/isrlib/Makefile.uk
> @@ -0,0 +1,10 @@
> +$(eval $(call addlib_s,libisrlib,$(CONFIG_LIBISRLIB)))
> +
> +LIBISRLIB_GLOBAL_INCLUDES-y = $(LIBISRLIB_BASE)/include
> +
> +CINCLUDES-$(CONFIG_LIBISRLIB) += $(LIBISRLIB_GLOBAL_INCLUDES)
> +CXXINCLUDES-$(CONFIG_LIBISRLIB) += $(LIBISRLIB_GLOBAL_INCLUDES)
> +
> +LIBISRLIB_SRCS-y += $(LIBISRLIB_BASE)/string.c|isr
> +LIBISRLIB_SRCS-y += $(LIBISRLIB_BASE)/stdlib.c|isr
> +LIBISRLIB_SRCS-y += $(LIBISRLIB_BASE)/qsort.c|isr
> diff --git a/lib/isrlib/include/uk/isr/stdlib.h b/lib/isrlib/include/uk/isr/stdlib.h
> new file mode 100644
> index 0000000..3c439c2
> --- /dev/null
> +++ b/lib/isrlib/include/uk/isr/stdlib.h
> @@ -0,0 +1,60 @@
> +/* SPDX-License-Identifier: BSD-2-Clause */
> +/*
> + * Copyright (c) 2009 Citrix Systems, Inc. All rights reserved.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + *    notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + *    notice, this list of conditions and the following disclaimer in the
> + *    documentation and/or other materials provided with the distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> + * SUCH DAMAGE.
> + */
> +
> +#ifndef __UK_ISR_STDLIB_H__
> +#define __UK_ISR_STDLIB_H__
> +
> +#include <stdlib.h>
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +/**
> + * Convert a string to an unsigned long integer.
> + * Ignores `locale' stuff.  Assumes that the upper and lower case
> + * alphabets and digits are each contiguous.
> + *
> + * @nptr:   The start of the string
> + * @endptr: A pointer to the end of the parsed string will be placed here
> + * @base:   The number base to use
> + */
> +long strtol_isr(const char *nptr, char **endptr, int base);
> +unsigned long strtoul_isr(const char *nptr, char **endptr, int base);
> +long long strtoll_isr(const char *nptr, char **endptr, int base);
> +unsigned long long strtoull_isr(const char *nptr, char **endptr, int base);
> +
> +/**
> + * Convert a string to an integer
> + * @s: The start of the string
> + */
> +int atoi_isr(const char *s);
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif /* __UK_ISR_STDLIB_H__ */
> diff --git a/lib/isrlib/include/uk/isr/string.h b/lib/isrlib/include/uk/isr/string.h
> new file mode 100644
> index 0000000..bcf9fef
> --- /dev/null
> +++ b/lib/isrlib/include/uk/isr/string.h
> @@ -0,0 +1,72 @@
> +/* SPDX-License-Identifier: BSD-3-Clause */
> +/*
> + * Authors: Simon Kuenzer <simon.kuenzer@neclab.eu>
> + *          Cristian Vijelie <cristianvijelie@gmail.com>
> + *
> + *
> + * Copyright (c) 2017, NEC Europe Ltd., NEC Corporation. All rights reserved.
> + * Copyright (c) 2020, University Politehnica of Bucharest. All rights reserved.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + *
> + * 1. Redistributions of source code must retain the above copyright
> + *    notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + *    notice, this list of conditions and the following disclaimer in the
> + *    documentation and/or other materials provided with the distribution.
> + * 3. Neither the name of the copyright holder nor the names of its
> + *    contributors may be used to endorse or promote products derived from
> + *    this software without specific prior written permission.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> + * POSSIBILITY OF SUCH DAMAGE.
> + *
> + */
> +
> +#ifndef __UK_ISR_STRING_H__
> +#define __UK_ISR_STRING_H__
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +#include <string.h>
> +
> +void *memcpy_isr(void *dst, const void *src, size_t len);
> +void *memset_isr(void *ptr, int val, size_t len);
> +void *memchr_isr(const void *ptr, int val, size_t len);
> +void *memrchr_isr(const void *m, int c, size_t n);
> +int memcmp_isr(const void *ptr1, const void *ptr2, size_t len);
> +void *memmove_isr(void *dst, const void *src, size_t len);
> +
> +char *strncpy_isr(char *dst, const char *src, size_t len);
> +char *strcpy_isr(char *dst, const char *src);
> +size_t strlcpy_isr(char *d, const char *s, size_t n);
> +size_t strlcat_isr(char *d, const char *s, size_t n);
> +size_t strnlen_isr(const char *str, size_t maxlen);
> +size_t strlen_isr(const char *str);
> +char *strchrnul_isr(const char *s, int c);
> +char *strchr_isr(const char *str, int c);
> +char *strrchr_isr(const char *s, int c);
> +int strncmp_isr(const char *str1, const char *str2, size_t len);
> +int strcmp_isr(const char *str1, const char *str2);
> +size_t strcspn_isr(const char *s, const char *c);
> +size_t strspn_isr(const char *s, const char *c);
> +char *strtok_isr(char *restrict s, const char *restrict sep, char **restrict p);
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif /* __UK_ISR_STRING_H__ */
> diff --git a/lib/isrlib/stdlib.c b/lib/isrlib/stdlib.c
> new file mode 100644
> index 0000000..d1aad75
> --- /dev/null
> +++ b/lib/isrlib/stdlib.c
> @@ -0,0 +1,417 @@
> +/* SPDX-License-Identifier: BSD-3-Clause */
> +/*
> + ****************************************************************************
> + *
> + *        File: printf.c
> + *      Author: Juergen Gross <jgross@suse.com>
> + *
> + *        Date: Jun 2016
> + *
> + * Environment: Xen Minimal OS
> + * Description: Library functions for printing
> + *              (FreeBSD port)
> + *
> + ****************************************************************************
> + */
> +
> +/*-
> + * Copyright (c) 1990, 1993
> + * The Regents of the University of California.  All rights reserved.
> + *
> + * This code is derived from software contributed to Berkeley by
> + * Chris Torek.
> + *
> + * Copyright (c) 2011 The FreeBSD Foundation
> + * All rights reserved.
> + * Portions of this software were developed by David Chisnall
> + * under sponsorship from the FreeBSD Foundation.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + *    notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + *    notice, this list of conditions and the following disclaimer in the
> + *    documentation and/or other materials provided with the distribution.
> + * 3. Neither the name of the University nor the names of its contributors
> + *    may be used to endorse or promote products derived from this software
> + *    without specific prior written permission.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> + * SUCH DAMAGE.
> + */
> +
> +#include <errno.h>
> +#include <stdint.h>
> +#include <stdlib.h>
> +#include <limits.h>
> +#include <ctype.h>
> +#include <uk/print.h>
> +#include <uk/plat/bootstrap.h>
> +#include <uk/arch/limits.h>
> +
> +#define __DECONST(type, var) ((type)(uintptr_t)(const void *)(var))
> +
> +/*
> + * Convert a string to an unsigned long integer.
> + *
> + * Ignores `locale' stuff.  Assumes that the upper and lower case
> + * alphabets and digits are each contiguous.
> + */
> +unsigned long strtoul_isr(const char *nptr, char **endptr, int base)
> +{
> +	const char *s = nptr;
> +	unsigned long acc;
> +	unsigned char c;
> +	unsigned long cutoff;
> +	int neg = 0, any, cutlim;
> +
> +	if (base < 0 || base == 1 || base > 36) {
> +		errno = -EINVAL;
> +		any = 0;
> +		acc = 0;
> +		goto exit;
> +	}
> +
> +	/*
> +	 * See strtol for comments as to the logic used.
> +	 */
> +	do {
> +		c = *s++;
> +	} while (isspace(c));
> +	if (c == '-') {
> +		neg = 1;
> +		c = *s++;
> +	} else if (c == '+')
> +		c = *s++;
> +	if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) {
> +		c = s[1];
> +		s += 2;
> +		base = 16;
> +	}
> +	if (base == 0)
> +		base = c == '0' ? 8 : 10;
> +	cutoff = (unsigned long)ULONG_MAX / (unsigned long)base;
> +	cutlim = (unsigned long)ULONG_MAX % (unsigned long)base;
> +	for (acc = 0, any = 0;; c = *s++) {
> +		if (!isascii(c))
> +			break;
> +		if (isdigit(c))
> +			c -= '0';
> +		else if (isalpha(c))
> +			c -= isupper(c) ? 'A' - 10 : 'a' - 10;
> +		else
> +			break;
> +		if (c >= base)
> +			break;
> +		if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
> +			any = -1;
> +		else {
> +			any = 1;
> +			acc *= base;
> +			acc += c;
> +		}
> +	}
> +	if (any < 0) {
> +		acc = ULONG_MAX;
> +		errno = ERANGE;
> +	} else if (neg)
> +		acc = -acc;
> +exit:
> +	if (endptr != 0)
> +		*endptr = __DECONST(char *, any ? s - 1 : nptr);
> +	return acc;
> +}
> +
> +long strtol_isr(const char *nptr, char **endptr, int base)
> +{
> +	const char *s;
> +	unsigned long acc;
> +	unsigned char c;
> +	unsigned long qbase, cutoff;
> +	int neg, any, cutlim;
> +
> +	s = nptr;
> +	if (base < 0 || base == 1 || base > 36) {
> +		errno = -EINVAL;
> +		any = 0;
> +		acc = 0;
> +		goto exit;
> +	}
> +
> +	/*
> +	 * Skip white space and pick up leading +/- sign if any.
> +	 * If base is 0, allow 0x for hex and 0 for octal, else
> +	 * assume decimal; if base is already 16, allow 0x.
> +	 */
> +	do {
> +		c = *s++;
> +	} while (isspace(c));
> +	if (c == '-') {
> +		neg = 1;
> +		c = *s++;
> +	} else {
> +		neg = 0;
> +		if (c == '+')
> +			c = *s++;
> +	}
> +	if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) {
> +		c = s[1];
> +		s += 2;
> +		base = 16;
> +	}
> +	if (base == 0)
> +		base = c == '0' ? 8 : 10;
> +
> +	/*
> +	 * Compute the cutoff value between legal numbers and illegal
> +	 * numbers.  That is the largest legal value, divided by the
> +	 * base.  An input number that is greater than this value, if
> +	 * followed by a legal input character, is too big.  One that
> +	 * is equal to this value may be valid or not; the limit
> +	 * between valid and invalid numbers is then based on the last
> +	 * digit.  For instance, if the range for quads is
> +	 * [-2147483648..2147483647] and the input base
> +	 * is 10, cutoff will be set to 2147483647 and cutlim to
> +	 * either 7 (neg==0) or 8 (neg==1), meaning that if we have
> +	 * accumulated a value > 2147483647, or equal but the
> +	 * next digit is > 7 (or 8), the number is too big, and we will
> +	 * return a range error.
> +	 *
> +	 * Set any if any `digits' consumed; make it negative to indicate
> +	 * overflow.
> +	 */
> +	qbase = (unsigned int)base;
> +	cutoff = neg
> +		     ? (unsigned long)LONG_MAX
> +			   - (unsigned long)(LONG_MIN + LONG_MAX)
> +		     : LONG_MAX;
> +	cutlim = cutoff % qbase;
> +	cutoff /= qbase;
> +	for (acc = 0, any = 0;; c = *s++) {
> +		if (!isascii(c))
> +			break;
> +		if (isdigit(c))
> +			c -= '0';
> +		else if (isalpha(c))
> +			c -= isupper(c) ? 'A' - 10 : 'a' - 10;
> +		else
> +			break;
> +		if (c >= base)
> +			break;
> +		if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
> +			any = -1;
> +		else {
> +			any = 1;
> +			acc *= qbase;
> +			acc += c;
> +		}
> +	}
> +	if (any < 0) {
> +		acc = neg ? LONG_MIN : LONG_MAX;
> +		errno = ERANGE;
> +	} else if (neg)
> +		acc = -acc;
> +
> +exit:
> +	if (endptr != 0)
> +		*endptr = __DECONST(char *, any ? s - 1 : nptr);
> +	return acc;
> +}
> +
> +/*
> + * Convert a string to a long long integer.
> + *
> + * Ignores `locale' stuff.  Assumes that the upper and lower case
> + * alphabets and digits are each contiguous.
> + */
> +long long strtoll_isr(const char *nptr, char **endptr, int base)
> +{
> +	const char *s;
> +	unsigned long long acc;
> +	unsigned char c;
> +	unsigned long long qbase, cutoff;
> +	int neg, any, cutlim;
> +
> +	s = nptr;
> +	if (base < 0 || base == 1 || base > 36) {
> +		errno = -EINVAL;
> +		any = 0;
> +		acc = 0;
> +		goto exit;
> +	}
> +	/*
> +	 * Skip white space and pick up leading +/- sign if any.
> +	 * If base is 0, allow 0x for hex and 0 for octal, else
> +	 * assume decimal; if base is already 16, allow 0x.
> +	 */
> +	do {
> +		c = *s++;
> +	} while (isspace(c));
> +	if (c == '-') {
> +		neg = 1;
> +		c = *s++;
> +	} else {
> +		neg = 0;
> +		if (c == '+')
> +			c = *s++;
> +	}
> +	if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) {
> +		c = s[1];
> +		s += 2;
> +		base = 16;
> +	}
> +	if (base == 0)
> +		base = c == '0' ? 8 : 10;
> +
> +	/*
> +	 * Compute the cutoff value between legal numbers and illegal
> +	 * numbers.  That is the largest legal value, divided by the
> +	 * base.  An input number that is greater than this value, if
> +	 * followed by a legal input character, is too big.  One that
> +	 * is equal to this value may be valid or not; the limit
> +	 * between valid and invalid numbers is then based on the last
> +	 * digit.  For instance, if the range for quads is
> +	 * [-9223372036854775808..9223372036854775807] and the input base
> +	 * is 10, cutoff will be set to 922337203685477580 and cutlim to
> +	 * either 7 (neg==0) or 8 (neg==1), meaning that if we have
> +	 * accumulated a value > 922337203685477580, or equal but the
> +	 * next digit is > 7 (or 8), the number is too big, and we will
> +	 * return a range error.
> +	 *
> +	 * Set any if any `digits' consumed; make it negative to indicate
> +	 * overflow.
> +	 */
> +	qbase = (unsigned int)base;
> +	cutoff = neg
> +		     ? (unsigned long long)LLONG_MAX
> +			   - (unsigned long long)(LLONG_MIN + LLONG_MAX)
> +		     : LLONG_MAX;
> +	cutlim = cutoff % qbase;
> +	cutoff /= qbase;
> +	for (acc = 0, any = 0;; c = *s++) {
> +		if (!isascii(c))
> +			break;
> +		if (isdigit(c))
> +			c -= '0';
> +		else if (isalpha(c))
> +			c -= isupper(c) ? 'A' - 10 : 'a' - 10;
> +		else
> +			break;
> +		if (c >= base)
> +			break;
> +		if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
> +			any = -1;
> +		else {
> +			any = 1;
> +			acc *= qbase;
> +			acc += c;
> +		}
> +	}
> +	if (any < 0) {
> +		errno = ERANGE;
> +		acc = neg ? LLONG_MIN : LLONG_MAX;
> +	} else if (neg)
> +		acc = -acc;
> +
> +exit:
> +	if (endptr != 0)
> +		*endptr = __DECONST(char *, any ? s - 1 : nptr);
> +	return acc;
> +}
> +
> +/*
> + * Convert a string to an unsigned long long integer.
> + *
> + * Ignores `locale' stuff.  Assumes that the upper and lower case
> + * alphabets and digits are each contiguous.
> + */
> +unsigned long long strtoull_isr(const char *nptr, char **endptr, int base)
> +{
> +	const char *s = nptr;
> +	unsigned long long acc;
> +	unsigned char c;
> +	unsigned long long qbase, cutoff;
> +	int neg, any, cutlim;
> +
> +	if (base < 0 || base == 1 || base > 36) {
> +		errno = -EINVAL;
> +		any = 0;
> +		acc = 0;
> +		goto exit;
> +	}
> +	/*
> +	 * See strtoq for comments as to the logic used.
> +	 */
> +	do {
> +		c = *s++;
> +	} while (isspace(c));
> +	if (c == '-') {
> +		neg = 1;
> +		c = *s++;
> +	} else {
> +		neg = 0;
> +		if (c == '+')
> +			c = *s++;
> +	}
> +	if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) {
> +		c = s[1];
> +		s += 2;
> +		base = 16;
> +	}
> +	if (base == 0)
> +		base = c == '0' ? 8 : 10;
> +	qbase = (unsigned int)base;
> +	cutoff = (unsigned long long)ULLONG_MAX / qbase;
> +	cutlim = (unsigned long long)ULLONG_MAX % qbase;
> +	for (acc = 0, any = 0;; c = *s++) {
> +		if (!isascii(c))
> +			break;
> +		if (isdigit(c))
> +			c -= '0';
> +		else if (isalpha(c))
> +			c -= isupper(c) ? 'A' - 10 : 'a' - 10;
> +		else
> +			break;
> +		if (c >= base)
> +			break;
> +		if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
> +			any = -1;
> +		else {
> +			any = 1;
> +			acc *= qbase;
> +			acc += c;
> +		}
> +	}
> +	if (any < 0) {
> +		errno = ERANGE;
> +		acc = ULLONG_MAX;
> +	} else if (neg)
> +		acc = -acc;
> +
> +exit:
> +	if (endptr != 0)
> +		*endptr = __DECONST(char *, any ? s - 1 : nptr);
> +	return acc;
> +}
> +
> +int atoi_isr(const char *s)
> +{
> +	long long atoll;
> +
> +	atoll = strtoll_isr(s, NULL, 10);
> +	atoll = (atoll > __I_MAX) ? __I_MAX : atoll;
> +	atoll = (atoll < __I_MIN) ? __I_MIN : atoll;
> +
> +	return (int) atoll;
> +}
> diff --git a/lib/isrlib/string.c b/lib/isrlib/string.c
> new file mode 100644
> index 0000000..d599294
> --- /dev/null
> +++ b/lib/isrlib/string.c
> @@ -0,0 +1,325 @@
> +/* SPDX-License-Identifier: BSD-3-Clause AND MIT */
> +/*
> + * Authors: Simon Kuenzer <simon.kuenzer@neclab.eu>
> + * Authors: Cristian Vijelie <cristianvijelie@gmail.com>
> + *
> + * Copyright (c) 2017, NEC Europe Ltd., NEC Corporation. All rights reserved.
> + * Copyright (c) 2020, University Politehnica of Bucharest. All rights reserved.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + *
> + * 1. Redistributions of source code must retain the above copyright
> + *    notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + *    notice, this list of conditions and the following disclaimer in the
> + *    documentation and/or other materials provided with the distribution.
> + * 3. Neither the name of the copyright holder nor the names of its
> + *    contributors may be used to endorse or promote products derived from
> + *    this software without specific prior written permission.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> + * POSSIBILITY OF SUCH DAMAGE.
> + *
> + */
> +/* For the parts taken from musl (marked as such below), the MIT licence
> + * applies instead:
> + * ----------------------------------------------------------------------
> + * Copyright (c) 2005-2014 Rich Felker, et al.
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining
> + * a copy of this software and associated documentation files (the
> + * "Software"), to deal in the Software without restriction, including
> + * without limitation the rights to use, copy, modify, merge, publish,
> + * distribute, sublicense, and/or sell copies of the Software, and to
> + * permit persons to whom the Software is furnished to do so, subject to
> + * the following conditions:
> + *
> + * The above copyright notice and this permission notice shall be
> + * included in all copies or substantial portions of the Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
> + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
> + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
> + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
> + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
> + * ----------------------------------------------------------------------
> + */
> +
> +#include <uk/isr/string.h>
> +#include <uk/arch/types.h>
> +#include <stdint.h>
> +#include <limits.h>
> +
> +void *memcpy_isr(void *dst, const void *src, size_t len)
> +{
> +	size_t p;
> +
> +	for (p = 0; p < len; ++p)
> +		*((__u8 *)(((__uptr)dst) + p)) = *((__u8 *)(((__uptr)src) + p));
> +
> +	return dst;
> +}
> +
> +void *memset_isr(void *ptr, int val, size_t len)
> +{
> +	__u8 *p = (__u8 *) ptr;
> +
> +	for (; len > 0; --len)
> +		*(p++) = (__u8)val;
> +
> +	return ptr;
> +}
> +
> +void *memchr_isr(const void *ptr, int val, size_t len)
> +{
> +	uintptr_t o = 0;
> +
> +	for (o = 0; o < (uintptr_t)len; ++o)
> +		if (*((const uint8_t *)(((uintptr_t)ptr) + o)) == (uint8_t)val)
> +			return (void *)((uintptr_t)ptr + o);
> +
> +	return NULL; /* did not find val */
> +}
> +
> +void *memrchr_isr(const void *m, int c, size_t n)
> +{
> +	const unsigned char *s = m;
> +
> +	c = (unsigned char) c;
> +	while (n--)
> +		if (s[n] == c)
> +			return (void *) (s + n);
> +	return 0;
> +}
> +
> +void *memmove_isr(void *dst, const void *src, size_t len)
> +{
> +	uint8_t *d = dst;
> +	const uint8_t *s = src;
> +
> +	if (src > dst) {
> +		for (; len > 0; --len)
> +			*(d++) = *(s++);
> +	} else {
> +		s += len;
> +		d += len;
> +
> +		for (; len > 0; --len)
> +			*(d--) = *(s--);
> +	}
> +
> +	return dst;
> +}
> +
> +int memcmp_isr(const void *ptr1, const void *ptr2, size_t len)
> +{
> +	const unsigned char *c1 = (const unsigned char *)ptr1;
> +	const unsigned char *c2 = (const unsigned char *)ptr2;
> +
> +	for (; len > 0; --len, ++c1, ++c2) {
> +		if ((*c1) != (*c2))
> +			return ((*c1) - (*c2));
> +	}
> +
> +	return 0;
> +}
> +
> +size_t strlen_isr(const char *str)
> +{
> +	return strnlen_isr(str, SIZE_MAX);
> +}
> +
> +size_t strnlen_isr(const char *str, size_t len)
> +{
> +	const char *p = memchr_isr(str, 0, len);
> +	return p ? (size_t) (p - str) : len;
> +}
> +
> +char *strncpy_isr(char *dst, const char *src, size_t len)
> +{
> +	size_t clen;
> +
> +	clen = strnlen_isr(src, len);
> +	memcpy_isr(dst, src, clen);
> +
> +	/* instead of filling up the rest of left space with zeros,
> +	 * append a termination character if we did not copy one
> +	 */
> +	if (clen < len && dst[clen - 1] != '\0')
> +		dst[clen] = '\0';
> +	return dst;
> +}
> +
> +char *strcpy_isr(char *dst, const char *src)
> +{
> +	return strncpy_isr(dst, src, SIZE_MAX);
> +}
> +
> +int strncmp_isr(const char *str1, const char *str2, size_t len)
> +{
> +	const char *c1 = (const char *)str1;
> +	const char *c2 = (const char *)str2;
> +
> +	for (; len > 0; --len, ++c1, ++c2) {
> +		if ((*c1) != (*c2))
> +			return (int)((*c1) - (*c2));
> +		if ((*c1) == '\0')
> +			break;
> +	}
> +	return 0;
> +}
> +
> +int strcmp_isr(const char *str1, const char *str2)
> +{
> +	register signed char __res;
> +
> +	while ((__res = *str1 - *str2++) == 0 && *str1++)
> +		;
> +
> +	return __res;
> +}
> +
> +/* The following code is taken from musl libc */
> +#define ALIGN (sizeof(size_t))
> +#define ONES ((size_t) -1 / UCHAR_MAX)
> +#define HIGHS (ONES * (UCHAR_MAX / 2 + 1))
> +#define HASZERO(x) (((x) - ONES) & ~(x) & HIGHS)
> +#define BITOP(a, b, op) \
> +		((a)[(size_t)(b) / (8*sizeof *(a))] op \
> +		(size_t)1 << ((size_t)(b) % (8 * sizeof *(a))))
> +
> +char *strchrnul_isr(const char *s, int c)
> +{
> +	size_t *w, k;
> +
> +	c = (unsigned char)c;
> +	if (!c)
> +		return (char *)s + strlen_isr(s);
> +
> +	for (; (uintptr_t)s % ALIGN; s++)
> +		if (!*s || *(unsigned char *)s == c)
> +			return (char *)s;
> +	k = ONES * c;
> +	for (w = (void *)s; !HASZERO(*w) && !HASZERO(*w ^ k); w++)
> +		;
> +	for (s = (void *)w; *s && *(unsigned char *)s != c; s++)
> +		;
> +	return (char *)s;
> +}
> +
> +char *strchr_isr(const char *str, int c)
> +{
> +	char *r = strchrnul_isr(str, c);
> +	return *(unsigned char *)r == (unsigned char)c ? r : 0;
> +}
> +
> +char *strrchr_isr(const char *s, int c)
> +{
> +	return memrchr_isr(s, c, strlen_isr(s) + 1);
> +}
> +
> +size_t strcspn_isr(const char *s, const char *c)
> +{
> +	const char *a = s;
> +	size_t byteset[32 / sizeof(size_t)];
> +
> +	if (!c[0] || !c[1])
> +		return strchrnul_isr(s, *c)-a;
> +
> +	memset_isr(byteset, 0, sizeof(byteset));
> +	for (; *c && BITOP(byteset, *(unsigned char *)c, |=); c++)
> +		;
> +	for (; *s && !BITOP(byteset, *(unsigned char *)s, &); s++)
> +		;
> +	return s-a;
> +}
> +
> +size_t strspn_isr(const char *s, const char *c)
> +{
> +	const char *a = s;
> +	size_t byteset[32 / sizeof(size_t)] = { 0 };
> +
> +	if (!c[0])
> +		return 0;
> +	if (!c[1]) {
> +		for (; *s == *c; s++)
> +			;
> +		return s-a;
> +	}
> +
> +	for (; *c && BITOP(byteset, *(unsigned char *)c, |=); c++)
> +		;
> +	for (; *s && BITOP(byteset, *(unsigned char *)s, &); s++)
> +		;
> +	return s-a;
> +}
> +
> +char *strtok_isr(char *restrict s, const char *restrict sep, char **restrict p)
> +{
> +	if (!s && !(s = *p))
> +		return NULL;
> +	s += strspn_isr(s, sep);
> +	if (!*s)
> +		return *p = 0;
> +	*p = s + strcspn_isr(s, sep);
> +	if (**p)
> +		*(*p)++ = 0;
> +	else
> +		*p = 0;
> +	return s;
> +}
> +
> +/* strlcpy has different ALIGN */
> +#undef ALIGN
> +#define ALIGN (sizeof(size_t)-1)
> +size_t strlcpy_isr(char *d, const char *s, size_t n)
> +{
> +	char *d0 = d;
> +	size_t *wd;
> +	const size_t *ws;
> +
> +	if (!n--)
> +		goto finish;
> +
> +	if (((uintptr_t)s & ALIGN) == ((uintptr_t)d & ALIGN)) {
> +		for (; ((uintptr_t) s & ALIGN) && n && (*d = *s);
> +		     n--, s++, d++)
> +			;
> +
> +		if (n && *s) {
> +			wd = (void *)d; ws = (const void *)s;
> +			for (; n >= sizeof(size_t) && !HASZERO(*ws);
> +			     n -= sizeof(size_t), ws++, wd++)
> +				*wd = *ws;
> +
> +			d = (void *)wd; s = (const void *)ws;
> +		}
> +	}
> +
> +	for (; n && (*d = *s); n--, s++, d++)
> +		;
> +	*d = 0;
> +finish:
> +	return d-d0 + strlen_isr(s);
> +}
> +
> +size_t strlcat_isr(char *d, const char *s, size_t n)
> +{
> +	size_t l = strnlen_isr(d, n);
> +	if (l == n)
> +		return l + strlen_isr(s);
> +	return l + strlcpy_isr(d+l, s, n-l);
> +}
> 


From minios-devel-bounces@lists.xenproject.org Tue Mar 30 09:26:05 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 30 Mar 2021 09:26:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.103367.197233 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lRAdM-0005hO-OZ; Tue, 30 Mar 2021 09:26:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 103367.197233; Tue, 30 Mar 2021 09:26:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lRAdM-0005hH-Li; Tue, 30 Mar 2021 09:26:00 +0000
Received: by outflank-mailman (input) for mailman id 103367;
 Tue, 30 Mar 2021 09:25:59 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mdVL=I4=gmail.com=virtanrazvan@srs-us1.protection.inumbo.net>)
 id 1lRAdL-0005hC-1S
 for minios-devel@lists.xen.org; Tue, 30 Mar 2021 09:25:59 +0000
Received: from mail-ed1-x52b.google.com (unknown [2a00:1450:4864:20::52b])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 5142a601-7c7b-4325-8e01-8d48bf10161f;
 Tue, 30 Mar 2021 09:25:57 +0000 (UTC)
Received: by mail-ed1-x52b.google.com with SMTP id x21so17371509eds.4
 for <minios-devel@lists.xen.org>; Tue, 30 Mar 2021 02:25:57 -0700 (PDT)
Received: from razvan-Lenovo-Legion-Y530-15ICH.local
 ([2a02:2f08:c211:9400:8dbc:4917:241b:d593])
 by smtp.gmail.com with ESMTPSA id nd36sm9712385ejc.21.2021.03.30.02.25.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Mar 2021 02:25:56 -0700 (PDT)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5142a601-7c7b-4325-8e01-8d48bf10161f
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=2J75PjSZfLLWejyc4/rS7BBNUAl9074LAj/UL1bc+ag=;
        b=XbjczNzhW5logHhaJyBbWtOfqlN6SVNoaNi+yoLIx2HxqaaKKFCDudkcAN4n4pNKlN
         dC66XIAUOAOkczu1DXrIFdegzEBL/sw430hW7/snhyc1Rm2kWJk+wJKGNzgp+cIvncb1
         YrZSBXXpYocpqyHsIj/hZatpwRNgGhZet9yv/EXVmrSlfRsSDREV9JTBXYfJ4r7yuajt
         jDeshhxb8JN09QV5x/krJnPoEyjxCT62XSfwSRbfu8jR2zIOwDPNwHox+GdNDm3t+MzU
         Ks+JWBJmbctXpaybEhVzZRPOfMeU3yoYhcC6ea9WuE2TfT3ckDPSO47G8RYZBxTHpyu0
         IgSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=2J75PjSZfLLWejyc4/rS7BBNUAl9074LAj/UL1bc+ag=;
        b=dCYWvfFMtnGld2HfJ4wgaILaLDoa1SpR2WpjKSJx5kZC4NSEaz+h11zVxfxm5PFh8m
         VlgtAALJMtWC9AQAjHZ5/SO8QrovB2R7Gi+4HDP6ZxT652epf1NZ1h85EcYzL6467/1f
         Ft66hW/3QarAMYCxL6XWx8Uvvv9cZS/pj7OKQBzYcS+CDEUDuNYq13K9bWf8AIlv88tF
         oT0/Vy/49TiZ9ACsVFf2stP1KYSFiCVjI0Qa3TdtFNsxO8GueqR2GhW742m7GvKe/VOL
         bv2j/PaD5qB7jWdAee5mlQ9AvK1QOt72iHhtIzsqFp43oV19c45KT14CZGdUC1vBrGo5
         oO5A==
X-Gm-Message-State: AOAM533nPCwjIagqrFck0cM6tse/IZuAPAE3550SrUCGg7mgO7qFRnMs
	/Xej5Iy503pRp1jUxNaGcR1vN2mDLVZAdQ==
X-Google-Smtp-Source: ABdhPJxSSRMSiicvpQPB9DqVCoUpRaKVL3thzLixqnPn3VU52G58xfhbnETPk2N/wWx1KIXi9msbfA==
X-Received: by 2002:a05:6402:31e9:: with SMTP id dy9mr33187376edb.186.1617096356958;
        Tue, 30 Mar 2021 02:25:56 -0700 (PDT)
From: Razvan Virtan <virtanrazvan@gmail.com>
X-Google-Original-From: Razvan Virtan <razvanvirtan@gmail.com>
To: justin.he@arm.com
Cc: minios-devel@lists.xen.org
Subject: Re: [RFCv4,18/35] plat/pci_bus: Pass memory allocation parameter to arch_pci_probe
Date: Tue, 30 Mar 2021 12:25:54 +0300
Message-Id: <20210330092554.13827-1-razvanvirtan@gmail.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20201223073857.118076-19-justin.he@arm.com>
References: <20201223073857.118076-19-justin.he@arm.com>

Hi, Justin.
I don't think we should set the memory allocation parameter as __unused on x86,
because we will need it to initialize the allocation field "ph.a" of the static
platform handler from "pci_bus_x86.c" (see my review mails on patch 17/35):


int arch_pci_probe(struct uk_alloc *pha __unused)
becomes simply
int arch_pci_probe(struct uk_alloc *pha)


Reviewed-by: Razvan Virtan <virtanrazvan@gmail.com>


From minios-devel-bounces@lists.xenproject.org Tue Mar 30 12:09:11 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 30 Mar 2021 12:09:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.103472.197391 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lRDBF-0006zK-7Y; Tue, 30 Mar 2021 12:09:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 103472.197391; Tue, 30 Mar 2021 12:09:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lRDBF-0006zD-4a; Tue, 30 Mar 2021 12:09:09 +0000
Received: by outflank-mailman (input) for mailman id 103472;
 Tue, 30 Mar 2021 12:09:07 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mdVL=I4=gmail.com=virtanrazvan@srs-us1.protection.inumbo.net>)
 id 1lRDBD-0006z8-Pj
 for minios-devel@lists.xen.org; Tue, 30 Mar 2021 12:09:07 +0000
Received: from mail-ej1-x62f.google.com (unknown [2a00:1450:4864:20::62f])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id f3c5aeaa-2f1c-4595-b1c7-1c613aa72a45;
 Tue, 30 Mar 2021 12:09:06 +0000 (UTC)
Received: by mail-ej1-x62f.google.com with SMTP id u21so24399271ejo.13
 for <minios-devel@lists.xen.org>; Tue, 30 Mar 2021 05:09:06 -0700 (PDT)
Received: from razvan-Lenovo-Legion-Y530-15ICH.local
 ([2a02:2f08:c211:9400:8dbc:4917:241b:d593])
 by smtp.gmail.com with ESMTPSA id mp12sm9833172ejc.1.2021.03.30.05.09.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Mar 2021 05:09:05 -0700 (PDT)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f3c5aeaa-2f1c-4595-b1c7-1c613aa72a45
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=IwtOOAwLBOcFct3g76br2Jq0yrBcWCQ6luwu1AKO84I=;
        b=UGCbvGWZZ2cGWp3FbCKxLp1wCEvnJZCJcuU5kMYuk0fBu1b30MoltG43h0nv2Du27G
         +z+JVqj2IefI4DTt9LatKgOz7IDSxwO06HiV5bArL7T6RWyziywpXUzmCC5LidmyGpIO
         iO1f/Dcog+Rtey78e1+fdMpDMc8H17NxOBW16+fF16Kq2/dP5SXY/9oR4EEs7v/bGxo2
         vMGITeomKvNxTKNklvVuQeKufuQzRsfL4C2O5bZ8d+qX7LIejX0jP1eLsMmo/yWJLwt3
         Ohr+GdTJ5Z7zG/8ZmKUvmIQYdafqsA6Fz6U5mDi1KcYG3ibUbgG7zGjScS3EDQApX+Au
         UZMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=IwtOOAwLBOcFct3g76br2Jq0yrBcWCQ6luwu1AKO84I=;
        b=QWGCy9d5L3HqQ+oImNsgdhaHNO1+dubLg6U+pD1UiwJhkh2AkeUIvRpA8qZ5BUzKnk
         Ws2rboQi5wKkNMW6LgHUm/L4QB1zZamzGPiQe1UCNuk49MoIZ1pZd6Jwo2VlPCSKSqRg
         8vmeTmVbioUoWwK0yFIa5NPFPofztPTb5FpKA6MJmoeqCG7AXMrcezOflRTE7BAWapIm
         bqVzlcohvH0/uJE/q2Va54ojJeWoixp4Qa3UpDdwVmoDNv36yxEdj2NqtPeMozGjpKkw
         qKssnRkf49g72NQyWTDTtGEZMXN4d+nnoXy1yM2m91MhDmllXj3XLsdVFmj2bIitdCkc
         BEIA==
X-Gm-Message-State: AOAM532KPrP/IQHEWzwt6UDfR04m3kmILq3R6un7AtfC4m20NghpUIL6
	dTsxJB8cYf5Sm0p4TczE2Cs=
X-Google-Smtp-Source: ABdhPJyovIHdo4av4g6ZF9TOZxvD64yOtGXSt/ybQQ0zdGp8t/ZiT0WNSAnhlfcMH7T9UR7ff6RNjw==
X-Received: by 2002:a17:907:d0b:: with SMTP id gn11mr32815127ejc.463.1617106145976;
        Tue, 30 Mar 2021 05:09:05 -0700 (PDT)
From: Razvan Virtan <virtanrazvan@gmail.com>
X-Google-Original-From: Razvan Virtan <razvanvirtan@gmail.com>
To: justin.he@arm.com
Cc: minios-devel@lists.xen.org
Subject: Re: [RFCv4,15/35] lib/fdt: Fix fdt_address_cell and fdt_size_cell
Date: Tue, 30 Mar 2021 15:09:04 +0300
Message-Id: <20210330120904.21033-1-razvanvirtan@gmail.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20201223073857.118076-16-justin.he@arm.com>
References: <20201223073857.118076-16-justin.he@arm.com>

In the "fdt_address_cell()" description from "libfdt.h", it is specified that
this function should return "-FDT_ERR_BADNCELLS, if the node has a badly formatted
or invalid  #address-cells property" (similarly for "fdt_size_cells()").

Therefore, shouldn't we keep the following checks:

```if (len != sizeof(*prop))
	return -FDT_ERR_BADNCELLS;```

and

```int val = fdt32_to_cpu(*prop);
	if ((val <= 0) || (val > FDT_MAX_NCELLS))
		return -FDT_ERR_BADNCELLS;```

before returning the actual value (or update the description in "libfdt.h")?

Reviewed-by: Razvan Virtan <virtanrazvan@gmail.com>


From minios-devel-bounces@lists.xenproject.org Wed Mar 31 16:08:20 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 31 Mar 2021 16:08:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.104013.198475 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lRdOC-0003oj-St; Wed, 31 Mar 2021 16:08:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 104013.198475; Wed, 31 Mar 2021 16:08:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1lRdOC-0003ob-Pm; Wed, 31 Mar 2021 16:08:16 +0000
Received: by outflank-mailman (input) for mailman id 104013;
 Wed, 31 Mar 2021 16:08:15 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=III7=I5=gmail.com=virtanrazvan@srs-us1.protection.inumbo.net>)
 id 1lRdOB-0003oW-Ol
 for minios-devel@lists.xen.org; Wed, 31 Mar 2021 16:08:15 +0000
Received: from mail-ed1-x52c.google.com (unknown [2a00:1450:4864:20::52c])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 82993fbc-8be0-481c-aa22-0e9fa7289df4;
 Wed, 31 Mar 2021 16:08:15 +0000 (UTC)
Received: by mail-ed1-x52c.google.com with SMTP id o19so22959606edc.3
 for <minios-devel@lists.xen.org>; Wed, 31 Mar 2021 09:08:14 -0700 (PDT)
Received: from razvan-Lenovo-Legion-Y530-15ICH.local
 ([2a02:2f08:c211:9400:55af:3154:881d:b9d4])
 by smtp.gmail.com with ESMTPSA id h15sm1894108edb.74.2021.03.31.09.08.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Mar 2021 09:08:13 -0700 (PDT)
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 82993fbc-8be0-481c-aa22-0e9fa7289df4
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=0DrMBGwrlVxLZhPnL7T+xA2kPWHKW/MUG5FqQL0UD4g=;
        b=o9Q/imnVVx3v+bNxmlia63TsEcnhfZcUwaTk/xC71AZgnK0dBSBSMqBakgyWAaSoDt
         FtCFJ/zo5Sdg9OoEtI2AshPNWonLhSqrCrveRggDY6OFK6FSTzi13BhzMzsLqMaPCIbj
         37Kuz6UjsUbhRKpbyg39jo6OiN/Le/vgYAc0ZqYm6JeOdiZncvf4hFyGYKmnXpPHhooE
         XDqaSPhNP57oo2uo4fO+dWXc16lDhHDRVx5pCzaozSAX/GcPOZjVHFS3XXXUO1BWZA9F
         xXvQ/sqmK9wJUdlxi7Y/97mPTj340qaDYipNw+dYDMLFhuQl/tVUIK+OF+6XYhEQZ5+U
         6Lqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=0DrMBGwrlVxLZhPnL7T+xA2kPWHKW/MUG5FqQL0UD4g=;
        b=DULGIYU35saatCA9t/+1rCmLCMvG/miG0e5o6tkgOrxd+RQhMeyRBZE8lcMRvyC4Vt
         HXe0qSD8F6dOnNoKf34gTx1AodwZdSNCyHLcD6eCWp5KLsXvxPHROPojTSkme/ulXxng
         lUgSZ4i13xyU1x5VUHCXJ8OP2luhXKNCF8vBLh+AO9bj53ogletka3hWcSww3l212XYT
         gO1eCRPUW9aHMvYPrqBxRkQfFG37NMzo5JBIxCSj1hX6RgxoRRlknoAo63xBSDE7Cb+/
         brbovBmnO8/iixEvRpLJOLSYpFjsXnjOjlrY+TOj5B6x1hbkF0KW84xIO6zMcF9MYoud
         RmrA==
X-Gm-Message-State: AOAM531poYcrx5WMOcGatTxH1GD2t5hop2yMNKN+ss1EJ5TlpKAqYnYQ
	sH81ehlnfELPTZuVJQg4sl0=
X-Google-Smtp-Source: ABdhPJwykQY43ay/Wf5DLn06WS0/JFnv2oKsE4KUxFbHjIwOHACRmJDBHCpXwBNafdW4zSs9Y77rCg==
X-Received: by 2002:a05:6402:9:: with SMTP id d9mr4586380edu.67.1617206894059;
        Wed, 31 Mar 2021 09:08:14 -0700 (PDT)
From: Razvan Virtan <virtanrazvan@gmail.com>
X-Google-Original-From: Razvan Virtan <razvanvirtan@gmail.com>
To: justin.he@arm.com
Cc: minios-devel@lists.xen.org
Subject: Re: [RFCv4,16/35] plat/ofw: Add fdt_prop_read_bool
Date: Wed, 31 Mar 2021 19:08:12 +0300
Message-Id: <20210331160812.21378-1-razvanvirtan@gmail.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20201223073857.118076-17-justin.he@arm.com>
References: <20201223073857.118076-17-justin.he@arm.com>

Hello, Justin.
All good with this patch.

Reviewed-by: Razvan Virtan <virtanrazvan@gmail.com>


