#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 }
|
1.4.2