X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Fncpfs%2Fncplib_kernel.c;h=551e0bac7aac6fd20476b844c8929e0116002f77;hb=97bf2856c6014879bd04983a3e9dfcdac1e7fe85;hp=345270647f73d34d2ea03a631e34d5f70e8818bd;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/fs/ncpfs/ncplib_kernel.c b/fs/ncpfs/ncplib_kernel.c index 345270647..551e0bac7 100644 --- a/fs/ncpfs/ncplib_kernel.c +++ b/fs/ncpfs/ncplib_kernel.c @@ -10,7 +10,6 @@ */ -#include #include "ncplib_kernel.h" @@ -29,22 +28,36 @@ static void ncp_add_byte(struct ncp_server *server, __u8 x) return; } -static void ncp_add_word(struct ncp_server *server, __u16 x) +static void ncp_add_word(struct ncp_server *server, __le16 x) { assert_server_locked(server); - put_unaligned(x, (__u16 *) (&(server->packet[server->current_size]))); + put_unaligned(x, (__le16 *) (&(server->packet[server->current_size]))); server->current_size += 2; return; } -static void ncp_add_dword(struct ncp_server *server, __u32 x) +static void ncp_add_be16(struct ncp_server *server, __u16 x) { assert_server_locked(server); - put_unaligned(x, (__u32 *) (&(server->packet[server->current_size]))); + put_unaligned(cpu_to_be16(x), (__be16 *) (&(server->packet[server->current_size]))); + server->current_size += 2; +} + +static void ncp_add_dword(struct ncp_server *server, __le32 x) +{ + assert_server_locked(server); + put_unaligned(x, (__le32 *) (&(server->packet[server->current_size]))); server->current_size += 4; return; } +static void ncp_add_be32(struct ncp_server *server, __u32 x) +{ + assert_server_locked(server); + put_unaligned(cpu_to_be32(x), (__be32 *)(&(server->packet[server->current_size]))); + server->current_size += 4; +} + static inline void ncp_add_dword_lh(struct ncp_server *server, __u32 x) { ncp_add_dword(server, cpu_to_le32(x)); } @@ -107,24 +120,30 @@ static __u8 static inline __u16 WVAL_LH(void* data) { - return le16_to_cpu(get_unaligned((__u16*)data)); + return le16_to_cpu(get_unaligned((__le16*)data)); } static __u16 - ncp_reply_word(struct ncp_server *server, int offset) + ncp_reply_le16(struct ncp_server *server, int offset) { - return get_unaligned((__u16 *) ncp_reply_data(server, offset)); + return le16_to_cpu(get_unaligned((__le16 *) ncp_reply_data(server, offset))); +} + +static __u16 + ncp_reply_be16(struct ncp_server *server, int offset) +{ + return be16_to_cpu(get_unaligned((__be16 *) ncp_reply_data(server, offset))); } static inline __u32 DVAL_LH(void* data) { - return le32_to_cpu(get_unaligned((__u32*)data)); + return le32_to_cpu(get_unaligned((__le32*)data)); } -static __u32 +static __le32 ncp_reply_dword(struct ncp_server *server, int offset) { - return get_unaligned((__u32 *) ncp_reply_data(server, offset)); + return get_unaligned((__le32 *) ncp_reply_data(server, offset)); } static inline __u32 ncp_reply_dword_lh(struct ncp_server* server, int offset) { @@ -137,13 +156,13 @@ ncp_negotiate_buffersize(struct ncp_server *server, int size, int *target) int result; ncp_init_request(server); - ncp_add_word(server, htons(size)); + ncp_add_be16(server, size); if ((result = ncp_request(server, 33)) != 0) { ncp_unlock_server(server); return result; } - *target = min_t(unsigned int, ntohs(ncp_reply_word(server, 0)), size); + *target = min_t(unsigned int, ncp_reply_be16(server, 0), size); ncp_unlock_server(server); return 0; @@ -163,7 +182,7 @@ ncp_negotiate_size_and_options(struct ncp_server *server, if (size < NCP_BLOCK_SIZE) size = NCP_BLOCK_SIZE; ncp_init_request(server); - ncp_add_word(server, htons(size)); + ncp_add_be16(server, size); ncp_add_byte(server, options); if ((result = ncp_request(server, 0x61)) != 0) @@ -173,7 +192,7 @@ ncp_negotiate_size_and_options(struct ncp_server *server, } /* NCP over UDP returns 0 (!!!) */ - result = ntohs(ncp_reply_word(server, 0)); + result = ncp_reply_be16(server, 0); if (result >= NCP_BLOCK_SIZE) size = min(result, size); *ret_size = size; @@ -271,7 +290,7 @@ ncp_make_closed(struct inode *inode) int err; err = 0; - down(&NCP_FINFO(inode)->open_sem); + mutex_lock(&NCP_FINFO(inode)->open_mutex); if (atomic_read(&NCP_FINFO(inode)->opened) == 1) { atomic_set(&NCP_FINFO(inode)->opened, 0); err = ncp_close_file(NCP_SERVER(inode), NCP_FINFO(inode)->file_handle); @@ -281,12 +300,12 @@ ncp_make_closed(struct inode *inode) NCP_FINFO(inode)->volNumber, NCP_FINFO(inode)->dirEntNum, err); } - up(&NCP_FINFO(inode)->open_sem); + mutex_unlock(&NCP_FINFO(inode)->open_mutex); return err; } static void ncp_add_handle_path(struct ncp_server *server, __u8 vol_num, - __u32 dir_base, int have_dir_base, + __le32 dir_base, int have_dir_base, const char *path) { ncp_add_byte(server, vol_num); @@ -304,7 +323,7 @@ static void ncp_add_handle_path(struct ncp_server *server, __u8 vol_num, } } -int ncp_dirhandle_alloc(struct ncp_server* server, __u8 volnum, __u32 dirent, +int ncp_dirhandle_alloc(struct ncp_server* server, __u8 volnum, __le32 dirent, __u8* dirhandle) { int result; @@ -403,7 +422,7 @@ int ncp_obtain_info(struct ncp_server *server, struct inode *dir, char *path, struct nw_info_struct *target) { __u8 volnum = NCP_FINFO(dir)->volNumber; - __u32 dirent = NCP_FINFO(dir)->dirEntNum; + __le32 dirent = NCP_FINFO(dir)->dirEntNum; int result; if (target == NULL) { @@ -414,7 +433,7 @@ int ncp_obtain_info(struct ncp_server *server, struct inode *dir, char *path, ncp_add_byte(server, 6); /* subfunction */ ncp_add_byte(server, server->name_space[volnum]); ncp_add_byte(server, server->name_space[volnum]); /* N.B. twice ?? */ - ncp_add_word(server, htons(0x0680)); /* get all */ + ncp_add_word(server, cpu_to_le16(0x8006)); /* get all */ ncp_add_dword(server, RIM_ALL); ncp_add_handle_path(server, volnum, dirent, 1, path); @@ -434,9 +453,9 @@ out: #ifdef CONFIG_NCPFS_NFS_NS static int ncp_obtain_DOS_dir_base(struct ncp_server *server, - __u8 volnum, __u32 dirent, + __u8 volnum, __le32 dirent, char *path, /* At most 1 component */ - __u32 *DOS_dir_base) + __le32 *DOS_dir_base) { int result; @@ -444,7 +463,7 @@ ncp_obtain_DOS_dir_base(struct ncp_server *server, ncp_add_byte(server, 6); /* subfunction */ ncp_add_byte(server, server->name_space[volnum]); ncp_add_byte(server, server->name_space[volnum]); - ncp_add_word(server, htons(0x0680)); /* get all */ + ncp_add_word(server, cpu_to_le16(0x8006)); /* get all */ ncp_add_dword(server, RIM_DIRECTORY); ncp_add_handle_path(server, volnum, dirent, 1, path); @@ -476,7 +495,7 @@ ncp_get_known_namespace(struct ncp_server *server, __u8 volume) } result = NW_NS_DOS; - no_namespaces = le16_to_cpu(ncp_reply_word(server, 0)); + no_namespaces = ncp_reply_le16(server, 0); namespace = ncp_reply_data(server, 2); while (no_namespaces > 0) { @@ -507,9 +526,9 @@ ncp_get_known_namespace(struct ncp_server *server, __u8 volume) static int ncp_ObtainSpecificDirBase(struct ncp_server *server, - __u8 nsSrc, __u8 nsDst, __u8 vol_num, __u32 dir_base, + __u8 nsSrc, __u8 nsDst, __u8 vol_num, __le32 dir_base, char *path, /* At most 1 component */ - __u32 *dirEntNum, __u32 *DosDirNum) + __le32 *dirEntNum, __le32 *DosDirNum) { int result; @@ -517,7 +536,7 @@ ncp_ObtainSpecificDirBase(struct ncp_server *server, ncp_add_byte(server, 6); /* subfunction */ ncp_add_byte(server, nsSrc); ncp_add_byte(server, nsDst); - ncp_add_word(server, htons(0x0680)); /* get all */ + ncp_add_word(server, cpu_to_le16(0x8006)); /* get all */ ncp_add_dword(server, RIM_ALL); ncp_add_handle_path(server, vol_num, dir_base, 1, path); @@ -536,37 +555,34 @@ ncp_ObtainSpecificDirBase(struct ncp_server *server, } int -ncp_mount_subdir(struct ncp_server *server, struct nw_info_struct *i, - __u8 volNumber, __u8 srcNS, __u32 dirEntNum) +ncp_mount_subdir(struct ncp_server *server, + __u8 volNumber, __u8 srcNS, __le32 dirEntNum, + __u32* volume, __le32* newDirEnt, __le32* newDosEnt) { int dstNS; int result; - __u32 newDirEnt; - __u32 newDosEnt; dstNS = ncp_get_known_namespace(server, volNumber); if ((result = ncp_ObtainSpecificDirBase(server, srcNS, dstNS, volNumber, - dirEntNum, NULL, &newDirEnt, &newDosEnt)) != 0) + dirEntNum, NULL, newDirEnt, newDosEnt)) != 0) { return result; } server->name_space[volNumber] = dstNS; - i->volNumber = volNumber; - i->dirEntNum = newDirEnt; - i->DosDirNum = newDosEnt; + *volume = volNumber; server->m.mounted_vol[1] = 0; server->m.mounted_vol[0] = 'X'; return 0; } int -ncp_lookup_volume(struct ncp_server *server, char *volname, - struct nw_info_struct *target) +ncp_get_volume_root(struct ncp_server *server, const char *volname, + __u32* volume, __le32* dirent, __le32* dosdirent) { int result; - int volnum; + __u8 volnum; - DPRINTK("ncp_lookup_volume: looking up vol %s\n", volname); + DPRINTK("ncp_get_volume_root: looking up vol %s\n", volname); ncp_init_request(server); ncp_add_byte(server, 22); /* Subfunction: Generate dir handle */ @@ -585,16 +601,31 @@ ncp_lookup_volume(struct ncp_server *server, char *volname, ncp_unlock_server(server); return result; } - memset(target, 0, sizeof(*target)); - target->DosDirNum = target->dirEntNum = ncp_reply_dword(server, 4); - target->volNumber = volnum = ncp_reply_byte(server, 8); + *dirent = *dosdirent = ncp_reply_dword(server, 4); + volnum = ncp_reply_byte(server, 8); ncp_unlock_server(server); + *volume = volnum; server->name_space[volnum] = ncp_get_known_namespace(server, volnum); DPRINTK("lookup_vol: namespace[%d] = %d\n", volnum, server->name_space[volnum]); + return 0; +} + +int +ncp_lookup_volume(struct ncp_server *server, const char *volname, + struct nw_info_struct *target) +{ + int result; + + memset(target, 0, sizeof(*target)); + result = ncp_get_volume_root(server, volname, + &target->volNumber, &target->dirEntNum, &target->DosDirNum); + if (result) { + return result; + } target->nameLen = strlen(volname); memcpy(target->entryName, volname, target->nameLen+1); target->attributes = aDIR; @@ -608,18 +639,18 @@ ncp_lookup_volume(struct ncp_server *server, char *volname, int ncp_modify_file_or_subdir_dos_info_path(struct ncp_server *server, struct inode *dir, const char *path, - __u32 info_mask, + __le32 info_mask, const struct nw_modify_dos_info *info) { __u8 volnum = NCP_FINFO(dir)->volNumber; - __u32 dirent = NCP_FINFO(dir)->dirEntNum; + __le32 dirent = NCP_FINFO(dir)->dirEntNum; int result; ncp_init_request(server); ncp_add_byte(server, 7); /* subfunction */ ncp_add_byte(server, server->name_space[volnum]); ncp_add_byte(server, 0); /* reserved */ - ncp_add_word(server, htons(0x0680)); /* search attribs: all */ + ncp_add_word(server, cpu_to_le16(0x8006)); /* search attribs: all */ ncp_add_dword(server, info_mask); ncp_add_mem(server, info, sizeof(*info)); @@ -632,7 +663,7 @@ int ncp_modify_file_or_subdir_dos_info_path(struct ncp_server *server, int ncp_modify_file_or_subdir_dos_info(struct ncp_server *server, struct inode *dir, - __u32 info_mask, + __le32 info_mask, const struct nw_modify_dos_info *info) { return ncp_modify_file_or_subdir_dos_info_path(server, dir, NULL, @@ -640,7 +671,7 @@ int ncp_modify_file_or_subdir_dos_info(struct ncp_server *server, } #ifdef CONFIG_NCPFS_NFS_NS -int ncp_modify_nfs_info(struct ncp_server *server, __u8 volnum, __u32 dirent, +int ncp_modify_nfs_info(struct ncp_server *server, __u8 volnum, __le32 dirent, __u32 mode, __u32 rdev) { @@ -669,8 +700,8 @@ int ncp_modify_nfs_info(struct ncp_server *server, __u8 volnum, __u32 dirent, static int ncp_DeleteNSEntry(struct ncp_server *server, - __u8 have_dir_base, __u8 volnum, __u32 dirent, - char* name, __u8 ns, int attr) + __u8 have_dir_base, __u8 volnum, __le32 dirent, + char* name, __u8 ns, __le16 attr) { int result; @@ -692,7 +723,7 @@ ncp_del_file_or_subdir2(struct ncp_server *server, { struct inode *inode = dentry->d_inode; __u8 volnum; - __u32 dirent; + __le32 dirent; if (!inode) { #ifdef CONFIG_NCPFS_DEBUGDENTRY @@ -702,7 +733,7 @@ ncp_del_file_or_subdir2(struct ncp_server *server, } volnum = NCP_FINFO(inode)->volNumber; dirent = NCP_FINFO(inode)->DosDirNum; - return ncp_DeleteNSEntry(server, 1, volnum, dirent, NULL, NW_NS_DOS, htons(0x0680)); + return ncp_DeleteNSEntry(server, 1, volnum, dirent, NULL, NW_NS_DOS, cpu_to_le16(0x8006)); } int @@ -710,7 +741,7 @@ ncp_del_file_or_subdir(struct ncp_server *server, struct inode *dir, char *name) { __u8 volnum = NCP_FINFO(dir)->volNumber; - __u32 dirent = NCP_FINFO(dir)->dirEntNum; + __le32 dirent = NCP_FINFO(dir)->dirEntNum; #ifdef CONFIG_NCPFS_NFS_NS if (server->name_space[volnum]==NW_NS_NFS) @@ -719,18 +750,19 @@ ncp_del_file_or_subdir(struct ncp_server *server, result=ncp_obtain_DOS_dir_base(server, volnum, dirent, name, &dirent); if (result) return result; - return ncp_DeleteNSEntry(server, 1, volnum, dirent, NULL, NW_NS_DOS, htons(0x0680)); + return ncp_DeleteNSEntry(server, 1, volnum, dirent, NULL, NW_NS_DOS, cpu_to_le16(0x8006)); } else #endif /* CONFIG_NCPFS_NFS_NS */ - return ncp_DeleteNSEntry(server, 1, volnum, dirent, name, server->name_space[volnum], htons(0x0680)); + return ncp_DeleteNSEntry(server, 1, volnum, dirent, name, server->name_space[volnum], cpu_to_le16(0x8006)); } -static inline void ConvertToNWfromDWORD(__u32 sfd, __u8 ret[6]) +static inline void ConvertToNWfromDWORD(__u16 v0, __u16 v1, __u8 ret[6]) { - __u16 *dest = (__u16 *) ret; - memcpy(ret + 2, &sfd, 4); - dest[0] = cpu_to_le16((le16_to_cpu(dest[1]) + le16_to_cpu(1))); + __le16 *dest = (__le16 *) ret; + dest[1] = cpu_to_le16(v0); + dest[2] = cpu_to_le16(v1); + dest[0] = cpu_to_le16(v0 + 1); return; } @@ -739,20 +771,20 @@ static inline void ConvertToNWfromDWORD(__u32 sfd, __u8 ret[6]) int ncp_open_create_file_or_subdir(struct ncp_server *server, struct inode *dir, char *name, int open_create_mode, - __u32 create_attributes, - int desired_acc_rights, + __le32 create_attributes, + __le16 desired_acc_rights, struct ncp_entry_info *target) { - __u16 search_attribs = ntohs(0x0600); + __le16 search_attribs = cpu_to_le16(0x0006); __u8 volnum; - __u32 dirent; + __le32 dirent; int result; volnum = NCP_FINFO(dir)->volNumber; dirent = NCP_FINFO(dir)->dirEntNum; if ((create_attributes & aDIR) != 0) { - search_attribs |= ntohs(0x0080); + search_attribs |= cpu_to_le16(0x8000); } ncp_init_request(server); ncp_add_byte(server, 1); /* subfunction */ @@ -774,7 +806,9 @@ int ncp_open_create_file_or_subdir(struct ncp_server *server, /* in target there's a new finfo to fill */ ncp_extract_file_info(ncp_reply_data(server, 6), &(target->i)); target->volume = target->i.volNumber; - ConvertToNWfromDWORD(ncp_reply_dword(server, 0), target->file_handle); + ConvertToNWfromDWORD(ncp_reply_le16(server, 0), + ncp_reply_le16(server, 2), + target->file_handle); ncp_unlock_server(server); @@ -791,7 +825,7 @@ ncp_initialize_search(struct ncp_server *server, struct inode *dir, struct nw_search_sequence *target) { __u8 volnum = NCP_FINFO(dir)->volNumber; - __u32 dirent = NCP_FINFO(dir)->dirEntNum; + __le32 dirent = NCP_FINFO(dir)->dirEntNum; int result; ncp_init_request(server); @@ -810,46 +844,6 @@ out: return result; } -/* Search for everything */ -int ncp_search_for_file_or_subdir(struct ncp_server *server, - struct nw_search_sequence *seq, - struct nw_info_struct *target) -{ - int result; - - ncp_init_request(server); - ncp_add_byte(server, 3); /* subfunction */ - ncp_add_byte(server, server->name_space[seq->volNumber]); - ncp_add_byte(server, 0); /* data stream (???) */ - ncp_add_word(server, htons(0x0680)); /* Search attribs */ - ncp_add_dword(server, RIM_ALL); /* return info mask */ - ncp_add_mem(server, seq, 9); -#ifdef CONFIG_NCPFS_NFS_NS - if (server->name_space[seq->volNumber] == NW_NS_NFS) { - ncp_add_byte(server, 0); /* 0 byte pattern */ - } else -#endif - { - ncp_add_byte(server, 2); /* 2 byte pattern */ - ncp_add_byte(server, 0xff); /* following is a wildcard */ - ncp_add_byte(server, '*'); - } - - if ((result = ncp_request(server, 87)) != 0) - goto out; - memcpy(seq, ncp_reply_data(server, 0), sizeof(*seq)); - ncp_extract_file_info(ncp_reply_data(server, 10), target); - - ncp_unlock_server(server); - - result = ncp_obtain_nfs_info(server, target); - return result; - -out: - ncp_unlock_server(server); - return result; -} - int ncp_search_for_fileset(struct ncp_server *server, struct nw_search_sequence *seq, int* more, @@ -865,9 +859,9 @@ int ncp_search_for_fileset(struct ncp_server *server, ncp_add_byte(server, 20); ncp_add_byte(server, server->name_space[seq->volNumber]); ncp_add_byte(server, 0); /* datastream */ - ncp_add_word(server, htons(0x0680)); + ncp_add_word(server, cpu_to_le16(0x8006)); ncp_add_dword(server, RIM_ALL); - ncp_add_word(server, 32767); /* max returned items */ + ncp_add_word(server, cpu_to_le16(32767)); /* max returned items */ ncp_add_mem(server, seq, 9); #ifdef CONFIG_NCPFS_NFS_NS if (server->name_space[seq->volNumber] == NW_NS_NFS) { @@ -898,9 +892,9 @@ int ncp_search_for_fileset(struct ncp_server *server, return 0; } -int +static int ncp_RenameNSEntry(struct ncp_server *server, - struct inode *old_dir, char *old_name, int old_type, + struct inode *old_dir, char *old_name, __le16 old_type, struct inode *new_dir, char *new_name) { int result = -EINVAL; @@ -943,14 +937,14 @@ int ncp_ren_or_mov_file_or_subdir(struct ncp_server *server, struct inode *new_dir, char *new_name) { int result; - int old_type = htons(0x0600); + __le16 old_type = cpu_to_le16(0x06); /* If somebody can do it atomic, call me... vandrove@vc.cvut.cz */ result = ncp_RenameNSEntry(server, old_dir, old_name, old_type, new_dir, new_name); if (result == 0xFF) /* File Not Found, try directory */ { - old_type = htons(0x1600); + old_type = cpu_to_le16(0x16); result = ncp_RenameNSEntry(server, old_dir, old_name, old_type, new_dir, new_name); } @@ -974,13 +968,13 @@ ncp_read_kernel(struct ncp_server *server, const char *file_id, ncp_init_request(server); ncp_add_byte(server, 0); ncp_add_mem(server, file_id, 6); - ncp_add_dword(server, htonl(offset)); - ncp_add_word(server, htons(to_read)); + ncp_add_be32(server, offset); + ncp_add_be16(server, to_read); if ((result = ncp_request(server, 72)) != 0) { goto out; } - *bytes_read = ntohs(ncp_reply_word(server, 0)); + *bytes_read = ncp_reply_be16(server, 0); source = ncp_reply_data(server, 2 + (offset & 1)); memcpy(target, source, *bytes_read); @@ -1002,7 +996,7 @@ out: */ int ncp_read_bounce(struct ncp_server *server, const char *file_id, - __u32 offset, __u16 to_read, char *target, int *bytes_read, + __u32 offset, __u16 to_read, char __user *target, int *bytes_read, void* bounce, __u32 bufsize) { int result; @@ -1010,12 +1004,12 @@ ncp_read_bounce(struct ncp_server *server, const char *file_id, ncp_init_request(server); ncp_add_byte(server, 0); ncp_add_mem(server, file_id, 6); - ncp_add_dword(server, htonl(offset)); - ncp_add_word(server, htons(to_read)); + ncp_add_be32(server, offset); + ncp_add_be16(server, to_read); result = ncp_request2(server, 72, bounce, bufsize); ncp_unlock_server(server); if (!result) { - int len = be16_to_cpu(get_unaligned((__u16*)((char*)bounce + + int len = be16_to_cpu(get_unaligned((__be16*)((char*)bounce + sizeof(struct ncp_reply_header)))); result = -EIO; if (len <= to_read) { @@ -1043,8 +1037,8 @@ ncp_write_kernel(struct ncp_server *server, const char *file_id, ncp_init_request(server); ncp_add_byte(server, 0); ncp_add_mem(server, file_id, 6); - ncp_add_dword(server, htonl(offset)); - ncp_add_word(server, htons(to_write)); + ncp_add_be32(server, offset); + ncp_add_be16(server, to_write); ncp_add_mem(server, source, to_write); if ((result = ncp_request(server, 73)) == 0) @@ -1063,9 +1057,9 @@ ncp_LogPhysicalRecord(struct ncp_server *server, const char *file_id, ncp_init_request(server); ncp_add_byte(server, locktype); ncp_add_mem(server, file_id, 6); - ncp_add_dword(server, htonl(offset)); - ncp_add_dword(server, htonl(length)); - ncp_add_word(server, htons(timeout)); + ncp_add_be32(server, offset); + ncp_add_be32(server, length); + ncp_add_be16(server, timeout); if ((result = ncp_request(server, 0x1A)) != 0) { @@ -1085,8 +1079,8 @@ ncp_ClearPhysicalRecord(struct ncp_server *server, const char *file_id, ncp_init_request(server); ncp_add_byte(server, 0); /* who knows... lanalyzer says that */ ncp_add_mem(server, file_id, 6); - ncp_add_dword(server, htonl(offset)); - ncp_add_dword(server, htonl(length)); + ncp_add_be32(server, offset); + ncp_add_be32(server, length); if ((result = ncp_request(server, 0x1E)) != 0) { @@ -1103,22 +1097,6 @@ ncp_ClearPhysicalRecord(struct ncp_server *server, const char *file_id, * from the vfat file system and hints from Petr Vandrovec. */ -inline unsigned char -ncp__tolower(struct nls_table *t, unsigned char c) -{ - unsigned char nc = t->charset2lower[c]; - - return nc ? nc : c; -} - -inline unsigned char -ncp__toupper(struct nls_table *t, unsigned char c) -{ - unsigned char nc = t->charset2upper[c]; - - return nc ? nc : c; -} - int ncp__io2vol(struct ncp_server *server, unsigned char *vname, unsigned int *vlen, const unsigned char *iname, unsigned int ilen, int cc) @@ -1334,16 +1312,3 @@ ncp__vol2io(unsigned char *iname, unsigned int *ilen, } #endif - -inline int -ncp_strnicmp(struct nls_table *t, const unsigned char *s1, - const unsigned char *s2, int n) -{ - int i; - - for (i=0; i