sysctl variable question

Fernando Apesteguía fernando.apesteguia at gmail.com
Sun Dec 18 22:52:26 UTC 2011


El 18/12/2011 22:12, "Julian Elischer" <julian at freebsd.org> escribió:
>
> On 12/18/11 12:18 PM, Fernando Apesteguía wrote:
>>
>> Hi all,
>>
>> I'm writing a small module just for fun. I would like to have two
variables:
>>
>> - "pid" of type unsigned int and RW so the user can set a pid
>> - "process_name" as a string RD that will display the process name
>> associated to that pid (or a message if the pid doesn't exist anymore)
>
>
> this is dangerous as there are some places in the kernel where processes
> are referenced by pid, so changing it may break kernel assumptions.

Sorry, i think i didn't explain it clearly. The "pid" variable is static in
my module and it is used just to tell the module which information it
should show in the other variable.

>>
>> My problem is with the handler functions. For "process_name", as it is
>> read only, I wrote a simple handler that works fine. However, I want
>> to write another one for "pid" so I can sanitize the input (avoiding
>> pids<  0 and so). As I understand, the handler I specify with
>> SYSCTL_OID will be called for both reads and writes. But, how can I
>> tell what kind of operation is it, so I know if I have to use
>> SYSCTL_OUT or SYSCTL_IN? I tried to have a look at sysctl_handle_int
>> but I don't fully understand what is going on with the arg1 parameter.
>> What is it for?
>>
>> Thanks in advance.
>> _______________________________________________
>> freebsd-hackers at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
>> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org
"
>>
>


More information about the freebsd-hackers mailing list