4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 1 /*
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 2 Direct Hardware Access kernel helper
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 3
10416
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 4 (C) 2002 Alex Beregszaszi <alex@fsn.hu>
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 5
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 6 Accessing hardware from userspace as USER (no root needed!)
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 7
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 8 Tested on 2.2.x (2.2.19) and 2.4.x (2.4.3,2.4.17).
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 9
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 10 License: GPL
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 11
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 12 WARNING! THIS MODULE VIOLATES SEVERAL SECURITY LINES! DON'T USE IT
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 13 ON PRODUCTION SYSTEMS, ONLY AT HOME, ON A "SINGLE-USER" SYSTEM.
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 14 NO WARRANTY!
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 15
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 16 Tech:
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 17 Communication between userspace and kernelspace goes over character
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 18 device using ioctl.
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 19
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 20 Usage:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 21 mknod -m 666 /dev/dhahelper c 180 0
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 22
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 23 Also you can change the major number, setting the "dhahelper_major"
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 24 module parameter, the default is 180, specified in dhahelper.h.
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 25
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 26 Note: do not use other than minor==0, the module forbids it.
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 27
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 28 TODO:
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 29 * do memory mapping without fops:mmap
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 30 * implement unmap memory
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 31 * select (request?) a "valid" major number (from Linux project? ;)
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 32 * make security
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 33 * is pci handling needed? (libdha does this with lowlevel port funcs)
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 34 * is mttr handling needed?
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 35 * test on older kernels (2.0.x (?))
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 36 */
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 37
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 38 #ifndef MODULE
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 39 #define MODULE
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 40 #endif
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 41
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 42 #ifndef __KERNEL__
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 43 #define __KERNEL__
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 44 #endif
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 45
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 46 #include <linux/config.h>
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 47
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 48 #ifdef CONFIG_MODVERSION
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 49 #define MODVERSION
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 50 #include <linux/modversions.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 51 #endif
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 52
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 53 #include <linux/version.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 54 #include <linux/module.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 55 #include <linux/types.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 56 #include <linux/kernel.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 57 #include <linux/sched.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 58 #include <linux/mm.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 59 #include <linux/string.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 60 #include <linux/errno.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 61
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 62 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,10)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 63 #include <linux/malloc.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 64 #else
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 65 #include <linux/slab.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 66 #endif
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 67
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 68 #include <linux/pci.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 69 #include <linux/ioport.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 70 #include <linux/init.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 71
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 72 #include <asm/uaccess.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 73 #include <asm/system.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 74 #include <asm/io.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 75
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 76 #include <linux/mman.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 77
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 78 #include <linux/fs.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 79 #include <linux/unistd.h>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 80
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 81 #include "dhahelper.h"
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 82
10416
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 83 MODULE_AUTHOR("Alex Beregszaszi <alex@fsn.hu>");
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 84 MODULE_DESCRIPTION("Provides userspace access to hardware (security violation!)");
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 85 #ifdef MODULE_LICENSE
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 86 MODULE_LICENSE("GPL");
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 87 #endif
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 88
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 89 static int dhahelper_major = DEFAULT_MAJOR;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 90 MODULE_PARM(dhahelper_major, "i");
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 91 MODULE_PARM_DESC(dhahelper_major, "Major number of dhahelper characterdevice");
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 92
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 93 /* 0 = silent */
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 94 /* 1 = report errors (default) */
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 95 /* 2 = debug */
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 96 static int dhahelper_verbosity = 1;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 97 MODULE_PARM(dhahelper_verbosity, "i");
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 98 MODULE_PARM_DESC(dhahelper_verbosity, "Level of verbosity (0 = silent, 1 = only errors, 2 = debug)");
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 99
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 100 static dhahelper_memory_t last_mem_request;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 101
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 102
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 103 static int dhahelper_open(struct inode *inode, struct file *file)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 104 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 105 if (dhahelper_verbosity > 1)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 106 printk(KERN_DEBUG "dhahelper: device opened\n");
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 107
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 108 if (MINOR(inode->i_rdev) != 0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 109 return(-ENXIO);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 110
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 111 MOD_INC_USE_COUNT;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 112
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 113 return(0);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 114 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 115
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 116 static int dhahelper_release(struct inode *inode, struct file *file)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 117 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 118 if (dhahelper_verbosity > 1)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 119 printk(KERN_DEBUG "dhahelper: device released\n");
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 120
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 121 if (MINOR(inode->i_rdev) != 0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 122 return(-ENXIO);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 123
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 124 MOD_DEC_USE_COUNT;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 125
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 126 return(0);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 127 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 128
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 129 static int dhahelper_ioctl(struct inode *inode, struct file *file,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 130 unsigned int cmd, unsigned long arg)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 131 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 132 if (dhahelper_verbosity > 1)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 133 printk(KERN_DEBUG "dhahelper: ioctl(cmd=%x, arg=%lx)\n",
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 134 cmd, arg);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 135
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 136 if (MINOR(inode->i_rdev) != 0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 137 return(-ENXIO);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 138
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 139 switch(cmd)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 140 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 141 case DHAHELPER_GET_VERSION:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 142 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 143 int version = API_VERSION;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 144
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 145 if (copy_to_user((int *)arg, &version, sizeof(int)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 146 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 147 if (dhahelper_verbosity > 0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 148 printk(KERN_ERR "dhahelper: failed copy to userspace\n");
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 149 return(-EFAULT);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 150 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 151
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 152 break;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 153 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 154 case DHAHELPER_PORT:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 155 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 156 dhahelper_port_t port;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 157
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 158 if (copy_from_user(&port, (dhahelper_port_t *)arg, sizeof(dhahelper_port_t)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 159 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 160 if (dhahelper_verbosity > 0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 161 printk(KERN_ERR "dhahelper: failed copy from userspace\n");
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 162 return(-EFAULT);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 163 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 164
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 165 switch(port.operation)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 166 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 167 case PORT_OP_READ:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 168 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 169 switch(port.size)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 170 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 171 case 1:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 172 port.value = inb(port.addr);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 173 break;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 174 case 2:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 175 port.value = inw(port.addr);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 176 break;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 177 case 4:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 178 port.value = inl(port.addr);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 179 break;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 180 default:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 181 if (dhahelper_verbosity > 0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 182 printk(KERN_ERR "dhahelper: invalid port read size (%d)\n",
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 183 port.size);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 184 return(-EINVAL);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 185 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 186 break;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 187 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 188 case PORT_OP_WRITE:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 189 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 190 switch(port.size)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 191 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 192 case 1:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 193 outb(port.value, port.addr);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 194 break;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 195 case 2:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 196 outw(port.value, port.addr);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 197 break;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 198 case 4:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 199 outl(port.value, port.addr);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 200 break;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 201 default:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 202 if (dhahelper_verbosity > 0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 203 printk(KERN_ERR "dhahelper: invalid port write size (%d)\n",
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 204 port.size);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 205 return(-EINVAL);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 206 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 207 break;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 208 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 209 default:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 210 if (dhahelper_verbosity > 0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 211 printk(KERN_ERR "dhahelper: invalid port operation (%d)\n",
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 212 port.operation);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 213 return(-EINVAL);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 214 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 215
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 216 /* copy back only if read was performed */
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 217 if (port.operation == PORT_OP_READ)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 218 if (copy_to_user((dhahelper_port_t *)arg, &port, sizeof(dhahelper_port_t)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 219 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 220 if (dhahelper_verbosity > 0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 221 printk(KERN_ERR "dhahelper: failed copy to userspace\n");
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 222 return(-EFAULT);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 223 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 224
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 225 break;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 226 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 227 case DHAHELPER_MEMORY:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 228 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 229 dhahelper_memory_t mem;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 230
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 231 if (copy_from_user(&mem, (dhahelper_memory_t *)arg, sizeof(dhahelper_memory_t)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 232 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 233 if (dhahelper_verbosity > 0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 234 printk(KERN_ERR "dhahelper: failed copy from userspace\n");
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 235 return(-EFAULT);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 236 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 237
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 238 switch(mem.operation)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 239 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 240 case MEMORY_OP_MAP:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 241 {
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 242 #if 1
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 243 memcpy(&last_mem_request, &mem, sizeof(dhahelper_memory_t));
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 244 #else
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 245 mem.ret = do_mmap(file, mem.start, mem.size, PROT_READ|PROT_WRITE,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 246 MAP_SHARED, mem.offset);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 247 #endif
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 248
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 249 break;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 250 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 251 case MEMORY_OP_UNMAP:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 252 break;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 253 default:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 254 if (dhahelper_verbosity > 0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 255 printk(KERN_ERR "dhahelper: invalid memory operation (%d)\n",
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 256 mem.operation);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 257 return(-EINVAL);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 258 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 259
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 260 if (copy_to_user((dhahelper_memory_t *)arg, &mem, sizeof(dhahelper_memory_t)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 261 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 262 if (dhahelper_verbosity > 0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 263 printk(KERN_ERR "dhahelper: failed copy to userspace\n");
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 264 return(-EFAULT);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 265 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 266
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 267 break;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 268 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 269 default:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 270 if (dhahelper_verbosity > 0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 271 printk(KERN_ERR "dhahelper: invalid ioctl (%x)\n", cmd);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 272 return(-EINVAL);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 273 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 274
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 275 return(0);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 276 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 277
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 278 static int dhahelper_mmap(struct file *file, struct vm_area_struct *vma)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 279 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 280 if (last_mem_request.operation != MEMORY_OP_MAP)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 281 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 282 if (dhahelper_verbosity > 0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 283 printk(KERN_ERR "dhahelper: mapping not requested before mmap\n");
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 284 return(-EFAULT);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 285 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 286
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 287 if (dhahelper_verbosity > 1)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 288 printk(KERN_INFO "dhahelper: mapping %x (size: %x)\n",
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 289 last_mem_request.start+last_mem_request.offset, last_mem_request.size);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 290
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 291 if (remap_page_range(0, last_mem_request.start + last_mem_request.offset,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 292 last_mem_request.size, vma->vm_page_prot))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 293 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 294 if (dhahelper_verbosity > 0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 295 printk(KERN_ERR "dhahelper: error mapping memory\n");
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 296 return(-EFAULT);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 297 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 298
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 299 return(0);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 300 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 301
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 302 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 303 static struct file_operations dhahelper_fops =
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 304 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 305 /*llseek*/ NULL,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 306 /*read*/ NULL,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 307 /*write*/ NULL,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 308 /*readdir*/ NULL,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 309 /*poll*/ NULL,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 310 /*ioctl*/ dhahelper_ioctl,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 311 /*mmap*/ dhahelper_mmap,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 312 /*open*/ dhahelper_open,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 313 /*flush*/ NULL,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 314 /*release*/ dhahelper_release,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 315 /* zero out the last 5 entries too ? */
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 316 };
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 317 #else
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 318 static struct file_operations dhahelper_fops =
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 319 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 320 owner: THIS_MODULE,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 321 ioctl: dhahelper_ioctl,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 322 mmap: dhahelper_mmap,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 323 open: dhahelper_open,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 324 release: dhahelper_release
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 325 };
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 326 #endif
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 327
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 328 #if KERNEL_VERSION < KERNEL_VERSION(2,4,0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 329 int init_module(void)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 330 #else
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 331 static int __init init_dhahelper(void)
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 332 #endif
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 333 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 334 printk(KERN_INFO "Direct Hardware Access kernel helper (C) Alex Beregszaszi\n");
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 335
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 336 if(register_chrdev(dhahelper_major, "dhahelper", &dhahelper_fops))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 337 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 338 if (dhahelper_verbosity > 0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 339 printk(KERN_ERR "dhahelper: unable to register character device (major: %d)\n",
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 340 dhahelper_major);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 341 return(-EIO);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 342 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 343
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 344 return(0);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 345 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 346
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 347 #if KERNEL_VERSION < KERNEL_VERSION(2,4,0)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 348 void cleanup_module(void)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 349 #else
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 350 static void __exit exit_dhahelper(void)
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 351 #endif
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 352 {
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 353 unregister_chrdev(dhahelper_major, "dhahelper");
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 354 }
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 355
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 356 EXPORT_NO_SYMBOLS;
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 357
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 358 #if KERNEL_VERSION >= KERNEL_VERSION(2,4,0)
4470
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 359 module_init(init_dhahelper);
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 360 module_exit(exit_dhahelper);
4479
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��渇��膩��活�o申�鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃初姐�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� 361 #endif