#include <rsbac/types.h>
Go to the source code of this file.
Functions | |
__u32 | rsbac_net_make_mask_u32 (__u8 bits) |
|
Definition at line 14 of file net_helpers.c. 00015 { 00016 __u32 res; 00017 __u8 res0 = 0; 00018 __u8 res1 = 0; 00019 __u8 res2 = 0; 00020 __u8 res3 = 0; 00021 int i; 00022 00023 if(bits >=32) 00024 return (__u32) -1; 00025 if(!bits) 00026 return 0; 00027 if(bits >= 24) 00028 { 00029 bits -= 24; 00030 res0 = 255; 00031 res1 = 255; 00032 res2 = 255; 00033 for(i=0; i<bits; i++) 00034 res3 |= 1 << (7-i); 00035 } 00036 else 00037 if(bits >= 16) 00038 { 00039 bits -= 16; 00040 res0 = 255; 00041 res1 = 255; 00042 res3 = 0; 00043 for(i=0; i<bits; i++) 00044 res2 |= 1 << (7-i); 00045 } 00046 else 00047 if(bits >= 8) 00048 { 00049 bits -= 8; 00050 res0 = 255; 00051 res2 = 0; 00052 res3 = 0; 00053 for(i=0; i<bits; i++) 00054 res1 |= 1 << (7-i); 00055 } 00056 else 00057 { 00058 res1 = 0; 00059 res2 = 0; 00060 res3 = 0; 00061 for(i=0; i<bits; i++) 00062 res0 |= 1 << (7-i); 00063 } 00064 res = (res3 << 24) | (res2 << 16) | (res1 << 8) | res0; 00065 return res; 00066 }
|