#include <rsbac/types.h>#include <rsbac/debug.h>Go to the source code of this file.
|
|
Definition at line 21 of file reg.h. Referenced by add_item(), add_sc_item(), init_module(), rsbac_reg_register(), and rsbac_reg_register_syscall(). |
|
|
Definition at line 15 of file reg.h. Referenced by init_module(), rsbac_reg_register(), and rsbac_reg_register_syscall(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
Definition at line 747 of file reg_main.c. References add_item(), rsbac_reg_entry_t::handle, lookup_item(), rsbac_reg_entry_t::mount_func, rsbac_reg_entry_t::name, rsbac_reg_entry_t::need_overwrite_func, reg_write_lock(), reg_write_unlock(), rsbac_reg_entry_t::request_func, RSBAC_ECOULDNOTADDITEM, RSBAC_EEXISTS, RSBAC_EINVALIDVALUE, RSBAC_EINVALIDVERSION, rsbac_printk(), RSBAC_REG_NAME_LEN, RSBAC_REG_VERSION, rsbac_reg_entry_t::set_attr_func, rsbac_reg_entry_t::umount_func, and rsbac_reg_entry_t::write_func. Referenced by init_module(). 00749 {
00750 if(version != RSBAC_REG_VERSION)
00751 return(-RSBAC_EINVALIDVERSION);
00752
00753 /* check entry */
00754 if( ( !entry.request_func
00755 && !entry.set_attr_func
00756 && !entry.need_overwrite_func
00757 && !entry.write_func
00758 && !entry.mount_func
00759 && !entry.umount_func
00760 )
00761 || (entry.handle <= 0)
00762 )
00763 return -RSBAC_EINVALIDVALUE;
00764
00765 reg_write_lock();
00766 if(lookup_item(entry.handle))
00767 {
00768 rsbac_printk(KERN_INFO "rsbac_reg_register: Handle in use, registering failed: %s.\n",
00769 entry.name);
00770 entry.handle = -RSBAC_EEXISTS;
00771 }
00772 else
00773 {
00774 if(!add_item(entry))
00775 {
00776 entry.name[RSBAC_REG_NAME_LEN] = 0;
00777 rsbac_printk(KERN_INFO "rsbac_reg_register: registering failed for %s.\n",
00778 entry.name);
00779 entry.handle = -RSBAC_ECOULDNOTADDITEM;
00780 }
00781 #ifdef CONFIG_RSBAC_DEBUG
00782 else
00783 if(rsbac_debug_reg)
00784 {
00785 rsbac_printk(KERN_DEBUG "rsbac_reg_register: module %s registered.\n",
00786 entry.name);
00787 }
00788 #endif
00789 }
00790 reg_write_unlock();
00791 return entry.handle;
00792 }
|
|
||||||||||||
|
Definition at line 880 of file reg_main.c. References add_sc_item(), rsbac_reg_syscall_entry_t::dispatcher_handle, lookup_sc_item_dis(), lookup_sc_item_reg(), rsbac_reg_syscall_entry_t::name, reg_sc_write_lock(), reg_sc_write_unlock(), rsbac_reg_syscall_entry_t::registration_handle, RSBAC_ECOULDNOTADDITEM, RSBAC_EEXISTS, RSBAC_EINVALIDVALUE, RSBAC_EINVALIDVERSION, rsbac_printk(), RSBAC_REG_NAME_LEN, RSBAC_REG_VERSION, and rsbac_reg_syscall_entry_t::syscall_func. Referenced by init_module(). 00882 {
00883 if(version != RSBAC_REG_VERSION)
00884 return(-RSBAC_EINVALIDVERSION);
00885
00886 /* check entry */
00887 if( !entry.syscall_func
00888 || (entry.registration_handle <= 0)
00889 || (entry.dispatcher_handle <= 0)
00890 )
00891 return -RSBAC_EINVALIDVALUE;
00892
00893 reg_sc_write_lock();
00894 if(lookup_sc_item_reg(entry.registration_handle))
00895 {
00896 rsbac_printk(KERN_INFO "rsbac_reg_register_syscall: Registration handle in use, registering failed: %s.\n",
00897 entry.name);
00898 entry.registration_handle = -RSBAC_EEXISTS;
00899 }
00900 else
00901 if(lookup_sc_item_dis(entry.dispatcher_handle))
00902 {
00903 rsbac_printk(KERN_INFO "rsbac_reg_register_syscall: Dispatcher handle in use, registering failed: %s.\n",
00904 entry.name);
00905 entry.registration_handle = -RSBAC_EEXISTS;
00906 }
00907 else
00908 {
00909 entry.name[RSBAC_REG_NAME_LEN] = 0;
00910 if(!add_sc_item(entry))
00911 {
00912 rsbac_printk(KERN_INFO "rsbac_reg_register_syscall: registering failed for %s.\n",
00913 entry.name);
00914 entry.registration_handle = -RSBAC_ECOULDNOTADDITEM;
00915 }
00916 #ifdef CONFIG_RSBAC_DEBUG
00917 else
00918 if(rsbac_debug_reg)
00919 {
00920 rsbac_printk(KERN_DEBUG "rsbac_reg_register_syscall: syscall %s registered.\n",
00921 entry.name);
00922 }
00923 #endif
00924 }
00925 reg_sc_write_unlock();
00926 return entry.registration_handle;
00927 }
|
|
||||||||||||
|
Definition at line 801 of file reg_main.c. References FALSE, lookup_item(), reg_read_lock(), reg_read_unlock(), RSBAC_EINVALIDTARGET, RSBAC_EINVALIDVALUE, rsbac_printk(), and TRUE. 00802 {
00803 #ifdef CONFIG_RSBAC_SWITCH_REG
00804 struct rsbac_reg_list_item_t * item_p;
00805 int err=0;
00806
00807 if((value != FALSE) && (value != TRUE))
00808 return -RSBAC_EINVALIDVALUE;
00809 reg_read_lock();
00810 item_p = lookup_item(handle);
00811 if(item_p)
00812 {
00813 item_p->entry.switch_on = value;
00814 #ifdef CONFIG_RSBAC_DEBUG
00815 if(rsbac_debug_reg)
00816 {
00817 rsbac_printk(KERN_DEBUG "rsbac_reg_switch: module %s switched to %i.\n",
00818 item_p->entry.name,
00819 value);
00820 }
00821 #endif
00822 }
00823 else
00824 err = -RSBAC_EINVALIDTARGET;
00825 reg_read_unlock();
00826 return err;
00827 #else
00828 return(-RSBAC_EINVALIDTARGET);
00829 #endif
00830 };
|
|
|
Definition at line 840 of file reg_main.c. References lookup_item(), reg_write_lock(), reg_write_unlock(), remove_item(), RSBAC_EINVALIDTARGET, RSBAC_EINVALIDVALUE, and rsbac_printk(). Referenced by cleanup_module(), and init_module(). 00841 {
00842 int err=0;
00843
00844 if(handle <= 0)
00845 return -RSBAC_EINVALIDVALUE;
00846
00847 reg_write_lock();
00848 if(lookup_item(handle))
00849 {
00850 remove_item(handle);
00851 #ifdef CONFIG_RSBAC_DEBUG
00852 if(rsbac_debug_reg)
00853 {
00854 rsbac_printk(KERN_DEBUG "rsbac_reg_unregister: module unregistered.\n");
00855 }
00856 #endif
00857 }
00858 else
00859 {
00860 err = -RSBAC_EINVALIDTARGET;
00861 #ifdef CONFIG_RSBAC_DEBUG
00862 if(rsbac_debug_reg)
00863 {
00864 rsbac_printk(KERN_DEBUG "rsbac_reg_unregister: module unregistering failed.\n");
00865 }
00866 #endif
00867 }
00868 reg_write_unlock();
00869 return err;
00870 }
|
|
|
Definition at line 937 of file reg_main.c. References lookup_sc_item_reg(), reg_sc_write_lock(), reg_sc_write_unlock(), remove_sc_item(), RSBAC_EINVALIDTARGET, RSBAC_EINVALIDVALUE, and rsbac_printk(). Referenced by cleanup_module(), and init_module(). 00938 {
00939 int err=0;
00940
00941 if(handle <= 0)
00942 return -RSBAC_EINVALIDVALUE;
00943
00944 reg_sc_write_lock();
00945 if(lookup_sc_item_reg(handle))
00946 {
00947 remove_sc_item(handle);
00948 #ifdef CONFIG_RSBAC_DEBUG
00949 if(rsbac_debug_reg)
00950 {
00951 rsbac_printk(KERN_DEBUG "rsbac_reg_unregister_syscall: syscall unregistered.\n");
00952 }
00953 #endif
00954 }
00955 else
00956 {
00957 err = -RSBAC_EINVALIDTARGET;
00958 rsbac_printk(KERN_INFO "rsbac_reg_unregister_syscall: syscall unregistering failed for invalid handle!\n");
00959 }
00960 reg_sc_write_unlock();
00961 return err;
00962 }
|
1.4.2