Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Aug 2016 16:32:45 +0200
From:      Christian Mauderer <christian.mauderer@embedded-brains.de>
To:        Kristof Provost <kp@FreeBSD.org>
Cc:        "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   Re: Changes to pfctl to allow easier integration into a library
Message-ID:  <a2479a3c-031c-c137-78a9-8a8f34a12100@embedded-brains.de>
In-Reply-To: <0C7EC45D-C3BC-4417-AF77-3ACC027D28B5@FreeBSD.org>
References:  <25df9fd5-be75-b9ae-aa3a-22abef3bddf0@embedded-brains.de> <cb7c6bb6-8160-3524-5432-d4ff46e16af5@embedded-brains.de> <0C7EC45D-C3BC-4417-AF77-3ACC027D28B5@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Am 01.08.2016 um 16:02 schrieb Kristof Provost:
> On 1 Aug 2016, at 15:03, Christian Mauderer wrote:
>> Can I improve anything to make the patches more acceptable?
>>
> Can you explain why
> 0003-pfctl-Pull-static-variables-out-of-the-function.patch is required?
> I=E2=80=99m not sure I see why you need it.
>=20
>> Is the virtualisation that Bjoern mentioned necessary or was my
>> interpretation correct that this is only meant for kernel space code?
> I believe your interpretations is correct.
> User land code should not have to care about VIMAGE.
>=20
> Regards,
> Kristof

Hello Kristof,

I use roughly the following method for the global variables:

- I put all initialized (zero or value) variables into a special named
linker section.
- In a wrapper around main() I do the following:
  o First save the content of the section to a temporary memory space
  o Execute the original (mostly unchanged) main()
  o After main() finishes, I restore the content of the section

To simplify a later update to a newer source version, the difference
between the sources we use and the original FreeBSD sources should be
minimal. Therefore my attempt to put the variables into a section is the
following:

I create a header file (i.e. pfctl-data.h) that contains a matching
declaration of the global variables but with an added gcc attribute
__attribute__((__section__("my_section_name"))). This header file is
included at the end of the original pfctl.c.

Problem is: This method doesn't work for a static variable that is
defined inside a function. Therefore I pulled them out of the functions
and put them into the scope of the c module.

Kind regards

Christian Mauderer
--=20
--------------------------------------------
embedded brains GmbH
Christian Mauderer
Dornierstr. 4
D-82178 Puchheim
Germany
email: christian.mauderer@embedded-brains.de
Phone: +49-89-18 94 741 - 18
Fax:   +49-89-18 94 741 - 08
PGP: Public key available on request.

Diese Nachricht ist keine gesch=C3=A4ftliche Mitteilung im Sinne des EHUG=
.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?a2479a3c-031c-c137-78a9-8a8f34a12100>