tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Proposed change to makesyscalls.sh



    Date:        Mon, 6 Aug 2018 07:06:42 +0800 (+08)
    From:        Paul Goyette <paul%whooppee.com@localhost>
    Message-ID:  <Pine.NEB.4.64.1808060645020.6766%speedy.whooppee.com@localhost>

  | I looked into using bitstring(3) operations, but since that stuff "lives
  | in" /usr/include/bitstring.h it wasn't clear if using it in kernel code
  | would be appropriate.

Doesn't matter much either way, when all you need is test (plus set,
if you're doing it dynamically, rather than pre-prepared) and you
don't need all the other crap that is in there, then the ops are trivial
and can just be open coded if using that seems like a poor idea
-- which I think it would be, the kernel should be self-contained and
use only what is in /usr/src/sys (plus the common stuff)).

  | My initial pass at this was to maintain the bit vector at run-time
  | rather than having makesyscalls.sh calculate the value.  The cost to
  | set the bits in syscall_establish() is not very large.

EIther way, but that makes the kernel fractionally bigger for no real
benefit - if it can be done at compile time, let it be.

  | The only drawback here is to add a new entry to struct emul to point
  | at the bit vector,

Sure.

  | and to initialize it in every place that the entrypoint array is initialized.

Whenever e_sysent is set, so shall be the new one.  How many places
can there be?

  | FWIW, what would you suggest as the name of a new struct emul member
  | (in sys/proc.h)?

Naming ... not my strong suit...   e_sc_nomodbits  ?

  | I'm beginning to think that this change really isn't worthwhile.

Not my decision.   Just suggesting a possibility.   As you know (I am sure)
I never use modules (for anything at all, so every time someone suggests
dtrace as useful for anything my skin crawls) so it makes no difference to me.

kre




Home | Main Index | Thread Index | Old Index