long __strncpy_from_user(char *dst, const char __user *src, long count) { long res; __do_strncpy_from_user(dst, src, count, res); return res; }
long strncpy_from_user(char *dst, const char __user *src, long count) { long res = -EFAULT; if (access_ok(VERIFY_READ, src, 1)) __do_strncpy_from_user(dst, src, count, res); return res; }
//----------------------------- strncpy_from_user ------------------------------ long strncpy_from_user(char* dst,const char __user* src,long count) { long res=0; char hLock[12]; ULONG pgCount=0; if(!DevVMLock(VMDHL_LONG,(ULONG)src,1,(LINEAR)-1,hLock,(LINEAR)&pgCount)) { __do_strncpy_from_user(dst,src,count,res); DevVMUnLock(hLock); } return res; }
int strncpy_from_user_tt(char *dst, const char *src, int count) { int n; if(!access_ok_tt(VERIFY_READ, src, 1)) return(-EFAULT); n = __do_strncpy_from_user(dst, src, count, ¤t->thread.fault_addr, ¤t->thread.fault_catcher); if(n < 0) return(-EFAULT); return(n); }