00001
00002
00003 enum errorcode { ERR_NONE=0, ERR_NO_MEM };
00004 enum errorcode _stp_error = ERR_NONE;
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 void *_stp_alloc(size_t len)
00015 {
00016 void *ptr = kmalloc(len, GFP_ATOMIC);
00017 if (unlikely(ptr == NULL))
00018 _stp_error = ERR_NO_MEM;
00019 return ptr;
00020 }
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 void *_stp_calloc(size_t len)
00031 {
00032 void *ptr = _stp_alloc(len);
00033 if (likely(ptr))
00034 memset(ptr, 0, len);
00035 return ptr;
00036 }
00037
00038
00039
00040
00041
00042
00043
00044
00045 void *_stp_valloc(size_t len)
00046 {
00047 void *ptr = vmalloc(len);
00048 if (likely(ptr))
00049 memset(ptr, 0, len);
00050 else
00051 _stp_error = ERR_NO_MEM;
00052 return ptr;
00053 }
00054
00055
00056
00057
00058
00059 void _stp_free(void *ptr)
00060 {
00061 if (likely(ptr))
00062 kfree(ptr);
00063 }
00064
00065
00066
00067
00068
00069 void _stp_vfree(void *ptr)
00070 {
00071 if (likely(ptr))
00072 vfree(ptr);
00073 }