diff options
author | Jordan Brown <Jordan.Brown@Sun.COM> | 2009-11-05 14:34:36 -0800 |
---|---|---|
committer | Jordan Brown <Jordan.Brown@Sun.COM> | 2009-11-05 14:34:36 -0800 |
commit | bbf6f00c25b6a2bed23c35eac6d62998ecdb338c (patch) | |
tree | 8cf72fd47362b5b0da2ffe9be7fe7726a3d24426 /usr/src/uts/common/smbsrv | |
parent | d95ac3ffcdcc13296bb4c53f621f72c0535f32c3 (diff) | |
download | illumos-joyent-bbf6f00c25b6a2bed23c35eac6d62998ecdb338c.tar.gz |
6747532 ns_lookup_bypid spams syslog with too many messages
6888836 Not listing all files in a directory of a CIFS share in Windows XP
6812570 Trans2 is missing pass-through levels: FILE_RENAME_INFORMATION (and others)
6888827 Add Unicode codepage support
6865488 libadutils: leak in ldap_lookup_domains_in_forest()
6888708 idmapd crashing periodically. Need cores analyzed.
6891342 invalid, redundant SQL in rule WHERE expressions
6891767 minor cleanups in idmap
6892544 Panic occurred at smb_node_ref+0x7f(ffffffd612297310)
--HG--
rename : usr/src/uts/common/smbsrv/cifs.h => usr/src/uts/common/smbsrv/smb.h
Diffstat (limited to 'usr/src/uts/common/smbsrv')
31 files changed, 1390 insertions, 4210 deletions
diff --git a/usr/src/uts/common/smbsrv/Makefile b/usr/src/uts/common/smbsrv/Makefile index 07e63dfa7e..d9ed78c1b7 100644 --- a/usr/src/uts/common/smbsrv/Makefile +++ b/usr/src/uts/common/smbsrv/Makefile @@ -25,21 +25,10 @@ include ../../../Makefile.master HDRS= alloc.h \ - cifs.h \ - codepage.h \ - cp_cyrillic.h \ - cp_latin1.h \ - cp_latin2.h \ - cp_latin3.h \ - cp_latin4.h \ - cp_latin5.h \ - cp_latin6.h \ cp_unicode.h \ cp_usascii.h \ - ctype.h \ doserror.h \ hash_table.h \ - lm.h \ lmdfs.h \ lmerr.h \ mac_cifs.h \ @@ -56,14 +45,11 @@ HDRS= alloc.h \ ntlocale.h \ smb_sid.h \ ntstatus.h \ - oem.h \ smb.h \ smb_common_door.h \ smb_door_svc.h \ smb_fsops.h \ - smb_i18n.h \ smb_idmap.h \ - smb_incl.h \ smb_inet.h \ smb_ioctl.h \ smb_kproto.h \ @@ -74,7 +60,6 @@ HDRS= alloc.h \ smb_token.h \ smb_vops.h \ smb_xdr.h \ - smbfmt.h \ smbinfo.h \ string.h \ svrapi.h \ diff --git a/usr/src/uts/common/smbsrv/alloc.h b/usr/src/uts/common/smbsrv/alloc.h index 8d49256863..28d80342c4 100644 --- a/usr/src/uts/common/smbsrv/alloc.h +++ b/usr/src/uts/common/smbsrv/alloc.h @@ -19,15 +19,13 @@ * CDDL HEADER END */ /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #ifndef _SMBSRV_ALLOC_H #define _SMBSRV_ALLOC_H -#pragma ident "%Z%%M% %I% %E% SMI" - #ifdef __cplusplus extern "C" { #endif @@ -68,17 +66,16 @@ extern "C" { #else /* _KERNEL */ -void *mem_malloc(uint32_t size); -void *mem_zalloc(uint32_t size); -char *mem_strdup(const char *ptr); -void *mem_realloc(void *ptr, uint32_t size); -void smb_mem_free(void *ptr); +void *smb_malloc(uint32_t); +char *smb_strdup(const char *); +void *smb_realloc(void *, uint32_t); +void smb_mfree(void *); -#define MEM_MALLOC(AREA, SIZE) mem_malloc(SIZE) -#define MEM_ZALLOC(AREA, SIZE) mem_zalloc(SIZE) -#define MEM_STRDUP(AREA, PTR) mem_strdup(PTR) -#define MEM_REALLOC(AREA, PTR, SIZE) mem_realloc((PTR), (SIZE)) -#define MEM_FREE(AREA, PTR) smb_mem_free(PTR) +#define MEM_MALLOC(AREA, SIZE) smb_malloc(SIZE) +#define MEM_ZALLOC(AREA, SIZE) smb_malloc(SIZE) +#define MEM_STRDUP(AREA, PTR) smb_strdup(PTR) +#define MEM_REALLOC(AREA, PTR, SIZE) smb_realloc((PTR), (SIZE)) +#define MEM_FREE(AREA, PTR) smb_mfree(PTR) #endif /* _KERNEL */ diff --git a/usr/src/uts/common/smbsrv/cifs.h b/usr/src/uts/common/smbsrv/cifs.h deleted file mode 100644 index 2f6339c04d..0000000000 --- a/usr/src/uts/common/smbsrv/cifs.h +++ /dev/null @@ -1,1217 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SMBSRV_CIFS_H -#define _SMBSRV_CIFS_H - - -/* - * This file provides definitions for the CIFS interface. The Macintosh - * Extensions for CIFS are defined in mac_cifs.h. - */ - -/* - * Macintosh Extensions for CIFS - */ -#include <smbsrv/mac_cifs.h> - -/* - * NT Installable File System (IFS) interface. - */ -#include <smbsrv/ntifs.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* Share types */ -#ifndef _SHARE_TYPES_DEFINED_ -#define _SHARE_TYPES_DEFINED_ -#define STYPE_DISKTREE 0x00000000 -#define STYPE_PRINTQ 0x00000001 -#define STYPE_DEVICE 0x00000002 -#define STYPE_IPC 0x00000003 -#define STYPE_MASK 0x0000000F -#define STYPE_DFS 0x00000064 -#define STYPE_HIDDEN 0x80000000 -#define STYPE_SPECIAL 0x80000000 -#endif /* _SHARE_TYPES_DEFINED_ */ - -#define STYPE_ISDSK(S) (((S) & STYPE_MASK) == STYPE_DISKTREE) -#define STYPE_ISPRN(S) (((S) & STYPE_MASK) == STYPE_PRINTQ) -#define STYPE_ISDEV(S) (((S) & STYPE_MASK) == STYPE_DEVICE) -#define STYPE_ISIPC(S) (((S) & STYPE_MASK) == STYPE_IPC) - -/* - * NtCreateAndX and NtTransactCreate creation flags: defined in CIFS - * section 4.2.2 - * - * Creation Flag Name Value Description - * ========================== ====== ================================== - * NT_CREATE_REQUEST_OPLOCK 0x02 Level I oplock requested - * NT_CREATE_REQUEST_OPBATCH 0x04 Batch oplock requested - * NT_CREATE_OPEN_TARGET_DIR 0x08 Target for open is a directory - */ -#define NT_CREATE_FLAG_REQUEST_OPLOCK 0x02 -#define NT_CREATE_FLAG_REQUEST_OPBATCH 0x04 -#define NT_CREATE_FLAG_OPEN_TARGET_DIR 0x08 - - -/* - * Define the filter flags for NtNotifyChangeDirectoryFile - */ -#define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001 -#define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002 -#define FILE_NOTIFY_CHANGE_NAME 0x00000003 -#define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004 -#define FILE_NOTIFY_CHANGE_SIZE 0x00000008 -#define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010 -#define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020 -#define FILE_NOTIFY_CHANGE_CREATION 0x00000040 -#define FILE_NOTIFY_CHANGE_EA 0x00000080 -#define FILE_NOTIFY_CHANGE_SECURITY 0x00000100 -#define FILE_NOTIFY_CHANGE_STREAM_NAME 0x00000200 -#define FILE_NOTIFY_CHANGE_STREAM_SIZE 0x00000400 -#define FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800 -#define FILE_NOTIFY_VALID_MASK 0x00000fff - - -/* - * Define the file action type codes for NtNotifyChangeDirectoryFile - */ -#define FILE_ACTION_ADDED 0x00000001 -#define FILE_ACTION_REMOVED 0x00000002 -#define FILE_ACTION_MODIFIED 0x00000003 -#define FILE_ACTION_RENAMED_OLD_NAME 0x00000004 -#define FILE_ACTION_RENAMED_NEW_NAME 0x00000005 -#define FILE_ACTION_ADDED_STREAM 0x00000006 -#define FILE_ACTION_REMOVED_STREAM 0x00000007 -#define FILE_ACTION_MODIFIED_STREAM 0x00000008 - - -/* Lock type flags */ -#define LOCKING_ANDX_NORMAL_LOCK 0x00 -#define LOCKING_ANDX_SHARED_LOCK 0x01 -#define LOCKING_ANDX_OPLOCK_RELEASE 0x02 -#define LOCKING_ANDX_CHANGE_LOCK_TYPE 0x04 -#define LOCKING_ANDX_CANCEL_LOCK 0x08 -#define LOCKING_ANDX_LARGE_FILES 0x10 - -#define SMB_COM_CREATE_DIRECTORY 0x00 -#define SMB_COM_DELETE_DIRECTORY 0x01 -#define SMB_COM_OPEN 0x02 -#define SMB_COM_CREATE 0x03 -#define SMB_COM_CLOSE 0x04 -#define SMB_COM_FLUSH 0x05 -#define SMB_COM_DELETE 0x06 -#define SMB_COM_RENAME 0x07 -#define SMB_COM_QUERY_INFORMATION 0x08 -#define SMB_COM_SET_INFORMATION 0x09 -#define SMB_COM_READ 0x0A -#define SMB_COM_WRITE 0x0B -#define SMB_COM_LOCK_BYTE_RANGE 0x0C -#define SMB_COM_UNLOCK_BYTE_RANGE 0x0D -#define SMB_COM_CREATE_TEMPORARY 0x0E -#define SMB_COM_CREATE_NEW 0x0F -#define SMB_COM_CHECK_DIRECTORY 0x10 -#define SMB_COM_PROCESS_EXIT 0x11 -#define SMB_COM_SEEK 0x12 -#define SMB_COM_LOCK_AND_READ 0x13 -#define SMB_COM_WRITE_AND_UNLOCK 0x14 - -#define SMB_COM_READ_RAW 0x1A -#define SMB_COM_READ_MPX 0x1B -#define SMB_COM_READ_MPX_SECONDARY 0x1C -#define SMB_COM_WRITE_RAW 0x1D -#define SMB_COM_WRITE_MPX 0x1E -#define SMB_COM_WRITE_MPX_SECONDARY 0x1F -#define SMB_COM_WRITE_COMPLETE 0x20 - -#define SMB_COM_SET_INFORMATION2 0x22 -#define SMB_COM_QUERY_INFORMATION2 0x23 -#define SMB_COM_LOCKING_ANDX 0x24 -#define SMB_COM_TRANSACTION 0x25 -#define SMB_COM_TRANSACTION_SECONDARY 0x26 -#define SMB_COM_IOCTL 0x27 -#define SMB_COM_IOCTL_SECONDARY 0x28 -#define SMB_COM_COPY 0x29 -#define SMB_COM_MOVE 0x2A -#define SMB_COM_ECHO 0x2B -#define SMB_COM_WRITE_AND_CLOSE 0x2C -#define SMB_COM_OPEN_ANDX 0x2D -#define SMB_COM_READ_ANDX 0x2E -#define SMB_COM_WRITE_ANDX 0x2F - -#define SMB_COM_CLOSE_AND_TREE_DISC 0x31 -#define SMB_COM_TRANSACTION2 0x32 -#define SMB_COM_TRANSACTION2_SECONDARY 0x33 -#define SMB_COM_FIND_CLOSE2 0x34 -#define SMB_COM_FIND_NOTIFY_CLOSE 0x35 - -#define SMB_COM_TREE_CONNECT 0x70 -#define SMB_COM_TREE_DISCONNECT 0x71 -#define SMB_COM_NEGOTIATE 0x72 -#define SMB_COM_SESSION_SETUP_ANDX 0x73 -#define SMB_COM_LOGOFF_ANDX 0x74 -#define SMB_COM_TREE_CONNECT_ANDX 0x75 - -#define SMB_COM_QUERY_INFORMATION_DISK 0x80 -#define SMB_COM_SEARCH 0x81 -#define SMB_COM_FIND 0x82 -#define SMB_COM_FIND_UNIQUE 0x83 -#define SMB_COM_FIND_CLOSE 0x84 - -#define SMB_COM_NT_TRANSACT 0xA0 -#define SMB_COM_NT_TRANSACT_SECONDARY 0xA1 -#define SMB_COM_NT_CREATE_ANDX 0xA2 -#define SMB_COM_NT_CANCEL 0xA4 - -#define SMB_COM_OPEN_PRINT_FILE 0xC0 -#define SMB_COM_WRITE_PRINT_FILE 0xC1 -#define SMB_COM_CLOSE_PRINT_FILE 0xC2 -#define SMB_COM_GET_PRINT_QUEUE 0xC3 - - -/* - * Flags field of the SMB header. The names in parenthesis represent - * alternative names for the flags. - * - * SMB_FLAGS_LOCK_AND_READ_OK If the server supports LockAndRead and - * (SMB_FLAGS_LOCKS_SUBDIALECT) WriteAndUnlock, it sets this bit in the - * Negotiate response. - * - * SMB_FLAGS_SEND_NO_ACK When on, the client guarantees that there - * (SMB_FLAGS_RCV_BUF_POSTED) is a receive buffer posted such that a - * "Send-No-Ack" can be used by the server - * to respond to the client's request. - * - * SMB_FLAGS_CASE_INSENSITIVE This is part of the Flags field of every - * SMB header. If this bit is set, then all - * pathnames in the SMB should be treated as - * case-insensitive. Otherwise pathnames are - * case-sensitive. - * - * SMB_FLAGS_CANONICALIZED_PATHS When on in SessionSetupX, this indicates - * that all paths sent to the server are - * already in OS/2 canonicalized format. - * - * OS/2 canonical format means that file/directory names are in upper case, - * are valid characters, . and .. have been removed and single backslashes - * are used as separators. - * - * SMB_FLAGS_OPLOCK When set in an open file request SMBs - * (Open, Create, OpenX, etc.) this bit - * indicates a request for an oplock on the - * file. When set in the response, this bit - * indicates that the oplock was granted. - * - * SMB_FLAGS_OPLOCK_NOTIFY_ANY When on, this bit indicates that the server - * should notify the client on any request - * that could cause the file to be changed. - * If not set, the server only notifies the - * client on other open requests on the file. - * This bit is only relevant when - * SMB_FLAGS_OPLOCK is set. - * - * SMB_FLAGS_SERVER_TO_REDIR This bit indicates that the SMB is being - * (SMB_FLAGS_REPLY) sent from server to (client) redirector. - */ -#define SMB_FLAGS_LOCK_AND_READ_OK 0x01 -#define SMB_FLAGS_SEND_NO_ACK 0x02 -#define SMB_FLAGS_RESERVED 0x04 -#define SMB_FLAGS_CASE_INSENSITIVE 0x08 -#define SMB_FLAGS_CANONICALIZED_PATHS 0x10 -#define SMB_FLAGS_OPLOCK 0x20 -#define SMB_FLAGS_OPLOCK_NOTIFY_ANY 0x40 -#define SMB_FLAGS_REPLY 0x80 - - -/* - * Flags2 field of the SMB header. - */ -#define SMB_FLAGS2_KNOWS_LONG_NAMES 0x0001 -#define SMB_FLAGS2_KNOWS_EAS 0x0002 -#define SMB_FLAGS2_SMB_SECURITY_SIGNATURE 0x0004 -#define SMB_FLAGS2_IS_LONG_NAME 0x0040 -#define SMB_FLAGS2_REPARSE_PATH 0x0400 -#define SMB_FLAGS2_EXT_SEC 0x0800 -#define SMB_FLAGS2_DFS 0x1000 -#define SMB_FLAGS2_PAGING_IO 0x2000 -#define SMB_FLAGS2_NT_STATUS 0x4000 -#define SMB_FLAGS2_UNICODE 0x8000 - -#define DIALECT_UNKNOWN 0 -#define PC_NETWORK_PROGRAM_1_0 1 /* The original MSNET SMB protocol */ -#define PCLAN1_0 2 /* Some versions of the original MSNET */ -#define MICROSOFT_NETWORKS_1_03 3 /* This is used for the MS-NET 1.03 */ -#define MICROSOFT_NETWORKS_3_0 4 /* This is the DOS LANMAN 1.0 specific */ -#define LANMAN1_0 5 /* This is the first version of the full */ -#define LM1_2X002 6 /* This is the first version of the full */ -#define DOS_LM1_2X002 7 /* This is the dos equivalent of the */ -#define DOS_LANMAN2_1 8 /* DOS LANMAN2.1 */ -#define LANMAN2_1 9 /* OS/2 LANMAN2.1 */ -#define Windows_for_Workgroups_3_1a 10 /* Windows for Workgroups Version 1.0 */ -#define NT_LM_0_12 11 /* The SMB protocol designed for NT */ - -/* - * SMB_TREE_CONNECT_ANDX OptionalSupport flags - * - * SMB_SUPPORT_SEARCH_BITS The server supports SearchAttributes. - * SMB_SHARE_IS_IN_DFS The share is managed by DFS. - * SMB_CSC_MASK Offline-caching mask - see CSC values. - * SMB_UNIQUE_FILE_NAME The server uses long names and does not support - * short names. This indicates to clients that - * they may perform directory name-space caching. - * SMB_EXTENDED_SIGNATURES The server will use signing key protection. - * - * SMB_CSC_CACHE_MANUAL_REINT Clients are allowed to cache files for offline - * use as requested by users but automatic - * file-by-file reintegration is not allowed. - * SMB_CSC_CACHE_AUTO_REINT Clients are allowed to automatically cache - * files for offline use and file-by-file - * reintegration is allowed. - * SMB_CSC_CACHE_VDO Clients are allowed to automatically cache files - * for offline use, file-by-file reintegration is - * allowed and clients are permitted to work from - * their local cache even while offline. - * SMB_CSC_CACHE_NONE Client-side caching is disabled for this share. - * - * SHI1005_FLAGS_ACCESS_BASED_DIRECTORY_ENUM - * The server will filter directory entries based - * on the access permissions of the client. - */ -#define SMB_SUPPORT_SEARCH_BITS 0x0001 -#define SMB_SHARE_IS_IN_DFS 0x0002 -#define SMB_CSC_MASK 0x000C -#define SMB_UNIQUE_FILE_NAME 0x0010 -#define SMB_EXTENDED_SIGNATURES 0x0020 - -#define SMB_CSC_CACHE_MANUAL_REINT 0x0000 -#define SMB_CSC_CACHE_AUTO_REINT 0x0004 -#define SMB_CSC_CACHE_VDO 0x0008 -#define SMB_CSC_CACHE_NONE 0x000C - -#define SHI1005_FLAGS_ACCESS_BASED_DIRECTORY_ENUM 0x0800 - -/* - * The subcommand codes, placed in SETUP[0], for named pipe operations are: - * SubCommand Code Value Description - * =================== ===== ========================================= - */ - -#define CallNamedPipe 0x54 /* open/write/read/close pipe */ -#define WaitNamedPipe 0x53 /* wait for pipe to be nonbusy */ -#define PeekNmPipe 0x23 /* read but don't remove data */ -#define QNmPHandState 0x21 /* query pipe handle modes */ -#define SetNmPHandState 0x01 /* set pipe handle modes */ -#define QNmPipeInfo 0x22 /* query pipe attributes */ -#define TransactNmPipe 0x26 /* write/read operation on pipe */ -#define RawReadNmPipe 0x11 /* read pipe in "raw" (non message mode) */ -#define RawWriteNmPipe 0x31 /* write pipe "raw" (non message mode) */ - - - -/* - * Setup[0] Transaction2 Value Description - * Subcommand Code - * ========================== ===== ============================= - */ - -#define TRANS2_OPEN2 0x00 /* Create file, extended attributes */ -#define TRANS2_FIND_FIRST2 0x01 /* Begin search for files */ -#define TRANS2_FIND_NEXT2 0x02 /* Resume search for files */ -#define TRANS2_QUERY_FS_INFORMATION 0x03 /* Get file system information */ -#define _TRANS2_RESV_0x04 0x04 /* Reserved */ -#define TRANS2_QUERY_PATH_INFORMATION 0x05 /* Get info, named file or dir */ -#define TRANS2_SET_PATH_INFORMATION 0x06 /* Set info, named file or dir */ -#define TRANS2_QUERY_FILE_INFORMATION 0x07 /* Get info, handle */ -#define TRANS2_SET_FILE_INFORMATION 0x08 /* Set info, handle */ -#define TRANS2_FSCTL 0x09 /* Not implemented by NT server */ -#define TRANS2_IOCTL2 0x0A /* Not implemented by NT server */ -#define TRANS2_FIND_NOTIFY_FIRST 0x0B /* Not implemented by NT server */ -#define TRANS2_FIND_NOTIFY_NEXT 0x0C /* Not implemented by NT server */ -#define TRANS2_CREATE_DIRECTORY 0x0D /* Create dir, extended attributes */ -#define TRANS2_SESSION_SETUP 0x0E /* Session setup, extended security */ -#define TRANS2_GET_DFS_REFERRAL 0x10 /* Get a Dfs referral */ -#define TRANS2_REPORT_DFS_INCONSISTENCY 0x11 /* Report a Dfs inconsistency */ - -/* - * Access Mode Encoding (CIFS/1.0 1996 Section 3.8). - * - * The desired access mode passed in SmbOpen and SmbOpenAndX has the following - * mapping: - * - * 1111 11 - * 5432 1098 7654 3210 - * rWrC rLLL rSSS rAAA - * - * where: - * - * W - Write through mode. No read ahead or write behind allowed on - * this file or device. When protocol is returned, data is expected - * to be on the disk or device. - * - * S - Sharing mode: - * 0 - Compatibility mode (as in core open) - * 1 - Deny read/write/execute (exclusive) - * 2 - Deny write - * 3 - Deny read/execute - * 4 - Deny none - * - * A - Access mode - * 0 - Open for reading - * 1 - Open for writing - * 2 - Open for reading and writing - * 3 - Open for execute - * - * rSSSrAAA = 11111111 (hex FF) indicates FCB open (as in core protocol) - * - * C - Cache mode - * 0 - Normal file - * 1 - Do not cache this file - * - * L - Locality of reference - * 0 - Locality of reference is unknown - * 1 - Mainly sequential access - * 2 - Mainly random access - * 3 - Random access with some locality - * 4 to 7 - Currently undefined - */ - - -#define SMB_DA_SHARE_MASK 0x70 -#define SMB_DA_ACCESS_MASK 0x07 -#define SMB_DA_FCB_MASK (UCHAR)0xFF - -#define SMB_DA_ACCESS_READ 0x00 -#define SMB_DA_ACCESS_WRITE 0x01 -#define SMB_DA_ACCESS_READ_WRITE 0x02 -#define SMB_DA_ACCESS_EXECUTE 0x03 - -#define SMB_DA_SHARE_COMPATIBILITY 0x00 -#define SMB_DA_SHARE_EXCLUSIVE 0x10 -#define SMB_DA_SHARE_DENY_WRITE 0x20 -#define SMB_DA_SHARE_DENY_READ 0x30 -#define SMB_DA_SHARE_DENY_NONE 0x40 - -#define SMB_DA_FCB (UCHAR)0xFF - -#define SMB_CACHE_NORMAL 0x0000 -#define SMB_DO_NOT_CACHE 0x1000 - -#define SMB_LR_UNKNOWN 0x0000 -#define SMB_LR_SEQUENTIAL 0x0100 -#define SMB_LR_RANDOM 0x0200 -#define SMB_LR_RANDOM_WITH_LOCALITY 0x0300 -#define SMB_LR_MASK 0x0F00 - -#define SMB_DA_WRITE_THROUGH 0x4000 - -/* - * Macros used for share reservation rule checking - */ - -#define SMB_DENY_READ(share_access) ((share_access & FILE_SHARE_READ) == 0) - -#define SMB_DENY_WRITE(share_access) ((share_access & FILE_SHARE_WRITE) == 0) - -#define SMB_DENY_DELETE(share_access) ((share_access & FILE_SHARE_DELETE) == 0) - -#define SMB_DENY_RW(share_access) \ - ((share_access & (FILE_SHARE_READ | FILE_SHARE_WRITE)) == 0) - -#define SMB_DENY_ALL(share_access) (share_access == 0) - -#define SMB_DENY_NONE(share_access) (share_access == FILE_SHARE_ALL) - -/* - * The SMB open function determines what action should be taken depending - * on the existence or lack thereof of files used in the operation. It - * has the following mapping: - * - * 1111 1 - * 5432 1098 7654 3210 - * rrrr rrrr rrrC rrOO - * - * where: - * - * O - Open (action to be taken if the target file exists) - * 0 - Fail - * 1 - Open or Append file - * 2 - Truncate file - * - * C - Create (action to be taken if the target file does not exist) - * 0 - Fail - * 1 - Create file - */ - -#define SMB_OFUN_OPEN_MASK 0x3 -#define SMB_OFUN_CREATE_MASK 0x10 - -#define SMB_OFUN_OPEN_FAIL 0 -#define SMB_OFUN_OPEN_APPEND 1 -#define SMB_OFUN_OPEN_OPEN 1 -#define SMB_OFUN_OPEN_TRUNCATE 2 - -#define SMB_OFUN_CREATE_FAIL 0x00 -#define SMB_OFUN_CREATE_CREATE 0x10 - -/* - * The Action field of OpenAndX has the following format: - * - * 1111 11 - * 5432 1098 7654 3210 - * Lrrr rrrr rrrr rrOO - * - * where: - * - * L - Opportunistic lock. 1 if lock granted, else 0. - * - * O - Open action: - * 1 - The file existed and was opened - * 2 - The file did not exist but was created - * 3 - The file existed and was truncated - */ - -#define SMB_OACT_LOCK 0x8000 -#define SMB_OACT_OPENED 0x01 -#define SMB_OACT_CREATED 0x02 -#define SMB_OACT_TRUNCATED 0x03 - -#define SMB_OACT_OPLOCK 0x8000 - -#define SMB_FTYPE_DISK 0 -#define SMB_FTYPE_BYTE_PIPE 1 -#define SMB_FTYPE_MESG_PIPE 2 -#define SMB_FTYPE_PRINTER 3 -#define SMB_FTYPE_UNKNOWN 0xFFFF - -#define SMB_DEVST_BLOCKING 0x8000 -#define SMB_DEVST_ENDPOINT 0x4000 -#define SMB_DEVST_TYPE_MASK 0x0C00 -#define SMB_DEVST_TYPE_BYTE_PIPE 0x0000 -#define SMB_DEVST_TYPE_MESG_PIPE 0x0400 -#define SMB_DEVST_RMODE_MASK 0x0300 -#define SMB_DEVST_RMODE_BYTES 0x0000 -#define SMB_DEVST_RMODE_MESGS 0x0100 -#define SMB_DEVST_ICOUNT_MASK 0x00FF /* not used */ - -#define SMB_FTYPE_IS_DISK(F) ((F) == SMB_FTYPE_DISK) -#define SMB_FTYPE_IS_PIPE(F) \ - (((F) == SMB_FTYPE_BYTE_PIPE) || ((F) == SMB_FTYPE_MESG_PIPE)) -#define SMB_FTYPE_IS_PRINTER(F) ((F) == SMB_FTYPE_PRINTER) - -/* - * TRANS2_FIND - */ -#define SMB_FIND_FILE_DIRECTORY_INFO 0x101 -#define SMB_FIND_FILE_FULL_DIRECTORY_INFO 0x102 -#define SMB_FIND_FILE_NAMES_INFO 0x103 -#define SMB_FIND_FILE_BOTH_DIRECTORY_INFO 0x104 -#define SMB_FIND_FILE_ID_FULL_DIRECTORY_INFO 0x105 -#define SMB_FIND_FILE_ID_BOTH_DIRECTORY_INFO 0x106 -#define SMB_MAC_FIND_BOTH_HFS_INFO MAC_FIND_BOTH_HFS_INFO - - -/* - * Flags for TRANS2_FIND_FIRST2 and TRANS2_FIND_NEXT2 - * (NTDDK cifs.h). - * - * If SMB_FIND_RETURN_RESUME_KEYS was set in the request parameters, - * each entry is preceded by a four-byte resume key. - */ -#define SMB_FIND_CLOSE_AFTER_REQUEST 0x01 -#define SMB_FIND_CLOSE_AT_EOS 0x02 -#define SMB_FIND_RETURN_RESUME_KEYS 0x04 -#define SMB_FIND_CONTINUE_FROM_LAST 0x08 -#define SMB_FIND_WITH_BACKUP_INTENT 0x10 - - -/* - * TRANS2_QUERY_FS_INFORMATION - */ -#define SMB_INFO_ALLOCATION 1 -#define SMB_INFO_VOLUME 2 -#define SMB_QUERY_FS_LABEL_INFO 0x101 -#define SMB_QUERY_FS_VOLUME_INFO 0x102 -#define SMB_QUERY_FS_SIZE_INFO 0x103 -#define SMB_QUERY_FS_DEVICE_INFO 0x104 -#define SMB_QUERY_FS_ATTRIBUTE_INFO 0x105 -#define SMB_QUERY_FS_QUOTA_INFO 0x106 /* unused? */ -#define SMB_QUERY_FS_CONTROL_INFO 0x107 -#define SMB_MAC_QUERY_FS_INFO MAC_QUERY_FS_INFO - - -/* - * Internal use only. - * Define information levels to represent the following requests: - * smb_query_information - * smb_query_information2 - * smb_set_information - * smb_set_information2 - */ -#define SMB_QUERY_INFORMATION 0x3001 -#define SMB_QUERY_INFORMATION2 0x3002 -#define SMB_SET_INFORMATION 0x3001 -#define SMB_SET_INFORMATION2 0x3002 - -/* TRANS2_QUERY_{PATH,FILE}_INFORMATION */ -#define SMB_INFO_STANDARD 1 /* query, set */ -#define SMB_INFO_QUERY_EA_SIZE 2 /* query */ -#define SMB_INFO_SET_EAS 2 /* set */ -#define SMB_INFO_QUERY_EAS_FROM_LIST 3 /* query */ -#define SMB_INFO_QUERY_ALL_EAS 4 /* query */ -#define SMB_INFO_QUERY_FULL_NAME 5 /* unused */ -#define SMB_INFO_IS_NAME_VALID 6 /* query */ - -#define SMB_QUERY_FILE_BASIC_INFO 0x101 -#define SMB_QUERY_FILE_STANDARD_INFO 0x102 -#define SMB_QUERY_FILE_EA_INFO 0x103 -#define SMB_QUERY_FILE_NAME_INFO 0x104 -#define SMB_QUERY_FILE_ALLOCATION_INFO 0x105 /* unused */ -#define SMB_QUERY_FILE_END_OF_FILE_INFO 0x106 /* unused */ -#define SMB_QUERY_FILE_ALL_INFO 0x107 -#define SMB_QUERY_FILE_ALT_NAME_INFO 0x108 -#define SMB_QUERY_FILE_STREAM_INFO 0x109 -#define SMB_QUERY_FILE_COMPRESSION_INFO 0x10B - -#define SMB_MAC_SET_FINDER_INFO MAC_SET_FINDER_INFO -#define SMB_MAC_DT_ADD_APPL MAC_DT_ADD_APPL -#define SMB_MAC_DT_REMOVE_APPL MAC_DT_REMOVE_APPL -#define SMB_MAC_DT_GET_APPL MAC_DT_GET_APPL -#define SMB_MAC_DT_GET_ICON MAC_DT_GET_ICON -#define SMB_MAC_DT_GET_ICON_INFO MAC_DT_GET_ICON_INFO -#define SMB_MAC_DT_ADD_ICON MAC_DT_ADD_ICON - -#define SMB_SET_FILE_BASIC_INFO 0x101 -#define SMB_SET_FILE_DISPOSITION_INFO 0x102 -#define SMB_SET_FILE_ALLOCATION_INFO 0x103 -#define SMB_SET_FILE_END_OF_FILE_INFO 0x104 - - -/* NT passthrough levels - see ntifs.h FILE_INFORMATION_CLASS */ -#define SMB_FILE_BASIC_INFORMATION 1004 -#define SMB_FILE_STANDARD_INFORMATION 1005 -#define SMB_FILE_INTERNAL_INFORMATION 1006 -#define SMB_FILE_EA_INFORMATION 1007 -#define SMB_FILE_ACCESS_INFORMATION 1008 -#define SMB_FILE_NAME_INFORMATION 1009 -#define SMB_FILE_DISPOSITION_INFORMATION 1013 -#define SMB_FILE_ALL_INFORMATION 1018 -#define SMB_FILE_ALLOCATION_INFORMATION 1019 -#define SMB_FILE_END_OF_FILE_INFORMATION 1020 -#define SMB_FILE_ALT_NAME_INFORMATION 1021 -#define SMB_FILE_STREAM_INFORMATION 1022 -#define SMB_FILE_COMPRESSION_INFORMATION 1028 -#define SMB_FILE_ATTR_TAG_INFORMATION 1035 - -/* - * The following bits may be set in the SecurityMode field of the - * SMB_COM_NEGOTIATE response. - * - * Notes: - * NEGOTIATE_SECURITY_SHARE_LEVEL is a montana2 invention. - * - * The NTDDK cifs.h definitions are: - * #define NEGOTIATE_USER_SECURITY 0x01 - * #define NEGOTIATE_ENCRYPT_PASSWORDS 0x02 - * #define NEGOTIATE_SECURITY_SIGNATURES_ENABLED 0x04 - * #define NEGOTIATE_SECURITY_SIGNATURES_REQUIRED 0x08 - */ -#define NEGOTIATE_SECURITY_SHARE_LEVEL 0x00 -#define NEGOTIATE_SECURITY_USER_LEVEL 0x01 -#define NEGOTIATE_SECURITY_CHALLENGE_RESPONSE 0x02 -#define NEGOTIATE_SECURITY_SIGNATURES_ENABLED 0x04 -#define NEGOTIATE_SECURITY_SIGNATURES_REQUIRED 0x08 - - -/* - * Negotiated Capabilities (CIFS/1.0 section 4.1.1) - * - * Capabilities allow the server to tell the client what it supports. - * Undefined bits MUST be set to zero by servers, and MUST be ignored - * by clients. The bit definitions are: - * - * Capability Name Encoding Meaning - * ==================== ======== ================================== - * CAP_RAW_MODE 0x0001 The server supports SMB_COM_READ_RAW and - * SMB_COM_WRITE_RAW (obsolescent) - * CAP_MPX_MODE 0x0002 The server supports SMB_COM_READ_MPX and - * SMB_COM_WRITE_MPX (obsolescent) - * CAP_UNICODE 0x0004 The server supports Unicode strings - * CAP_LARGE_FILES 0x0008 The server supports large files with 64 - * bit offsets - * CAP_NT_SMBS 0x0010 The server supports the SMBs particular - * to the NT LM 0.12 dialect. - * Implies CAP_NT_FIND. - * CAP_RPC_REMOTE_APIS 0x0020 The server supports remote admin API - * requests via DCE RPC - * CAP_STATUS32 0x0040 The server can respond with 32 bit - * status codes in Status.Status - * CAP_LEVEL_II_OPLOCKS 0x0080 The server supports level 2 oplocks - * CAP_LOCK_AND_READ 0x0100 The server supports the - * SMB_COM_LOCK_AND_READ SMB - * CAP_NT_FIND 0x0200 - * CAP_BULK_TRANSFER 0x0400 - * CAP_COMPRESSED_BULK 0x0800 - * CAP_DFS 0x1000 The server is DFS aware - * CAP_LARGE_READX 0x4000 The server supports large - * SMB_COM_READ_ANDX - * CAP_LARGE_WRITEX 0x8000 The server supports large - * SMB_COM_WRITE_ANDX - * CAP_RESERVED 0x02000000 Reserved for future use. - * CAP_EXTENDED_SECURITY 0x80000000 The server supports extended security - * exchanges. - * - * Extended security exchanges provides a means of supporting arbitrary - * authentication protocols within CIFS. Security blobs are opaque to the - * CIFS protocol; they are messages in some authentication protocol that - * has been agreed upon by client and server by some out of band mechanism, - * for which CIFS merely functions as a transport. When - * CAP_EXTENDED_SECURITY is negotiated, the server includes a first - * security blob in its response; subsequent security blobs are exchanged - * in SMB_COM_SESSION_SETUP_ANDX requests and responses until the - * authentication protocol terminates. - */ -#define CAP_RAW_MODE 0x0001 -#define CAP_MPX_MODE 0x0002 -#define CAP_UNICODE 0x0004 -#define CAP_LARGE_FILES 0x0008 -#define CAP_NT_SMBS 0x0010 -#define CAP_RPC_REMOTE_APIS 0x0020 -#define CAP_STATUS32 0x0040 -#define CAP_LEVEL_II_OPLOCKS 0x0080 -#define CAP_LOCK_AND_READ 0x0100 -#define CAP_NT_FIND 0x0200 -#define CAP_BULK_TRANSFER 0x0400 -#define CAP_COMPRESSED_BULK 0x0800 -#define CAP_DFS 0x1000 -#define CAP_LARGE_READX 0x4000 -#define CAP_LARGE_WRITEX 0x8000 -#define CAP_RESERVED 0x02000000 -#define CAP_EXTENDED_SECURITY 0x80000000 - - -/* - * Different device types according to NT - */ -#define FILE_DEVICE_BEEP 0x00000001 -#define FILE_DEVICE_CD_ROM 0x00000002 -#define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003 -#define FILE_DEVICE_CONTROLLER 0x00000004 -#define FILE_DEVICE_DATALINK 0x00000005 -#define FILE_DEVICE_DFS 0x00000006 -#define FILE_DEVICE_DISK 0x00000007 -#define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008 -#define FILE_DEVICE_FILE_SYSTEM 0x00000009 -#define FILE_DEVICE_INPORT_PORT 0x0000000a -#define FILE_DEVICE_KEYBOARD 0x0000000b -#define FILE_DEVICE_MAILSLOT 0x0000000c -#define FILE_DEVICE_MIDI_IN 0x0000000d -#define FILE_DEVICE_MIDI_OUT 0x0000000e -#define FILE_DEVICE_MOUSE 0x0000000f -#define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010 -#define FILE_DEVICE_NAMED_PIPE 0x00000011 -#define FILE_DEVICE_NETWORK 0x00000012 -#define FILE_DEVICE_NETWORK_BROWSER 0x00000013 -#define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014 -#define FILE_DEVICE_NULL 0x00000015 -#define FILE_DEVICE_PARALLEL_PORT 0x00000016 -#define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017 -#define FILE_DEVICE_PRINTER 0x00000018 -#define FILE_DEVICE_SCANNER 0x00000019 -#define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001a -#define FILE_DEVICE_SERIAL_PORT 0x0000001b -#define FILE_DEVICE_SCREEN 0x0000001c -#define FILE_DEVICE_SOUND 0x0000001d -#define FILE_DEVICE_STREAMS 0x0000001e -#define FILE_DEVICE_TAPE 0x0000001f -#define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020 -#define FILE_DEVICE_TRANSPORT 0x00000021 -#define FILE_DEVICE_UNKNOWN 0x00000022 -#define FILE_DEVICE_VIDEO 0x00000023 -#define FILE_DEVICE_VIRTUAL_DISK 0x00000024 -#define FILE_DEVICE_WAVE_IN 0x00000025 -#define FILE_DEVICE_WAVE_OUT 0x00000026 -#define FILE_DEVICE_8042_PORT 0x00000027 -#define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028 -#define FILE_DEVICE_BATTERY 0x00000029 -#define FILE_DEVICE_BUS_EXTENDER 0x0000002a -#define FILE_DEVICE_MODEM 0x0000002b -#define FILE_DEVICE_VDM 0x0000002c - -/* - * Some of these device types are not currently accessible over the network - * and may never be accessible over the network. Some may change to be - * - * accessible over the network. The values for device types that may never - * be accessible over the network may be redefined to be just reserved at - * some date in the future. - * - * Characteristics is the sum of any of the following: - */ - -#define FILE_REMOVABLE_MEDIA 0x00000001 -#define FILE_READ_ONLY_DEVICE 0x00000002 -#define FILE_FLOPPY_DISKETTE 0x00000004 -#define FILE_WRITE_ONE_MEDIA 0x00000008 -#define FILE_REMOTE_DEVICE 0x00000010 -#define FILE_DEVICE_IS_MOUNTED 0x00000020 -#define FILE_VIRTUAL_VOLUME 0x00000040 - -/* - * CREATE_ANDX ShareAccess Flags - */ - -#define FILE_SHARE_NONE 0x00000000 -#define FILE_SHARE_READ 0x00000001 -#define FILE_SHARE_WRITE 0x00000002 -#define FILE_SHARE_DELETE 0x00000004 -#define FILE_SHARE_ALL 0x00000007 -#define FILE_SHARE_VALID_FLAGS 0x00000007 - - -/* - * CREATE_ANDX CreateDisposition flags - * - * FILE_SUPERSEDE If the file already exists it should be superseded - * by the specified file. If the file does not already - * exist then it should be created. - * - * FILE_CREATE If the file already exists the operation should fail. - * If the file does not already exist then it should be - * created. (aka CREATE_NEW) - * - * FILE_OPEN If the file already exists then it should be opened. - * If the file does not already exist then the operation - * should fail. (aka OPEN_EXISTING) - * - * FILE_OPEN_IF If the file already exists then it should be opened. - * If the file does not already exist then it should be - * created. (aka OPEN_ALWAYS) - * - * FILE_OVERWRITE If the file already exists, it should be opened and - * overwritten. If the file does not already exist then - * the operation should fail. (aka TRUNCATE_EXISTING) - * - * FILE_OVERWRITE_IF If the file already exists, it should be opened and - * overwritten. If the file does not already exist then - * it should be created. (aka CREATE_ALWAYS) - */ -#define FILE_SUPERSEDE 0x00000000 -#define FILE_OPEN 0x00000001 -#define FILE_CREATE 0x00000002 -#define FILE_OPEN_IF 0x00000003 -#define FILE_OVERWRITE 0x00000004 -#define FILE_OVERWRITE_IF 0x00000005 -#define FILE_MAXIMUM_DISPOSITION 0x00000005 - -/* - * CREATE_ANDX Impersonation levels - */ - -#define SECURITY_ANONYMOUS 0x00000001 -#define SECURITY_IDENTIFICATION 0x00000002 -#define SECURITY_IMPERSONATION 0x00000003 -#define SECURITY_DELEGATION 0x00000004 - -/* - * CREATE_ANDX SecurityFlags - */ - -#define SECURITY_CONTEXT_TRACKING 0x00000001 -#define SECURITY_EFFECTIVE_ONLY 0x00000002 - -/* - * Server types - */ -#define SV_WORKSTATION 0x00000001 /* All workstations */ -#define SV_SERVER 0x00000002 /* All servers */ -#define SV_SQLSERVER 0x00000004 /* running with SQL server */ -#define SV_DOMAIN_CTRL 0x00000008 /* Primary domain controller */ -#define SV_DOMAIN_BAKCTRL 0x00000010 /* Backup domain controller */ -#define SV_TIME_SOURCE 0x00000020 /* running timesource service */ -#define SV_AFP 0x00000040 /* Apple File Protocol */ -#define SV_NOVELL 0x00000080 /* Novell servers */ -#define SV_DOMAIN_MEMBER 0x00000100 /* Domain Member */ -#define SV_PRINTQ_SERVER 0x00000200 /* Server sharing print queue */ -#define SV_DIALIN_SERVER 0x00000400 /* Server running dialin */ -#define SV_XENIX_SERVER 0x00000800 /* Xenix server */ -#define SV_NT 0x00001000 /* NT server */ -#define SV_WFW 0x00002000 /* Server running Windows for */ -#define SV_SERVER_NT 0x00008000 /* Windows NT non DC server */ -#define SV_POTENTIAL_BROWSER 0x00010000 /* can run browser service */ -#define SV_BACKUP_BROWSER 0x00020000 /* Backup browser server */ -#define SV_MASTER_BROWSER 0x00040000 /* Master browser server */ -#define SV_DOMAIN_MASTER 0x00080000 /* Domain Master Browser */ -#define SV_OSF 0x00100000 /* OSF operating system */ -#define SV_VMS 0x00200000 /* VMS operating system */ -#define SV_WINDOWS_95_PLUS 0x00400000 /* Windows 95 or better */ - -#define SV_LOCAL_LIST_ONLY 0x40000000 /* Enumerate only "local" */ -#define SV_TYPE_DOMAIN_ENUM 0x80000000 /* Enumerate Domains */ - -#define MY_SERVER_TYPE (SV_SERVER | SV_NT | SV_SERVER_NT) - - -#define PRQ_ACTIVE 0 /* Active */ -#define PRQ_PAUSE 1 /* Paused */ -#define PRQ_ERROR 2 /* Error Occurred */ -#define PRQ_PENDING 3 /* Deletion pending */ - -#define PRJ_QS_QUEUED 0 /* Active */ -#define PRJ_QS_PAUSED 1 /* Paused */ -#define PRJ_QS_SPOOLING 2 /* Paused */ -#define PRJ_QS_PRINTING 3 /* Paused */ - - -#define SHARE_ACCESS_READ 0x01 /* read & execute from resource */ -#define SHARE_ACCESS_WRITE 0x02 /* write data to resource */ -#define SHARE_ACCESS_CREATE 0x04 /* create an instance of */ -#define SHARE_ACCESS_EXEC 0x08 /* execute from resource */ -#define SHARE_ACCESS_DELETE 0x10 /* Permission to delete the resource */ -#define SHARE_ACCESS_ATTRIB 0x20 /* Permission to modify the resource */ -#define SHARE_ACCESS_PERM 0x40 /* Permission to change permissions */ -#define SHARE_ACCESS_ALL 0x7F /* All of the above permissions */ - - -/* - * SMB_COM_NT_TRANSACTION sub-command codes (CIFS/1.0 section 5.3) - * - * SubCommand Code Value Description - * =============================== ===== ================================= - * NT_TRANSACT_CREATE 1 File open/create - * NT_TRANSACT_IOCTL 2 Device IOCTL - * NT_TRANSACT_SET_SECURITY_DESC 3 Set security descriptor - * NT_TRANSACT_NOTIFY_CHANGE 4 Start directory watch - * NT_TRANSACT_RENAME 5 Reserved (handle-based rename) - * NT_TRANSACT_QUERY_SECURITY_DESC 6 Retrieve security descriptor - * NT_TRANSACT_QUERY_QUOTA 7 Retrieve quota information - * NT_TRANSACT_SET_QUOTA 8 Set quota information - */ -#define NT_TRANSACT_MIN_FUNCTION 1 - -#define NT_TRANSACT_CREATE 1 -#define NT_TRANSACT_IOCTL 2 -#define NT_TRANSACT_SET_SECURITY_DESC 3 -#define NT_TRANSACT_NOTIFY_CHANGE 4 -#define NT_TRANSACT_RENAME 5 -#define NT_TRANSACT_QUERY_SECURITY_DESC 6 -#define NT_TRANSACT_QUERY_QUOTA 7 -#define NT_TRANSACT_SET_QUOTA 8 - -#define NT_TRANSACT_MAX_FUNCTION 8 - - -/* - * Pipe states - */ -#define SMB_PIPE_READMODE_BYTE 0x0000 -#define SMB_PIPE_READMODE_MESSAGE 0x0100 -#define SMB_PIPE_TYPE_BYTE 0x0000 -#define SMB_PIPE_TYPE_MESSAGE 0x0400 -#define SMB_PIPE_END_CLIENT 0x0000 -#define SMB_PIPE_END_SERVER 0x4000 -#define SMB_PIPE_WAIT 0x0000 -#define SMB_PIPE_NOWAIT 0x8000 -#define SMB_PIPE_UNLIMITED_INSTANCES 0x00FF - -/* - * smb_com_seek request - */ -#define SMB_SEEK_SET 0 /* set file offset to specified offset */ -#define SMB_SEEK_CUR 1 /* set file offset to current plus specified offset */ -#define SMB_SEEK_END 2 /* set file offset to EOF plus specified offset */ - -/* - * API Numbers for Transact based RAP (Remote Administration Protocol) calls - */ -#define API_WshareEnum 0 -#define API_WshareGetInfo 1 -#define API_WshareSetInfo 2 -#define API_WshareAdd 3 -#define API_WshareDel 4 -#define API_NetShareCheck 5 -#define API_WsessionEnum 6 -#define API_WsessionGetInfo 7 -#define API_WsessionDel 8 -#define API_WconnectionEnum 9 -#define API_WfileEnum 10 -#define API_WfileGetInfo 11 -#define API_WfileClose 12 -#define API_WserverGetInfo 13 -#define API_WserverSetInfo 14 -#define API_WserverDiskEnum 15 -#define API_WserverAdminCommand 16 -#define API_NetAuditOpen 17 -#define API_WauditClear 18 -#define API_NetErrorLogOpen 19 -#define API_WerrorLogClear 20 -#define API_NetCharDevEnum 21 -#define API_NetCharDevGetInfo 22 -#define API_WCharDevControl 23 -#define API_NetCharDevQEnum 24 -#define API_NetCharDevQGetInfo 25 -#define API_WCharDevQSetInfo 26 -#define API_WCharDevQPurge 27 -#define API_WCharDevQPurgeSelf 28 -#define API_WMessageNameEnum 29 -#define API_WMessageNameGetInfo 30 -#define API_WMessageNameAdd 31 -#define API_WMessageNameDel 32 -#define API_WMessageNameFwd 33 -#define API_WMessageNameUnFwd 34 -#define API_WMessageBufferSend 35 -#define API_WMessageFileSend 36 -#define API_WMessageLogFileSet 37 -#define API_WMessageLogFileGet 38 -#define API_WServiceEnum 39 -#define API_WServiceInstall 40 -#define API_WServiceControl 41 -#define API_WAccessEnum 42 -#define API_WAccessGetInfo 43 -#define API_WAccessSetInfo 44 -#define API_WAccessAdd 45 -#define API_WAccessDel 46 -#define API_WGroupEnum 47 -#define API_WGroupAdd 48 -#define API_WGroupDel 49 -#define API_WGroupAddUser 50 -#define API_WGroupDelUser 51 -#define API_WGroupGetUsers 52 -#define API_WUserEnum 53 -#define API_WUserAdd 54 -#define API_WUserDel 55 -#define API_WUserGetInfo 56 -#define API_WUserSetInfo 57 -#define API_WUserPasswordSet 58 -#define API_WUserGetGroups 59 -#define API_DeadTableEntry 60 -#define API_WWkstaSetUID 62 -#define API_WWkstaGetInfo 63 -#define API_WWkstaSetInfo 64 -#define API_WUseEnum 65 -#define API_WUseAdd 66 -#define API_WUseDel 67 -#define API_WUseGetInfo 68 -#define API_WPrintQEnum 69 -#define API_WPrintQGetInfo 70 -#define API_WPrintQSetInfo 71 -#define API_WPrintQAdd 72 -#define API_WPrintQDel 73 -#define API_WPrintQPause 74 -#define API_WPrintQContinue 75 -#define API_WPrintJobEnum 76 -#define API_WPrintJobGetInfo 77 -#define API_WPrintJobSetInfo_OLD 78 -#define API_WPrintJobDel 81 -#define API_WPrintJobPause 82 -#define API_WPrintJobContinue 83 -#define API_WPrintDestEnum 84 -#define API_WPrintDestGetInfo 85 -#define API_WPrintDestControl 86 -#define API_WProfileSave 87 -#define API_WProfileLoad 88 -#define API_WStatisticsGet 89 -#define API_WStatisticsClear 90 -#define API_NetRemoteTOD 91 -#define API_WNetBiosEnum 92 -#define API_WNetBiosGetInfo 93 -#define API_NetServerEnum 94 -#define API_I_NetServerEnum 95 -#define API_WServiceGetInfo 96 -#define API_WPrintQPurge 103 -#define API_NetServerEnum2 104 -#define API_WAccessGetUserPerms 105 -#define API_WGroupGetInfo 106 -#define API_WGroupSetInfo 107 -#define API_WGroupSetUsers 108 -#define API_WUserSetGroups 109 -#define API_WUserModalsGet 110 -#define API_WUserModalsSet 111 -#define API_WFileEnum2 112 -#define API_WUserAdd2 113 -#define API_WUserSetInfo2 114 -#define API_WUserPasswordSet2 115 -#define API_I_NetServerEnum2 116 -#define API_WConfigGet2 117 -#define API_WConfigGetAll2 118 -#define API_WGetDCName 119 -#define API_NetHandleGetInfo 120 -#define API_NetHandleSetInfo 121 -#define API_WStatisticsGet2 122 -#define API_WBuildGetInfo 123 -#define API_WFileGetInfo2 124 -#define API_WFileClose2 125 -#define API_WNetServerReqChallenge 126 -#define API_WNetServerAuthenticate 127 -#define API_WNetServerPasswordSet 128 -#define API_WNetAccountDeltas 129 -#define API_WNetAccountSync 130 -#define API_WUserEnum2 131 -#define API_WWkstaUserLogon 132 -#define API_WWkstaUserLogoff 133 -#define API_WLogonEnum 134 -#define API_WErrorLogRead 135 -#define API_WI_NetPathType 136 -#define API_WI_NetPathCanonicalize 137 -#define API_WI_NetPathCompare 138 -#define API_WI_NetNameValidate 139 -#define API_WI_NetNameCanonicalize 140 -#define API_WI_NetNameCompare 141 -#define API_WAuditRead 142 -#define API_WPrintDestAdd 143 -#define API_WPrintDestSetInfo 144 -#define API_WPrintDestDel 145 -#define API_WUserValidate2 146 -#define API_WPrintJobSetInfo 147 -#define API_TI_NetServerDiskEnum 148 -#define API_TI_NetServerDiskGetInfo 149 -#define API_TI_FTVerifyMirror 150 -#define API_TI_FTAbortVerify 151 -#define API_TI_FTGetInfo 152 -#define API_TI_FTSetInfo 153 -#define API_TI_FTLockDisk 154 -#define API_TI_FTFixError 155 -#define API_TI_FTAbortFix 156 -#define API_TI_FTDiagnoseError 157 -#define API_TI_FTGetDriveStats 158 -#define API_TI_FTErrorGetInfo 160 -#define API_NetAccessCheck 163 -#define API_NetAlertRaise 164 -#define API_NetAlertStart 165 -#define API_NetAlertStop 166 -#define API_NetAuditWrite 167 -#define API_NetIRemoteAPI 168 -#define API_NetServiceStatus 169 -#define API_I_NetServerRegister 170 -#define API_I_NetServerDeregister 171 -#define API_I_NetSessionEntryMake 172 -#define API_I_NetSessionEntryClear 173 -#define API_I_NetSessionEntryGetInfo 174 -#define API_I_NetSessionEntrySetInfo 175 -#define API_I_NetConnectionEntryMake 176 -#define API_I_NetConnectionEntryClear 177 -#define API_I_NetConnectionEntrySetInfo 178 -#define API_I_NetConnectionEntryGetInfo 179 -#define API_I_NetFileEntryMake 180 -#define API_I_NetFileEntryClear 181 -#define API_I_NetFileEntrySetInfo 182 -#define API_I_NetFileEntryGetInfo 183 -#define API_AltSrvMessageBufferSend 184 -#define API_AltSrvMessageFileSend 185 -#define API_wI_NetRplWkstaEnum 186 -#define API_wI_NetRplWkstaGetInfo 187 -#define API_wI_NetRplWkstaSetInfo 188 -#define API_wI_NetRplWkstaAdd 189 -#define API_wI_NetRplWkstaDel 190 -#define API_wI_NetRplProfileEnum 191 -#define API_wI_NetRplProfileGetInfo 192 -#define API_wI_NetRplProfileSetInfo 193 -#define API_wI_NetRplProfileAdd 194 -#define API_wI_NetRplProfileDel 195 -#define API_wI_NetRplProfileClone 196 -#define API_wI_NetRplBaseProfileEnum 197 -#define API_WIServerSetInfo 201 -#define API_WPrintDriverEnum 205 -#define API_WPrintQProcessorEnum 206 -#define API_WPrintPortEnum 207 -#define API_WNetWriteUpdateLog 208 -#define API_WNetAccountUpdate 209 -#define API_WNetAccountConfirmUpdate 210 -#define API_WConfigSet 211 -#define API_WAccountsReplicate 212 -#define API_SamOEMChgPasswordUser2_P 214 -#define API_NetServerEnum3 215 -#define API_WprintDriverGetInfo 250 -#define API_WprintDriverSetInfo 251 -#define API_WaliasAdd 252 -#define API_WaliasDel 253 -#define API_WaliasGetInfo 254 -#define API_WaliasSetInfo 255 -#define API_WaliasEnum 256 -#define API_WuserGetLogonAsn 257 -#define API_WuserSetLogonAsn 258 -#define API_WuserGetAppSel 259 -#define API_WuserSetAppSel 260 -#define API_WappAdd 261 -#define API_WappDel 262 -#define API_WappGetInfo 263 -#define API_WappSetInfo 264 -#define API_WappEnum 265 -#define API_WUserDCDBInit 266 -#define API_WDASDAdd 267 -#define API_WDASDDel 268 -#define API_WDASDGetInfo 269 -#define API_WDASDSetInfo 270 -#define API_WDASDEnum 271 -#define API_WDASDCheck 272 -#define API_WDASDCtl 273 -#define API_WuserRemoteLogonCheck 274 -#define API_WUserPasswordSet3 275 -#define API_WCreateRIPLMachine 276 -#define API_WDeleteRIPLMachine 277 -#define API_WGetRIPLMachineInfo 278 -#define API_WSetRIPLMachineInfo 279 -#define API_WEnumRIPLMachine 280 -#define API_WI_ShareAdd 281 -#define API_WI_AliasEnum 282 -#define API_WaccessApply 283 -#define API_WPrt16Query 284 -#define API_WPrt16Set 285 -#define API_WUserDel100 286 -#define API_WUserRemoteLogonCheck2 287 -#define API_WRemoteTODSet 294 -#define API_WprintJobMoveAll 295 -#define API_W16AppParmAdd 296 -#define API_W16AppParmDel 297 -#define API_W16AppParmGet 298 -#define API_W16AppParmSet 299 -#define API_W16RIPLMachineCreate 300 -#define API_W16RIPLMachineGetInfo 301 -#define API_W16RIPLMachineSetInfo 302 -#define API_W16RIPLMachineEnum 303 -#define API_W16RIPLMachineListParmEnum 304 -#define API_W16RIPLMachClassGetInfo 305 -#define API_W16RIPLMachClassEnum 306 -#define API_W16RIPLMachClassCreate 307 -#define API_W16RIPLMachClassSetInfo 308 -#define API_W16RIPLMachClassDelete 309 -#define API_W16RIPLMachClassLPEnum 310 -#define API_W16RIPLMachineDelete 311 -#define API_W16WSLevelGetInfo 312 -#define API_WserverNameAdd 313 -#define API_WserverNameDel 314 -#define API_WserverNameEnum 315 -#define API_I_WDASDEnum 316 -#define API_I_WDASDEnumTerminate 317 -#define API_I_WDASDSetInfo2 318 -#define MAX_RAP_API 318 - -#ifdef __cplusplus -} -#endif - -#endif /* _SMBSRV_CIFS_H */ diff --git a/usr/src/uts/common/smbsrv/codepage.h b/usr/src/uts/common/smbsrv/codepage.h deleted file mode 100644 index baefb9de22..0000000000 --- a/usr/src/uts/common/smbsrv/codepage.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SMBSRV_CODEPAGE_H -#define _SMBSRV_CODEPAGE_H - -#pragma ident "%Z%%M% %I% %E% SMI" - -#include <smbsrv/string.h> -#include <smbsrv/smb_i18n.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Labels to define whether a code page table entry is an uppercase - * character, a lowercase character or neither. One of these values - * should appear in the ctype field of the code page tables. - */ -#define CODEPAGE_ISNONE 0x00 -#define CODEPAGE_ISUPPER 0x01 -#define CODEPAGE_ISLOWER 0x02 - -/* - * The structure of a code page entry. Each code page table will - * consist of an array of 256 codepage entries. - * - * ctype indicates case of the value. - * upper indicates the uppercase equivalent value. - * lower indicates the lowercase equivalent value. - */ -typedef struct codepage { - unsigned char ctype; - mts_wchar_t upper; - mts_wchar_t lower; -} codepage_t; - -/* - * Global pointer to the current code page. This is - * defaulted to a standard ASCII table. - */ -extern codepage_t usascii_codepage[]; - -/* - * This buffer is used to store the language string for display. - */ -#define CODEPAGE_BUFSIZ 48 - -extern int oem_language_set(char *language); -extern unsigned int oem_get_smb_cpid(void); -extern unsigned int oem_get_telnet_cpid(void); - -extern int codepage_isupper(int c); -extern int codepage_islower(int c); -extern int codepage_toupper(int c); -extern int codepage_tolower(int c); - -#ifdef __cplusplus -} -#endif - -#endif /* _SMBSRV_CODEPAGE_H */ diff --git a/usr/src/uts/common/smbsrv/cp_cyrillic.h b/usr/src/uts/common/smbsrv/cp_cyrillic.h deleted file mode 100644 index d3b2a27596..0000000000 --- a/usr/src/uts/common/smbsrv/cp_cyrillic.h +++ /dev/null @@ -1,312 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SMBSRV_CP_CYRILLIC_H -#define _SMBSRV_CP_CYRILLIC_H - -#pragma ident "%Z%%M% %I% %E% SMI" - -/* - * This file specifies a codepage mapping for a given character set as - * specified below: - * - * This is the codepage for Cyrillic Character Set - * This codepage defines values for the special - * characters needed for the written alphabets of the - * following languages: Bulgarian, Byelorussian, - * Macedonian, Russian, Serbian, and pre-1990 Ukrainian - * The cyrillic character set is also known as iso-8859-5 - */ - -#include <smbsrv/codepage.h> - -#ifdef __cplusplus -extern "C" { -#endif - -codepage_t cyrillic_codepage[256] = { - { CODEPAGE_ISNONE, 0x0000, 0x0000 }, /* 0x0000 */ - { CODEPAGE_ISNONE, 0x0001, 0x0001 }, /* 0x0001 */ - { CODEPAGE_ISNONE, 0x0002, 0x0002 }, /* 0x0002 */ - { CODEPAGE_ISNONE, 0x0003, 0x0003 }, /* 0x0003 */ - { CODEPAGE_ISNONE, 0x0004, 0x0004 }, /* 0x0004 */ - { CODEPAGE_ISNONE, 0x0005, 0x0005 }, /* 0x0005 */ - { CODEPAGE_ISNONE, 0x0006, 0x0006 }, /* 0x0006 */ - { CODEPAGE_ISNONE, 0x0007, 0x0007 }, /* 0x0007 */ - { CODEPAGE_ISNONE, 0x0008, 0x0008 }, /* 0x0008 */ - { CODEPAGE_ISNONE, 0x0009, 0x0009 }, /* 0x0009 */ - { CODEPAGE_ISNONE, 0x000a, 0x000a }, /* 0x000a */ - { CODEPAGE_ISNONE, 0x000b, 0x000b }, /* 0x000b */ - { CODEPAGE_ISNONE, 0x000c, 0x000c }, /* 0x000c */ - { CODEPAGE_ISNONE, 0x000d, 0x000d }, /* 0x000d */ - { CODEPAGE_ISNONE, 0x000e, 0x000e }, /* 0x000e */ - { CODEPAGE_ISNONE, 0x000f, 0x000f }, /* 0x000f */ - { CODEPAGE_ISNONE, 0x0010, 0x0010 }, /* 0x0010 */ - { CODEPAGE_ISNONE, 0x0011, 0x0011 }, /* 0x0011 */ - { CODEPAGE_ISNONE, 0x0012, 0x0012 }, /* 0x0012 */ - { CODEPAGE_ISNONE, 0x0013, 0x0013 }, /* 0x0013 */ - { CODEPAGE_ISNONE, 0x0014, 0x0014 }, /* 0x0014 */ - { CODEPAGE_ISNONE, 0x0015, 0x0015 }, /* 0x0015 */ - { CODEPAGE_ISNONE, 0x0016, 0x0016 }, /* 0x0016 */ - { CODEPAGE_ISNONE, 0x0017, 0x0017 }, /* 0x0017 */ - { CODEPAGE_ISNONE, 0x0018, 0x0018 }, /* 0x0018 */ - { CODEPAGE_ISNONE, 0x0019, 0x0019 }, /* 0x0019 */ - { CODEPAGE_ISNONE, 0x001a, 0x001a }, /* 0x001a */ - { CODEPAGE_ISNONE, 0x001b, 0x001b }, /* 0x001b */ - { CODEPAGE_ISNONE, 0x001c, 0x001c }, /* 0x001c */ - { CODEPAGE_ISNONE, 0x001d, 0x001d }, /* 0x001d */ - { CODEPAGE_ISNONE, 0x001e, 0x001e }, /* 0x001e */ - { CODEPAGE_ISNONE, 0x001f, 0x001f }, /* 0x001f */ - { CODEPAGE_ISNONE, 0x0020, 0x0020 }, /* 0x0020 */ - { CODEPAGE_ISNONE, 0x0021, 0x0021 }, /* 0x0021 */ - { CODEPAGE_ISNONE, 0x0022, 0x0022 }, /* 0x0022 */ - { CODEPAGE_ISNONE, 0x0023, 0x0023 }, /* 0x0023 */ - { CODEPAGE_ISNONE, 0x0024, 0x0024 }, /* 0x0024 */ - { CODEPAGE_ISNONE, 0x0025, 0x0025 }, /* 0x0025 */ - { CODEPAGE_ISNONE, 0x0026, 0x0026 }, /* 0x0026 */ - { CODEPAGE_ISNONE, 0x0027, 0x0027 }, /* 0x0027 */ - { CODEPAGE_ISNONE, 0x0028, 0x0028 }, /* 0x0028 */ - { CODEPAGE_ISNONE, 0x0029, 0x0029 }, /* 0x0029 */ - { CODEPAGE_ISNONE, 0x002a, 0x002a }, /* 0x002a */ - { CODEPAGE_ISNONE, 0x002b, 0x002b }, /* 0x002b */ - { CODEPAGE_ISNONE, 0x002c, 0x002c }, /* 0x002c */ - { CODEPAGE_ISNONE, 0x002d, 0x002d }, /* 0x002d */ - { CODEPAGE_ISNONE, 0x002e, 0x002e }, /* 0x002e */ - { CODEPAGE_ISNONE, 0x002f, 0x002f }, /* 0x002f */ - { CODEPAGE_ISNONE, 0x0030, 0x0030 }, /* 0x0030 */ - { CODEPAGE_ISNONE, 0x0031, 0x0031 }, /* 0x0031 */ - { CODEPAGE_ISNONE, 0x0032, 0x0032 }, /* 0x0032 */ - { CODEPAGE_ISNONE, 0x0033, 0x0033 }, /* 0x0033 */ - { CODEPAGE_ISNONE, 0x0034, 0x0034 }, /* 0x0034 */ - { CODEPAGE_ISNONE, 0x0035, 0x0035 }, /* 0x0035 */ - { CODEPAGE_ISNONE, 0x0036, 0x0036 }, /* 0x0036 */ - { CODEPAGE_ISNONE, 0x0037, 0x0037 }, /* 0x0037 */ - { CODEPAGE_ISNONE, 0x0038, 0x0038 }, /* 0x0038 */ - { CODEPAGE_ISNONE, 0x0039, 0x0039 }, /* 0x0039 */ - { CODEPAGE_ISNONE, 0x003a, 0x003a }, /* 0x003a */ - { CODEPAGE_ISNONE, 0x003b, 0x003b }, /* 0x003b */ - { CODEPAGE_ISNONE, 0x003c, 0x003c }, /* 0x003c */ - { CODEPAGE_ISNONE, 0x003d, 0x003d }, /* 0x003d */ - { CODEPAGE_ISNONE, 0x003e, 0x003e }, /* 0x003e */ - { CODEPAGE_ISNONE, 0x003f, 0x003f }, /* 0x003f */ - { CODEPAGE_ISNONE, 0x0040, 0x0040 }, /* 0x0040 */ - { CODEPAGE_ISUPPER, 0x0041, 0x0061 }, /* 0x0041 */ - { CODEPAGE_ISUPPER, 0x0042, 0x0062 }, /* 0x0042 */ - { CODEPAGE_ISUPPER, 0x0043, 0x0063 }, /* 0x0043 */ - { CODEPAGE_ISUPPER, 0x0044, 0x0064 }, /* 0x0044 */ - { CODEPAGE_ISUPPER, 0x0045, 0x0065 }, /* 0x0045 */ - { CODEPAGE_ISUPPER, 0x0046, 0x0066 }, /* 0x0046 */ - { CODEPAGE_ISUPPER, 0x0047, 0x0067 }, /* 0x0047 */ - { CODEPAGE_ISUPPER, 0x0048, 0x0068 }, /* 0x0048 */ - { CODEPAGE_ISUPPER, 0x0049, 0x0069 }, /* 0x0049 */ - { CODEPAGE_ISUPPER, 0x004a, 0x006a }, /* 0x004a */ - { CODEPAGE_ISUPPER, 0x004b, 0x006b }, /* 0x004b */ - { CODEPAGE_ISUPPER, 0x004c, 0x006c }, /* 0x004c */ - { CODEPAGE_ISUPPER, 0x004d, 0x006d }, /* 0x004d */ - { CODEPAGE_ISUPPER, 0x004e, 0x006e }, /* 0x004e */ - { CODEPAGE_ISUPPER, 0x004f, 0x006f }, /* 0x004f */ - { CODEPAGE_ISUPPER, 0x0050, 0x0070 }, /* 0x0050 */ - { CODEPAGE_ISUPPER, 0x0051, 0x0071 }, /* 0x0051 */ - { CODEPAGE_ISUPPER, 0x0052, 0x0072 }, /* 0x0052 */ - { CODEPAGE_ISUPPER, 0x0053, 0x0073 }, /* 0x0053 */ - { CODEPAGE_ISUPPER, 0x0054, 0x0074 }, /* 0x0054 */ - { CODEPAGE_ISUPPER, 0x0055, 0x0075 }, /* 0x0055 */ - { CODEPAGE_ISUPPER, 0x0056, 0x0076 }, /* 0x0056 */ - { CODEPAGE_ISUPPER, 0x0057, 0x0077 }, /* 0x0057 */ - { CODEPAGE_ISUPPER, 0x0058, 0x0078 }, /* 0x0058 */ - { CODEPAGE_ISUPPER, 0x0059, 0x0079 }, /* 0x0059 */ - { CODEPAGE_ISUPPER, 0x005a, 0x007a }, /* 0x005a */ - { CODEPAGE_ISNONE, 0x005b, 0x005b }, /* 0x005b */ - { CODEPAGE_ISNONE, 0x005c, 0x005c }, /* 0x005c */ - { CODEPAGE_ISNONE, 0x005d, 0x005d }, /* 0x005d */ - { CODEPAGE_ISNONE, 0x005e, 0x005e }, /* 0x005e */ - { CODEPAGE_ISNONE, 0x005f, 0x005f }, /* 0x005f */ - { CODEPAGE_ISNONE, 0x0060, 0x0060 }, /* 0x0060 */ - { CODEPAGE_ISLOWER, 0x0041, 0x0061 }, /* 0x0061 */ - { CODEPAGE_ISLOWER, 0x0042, 0x0062 }, /* 0x0062 */ - { CODEPAGE_ISLOWER, 0x0043, 0x0063 }, /* 0x0063 */ - { CODEPAGE_ISLOWER, 0x0044, 0x0064 }, /* 0x0064 */ - { CODEPAGE_ISLOWER, 0x0045, 0x0065 }, /* 0x0065 */ - { CODEPAGE_ISLOWER, 0x0046, 0x0066 }, /* 0x0066 */ - { CODEPAGE_ISLOWER, 0x0047, 0x0067 }, /* 0x0067 */ - { CODEPAGE_ISLOWER, 0x0048, 0x0068 }, /* 0x0068 */ - { CODEPAGE_ISLOWER, 0x0049, 0x0069 }, /* 0x0069 */ - { CODEPAGE_ISLOWER, 0x004a, 0x006a }, /* 0x006a */ - { CODEPAGE_ISLOWER, 0x004b, 0x006b }, /* 0x006b */ - { CODEPAGE_ISLOWER, 0x004c, 0x006c }, /* 0x006c */ - { CODEPAGE_ISLOWER, 0x004d, 0x006d }, /* 0x006d */ - { CODEPAGE_ISLOWER, 0x004e, 0x006e }, /* 0x006e */ - { CODEPAGE_ISLOWER, 0x004f, 0x006f }, /* 0x006f */ - { CODEPAGE_ISLOWER, 0x0050, 0x0070 }, /* 0x0070 */ - { CODEPAGE_ISLOWER, 0x0051, 0x0071 }, /* 0x0071 */ - { CODEPAGE_ISLOWER, 0x0052, 0x0072 }, /* 0x0072 */ - { CODEPAGE_ISLOWER, 0x0053, 0x0073 }, /* 0x0073 */ - { CODEPAGE_ISLOWER, 0x0054, 0x0074 }, /* 0x0074 */ - { CODEPAGE_ISLOWER, 0x0055, 0x0075 }, /* 0x0075 */ - { CODEPAGE_ISLOWER, 0x0056, 0x0076 }, /* 0x0076 */ - { CODEPAGE_ISLOWER, 0x0057, 0x0077 }, /* 0x0077 */ - { CODEPAGE_ISLOWER, 0x0058, 0x0078 }, /* 0x0078 */ - { CODEPAGE_ISLOWER, 0x0059, 0x0079 }, /* 0x0079 */ - { CODEPAGE_ISLOWER, 0x005a, 0x007a }, /* 0x007a */ - { CODEPAGE_ISNONE, 0x007b, 0x007b }, /* 0x007b */ - { CODEPAGE_ISNONE, 0x007c, 0x007c }, /* 0x007c */ - { CODEPAGE_ISNONE, 0x007d, 0x007d }, /* 0x007d */ - { CODEPAGE_ISNONE, 0x007e, 0x007e }, /* 0x007e */ - { CODEPAGE_ISNONE, 0x007f, 0x007f }, /* 0x007f */ - { CODEPAGE_ISNONE, 0x0080, 0x0080 }, /* 0x0080 */ - { CODEPAGE_ISNONE, 0x0081, 0x0081 }, /* 0x0081 */ - { CODEPAGE_ISNONE, 0x0082, 0x0082 }, /* 0x0082 */ - { CODEPAGE_ISNONE, 0x0083, 0x0083 }, /* 0x0083 */ - { CODEPAGE_ISNONE, 0x0084, 0x0084 }, /* 0x0084 */ - { CODEPAGE_ISNONE, 0x0085, 0x0085 }, /* 0x0085 */ - { CODEPAGE_ISNONE, 0x0086, 0x0086 }, /* 0x0086 */ - { CODEPAGE_ISNONE, 0x0087, 0x0087 }, /* 0x0087 */ - { CODEPAGE_ISNONE, 0x0088, 0x0088 }, /* 0x0088 */ - { CODEPAGE_ISNONE, 0x0089, 0x0089 }, /* 0x0089 */ - { CODEPAGE_ISNONE, 0x008a, 0x008a }, /* 0x008a */ - { CODEPAGE_ISNONE, 0x008b, 0x008b }, /* 0x008b */ - { CODEPAGE_ISNONE, 0x008c, 0x008c }, /* 0x008c */ - { CODEPAGE_ISNONE, 0x008d, 0x008d }, /* 0x008d */ - { CODEPAGE_ISNONE, 0x008e, 0x008e }, /* 0x008e */ - { CODEPAGE_ISNONE, 0x008f, 0x008f }, /* 0x008f */ - { CODEPAGE_ISNONE, 0x0090, 0x0090 }, /* 0x0090 */ - { CODEPAGE_ISNONE, 0x0091, 0x0091 }, /* 0x0091 */ - { CODEPAGE_ISNONE, 0x0092, 0x0092 }, /* 0x0092 */ - { CODEPAGE_ISNONE, 0x0093, 0x0093 }, /* 0x0093 */ - { CODEPAGE_ISNONE, 0x0094, 0x0094 }, /* 0x0094 */ - { CODEPAGE_ISNONE, 0x0095, 0x0095 }, /* 0x0095 */ - { CODEPAGE_ISNONE, 0x0096, 0x0096 }, /* 0x0096 */ - { CODEPAGE_ISNONE, 0x0097, 0x0097 }, /* 0x0097 */ - { CODEPAGE_ISNONE, 0x0098, 0x0098 }, /* 0x0098 */ - { CODEPAGE_ISNONE, 0x0099, 0x0099 }, /* 0x0099 */ - { CODEPAGE_ISNONE, 0x009a, 0x009a }, /* 0x009a */ - { CODEPAGE_ISNONE, 0x009b, 0x009b }, /* 0x009b */ - { CODEPAGE_ISNONE, 0x009c, 0x009c }, /* 0x009c */ - { CODEPAGE_ISNONE, 0x009d, 0x009d }, /* 0x009d */ - { CODEPAGE_ISNONE, 0x009e, 0x009e }, /* 0x009e */ - { CODEPAGE_ISNONE, 0x009f, 0x009f }, /* 0x009f */ - { CODEPAGE_ISNONE, 0x00a0, 0x00a0 }, /* 0x00a0 */ - { CODEPAGE_ISUPPER, 0x00a1, 0x00f1 }, /* 0x00a1 */ - { CODEPAGE_ISUPPER, 0x00a2, 0x00f2 }, /* 0x00a2 */ - { CODEPAGE_ISUPPER, 0x00a3, 0x00f3 }, /* 0x00a3 */ - { CODEPAGE_ISUPPER, 0x00a4, 0x00f4 }, /* 0x00a4 */ - { CODEPAGE_ISUPPER, 0x00a5, 0x00f5 }, /* 0x00a5 */ - { CODEPAGE_ISUPPER, 0x00a6, 0x00f6 }, /* 0x00a6 */ - { CODEPAGE_ISUPPER, 0x00a7, 0x00f7 }, /* 0x00a7 */ - { CODEPAGE_ISUPPER, 0x00a8, 0x00f8 }, /* 0x00a8 */ - { CODEPAGE_ISUPPER, 0x00a9, 0x00f9 }, /* 0x00a9 */ - { CODEPAGE_ISUPPER, 0x00aa, 0x00fa }, /* 0x00aa */ - { CODEPAGE_ISUPPER, 0x00ab, 0x00fb }, /* 0x00ab */ - { CODEPAGE_ISUPPER, 0x00ac, 0x00fc }, /* 0x00ac */ - { CODEPAGE_ISUPPER, 0x00ad, 0x00fd }, /* 0x00ad */ - { CODEPAGE_ISUPPER, 0x00ae, 0x00fe }, /* 0x00ae */ - { CODEPAGE_ISUPPER, 0x00af, 0x00ff }, /* 0x00af */ - { CODEPAGE_ISNONE, 0x00b0, 0x00b0 }, /* 0x00b0 */ - { CODEPAGE_ISNONE, 0x00b1, 0x00b1 }, /* 0x00b1 */ - { CODEPAGE_ISNONE, 0x00b2, 0x00b2 }, /* 0x00b2 */ - { CODEPAGE_ISNONE, 0x00b3, 0x00b3 }, /* 0x00b3 */ - { CODEPAGE_ISNONE, 0x00b4, 0x00b4 }, /* 0x00b4 */ - { CODEPAGE_ISNONE, 0x00b5, 0x00b5 }, /* 0x00b5 */ - { CODEPAGE_ISNONE, 0x00b6, 0x00b6 }, /* 0x00b6 */ - { CODEPAGE_ISNONE, 0x00b7, 0x00b7 }, /* 0x00b7 */ - { CODEPAGE_ISNONE, 0x00b8, 0x00b8 }, /* 0x00b8 */ - { CODEPAGE_ISNONE, 0x00b9, 0x00b9 }, /* 0x00b9 */ - { CODEPAGE_ISNONE, 0x00ba, 0x00ba }, /* 0x00ba */ - { CODEPAGE_ISNONE, 0x00bb, 0x00bb }, /* 0x00bb */ - { CODEPAGE_ISNONE, 0x00bc, 0x00bc }, /* 0x00bc */ - { CODEPAGE_ISNONE, 0x00bd, 0x00bd }, /* 0x00bd */ - { CODEPAGE_ISNONE, 0x00be, 0x00be }, /* 0x00be */ - { CODEPAGE_ISNONE, 0x00bf, 0x00bf }, /* 0x00bf */ - { CODEPAGE_ISUPPER, 0x00c0, 0x00e0 }, /* 0x00c0 */ - { CODEPAGE_ISUPPER, 0x00c1, 0x00e1 }, /* 0x00c1 */ - { CODEPAGE_ISUPPER, 0x00c2, 0x00e2 }, /* 0x00c2 */ - { CODEPAGE_ISUPPER, 0x00c3, 0x00e3 }, /* 0x00c3 */ - { CODEPAGE_ISUPPER, 0x00c4, 0x00e4 }, /* 0x00c4 */ - { CODEPAGE_ISUPPER, 0x00c5, 0x00e5 }, /* 0x00c5 */ - { CODEPAGE_ISUPPER, 0x00c6, 0x00e6 }, /* 0x00c6 */ - { CODEPAGE_ISUPPER, 0x00c7, 0x00e7 }, /* 0x00c7 */ - { CODEPAGE_ISUPPER, 0x00c8, 0x00e8 }, /* 0x00c8 */ - { CODEPAGE_ISUPPER, 0x00c9, 0x00e9 }, /* 0x00c9 */ - { CODEPAGE_ISUPPER, 0x00ca, 0x00ea }, /* 0x00ca */ - { CODEPAGE_ISUPPER, 0x00cb, 0x00eb }, /* 0x00cb */ - { CODEPAGE_ISUPPER, 0x00cc, 0x00ec }, /* 0x00cc */ - { CODEPAGE_ISUPPER, 0x00cd, 0x00ed }, /* 0x00cd */ - { CODEPAGE_ISUPPER, 0x00ce, 0x00ee }, /* 0x00ce */ - { CODEPAGE_ISUPPER, 0x00cf, 0x00ef }, /* 0x00cf */ - { CODEPAGE_ISNONE, 0x00d0, 0x00d0 }, /* 0x00d0 */ - { CODEPAGE_ISNONE, 0x00d1, 0x00d1 }, /* 0x00d1 */ - { CODEPAGE_ISNONE, 0x00d2, 0x00d2 }, /* 0x00d2 */ - { CODEPAGE_ISNONE, 0x00d3, 0x00d3 }, /* 0x00d3 */ - { CODEPAGE_ISNONE, 0x00d4, 0x00d4 }, /* 0x00d4 */ - { CODEPAGE_ISNONE, 0x00d5, 0x00d5 }, /* 0x00d5 */ - { CODEPAGE_ISNONE, 0x00d6, 0x00d6 }, /* 0x00d6 */ - { CODEPAGE_ISNONE, 0x00d7, 0x00d7 }, /* 0x00d7 */ - { CODEPAGE_ISNONE, 0x00d8, 0x00d8 }, /* 0x00d8 */ - { CODEPAGE_ISNONE, 0x00d9, 0x00d9 }, /* 0x00d9 */ - { CODEPAGE_ISNONE, 0x00da, 0x00da }, /* 0x00da */ - { CODEPAGE_ISNONE, 0x00db, 0x00db }, /* 0x00db */ - { CODEPAGE_ISNONE, 0x00dc, 0x00dc }, /* 0x00dc */ - { CODEPAGE_ISNONE, 0x00dd, 0x00dd }, /* 0x00dd */ - { CODEPAGE_ISNONE, 0x00de, 0x00de }, /* 0x00de */ - { CODEPAGE_ISNONE, 0x00df, 0x00df }, /* 0x00df */ - { CODEPAGE_ISLOWER, 0x00c0, 0x00e0 }, /* 0x00e0 */ - { CODEPAGE_ISLOWER, 0x00c1, 0x00e1 }, /* 0x00e1 */ - { CODEPAGE_ISLOWER, 0x00c2, 0x00e2 }, /* 0x00e2 */ - { CODEPAGE_ISLOWER, 0x00c3, 0x00e3 }, /* 0x00e3 */ - { CODEPAGE_ISLOWER, 0x00c4, 0x00e4 }, /* 0x00e4 */ - { CODEPAGE_ISLOWER, 0x00c5, 0x00e5 }, /* 0x00e5 */ - { CODEPAGE_ISLOWER, 0x00c6, 0x00e6 }, /* 0x00e6 */ - { CODEPAGE_ISLOWER, 0x00c7, 0x00e7 }, /* 0x00e7 */ - { CODEPAGE_ISLOWER, 0x00c8, 0x00e8 }, /* 0x00e8 */ - { CODEPAGE_ISLOWER, 0x00c9, 0x00e9 }, /* 0x00e9 */ - { CODEPAGE_ISLOWER, 0x00ca, 0x00ea }, /* 0x00ea */ - { CODEPAGE_ISLOWER, 0x00cb, 0x00eb }, /* 0x00eb */ - { CODEPAGE_ISLOWER, 0x00cc, 0x00ec }, /* 0x00ec */ - { CODEPAGE_ISLOWER, 0x00cd, 0x00ed }, /* 0x00ed */ - { CODEPAGE_ISLOWER, 0x00ce, 0x00ee }, /* 0x00ee */ - { CODEPAGE_ISLOWER, 0x00cf, 0x00ef }, /* 0x00ef */ - { CODEPAGE_ISNONE, 0x00f0, 0x00f0 }, /* 0x00f0 */ - { CODEPAGE_ISLOWER, 0x00a1, 0x00f1 }, /* 0x00f1 */ - { CODEPAGE_ISLOWER, 0x00a2, 0x00f2 }, /* 0x00f2 */ - { CODEPAGE_ISLOWER, 0x00a3, 0x00f3 }, /* 0x00f3 */ - { CODEPAGE_ISLOWER, 0x00a4, 0x00f4 }, /* 0x00f4 */ - { CODEPAGE_ISLOWER, 0x00a5, 0x00f5 }, /* 0x00f5 */ - { CODEPAGE_ISLOWER, 0x00a6, 0x00f6 }, /* 0x00f6 */ - { CODEPAGE_ISLOWER, 0x00a7, 0x00f7 }, /* 0x00f7 */ - { CODEPAGE_ISLOWER, 0x00a8, 0x00f8 }, /* 0x00f8 */ - { CODEPAGE_ISLOWER, 0x00a9, 0x00f9 }, /* 0x00f9 */ - { CODEPAGE_ISLOWER, 0x00aa, 0x00fa }, /* 0x00fa */ - { CODEPAGE_ISLOWER, 0x00ab, 0x00fb }, /* 0x00fb */ - { CODEPAGE_ISLOWER, 0x00ac, 0x00fc }, /* 0x00fc */ - { CODEPAGE_ISLOWER, 0x00ad, 0x00fd }, /* 0x00fd */ - { CODEPAGE_ISLOWER, 0x00ae, 0x00fe }, /* 0x00fe */ - { CODEPAGE_ISLOWER, 0x00af, 0x00ff } /* 0x00ff */ -}; - -#ifdef __cplusplus -} -#endif - -#endif /* _SMBSRV_CP_CYRILLIC_H */ diff --git a/usr/src/uts/common/smbsrv/cp_latin1.h b/usr/src/uts/common/smbsrv/cp_latin1.h deleted file mode 100644 index 728b28e05b..0000000000 --- a/usr/src/uts/common/smbsrv/cp_latin1.h +++ /dev/null @@ -1,317 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SMBSRV_CP_LATIN1_H -#define _SMBSRV_CP_LATIN1_H - -#pragma ident "%Z%%M% %I% %E% SMI" - -/* - * This file specifies a codepage mapping for a given character set as - * specified below: - * - * This is the codepage for the Latin-1 Character Set - * (Western Europe). This codepage defines values for - * the special characters needed for the written alphabets - * of the following Languages: French, Spanish, Catalan, - * Basque, Portuguese, Italian, Albanian, Rhaeto-Romanic, - * Dutch, German, Danish, Swedish, Norwegian, Finnish, - * Faroese, Icelandic, Irish, Scottish, English, Afrikaans - * and Swahili. - * This codepage is also used in North & South America, - * Canada, Australia, and much of Africa - * The Latin-1 character set is also Known as iso-8859-1. - */ - -#include <smbsrv/codepage.h> - -#ifdef __cplusplus -extern "C" { -#endif - -codepage_t Latin1_codepage[256] = { - { CODEPAGE_ISNONE, 0x0000, 0x0000 }, /* 0x0000 */ - { CODEPAGE_ISNONE, 0x0001, 0x0001 }, /* 0x0001 */ - { CODEPAGE_ISNONE, 0x0002, 0x0002 }, /* 0x0002 */ - { CODEPAGE_ISNONE, 0x0003, 0x0003 }, /* 0x0003 */ - { CODEPAGE_ISNONE, 0x0004, 0x0004 }, /* 0x0004 */ - { CODEPAGE_ISNONE, 0x0005, 0x0005 }, /* 0x0005 */ - { CODEPAGE_ISNONE, 0x0006, 0x0006 }, /* 0x0006 */ - { CODEPAGE_ISNONE, 0x0007, 0x0007 }, /* 0x0007 */ - { CODEPAGE_ISNONE, 0x0008, 0x0008 }, /* 0x0008 */ - { CODEPAGE_ISNONE, 0x0009, 0x0009 }, /* 0x0009 */ - { CODEPAGE_ISNONE, 0x000a, 0x000a }, /* 0x000a */ - { CODEPAGE_ISNONE, 0x000b, 0x000b }, /* 0x000b */ - { CODEPAGE_ISNONE, 0x000c, 0x000c }, /* 0x000c */ - { CODEPAGE_ISNONE, 0x000d, 0x000d }, /* 0x000d */ - { CODEPAGE_ISNONE, 0x000e, 0x000e }, /* 0x000e */ - { CODEPAGE_ISNONE, 0x000f, 0x000f }, /* 0x000f */ - { CODEPAGE_ISNONE, 0x0010, 0x0010 }, /* 0x0010 */ - { CODEPAGE_ISNONE, 0x0011, 0x0011 }, /* 0x0011 */ - { CODEPAGE_ISNONE, 0x0012, 0x0012 }, /* 0x0012 */ - { CODEPAGE_ISNONE, 0x0013, 0x0013 }, /* 0x0013 */ - { CODEPAGE_ISNONE, 0x0014, 0x0014 }, /* 0x0014 */ - { CODEPAGE_ISNONE, 0x0015, 0x0015 }, /* 0x0015 */ - { CODEPAGE_ISNONE, 0x0016, 0x0016 }, /* 0x0016 */ - { CODEPAGE_ISNONE, 0x0017, 0x0017 }, /* 0x0017 */ - { CODEPAGE_ISNONE, 0x0018, 0x0018 }, /* 0x0018 */ - { CODEPAGE_ISNONE, 0x0019, 0x0019 }, /* 0x0019 */ - { CODEPAGE_ISNONE, 0x001a, 0x001a }, /* 0x001a */ - { CODEPAGE_ISNONE, 0x001b, 0x001b }, /* 0x001b */ - { CODEPAGE_ISNONE, 0x001c, 0x001c }, /* 0x001c */ - { CODEPAGE_ISNONE, 0x001d, 0x001d }, /* 0x001d */ - { CODEPAGE_ISNONE, 0x001e, 0x001e }, /* 0x001e */ - { CODEPAGE_ISNONE, 0x001f, 0x001f }, /* 0x001f */ - { CODEPAGE_ISNONE, 0x0020, 0x0020 }, /* 0x0020 */ - { CODEPAGE_ISNONE, 0x0021, 0x0021 }, /* 0x0021 */ - { CODEPAGE_ISNONE, 0x0022, 0x0022 }, /* 0x0022 */ - { CODEPAGE_ISNONE, 0x0023, 0x0023 }, /* 0x0023 */ - { CODEPAGE_ISNONE, 0x0024, 0x0024 }, /* 0x0024 */ - { CODEPAGE_ISNONE, 0x0025, 0x0025 }, /* 0x0025 */ - { CODEPAGE_ISNONE, 0x0026, 0x0026 }, /* 0x0026 */ - { CODEPAGE_ISNONE, 0x0027, 0x0027 }, /* 0x0027 */ - { CODEPAGE_ISNONE, 0x0028, 0x0028 }, /* 0x0028 */ - { CODEPAGE_ISNONE, 0x0029, 0x0029 }, /* 0x0029 */ - { CODEPAGE_ISNONE, 0x002a, 0x002a }, /* 0x002a */ - { CODEPAGE_ISNONE, 0x002b, 0x002b }, /* 0x002b */ - { CODEPAGE_ISNONE, 0x002c, 0x002c }, /* 0x002c */ - { CODEPAGE_ISNONE, 0x002d, 0x002d }, /* 0x002d */ - { CODEPAGE_ISNONE, 0x002e, 0x002e }, /* 0x002e */ - { CODEPAGE_ISNONE, 0x002f, 0x002f }, /* 0x002f */ - { CODEPAGE_ISNONE, 0x0030, 0x0030 }, /* 0x0030 */ - { CODEPAGE_ISNONE, 0x0031, 0x0031 }, /* 0x0031 */ - { CODEPAGE_ISNONE, 0x0032, 0x0032 }, /* 0x0032 */ - { CODEPAGE_ISNONE, 0x0033, 0x0033 }, /* 0x0033 */ - { CODEPAGE_ISNONE, 0x0034, 0x0034 }, /* 0x0034 */ - { CODEPAGE_ISNONE, 0x0035, 0x0035 }, /* 0x0035 */ - { CODEPAGE_ISNONE, 0x0036, 0x0036 }, /* 0x0036 */ - { CODEPAGE_ISNONE, 0x0037, 0x0037 }, /* 0x0037 */ - { CODEPAGE_ISNONE, 0x0038, 0x0038 }, /* 0x0038 */ - { CODEPAGE_ISNONE, 0x0039, 0x0039 }, /* 0x0039 */ - { CODEPAGE_ISNONE, 0x003a, 0x003a }, /* 0x003a */ - { CODEPAGE_ISNONE, 0x003b, 0x003b }, /* 0x003b */ - { CODEPAGE_ISNONE, 0x003c, 0x003c }, /* 0x003c */ - { CODEPAGE_ISNONE, 0x003d, 0x003d }, /* 0x003d */ - { CODEPAGE_ISNONE, 0x003e, 0x003e }, /* 0x003e */ - { CODEPAGE_ISNONE, 0x003f, 0x003f }, /* 0x003f */ - { CODEPAGE_ISNONE, 0x0040, 0x0040 }, /* 0x0040 */ - { CODEPAGE_ISUPPER, 0x0041, 0x0061 }, /* 0x0041 */ - { CODEPAGE_ISUPPER, 0x0042, 0x0062 }, /* 0x0042 */ - { CODEPAGE_ISUPPER, 0x0043, 0x0063 }, /* 0x0043 */ - { CODEPAGE_ISUPPER, 0x0044, 0x0064 }, /* 0x0044 */ - { CODEPAGE_ISUPPER, 0x0045, 0x0065 }, /* 0x0045 */ - { CODEPAGE_ISUPPER, 0x0046, 0x0066 }, /* 0x0046 */ - { CODEPAGE_ISUPPER, 0x0047, 0x0067 }, /* 0x0047 */ - { CODEPAGE_ISUPPER, 0x0048, 0x0068 }, /* 0x0048 */ - { CODEPAGE_ISUPPER, 0x0049, 0x0069 }, /* 0x0049 */ - { CODEPAGE_ISUPPER, 0x004a, 0x006a }, /* 0x004a */ - { CODEPAGE_ISUPPER, 0x004b, 0x006b }, /* 0x004b */ - { CODEPAGE_ISUPPER, 0x004c, 0x006c }, /* 0x004c */ - { CODEPAGE_ISUPPER, 0x004d, 0x006d }, /* 0x004d */ - { CODEPAGE_ISUPPER, 0x004e, 0x006e }, /* 0x004e */ - { CODEPAGE_ISUPPER, 0x004f, 0x006f }, /* 0x004f */ - { CODEPAGE_ISUPPER, 0x0050, 0x0070 }, /* 0x0050 */ - { CODEPAGE_ISUPPER, 0x0051, 0x0071 }, /* 0x0051 */ - { CODEPAGE_ISUPPER, 0x0052, 0x0072 }, /* 0x0052 */ - { CODEPAGE_ISUPPER, 0x0053, 0x0073 }, /* 0x0053 */ - { CODEPAGE_ISUPPER, 0x0054, 0x0074 }, /* 0x0054 */ - { CODEPAGE_ISUPPER, 0x0055, 0x0075 }, /* 0x0055 */ - { CODEPAGE_ISUPPER, 0x0056, 0x0076 }, /* 0x0056 */ - { CODEPAGE_ISUPPER, 0x0057, 0x0077 }, /* 0x0057 */ - { CODEPAGE_ISUPPER, 0x0058, 0x0078 }, /* 0x0058 */ - { CODEPAGE_ISUPPER, 0x0059, 0x0079 }, /* 0x0059 */ - { CODEPAGE_ISUPPER, 0x005a, 0x007a }, /* 0x005a */ - { CODEPAGE_ISNONE, 0x005b, 0x005b }, /* 0x005b */ - { CODEPAGE_ISNONE, 0x005c, 0x005c }, /* 0x005c */ - { CODEPAGE_ISNONE, 0x005d, 0x005d }, /* 0x005d */ - { CODEPAGE_ISNONE, 0x005e, 0x005e }, /* 0x005e */ - { CODEPAGE_ISNONE, 0x005f, 0x005f }, /* 0x005f */ - { CODEPAGE_ISNONE, 0x0060, 0x0060 }, /* 0x0060 */ - { CODEPAGE_ISLOWER, 0x0041, 0x0061 }, /* 0x0061 */ - { CODEPAGE_ISLOWER, 0x0042, 0x0062 }, /* 0x0062 */ - { CODEPAGE_ISLOWER, 0x0043, 0x0063 }, /* 0x0063 */ - { CODEPAGE_ISLOWER, 0x0044, 0x0064 }, /* 0x0064 */ - { CODEPAGE_ISLOWER, 0x0045, 0x0065 }, /* 0x0065 */ - { CODEPAGE_ISLOWER, 0x0046, 0x0066 }, /* 0x0066 */ - { CODEPAGE_ISLOWER, 0x0047, 0x0067 }, /* 0x0067 */ - { CODEPAGE_ISLOWER, 0x0048, 0x0068 }, /* 0x0068 */ - { CODEPAGE_ISLOWER, 0x0049, 0x0069 }, /* 0x0069 */ - { CODEPAGE_ISLOWER, 0x004a, 0x006a }, /* 0x006a */ - { CODEPAGE_ISLOWER, 0x004b, 0x006b }, /* 0x006b */ - { CODEPAGE_ISLOWER, 0x004c, 0x006c }, /* 0x006c */ - { CODEPAGE_ISLOWER, 0x004d, 0x006d }, /* 0x006d */ - { CODEPAGE_ISLOWER, 0x004e, 0x006e }, /* 0x006e */ - { CODEPAGE_ISLOWER, 0x004f, 0x006f }, /* 0x006f */ - { CODEPAGE_ISLOWER, 0x0050, 0x0070 }, /* 0x0070 */ - { CODEPAGE_ISLOWER, 0x0051, 0x0071 }, /* 0x0071 */ - { CODEPAGE_ISLOWER, 0x0052, 0x0072 }, /* 0x0072 */ - { CODEPAGE_ISLOWER, 0x0053, 0x0073 }, /* 0x0073 */ - { CODEPAGE_ISLOWER, 0x0054, 0x0074 }, /* 0x0074 */ - { CODEPAGE_ISLOWER, 0x0055, 0x0075 }, /* 0x0075 */ - { CODEPAGE_ISLOWER, 0x0056, 0x0076 }, /* 0x0076 */ - { CODEPAGE_ISLOWER, 0x0057, 0x0077 }, /* 0x0077 */ - { CODEPAGE_ISLOWER, 0x0058, 0x0078 }, /* 0x0078 */ - { CODEPAGE_ISLOWER, 0x0059, 0x0079 }, /* 0x0079 */ - { CODEPAGE_ISLOWER, 0x005a, 0x007a }, /* 0x007a */ - { CODEPAGE_ISNONE, 0x007b, 0x007b }, /* 0x007b */ - { CODEPAGE_ISNONE, 0x007c, 0x007c }, /* 0x007c */ - { CODEPAGE_ISNONE, 0x007d, 0x007d }, /* 0x007d */ - { CODEPAGE_ISNONE, 0x007e, 0x007e }, /* 0x007e */ - { CODEPAGE_ISNONE, 0x007f, 0x007f }, /* 0x007f */ - { CODEPAGE_ISNONE, 0x0080, 0x0080 }, /* 0x0080 */ - { CODEPAGE_ISNONE, 0x0081, 0x0081 }, /* 0x0081 */ - { CODEPAGE_ISNONE, 0x0082, 0x0082 }, /* 0x0082 */ - { CODEPAGE_ISNONE, 0x0083, 0x0083 }, /* 0x0083 */ - { CODEPAGE_ISNONE, 0x0084, 0x0084 }, /* 0x0084 */ - { CODEPAGE_ISNONE, 0x0085, 0x0085 }, /* 0x0085 */ - { CODEPAGE_ISNONE, 0x0086, 0x0086 }, /* 0x0086 */ - { CODEPAGE_ISNONE, 0x0087, 0x0087 }, /* 0x0087 */ - { CODEPAGE_ISNONE, 0x0088, 0x0088 }, /* 0x0088 */ - { CODEPAGE_ISNONE, 0x0089, 0x0089 }, /* 0x0089 */ - { CODEPAGE_ISNONE, 0x008a, 0x008a }, /* 0x008a */ - { CODEPAGE_ISNONE, 0x008b, 0x008b }, /* 0x008b */ - { CODEPAGE_ISNONE, 0x008c, 0x008c }, /* 0x008c */ - { CODEPAGE_ISNONE, 0x008d, 0x008d }, /* 0x008d */ - { CODEPAGE_ISNONE, 0x008e, 0x008e }, /* 0x008e */ - { CODEPAGE_ISNONE, 0x008f, 0x008f }, /* 0x008f */ - { CODEPAGE_ISNONE, 0x0090, 0x0090 }, /* 0x0090 */ - { CODEPAGE_ISNONE, 0x0091, 0x0091 }, /* 0x0091 */ - { CODEPAGE_ISNONE, 0x0092, 0x0092 }, /* 0x0092 */ - { CODEPAGE_ISNONE, 0x0093, 0x0093 }, /* 0x0093 */ - { CODEPAGE_ISNONE, 0x0094, 0x0094 }, /* 0x0094 */ - { CODEPAGE_ISNONE, 0x0095, 0x0095 }, /* 0x0095 */ - { CODEPAGE_ISNONE, 0x0096, 0x0096 }, /* 0x0096 */ - { CODEPAGE_ISNONE, 0x0097, 0x0097 }, /* 0x0097 */ - { CODEPAGE_ISNONE, 0x0098, 0x0098 }, /* 0x0098 */ - { CODEPAGE_ISNONE, 0x0099, 0x0099 }, /* 0x0099 */ - { CODEPAGE_ISNONE, 0x009a, 0x009a }, /* 0x009a */ - { CODEPAGE_ISNONE, 0x009b, 0x009b }, /* 0x009b */ - { CODEPAGE_ISNONE, 0x009c, 0x009c }, /* 0x009c */ - { CODEPAGE_ISNONE, 0x009d, 0x009d }, /* 0x009d */ - { CODEPAGE_ISNONE, 0x009e, 0x009e }, /* 0x009e */ - { CODEPAGE_ISNONE, 0x009f, 0x009f }, /* 0x009f */ - { CODEPAGE_ISNONE, 0x00a0, 0x00a0 }, /* 0x00a0 */ - { CODEPAGE_ISNONE, 0x00a1, 0x00a1 }, /* 0x00a1 */ - { CODEPAGE_ISNONE, 0x00a2, 0x00a2 }, /* 0x00a2 */ - { CODEPAGE_ISNONE, 0x00a3, 0x00a3 }, /* 0x00a3 */ - { CODEPAGE_ISNONE, 0x00a4, 0x00a4 }, /* 0x00a4 */ - { CODEPAGE_ISNONE, 0x00a5, 0x00a5 }, /* 0x00a5 */ - { CODEPAGE_ISNONE, 0x00a6, 0x00a6 }, /* 0x00a6 */ - { CODEPAGE_ISNONE, 0x00a7, 0x00a7 }, /* 0x00a7 */ - { CODEPAGE_ISNONE, 0x00a8, 0x00a8 }, /* 0x00a8 */ - { CODEPAGE_ISNONE, 0x00a9, 0x00a9 }, /* 0x00a9 */ - { CODEPAGE_ISNONE, 0x00aa, 0x00aa }, /* 0x00aa */ - { CODEPAGE_ISNONE, 0x00ab, 0x00ab }, /* 0x00ab */ - { CODEPAGE_ISNONE, 0x00ac, 0x00ac }, /* 0x00ac */ - { CODEPAGE_ISNONE, 0x00ad, 0x00ad }, /* 0x00ad */ - { CODEPAGE_ISNONE, 0x00ae, 0x00ae }, /* 0x00ae */ - { CODEPAGE_ISNONE, 0x00af, 0x00af }, /* 0x00af */ - { CODEPAGE_ISNONE, 0x00b0, 0x00b0 }, /* 0x00b0 */ - { CODEPAGE_ISNONE, 0x00b1, 0x00b1 }, /* 0x00b1 */ - { CODEPAGE_ISNONE, 0x00b2, 0x00b2 }, /* 0x00b2 */ - { CODEPAGE_ISNONE, 0x00b3, 0x00b3 }, /* 0x00b3 */ - { CODEPAGE_ISNONE, 0x00b4, 0x00b4 }, /* 0x00b4 */ - { CODEPAGE_ISNONE, 0x00b5, 0x00b5 }, /* 0x00b5 */ - { CODEPAGE_ISNONE, 0x00b6, 0x00b6 }, /* 0x00b6 */ - { CODEPAGE_ISNONE, 0x00b7, 0x00b7 }, /* 0x00b7 */ - { CODEPAGE_ISNONE, 0x00b8, 0x00b8 }, /* 0x00b8 */ - { CODEPAGE_ISNONE, 0x00b9, 0x00b9 }, /* 0x00b9 */ - { CODEPAGE_ISNONE, 0x00ba, 0x00ba }, /* 0x00ba */ - { CODEPAGE_ISNONE, 0x00bb, 0x00bb }, /* 0x00bb */ - { CODEPAGE_ISNONE, 0x00bc, 0x00bc }, /* 0x00bc */ - { CODEPAGE_ISNONE, 0x00bd, 0x00bd }, /* 0x00bd */ - { CODEPAGE_ISNONE, 0x00be, 0x00be }, /* 0x00be */ - { CODEPAGE_ISNONE, 0x00bf, 0x00bf }, /* 0x00bf */ - { CODEPAGE_ISUPPER, 0x00c0, 0x00e0 }, /* 0x00c0 */ - { CODEPAGE_ISUPPER, 0x00c1, 0x00e1 }, /* 0x00c1 */ - { CODEPAGE_ISUPPER, 0x00c2, 0x00e2 }, /* 0x00c2 */ - { CODEPAGE_ISUPPER, 0x00c3, 0x00e3 }, /* 0x00c3 */ - { CODEPAGE_ISUPPER, 0x00c4, 0x00e4 }, /* 0x00c4 */ - { CODEPAGE_ISUPPER, 0x00c5, 0x00e5 }, /* 0x00c5 */ - { CODEPAGE_ISUPPER, 0x00c6, 0x00e6 }, /* 0x00c6 */ - { CODEPAGE_ISUPPER, 0x00c7, 0x00e7 }, /* 0x00c7 */ - { CODEPAGE_ISUPPER, 0x00c8, 0x00e8 }, /* 0x00c8 */ - { CODEPAGE_ISUPPER, 0x00c9, 0x00e9 }, /* 0x00c9 */ - { CODEPAGE_ISUPPER, 0x00ca, 0x00ea }, /* 0x00ca */ - { CODEPAGE_ISUPPER, 0x00cb, 0x00eb }, /* 0x00cb */ - { CODEPAGE_ISUPPER, 0x00cc, 0x00ec }, /* 0x00cc */ - { CODEPAGE_ISUPPER, 0x00cd, 0x00ed }, /* 0x00cd */ - { CODEPAGE_ISUPPER, 0x00ce, 0x00ee }, /* 0x00ce */ - { CODEPAGE_ISUPPER, 0x00cf, 0x00ef }, /* 0x00cf */ - { CODEPAGE_ISUPPER, 0x00d0, 0x00f0 }, /* 0x00d0 */ - { CODEPAGE_ISUPPER, 0x00d1, 0x00f1 }, /* 0x00d1 */ - { CODEPAGE_ISUPPER, 0x00d2, 0x00f2 }, /* 0x00d2 */ - { CODEPAGE_ISUPPER, 0x00d3, 0x00f3 }, /* 0x00d3 */ - { CODEPAGE_ISUPPER, 0x00d4, 0x00f4 }, /* 0x00d4 */ - { CODEPAGE_ISUPPER, 0x00d5, 0x00f5 }, /* 0x00d5 */ - { CODEPAGE_ISUPPER, 0x00d6, 0x00f6 }, /* 0x00d6 */ - { CODEPAGE_ISNONE, 0x00d7, 0x00d7 }, /* 0x00d7 */ - { CODEPAGE_ISUPPER, 0x00d8, 0x00f8 }, /* 0x00d8 */ - { CODEPAGE_ISUPPER, 0x00d9, 0x00f9 }, /* 0x00d9 */ - { CODEPAGE_ISUPPER, 0x00da, 0x00fa }, /* 0x00da */ - { CODEPAGE_ISUPPER, 0x00db, 0x00fb }, /* 0x00db */ - { CODEPAGE_ISUPPER, 0x00dc, 0x00fc }, /* 0x00dc */ - { CODEPAGE_ISUPPER, 0x00dd, 0x00fd }, /* 0x00dd */ - { CODEPAGE_ISUPPER, 0x00de, 0x00fe }, /* 0x00de */ - { CODEPAGE_ISNONE, 0x00df, 0x00df }, /* 0x00df */ - { CODEPAGE_ISLOWER, 0x00c0, 0x00e0 }, /* 0x00e0 */ - { CODEPAGE_ISLOWER, 0x00c1, 0x00e1 }, /* 0x00e1 */ - { CODEPAGE_ISLOWER, 0x00c2, 0x00e2 }, /* 0x00e2 */ - { CODEPAGE_ISLOWER, 0x00c3, 0x00e3 }, /* 0x00e3 */ - { CODEPAGE_ISLOWER, 0x00c4, 0x00e4 }, /* 0x00e4 */ - { CODEPAGE_ISLOWER, 0x00c5, 0x00e5 }, /* 0x00e5 */ - { CODEPAGE_ISLOWER, 0x00c6, 0x00e6 }, /* 0x00e6 */ - { CODEPAGE_ISLOWER, 0x00c7, 0x00e7 }, /* 0x00e7 */ - { CODEPAGE_ISLOWER, 0x00c8, 0x00e8 }, /* 0x00e8 */ - { CODEPAGE_ISLOWER, 0x00c9, 0x00e9 }, /* 0x00e9 */ - { CODEPAGE_ISLOWER, 0x00ca, 0x00ea }, /* 0x00ea */ - { CODEPAGE_ISLOWER, 0x00cb, 0x00eb }, /* 0x00eb */ - { CODEPAGE_ISLOWER, 0x00cc, 0x00ec }, /* 0x00ec */ - { CODEPAGE_ISLOWER, 0x00cd, 0x00ed }, /* 0x00ed */ - { CODEPAGE_ISLOWER, 0x00ce, 0x00ee }, /* 0x00ee */ - { CODEPAGE_ISLOWER, 0x00cf, 0x00ef }, /* 0x00ef */ - { CODEPAGE_ISLOWER, 0x00d0, 0x00f0 }, /* 0x00f0 */ - { CODEPAGE_ISLOWER, 0x00d1, 0x00f1 }, /* 0x00f1 */ - { CODEPAGE_ISLOWER, 0x00d2, 0x00f2 }, /* 0x00f2 */ - { CODEPAGE_ISLOWER, 0x00d3, 0x00f3 }, /* 0x00f3 */ - { CODEPAGE_ISLOWER, 0x00d4, 0x00f4 }, /* 0x00f4 */ - { CODEPAGE_ISLOWER, 0x00d5, 0x00f5 }, /* 0x00f5 */ - { CODEPAGE_ISLOWER, 0x00d6, 0x00f6 }, /* 0x00f6 */ - { CODEPAGE_ISNONE, 0x00f7, 0x00f7 }, /* 0x00f7 */ - { CODEPAGE_ISLOWER, 0x00d8, 0x00f8 }, /* 0x00f8 */ - { CODEPAGE_ISLOWER, 0x00d9, 0x00f9 }, /* 0x00f9 */ - { CODEPAGE_ISLOWER, 0x00da, 0x00fa }, /* 0x00fa */ - { CODEPAGE_ISLOWER, 0x00db, 0x00fb }, /* 0x00fb */ - { CODEPAGE_ISLOWER, 0x00dc, 0x00fc }, /* 0x00fc */ - { CODEPAGE_ISLOWER, 0x00dd, 0x00fd }, /* 0x00fd */ - { CODEPAGE_ISLOWER, 0x00de, 0x00fe }, /* 0x00fe */ - { CODEPAGE_ISNONE, 0x00ff, 0x00ff } /* 0x00ff */ -}; - -#ifdef __cplusplus -} -#endif - -#endif /* _SMBSRV_CP_LATIN1_H */ diff --git a/usr/src/uts/common/smbsrv/cp_latin2.h b/usr/src/uts/common/smbsrv/cp_latin2.h deleted file mode 100644 index 77f2e5a2a4..0000000000 --- a/usr/src/uts/common/smbsrv/cp_latin2.h +++ /dev/null @@ -1,314 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SMBSRV_CP_LATIN2_H -#define _SMBSRV_CP_LATIN2_H - -#pragma ident "%Z%%M% %I% %E% SMI" - -/* - * This file specifies a codepage mapping for a given character set as - * specified below: - * - * This is the codepage for the Latin-2 Character Set - * (Central & Eastern Europe). This codepage defines - * values for the special characters needed - * for the written alphabets of the following languages: Czech, - * Hungarian, Polish, Romanian, Croatian, Slovak, - * Slovenian, and Sorbian - * The Latin-2 character set is also known as iso-8859-2 - * - */ - -#include <smbsrv/codepage.h> - -#ifdef __cplusplus -extern "C" { -#endif - -codepage_t Latin2_codepage[256] = { - { CODEPAGE_ISNONE, 0x0000, 0x0000 }, /* 0x0000 */ - { CODEPAGE_ISNONE, 0x0001, 0x0001 }, /* 0x0001 */ - { CODEPAGE_ISNONE, 0x0002, 0x0002 }, /* 0x0002 */ - { CODEPAGE_ISNONE, 0x0003, 0x0003 }, /* 0x0003 */ - { CODEPAGE_ISNONE, 0x0004, 0x0004 }, /* 0x0004 */ - { CODEPAGE_ISNONE, 0x0005, 0x0005 }, /* 0x0005 */ - { CODEPAGE_ISNONE, 0x0006, 0x0006 }, /* 0x0006 */ - { CODEPAGE_ISNONE, 0x0007, 0x0007 }, /* 0x0007 */ - { CODEPAGE_ISNONE, 0x0008, 0x0008 }, /* 0x0008 */ - { CODEPAGE_ISNONE, 0x0009, 0x0009 }, /* 0x0009 */ - { CODEPAGE_ISNONE, 0x000a, 0x000a }, /* 0x000a */ - { CODEPAGE_ISNONE, 0x000b, 0x000b }, /* 0x000b */ - { CODEPAGE_ISNONE, 0x000c, 0x000c }, /* 0x000c */ - { CODEPAGE_ISNONE, 0x000d, 0x000d }, /* 0x000d */ - { CODEPAGE_ISNONE, 0x000e, 0x000e }, /* 0x000e */ - { CODEPAGE_ISNONE, 0x000f, 0x000f }, /* 0x000f */ - { CODEPAGE_ISNONE, 0x0010, 0x0010 }, /* 0x0010 */ - { CODEPAGE_ISNONE, 0x0011, 0x0011 }, /* 0x0011 */ - { CODEPAGE_ISNONE, 0x0012, 0x0012 }, /* 0x0012 */ - { CODEPAGE_ISNONE, 0x0013, 0x0013 }, /* 0x0013 */ - { CODEPAGE_ISNONE, 0x0014, 0x0014 }, /* 0x0014 */ - { CODEPAGE_ISNONE, 0x0015, 0x0015 }, /* 0x0015 */ - { CODEPAGE_ISNONE, 0x0016, 0x0016 }, /* 0x0016 */ - { CODEPAGE_ISNONE, 0x0017, 0x0017 }, /* 0x0017 */ - { CODEPAGE_ISNONE, 0x0018, 0x0018 }, /* 0x0018 */ - { CODEPAGE_ISNONE, 0x0019, 0x0019 }, /* 0x0019 */ - { CODEPAGE_ISNONE, 0x001a, 0x001a }, /* 0x001a */ - { CODEPAGE_ISNONE, 0x001b, 0x001b }, /* 0x001b */ - { CODEPAGE_ISNONE, 0x001c, 0x001c }, /* 0x001c */ - { CODEPAGE_ISNONE, 0x001d, 0x001d }, /* 0x001d */ - { CODEPAGE_ISNONE, 0x001e, 0x001e }, /* 0x001e */ - { CODEPAGE_ISNONE, 0x001f, 0x001f }, /* 0x001f */ - { CODEPAGE_ISNONE, 0x0020, 0x0020 }, /* 0x0020 */ - { CODEPAGE_ISNONE, 0x0021, 0x0021 }, /* 0x0021 */ - { CODEPAGE_ISNONE, 0x0022, 0x0022 }, /* 0x0022 */ - { CODEPAGE_ISNONE, 0x0023, 0x0023 }, /* 0x0023 */ - { CODEPAGE_ISNONE, 0x0024, 0x0024 }, /* 0x0024 */ - { CODEPAGE_ISNONE, 0x0025, 0x0025 }, /* 0x0025 */ - { CODEPAGE_ISNONE, 0x0026, 0x0026 }, /* 0x0026 */ - { CODEPAGE_ISNONE, 0x0027, 0x0027 }, /* 0x0027 */ - { CODEPAGE_ISNONE, 0x0028, 0x0028 }, /* 0x0028 */ - { CODEPAGE_ISNONE, 0x0029, 0x0029 }, /* 0x0029 */ - { CODEPAGE_ISNONE, 0x002a, 0x002a }, /* 0x002a */ - { CODEPAGE_ISNONE, 0x002b, 0x002b }, /* 0x002b */ - { CODEPAGE_ISNONE, 0x002c, 0x002c }, /* 0x002c */ - { CODEPAGE_ISNONE, 0x002d, 0x002d }, /* 0x002d */ - { CODEPAGE_ISNONE, 0x002e, 0x002e }, /* 0x002e */ - { CODEPAGE_ISNONE, 0x002f, 0x002f }, /* 0x002f */ - { CODEPAGE_ISNONE, 0x0030, 0x0030 }, /* 0x0030 */ - { CODEPAGE_ISNONE, 0x0031, 0x0031 }, /* 0x0031 */ - { CODEPAGE_ISNONE, 0x0032, 0x0032 }, /* 0x0032 */ - { CODEPAGE_ISNONE, 0x0033, 0x0033 }, /* 0x0033 */ - { CODEPAGE_ISNONE, 0x0034, 0x0034 }, /* 0x0034 */ - { CODEPAGE_ISNONE, 0x0035, 0x0035 }, /* 0x0035 */ - { CODEPAGE_ISNONE, 0x0036, 0x0036 }, /* 0x0036 */ - { CODEPAGE_ISNONE, 0x0037, 0x0037 }, /* 0x0037 */ - { CODEPAGE_ISNONE, 0x0038, 0x0038 }, /* 0x0038 */ - { CODEPAGE_ISNONE, 0x0039, 0x0039 }, /* 0x0039 */ - { CODEPAGE_ISNONE, 0x003a, 0x003a }, /* 0x003a */ - { CODEPAGE_ISNONE, 0x003b, 0x003b }, /* 0x003b */ - { CODEPAGE_ISNONE, 0x003c, 0x003c }, /* 0x003c */ - { CODEPAGE_ISNONE, 0x003d, 0x003d }, /* 0x003d */ - { CODEPAGE_ISNONE, 0x003e, 0x003e }, /* 0x003e */ - { CODEPAGE_ISNONE, 0x003f, 0x003f }, /* 0x003f */ - { CODEPAGE_ISNONE, 0x0040, 0x0040 }, /* 0x0040 */ - { CODEPAGE_ISUPPER, 0x0041, 0x0061 }, /* 0x0041 */ - { CODEPAGE_ISUPPER, 0x0042, 0x0062 }, /* 0x0042 */ - { CODEPAGE_ISUPPER, 0x0043, 0x0063 }, /* 0x0043 */ - { CODEPAGE_ISUPPER, 0x0044, 0x0064 }, /* 0x0044 */ - { CODEPAGE_ISUPPER, 0x0045, 0x0065 }, /* 0x0045 */ - { CODEPAGE_ISUPPER, 0x0046, 0x0066 }, /* 0x0046 */ - { CODEPAGE_ISUPPER, 0x0047, 0x0067 }, /* 0x0047 */ - { CODEPAGE_ISUPPER, 0x0048, 0x0068 }, /* 0x0048 */ - { CODEPAGE_ISUPPER, 0x0049, 0x0069 }, /* 0x0049 */ - { CODEPAGE_ISUPPER, 0x004a, 0x006a }, /* 0x004a */ - { CODEPAGE_ISUPPER, 0x004b, 0x006b }, /* 0x004b */ - { CODEPAGE_ISUPPER, 0x004c, 0x006c }, /* 0x004c */ - { CODEPAGE_ISUPPER, 0x004d, 0x006d }, /* 0x004d */ - { CODEPAGE_ISUPPER, 0x004e, 0x006e }, /* 0x004e */ - { CODEPAGE_ISUPPER, 0x004f, 0x006f }, /* 0x004f */ - { CODEPAGE_ISUPPER, 0x0050, 0x0070 }, /* 0x0050 */ - { CODEPAGE_ISUPPER, 0x0051, 0x0071 }, /* 0x0051 */ - { CODEPAGE_ISUPPER, 0x0052, 0x0072 }, /* 0x0052 */ - { CODEPAGE_ISUPPER, 0x0053, 0x0073 }, /* 0x0053 */ - { CODEPAGE_ISUPPER, 0x0054, 0x0074 }, /* 0x0054 */ - { CODEPAGE_ISUPPER, 0x0055, 0x0075 }, /* 0x0055 */ - { CODEPAGE_ISUPPER, 0x0056, 0x0076 }, /* 0x0056 */ - { CODEPAGE_ISUPPER, 0x0057, 0x0077 }, /* 0x0057 */ - { CODEPAGE_ISUPPER, 0x0058, 0x0078 }, /* 0x0058 */ - { CODEPAGE_ISUPPER, 0x0059, 0x0079 }, /* 0x0059 */ - { CODEPAGE_ISUPPER, 0x005a, 0x007a }, /* 0x005a */ - { CODEPAGE_ISNONE, 0x005b, 0x005b }, /* 0x005b */ - { CODEPAGE_ISNONE, 0x005c, 0x005c }, /* 0x005c */ - { CODEPAGE_ISNONE, 0x005d, 0x005d }, /* 0x005d */ - { CODEPAGE_ISNONE, 0x005e, 0x005e }, /* 0x005e */ - { CODEPAGE_ISNONE, 0x005f, 0x005f }, /* 0x005f */ - { CODEPAGE_ISNONE, 0x0060, 0x0060 }, /* 0x0060 */ - { CODEPAGE_ISLOWER, 0x0041, 0x0061 }, /* 0x0061 */ - { CODEPAGE_ISLOWER, 0x0042, 0x0062 }, /* 0x0062 */ - { CODEPAGE_ISLOWER, 0x0043, 0x0063 }, /* 0x0063 */ - { CODEPAGE_ISLOWER, 0x0044, 0x0064 }, /* 0x0064 */ - { CODEPAGE_ISLOWER, 0x0045, 0x0065 }, /* 0x0065 */ - { CODEPAGE_ISLOWER, 0x0046, 0x0066 }, /* 0x0066 */ - { CODEPAGE_ISLOWER, 0x0047, 0x0067 }, /* 0x0067 */ - { CODEPAGE_ISLOWER, 0x0048, 0x0068 }, /* 0x0068 */ - { CODEPAGE_ISLOWER, 0x0049, 0x0069 }, /* 0x0069 */ - { CODEPAGE_ISLOWER, 0x004a, 0x006a }, /* 0x006a */ - { CODEPAGE_ISLOWER, 0x004b, 0x006b }, /* 0x006b */ - { CODEPAGE_ISLOWER, 0x004c, 0x006c }, /* 0x006c */ - { CODEPAGE_ISLOWER, 0x004d, 0x006d }, /* 0x006d */ - { CODEPAGE_ISLOWER, 0x004e, 0x006e }, /* 0x006e */ - { CODEPAGE_ISLOWER, 0x004f, 0x006f }, /* 0x006f */ - { CODEPAGE_ISLOWER, 0x0050, 0x0070 }, /* 0x0070 */ - { CODEPAGE_ISLOWER, 0x0051, 0x0071 }, /* 0x0071 */ - { CODEPAGE_ISLOWER, 0x0052, 0x0072 }, /* 0x0072 */ - { CODEPAGE_ISLOWER, 0x0053, 0x0073 }, /* 0x0073 */ - { CODEPAGE_ISLOWER, 0x0054, 0x0074 }, /* 0x0074 */ - { CODEPAGE_ISLOWER, 0x0055, 0x0075 }, /* 0x0075 */ - { CODEPAGE_ISLOWER, 0x0056, 0x0076 }, /* 0x0076 */ - { CODEPAGE_ISLOWER, 0x0057, 0x0077 }, /* 0x0077 */ - { CODEPAGE_ISLOWER, 0x0058, 0x0078 }, /* 0x0078 */ - { CODEPAGE_ISLOWER, 0x0059, 0x0079 }, /* 0x0079 */ - { CODEPAGE_ISLOWER, 0x005a, 0x007a }, /* 0x007a */ - { CODEPAGE_ISNONE, 0x007b, 0x007b }, /* 0x007b */ - { CODEPAGE_ISNONE, 0x007c, 0x007c }, /* 0x007c */ - { CODEPAGE_ISNONE, 0x007d, 0x007d }, /* 0x007d */ - { CODEPAGE_ISNONE, 0x007e, 0x007e }, /* 0x007e */ - { CODEPAGE_ISNONE, 0x007f, 0x007f }, /* 0x007f */ - { CODEPAGE_ISNONE, 0x0080, 0x0080 }, /* 0x0080 */ - { CODEPAGE_ISNONE, 0x0081, 0x0081 }, /* 0x0081 */ - { CODEPAGE_ISNONE, 0x0082, 0x0082 }, /* 0x0082 */ - { CODEPAGE_ISNONE, 0x0083, 0x0083 }, /* 0x0083 */ - { CODEPAGE_ISNONE, 0x0084, 0x0084 }, /* 0x0084 */ - { CODEPAGE_ISNONE, 0x0085, 0x0085 }, /* 0x0085 */ - { CODEPAGE_ISNONE, 0x0086, 0x0086 }, /* 0x0086 */ - { CODEPAGE_ISNONE, 0x0087, 0x0087 }, /* 0x0087 */ - { CODEPAGE_ISNONE, 0x0088, 0x0088 }, /* 0x0088 */ - { CODEPAGE_ISNONE, 0x0089, 0x0089 }, /* 0x0089 */ - { CODEPAGE_ISNONE, 0x008a, 0x008a }, /* 0x008a */ - { CODEPAGE_ISNONE, 0x008b, 0x008b }, /* 0x008b */ - { CODEPAGE_ISNONE, 0x008c, 0x008c }, /* 0x008c */ - { CODEPAGE_ISNONE, 0x008d, 0x008d }, /* 0x008d */ - { CODEPAGE_ISNONE, 0x008e, 0x008e }, /* 0x008e */ - { CODEPAGE_ISNONE, 0x008f, 0x008f }, /* 0x008f */ - { CODEPAGE_ISNONE, 0x0090, 0x0090 }, /* 0x0090 */ - { CODEPAGE_ISNONE, 0x0091, 0x0091 }, /* 0x0091 */ - { CODEPAGE_ISNONE, 0x0092, 0x0092 }, /* 0x0092 */ - { CODEPAGE_ISNONE, 0x0093, 0x0093 }, /* 0x0093 */ - { CODEPAGE_ISNONE, 0x0094, 0x0094 }, /* 0x0094 */ - { CODEPAGE_ISNONE, 0x0095, 0x0095 }, /* 0x0095 */ - { CODEPAGE_ISNONE, 0x0096, 0x0096 }, /* 0x0096 */ - { CODEPAGE_ISNONE, 0x0097, 0x0097 }, /* 0x0097 */ - { CODEPAGE_ISNONE, 0x0098, 0x0098 }, /* 0x0098 */ - { CODEPAGE_ISNONE, 0x0099, 0x0099 }, /* 0x0099 */ - { CODEPAGE_ISNONE, 0x009a, 0x009a }, /* 0x009a */ - { CODEPAGE_ISNONE, 0x009b, 0x009b }, /* 0x009b */ - { CODEPAGE_ISNONE, 0x009c, 0x009c }, /* 0x009c */ - { CODEPAGE_ISNONE, 0x009d, 0x009d }, /* 0x009d */ - { CODEPAGE_ISNONE, 0x009e, 0x009e }, /* 0x009e */ - { CODEPAGE_ISNONE, 0x009f, 0x009f }, /* 0x009f */ - { CODEPAGE_ISNONE, 0x00a0, 0x00a0 }, /* 0x00a0 */ - { CODEPAGE_ISUPPER, 0x00a1, 0x00b1 }, /* 0x00a1 */ - { CODEPAGE_ISNONE, 0x00a2, 0x00a2 }, /* 0x00a2 */ - { CODEPAGE_ISUPPER, 0x00a3, 0x00b3 }, /* 0x00a3 */ - { CODEPAGE_ISNONE, 0x00a4, 0x00a4 }, /* 0x00a4 */ - { CODEPAGE_ISUPPER, 0x00a5, 0x00b5 }, /* 0x00a5 */ - { CODEPAGE_ISUPPER, 0x00a6, 0x00b6 }, /* 0x00a6 */ - { CODEPAGE_ISNONE, 0x00a7, 0x00a7 }, /* 0x00a7 */ - { CODEPAGE_ISNONE, 0x00a8, 0x00a8 }, /* 0x00a8 */ - { CODEPAGE_ISUPPER, 0x00a9, 0x00b9 }, /* 0x00a9 */ - { CODEPAGE_ISUPPER, 0x00aa, 0x00ba }, /* 0x00aa */ - { CODEPAGE_ISUPPER, 0x00ab, 0x00bb }, /* 0x00ab */ - { CODEPAGE_ISUPPER, 0x00ac, 0x00bc }, /* 0x00ac */ - { CODEPAGE_ISNONE, 0x00ad, 0x00ad }, /* 0x00ad */ - { CODEPAGE_ISUPPER, 0x00ae, 0x00be }, /* 0x00ae */ - { CODEPAGE_ISUPPER, 0x00af, 0x00bf }, /* 0x00af */ - { CODEPAGE_ISNONE, 0x00b0, 0x00b0 }, /* 0x00b0 */ - { CODEPAGE_ISLOWER, 0x00a1, 0x00b1 }, /* 0x00b1 */ - { CODEPAGE_ISNONE, 0x00b2, 0x00b2 }, /* 0x00b2 */ - { CODEPAGE_ISLOWER, 0x00a3, 0x00b3 }, /* 0x00b3 */ - { CODEPAGE_ISNONE, 0x00b4, 0x00b4 }, /* 0x00b4 */ - { CODEPAGE_ISLOWER, 0x00a5, 0x00b5 }, /* 0x00b5 */ - { CODEPAGE_ISLOWER, 0x00a6, 0x00b6 }, /* 0x00b6 */ - { CODEPAGE_ISNONE, 0x00b7, 0x00b7 }, /* 0x00b7 */ - { CODEPAGE_ISNONE, 0x00b8, 0x00b8 }, /* 0x00b8 */ - { CODEPAGE_ISLOWER, 0x00a9, 0x00b9 }, /* 0x00b9 */ - { CODEPAGE_ISLOWER, 0x00aa, 0x00ba }, /* 0x00ba */ - { CODEPAGE_ISLOWER, 0x00ab, 0x00bb }, /* 0x00bb */ - { CODEPAGE_ISLOWER, 0x00ac, 0x00bc }, /* 0x00bc */ - { CODEPAGE_ISNONE, 0x00bd, 0x00bd }, /* 0x00bd */ - { CODEPAGE_ISLOWER, 0x00ae, 0x00be }, /* 0x00be */ - { CODEPAGE_ISLOWER, 0x00af, 0x00bf }, /* 0x00bf */ - { CODEPAGE_ISUPPER, 0x00c0, 0x00e0 }, /* 0x00c0 */ - { CODEPAGE_ISUPPER, 0x00c1, 0x00e1 }, /* 0x00c1 */ - { CODEPAGE_ISUPPER, 0x00c2, 0x00e2 }, /* 0x00c2 */ - { CODEPAGE_ISUPPER, 0x00c3, 0x00e3 }, /* 0x00c3 */ - { CODEPAGE_ISUPPER, 0x00c4, 0x00e4 }, /* 0x00c4 */ - { CODEPAGE_ISUPPER, 0x00c5, 0x00e5 }, /* 0x00c5 */ - { CODEPAGE_ISUPPER, 0x00c6, 0x00e6 }, /* 0x00c6 */ - { CODEPAGE_ISUPPER, 0x00c7, 0x00e7 }, /* 0x00c7 */ - { CODEPAGE_ISUPPER, 0x00c8, 0x00e8 }, /* 0x00c8 */ - { CODEPAGE_ISUPPER, 0x00c9, 0x00e9 }, /* 0x00c9 */ - { CODEPAGE_ISUPPER, 0x00ca, 0x00ea }, /* 0x00ca */ - { CODEPAGE_ISUPPER, 0x00cb, 0x00eb }, /* 0x00cb */ - { CODEPAGE_ISUPPER, 0x00cc, 0x00ec }, /* 0x00cc */ - { CODEPAGE_ISUPPER, 0x00cd, 0x00ed }, /* 0x00cd */ - { CODEPAGE_ISUPPER, 0x00ce, 0x00ee }, /* 0x00ce */ - { CODEPAGE_ISUPPER, 0x00cf, 0x00ef }, /* 0x00cf */ - { CODEPAGE_ISUPPER, 0x00d0, 0x00f0 }, /* 0x00d0 */ - { CODEPAGE_ISUPPER, 0x00d1, 0x00f1 }, /* 0x00d1 */ - { CODEPAGE_ISUPPER, 0x00d2, 0x00f2 }, /* 0x00d2 */ - { CODEPAGE_ISUPPER, 0x00d3, 0x00f3 }, /* 0x00d3 */ - { CODEPAGE_ISUPPER, 0x00d4, 0x00f4 }, /* 0x00d4 */ - { CODEPAGE_ISUPPER, 0x00d5, 0x00f5 }, /* 0x00d5 */ - { CODEPAGE_ISUPPER, 0x00d6, 0x00f6 }, /* 0x00d6 */ - { CODEPAGE_ISNONE, 0x00d7, 0x00d7 }, /* 0x00d7 */ - { CODEPAGE_ISUPPER, 0x00d8, 0x00f8 }, /* 0x00d8 */ - { CODEPAGE_ISUPPER, 0x00d9, 0x00f9 }, /* 0x00d9 */ - { CODEPAGE_ISUPPER, 0x00da, 0x00fa }, /* 0x00da */ - { CODEPAGE_ISUPPER, 0x00db, 0x00fb }, /* 0x00db */ - { CODEPAGE_ISUPPER, 0x00dc, 0x00fc }, /* 0x00dc */ - { CODEPAGE_ISUPPER, 0x00dd, 0x00fd }, /* 0x00dd */ - { CODEPAGE_ISUPPER, 0x00de, 0x00fe }, /* 0x00de */ - { CODEPAGE_ISNONE, 0x00df, 0x00df }, /* 0x00df */ - { CODEPAGE_ISLOWER, 0x00c0, 0x00e0 }, /* 0x00e0 */ - { CODEPAGE_ISLOWER, 0x00c1, 0x00e1 }, /* 0x00e1 */ - { CODEPAGE_ISLOWER, 0x00c2, 0x00e2 }, /* 0x00e2 */ - { CODEPAGE_ISLOWER, 0x00c3, 0x00e3 }, /* 0x00e3 */ - { CODEPAGE_ISLOWER, 0x00c4, 0x00e4 }, /* 0x00e4 */ - { CODEPAGE_ISLOWER, 0x00c5, 0x00e5 }, /* 0x00e5 */ - { CODEPAGE_ISLOWER, 0x00c6, 0x00e6 }, /* 0x00e6 */ - { CODEPAGE_ISLOWER, 0x00c7, 0x00e7 }, /* 0x00e7 */ - { CODEPAGE_ISLOWER, 0x00c8, 0x00e8 }, /* 0x00e8 */ - { CODEPAGE_ISLOWER, 0x00c9, 0x00e9 }, /* 0x00e9 */ - { CODEPAGE_ISLOWER, 0x00ca, 0x00ea }, /* 0x00ea */ - { CODEPAGE_ISLOWER, 0x00cb, 0x00eb }, /* 0x00eb */ - { CODEPAGE_ISLOWER, 0x00cc, 0x00ec }, /* 0x00ec */ - { CODEPAGE_ISLOWER, 0x00cd, 0x00ed }, /* 0x00ed */ - { CODEPAGE_ISLOWER, 0x00ce, 0x00ee }, /* 0x00ee */ - { CODEPAGE_ISLOWER, 0x00cf, 0x00ef }, /* 0x00ef */ - { CODEPAGE_ISLOWER, 0x00d0, 0x00f0 }, /* 0x00f0 */ - { CODEPAGE_ISLOWER, 0x00d1, 0x00f1 }, /* 0x00f1 */ - { CODEPAGE_ISLOWER, 0x00d2, 0x00f2 }, /* 0x00f2 */ - { CODEPAGE_ISLOWER, 0x00d3, 0x00f3 }, /* 0x00f3 */ - { CODEPAGE_ISLOWER, 0x00d4, 0x00f4 }, /* 0x00f4 */ - { CODEPAGE_ISLOWER, 0x00d5, 0x00f5 }, /* 0x00f5 */ - { CODEPAGE_ISLOWER, 0x00d6, 0x00f6 }, /* 0x00f6 */ - { CODEPAGE_ISNONE, 0x00f7, 0x00f7 }, /* 0x00f7 */ - { CODEPAGE_ISLOWER, 0x00d8, 0x00f8 }, /* 0x00f8 */ - { CODEPAGE_ISLOWER, 0x00d9, 0x00f9 }, /* 0x00f9 */ - { CODEPAGE_ISLOWER, 0x00da, 0x00fa }, /* 0x00fa */ - { CODEPAGE_ISLOWER, 0x00db, 0x00fb }, /* 0x00fb */ - { CODEPAGE_ISLOWER, 0x00dc, 0x00fc }, /* 0x00fc */ - { CODEPAGE_ISLOWER, 0x00dd, 0x00fd }, /* 0x00fd */ - { CODEPAGE_ISLOWER, 0x00de, 0x00fe }, /* 0x00fe */ - { CODEPAGE_ISNONE, 0x00ff, 0x00ff } /* 0x00ff */ -}; - -#ifdef __cplusplus -} -#endif - -#endif /* _SMBSRV_CP_LATIN2_H */ diff --git a/usr/src/uts/common/smbsrv/cp_latin3.h b/usr/src/uts/common/smbsrv/cp_latin3.h deleted file mode 100644 index afc7ae4355..0000000000 --- a/usr/src/uts/common/smbsrv/cp_latin3.h +++ /dev/null @@ -1,311 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SMBSRV_CP_LATIN3_H -#define _SMBSRV_CP_LATIN3_H - -#pragma ident "%Z%%M% %I% %E% SMI" - -/* - * This file specifies a codepage mapping for a given character set as - * specified below: - * - * This is the codepage for Latin-3 Character Set - * This codepage defines values for the special characters - * needed for the written alphabets of the following - * languages: Esperanto and Maltese. - * The Latin-3 character set is also known as iso-8859-3 - */ - -#include <smbsrv/codepage.h> - -#ifdef __cplusplus -extern "C" { -#endif - -codepage_t Latin3_codepage[256] = { - { CODEPAGE_ISNONE, 0x0000, 0x0000 }, /* 0x0000 */ - { CODEPAGE_ISNONE, 0x0001, 0x0001 }, /* 0x0001 */ - { CODEPAGE_ISNONE, 0x0002, 0x0002 }, /* 0x0002 */ - { CODEPAGE_ISNONE, 0x0003, 0x0003 }, /* 0x0003 */ - { CODEPAGE_ISNONE, 0x0004, 0x0004 }, /* 0x0004 */ - { CODEPAGE_ISNONE, 0x0005, 0x0005 }, /* 0x0005 */ - { CODEPAGE_ISNONE, 0x0006, 0x0006 }, /* 0x0006 */ - { CODEPAGE_ISNONE, 0x0007, 0x0007 }, /* 0x0007 */ - { CODEPAGE_ISNONE, 0x0008, 0x0008 }, /* 0x0008 */ - { CODEPAGE_ISNONE, 0x0009, 0x0009 }, /* 0x0009 */ - { CODEPAGE_ISNONE, 0x000a, 0x000a }, /* 0x000a */ - { CODEPAGE_ISNONE, 0x000b, 0x000b }, /* 0x000b */ - { CODEPAGE_ISNONE, 0x000c, 0x000c }, /* 0x000c */ - { CODEPAGE_ISNONE, 0x000d, 0x000d }, /* 0x000d */ - { CODEPAGE_ISNONE, 0x000e, 0x000e }, /* 0x000e */ - { CODEPAGE_ISNONE, 0x000f, 0x000f }, /* 0x000f */ - { CODEPAGE_ISNONE, 0x0010, 0x0010 }, /* 0x0010 */ - { CODEPAGE_ISNONE, 0x0011, 0x0011 }, /* 0x0011 */ - { CODEPAGE_ISNONE, 0x0012, 0x0012 }, /* 0x0012 */ - { CODEPAGE_ISNONE, 0x0013, 0x0013 }, /* 0x0013 */ - { CODEPAGE_ISNONE, 0x0014, 0x0014 }, /* 0x0014 */ - { CODEPAGE_ISNONE, 0x0015, 0x0015 }, /* 0x0015 */ - { CODEPAGE_ISNONE, 0x0016, 0x0016 }, /* 0x0016 */ - { CODEPAGE_ISNONE, 0x0017, 0x0017 }, /* 0x0017 */ - { CODEPAGE_ISNONE, 0x0018, 0x0018 }, /* 0x0018 */ - { CODEPAGE_ISNONE, 0x0019, 0x0019 }, /* 0x0019 */ - { CODEPAGE_ISNONE, 0x001a, 0x001a }, /* 0x001a */ - { CODEPAGE_ISNONE, 0x001b, 0x001b }, /* 0x001b */ - { CODEPAGE_ISNONE, 0x001c, 0x001c }, /* 0x001c */ - { CODEPAGE_ISNONE, 0x001d, 0x001d }, /* 0x001d */ - { CODEPAGE_ISNONE, 0x001e, 0x001e }, /* 0x001e */ - { CODEPAGE_ISNONE, 0x001f, 0x001f }, /* 0x001f */ - { CODEPAGE_ISNONE, 0x0020, 0x0020 }, /* 0x0020 */ - { CODEPAGE_ISNONE, 0x0021, 0x0021 }, /* 0x0021 */ - { CODEPAGE_ISNONE, 0x0022, 0x0022 }, /* 0x0022 */ - { CODEPAGE_ISNONE, 0x0023, 0x0023 }, /* 0x0023 */ - { CODEPAGE_ISNONE, 0x0024, 0x0024 }, /* 0x0024 */ - { CODEPAGE_ISNONE, 0x0025, 0x0025 }, /* 0x0025 */ - { CODEPAGE_ISNONE, 0x0026, 0x0026 }, /* 0x0026 */ - { CODEPAGE_ISNONE, 0x0027, 0x0027 }, /* 0x0027 */ - { CODEPAGE_ISNONE, 0x0028, 0x0028 }, /* 0x0028 */ - { CODEPAGE_ISNONE, 0x0029, 0x0029 }, /* 0x0029 */ - { CODEPAGE_ISNONE, 0x002a, 0x002a }, /* 0x002a */ - { CODEPAGE_ISNONE, 0x002b, 0x002b }, /* 0x002b */ - { CODEPAGE_ISNONE, 0x002c, 0x002c }, /* 0x002c */ - { CODEPAGE_ISNONE, 0x002d, 0x002d }, /* 0x002d */ - { CODEPAGE_ISNONE, 0x002e, 0x002e }, /* 0x002e */ - { CODEPAGE_ISNONE, 0x002f, 0x002f }, /* 0x002f */ - { CODEPAGE_ISNONE, 0x0030, 0x0030 }, /* 0x0030 */ - { CODEPAGE_ISNONE, 0x0031, 0x0031 }, /* 0x0031 */ - { CODEPAGE_ISNONE, 0x0032, 0x0032 }, /* 0x0032 */ - { CODEPAGE_ISNONE, 0x0033, 0x0033 }, /* 0x0033 */ - { CODEPAGE_ISNONE, 0x0034, 0x0034 }, /* 0x0034 */ - { CODEPAGE_ISNONE, 0x0035, 0x0035 }, /* 0x0035 */ - { CODEPAGE_ISNONE, 0x0036, 0x0036 }, /* 0x0036 */ - { CODEPAGE_ISNONE, 0x0037, 0x0037 }, /* 0x0037 */ - { CODEPAGE_ISNONE, 0x0038, 0x0038 }, /* 0x0038 */ - { CODEPAGE_ISNONE, 0x0039, 0x0039 }, /* 0x0039 */ - { CODEPAGE_ISNONE, 0x003a, 0x003a }, /* 0x003a */ - { CODEPAGE_ISNONE, 0x003b, 0x003b }, /* 0x003b */ - { CODEPAGE_ISNONE, 0x003c, 0x003c }, /* 0x003c */ - { CODEPAGE_ISNONE, 0x003d, 0x003d }, /* 0x003d */ - { CODEPAGE_ISNONE, 0x003e, 0x003e }, /* 0x003e */ - { CODEPAGE_ISNONE, 0x003f, 0x003f }, /* 0x003f */ - { CODEPAGE_ISNONE, 0x0040, 0x0040 }, /* 0x0040 */ - { CODEPAGE_ISUPPER, 0x0041, 0x0061 }, /* 0x0041 */ - { CODEPAGE_ISUPPER, 0x0042, 0x0062 }, /* 0x0042 */ - { CODEPAGE_ISUPPER, 0x0043, 0x0063 }, /* 0x0043 */ - { CODEPAGE_ISUPPER, 0x0044, 0x0064 }, /* 0x0044 */ - { CODEPAGE_ISUPPER, 0x0045, 0x0065 }, /* 0x0045 */ - { CODEPAGE_ISUPPER, 0x0046, 0x0066 }, /* 0x0046 */ - { CODEPAGE_ISUPPER, 0x0047, 0x0067 }, /* 0x0047 */ - { CODEPAGE_ISUPPER, 0x0048, 0x0068 }, /* 0x0048 */ - { CODEPAGE_ISUPPER, 0x0049, 0x0069 }, /* 0x0049 */ - { CODEPAGE_ISUPPER, 0x004a, 0x006a }, /* 0x004a */ - { CODEPAGE_ISUPPER, 0x004b, 0x006b }, /* 0x004b */ - { CODEPAGE_ISUPPER, 0x004c, 0x006c }, /* 0x004c */ - { CODEPAGE_ISUPPER, 0x004d, 0x006d }, /* 0x004d */ - { CODEPAGE_ISUPPER, 0x004e, 0x006e }, /* 0x004e */ - { CODEPAGE_ISUPPER, 0x004f, 0x006f }, /* 0x004f */ - { CODEPAGE_ISUPPER, 0x0050, 0x0070 }, /* 0x0050 */ - { CODEPAGE_ISUPPER, 0x0051, 0x0071 }, /* 0x0051 */ - { CODEPAGE_ISUPPER, 0x0052, 0x0072 }, /* 0x0052 */ - { CODEPAGE_ISUPPER, 0x0053, 0x0073 }, /* 0x0053 */ - { CODEPAGE_ISUPPER, 0x0054, 0x0074 }, /* 0x0054 */ - { CODEPAGE_ISUPPER, 0x0055, 0x0075 }, /* 0x0055 */ - { CODEPAGE_ISUPPER, 0x0056, 0x0076 }, /* 0x0056 */ - { CODEPAGE_ISUPPER, 0x0057, 0x0077 }, /* 0x0057 */ - { CODEPAGE_ISUPPER, 0x0058, 0x0078 }, /* 0x0058 */ - { CODEPAGE_ISUPPER, 0x0059, 0x0079 }, /* 0x0059 */ - { CODEPAGE_ISUPPER, 0x005a, 0x007a }, /* 0x005a */ - { CODEPAGE_ISNONE, 0x005b, 0x005b }, /* 0x005b */ - { CODEPAGE_ISNONE, 0x005c, 0x005c }, /* 0x005c */ - { CODEPAGE_ISNONE, 0x005d, 0x005d }, /* 0x005d */ - { CODEPAGE_ISNONE, 0x005e, 0x005e }, /* 0x005e */ - { CODEPAGE_ISNONE, 0x005f, 0x005f }, /* 0x005f */ - { CODEPAGE_ISNONE, 0x0060, 0x0060 }, /* 0x0060 */ - { CODEPAGE_ISLOWER, 0x0041, 0x0061 }, /* 0x0061 */ - { CODEPAGE_ISLOWER, 0x0042, 0x0062 }, /* 0x0062 */ - { CODEPAGE_ISLOWER, 0x0043, 0x0063 }, /* 0x0063 */ - { CODEPAGE_ISLOWER, 0x0044, 0x0064 }, /* 0x0064 */ - { CODEPAGE_ISLOWER, 0x0045, 0x0065 }, /* 0x0065 */ - { CODEPAGE_ISLOWER, 0x0046, 0x0066 }, /* 0x0066 */ - { CODEPAGE_ISLOWER, 0x0047, 0x0067 }, /* 0x0067 */ - { CODEPAGE_ISLOWER, 0x0048, 0x0068 }, /* 0x0068 */ - { CODEPAGE_ISLOWER, 0x0049, 0x0069 }, /* 0x0069 */ - { CODEPAGE_ISLOWER, 0x004a, 0x006a }, /* 0x006a */ - { CODEPAGE_ISLOWER, 0x004b, 0x006b }, /* 0x006b */ - { CODEPAGE_ISLOWER, 0x004c, 0x006c }, /* 0x006c */ - { CODEPAGE_ISLOWER, 0x004d, 0x006d }, /* 0x006d */ - { CODEPAGE_ISLOWER, 0x004e, 0x006e }, /* 0x006e */ - { CODEPAGE_ISLOWER, 0x004f, 0x006f }, /* 0x006f */ - { CODEPAGE_ISLOWER, 0x0050, 0x0070 }, /* 0x0070 */ - { CODEPAGE_ISLOWER, 0x0051, 0x0071 }, /* 0x0071 */ - { CODEPAGE_ISLOWER, 0x0052, 0x0072 }, /* 0x0072 */ - { CODEPAGE_ISLOWER, 0x0053, 0x0073 }, /* 0x0073 */ - { CODEPAGE_ISLOWER, 0x0054, 0x0074 }, /* 0x0074 */ - { CODEPAGE_ISLOWER, 0x0055, 0x0075 }, /* 0x0075 */ - { CODEPAGE_ISLOWER, 0x0056, 0x0076 }, /* 0x0076 */ - { CODEPAGE_ISLOWER, 0x0057, 0x0077 }, /* 0x0077 */ - { CODEPAGE_ISLOWER, 0x0058, 0x0078 }, /* 0x0078 */ - { CODEPAGE_ISLOWER, 0x0059, 0x0079 }, /* 0x0079 */ - { CODEPAGE_ISLOWER, 0x005a, 0x007a }, /* 0x007a */ - { CODEPAGE_ISNONE, 0x007b, 0x007b }, /* 0x007b */ - { CODEPAGE_ISNONE, 0x007c, 0x007c }, /* 0x007c */ - { CODEPAGE_ISNONE, 0x007d, 0x007d }, /* 0x007d */ - { CODEPAGE_ISNONE, 0x007e, 0x007e }, /* 0x007e */ - { CODEPAGE_ISNONE, 0x007f, 0x007f }, /* 0x007f */ - { CODEPAGE_ISNONE, 0x0080, 0x0080 }, /* 0x0080 */ - { CODEPAGE_ISNONE, 0x0081, 0x0081 }, /* 0x0081 */ - { CODEPAGE_ISNONE, 0x0082, 0x0082 }, /* 0x0082 */ - { CODEPAGE_ISNONE, 0x0083, 0x0083 }, /* 0x0083 */ - { CODEPAGE_ISNONE, 0x0084, 0x0084 }, /* 0x0084 */ - { CODEPAGE_ISNONE, 0x0085, 0x0085 }, /* 0x0085 */ - { CODEPAGE_ISNONE, 0x0086, 0x0086 }, /* 0x0086 */ - { CODEPAGE_ISNONE, 0x0087, 0x0087 }, /* 0x0087 */ - { CODEPAGE_ISNONE, 0x0088, 0x0088 }, /* 0x0088 */ - { CODEPAGE_ISNONE, 0x0089, 0x0089 }, /* 0x0089 */ - { CODEPAGE_ISNONE, 0x008a, 0x008a }, /* 0x008a */ - { CODEPAGE_ISNONE, 0x008b, 0x008b }, /* 0x008b */ - { CODEPAGE_ISNONE, 0x008c, 0x008c }, /* 0x008c */ - { CODEPAGE_ISNONE, 0x008d, 0x008d }, /* 0x008d */ - { CODEPAGE_ISNONE, 0x008e, 0x008e }, /* 0x008e */ - { CODEPAGE_ISNONE, 0x008f, 0x008f }, /* 0x008f */ - { CODEPAGE_ISNONE, 0x0090, 0x0090 }, /* 0x0090 */ - { CODEPAGE_ISNONE, 0x0091, 0x0091 }, /* 0x0091 */ - { CODEPAGE_ISNONE, 0x0092, 0x0092 }, /* 0x0092 */ - { CODEPAGE_ISNONE, 0x0093, 0x0093 }, /* 0x0093 */ - { CODEPAGE_ISNONE, 0x0094, 0x0094 }, /* 0x0094 */ - { CODEPAGE_ISNONE, 0x0095, 0x0095 }, /* 0x0095 */ - { CODEPAGE_ISNONE, 0x0096, 0x0096 }, /* 0x0096 */ - { CODEPAGE_ISNONE, 0x0097, 0x0097 }, /* 0x0097 */ - { CODEPAGE_ISNONE, 0x0098, 0x0098 }, /* 0x0098 */ - { CODEPAGE_ISNONE, 0x0099, 0x0099 }, /* 0x0099 */ - { CODEPAGE_ISNONE, 0x009a, 0x009a }, /* 0x009a */ - { CODEPAGE_ISNONE, 0x009b, 0x009b }, /* 0x009b */ - { CODEPAGE_ISNONE, 0x009c, 0x009c }, /* 0x009c */ - { CODEPAGE_ISNONE, 0x009d, 0x009d }, /* 0x009d */ - { CODEPAGE_ISNONE, 0x009e, 0x009e }, /* 0x009e */ - { CODEPAGE_ISNONE, 0x009f, 0x009f }, /* 0x009f */ - { CODEPAGE_ISNONE, 0x00a0, 0x00a0 }, /* 0x00a0 */ - { CODEPAGE_ISUPPER, 0x00a1, 0x00b1 }, /* 0x00a1 */ - { CODEPAGE_ISNONE, 0x00a2, 0x00a2 }, /* 0x00a2 */ - { CODEPAGE_ISNONE, 0x00a3, 0x00a3 }, /* 0x00a3 */ - { CODEPAGE_ISNONE, 0x00a4, 0x00a4 }, /* 0x00a4 */ - { CODEPAGE_ISNONE, 0x00a5, 0x00a5 }, /* 0x00a5 */ - { CODEPAGE_ISUPPER, 0x00a6, 0x00b6 }, /* 0x00a6 */ - { CODEPAGE_ISNONE, 0x00a7, 0x00a7 }, /* 0x00a7 */ - { CODEPAGE_ISNONE, 0x00a8, 0x00a8 }, /* 0x00a8 */ - { CODEPAGE_ISUPPER, 0x00a9, 0x00b9 }, /* 0x00a9 */ - { CODEPAGE_ISUPPER, 0x00aa, 0x00ba }, /* 0x00aa */ - { CODEPAGE_ISUPPER, 0x00ab, 0x00bb }, /* 0x00ab */ - { CODEPAGE_ISUPPER, 0x00ac, 0x00bc }, /* 0x00ac */ - { CODEPAGE_ISNONE, 0x00ad, 0x00ad }, /* 0x00ad */ - { CODEPAGE_ISNONE, 0x00ae, 0x00ae }, /* 0x00ae */ - { CODEPAGE_ISUPPER, 0x00af, 0x00bf }, /* 0x00af */ - { CODEPAGE_ISNONE, 0x00b0, 0x00b0 }, /* 0x00b0 */ - { CODEPAGE_ISLOWER, 0x00a1, 0x00b1 }, /* 0x00b1 */ - { CODEPAGE_ISNONE, 0x00b2, 0x00b2 }, /* 0x00b2 */ - { CODEPAGE_ISNONE, 0x00b3, 0x00b3 }, /* 0x00b3 */ - { CODEPAGE_ISNONE, 0x00b4, 0x00b4 }, /* 0x00b4 */ - { CODEPAGE_ISNONE, 0x00b5, 0x00b5 }, /* 0x00b5 */ - { CODEPAGE_ISLOWER, 0x00a6, 0x00b6 }, /* 0x00b6 */ - { CODEPAGE_ISNONE, 0x00b7, 0x00b7 }, /* 0x00b7 */ - { CODEPAGE_ISNONE, 0x00b8, 0x00b8 }, /* 0x00b8 */ - { CODEPAGE_ISLOWER, 0x00a9, 0x00b9 }, /* 0x00b9 */ - { CODEPAGE_ISLOWER, 0x00aa, 0x00ba }, /* 0x00ba */ - { CODEPAGE_ISLOWER, 0x00ab, 0x00bb }, /* 0x00bb */ - { CODEPAGE_ISLOWER, 0x00ac, 0x00bc }, /* 0x00bc */ - { CODEPAGE_ISNONE, 0x00bd, 0x00bd }, /* 0x00bd */ - { CODEPAGE_ISNONE, 0x00be, 0x00be }, /* 0x00be */ - { CODEPAGE_ISLOWER, 0x00af, 0x00bf }, /* 0x00bf */ - { CODEPAGE_ISUPPER, 0x00c0, 0x00e0 }, /* 0x00c0 */ - { CODEPAGE_ISUPPER, 0x00c1, 0x00e1 }, /* 0x00c1 */ - { CODEPAGE_ISUPPER, 0x00c2, 0x00e2 }, /* 0x00c2 */ - { CODEPAGE_ISNONE, 0x00c3, 0x00c3 }, /* 0x00c3 */ - { CODEPAGE_ISUPPER, 0x00c4, 0x00e4 }, /* 0x00c4 */ - { CODEPAGE_ISUPPER, 0x00c5, 0x00e5 }, /* 0x00c5 */ - { CODEPAGE_ISUPPER, 0x00c6, 0x00e6 }, /* 0x00c6 */ - { CODEPAGE_ISUPPER, 0x00c7, 0x00e7 }, /* 0x00c7 */ - { CODEPAGE_ISUPPER, 0x00c8, 0x00e8 }, /* 0x00c8 */ - { CODEPAGE_ISUPPER, 0x00c9, 0x00e9 }, /* 0x00c9 */ - { CODEPAGE_ISUPPER, 0x00ca, 0x00ea }, /* 0x00ca */ - { CODEPAGE_ISUPPER, 0x00cb, 0x00eb }, /* 0x00cb */ - { CODEPAGE_ISUPPER, 0x00cc, 0x00ec }, /* 0x00cc */ - { CODEPAGE_ISUPPER, 0x00cd, 0x00ed }, /* 0x00cd */ - { CODEPAGE_ISUPPER, 0x00ce, 0x00ee }, /* 0x00ce */ - { CODEPAGE_ISUPPER, 0x00cf, 0x00ef }, /* 0x00cf */ - { CODEPAGE_ISNONE, 0x00d0, 0x00d0 }, /* 0x00d0 */ - { CODEPAGE_ISUPPER, 0x00d1, 0x00f1 }, /* 0x00d1 */ - { CODEPAGE_ISUPPER, 0x00d2, 0x00f2 }, /* 0x00d2 */ - { CODEPAGE_ISUPPER, 0x00d3, 0x00f3 }, /* 0x00d3 */ - { CODEPAGE_ISUPPER, 0x00d4, 0x00f4 }, /* 0x00d4 */ - { CODEPAGE_ISUPPER, 0x00d5, 0x00f5 }, /* 0x00d5 */ - { CODEPAGE_ISUPPER, 0x00d6, 0x00f6 }, /* 0x00d6 */ - { CODEPAGE_ISNONE, 0x00d7, 0x00d7 }, /* 0x00d7 */ - { CODEPAGE_ISUPPER, 0x00d8, 0x00f8 }, /* 0x00d8 */ - { CODEPAGE_ISUPPER, 0x00d9, 0x00f9 }, /* 0x00d9 */ - { CODEPAGE_ISUPPER, 0x00da, 0x00fa }, /* 0x00da */ - { CODEPAGE_ISUPPER, 0x00db, 0x00fb }, /* 0x00db */ - { CODEPAGE_ISUPPER, 0x00dc, 0x00fc }, /* 0x00dc */ - { CODEPAGE_ISUPPER, 0x00dd, 0x00fd }, /* 0x00dd */ - { CODEPAGE_ISUPPER, 0x00de, 0x00fe }, /* 0x00de */ - { CODEPAGE_ISNONE, 0x00df, 0x00df }, /* 0x00df */ - { CODEPAGE_ISLOWER, 0x00c0, 0x00e0 }, /* 0x00e0 */ - { CODEPAGE_ISLOWER, 0x00c1, 0x00e1 }, /* 0x00e1 */ - { CODEPAGE_ISLOWER, 0x00c2, 0x00e2 }, /* 0x00e2 */ - { CODEPAGE_ISNONE, 0x00e3, 0x00e3 }, /* 0x00e3 */ - { CODEPAGE_ISLOWER, 0x00c4, 0x00e4 }, /* 0x00e4 */ - { CODEPAGE_ISLOWER, 0x00c5, 0x00e5 }, /* 0x00e5 */ - { CODEPAGE_ISLOWER, 0x00c6, 0x00e6 }, /* 0x00e6 */ - { CODEPAGE_ISLOWER, 0x00c7, 0x00e7 }, /* 0x00e7 */ - { CODEPAGE_ISLOWER, 0x00c8, 0x00e8 }, /* 0x00e8 */ - { CODEPAGE_ISLOWER, 0x00c9, 0x00e9 }, /* 0x00e9 */ - { CODEPAGE_ISLOWER, 0x00ca, 0x00ea }, /* 0x00ea */ - { CODEPAGE_ISLOWER, 0x00cb, 0x00eb }, /* 0x00eb */ - { CODEPAGE_ISLOWER, 0x00cc, 0x00ec }, /* 0x00ec */ - { CODEPAGE_ISLOWER, 0x00cd, 0x00ed }, /* 0x00ed */ - { CODEPAGE_ISLOWER, 0x00ce, 0x00ee }, /* 0x00ee */ - { CODEPAGE_ISLOWER, 0x00cf, 0x00ef }, /* 0x00ef */ - { CODEPAGE_ISNONE, 0x00f0, 0x00f0 }, /* 0x00f0 */ - { CODEPAGE_ISLOWER, 0x00d1, 0x00f1 }, /* 0x00f1 */ - { CODEPAGE_ISLOWER, 0x00d2, 0x00f2 }, /* 0x00f2 */ - { CODEPAGE_ISLOWER, 0x00d3, 0x00f3 }, /* 0x00f3 */ - { CODEPAGE_ISLOWER, 0x00d4, 0x00f4 }, /* 0x00f4 */ - { CODEPAGE_ISLOWER, 0x00d5, 0x00f5 }, /* 0x00f5 */ - { CODEPAGE_ISLOWER, 0x00d6, 0x00f6 }, /* 0x00f6 */ - { CODEPAGE_ISNONE, 0x00f7, 0x00f7 }, /* 0x00f7 */ - { CODEPAGE_ISLOWER, 0x00d8, 0x00f8 }, /* 0x00f8 */ - { CODEPAGE_ISLOWER, 0x00d9, 0x00f9 }, /* 0x00f9 */ - { CODEPAGE_ISLOWER, 0x00da, 0x00fa }, /* 0x00fa */ - { CODEPAGE_ISLOWER, 0x00db, 0x00fb }, /* 0x00fb */ - { CODEPAGE_ISLOWER, 0x00dc, 0x00fc }, /* 0x00fc */ - { CODEPAGE_ISLOWER, 0x00dd, 0x00fd }, /* 0x00fd */ - { CODEPAGE_ISLOWER, 0x00de, 0x00fe }, /* 0x00fe */ - { CODEPAGE_ISNONE, 0x00ff, 0x00ff } /* 0x00ff */ -}; - -#ifdef __cplusplus -} -#endif - -#endif /* _SMBSRV_CP_LATIN3_H */ diff --git a/usr/src/uts/common/smbsrv/cp_latin4.h b/usr/src/uts/common/smbsrv/cp_latin4.h deleted file mode 100644 index 87e8282510..0000000000 --- a/usr/src/uts/common/smbsrv/cp_latin4.h +++ /dev/null @@ -1,312 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SMBSRV_CP_LATIN4_H -#define _SMBSRV_CP_LATIN4_H - -#pragma ident "%Z%%M% %I% %E% SMI" - -/* - * This file specifies a codepage mapping for a given character set as - * specified below: - * - * This is the codepage for Latin-4 Character Set. - * This codepage defines values for the special - * characters needed for the written alphabets of the - * following languages: Estonian, Baltic [Latvian & - * Lithuanian], Greenlandic, and Lappish - * The Latin-4 character set is also known as iso-8859-4 - */ - -#include <smbsrv/codepage.h> - -#ifdef __cplusplus -extern "C" { -#endif - -codepage_t Latin4_codepage[256] = { - { CODEPAGE_ISNONE, 0x0000, 0x0000 }, /* 0x0000 */ - { CODEPAGE_ISNONE, 0x0001, 0x0001 }, /* 0x0001 */ - { CODEPAGE_ISNONE, 0x0002, 0x0002 }, /* 0x0002 */ - { CODEPAGE_ISNONE, 0x0003, 0x0003 }, /* 0x0003 */ - { CODEPAGE_ISNONE, 0x0004, 0x0004 }, /* 0x0004 */ - { CODEPAGE_ISNONE, 0x0005, 0x0005 }, /* 0x0005 */ - { CODEPAGE_ISNONE, 0x0006, 0x0006 }, /* 0x0006 */ - { CODEPAGE_ISNONE, 0x0007, 0x0007 }, /* 0x0007 */ - { CODEPAGE_ISNONE, 0x0008, 0x0008 }, /* 0x0008 */ - { CODEPAGE_ISNONE, 0x0009, 0x0009 }, /* 0x0009 */ - { CODEPAGE_ISNONE, 0x000a, 0x000a }, /* 0x000a */ - { CODEPAGE_ISNONE, 0x000b, 0x000b }, /* 0x000b */ - { CODEPAGE_ISNONE, 0x000c, 0x000c }, /* 0x000c */ - { CODEPAGE_ISNONE, 0x000d, 0x000d }, /* 0x000d */ - { CODEPAGE_ISNONE, 0x000e, 0x000e }, /* 0x000e */ - { CODEPAGE_ISNONE, 0x000f, 0x000f }, /* 0x000f */ - { CODEPAGE_ISNONE, 0x0010, 0x0010 }, /* 0x0010 */ - { CODEPAGE_ISNONE, 0x0011, 0x0011 }, /* 0x0011 */ - { CODEPAGE_ISNONE, 0x0012, 0x0012 }, /* 0x0012 */ - { CODEPAGE_ISNONE, 0x0013, 0x0013 }, /* 0x0013 */ - { CODEPAGE_ISNONE, 0x0014, 0x0014 }, /* 0x0014 */ - { CODEPAGE_ISNONE, 0x0015, 0x0015 }, /* 0x0015 */ - { CODEPAGE_ISNONE, 0x0016, 0x0016 }, /* 0x0016 */ - { CODEPAGE_ISNONE, 0x0017, 0x0017 }, /* 0x0017 */ - { CODEPAGE_ISNONE, 0x0018, 0x0018 }, /* 0x0018 */ - { CODEPAGE_ISNONE, 0x0019, 0x0019 }, /* 0x0019 */ - { CODEPAGE_ISNONE, 0x001a, 0x001a }, /* 0x001a */ - { CODEPAGE_ISNONE, 0x001b, 0x001b }, /* 0x001b */ - { CODEPAGE_ISNONE, 0x001c, 0x001c }, /* 0x001c */ - { CODEPAGE_ISNONE, 0x001d, 0x001d }, /* 0x001d */ - { CODEPAGE_ISNONE, 0x001e, 0x001e }, /* 0x001e */ - { CODEPAGE_ISNONE, 0x001f, 0x001f }, /* 0x001f */ - { CODEPAGE_ISNONE, 0x0020, 0x0020 }, /* 0x0020 */ - { CODEPAGE_ISNONE, 0x0021, 0x0021 }, /* 0x0021 */ - { CODEPAGE_ISNONE, 0x0022, 0x0022 }, /* 0x0022 */ - { CODEPAGE_ISNONE, 0x0023, 0x0023 }, /* 0x0023 */ - { CODEPAGE_ISNONE, 0x0024, 0x0024 }, /* 0x0024 */ - { CODEPAGE_ISNONE, 0x0025, 0x0025 }, /* 0x0025 */ - { CODEPAGE_ISNONE, 0x0026, 0x0026 }, /* 0x0026 */ - { CODEPAGE_ISNONE, 0x0027, 0x0027 }, /* 0x0027 */ - { CODEPAGE_ISNONE, 0x0028, 0x0028 }, /* 0x0028 */ - { CODEPAGE_ISNONE, 0x0029, 0x0029 }, /* 0x0029 */ - { CODEPAGE_ISNONE, 0x002a, 0x002a }, /* 0x002a */ - { CODEPAGE_ISNONE, 0x002b, 0x002b }, /* 0x002b */ - { CODEPAGE_ISNONE, 0x002c, 0x002c }, /* 0x002c */ - { CODEPAGE_ISNONE, 0x002d, 0x002d }, /* 0x002d */ - { CODEPAGE_ISNONE, 0x002e, 0x002e }, /* 0x002e */ - { CODEPAGE_ISNONE, 0x002f, 0x002f }, /* 0x002f */ - { CODEPAGE_ISNONE, 0x0030, 0x0030 }, /* 0x0030 */ - { CODEPAGE_ISNONE, 0x0031, 0x0031 }, /* 0x0031 */ - { CODEPAGE_ISNONE, 0x0032, 0x0032 }, /* 0x0032 */ - { CODEPAGE_ISNONE, 0x0033, 0x0033 }, /* 0x0033 */ - { CODEPAGE_ISNONE, 0x0034, 0x0034 }, /* 0x0034 */ - { CODEPAGE_ISNONE, 0x0035, 0x0035 }, /* 0x0035 */ - { CODEPAGE_ISNONE, 0x0036, 0x0036 }, /* 0x0036 */ - { CODEPAGE_ISNONE, 0x0037, 0x0037 }, /* 0x0037 */ - { CODEPAGE_ISNONE, 0x0038, 0x0038 }, /* 0x0038 */ - { CODEPAGE_ISNONE, 0x0039, 0x0039 }, /* 0x0039 */ - { CODEPAGE_ISNONE, 0x003a, 0x003a }, /* 0x003a */ - { CODEPAGE_ISNONE, 0x003b, 0x003b }, /* 0x003b */ - { CODEPAGE_ISNONE, 0x003c, 0x003c }, /* 0x003c */ - { CODEPAGE_ISNONE, 0x003d, 0x003d }, /* 0x003d */ - { CODEPAGE_ISNONE, 0x003e, 0x003e }, /* 0x003e */ - { CODEPAGE_ISNONE, 0x003f, 0x003f }, /* 0x003f */ - { CODEPAGE_ISNONE, 0x0040, 0x0040 }, /* 0x0040 */ - { CODEPAGE_ISUPPER, 0x0041, 0x0061 }, /* 0x0041 */ - { CODEPAGE_ISUPPER, 0x0042, 0x0062 }, /* 0x0042 */ - { CODEPAGE_ISUPPER, 0x0043, 0x0063 }, /* 0x0043 */ - { CODEPAGE_ISUPPER, 0x0044, 0x0064 }, /* 0x0044 */ - { CODEPAGE_ISUPPER, 0x0045, 0x0065 }, /* 0x0045 */ - { CODEPAGE_ISUPPER, 0x0046, 0x0066 }, /* 0x0046 */ - { CODEPAGE_ISUPPER, 0x0047, 0x0067 }, /* 0x0047 */ - { CODEPAGE_ISUPPER, 0x0048, 0x0068 }, /* 0x0048 */ - { CODEPAGE_ISUPPER, 0x0049, 0x0069 }, /* 0x0049 */ - { CODEPAGE_ISUPPER, 0x004a, 0x006a }, /* 0x004a */ - { CODEPAGE_ISUPPER, 0x004b, 0x006b }, /* 0x004b */ - { CODEPAGE_ISUPPER, 0x004c, 0x006c }, /* 0x004c */ - { CODEPAGE_ISUPPER, 0x004d, 0x006d }, /* 0x004d */ - { CODEPAGE_ISUPPER, 0x004e, 0x006e }, /* 0x004e */ - { CODEPAGE_ISUPPER, 0x004f, 0x006f }, /* 0x004f */ - { CODEPAGE_ISUPPER, 0x0050, 0x0070 }, /* 0x0050 */ - { CODEPAGE_ISUPPER, 0x0051, 0x0071 }, /* 0x0051 */ - { CODEPAGE_ISUPPER, 0x0052, 0x0072 }, /* 0x0052 */ - { CODEPAGE_ISUPPER, 0x0053, 0x0073 }, /* 0x0053 */ - { CODEPAGE_ISUPPER, 0x0054, 0x0074 }, /* 0x0054 */ - { CODEPAGE_ISUPPER, 0x0055, 0x0075 }, /* 0x0055 */ - { CODEPAGE_ISUPPER, 0x0056, 0x0076 }, /* 0x0056 */ - { CODEPAGE_ISUPPER, 0x0057, 0x0077 }, /* 0x0057 */ - { CODEPAGE_ISUPPER, 0x0058, 0x0078 }, /* 0x0058 */ - { CODEPAGE_ISUPPER, 0x0059, 0x0079 }, /* 0x0059 */ - { CODEPAGE_ISUPPER, 0x005a, 0x007a }, /* 0x005a */ - { CODEPAGE_ISNONE, 0x005b, 0x005b }, /* 0x005b */ - { CODEPAGE_ISNONE, 0x005c, 0x005c }, /* 0x005c */ - { CODEPAGE_ISNONE, 0x005d, 0x005d }, /* 0x005d */ - { CODEPAGE_ISNONE, 0x005e, 0x005e }, /* 0x005e */ - { CODEPAGE_ISNONE, 0x005f, 0x005f }, /* 0x005f */ - { CODEPAGE_ISNONE, 0x0060, 0x0060 }, /* 0x0060 */ - { CODEPAGE_ISLOWER, 0x0041, 0x0061 }, /* 0x0061 */ - { CODEPAGE_ISLOWER, 0x0042, 0x0062 }, /* 0x0062 */ - { CODEPAGE_ISLOWER, 0x0043, 0x0063 }, /* 0x0063 */ - { CODEPAGE_ISLOWER, 0x0044, 0x0064 }, /* 0x0064 */ - { CODEPAGE_ISLOWER, 0x0045, 0x0065 }, /* 0x0065 */ - { CODEPAGE_ISLOWER, 0x0046, 0x0066 }, /* 0x0066 */ - { CODEPAGE_ISLOWER, 0x0047, 0x0067 }, /* 0x0067 */ - { CODEPAGE_ISLOWER, 0x0048, 0x0068 }, /* 0x0068 */ - { CODEPAGE_ISLOWER, 0x0049, 0x0069 }, /* 0x0069 */ - { CODEPAGE_ISLOWER, 0x004a, 0x006a }, /* 0x006a */ - { CODEPAGE_ISLOWER, 0x004b, 0x006b }, /* 0x006b */ - { CODEPAGE_ISLOWER, 0x004c, 0x006c }, /* 0x006c */ - { CODEPAGE_ISLOWER, 0x004d, 0x006d }, /* 0x006d */ - { CODEPAGE_ISLOWER, 0x004e, 0x006e }, /* 0x006e */ - { CODEPAGE_ISLOWER, 0x004f, 0x006f }, /* 0x006f */ - { CODEPAGE_ISLOWER, 0x0050, 0x0070 }, /* 0x0070 */ - { CODEPAGE_ISLOWER, 0x0051, 0x0071 }, /* 0x0071 */ - { CODEPAGE_ISLOWER, 0x0052, 0x0072 }, /* 0x0072 */ - { CODEPAGE_ISLOWER, 0x0053, 0x0073 }, /* 0x0073 */ - { CODEPAGE_ISLOWER, 0x0054, 0x0074 }, /* 0x0074 */ - { CODEPAGE_ISLOWER, 0x0055, 0x0075 }, /* 0x0075 */ - { CODEPAGE_ISLOWER, 0x0056, 0x0076 }, /* 0x0076 */ - { CODEPAGE_ISLOWER, 0x0057, 0x0077 }, /* 0x0077 */ - { CODEPAGE_ISLOWER, 0x0058, 0x0078 }, /* 0x0078 */ - { CODEPAGE_ISLOWER, 0x0059, 0x0079 }, /* 0x0079 */ - { CODEPAGE_ISLOWER, 0x005a, 0x007a }, /* 0x007a */ - { CODEPAGE_ISNONE, 0x007b, 0x007b }, /* 0x007b */ - { CODEPAGE_ISNONE, 0x007c, 0x007c }, /* 0x007c */ - { CODEPAGE_ISNONE, 0x007d, 0x007d }, /* 0x007d */ - { CODEPAGE_ISNONE, 0x007e, 0x007e }, /* 0x007e */ - { CODEPAGE_ISNONE, 0x007f, 0x007f }, /* 0x007f */ - { CODEPAGE_ISNONE, 0x0080, 0x0080 }, /* 0x0080 */ - { CODEPAGE_ISNONE, 0x0081, 0x0081 }, /* 0x0081 */ - { CODEPAGE_ISNONE, 0x0082, 0x0082 }, /* 0x0082 */ - { CODEPAGE_ISNONE, 0x0083, 0x0083 }, /* 0x0083 */ - { CODEPAGE_ISNONE, 0x0084, 0x0084 }, /* 0x0084 */ - { CODEPAGE_ISNONE, 0x0085, 0x0085 }, /* 0x0085 */ - { CODEPAGE_ISNONE, 0x0086, 0x0086 }, /* 0x0086 */ - { CODEPAGE_ISNONE, 0x0087, 0x0087 }, /* 0x0087 */ - { CODEPAGE_ISNONE, 0x0088, 0x0088 }, /* 0x0088 */ - { CODEPAGE_ISNONE, 0x0089, 0x0089 }, /* 0x0089 */ - { CODEPAGE_ISNONE, 0x008a, 0x008a }, /* 0x008a */ - { CODEPAGE_ISNONE, 0x008b, 0x008b }, /* 0x008b */ - { CODEPAGE_ISNONE, 0x008c, 0x008c }, /* 0x008c */ - { CODEPAGE_ISNONE, 0x008d, 0x008d }, /* 0x008d */ - { CODEPAGE_ISNONE, 0x008e, 0x008e }, /* 0x008e */ - { CODEPAGE_ISNONE, 0x008f, 0x008f }, /* 0x008f */ - { CODEPAGE_ISNONE, 0x0090, 0x0090 }, /* 0x0090 */ - { CODEPAGE_ISNONE, 0x0091, 0x0091 }, /* 0x0091 */ - { CODEPAGE_ISNONE, 0x0092, 0x0092 }, /* 0x0092 */ - { CODEPAGE_ISNONE, 0x0093, 0x0093 }, /* 0x0093 */ - { CODEPAGE_ISNONE, 0x0094, 0x0094 }, /* 0x0094 */ - { CODEPAGE_ISNONE, 0x0095, 0x0095 }, /* 0x0095 */ - { CODEPAGE_ISNONE, 0x0096, 0x0096 }, /* 0x0096 */ - { CODEPAGE_ISNONE, 0x0097, 0x0097 }, /* 0x0097 */ - { CODEPAGE_ISNONE, 0x0098, 0x0098 }, /* 0x0098 */ - { CODEPAGE_ISNONE, 0x0099, 0x0099 }, /* 0x0099 */ - { CODEPAGE_ISNONE, 0x009a, 0x009a }, /* 0x009a */ - { CODEPAGE_ISNONE, 0x009b, 0x009b }, /* 0x009b */ - { CODEPAGE_ISNONE, 0x009c, 0x009c }, /* 0x009c */ - { CODEPAGE_ISNONE, 0x009d, 0x009d }, /* 0x009d */ - { CODEPAGE_ISNONE, 0x009e, 0x009e }, /* 0x009e */ - { CODEPAGE_ISNONE, 0x009f, 0x009f }, /* 0x009f */ - { CODEPAGE_ISNONE, 0x00a0, 0x00a0 }, /* 0x00a0 */ - { CODEPAGE_ISUPPER, 0x00a1, 0x00b1 }, /* 0x00a1 */ - { CODEPAGE_ISNONE, 0x00a2, 0x00a2 }, /* 0x00a2 */ - { CODEPAGE_ISUPPER, 0x00a3, 0x00b3 }, /* 0x00a3 */ - { CODEPAGE_ISNONE, 0x00a4, 0x00a4 }, /* 0x00a4 */ - { CODEPAGE_ISUPPER, 0x00a5, 0x00b5 }, /* 0x00a5 */ - { CODEPAGE_ISUPPER, 0x00a6, 0x00b6 }, /* 0x00a6 */ - { CODEPAGE_ISNONE, 0x00a7, 0x00a7 }, /* 0x00a7 */ - { CODEPAGE_ISNONE, 0x00a8, 0x00a8 }, /* 0x00a8 */ - { CODEPAGE_ISUPPER, 0x00a9, 0x00b9 }, /* 0x00a9 */ - { CODEPAGE_ISUPPER, 0x00aa, 0x00ba }, /* 0x00aa */ - { CODEPAGE_ISUPPER, 0x00ab, 0x00bb }, /* 0x00ab */ - { CODEPAGE_ISUPPER, 0x00ac, 0x00bc }, /* 0x00ac */ - { CODEPAGE_ISNONE, 0x00ad, 0x00ad }, /* 0x00ad */ - { CODEPAGE_ISUPPER, 0x00ae, 0x00be }, /* 0x00ae */ - { CODEPAGE_ISNONE, 0x00af, 0x00af }, /* 0x00af */ - { CODEPAGE_ISNONE, 0x00b0, 0x00b0 }, /* 0x00b0 */ - { CODEPAGE_ISLOWER, 0x00a1, 0x00b1 }, /* 0x00b1 */ - { CODEPAGE_ISNONE, 0x00b2, 0x00b2 }, /* 0x00b2 */ - { CODEPAGE_ISLOWER, 0x00a3, 0x00b3 }, /* 0x00b3 */ - { CODEPAGE_ISNONE, 0x00b4, 0x00b4 }, /* 0x00b4 */ - { CODEPAGE_ISLOWER, 0x00a5, 0x00b5 }, /* 0x00b5 */ - { CODEPAGE_ISLOWER, 0x00a6, 0x00b6 }, /* 0x00b6 */ - { CODEPAGE_ISNONE, 0x00b7, 0x00b7 }, /* 0x00b7 */ - { CODEPAGE_ISNONE, 0x00b8, 0x00b8 }, /* 0x00b8 */ - { CODEPAGE_ISLOWER, 0x00a9, 0x00b9 }, /* 0x00b9 */ - { CODEPAGE_ISLOWER, 0x00aa, 0x00ba }, /* 0x00ba */ - { CODEPAGE_ISLOWER, 0x00ab, 0x00bb }, /* 0x00bb */ - { CODEPAGE_ISLOWER, 0x00ac, 0x00bc }, /* 0x00bc */ - { CODEPAGE_ISNONE, 0x00bd, 0x00bd }, /* 0x00bd */ - { CODEPAGE_ISLOWER, 0x00ae, 0x00be }, /* 0x00be */ - { CODEPAGE_ISNONE, 0x00bf, 0x00bf }, /* 0x00bf */ - { CODEPAGE_ISUPPER, 0x00c0, 0x00e0 }, /* 0x00c0 */ - { CODEPAGE_ISUPPER, 0x00c1, 0x00e1 }, /* 0x00c1 */ - { CODEPAGE_ISUPPER, 0x00c2, 0x00e2 }, /* 0x00c2 */ - { CODEPAGE_ISUPPER, 0x00c3, 0x00e3 }, /* 0x00c3 */ - { CODEPAGE_ISUPPER, 0x00c4, 0x00e4 }, /* 0x00c4 */ - { CODEPAGE_ISUPPER, 0x00c5, 0x00e5 }, /* 0x00c5 */ - { CODEPAGE_ISUPPER, 0x00c6, 0x00e6 }, /* 0x00c6 */ - { CODEPAGE_ISUPPER, 0x00c7, 0x00e7 }, /* 0x00c7 */ - { CODEPAGE_ISUPPER, 0x00c8, 0x00e8 }, /* 0x00c8 */ - { CODEPAGE_ISUPPER, 0x00c9, 0x00e9 }, /* 0x00c9 */ - { CODEPAGE_ISUPPER, 0x00ca, 0x00ea }, /* 0x00ca */ - { CODEPAGE_ISUPPER, 0x00cb, 0x00eb }, /* 0x00cb */ - { CODEPAGE_ISUPPER, 0x00cc, 0x00ec }, /* 0x00cc */ - { CODEPAGE_ISUPPER, 0x00cd, 0x00ed }, /* 0x00cd */ - { CODEPAGE_ISUPPER, 0x00ce, 0x00ee }, /* 0x00ce */ - { CODEPAGE_ISUPPER, 0x00cf, 0x00ef }, /* 0x00cf */ - { CODEPAGE_ISUPPER, 0x00d0, 0x00f0 }, /* 0x00d0 */ - { CODEPAGE_ISUPPER, 0x00d1, 0x00f1 }, /* 0x00d1 */ - { CODEPAGE_ISUPPER, 0x00d2, 0x00f2 }, /* 0x00d2 */ - { CODEPAGE_ISUPPER, 0x00d3, 0x00f3 }, /* 0x00d3 */ - { CODEPAGE_ISUPPER, 0x00d4, 0x00f4 }, /* 0x00d4 */ - { CODEPAGE_ISUPPER, 0x00d5, 0x00f5 }, /* 0x00d5 */ - { CODEPAGE_ISUPPER, 0x00d6, 0x00f6 }, /* 0x00d6 */ - { CODEPAGE_ISNONE, 0x00d7, 0x00d7 }, /* 0x00d7 */ - { CODEPAGE_ISUPPER, 0x00d8, 0x00f8 }, /* 0x00d8 */ - { CODEPAGE_ISUPPER, 0x00d9, 0x00f9 }, /* 0x00d9 */ - { CODEPAGE_ISUPPER, 0x00da, 0x00fa }, /* 0x00da */ - { CODEPAGE_ISUPPER, 0x00db, 0x00fb }, /* 0x00db */ - { CODEPAGE_ISUPPER, 0x00dc, 0x00fc }, /* 0x00dc */ - { CODEPAGE_ISUPPER, 0x00dd, 0x00fd }, /* 0x00dd */ - { CODEPAGE_ISUPPER, 0x00de, 0x00fe }, /* 0x00de */ - { CODEPAGE_ISNONE, 0x00df, 0x00df }, /* 0x00df */ - { CODEPAGE_ISLOWER, 0x00c0, 0x00e0 }, /* 0x00e0 */ - { CODEPAGE_ISLOWER, 0x00c1, 0x00e1 }, /* 0x00e1 */ - { CODEPAGE_ISLOWER, 0x00c2, 0x00e2 }, /* 0x00e2 */ - { CODEPAGE_ISLOWER, 0x00c3, 0x00e3 }, /* 0x00e3 */ - { CODEPAGE_ISLOWER, 0x00c4, 0x00e4 }, /* 0x00e4 */ - { CODEPAGE_ISLOWER, 0x00c5, 0x00e5 }, /* 0x00e5 */ - { CODEPAGE_ISLOWER, 0x00c6, 0x00e6 }, /* 0x00e6 */ - { CODEPAGE_ISLOWER, 0x00c7, 0x00e7 }, /* 0x00e7 */ - { CODEPAGE_ISLOWER, 0x00c8, 0x00e8 }, /* 0x00e8 */ - { CODEPAGE_ISLOWER, 0x00c9, 0x00e9 }, /* 0x00e9 */ - { CODEPAGE_ISLOWER, 0x00ca, 0x00ea }, /* 0x00ea */ - { CODEPAGE_ISLOWER, 0x00cb, 0x00eb }, /* 0x00eb */ - { CODEPAGE_ISLOWER, 0x00cc, 0x00ec }, /* 0x00ec */ - { CODEPAGE_ISLOWER, 0x00cd, 0x00ed }, /* 0x00ed */ - { CODEPAGE_ISLOWER, 0x00ce, 0x00ee }, /* 0x00ee */ - { CODEPAGE_ISLOWER, 0x00cf, 0x00ef }, /* 0x00ef */ - { CODEPAGE_ISLOWER, 0x00d0, 0x00f0 }, /* 0x00f0 */ - { CODEPAGE_ISLOWER, 0x00d1, 0x00f1 }, /* 0x00f1 */ - { CODEPAGE_ISLOWER, 0x00d2, 0x00f2 }, /* 0x00f2 */ - { CODEPAGE_ISLOWER, 0x00d3, 0x00f3 }, /* 0x00f3 */ - { CODEPAGE_ISLOWER, 0x00d4, 0x00f4 }, /* 0x00f4 */ - { CODEPAGE_ISLOWER, 0x00d5, 0x00f5 }, /* 0x00f5 */ - { CODEPAGE_ISLOWER, 0x00d6, 0x00f6 }, /* 0x00f6 */ - { CODEPAGE_ISNONE, 0x00f7, 0x00f7 }, /* 0x00f7 */ - { CODEPAGE_ISLOWER, 0x00d8, 0x00f8 }, /* 0x00f8 */ - { CODEPAGE_ISLOWER, 0x00d9, 0x00f9 }, /* 0x00f9 */ - { CODEPAGE_ISLOWER, 0x00da, 0x00fa }, /* 0x00fa */ - { CODEPAGE_ISLOWER, 0x00db, 0x00fb }, /* 0x00fb */ - { CODEPAGE_ISLOWER, 0x00dc, 0x00fc }, /* 0x00fc */ - { CODEPAGE_ISLOWER, 0x00dd, 0x00fd }, /* 0x00fd */ - { CODEPAGE_ISLOWER, 0x00de, 0x00fe }, /* 0x00fe */ - { CODEPAGE_ISNONE, 0x00ff, 0x00ff } /* 0x00ff */ -}; - -#ifdef __cplusplus -} -#endif - -#endif /* _SMBSRV_CP_LATIN4_H */ diff --git a/usr/src/uts/common/smbsrv/cp_latin5.h b/usr/src/uts/common/smbsrv/cp_latin5.h deleted file mode 100644 index 87ad426348..0000000000 --- a/usr/src/uts/common/smbsrv/cp_latin5.h +++ /dev/null @@ -1,311 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SMBSRV_CP_LATIN5_H -#define _SMBSRV_CP_LATIN5_H - -#pragma ident "%Z%%M% %I% %E% SMI" - -/* - * This file specifies a codepage mapping for a given character set as - * specified below: - * - * This is the codepage for the Latin-5 Character Set - * This codepage defines values for the special characters - * needed for the written alphabet of the following - * language: Turkish * The Latin-5 character set is also known as iso-8859-9. - * - */ - -#include <smbsrv/codepage.h> - -#ifdef __cplusplus -extern "C" { -#endif - -codepage_t Latin5_codepage[256] = { - { CODEPAGE_ISNONE, 0x0000, 0x0000 }, /* 0x0000 */ - { CODEPAGE_ISNONE, 0x0001, 0x0001 }, /* 0x0001 */ - { CODEPAGE_ISNONE, 0x0002, 0x0002 }, /* 0x0002 */ - { CODEPAGE_ISNONE, 0x0003, 0x0003 }, /* 0x0003 */ - { CODEPAGE_ISNONE, 0x0004, 0x0004 }, /* 0x0004 */ - { CODEPAGE_ISNONE, 0x0005, 0x0005 }, /* 0x0005 */ - { CODEPAGE_ISNONE, 0x0006, 0x0006 }, /* 0x0006 */ - { CODEPAGE_ISNONE, 0x0007, 0x0007 }, /* 0x0007 */ - { CODEPAGE_ISNONE, 0x0008, 0x0008 }, /* 0x0008 */ - { CODEPAGE_ISNONE, 0x0009, 0x0009 }, /* 0x0009 */ - { CODEPAGE_ISNONE, 0x000a, 0x000a }, /* 0x000a */ - { CODEPAGE_ISNONE, 0x000b, 0x000b }, /* 0x000b */ - { CODEPAGE_ISNONE, 0x000c, 0x000c }, /* 0x000c */ - { CODEPAGE_ISNONE, 0x000d, 0x000d }, /* 0x000d */ - { CODEPAGE_ISNONE, 0x000e, 0x000e }, /* 0x000e */ - { CODEPAGE_ISNONE, 0x000f, 0x000f }, /* 0x000f */ - { CODEPAGE_ISNONE, 0x0010, 0x0010 }, /* 0x0010 */ - { CODEPAGE_ISNONE, 0x0011, 0x0011 }, /* 0x0011 */ - { CODEPAGE_ISNONE, 0x0012, 0x0012 }, /* 0x0012 */ - { CODEPAGE_ISNONE, 0x0013, 0x0013 }, /* 0x0013 */ - { CODEPAGE_ISNONE, 0x0014, 0x0014 }, /* 0x0014 */ - { CODEPAGE_ISNONE, 0x0015, 0x0015 }, /* 0x0015 */ - { CODEPAGE_ISNONE, 0x0016, 0x0016 }, /* 0x0016 */ - { CODEPAGE_ISNONE, 0x0017, 0x0017 }, /* 0x0017 */ - { CODEPAGE_ISNONE, 0x0018, 0x0018 }, /* 0x0018 */ - { CODEPAGE_ISNONE, 0x0019, 0x0019 }, /* 0x0019 */ - { CODEPAGE_ISNONE, 0x001a, 0x001a }, /* 0x001a */ - { CODEPAGE_ISNONE, 0x001b, 0x001b }, /* 0x001b */ - { CODEPAGE_ISNONE, 0x001c, 0x001c }, /* 0x001c */ - { CODEPAGE_ISNONE, 0x001d, 0x001d }, /* 0x001d */ - { CODEPAGE_ISNONE, 0x001e, 0x001e }, /* 0x001e */ - { CODEPAGE_ISNONE, 0x001f, 0x001f }, /* 0x001f */ - { CODEPAGE_ISNONE, 0x0020, 0x0020 }, /* 0x0020 */ - { CODEPAGE_ISNONE, 0x0021, 0x0021 }, /* 0x0021 */ - { CODEPAGE_ISNONE, 0x0022, 0x0022 }, /* 0x0022 */ - { CODEPAGE_ISNONE, 0x0023, 0x0023 }, /* 0x0023 */ - { CODEPAGE_ISNONE, 0x0024, 0x0024 }, /* 0x0024 */ - { CODEPAGE_ISNONE, 0x0025, 0x0025 }, /* 0x0025 */ - { CODEPAGE_ISNONE, 0x0026, 0x0026 }, /* 0x0026 */ - { CODEPAGE_ISNONE, 0x0027, 0x0027 }, /* 0x0027 */ - { CODEPAGE_ISNONE, 0x0028, 0x0028 }, /* 0x0028 */ - { CODEPAGE_ISNONE, 0x0029, 0x0029 }, /* 0x0029 */ - { CODEPAGE_ISNONE, 0x002a, 0x002a }, /* 0x002a */ - { CODEPAGE_ISNONE, 0x002b, 0x002b }, /* 0x002b */ - { CODEPAGE_ISNONE, 0x002c, 0x002c }, /* 0x002c */ - { CODEPAGE_ISNONE, 0x002d, 0x002d }, /* 0x002d */ - { CODEPAGE_ISNONE, 0x002e, 0x002e }, /* 0x002e */ - { CODEPAGE_ISNONE, 0x002f, 0x002f }, /* 0x002f */ - { CODEPAGE_ISNONE, 0x0030, 0x0030 }, /* 0x0030 */ - { CODEPAGE_ISNONE, 0x0031, 0x0031 }, /* 0x0031 */ - { CODEPAGE_ISNONE, 0x0032, 0x0032 }, /* 0x0032 */ - { CODEPAGE_ISNONE, 0x0033, 0x0033 }, /* 0x0033 */ - { CODEPAGE_ISNONE, 0x0034, 0x0034 }, /* 0x0034 */ - { CODEPAGE_ISNONE, 0x0035, 0x0035 }, /* 0x0035 */ - { CODEPAGE_ISNONE, 0x0036, 0x0036 }, /* 0x0036 */ - { CODEPAGE_ISNONE, 0x0037, 0x0037 }, /* 0x0037 */ - { CODEPAGE_ISNONE, 0x0038, 0x0038 }, /* 0x0038 */ - { CODEPAGE_ISNONE, 0x0039, 0x0039 }, /* 0x0039 */ - { CODEPAGE_ISNONE, 0x003a, 0x003a }, /* 0x003a */ - { CODEPAGE_ISNONE, 0x003b, 0x003b }, /* 0x003b */ - { CODEPAGE_ISNONE, 0x003c, 0x003c }, /* 0x003c */ - { CODEPAGE_ISNONE, 0x003d, 0x003d }, /* 0x003d */ - { CODEPAGE_ISNONE, 0x003e, 0x003e }, /* 0x003e */ - { CODEPAGE_ISNONE, 0x003f, 0x003f }, /* 0x003f */ - { CODEPAGE_ISNONE, 0x0040, 0x0040 }, /* 0x0040 */ - { CODEPAGE_ISUPPER, 0x0041, 0x0061 }, /* 0x0041 */ - { CODEPAGE_ISUPPER, 0x0042, 0x0062 }, /* 0x0042 */ - { CODEPAGE_ISUPPER, 0x0043, 0x0063 }, /* 0x0043 */ - { CODEPAGE_ISUPPER, 0x0044, 0x0064 }, /* 0x0044 */ - { CODEPAGE_ISUPPER, 0x0045, 0x0065 }, /* 0x0045 */ - { CODEPAGE_ISUPPER, 0x0046, 0x0066 }, /* 0x0046 */ - { CODEPAGE_ISUPPER, 0x0047, 0x0067 }, /* 0x0047 */ - { CODEPAGE_ISUPPER, 0x0048, 0x0068 }, /* 0x0048 */ - { CODEPAGE_ISUPPER, 0x0049, 0x0069 }, /* 0x0049 */ - { CODEPAGE_ISUPPER, 0x004a, 0x006a }, /* 0x004a */ - { CODEPAGE_ISUPPER, 0x004b, 0x006b }, /* 0x004b */ - { CODEPAGE_ISUPPER, 0x004c, 0x006c }, /* 0x004c */ - { CODEPAGE_ISUPPER, 0x004d, 0x006d }, /* 0x004d */ - { CODEPAGE_ISUPPER, 0x004e, 0x006e }, /* 0x004e */ - { CODEPAGE_ISUPPER, 0x004f, 0x006f }, /* 0x004f */ - { CODEPAGE_ISUPPER, 0x0050, 0x0070 }, /* 0x0050 */ - { CODEPAGE_ISUPPER, 0x0051, 0x0071 }, /* 0x0051 */ - { CODEPAGE_ISUPPER, 0x0052, 0x0072 }, /* 0x0052 */ - { CODEPAGE_ISUPPER, 0x0053, 0x0073 }, /* 0x0053 */ - { CODEPAGE_ISUPPER, 0x0054, 0x0074 }, /* 0x0054 */ - { CODEPAGE_ISUPPER, 0x0055, 0x0075 }, /* 0x0055 */ - { CODEPAGE_ISUPPER, 0x0056, 0x0076 }, /* 0x0056 */ - { CODEPAGE_ISUPPER, 0x0057, 0x0077 }, /* 0x0057 */ - { CODEPAGE_ISUPPER, 0x0058, 0x0078 }, /* 0x0058 */ - { CODEPAGE_ISUPPER, 0x0059, 0x0079 }, /* 0x0059 */ - { CODEPAGE_ISUPPER, 0x005a, 0x007a }, /* 0x005a */ - { CODEPAGE_ISNONE, 0x005b, 0x005b }, /* 0x005b */ - { CODEPAGE_ISNONE, 0x005c, 0x005c }, /* 0x005c */ - { CODEPAGE_ISNONE, 0x005d, 0x005d }, /* 0x005d */ - { CODEPAGE_ISNONE, 0x005e, 0x005e }, /* 0x005e */ - { CODEPAGE_ISNONE, 0x005f, 0x005f }, /* 0x005f */ - { CODEPAGE_ISNONE, 0x0060, 0x0060 }, /* 0x0060 */ - { CODEPAGE_ISLOWER, 0x0041, 0x0061 }, /* 0x0061 */ - { CODEPAGE_ISLOWER, 0x0042, 0x0062 }, /* 0x0062 */ - { CODEPAGE_ISLOWER, 0x0043, 0x0063 }, /* 0x0063 */ - { CODEPAGE_ISLOWER, 0x0044, 0x0064 }, /* 0x0064 */ - { CODEPAGE_ISLOWER, 0x0045, 0x0065 }, /* 0x0065 */ - { CODEPAGE_ISLOWER, 0x0046, 0x0066 }, /* 0x0066 */ - { CODEPAGE_ISLOWER, 0x0047, 0x0067 }, /* 0x0067 */ - { CODEPAGE_ISLOWER, 0x0048, 0x0068 }, /* 0x0068 */ - { CODEPAGE_ISLOWER, 0x0049, 0x0069 }, /* 0x0069 */ - { CODEPAGE_ISLOWER, 0x004a, 0x006a }, /* 0x006a */ - { CODEPAGE_ISLOWER, 0x004b, 0x006b }, /* 0x006b */ - { CODEPAGE_ISLOWER, 0x004c, 0x006c }, /* 0x006c */ - { CODEPAGE_ISLOWER, 0x004d, 0x006d }, /* 0x006d */ - { CODEPAGE_ISLOWER, 0x004e, 0x006e }, /* 0x006e */ - { CODEPAGE_ISLOWER, 0x004f, 0x006f }, /* 0x006f */ - { CODEPAGE_ISLOWER, 0x0050, 0x0070 }, /* 0x0070 */ - { CODEPAGE_ISLOWER, 0x0051, 0x0071 }, /* 0x0071 */ - { CODEPAGE_ISLOWER, 0x0052, 0x0072 }, /* 0x0072 */ - { CODEPAGE_ISLOWER, 0x0053, 0x0073 }, /* 0x0073 */ - { CODEPAGE_ISLOWER, 0x0054, 0x0074 }, /* 0x0074 */ - { CODEPAGE_ISLOWER, 0x0055, 0x0075 }, /* 0x0075 */ - { CODEPAGE_ISLOWER, 0x0056, 0x0076 }, /* 0x0076 */ - { CODEPAGE_ISLOWER, 0x0057, 0x0077 }, /* 0x0077 */ - { CODEPAGE_ISLOWER, 0x0058, 0x0078 }, /* 0x0078 */ - { CODEPAGE_ISLOWER, 0x0059, 0x0079 }, /* 0x0079 */ - { CODEPAGE_ISLOWER, 0x005a, 0x007a }, /* 0x007a */ - { CODEPAGE_ISNONE, 0x007b, 0x007b }, /* 0x007b */ - { CODEPAGE_ISNONE, 0x007c, 0x007c }, /* 0x007c */ - { CODEPAGE_ISNONE, 0x007d, 0x007d }, /* 0x007d */ - { CODEPAGE_ISNONE, 0x007e, 0x007e }, /* 0x007e */ - { CODEPAGE_ISNONE, 0x007f, 0x007f }, /* 0x007f */ - { CODEPAGE_ISNONE, 0x0080, 0x0080 }, /* 0x0080 */ - { CODEPAGE_ISNONE, 0x0081, 0x0081 }, /* 0x0081 */ - { CODEPAGE_ISNONE, 0x0082, 0x0082 }, /* 0x0082 */ - { CODEPAGE_ISNONE, 0x0083, 0x0083 }, /* 0x0083 */ - { CODEPAGE_ISNONE, 0x0084, 0x0084 }, /* 0x0084 */ - { CODEPAGE_ISNONE, 0x0085, 0x0085 }, /* 0x0085 */ - { CODEPAGE_ISNONE, 0x0086, 0x0086 }, /* 0x0086 */ - { CODEPAGE_ISNONE, 0x0087, 0x0087 }, /* 0x0087 */ - { CODEPAGE_ISNONE, 0x0088, 0x0088 }, /* 0x0088 */ - { CODEPAGE_ISNONE, 0x0089, 0x0089 }, /* 0x0089 */ - { CODEPAGE_ISNONE, 0x008a, 0x008a }, /* 0x008a */ - { CODEPAGE_ISNONE, 0x008b, 0x008b }, /* 0x008b */ - { CODEPAGE_ISNONE, 0x008c, 0x008c }, /* 0x008c */ - { CODEPAGE_ISNONE, 0x008d, 0x008d }, /* 0x008d */ - { CODEPAGE_ISNONE, 0x008e, 0x008e }, /* 0x008e */ - { CODEPAGE_ISNONE, 0x008f, 0x008f }, /* 0x008f */ - { CODEPAGE_ISNONE, 0x0090, 0x0090 }, /* 0x0090 */ - { CODEPAGE_ISNONE, 0x0091, 0x0091 }, /* 0x0091 */ - { CODEPAGE_ISNONE, 0x0092, 0x0092 }, /* 0x0092 */ - { CODEPAGE_ISNONE, 0x0093, 0x0093 }, /* 0x0093 */ - { CODEPAGE_ISNONE, 0x0094, 0x0094 }, /* 0x0094 */ - { CODEPAGE_ISNONE, 0x0095, 0x0095 }, /* 0x0095 */ - { CODEPAGE_ISNONE, 0x0096, 0x0096 }, /* 0x0096 */ - { CODEPAGE_ISNONE, 0x0097, 0x0097 }, /* 0x0097 */ - { CODEPAGE_ISNONE, 0x0098, 0x0098 }, /* 0x0098 */ - { CODEPAGE_ISNONE, 0x0099, 0x0099 }, /* 0x0099 */ - { CODEPAGE_ISNONE, 0x009a, 0x009a }, /* 0x009a */ - { CODEPAGE_ISNONE, 0x009b, 0x009b }, /* 0x009b */ - { CODEPAGE_ISNONE, 0x009c, 0x009c }, /* 0x009c */ - { CODEPAGE_ISNONE, 0x009d, 0x009d }, /* 0x009d */ - { CODEPAGE_ISNONE, 0x009e, 0x009e }, /* 0x009e */ - { CODEPAGE_ISNONE, 0x009f, 0x009f }, /* 0x009f */ - { CODEPAGE_ISNONE, 0x00a0, 0x00a0 }, /* 0x00a0 */ - { CODEPAGE_ISNONE, 0x00a1, 0x00a1 }, /* 0x00a1 */ - { CODEPAGE_ISNONE, 0x00a2, 0x00a2 }, /* 0x00a2 */ - { CODEPAGE_ISNONE, 0x00a3, 0x00a3 }, /* 0x00a3 */ - { CODEPAGE_ISNONE, 0x00a4, 0x00a4 }, /* 0x00a4 */ - { CODEPAGE_ISNONE, 0x00a5, 0x00a5 }, /* 0x00a5 */ - { CODEPAGE_ISNONE, 0x00a6, 0x00a6 }, /* 0x00a6 */ - { CODEPAGE_ISNONE, 0x00a7, 0x00a7 }, /* 0x00a7 */ - { CODEPAGE_ISNONE, 0x00a8, 0x00a8 }, /* 0x00a8 */ - { CODEPAGE_ISNONE, 0x00a9, 0x00a9 }, /* 0x00a9 */ - { CODEPAGE_ISNONE, 0x00aa, 0x00aa }, /* 0x00aa */ - { CODEPAGE_ISNONE, 0x00ab, 0x00ab }, /* 0x00ab */ - { CODEPAGE_ISNONE, 0x00ac, 0x00ac }, /* 0x00ac */ - { CODEPAGE_ISNONE, 0x00ad, 0x00ad }, /* 0x00ad */ - { CODEPAGE_ISNONE, 0x00ae, 0x00ae }, /* 0x00ae */ - { CODEPAGE_ISNONE, 0x00af, 0x00af }, /* 0x00af */ - { CODEPAGE_ISNONE, 0x00b0, 0x00b0 }, /* 0x00b0 */ - { CODEPAGE_ISNONE, 0x00b1, 0x00b1 }, /* 0x00b1 */ - { CODEPAGE_ISNONE, 0x00b2, 0x00b2 }, /* 0x00b2 */ - { CODEPAGE_ISNONE, 0x00b3, 0x00b3 }, /* 0x00b3 */ - { CODEPAGE_ISNONE, 0x00b4, 0x00b4 }, /* 0x00b4 */ - { CODEPAGE_ISNONE, 0x00b5, 0x00b5 }, /* 0x00b5 */ - { CODEPAGE_ISNONE, 0x00b6, 0x00b6 }, /* 0x00b6 */ - { CODEPAGE_ISNONE, 0x00b7, 0x00b7 }, /* 0x00b7 */ - { CODEPAGE_ISNONE, 0x00b8, 0x00b8 }, /* 0x00b8 */ - { CODEPAGE_ISNONE, 0x00b9, 0x00b9 }, /* 0x00b9 */ - { CODEPAGE_ISNONE, 0x00ba, 0x00ba }, /* 0x00ba */ - { CODEPAGE_ISNONE, 0x00bb, 0x00bb }, /* 0x00bb */ - { CODEPAGE_ISNONE, 0x00bc, 0x00bc }, /* 0x00bc */ - { CODEPAGE_ISNONE, 0x00bd, 0x00bd }, /* 0x00bd */ - { CODEPAGE_ISNONE, 0x00be, 0x00be }, /* 0x00be */ - { CODEPAGE_ISNONE, 0x00bf, 0x00bf }, /* 0x00bf */ - { CODEPAGE_ISUPPER, 0x00c0, 0x00e0 }, /* 0x00c0 */ - { CODEPAGE_ISUPPER, 0x00c1, 0x00e1 }, /* 0x00c1 */ - { CODEPAGE_ISUPPER, 0x00c2, 0x00e2 }, /* 0x00c2 */ - { CODEPAGE_ISUPPER, 0x00c3, 0x00e3 }, /* 0x00c3 */ - { CODEPAGE_ISUPPER, 0x00c4, 0x00e4 }, /* 0x00c4 */ - { CODEPAGE_ISUPPER, 0x00c5, 0x00e5 }, /* 0x00c5 */ - { CODEPAGE_ISUPPER, 0x00c6, 0x00e6 }, /* 0x00c6 */ - { CODEPAGE_ISUPPER, 0x00c7, 0x00e7 }, /* 0x00c7 */ - { CODEPAGE_ISUPPER, 0x00c8, 0x00e8 }, /* 0x00c8 */ - { CODEPAGE_ISUPPER, 0x00c9, 0x00e9 }, /* 0x00c9 */ - { CODEPAGE_ISUPPER, 0x00ca, 0x00ea }, /* 0x00ca */ - { CODEPAGE_ISUPPER, 0x00cb, 0x00eb }, /* 0x00cb */ - { CODEPAGE_ISUPPER, 0x00cc, 0x00ec }, /* 0x00cc */ - { CODEPAGE_ISUPPER, 0x00cd, 0x00ed }, /* 0x00cd */ - { CODEPAGE_ISUPPER, 0x00ce, 0x00ee }, /* 0x00ce */ - { CODEPAGE_ISUPPER, 0x00cf, 0x00ef }, /* 0x00cf */ - { CODEPAGE_ISUPPER, 0x00d0, 0x00f0 }, /* 0x00d0 */ - { CODEPAGE_ISUPPER, 0x00d1, 0x00f1 }, /* 0x00d1 */ - { CODEPAGE_ISUPPER, 0x00d2, 0x00f2 }, /* 0x00d2 */ - { CODEPAGE_ISUPPER, 0x00d3, 0x00f3 }, /* 0x00d3 */ - { CODEPAGE_ISUPPER, 0x00d4, 0x00f4 }, /* 0x00d4 */ - { CODEPAGE_ISUPPER, 0x00d5, 0x00f5 }, /* 0x00d5 */ - { CODEPAGE_ISUPPER, 0x00d6, 0x00f6 }, /* 0x00d6 */ - { CODEPAGE_ISNONE, 0x00d7, 0x00d7 }, /* 0x00d7 */ - { CODEPAGE_ISUPPER, 0x00d8, 0x00f8 }, /* 0x00d8 */ - { CODEPAGE_ISUPPER, 0x00d9, 0x00f9 }, /* 0x00d9 */ - { CODEPAGE_ISUPPER, 0x00da, 0x00fa }, /* 0x00da */ - { CODEPAGE_ISUPPER, 0x00db, 0x00fb }, /* 0x00db */ - { CODEPAGE_ISUPPER, 0x00dc, 0x00fc }, /* 0x00dc */ - { CODEPAGE_ISUPPER, 0x00dd, 0x00fd }, /* 0x00dd */ - { CODEPAGE_ISUPPER, 0x00de, 0x00fe }, /* 0x00de */ - { CODEPAGE_ISNONE, 0x00df, 0x00df }, /* 0x00df */ - { CODEPAGE_ISLOWER, 0x00c0, 0x00e0 }, /* 0x00e0 */ - { CODEPAGE_ISLOWER, 0x00c1, 0x00e1 }, /* 0x00e1 */ - { CODEPAGE_ISLOWER, 0x00c2, 0x00e2 }, /* 0x00e2 */ - { CODEPAGE_ISLOWER, 0x00c3, 0x00e3 }, /* 0x00e3 */ - { CODEPAGE_ISLOWER, 0x00c4, 0x00e4 }, /* 0x00e4 */ - { CODEPAGE_ISLOWER, 0x00c5, 0x00e5 }, /* 0x00e5 */ - { CODEPAGE_ISLOWER, 0x00c6, 0x00e6 }, /* 0x00e6 */ - { CODEPAGE_ISLOWER, 0x00c7, 0x00e7 }, /* 0x00e7 */ - { CODEPAGE_ISLOWER, 0x00c8, 0x00e8 }, /* 0x00e8 */ - { CODEPAGE_ISLOWER, 0x00c9, 0x00e9 }, /* 0x00e9 */ - { CODEPAGE_ISLOWER, 0x00ca, 0x00ea }, /* 0x00ea */ - { CODEPAGE_ISLOWER, 0x00cb, 0x00eb }, /* 0x00eb */ - { CODEPAGE_ISLOWER, 0x00cc, 0x00ec }, /* 0x00ec */ - { CODEPAGE_ISLOWER, 0x00cd, 0x00ed }, /* 0x00ed */ - { CODEPAGE_ISLOWER, 0x00ce, 0x00ee }, /* 0x00ee */ - { CODEPAGE_ISLOWER, 0x00cf, 0x00ef }, /* 0x00ef */ - { CODEPAGE_ISLOWER, 0x00d0, 0x00f0 }, /* 0x00f0 */ - { CODEPAGE_ISLOWER, 0x00d1, 0x00f1 }, /* 0x00f1 */ - { CODEPAGE_ISLOWER, 0x00d2, 0x00f2 }, /* 0x00f2 */ - { CODEPAGE_ISLOWER, 0x00d3, 0x00f3 }, /* 0x00f3 */ - { CODEPAGE_ISLOWER, 0x00d4, 0x00f4 }, /* 0x00f4 */ - { CODEPAGE_ISLOWER, 0x00d5, 0x00f5 }, /* 0x00f5 */ - { CODEPAGE_ISLOWER, 0x00d6, 0x00f6 }, /* 0x00f6 */ - { CODEPAGE_ISNONE, 0x00f7, 0x00f7 }, /* 0x00f7 */ - { CODEPAGE_ISLOWER, 0x00d8, 0x00f8 }, /* 0x00f8 */ - { CODEPAGE_ISLOWER, 0x00d9, 0x00f9 }, /* 0x00f9 */ - { CODEPAGE_ISLOWER, 0x00da, 0x00fa }, /* 0x00fa */ - { CODEPAGE_ISLOWER, 0x00db, 0x00fb }, /* 0x00fb */ - { CODEPAGE_ISLOWER, 0x00dc, 0x00fc }, /* 0x00fc */ - { CODEPAGE_ISLOWER, 0x00dd, 0x00fd }, /* 0x00fd */ - { CODEPAGE_ISLOWER, 0x00de, 0x00fe }, /* 0x00fe */ - { CODEPAGE_ISNONE, 0x00ff, 0x00ff } /* 0x00ff */ -}; - -#ifdef __cplusplus -} -#endif - -#endif /* _SMBSRV_CP_LATIN5_H */ diff --git a/usr/src/uts/common/smbsrv/cp_latin6.h b/usr/src/uts/common/smbsrv/cp_latin6.h deleted file mode 100644 index fd86d276c4..0000000000 --- a/usr/src/uts/common/smbsrv/cp_latin6.h +++ /dev/null @@ -1,309 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SMBSRV_CP_LATIN6_H -#define _SMBSRV_CP_LATIN6_H - -#pragma ident "%Z%%M% %I% %E% SMI" - -/* - * This is the codepage for the Latin-6 Character Set. - * This codepage defines values for the special characters - * needed for the written alphabets of the following - * Nordic Languages: Greenlandic, Eskimo, Lappish, - * and Icelandic - * The Latin-6 character set is also known as iso-8859-10 - */ - -#include <smbsrv/codepage.h> - -#ifdef __cplusplus -extern "C" { -#endif - -codepage_t Latin6_codepage[256] = { - { CODEPAGE_ISNONE, 0x0000, 0x0000 }, /* 0x0000 */ - { CODEPAGE_ISNONE, 0x0001, 0x0001 }, /* 0x0001 */ - { CODEPAGE_ISNONE, 0x0002, 0x0002 }, /* 0x0002 */ - { CODEPAGE_ISNONE, 0x0003, 0x0003 }, /* 0x0003 */ - { CODEPAGE_ISNONE, 0x0004, 0x0004 }, /* 0x0004 */ - { CODEPAGE_ISNONE, 0x0005, 0x0005 }, /* 0x0005 */ - { CODEPAGE_ISNONE, 0x0006, 0x0006 }, /* 0x0006 */ - { CODEPAGE_ISNONE, 0x0007, 0x0007 }, /* 0x0007 */ - { CODEPAGE_ISNONE, 0x0008, 0x0008 }, /* 0x0008 */ - { CODEPAGE_ISNONE, 0x0009, 0x0009 }, /* 0x0009 */ - { CODEPAGE_ISNONE, 0x000a, 0x000a }, /* 0x000a */ - { CODEPAGE_ISNONE, 0x000b, 0x000b }, /* 0x000b */ - { CODEPAGE_ISNONE, 0x000c, 0x000c }, /* 0x000c */ - { CODEPAGE_ISNONE, 0x000d, 0x000d }, /* 0x000d */ - { CODEPAGE_ISNONE, 0x000e, 0x000e }, /* 0x000e */ - { CODEPAGE_ISNONE, 0x000f, 0x000f }, /* 0x000f */ - { CODEPAGE_ISNONE, 0x0010, 0x0010 }, /* 0x0010 */ - { CODEPAGE_ISNONE, 0x0011, 0x0011 }, /* 0x0011 */ - { CODEPAGE_ISNONE, 0x0012, 0x0012 }, /* 0x0012 */ - { CODEPAGE_ISNONE, 0x0013, 0x0013 }, /* 0x0013 */ - { CODEPAGE_ISNONE, 0x0014, 0x0014 }, /* 0x0014 */ - { CODEPAGE_ISNONE, 0x0015, 0x0015 }, /* 0x0015 */ - { CODEPAGE_ISNONE, 0x0016, 0x0016 }, /* 0x0016 */ - { CODEPAGE_ISNONE, 0x0017, 0x0017 }, /* 0x0017 */ - { CODEPAGE_ISNONE, 0x0018, 0x0018 }, /* 0x0018 */ - { CODEPAGE_ISNONE, 0x0019, 0x0019 }, /* 0x0019 */ - { CODEPAGE_ISNONE, 0x001a, 0x001a }, /* 0x001a */ - { CODEPAGE_ISNONE, 0x001b, 0x001b }, /* 0x001b */ - { CODEPAGE_ISNONE, 0x001c, 0x001c }, /* 0x001c */ - { CODEPAGE_ISNONE, 0x001d, 0x001d }, /* 0x001d */ - { CODEPAGE_ISNONE, 0x001e, 0x001e }, /* 0x001e */ - { CODEPAGE_ISNONE, 0x001f, 0x001f }, /* 0x001f */ - { CODEPAGE_ISNONE, 0x0020, 0x0020 }, /* 0x0020 */ - { CODEPAGE_ISNONE, 0x0021, 0x0021 }, /* 0x0021 */ - { CODEPAGE_ISNONE, 0x0022, 0x0022 }, /* 0x0022 */ - { CODEPAGE_ISNONE, 0x0023, 0x0023 }, /* 0x0023 */ - { CODEPAGE_ISNONE, 0x0024, 0x0024 }, /* 0x0024 */ - { CODEPAGE_ISNONE, 0x0025, 0x0025 }, /* 0x0025 */ - { CODEPAGE_ISNONE, 0x0026, 0x0026 }, /* 0x0026 */ - { CODEPAGE_ISNONE, 0x0027, 0x0027 }, /* 0x0027 */ - { CODEPAGE_ISNONE, 0x0028, 0x0028 }, /* 0x0028 */ - { CODEPAGE_ISNONE, 0x0029, 0x0029 }, /* 0x0029 */ - { CODEPAGE_ISNONE, 0x002a, 0x002a }, /* 0x002a */ - { CODEPAGE_ISNONE, 0x002b, 0x002b }, /* 0x002b */ - { CODEPAGE_ISNONE, 0x002c, 0x002c }, /* 0x002c */ - { CODEPAGE_ISNONE, 0x002d, 0x002d }, /* 0x002d */ - { CODEPAGE_ISNONE, 0x002e, 0x002e }, /* 0x002e */ - { CODEPAGE_ISNONE, 0x002f, 0x002f }, /* 0x002f */ - { CODEPAGE_ISNONE, 0x0030, 0x0030 }, /* 0x0030 */ - { CODEPAGE_ISNONE, 0x0031, 0x0031 }, /* 0x0031 */ - { CODEPAGE_ISNONE, 0x0032, 0x0032 }, /* 0x0032 */ - { CODEPAGE_ISNONE, 0x0033, 0x0033 }, /* 0x0033 */ - { CODEPAGE_ISNONE, 0x0034, 0x0034 }, /* 0x0034 */ - { CODEPAGE_ISNONE, 0x0035, 0x0035 }, /* 0x0035 */ - { CODEPAGE_ISNONE, 0x0036, 0x0036 }, /* 0x0036 */ - { CODEPAGE_ISNONE, 0x0037, 0x0037 }, /* 0x0037 */ - { CODEPAGE_ISNONE, 0x0038, 0x0038 }, /* 0x0038 */ - { CODEPAGE_ISNONE, 0x0039, 0x0039 }, /* 0x0039 */ - { CODEPAGE_ISNONE, 0x003a, 0x003a }, /* 0x003a */ - { CODEPAGE_ISNONE, 0x003b, 0x003b }, /* 0x003b */ - { CODEPAGE_ISNONE, 0x003c, 0x003c }, /* 0x003c */ - { CODEPAGE_ISNONE, 0x003d, 0x003d }, /* 0x003d */ - { CODEPAGE_ISNONE, 0x003e, 0x003e }, /* 0x003e */ - { CODEPAGE_ISNONE, 0x003f, 0x003f }, /* 0x003f */ - { CODEPAGE_ISNONE, 0x0040, 0x0040 }, /* 0x0040 */ - { CODEPAGE_ISUPPER, 0x0041, 0x0061 }, /* 0x0041 */ - { CODEPAGE_ISUPPER, 0x0042, 0x0062 }, /* 0x0042 */ - { CODEPAGE_ISUPPER, 0x0043, 0x0063 }, /* 0x0043 */ - { CODEPAGE_ISUPPER, 0x0044, 0x0064 }, /* 0x0044 */ - { CODEPAGE_ISUPPER, 0x0045, 0x0065 }, /* 0x0045 */ - { CODEPAGE_ISUPPER, 0x0046, 0x0066 }, /* 0x0046 */ - { CODEPAGE_ISUPPER, 0x0047, 0x0067 }, /* 0x0047 */ - { CODEPAGE_ISUPPER, 0x0048, 0x0068 }, /* 0x0048 */ - { CODEPAGE_ISUPPER, 0x0049, 0x0069 }, /* 0x0049 */ - { CODEPAGE_ISUPPER, 0x004a, 0x006a }, /* 0x004a */ - { CODEPAGE_ISUPPER, 0x004b, 0x006b }, /* 0x004b */ - { CODEPAGE_ISUPPER, 0x004c, 0x006c }, /* 0x004c */ - { CODEPAGE_ISUPPER, 0x004d, 0x006d }, /* 0x004d */ - { CODEPAGE_ISUPPER, 0x004e, 0x006e }, /* 0x004e */ - { CODEPAGE_ISUPPER, 0x004f, 0x006f }, /* 0x004f */ - { CODEPAGE_ISUPPER, 0x0050, 0x0070 }, /* 0x0050 */ - { CODEPAGE_ISUPPER, 0x0051, 0x0071 }, /* 0x0051 */ - { CODEPAGE_ISUPPER, 0x0052, 0x0072 }, /* 0x0052 */ - { CODEPAGE_ISUPPER, 0x0053, 0x0073 }, /* 0x0053 */ - { CODEPAGE_ISUPPER, 0x0054, 0x0074 }, /* 0x0054 */ - { CODEPAGE_ISUPPER, 0x0055, 0x0075 }, /* 0x0055 */ - { CODEPAGE_ISUPPER, 0x0056, 0x0076 }, /* 0x0056 */ - { CODEPAGE_ISUPPER, 0x0057, 0x0077 }, /* 0x0057 */ - { CODEPAGE_ISUPPER, 0x0058, 0x0078 }, /* 0x0058 */ - { CODEPAGE_ISUPPER, 0x0059, 0x0079 }, /* 0x0059 */ - { CODEPAGE_ISUPPER, 0x005a, 0x007a }, /* 0x005a */ - { CODEPAGE_ISNONE, 0x005b, 0x005b }, /* 0x005b */ - { CODEPAGE_ISNONE, 0x005c, 0x005c }, /* 0x005c */ - { CODEPAGE_ISNONE, 0x005d, 0x005d }, /* 0x005d */ - { CODEPAGE_ISNONE, 0x005e, 0x005e }, /* 0x005e */ - { CODEPAGE_ISNONE, 0x005f, 0x005f }, /* 0x005f */ - { CODEPAGE_ISNONE, 0x0060, 0x0060 }, /* 0x0060 */ - { CODEPAGE_ISLOWER, 0x0041, 0x0061 }, /* 0x0061 */ - { CODEPAGE_ISLOWER, 0x0042, 0x0062 }, /* 0x0062 */ - { CODEPAGE_ISLOWER, 0x0043, 0x0063 }, /* 0x0063 */ - { CODEPAGE_ISLOWER, 0x0044, 0x0064 }, /* 0x0064 */ - { CODEPAGE_ISLOWER, 0x0045, 0x0065 }, /* 0x0065 */ - { CODEPAGE_ISLOWER, 0x0046, 0x0066 }, /* 0x0066 */ - { CODEPAGE_ISLOWER, 0x0047, 0x0067 }, /* 0x0067 */ - { CODEPAGE_ISLOWER, 0x0048, 0x0068 }, /* 0x0068 */ - { CODEPAGE_ISLOWER, 0x0049, 0x0069 }, /* 0x0069 */ - { CODEPAGE_ISLOWER, 0x004a, 0x006a }, /* 0x006a */ - { CODEPAGE_ISLOWER, 0x004b, 0x006b }, /* 0x006b */ - { CODEPAGE_ISLOWER, 0x004c, 0x006c }, /* 0x006c */ - { CODEPAGE_ISLOWER, 0x004d, 0x006d }, /* 0x006d */ - { CODEPAGE_ISLOWER, 0x004e, 0x006e }, /* 0x006e */ - { CODEPAGE_ISLOWER, 0x004f, 0x006f }, /* 0x006f */ - { CODEPAGE_ISLOWER, 0x0050, 0x0070 }, /* 0x0070 */ - { CODEPAGE_ISLOWER, 0x0051, 0x0071 }, /* 0x0071 */ - { CODEPAGE_ISLOWER, 0x0052, 0x0072 }, /* 0x0072 */ - { CODEPAGE_ISLOWER, 0x0053, 0x0073 }, /* 0x0073 */ - { CODEPAGE_ISLOWER, 0x0054, 0x0074 }, /* 0x0074 */ - { CODEPAGE_ISLOWER, 0x0055, 0x0075 }, /* 0x0075 */ - { CODEPAGE_ISLOWER, 0x0056, 0x0076 }, /* 0x0076 */ - { CODEPAGE_ISLOWER, 0x0057, 0x0077 }, /* 0x0077 */ - { CODEPAGE_ISLOWER, 0x0058, 0x0078 }, /* 0x0078 */ - { CODEPAGE_ISLOWER, 0x0059, 0x0079 }, /* 0x0079 */ - { CODEPAGE_ISLOWER, 0x005a, 0x007a }, /* 0x007a */ - { CODEPAGE_ISNONE, 0x007b, 0x007b }, /* 0x007b */ - { CODEPAGE_ISNONE, 0x007c, 0x007c }, /* 0x007c */ - { CODEPAGE_ISNONE, 0x007d, 0x007d }, /* 0x007d */ - { CODEPAGE_ISNONE, 0x007e, 0x007e }, /* 0x007e */ - { CODEPAGE_ISNONE, 0x007f, 0x007f }, /* 0x007f */ - { CODEPAGE_ISNONE, 0x0080, 0x0080 }, /* 0x0080 */ - { CODEPAGE_ISNONE, 0x0081, 0x0081 }, /* 0x0081 */ - { CODEPAGE_ISNONE, 0x0082, 0x0082 }, /* 0x0082 */ - { CODEPAGE_ISNONE, 0x0083, 0x0083 }, /* 0x0083 */ - { CODEPAGE_ISNONE, 0x0084, 0x0084 }, /* 0x0084 */ - { CODEPAGE_ISNONE, 0x0085, 0x0085 }, /* 0x0085 */ - { CODEPAGE_ISNONE, 0x0086, 0x0086 }, /* 0x0086 */ - { CODEPAGE_ISNONE, 0x0087, 0x0087 }, /* 0x0087 */ - { CODEPAGE_ISNONE, 0x0088, 0x0088 }, /* 0x0088 */ - { CODEPAGE_ISNONE, 0x0089, 0x0089 }, /* 0x0089 */ - { CODEPAGE_ISNONE, 0x008a, 0x008a }, /* 0x008a */ - { CODEPAGE_ISNONE, 0x008b, 0x008b }, /* 0x008b */ - { CODEPAGE_ISNONE, 0x008c, 0x008c }, /* 0x008c */ - { CODEPAGE_ISNONE, 0x008d, 0x008d }, /* 0x008d */ - { CODEPAGE_ISNONE, 0x008e, 0x008e }, /* 0x008e */ - { CODEPAGE_ISNONE, 0x008f, 0x008f }, /* 0x008f */ - { CODEPAGE_ISNONE, 0x0090, 0x0090 }, /* 0x0090 */ - { CODEPAGE_ISNONE, 0x0091, 0x0091 }, /* 0x0091 */ - { CODEPAGE_ISNONE, 0x0092, 0x0092 }, /* 0x0092 */ - { CODEPAGE_ISNONE, 0x0093, 0x0093 }, /* 0x0093 */ - { CODEPAGE_ISNONE, 0x0094, 0x0094 }, /* 0x0094 */ - { CODEPAGE_ISNONE, 0x0095, 0x0095 }, /* 0x0095 */ - { CODEPAGE_ISNONE, 0x0096, 0x0096 }, /* 0x0096 */ - { CODEPAGE_ISNONE, 0x0097, 0x0097 }, /* 0x0097 */ - { CODEPAGE_ISNONE, 0x0098, 0x0098 }, /* 0x0098 */ - { CODEPAGE_ISNONE, 0x0099, 0x0099 }, /* 0x0099 */ - { CODEPAGE_ISNONE, 0x009a, 0x009a }, /* 0x009a */ - { CODEPAGE_ISNONE, 0x009b, 0x009b }, /* 0x009b */ - { CODEPAGE_ISNONE, 0x009c, 0x009c }, /* 0x009c */ - { CODEPAGE_ISNONE, 0x009d, 0x009d }, /* 0x009d */ - { CODEPAGE_ISNONE, 0x009e, 0x009e }, /* 0x009e */ - { CODEPAGE_ISNONE, 0x009f, 0x009f }, /* 0x009f */ - { CODEPAGE_ISNONE, 0x00a0, 0x00a0 }, /* 0x00a0 */ - { CODEPAGE_ISUPPER, 0x00a1, 0x00b1 }, /* 0x00a1 */ - { CODEPAGE_ISUPPER, 0x00a2, 0x00b2 }, /* 0x00a2 */ - { CODEPAGE_ISUPPER, 0x00a3, 0x00b3 }, /* 0x00a3 */ - { CODEPAGE_ISUPPER, 0x00a4, 0x00b4 }, /* 0x00a4 */ - { CODEPAGE_ISUPPER, 0x00a5, 0x00b5 }, /* 0x00a5 */ - { CODEPAGE_ISUPPER, 0x00a6, 0x00b6 }, /* 0x00a6 */ - { CODEPAGE_ISNONE, 0x00a7, 0x00a7 }, /* 0x00a7 */ - { CODEPAGE_ISUPPER, 0x00a8, 0x00b8 }, /* 0x00a8 */ - { CODEPAGE_ISUPPER, 0x00a9, 0x00b9 }, /* 0x00a9 */ - { CODEPAGE_ISUPPER, 0x00aa, 0x00ba }, /* 0x00aa */ - { CODEPAGE_ISUPPER, 0x00ab, 0x00bb }, /* 0x00ab */ - { CODEPAGE_ISUPPER, 0x00ac, 0x00bc }, /* 0x00ac */ - { CODEPAGE_ISNONE, 0x00ad, 0x00ad }, /* 0x00ad */ - { CODEPAGE_ISUPPER, 0x00ae, 0x00be }, /* 0x00ae */ - { CODEPAGE_ISUPPER, 0x00af, 0x00bf }, /* 0x00af */ - { CODEPAGE_ISNONE, 0x00b0, 0x00b0 }, /* 0x00b0 */ - { CODEPAGE_ISLOWER, 0x00a1, 0x00b1 }, /* 0x00b1 */ - { CODEPAGE_ISLOWER, 0x00a2, 0x00b2 }, /* 0x00b2 */ - { CODEPAGE_ISLOWER, 0x00a3, 0x00b3 }, /* 0x00b3 */ - { CODEPAGE_ISLOWER, 0x00a4, 0x00b4 }, /* 0x00b4 */ - { CODEPAGE_ISLOWER, 0x00a5, 0x00b5 }, /* 0x00b5 */ - { CODEPAGE_ISLOWER, 0x00a6, 0x00b6 }, /* 0x00b6 */ - { CODEPAGE_ISNONE, 0x00b7, 0x00b7 }, /* 0x00b7 */ - { CODEPAGE_ISLOWER, 0x00a8, 0x00b8 }, /* 0x00b8 */ - { CODEPAGE_ISLOWER, 0x00a9, 0x00b9 }, /* 0x00b9 */ - { CODEPAGE_ISLOWER, 0x00aa, 0x00ba }, /* 0x00ba */ - { CODEPAGE_ISLOWER, 0x00ab, 0x00bb }, /* 0x00bb */ - { CODEPAGE_ISLOWER, 0x00ac, 0x00bc }, /* 0x00bc */ - { CODEPAGE_ISNONE, 0x00bd, 0x00bd }, /* 0x00bd */ - { CODEPAGE_ISLOWER, 0x00ae, 0x00be }, /* 0x00be */ - { CODEPAGE_ISLOWER, 0x00af, 0x00bf }, /* 0x00bf */ - { CODEPAGE_ISUPPER, 0x00c0, 0x00e0 }, /* 0x00c0 */ - { CODEPAGE_ISUPPER, 0x00c1, 0x00e1 }, /* 0x00c1 */ - { CODEPAGE_ISUPPER, 0x00c2, 0x00e2 }, /* 0x00c2 */ - { CODEPAGE_ISUPPER, 0x00c3, 0x00e3 }, /* 0x00c3 */ - { CODEPAGE_ISUPPER, 0x00c4, 0x00e4 }, /* 0x00c4 */ - { CODEPAGE_ISUPPER, 0x00c5, 0x00e5 }, /* 0x00c5 */ - { CODEPAGE_ISUPPER, 0x00c6, 0x00e6 }, /* 0x00c6 */ - { CODEPAGE_ISUPPER, 0x00c7, 0x00e7 }, /* 0x00c7 */ - { CODEPAGE_ISUPPER, 0x00c8, 0x00e8 }, /* 0x00c8 */ - { CODEPAGE_ISUPPER, 0x00c9, 0x00e9 }, /* 0x00c9 */ - { CODEPAGE_ISUPPER, 0x00ca, 0x00ea }, /* 0x00ca */ - { CODEPAGE_ISUPPER, 0x00cb, 0x00eb }, /* 0x00cb */ - { CODEPAGE_ISUPPER, 0x00cc, 0x00ec }, /* 0x00cc */ - { CODEPAGE_ISUPPER, 0x00cd, 0x00ed }, /* 0x00cd */ - { CODEPAGE_ISUPPER, 0x00ce, 0x00ee }, /* 0x00ce */ - { CODEPAGE_ISUPPER, 0x00cf, 0x00ef }, /* 0x00cf */ - { CODEPAGE_ISNONE, 0x00d0, 0x00d0 }, /* 0x00d0 */ - { CODEPAGE_ISUPPER, 0x00d1, 0x00f1 }, /* 0x00d1 */ - { CODEPAGE_ISUPPER, 0x00d2, 0x00f2 }, /* 0x00d2 */ - { CODEPAGE_ISUPPER, 0x00d3, 0x00f3 }, /* 0x00d3 */ - { CODEPAGE_ISUPPER, 0x00d4, 0x00f4 }, /* 0x00d4 */ - { CODEPAGE_ISUPPER, 0x00d5, 0x00f5 }, /* 0x00d5 */ - { CODEPAGE_ISUPPER, 0x00d6, 0x00f6 }, /* 0x00d6 */ - { CODEPAGE_ISUPPER, 0x00d7, 0x00f7 }, /* 0x00d7 */ - { CODEPAGE_ISUPPER, 0x00d8, 0x00f8 }, /* 0x00d8 */ - { CODEPAGE_ISUPPER, 0x00d9, 0x00f9 }, /* 0x00d9 */ - { CODEPAGE_ISUPPER, 0x00da, 0x00fa }, /* 0x00da */ - { CODEPAGE_ISUPPER, 0x00db, 0x00fb }, /* 0x00db */ - { CODEPAGE_ISUPPER, 0x00dc, 0x00fc }, /* 0x00dc */ - { CODEPAGE_ISUPPER, 0x00dd, 0x00fd }, /* 0x00dd */ - { CODEPAGE_ISUPPER, 0x00de, 0x00fe }, /* 0x00de */ - { CODEPAGE_ISNONE, 0x00df, 0x00df }, /* 0x00df */ - { CODEPAGE_ISLOWER, 0x00c0, 0x00e0 }, /* 0x00e0 */ - { CODEPAGE_ISLOWER, 0x00c1, 0x00e1 }, /* 0x00e1 */ - { CODEPAGE_ISLOWER, 0x00c2, 0x00e2 }, /* 0x00e2 */ - { CODEPAGE_ISLOWER, 0x00c3, 0x00e3 }, /* 0x00e3 */ - { CODEPAGE_ISLOWER, 0x00c4, 0x00e4 }, /* 0x00e4 */ - { CODEPAGE_ISLOWER, 0x00c5, 0x00e5 }, /* 0x00e5 */ - { CODEPAGE_ISLOWER, 0x00c6, 0x00e6 }, /* 0x00e6 */ - { CODEPAGE_ISLOWER, 0x00c7, 0x00e7 }, /* 0x00e7 */ - { CODEPAGE_ISLOWER, 0x00c8, 0x00e8 }, /* 0x00e8 */ - { CODEPAGE_ISLOWER, 0x00c9, 0x00e9 }, /* 0x00e9 */ - { CODEPAGE_ISLOWER, 0x00ca, 0x00ea }, /* 0x00ea */ - { CODEPAGE_ISLOWER, 0x00cb, 0x00eb }, /* 0x00eb */ - { CODEPAGE_ISLOWER, 0x00cc, 0x00ec }, /* 0x00ec */ - { CODEPAGE_ISLOWER, 0x00cd, 0x00ed }, /* 0x00ed */ - { CODEPAGE_ISLOWER, 0x00ce, 0x00ee }, /* 0x00ee */ - { CODEPAGE_ISLOWER, 0x00cf, 0x00ef }, /* 0x00ef */ - { CODEPAGE_ISNONE, 0x00f0, 0x00f0 }, /* 0x00f0 */ - { CODEPAGE_ISLOWER, 0x00d1, 0x00f1 }, /* 0x00f1 */ - { CODEPAGE_ISLOWER, 0x00d2, 0x00f2 }, /* 0x00f2 */ - { CODEPAGE_ISLOWER, 0x00d3, 0x00f3 }, /* 0x00f3 */ - { CODEPAGE_ISLOWER, 0x00d4, 0x00f4 }, /* 0x00f4 */ - { CODEPAGE_ISLOWER, 0x00d5, 0x00f5 }, /* 0x00f5 */ - { CODEPAGE_ISLOWER, 0x00d6, 0x00f6 }, /* 0x00f6 */ - { CODEPAGE_ISLOWER, 0x00d7, 0x00f7 }, /* 0x00f7 */ - { CODEPAGE_ISLOWER, 0x00d8, 0x00f8 }, /* 0x00f8 */ - { CODEPAGE_ISLOWER, 0x00d9, 0x00f9 }, /* 0x00f9 */ - { CODEPAGE_ISLOWER, 0x00da, 0x00fa }, /* 0x00fa */ - { CODEPAGE_ISLOWER, 0x00db, 0x00fb }, /* 0x00fb */ - { CODEPAGE_ISLOWER, 0x00dc, 0x00fc }, /* 0x00fc */ - { CODEPAGE_ISLOWER, 0x00dd, 0x00fd }, /* 0x00fd */ - { CODEPAGE_ISLOWER, 0x00de, 0x00fe }, /* 0x00fe */ - { CODEPAGE_ISNONE, 0x00ff, 0x00ff } /* 0x00ff */ -}; - -#ifdef __cplusplus -} -#endif - -#endif /* _SMBSRV_CP_LATIN6_H */ diff --git a/usr/src/uts/common/smbsrv/cp_unicode.h b/usr/src/uts/common/smbsrv/cp_unicode.h index e2f1eb83f9..187aadd34e 100644 --- a/usr/src/uts/common/smbsrv/cp_unicode.h +++ b/usr/src/uts/common/smbsrv/cp_unicode.h @@ -19,26 +19,24 @@ * CDDL HEADER END */ /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #ifndef _SMBSRV_CP_UNICODE_H #define _SMBSRV_CP_UNICODE_H -#pragma ident "%Z%%M% %I% %E% SMI" - -#include <smbsrv/smb_i18n.h> +#include <smbsrv/string.h> #ifdef __cplusplus extern "C" { #endif struct unicode_cp { - mts_wchar_t val; - mts_wchar_t ctype; - mts_wchar_t lower; - mts_wchar_t upper; + smb_wchar_t val; + smb_wchar_t ctype; + smb_wchar_t lower; + smb_wchar_t upper; }; struct unicode_cp a_unicode[] = { diff --git a/usr/src/uts/common/smbsrv/cp_usascii.h b/usr/src/uts/common/smbsrv/cp_usascii.h index d72c28bb88..63e830ca03 100644 --- a/usr/src/uts/common/smbsrv/cp_usascii.h +++ b/usr/src/uts/common/smbsrv/cp_usascii.h @@ -19,33 +19,25 @@ * CDDL HEADER END */ /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #ifndef _SMBSRV_CP_USASCII_H #define _SMBSRV_CP_USASCII_H -#pragma ident "%Z%%M% %I% %E% SMI" - /* - * This file specifies a codepage mapping for a given character set as - * specified below: - * - * This is the codepage for the US-ASCII Character Set - * This codepage defines values for the characters of the - * written alphabet of the English language. The US-ASCII - * character set is used in the USA. It is a proper - * subset of the Latin-1 character set. + * This file specifies the codepage mapping the US-ASCII Character Set, + * which is a subset of the Latin-1 character set. */ -#include <smbsrv/codepage.h> +#include <smbsrv/string.h> #ifdef __cplusplus extern "C" { #endif -codepage_t usascii_codepage[256] = { +smb_codepage_t usascii_codepage[256] = { { CODEPAGE_ISNONE, 0x0000, 0x0000 }, /* 0x0000 */ { CODEPAGE_ISNONE, 0x0001, 0x0001 }, /* 0x0001 */ { CODEPAGE_ISNONE, 0x0002, 0x0002 }, /* 0x0002 */ diff --git a/usr/src/uts/common/smbsrv/ctype.h b/usr/src/uts/common/smbsrv/ctype.h deleted file mode 100644 index 284db64419..0000000000 --- a/usr/src/uts/common/smbsrv/ctype.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SMBSRV_CTYPE_H -#define _SMBSRV_CTYPE_H - -#pragma ident "%Z%%M% %I% %E% SMI" - -#include <smbsrv/codepage.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#define _mts_between(l, c, u) ((l) <= (c) && (c) <= (u)) - -/* - * These macros take non-ascii characters into account. - * Their behavior depends on the codepage that is used. - */ -#define mts_islower(c) codepage_islower((c)) -#define mts_isupper(c) codepage_isupper((c)) -#define mts_tolower(c) codepage_tolower((c)) -#define mts_toupper(c) codepage_toupper((c)) - -#define mts_isalpha(c) (mts_islower(c) || mts_isupper(c)) -#define mts_isdigit(c) _mts_between('0', (c), '9') -#define mts_isalnum(c) (mts_isalpha(c) || mts_isdigit(c)) -#define mts_isxdigit(c) (mts_isdigit(c) || \ - _mts_between('a', (c), 'f') || \ - _mts_between('A', (c), 'F')) -#define mts_isblank(c) ((c) == ' ' || (c) == '\t') -#define mts_isspace(c) ((c) == ' ' || \ - (c) == '\t' || \ - (c) == '\n' || \ - (c) == '\r' || \ - (c) == '\f') -#define mts_isascii(c) (!((c) &~ 0x7F)) - -/* These macros only apply to ASCII */ -#define mts_isalpha_ascii(c) \ - (_mts_between('a', (c), 'z') || _mts_between('A', (c), 'Z')) -#define mts_isalnum_ascii(c) (mts_isalpha_ascii(c) || mts_isdigit(c)) - -/* should it include non-ascii characters ? */ -#define mts_isprint(c) _mts_between('!', (c), '~') -#define mts_iscntrl(c) (((c) >= 0) && ((c) <= 0x1f)) || ((c) == 0x7f)) -#define mts_ispunct(c) (mts_isprint(c) && !mts_isxdigit(c) && !mts_isspace(c)) - -#ifdef __cplusplus -} -#endif - -#endif /* _SMBSRV_CTYPE_H */ diff --git a/usr/src/uts/common/smbsrv/lm.h b/usr/src/uts/common/smbsrv/lm.h deleted file mode 100644 index e1cc28c220..0000000000 --- a/usr/src/uts/common/smbsrv/lm.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - - -#ifndef _SMBSRV_LM_H -#define _SMBSRV_LM_H - -#pragma ident "%Z%%M% %I% %E% SMI" - -/* - * This file provides global Lan Manager definitions. - */ - -#include <smbsrv/wintypes.h> -#include <syslog.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _SMBSRV_LM_H */ diff --git a/usr/src/uts/common/smbsrv/mac_cifs.h b/usr/src/uts/common/smbsrv/mac_cifs.h index 26f0451958..767cf50cd8 100644 --- a/usr/src/uts/common/smbsrv/mac_cifs.h +++ b/usr/src/uts/common/smbsrv/mac_cifs.h @@ -19,15 +19,13 @@ * CDDL HEADER END */ /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #ifndef _SMBSRV_MAC_CIFS_H #define _SMBSRV_MAC_CIFS_H -#pragma ident "%Z%%M% %I% %E% SMI" - /* * This file provides definitions for the Macintosh Extensions for CIFS * interface (see http://www.thursby.com/cifs). @@ -42,7 +40,7 @@ extern "C" { * Macintosh information level extensions. The entire list is presented * here for convenience but for consistency with the existing CIFS * information levels don't use these values directly. Use the SMB_MAC_ - * definitions in cifs.h. + * definitions in smb.h. * * SmbTrans2QueryFsInformation: MAC_QUERY_FS_INFO * SmbTrans2Find{First|Next}2: MAC_FIND_BOTH_HFS_INFO diff --git a/usr/src/uts/common/smbsrv/mbuf.h b/usr/src/uts/common/smbsrv/mbuf.h index 562ef5168f..8f16d6f4ef 100644 --- a/usr/src/uts/common/smbsrv/mbuf.h +++ b/usr/src/uts/common/smbsrv/mbuf.h @@ -67,7 +67,7 @@ #include <sys/types.h> #include <sys/param.h> #include <sys/list.h> -#include <smbsrv/smb_i18n.h> +#include <smbsrv/string.h> #include <smbsrv/alloc.h> #ifdef __cplusplus diff --git a/usr/src/uts/common/smbsrv/msgbuf.h b/usr/src/uts/common/smbsrv/msgbuf.h index 465ba476de..66d03680f1 100644 --- a/usr/src/uts/common/smbsrv/msgbuf.h +++ b/usr/src/uts/common/smbsrv/msgbuf.h @@ -19,15 +19,13 @@ * CDDL HEADER END */ /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #ifndef _SMBSRV_MSGBUF_H #define _SMBSRV_MSGBUF_H -#pragma ident "%Z%%M% %I% %E% SMI" - /* * Definition and interface for smb_msgbuf buffer management. The * smb_msgbuf interface is typically used to encode or decode SMB @@ -36,7 +34,7 @@ */ #include <sys/types.h> -#include <smbsrv/smb_i18n.h> +#include <smbsrv/string.h> #ifdef __cplusplus extern "C" { diff --git a/usr/src/uts/common/smbsrv/ndl/srvsvc.ndl b/usr/src/uts/common/smbsrv/ndl/srvsvc.ndl index 5ce47c7609..f0fa0740c5 100644 --- a/usr/src/uts/common/smbsrv/ndl/srvsvc.ndl +++ b/usr/src/uts/common/smbsrv/ndl/srvsvc.ndl @@ -1299,7 +1299,7 @@ struct mslm_NetNameValidate { */ /* - * Share types for shiX_type fields - duplicated from cifs.h + * Share types for shiX_type fields - duplicated from smb.h */ #ifndef _SHARE_TYPES_DEFINED_ #define _SHARE_TYPES_DEFINED_ diff --git a/usr/src/uts/common/smbsrv/ndr.h b/usr/src/uts/common/smbsrv/ndr.h index 22d33f763f..034d877b19 100644 --- a/usr/src/uts/common/smbsrv/ndr.h +++ b/usr/src/uts/common/smbsrv/ndr.h @@ -46,7 +46,7 @@ #include <string.h> #include <smbsrv/wintypes.h> #include <smbsrv/ndl/rpcpdu.ndl> -#include <smbsrv/smb_i18n.h> +#include <smbsrv/string.h> #endif #ifdef __cplusplus @@ -465,8 +465,8 @@ int ndr_inner_pointer(ndr_ref_t *); int ndr_inner_reference(ndr_ref_t *); int ndr_inner_array(ndr_ref_t *); -size_t ndr_mbstowcs(struct ndr_stream *, mts_wchar_t *, const char *, size_t); -int ndr_mbtowc(struct ndr_stream *, mts_wchar_t *, const char *, size_t); +size_t ndr_mbstowcs(struct ndr_stream *, smb_wchar_t *, const char *, size_t); +int ndr_mbtowc(struct ndr_stream *, smb_wchar_t *, const char *, size_t); void nds_bswap(void *src, void *dst, size_t len); diff --git a/usr/src/uts/common/smbsrv/nmpipes.h b/usr/src/uts/common/smbsrv/nmpipes.h index f0cd81cc3a..6a75fdd0f8 100644 --- a/usr/src/uts/common/smbsrv/nmpipes.h +++ b/usr/src/uts/common/smbsrv/nmpipes.h @@ -19,15 +19,13 @@ * CDDL HEADER END */ /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #ifndef _SMBSRV_NMPIPES_H #define _SMBSRV_NMPIPES_H -#pragma ident "%Z%%M% %I% %E% SMI" - /* * This file defines pre-defined and system common named pipes. * @@ -111,7 +109,7 @@ extern "C" { #define PIPE_REPL "\\PIPE\\repl" /* - * Named pipe function codes (NTDDK cifs.h). + * Named pipe function codes (NTDDK). */ #define TRANS_SET_NMPIPE_STATE 0x01 #define TRANS_RAW_READ_NMPIPE 0x11 diff --git a/usr/src/uts/common/smbsrv/oem.h b/usr/src/uts/common/smbsrv/oem.h deleted file mode 100644 index af30711dac..0000000000 --- a/usr/src/uts/common/smbsrv/oem.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -/* - * Support for oem <-> unicode translations. - */ - -#ifndef _SMBSRV_OEM_H -#define _SMBSRV_OEM_H - -#pragma ident "%Z%%M% %I% %E% SMI" - -#include <smbsrv/smb_i18n.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#define oem_default_smb_cpid OEM_CP_IND_850 -#define oem_default_telnet_cpid OEM_CP_IND_1252 -#define oem_default_language "english" - -/* - * The id should corresponds to oemcp_table in os/library/oem.c. - */ -typedef enum codepage_id { - OEM_CP_IND_850 = 0, - OEM_CP_IND_950, - OEM_CP_IND_1252, - OEM_CP_IND_949, - OEM_CP_IND_936, - OEM_CP_IND_932, - OEM_CP_IND_852, - OEM_CP_IND_1250, - OEM_CP_IND_1253, - OEM_CP_IND_737, - OEM_CP_IND_1254, - OEM_CP_IND_857, - OEM_CP_IND_1251, - OEM_CP_IND_866, - OEM_CP_IND_1255, - OEM_CP_IND_862, - OEM_CP_IND_1256, - OEM_CP_IND_720, - NO_OF_OEM_CP_INDS -} codepage_id_t; - - -typedef struct language { - char *language; - unsigned int smbIndex; - unsigned int telnetIndex; -} language; - - -/* - * cpid = the cpid of the oemcp_table that oempage_t belong to. - * value = the conversion values - */ -typedef struct oempage_t { - unsigned int cpid; - mts_wchar_t *value; -} oempage_t; - -/* - * Private functions for opmlang.c - */ -extern int oem_codepage_init(unsigned int); -extern void oem_codepage_free(unsigned int); -extern language *oem_get_lang_table(void); -extern int oem_no_of_languages(void); -#define NO_OF_LANGUAGES oem_no_of_languages() - -/* - * Public functions - */ -extern size_t unicodestooems(char *, const mts_wchar_t *, size_t, unsigned int); -extern size_t oemstounicodes(mts_wchar_t *, const char *, size_t, unsigned int); - -#ifdef __cplusplus -} -#endif - -#endif /* _SMBSRV_OEM_H */ diff --git a/usr/src/uts/common/smbsrv/smb.h b/usr/src/uts/common/smbsrv/smb.h index 1214f041d7..af502643e6 100644 --- a/usr/src/uts/common/smbsrv/smb.h +++ b/usr/src/uts/common/smbsrv/smb.h @@ -19,43 +19,41 @@ * CDDL HEADER END */ /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #ifndef _SMBSRV_SMB_H #define _SMBSRV_SMB_H -/* - * SMB definitions and interfaces, mostly defined in the CIFS spec. - */ - -#pragma ident "%Z%%M% %I% %E% SMI" /* - * SMB definitions and interfaces, mostly defined in the CIFS spec. + * SMB definitions and interfaces, mostly defined in the SMB and CIFS specs. */ - #ifdef _KERNEL #include <sys/types.h> #endif -#include <smbsrv/smb_i18n.h> +#include <smbsrv/string.h> #include <smbsrv/msgbuf.h> +#include <smbsrv/ntstatus.h> +#include <smbsrv/nterror.h> +#include <smbsrv/doserror.h> +#include <smbsrv/ntaccess.h> -#ifdef __cplusplus -extern "C" { -#endif - +/* + * Macintosh Extensions for CIFS + */ +#include <smbsrv/mac_cifs.h> /* - * Typedefs from CIFS section 3.2 + * NT Installable File System (IFS) interface. */ -typedef unsigned char UCHAR; -typedef unsigned short USHORT; -typedef uint32_t ULONG; -typedef int32_t LONG; +#include <smbsrv/ntifs.h> +#ifdef __cplusplus +extern "C" { +#endif /* * The msgbuf format and length of an SMB header. @@ -65,6 +63,18 @@ typedef int32_t LONG; #define SMB_HEADER_LEN 32 #define SMB_SIG_SIZE 8 /* SMB signature size */ +#define SMB_HEADER_ED_FMT "Mbbbwbww8c2.wwww" +#define SMB_HEADER_ED_LEN (4+1+1+1+2+1+2+12+2+2+2+2) +#define SMB_TRANSHDR_ED_FMT "wwwwb.wl2.wwwwb." +#define SMB_TRANSHDR_ED_LEN (2+2+2+2+1+1+2+4+2+2+2+2+2+1+1) +#define SMB_TRANSSHDR_ED_FMT "wwwwwwwww" +#define SMB_TRANSSHDR_ED_LEN (2+2+2+2+2+2+2+2) +#define SMB_TRANS2SHDR_ED_FMT "wwwwwwwww" +#define SMB_TRANS2SHDR_ED_LEN (2+2+2+2+2+2+2+2+2) +/* There is something wrong with this. Should be 38 bytes. It is 37 bytes */ +#define SMB_NT_TRANSHDR_ED_FMT "b2.llllllllbw" +#define SMB_NT_TRANSHDR_ED_LEN (1+2+4+4+4+4+4+4+4+4+1+2) + /* * CIFS definition for the SMB header (CIFS Section 3.2). Note that the * pid_high field is not documented in the 1997 CIFS specificaction. This @@ -73,75 +83,43 @@ typedef int32_t LONG; * ready structure. */ typedef struct smb_hdr { - UCHAR protocol[4]; - UCHAR command; + uint8_t protocol[4]; + uint8_t command; union { struct { - UCHAR error_class; - UCHAR reserved; - USHORT error; + uint8_t error_class; + uint8_t reserved; + uint16_t error; } dos_error; - ULONG ntstatus; - }status; + uint32_t ntstatus; + } status; - UCHAR flags; - USHORT flags2; - USHORT pid_high; + uint8_t flags; + uint16_t flags2; + uint16_t pid_high; union { - USHORT pad[5]; + uint16_t pad[5]; struct { - USHORT reserved; - UCHAR security_sig[SMB_SIG_SIZE]; + uint16_t reserved; + uint8_t security_sig[SMB_SIG_SIZE]; } extra; } extra; - USHORT tid; - USHORT pid; - USHORT uid; - USHORT mid; + uint16_t tid; + uint16_t pid; + uint16_t uid; + uint16_t mid; } smb_hdr_t; - /* * Encoded or packed SMB header in network ready format. */ typedef struct smb_hdrbuf { - unsigned char hdr[SMB_HEADER_LEN]; + uint8_t hdr[SMB_HEADER_LEN]; } smb_hdrbuf_t; -typedef struct smb_nethdr { - uint8_t sh_protocol[4]; - uint8_t sh_command; - - union { - struct { - uint8_t sh_error_class; - uint8_t sh_reserved; - uint8_t sh_error[2]; - } dos_error; - uint8_t sh_ntstatus[4]; - } status; - - uint8_t sh_flags; - uint8_t sh_flags2[2]; - uint8_t sh_pid_high[2]; - - union { - uint8_t sh_pad[10]; - struct { - uint8_t sh_reserved[2]; - uint8_t sh_security_sig[SMB_SIG_SIZE]; - } extra; - } extra; - - uint8_t sh_tid[2]; - uint8_t sh_pid[2]; - uint8_t sh_uid[2]; - uint8_t sh_mid[2]; -} smb_nethdr_t; - /* * Protocol magic value as a 32-bit. This will be 0xff 0x53 0x4d 0x42 on * the wire. @@ -155,118 +133,1210 @@ typedef struct smb_nethdr { * month range is 1-12, and the day range is 1-31. */ typedef struct smb_date { - USHORT day : 5; - USHORT month : 4; - USHORT year : 7; + uint16_t day : 5; + uint16_t month : 4; + uint16_t year : 7; } smb_date_t; - /* * The hours range is 0-23, the minutes range is 0-59 and the two_sec * range is 0-29. */ typedef struct smb_time { - USHORT two_sec : 5; - USHORT minutes : 6; - USHORT hours : 5; + uint16_t two_sec : 5; + uint16_t minutes : 6; + uint16_t hours : 5; } smb_time_t; - /* * This is a 64-bit signed absolute time representing 100ns increments. * A positive value represents the absolute time since 1601AD. A * negative value represents a context specific relative time. */ typedef struct smb_time2 { - ULONG low_time; - LONG high_time; + uint32_t low_time; + int32_t high_time; } smb_time2_t; - /* * The number of seconds since Jan 1, 1970, 00:00:00.0. */ typedef uint32_t smb_utime_t; - #define SMB_LM_NEGOTIATE_WORDCNT 13 #define SMB_NT_NEGOTIATE_WORDCNT 17 +#define SMB_NAME83_EXTLEN 3 +#define SMB_NAME83_BASELEN 8 +#define SMB_NAME83_LEN 12 -typedef struct smb_nt_negotiate_rsp { - UCHAR word_count; - USHORT dialect_index; - UCHAR security_mode; - USHORT max_mpx; - USHORT max_vc; - ULONG max_buffer_size; - ULONG max_raw_size; - ULONG session_key; - ULONG capabilities; - ULONG time_low; - ULONG time_high; - USHORT server_tz; - UCHAR security_len; - USHORT byte_count; - UCHAR *guid; - UCHAR *challenge; - UCHAR *oem_domain; -} smb_nt_negotiate_rsp_t; - -/* - * SMB_COM_TRANSACTION - */ -typedef struct smb_transact_rsp { - UCHAR WordCount; /* Count of data bytes */ - /* value = 10 + SetupCount */ - USHORT TotalParamCount; /* Total parameter bytes being sent */ - USHORT TotalDataCount; /* Total data bytes being sent */ - USHORT Reserved; - USHORT ParamCount; /* Parameter bytes sent this buffer */ - USHORT ParamOffset; /* Offset (from hdr start) to params */ - USHORT ParamDisplacement; /* Displacement of these param bytes */ - USHORT DataCount; /* Data bytes sent this buffer */ - USHORT DataOffset; /* Offset (from hdr start) to data */ - USHORT DataDisplacement; /* Displacement of these data bytes */ - UCHAR SetupCount; /* Count of setup words */ - USHORT BCC; -#if 0 - UCHAR Reserved2; /* Reserved (pad above to word) */ - UCHAR Buffer[1]; /* Buffer containing: */ - USHORT Setup[]; /* Setup words (# = SetupWordCount) */ - USHORT ByteCount; /* Count of data bytes */ - UCHAR Pad[]; /* Pad to SHORT or LONG */ - UCHAR Params[]; /* Param. bytes (# = ParamCount) */ - UCHAR Pad1[]; /* Pad to SHORT or LONG */ - UCHAR Data[]; /* Data bytes (# = DataCount) */ -#endif -} smb_transact_rsp_t; - -/* - * SMBreadX - */ -typedef struct smb_read_andx_rsp { - UCHAR WordCount; - UCHAR AndXCmd; - UCHAR AndXReserved; - USHORT AndXOffset; - USHORT Remaining; - USHORT DataCompactionMode; - USHORT Reserved; - USHORT DataLength; - USHORT DataOffset; - ULONG DataLengthHigh; - USHORT Reserved2[3]; - USHORT ByteCount; -#if 0 - UCHAR Pad[]; - UCHAR Data[]; -#endif -} smb_read_andx_rsp_t; +/* Share types */ +#ifndef _SHARE_TYPES_DEFINED_ +#define _SHARE_TYPES_DEFINED_ +#define STYPE_DISKTREE 0x00000000 +#define STYPE_PRINTQ 0x00000001 +#define STYPE_DEVICE 0x00000002 +#define STYPE_IPC 0x00000003 +#define STYPE_MASK 0x0000000F +#define STYPE_DFS 0x00000064 +#define STYPE_HIDDEN 0x80000000 +#define STYPE_SPECIAL 0x80000000 +#endif /* _SHARE_TYPES_DEFINED_ */ + +#define STYPE_ISDSK(S) (((S) & STYPE_MASK) == STYPE_DISKTREE) +#define STYPE_ISPRN(S) (((S) & STYPE_MASK) == STYPE_PRINTQ) +#define STYPE_ISDEV(S) (((S) & STYPE_MASK) == STYPE_DEVICE) +#define STYPE_ISIPC(S) (((S) & STYPE_MASK) == STYPE_IPC) + +/* + * NtCreateAndX and NtTransactCreate creation flags: defined in CIFS + * section 4.2.2 + * + * Creation Flag Name Value Description + * ========================== ====== ================================== + * NT_CREATE_REQUEST_OPLOCK 0x02 Level I oplock requested + * NT_CREATE_REQUEST_OPBATCH 0x04 Batch oplock requested + * NT_CREATE_OPEN_TARGET_DIR 0x08 Target for open is a directory + */ +#define NT_CREATE_FLAG_REQUEST_OPLOCK 0x02 +#define NT_CREATE_FLAG_REQUEST_OPBATCH 0x04 +#define NT_CREATE_FLAG_OPEN_TARGET_DIR 0x08 + + +/* + * Define the filter flags for NtNotifyChangeDirectoryFile + */ +#define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001 +#define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002 +#define FILE_NOTIFY_CHANGE_NAME 0x00000003 +#define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004 +#define FILE_NOTIFY_CHANGE_SIZE 0x00000008 +#define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010 +#define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020 +#define FILE_NOTIFY_CHANGE_CREATION 0x00000040 +#define FILE_NOTIFY_CHANGE_EA 0x00000080 +#define FILE_NOTIFY_CHANGE_SECURITY 0x00000100 +#define FILE_NOTIFY_CHANGE_STREAM_NAME 0x00000200 +#define FILE_NOTIFY_CHANGE_STREAM_SIZE 0x00000400 +#define FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800 +#define FILE_NOTIFY_VALID_MASK 0x00000fff + + +/* + * Define the file action type codes for NtNotifyChangeDirectoryFile + */ +#define FILE_ACTION_ADDED 0x00000001 +#define FILE_ACTION_REMOVED 0x00000002 +#define FILE_ACTION_MODIFIED 0x00000003 +#define FILE_ACTION_RENAMED_OLD_NAME 0x00000004 +#define FILE_ACTION_RENAMED_NEW_NAME 0x00000005 +#define FILE_ACTION_ADDED_STREAM 0x00000006 +#define FILE_ACTION_REMOVED_STREAM 0x00000007 +#define FILE_ACTION_MODIFIED_STREAM 0x00000008 + + +/* Lock type flags */ +#define LOCKING_ANDX_NORMAL_LOCK 0x00 +#define LOCKING_ANDX_SHARED_LOCK 0x01 +#define LOCKING_ANDX_OPLOCK_RELEASE 0x02 +#define LOCKING_ANDX_CHANGE_LOCK_TYPE 0x04 +#define LOCKING_ANDX_CANCEL_LOCK 0x08 +#define LOCKING_ANDX_LARGE_FILES 0x10 + +#define SMB_COM_CREATE_DIRECTORY 0x00 +#define SMB_COM_DELETE_DIRECTORY 0x01 +#define SMB_COM_OPEN 0x02 +#define SMB_COM_CREATE 0x03 +#define SMB_COM_CLOSE 0x04 +#define SMB_COM_FLUSH 0x05 +#define SMB_COM_DELETE 0x06 +#define SMB_COM_RENAME 0x07 +#define SMB_COM_QUERY_INFORMATION 0x08 +#define SMB_COM_SET_INFORMATION 0x09 +#define SMB_COM_READ 0x0A +#define SMB_COM_WRITE 0x0B +#define SMB_COM_LOCK_BYTE_RANGE 0x0C +#define SMB_COM_UNLOCK_BYTE_RANGE 0x0D +#define SMB_COM_CREATE_TEMPORARY 0x0E +#define SMB_COM_CREATE_NEW 0x0F +#define SMB_COM_CHECK_DIRECTORY 0x10 +#define SMB_COM_PROCESS_EXIT 0x11 +#define SMB_COM_SEEK 0x12 +#define SMB_COM_LOCK_AND_READ 0x13 +#define SMB_COM_WRITE_AND_UNLOCK 0x14 + +#define SMB_COM_READ_RAW 0x1A +#define SMB_COM_READ_MPX 0x1B +#define SMB_COM_READ_MPX_SECONDARY 0x1C +#define SMB_COM_WRITE_RAW 0x1D +#define SMB_COM_WRITE_MPX 0x1E +#define SMB_COM_WRITE_MPX_SECONDARY 0x1F +#define SMB_COM_WRITE_COMPLETE 0x20 + +#define SMB_COM_SET_INFORMATION2 0x22 +#define SMB_COM_QUERY_INFORMATION2 0x23 +#define SMB_COM_LOCKING_ANDX 0x24 +#define SMB_COM_TRANSACTION 0x25 +#define SMB_COM_TRANSACTION_SECONDARY 0x26 +#define SMB_COM_IOCTL 0x27 +#define SMB_COM_IOCTL_SECONDARY 0x28 +#define SMB_COM_COPY 0x29 +#define SMB_COM_MOVE 0x2A +#define SMB_COM_ECHO 0x2B +#define SMB_COM_WRITE_AND_CLOSE 0x2C +#define SMB_COM_OPEN_ANDX 0x2D +#define SMB_COM_READ_ANDX 0x2E +#define SMB_COM_WRITE_ANDX 0x2F + +#define SMB_COM_CLOSE_AND_TREE_DISC 0x31 +#define SMB_COM_TRANSACTION2 0x32 +#define SMB_COM_TRANSACTION2_SECONDARY 0x33 +#define SMB_COM_FIND_CLOSE2 0x34 +#define SMB_COM_FIND_NOTIFY_CLOSE 0x35 + +#define SMB_COM_TREE_CONNECT 0x70 +#define SMB_COM_TREE_DISCONNECT 0x71 +#define SMB_COM_NEGOTIATE 0x72 +#define SMB_COM_SESSION_SETUP_ANDX 0x73 +#define SMB_COM_LOGOFF_ANDX 0x74 +#define SMB_COM_TREE_CONNECT_ANDX 0x75 + +#define SMB_COM_QUERY_INFORMATION_DISK 0x80 +#define SMB_COM_SEARCH 0x81 +#define SMB_COM_FIND 0x82 +#define SMB_COM_FIND_UNIQUE 0x83 +#define SMB_COM_FIND_CLOSE 0x84 + +#define SMB_COM_NT_TRANSACT 0xA0 +#define SMB_COM_NT_TRANSACT_SECONDARY 0xA1 +#define SMB_COM_NT_CREATE_ANDX 0xA2 +#define SMB_COM_NT_CANCEL 0xA4 + +#define SMB_COM_OPEN_PRINT_FILE 0xC0 +#define SMB_COM_WRITE_PRINT_FILE 0xC1 +#define SMB_COM_CLOSE_PRINT_FILE 0xC2 +#define SMB_COM_GET_PRINT_QUEUE 0xC3 + + +/* + * Flags field of the SMB header. The names in parenthesis represent + * alternative names for the flags. + * + * SMB_FLAGS_LOCK_AND_READ_OK If the server supports LockAndRead and + * (SMB_FLAGS_LOCKS_SUBDIALECT) WriteAndUnlock, it sets this bit in the + * Negotiate response. + * + * SMB_FLAGS_SEND_NO_ACK When on, the client guarantees that there + * (SMB_FLAGS_RCV_BUF_POSTED) is a receive buffer posted such that a + * "Send-No-Ack" can be used by the server + * to respond to the client's request. + * + * SMB_FLAGS_CASE_INSENSITIVE This is part of the Flags field of every + * SMB header. If this bit is set, then all + * pathnames in the SMB should be treated as + * case-insensitive. Otherwise pathnames are + * case-sensitive. + * + * SMB_FLAGS_CANONICALIZED_PATHS When on in SessionSetupX, this indicates + * that all paths sent to the server are + * already in OS/2 canonicalized format. + * + * OS/2 canonical format means that file/directory names are in upper case, + * are valid characters, . and .. have been removed and single backslashes + * are used as separators. + * + * SMB_FLAGS_OPLOCK When set in an open file request SMBs + * (Open, Create, OpenX, etc.) this bit + * indicates a request for an oplock on the + * file. When set in the response, this bit + * indicates that the oplock was granted. + * + * SMB_FLAGS_OPLOCK_NOTIFY_ANY When on, this bit indicates that the server + * should notify the client on any request + * that could cause the file to be changed. + * If not set, the server only notifies the + * client on other open requests on the file. + * This bit is only relevant when + * SMB_FLAGS_OPLOCK is set. + * + * SMB_FLAGS_SERVER_TO_REDIR This bit indicates that the SMB is being + * (SMB_FLAGS_REPLY) sent from server to (client) redirector. + */ +#define SMB_FLAGS_LOCK_AND_READ_OK 0x01 +#define SMB_FLAGS_SEND_NO_ACK 0x02 +#define SMB_FLAGS_RESERVED 0x04 +#define SMB_FLAGS_CASE_INSENSITIVE 0x08 +#define SMB_FLAGS_CANONICALIZED_PATHS 0x10 +#define SMB_FLAGS_OPLOCK 0x20 +#define SMB_FLAGS_OPLOCK_NOTIFY_ANY 0x40 +#define SMB_FLAGS_REPLY 0x80 + + +/* + * Flags2 field of the SMB header. + */ +#define SMB_FLAGS2_KNOWS_LONG_NAMES 0x0001 +#define SMB_FLAGS2_KNOWS_EAS 0x0002 +#define SMB_FLAGS2_SMB_SECURITY_SIGNATURE 0x0004 +#define SMB_FLAGS2_IS_LONG_NAME 0x0040 +#define SMB_FLAGS2_REPARSE_PATH 0x0400 +#define SMB_FLAGS2_EXT_SEC 0x0800 +#define SMB_FLAGS2_DFS 0x1000 +#define SMB_FLAGS2_PAGING_IO 0x2000 +#define SMB_FLAGS2_NT_STATUS 0x4000 +#define SMB_FLAGS2_UNICODE 0x8000 + +#define DIALECT_UNKNOWN 0 +#define PC_NETWORK_PROGRAM_1_0 1 /* The original MSNET SMB protocol */ +#define PCLAN1_0 2 /* Some versions of the original MSNET */ +#define MICROSOFT_NETWORKS_1_03 3 /* This is used for the MS-NET 1.03 */ +#define MICROSOFT_NETWORKS_3_0 4 /* This is the DOS LANMAN 1.0 specific */ +#define LANMAN1_0 5 /* This is the first version of the full */ +#define LM1_2X002 6 /* This is the first version of the full */ +#define DOS_LM1_2X002 7 /* This is the dos equivalent of the */ +#define DOS_LANMAN2_1 8 /* DOS LANMAN2.1 */ +#define LANMAN2_1 9 /* OS/2 LANMAN2.1 */ +#define Windows_for_Workgroups_3_1a 10 /* Windows for Workgroups Version 1.0 */ +#define NT_LM_0_12 11 /* The SMB protocol designed for NT */ + +/* + * SMB_TREE_CONNECT_ANDX OptionalSupport flags + * + * SMB_SUPPORT_SEARCH_BITS The server supports SearchAttributes. + * SMB_SHARE_IS_IN_DFS The share is managed by DFS. + * SMB_CSC_MASK Offline-caching mask - see CSC values. + * SMB_UNIQUE_FILE_NAME The server uses long names and does not support + * short names. This indicates to clients that + * they may perform directory name-space caching. + * SMB_EXTENDED_SIGNATURES The server will use signing key protection. + * + * SMB_CSC_CACHE_MANUAL_REINT Clients are allowed to cache files for offline + * use as requested by users but automatic + * file-by-file reintegration is not allowed. + * SMB_CSC_CACHE_AUTO_REINT Clients are allowed to automatically cache + * files for offline use and file-by-file + * reintegration is allowed. + * SMB_CSC_CACHE_VDO Clients are allowed to automatically cache files + * for offline use, file-by-file reintegration is + * allowed and clients are permitted to work from + * their local cache even while offline. + * SMB_CSC_CACHE_NONE Client-side caching is disabled for this share. + * + * SHI1005_FLAGS_ACCESS_BASED_DIRECTORY_ENUM + * The server will filter directory entries based + * on the access permissions of the client. + */ +#define SMB_SUPPORT_SEARCH_BITS 0x0001 +#define SMB_SHARE_IS_IN_DFS 0x0002 +#define SMB_CSC_MASK 0x000C +#define SMB_UNIQUE_FILE_NAME 0x0010 +#define SMB_EXTENDED_SIGNATURES 0x0020 + +#define SMB_CSC_CACHE_MANUAL_REINT 0x0000 +#define SMB_CSC_CACHE_AUTO_REINT 0x0004 +#define SMB_CSC_CACHE_VDO 0x0008 +#define SMB_CSC_CACHE_NONE 0x000C + +#define SHI1005_FLAGS_ACCESS_BASED_DIRECTORY_ENUM 0x0800 + +/* + * The subcommand codes, placed in SETUP[0], for named pipe operations are: + * SubCommand Code Value Description + * =================== ===== ========================================= + */ + +#define CallNamedPipe 0x54 /* open/write/read/close pipe */ +#define WaitNamedPipe 0x53 /* wait for pipe to be nonbusy */ +#define PeekNmPipe 0x23 /* read but don't remove data */ +#define QNmPHandState 0x21 /* query pipe handle modes */ +#define SetNmPHandState 0x01 /* set pipe handle modes */ +#define QNmPipeInfo 0x22 /* query pipe attributes */ +#define TransactNmPipe 0x26 /* write/read operation on pipe */ +#define RawReadNmPipe 0x11 /* read pipe in "raw" (non message mode) */ +#define RawWriteNmPipe 0x31 /* write pipe "raw" (non message mode) */ + + + +/* + * Setup[0] Transaction2 Value Description + * Subcommand Code + * ========================== ===== ============================= + */ + +#define TRANS2_OPEN2 0x00 /* Create file, extended attributes */ +#define TRANS2_FIND_FIRST2 0x01 /* Begin search for files */ +#define TRANS2_FIND_NEXT2 0x02 /* Resume search for files */ +#define TRANS2_QUERY_FS_INFORMATION 0x03 /* Get file system information */ +#define _TRANS2_RESV_0x04 0x04 /* Reserved */ +#define TRANS2_QUERY_PATH_INFORMATION 0x05 /* Get info, named file or dir */ +#define TRANS2_SET_PATH_INFORMATION 0x06 /* Set info, named file or dir */ +#define TRANS2_QUERY_FILE_INFORMATION 0x07 /* Get info, handle */ +#define TRANS2_SET_FILE_INFORMATION 0x08 /* Set info, handle */ +#define TRANS2_FSCTL 0x09 /* Not implemented by NT server */ +#define TRANS2_IOCTL2 0x0A /* Not implemented by NT server */ +#define TRANS2_FIND_NOTIFY_FIRST 0x0B /* Not implemented by NT server */ +#define TRANS2_FIND_NOTIFY_NEXT 0x0C /* Not implemented by NT server */ +#define TRANS2_CREATE_DIRECTORY 0x0D /* Create dir, extended attributes */ +#define TRANS2_SESSION_SETUP 0x0E /* Session setup, extended security */ +#define TRANS2_GET_DFS_REFERRAL 0x10 /* Get a Dfs referral */ +#define TRANS2_REPORT_DFS_INCONSISTENCY 0x11 /* Report a Dfs inconsistency */ + +/* + * Access Mode Encoding (CIFS/1.0 1996 Section 3.8). + * + * The desired access mode passed in SmbOpen and SmbOpenAndX has the following + * mapping: + * + * 1111 11 + * 5432 1098 7654 3210 + * rWrC rLLL rSSS rAAA + * + * where: + * + * W - Write through mode. No read ahead or write behind allowed on + * this file or device. When protocol is returned, data is expected + * to be on the disk or device. + * + * S - Sharing mode: + * 0 - Compatibility mode (as in core open) + * 1 - Deny read/write/execute (exclusive) + * 2 - Deny write + * 3 - Deny read/execute + * 4 - Deny none + * + * A - Access mode + * 0 - Open for reading + * 1 - Open for writing + * 2 - Open for reading and writing + * 3 - Open for execute + * + * rSSSrAAA = 11111111 (hex FF) indicates FCB open (as in core protocol) + * + * C - Cache mode + * 0 - Normal file + * 1 - Do not cache this file + * + * L - Locality of reference + * 0 - Locality of reference is unknown + * 1 - Mainly sequential access + * 2 - Mainly random access + * 3 - Random access with some locality + * 4 to 7 - Currently undefined + */ + + +#define SMB_DA_SHARE_MASK 0x70 +#define SMB_DA_ACCESS_MASK 0x07 +#define SMB_DA_FCB_MASK (UCHAR)0xFF + +#define SMB_DA_ACCESS_READ 0x00 +#define SMB_DA_ACCESS_WRITE 0x01 +#define SMB_DA_ACCESS_READ_WRITE 0x02 +#define SMB_DA_ACCESS_EXECUTE 0x03 + +#define SMB_DA_SHARE_COMPATIBILITY 0x00 +#define SMB_DA_SHARE_EXCLUSIVE 0x10 +#define SMB_DA_SHARE_DENY_WRITE 0x20 +#define SMB_DA_SHARE_DENY_READ 0x30 +#define SMB_DA_SHARE_DENY_NONE 0x40 + +#define SMB_DA_FCB (UCHAR)0xFF + +#define SMB_CACHE_NORMAL 0x0000 +#define SMB_DO_NOT_CACHE 0x1000 + +#define SMB_LR_UNKNOWN 0x0000 +#define SMB_LR_SEQUENTIAL 0x0100 +#define SMB_LR_RANDOM 0x0200 +#define SMB_LR_RANDOM_WITH_LOCALITY 0x0300 +#define SMB_LR_MASK 0x0F00 + +#define SMB_DA_WRITE_THROUGH 0x4000 + +/* + * Macros used for share reservation rule checking + */ + +#define SMB_DENY_READ(share_access) ((share_access & FILE_SHARE_READ) == 0) + +#define SMB_DENY_WRITE(share_access) ((share_access & FILE_SHARE_WRITE) == 0) + +#define SMB_DENY_DELETE(share_access) ((share_access & FILE_SHARE_DELETE) == 0) + +#define SMB_DENY_RW(share_access) \ + ((share_access & (FILE_SHARE_READ | FILE_SHARE_WRITE)) == 0) + +#define SMB_DENY_ALL(share_access) (share_access == 0) + +#define SMB_DENY_NONE(share_access) (share_access == FILE_SHARE_ALL) + +/* + * The SMB open function determines what action should be taken depending + * on the existence or lack thereof of files used in the operation. It + * has the following mapping: + * + * 1111 1 + * 5432 1098 7654 3210 + * rrrr rrrr rrrC rrOO + * + * where: + * + * O - Open (action to be taken if the target file exists) + * 0 - Fail + * 1 - Open or Append file + * 2 - Truncate file + * + * C - Create (action to be taken if the target file does not exist) + * 0 - Fail + * 1 - Create file + */ + +#define SMB_OFUN_OPEN_MASK 0x3 +#define SMB_OFUN_CREATE_MASK 0x10 + +#define SMB_OFUN_OPEN_FAIL 0 +#define SMB_OFUN_OPEN_APPEND 1 +#define SMB_OFUN_OPEN_OPEN 1 +#define SMB_OFUN_OPEN_TRUNCATE 2 + +#define SMB_OFUN_CREATE_FAIL 0x00 +#define SMB_OFUN_CREATE_CREATE 0x10 + +/* + * The Action field of OpenAndX has the following format: + * + * 1111 11 + * 5432 1098 7654 3210 + * Lrrr rrrr rrrr rrOO + * + * where: + * + * L - Opportunistic lock. 1 if lock granted, else 0. + * + * O - Open action: + * 1 - The file existed and was opened + * 2 - The file did not exist but was created + * 3 - The file existed and was truncated + */ + +#define SMB_OACT_LOCK 0x8000 +#define SMB_OACT_OPENED 0x01 +#define SMB_OACT_CREATED 0x02 +#define SMB_OACT_TRUNCATED 0x03 + +#define SMB_OACT_OPLOCK 0x8000 + +#define SMB_FTYPE_DISK 0 +#define SMB_FTYPE_BYTE_PIPE 1 +#define SMB_FTYPE_MESG_PIPE 2 +#define SMB_FTYPE_PRINTER 3 +#define SMB_FTYPE_UNKNOWN 0xFFFF + +#define SMB_DEVST_BLOCKING 0x8000 +#define SMB_DEVST_ENDPOINT 0x4000 +#define SMB_DEVST_TYPE_MASK 0x0C00 +#define SMB_DEVST_TYPE_BYTE_PIPE 0x0000 +#define SMB_DEVST_TYPE_MESG_PIPE 0x0400 +#define SMB_DEVST_RMODE_MASK 0x0300 +#define SMB_DEVST_RMODE_BYTES 0x0000 +#define SMB_DEVST_RMODE_MESGS 0x0100 +#define SMB_DEVST_ICOUNT_MASK 0x00FF /* not used */ + +#define SMB_FTYPE_IS_DISK(F) ((F) == SMB_FTYPE_DISK) +#define SMB_FTYPE_IS_PIPE(F) \ + (((F) == SMB_FTYPE_BYTE_PIPE) || ((F) == SMB_FTYPE_MESG_PIPE)) +#define SMB_FTYPE_IS_PRINTER(F) ((F) == SMB_FTYPE_PRINTER) + +/* + * TRANS2_FIND + */ +#define SMB_FIND_FILE_DIRECTORY_INFO 0x101 +#define SMB_FIND_FILE_FULL_DIRECTORY_INFO 0x102 +#define SMB_FIND_FILE_NAMES_INFO 0x103 +#define SMB_FIND_FILE_BOTH_DIRECTORY_INFO 0x104 +#define SMB_FIND_FILE_ID_FULL_DIRECTORY_INFO 0x105 +#define SMB_FIND_FILE_ID_BOTH_DIRECTORY_INFO 0x106 +#define SMB_MAC_FIND_BOTH_HFS_INFO MAC_FIND_BOTH_HFS_INFO + + +/* + * Flags for TRANS2_FIND_FIRST2 and TRANS2_FIND_NEXT2 (NTDDK). + * + * If SMB_FIND_RETURN_RESUME_KEYS was set in the request parameters, + * each entry is preceded by a four-byte resume key. + */ +#define SMB_FIND_CLOSE_AFTER_REQUEST 0x01 +#define SMB_FIND_CLOSE_AT_EOS 0x02 +#define SMB_FIND_RETURN_RESUME_KEYS 0x04 +#define SMB_FIND_CONTINUE_FROM_LAST 0x08 +#define SMB_FIND_WITH_BACKUP_INTENT 0x10 + + +/* + * TRANS2_QUERY_FS_INFORMATION + */ +#define SMB_INFO_ALLOCATION 1 +#define SMB_INFO_VOLUME 2 +#define SMB_QUERY_FS_LABEL_INFO 0x101 +#define SMB_QUERY_FS_VOLUME_INFO 0x102 +#define SMB_QUERY_FS_SIZE_INFO 0x103 +#define SMB_QUERY_FS_DEVICE_INFO 0x104 +#define SMB_QUERY_FS_ATTRIBUTE_INFO 0x105 +#define SMB_QUERY_FS_QUOTA_INFO 0x106 /* unused? */ +#define SMB_QUERY_FS_CONTROL_INFO 0x107 +#define SMB_MAC_QUERY_FS_INFO MAC_QUERY_FS_INFO + + +/* + * Internal use only. + * Define information levels to represent the following requests: + * smb_query_information + * smb_query_information2 + * smb_set_information + * smb_set_information2 + */ +#define SMB_QUERY_INFORMATION 0x3001 +#define SMB_QUERY_INFORMATION2 0x3002 +#define SMB_SET_INFORMATION 0x3001 +#define SMB_SET_INFORMATION2 0x3002 + +/* TRANS2_QUERY_{PATH,FILE}_INFORMATION */ +#define SMB_INFO_STANDARD 1 /* query, set */ +#define SMB_INFO_QUERY_EA_SIZE 2 /* query */ +#define SMB_INFO_SET_EAS 2 /* set */ +#define SMB_INFO_QUERY_EAS_FROM_LIST 3 /* query */ +#define SMB_INFO_QUERY_ALL_EAS 4 /* query */ +#define SMB_INFO_QUERY_FULL_NAME 5 /* unused */ +#define SMB_INFO_IS_NAME_VALID 6 /* query */ + +#define SMB_QUERY_FILE_BASIC_INFO 0x101 +#define SMB_QUERY_FILE_STANDARD_INFO 0x102 +#define SMB_QUERY_FILE_EA_INFO 0x103 +#define SMB_QUERY_FILE_NAME_INFO 0x104 +#define SMB_QUERY_FILE_ALLOCATION_INFO 0x105 /* unused */ +#define SMB_QUERY_FILE_END_OF_FILE_INFO 0x106 /* unused */ +#define SMB_QUERY_FILE_ALL_INFO 0x107 +#define SMB_QUERY_FILE_ALT_NAME_INFO 0x108 +#define SMB_QUERY_FILE_STREAM_INFO 0x109 +#define SMB_QUERY_FILE_COMPRESSION_INFO 0x10B + +#define SMB_MAC_SET_FINDER_INFO MAC_SET_FINDER_INFO +#define SMB_MAC_DT_ADD_APPL MAC_DT_ADD_APPL +#define SMB_MAC_DT_REMOVE_APPL MAC_DT_REMOVE_APPL +#define SMB_MAC_DT_GET_APPL MAC_DT_GET_APPL +#define SMB_MAC_DT_GET_ICON MAC_DT_GET_ICON +#define SMB_MAC_DT_GET_ICON_INFO MAC_DT_GET_ICON_INFO +#define SMB_MAC_DT_ADD_ICON MAC_DT_ADD_ICON + +#define SMB_SET_FILE_BASIC_INFO 0x101 +#define SMB_SET_FILE_DISPOSITION_INFO 0x102 +#define SMB_SET_FILE_ALLOCATION_INFO 0x103 +#define SMB_SET_FILE_END_OF_FILE_INFO 0x104 + + +/* NT passthrough levels - see ntifs.h FILE_INFORMATION_CLASS */ +#define SMB_FILE_BASIC_INFORMATION 1004 +#define SMB_FILE_STANDARD_INFORMATION 1005 +#define SMB_FILE_INTERNAL_INFORMATION 1006 +#define SMB_FILE_EA_INFORMATION 1007 +#define SMB_FILE_ACCESS_INFORMATION 1008 +#define SMB_FILE_NAME_INFORMATION 1009 +#define SMB_FILE_RENAME_INFORMATION 1010 +#define SMB_FILE_LINK_INFORMATION 1011 +#define SMB_FILE_DISPOSITION_INFORMATION 1013 +#define SMB_FILE_ALL_INFORMATION 1018 +#define SMB_FILE_ALLOCATION_INFORMATION 1019 +#define SMB_FILE_END_OF_FILE_INFORMATION 1020 +#define SMB_FILE_ALT_NAME_INFORMATION 1021 +#define SMB_FILE_STREAM_INFORMATION 1022 +#define SMB_FILE_COMPRESSION_INFORMATION 1028 +#define SMB_FILE_ATTR_TAG_INFORMATION 1035 + +/* + * The following bits may be set in the SecurityMode field of the + * SMB_COM_NEGOTIATE response. + * + * Notes: + * NEGOTIATE_SECURITY_SHARE_LEVEL is a montana2 invention. + * + * The NTDDK definitions are: + * #define NEGOTIATE_USER_SECURITY 0x01 + * #define NEGOTIATE_ENCRYPT_PASSWORDS 0x02 + * #define NEGOTIATE_SECURITY_SIGNATURES_ENABLED 0x04 + * #define NEGOTIATE_SECURITY_SIGNATURES_REQUIRED 0x08 + */ +#define NEGOTIATE_SECURITY_SHARE_LEVEL 0x00 +#define NEGOTIATE_SECURITY_USER_LEVEL 0x01 +#define NEGOTIATE_SECURITY_CHALLENGE_RESPONSE 0x02 +#define NEGOTIATE_SECURITY_SIGNATURES_ENABLED 0x04 +#define NEGOTIATE_SECURITY_SIGNATURES_REQUIRED 0x08 + + +/* + * Negotiated Capabilities (CIFS/1.0 section 4.1.1) + * + * Capabilities allow the server to tell the client what it supports. + * Undefined bits MUST be set to zero by servers, and MUST be ignored + * by clients. The bit definitions are: + * + * Capability Name Encoding Meaning + * ==================== ======== ================================== + * CAP_RAW_MODE 0x0001 The server supports SMB_COM_READ_RAW and + * SMB_COM_WRITE_RAW (obsolescent) + * CAP_MPX_MODE 0x0002 The server supports SMB_COM_READ_MPX and + * SMB_COM_WRITE_MPX (obsolescent) + * CAP_UNICODE 0x0004 The server supports Unicode strings + * CAP_LARGE_FILES 0x0008 The server supports large files with 64 + * bit offsets + * CAP_NT_SMBS 0x0010 The server supports the SMBs particular + * to the NT LM 0.12 dialect. + * Implies CAP_NT_FIND. + * CAP_RPC_REMOTE_APIS 0x0020 The server supports remote admin API + * requests via DCE RPC + * CAP_STATUS32 0x0040 The server can respond with 32 bit + * status codes in Status.Status + * CAP_LEVEL_II_OPLOCKS 0x0080 The server supports level 2 oplocks + * CAP_LOCK_AND_READ 0x0100 The server supports the + * SMB_COM_LOCK_AND_READ SMB + * CAP_NT_FIND 0x0200 + * CAP_BULK_TRANSFER 0x0400 + * CAP_COMPRESSED_BULK 0x0800 + * CAP_DFS 0x1000 The server is DFS aware + * CAP_LARGE_READX 0x4000 The server supports large + * SMB_COM_READ_ANDX + * CAP_LARGE_WRITEX 0x8000 The server supports large + * SMB_COM_WRITE_ANDX + * CAP_RESERVED 0x02000000 Reserved for future use. + * CAP_EXTENDED_SECURITY 0x80000000 The server supports extended security + * exchanges. + * + * Extended security exchanges provides a means of supporting arbitrary + * authentication protocols within CIFS. Security blobs are opaque to the + * CIFS protocol; they are messages in some authentication protocol that + * has been agreed upon by client and server by some out of band mechanism, + * for which CIFS merely functions as a transport. When + * CAP_EXTENDED_SECURITY is negotiated, the server includes a first + * security blob in its response; subsequent security blobs are exchanged + * in SMB_COM_SESSION_SETUP_ANDX requests and responses until the + * authentication protocol terminates. + */ +#define CAP_RAW_MODE 0x0001 +#define CAP_MPX_MODE 0x0002 +#define CAP_UNICODE 0x0004 +#define CAP_LARGE_FILES 0x0008 +#define CAP_NT_SMBS 0x0010 +#define CAP_RPC_REMOTE_APIS 0x0020 +#define CAP_STATUS32 0x0040 +#define CAP_LEVEL_II_OPLOCKS 0x0080 +#define CAP_LOCK_AND_READ 0x0100 +#define CAP_NT_FIND 0x0200 +#define CAP_BULK_TRANSFER 0x0400 +#define CAP_COMPRESSED_BULK 0x0800 +#define CAP_DFS 0x1000 +#define CAP_LARGE_READX 0x4000 +#define CAP_LARGE_WRITEX 0x8000 +#define CAP_RESERVED 0x02000000 +#define CAP_EXTENDED_SECURITY 0x80000000 + + +/* + * Different device types according to NT + */ +#define FILE_DEVICE_BEEP 0x00000001 +#define FILE_DEVICE_CD_ROM 0x00000002 +#define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003 +#define FILE_DEVICE_CONTROLLER 0x00000004 +#define FILE_DEVICE_DATALINK 0x00000005 +#define FILE_DEVICE_DFS 0x00000006 +#define FILE_DEVICE_DISK 0x00000007 +#define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008 +#define FILE_DEVICE_FILE_SYSTEM 0x00000009 +#define FILE_DEVICE_INPORT_PORT 0x0000000a +#define FILE_DEVICE_KEYBOARD 0x0000000b +#define FILE_DEVICE_MAILSLOT 0x0000000c +#define FILE_DEVICE_MIDI_IN 0x0000000d +#define FILE_DEVICE_MIDI_OUT 0x0000000e +#define FILE_DEVICE_MOUSE 0x0000000f +#define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010 +#define FILE_DEVICE_NAMED_PIPE 0x00000011 +#define FILE_DEVICE_NETWORK 0x00000012 +#define FILE_DEVICE_NETWORK_BROWSER 0x00000013 +#define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014 +#define FILE_DEVICE_NULL 0x00000015 +#define FILE_DEVICE_PARALLEL_PORT 0x00000016 +#define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017 +#define FILE_DEVICE_PRINTER 0x00000018 +#define FILE_DEVICE_SCANNER 0x00000019 +#define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001a +#define FILE_DEVICE_SERIAL_PORT 0x0000001b +#define FILE_DEVICE_SCREEN 0x0000001c +#define FILE_DEVICE_SOUND 0x0000001d +#define FILE_DEVICE_STREAMS 0x0000001e +#define FILE_DEVICE_TAPE 0x0000001f +#define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020 +#define FILE_DEVICE_TRANSPORT 0x00000021 +#define FILE_DEVICE_UNKNOWN 0x00000022 +#define FILE_DEVICE_VIDEO 0x00000023 +#define FILE_DEVICE_VIRTUAL_DISK 0x00000024 +#define FILE_DEVICE_WAVE_IN 0x00000025 +#define FILE_DEVICE_WAVE_OUT 0x00000026 +#define FILE_DEVICE_8042_PORT 0x00000027 +#define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028 +#define FILE_DEVICE_BATTERY 0x00000029 +#define FILE_DEVICE_BUS_EXTENDER 0x0000002a +#define FILE_DEVICE_MODEM 0x0000002b +#define FILE_DEVICE_VDM 0x0000002c + +/* + * Some of these device types are not currently accessible over the network + * and may never be accessible over the network. Some may change to be + * + * accessible over the network. The values for device types that may never + * be accessible over the network may be redefined to be just reserved at + * some date in the future. + * + * Characteristics is the sum of any of the following: + */ + +#define FILE_REMOVABLE_MEDIA 0x00000001 +#define FILE_READ_ONLY_DEVICE 0x00000002 +#define FILE_FLOPPY_DISKETTE 0x00000004 +#define FILE_WRITE_ONE_MEDIA 0x00000008 +#define FILE_REMOTE_DEVICE 0x00000010 +#define FILE_DEVICE_IS_MOUNTED 0x00000020 +#define FILE_VIRTUAL_VOLUME 0x00000040 + +/* + * CREATE_ANDX ShareAccess Flags + */ + +#define FILE_SHARE_NONE 0x00000000 +#define FILE_SHARE_READ 0x00000001 +#define FILE_SHARE_WRITE 0x00000002 +#define FILE_SHARE_DELETE 0x00000004 +#define FILE_SHARE_ALL 0x00000007 +#define FILE_SHARE_VALID_FLAGS 0x00000007 + + +/* + * CREATE_ANDX CreateDisposition flags + * + * FILE_SUPERSEDE If the file already exists it should be superseded + * by the specified file. If the file does not already + * exist then it should be created. + * + * FILE_CREATE If the file already exists the operation should fail. + * If the file does not already exist then it should be + * created. (aka CREATE_NEW) + * + * FILE_OPEN If the file already exists then it should be opened. + * If the file does not already exist then the operation + * should fail. (aka OPEN_EXISTING) + * + * FILE_OPEN_IF If the file already exists then it should be opened. + * If the file does not already exist then it should be + * created. (aka OPEN_ALWAYS) + * + * FILE_OVERWRITE If the file already exists, it should be opened and + * overwritten. If the file does not already exist then + * the operation should fail. (aka TRUNCATE_EXISTING) + * + * FILE_OVERWRITE_IF If the file already exists, it should be opened and + * overwritten. If the file does not already exist then + * it should be created. (aka CREATE_ALWAYS) + */ +#define FILE_SUPERSEDE 0x00000000 +#define FILE_OPEN 0x00000001 +#define FILE_CREATE 0x00000002 +#define FILE_OPEN_IF 0x00000003 +#define FILE_OVERWRITE 0x00000004 +#define FILE_OVERWRITE_IF 0x00000005 +#define FILE_MAXIMUM_DISPOSITION 0x00000005 + +/* + * CREATE_ANDX Impersonation levels + */ + +#define SECURITY_ANONYMOUS 0x00000001 +#define SECURITY_IDENTIFICATION 0x00000002 +#define SECURITY_IMPERSONATION 0x00000003 +#define SECURITY_DELEGATION 0x00000004 + +/* + * CREATE_ANDX SecurityFlags + */ + +#define SECURITY_CONTEXT_TRACKING 0x00000001 +#define SECURITY_EFFECTIVE_ONLY 0x00000002 + +/* + * Server types + */ +#define SV_WORKSTATION 0x00000001 /* All workstations */ +#define SV_SERVER 0x00000002 /* All servers */ +#define SV_SQLSERVER 0x00000004 /* running with SQL server */ +#define SV_DOMAIN_CTRL 0x00000008 /* Primary domain controller */ +#define SV_DOMAIN_BAKCTRL 0x00000010 /* Backup domain controller */ +#define SV_TIME_SOURCE 0x00000020 /* running timesource service */ +#define SV_AFP 0x00000040 /* Apple File Protocol */ +#define SV_NOVELL 0x00000080 /* Novell servers */ +#define SV_DOMAIN_MEMBER 0x00000100 /* Domain Member */ +#define SV_PRINTQ_SERVER 0x00000200 /* Server sharing print queue */ +#define SV_DIALIN_SERVER 0x00000400 /* Server running dialin */ +#define SV_XENIX_SERVER 0x00000800 /* Xenix server */ +#define SV_NT 0x00001000 /* NT server */ +#define SV_WFW 0x00002000 /* Server running Windows for */ +#define SV_SERVER_NT 0x00008000 /* Windows NT non DC server */ +#define SV_POTENTIAL_BROWSER 0x00010000 /* can run browser service */ +#define SV_BACKUP_BROWSER 0x00020000 /* Backup browser server */ +#define SV_MASTER_BROWSER 0x00040000 /* Master browser server */ +#define SV_DOMAIN_MASTER 0x00080000 /* Domain Master Browser */ +#define SV_OSF 0x00100000 /* OSF operating system */ +#define SV_VMS 0x00200000 /* VMS operating system */ +#define SV_WINDOWS_95_PLUS 0x00400000 /* Windows 95 or better */ + +#define SV_LOCAL_LIST_ONLY 0x40000000 /* Enumerate only "local" */ +#define SV_TYPE_DOMAIN_ENUM 0x80000000 /* Enumerate Domains */ + +#define MY_SERVER_TYPE (SV_SERVER | SV_NT | SV_SERVER_NT) + + +#define PRQ_ACTIVE 0 /* Active */ +#define PRQ_PAUSE 1 /* Paused */ +#define PRQ_ERROR 2 /* Error Occurred */ +#define PRQ_PENDING 3 /* Deletion pending */ + +#define PRJ_QS_QUEUED 0 /* Active */ +#define PRJ_QS_PAUSED 1 /* Paused */ +#define PRJ_QS_SPOOLING 2 /* Paused */ +#define PRJ_QS_PRINTING 3 /* Paused */ + + +#define SHARE_ACCESS_READ 0x01 /* read & execute from resource */ +#define SHARE_ACCESS_WRITE 0x02 /* write data to resource */ +#define SHARE_ACCESS_CREATE 0x04 /* create an instance of */ +#define SHARE_ACCESS_EXEC 0x08 /* execute from resource */ +#define SHARE_ACCESS_DELETE 0x10 /* Permission to delete the resource */ +#define SHARE_ACCESS_ATTRIB 0x20 /* Permission to modify the resource */ +#define SHARE_ACCESS_PERM 0x40 /* Permission to change permissions */ +#define SHARE_ACCESS_ALL 0x7F /* All of the above permissions */ + + +/* + * SMB_COM_NT_TRANSACTION sub-command codes (CIFS/1.0 section 5.3) + * + * SubCommand Code Value Description + * =============================== ===== ================================= + * NT_TRANSACT_CREATE 1 File open/create + * NT_TRANSACT_IOCTL 2 Device IOCTL + * NT_TRANSACT_SET_SECURITY_DESC 3 Set security descriptor + * NT_TRANSACT_NOTIFY_CHANGE 4 Start directory watch + * NT_TRANSACT_RENAME 5 Reserved (handle-based rename) + * NT_TRANSACT_QUERY_SECURITY_DESC 6 Retrieve security descriptor + * NT_TRANSACT_QUERY_QUOTA 7 Retrieve quota information + * NT_TRANSACT_SET_QUOTA 8 Set quota information + */ +#define NT_TRANSACT_MIN_FUNCTION 1 + +#define NT_TRANSACT_CREATE 1 +#define NT_TRANSACT_IOCTL 2 +#define NT_TRANSACT_SET_SECURITY_DESC 3 +#define NT_TRANSACT_NOTIFY_CHANGE 4 +#define NT_TRANSACT_RENAME 5 +#define NT_TRANSACT_QUERY_SECURITY_DESC 6 +#define NT_TRANSACT_QUERY_QUOTA 7 +#define NT_TRANSACT_SET_QUOTA 8 + +#define NT_TRANSACT_MAX_FUNCTION 8 + + +/* + * Pipe states + */ +#define SMB_PIPE_READMODE_BYTE 0x0000 +#define SMB_PIPE_READMODE_MESSAGE 0x0100 +#define SMB_PIPE_TYPE_BYTE 0x0000 +#define SMB_PIPE_TYPE_MESSAGE 0x0400 +#define SMB_PIPE_END_CLIENT 0x0000 +#define SMB_PIPE_END_SERVER 0x4000 +#define SMB_PIPE_WAIT 0x0000 +#define SMB_PIPE_NOWAIT 0x8000 +#define SMB_PIPE_UNLIMITED_INSTANCES 0x00FF + +/* + * smb_com_seek request + */ +#define SMB_SEEK_SET 0 /* set file offset to specified offset */ +#define SMB_SEEK_CUR 1 /* set file offset to current plus specified offset */ +#define SMB_SEEK_END 2 /* set file offset to EOF plus specified offset */ + +/* + * API Numbers for Transact based RAP (Remote Administration Protocol) calls + */ +#define API_WshareEnum 0 +#define API_WshareGetInfo 1 +#define API_WshareSetInfo 2 +#define API_WshareAdd 3 +#define API_WshareDel 4 +#define API_NetShareCheck 5 +#define API_WsessionEnum 6 +#define API_WsessionGetInfo 7 +#define API_WsessionDel 8 +#define API_WconnectionEnum 9 +#define API_WfileEnum 10 +#define API_WfileGetInfo 11 +#define API_WfileClose 12 +#define API_WserverGetInfo 13 +#define API_WserverSetInfo 14 +#define API_WserverDiskEnum 15 +#define API_WserverAdminCommand 16 +#define API_NetAuditOpen 17 +#define API_WauditClear 18 +#define API_NetErrorLogOpen 19 +#define API_WerrorLogClear 20 +#define API_NetCharDevEnum 21 +#define API_NetCharDevGetInfo 22 +#define API_WCharDevControl 23 +#define API_NetCharDevQEnum 24 +#define API_NetCharDevQGetInfo 25 +#define API_WCharDevQSetInfo 26 +#define API_WCharDevQPurge 27 +#define API_WCharDevQPurgeSelf 28 +#define API_WMessageNameEnum 29 +#define API_WMessageNameGetInfo 30 +#define API_WMessageNameAdd 31 +#define API_WMessageNameDel 32 +#define API_WMessageNameFwd 33 +#define API_WMessageNameUnFwd 34 +#define API_WMessageBufferSend 35 +#define API_WMessageFileSend 36 +#define API_WMessageLogFileSet 37 +#define API_WMessageLogFileGet 38 +#define API_WServiceEnum 39 +#define API_WServiceInstall 40 +#define API_WServiceControl 41 +#define API_WAccessEnum 42 +#define API_WAccessGetInfo 43 +#define API_WAccessSetInfo 44 +#define API_WAccessAdd 45 +#define API_WAccessDel 46 +#define API_WGroupEnum 47 +#define API_WGroupAdd 48 +#define API_WGroupDel 49 +#define API_WGroupAddUser 50 +#define API_WGroupDelUser 51 +#define API_WGroupGetUsers 52 +#define API_WUserEnum 53 +#define API_WUserAdd 54 +#define API_WUserDel 55 +#define API_WUserGetInfo 56 +#define API_WUserSetInfo 57 +#define API_WUserPasswordSet 58 +#define API_WUserGetGroups 59 +#define API_DeadTableEntry 60 +#define API_WWkstaSetUID 62 +#define API_WWkstaGetInfo 63 +#define API_WWkstaSetInfo 64 +#define API_WUseEnum 65 +#define API_WUseAdd 66 +#define API_WUseDel 67 +#define API_WUseGetInfo 68 +#define API_WPrintQEnum 69 +#define API_WPrintQGetInfo 70 +#define API_WPrintQSetInfo 71 +#define API_WPrintQAdd 72 +#define API_WPrintQDel 73 +#define API_WPrintQPause 74 +#define API_WPrintQContinue 75 +#define API_WPrintJobEnum 76 +#define API_WPrintJobGetInfo 77 +#define API_WPrintJobSetInfo_OLD 78 +#define API_WPrintJobDel 81 +#define API_WPrintJobPause 82 +#define API_WPrintJobContinue 83 +#define API_WPrintDestEnum 84 +#define API_WPrintDestGetInfo 85 +#define API_WPrintDestControl 86 +#define API_WProfileSave 87 +#define API_WProfileLoad 88 +#define API_WStatisticsGet 89 +#define API_WStatisticsClear 90 +#define API_NetRemoteTOD 91 +#define API_WNetBiosEnum 92 +#define API_WNetBiosGetInfo 93 +#define API_NetServerEnum 94 +#define API_I_NetServerEnum 95 +#define API_WServiceGetInfo 96 +#define API_WPrintQPurge 103 +#define API_NetServerEnum2 104 +#define API_WAccessGetUserPerms 105 +#define API_WGroupGetInfo 106 +#define API_WGroupSetInfo 107 +#define API_WGroupSetUsers 108 +#define API_WUserSetGroups 109 +#define API_WUserModalsGet 110 +#define API_WUserModalsSet 111 +#define API_WFileEnum2 112 +#define API_WUserAdd2 113 +#define API_WUserSetInfo2 114 +#define API_WUserPasswordSet2 115 +#define API_I_NetServerEnum2 116 +#define API_WConfigGet2 117 +#define API_WConfigGetAll2 118 +#define API_WGetDCName 119 +#define API_NetHandleGetInfo 120 +#define API_NetHandleSetInfo 121 +#define API_WStatisticsGet2 122 +#define API_WBuildGetInfo 123 +#define API_WFileGetInfo2 124 +#define API_WFileClose2 125 +#define API_WNetServerReqChallenge 126 +#define API_WNetServerAuthenticate 127 +#define API_WNetServerPasswordSet 128 +#define API_WNetAccountDeltas 129 +#define API_WNetAccountSync 130 +#define API_WUserEnum2 131 +#define API_WWkstaUserLogon 132 +#define API_WWkstaUserLogoff 133 +#define API_WLogonEnum 134 +#define API_WErrorLogRead 135 +#define API_WI_NetPathType 136 +#define API_WI_NetPathCanonicalize 137 +#define API_WI_NetPathCompare 138 +#define API_WI_NetNameValidate 139 +#define API_WI_NetNameCanonicalize 140 +#define API_WI_NetNameCompare 141 +#define API_WAuditRead 142 +#define API_WPrintDestAdd 143 +#define API_WPrintDestSetInfo 144 +#define API_WPrintDestDel 145 +#define API_WUserValidate2 146 +#define API_WPrintJobSetInfo 147 +#define API_TI_NetServerDiskEnum 148 +#define API_TI_NetServerDiskGetInfo 149 +#define API_TI_FTVerifyMirror 150 +#define API_TI_FTAbortVerify 151 +#define API_TI_FTGetInfo 152 +#define API_TI_FTSetInfo 153 +#define API_TI_FTLockDisk 154 +#define API_TI_FTFixError 155 +#define API_TI_FTAbortFix 156 +#define API_TI_FTDiagnoseError 157 +#define API_TI_FTGetDriveStats 158 +#define API_TI_FTErrorGetInfo 160 +#define API_NetAccessCheck 163 +#define API_NetAlertRaise 164 +#define API_NetAlertStart 165 +#define API_NetAlertStop 166 +#define API_NetAuditWrite 167 +#define API_NetIRemoteAPI 168 +#define API_NetServiceStatus 169 +#define API_I_NetServerRegister 170 +#define API_I_NetServerDeregister 171 +#define API_I_NetSessionEntryMake 172 +#define API_I_NetSessionEntryClear 173 +#define API_I_NetSessionEntryGetInfo 174 +#define API_I_NetSessionEntrySetInfo 175 +#define API_I_NetConnectionEntryMake 176 +#define API_I_NetConnectionEntryClear 177 +#define API_I_NetConnectionEntrySetInfo 178 +#define API_I_NetConnectionEntryGetInfo 179 +#define API_I_NetFileEntryMake 180 +#define API_I_NetFileEntryClear 181 +#define API_I_NetFileEntrySetInfo 182 +#define API_I_NetFileEntryGetInfo 183 +#define API_AltSrvMessageBufferSend 184 +#define API_AltSrvMessageFileSend 185 +#define API_wI_NetRplWkstaEnum 186 +#define API_wI_NetRplWkstaGetInfo 187 +#define API_wI_NetRplWkstaSetInfo 188 +#define API_wI_NetRplWkstaAdd 189 +#define API_wI_NetRplWkstaDel 190 +#define API_wI_NetRplProfileEnum 191 +#define API_wI_NetRplProfileGetInfo 192 +#define API_wI_NetRplProfileSetInfo 193 +#define API_wI_NetRplProfileAdd 194 +#define API_wI_NetRplProfileDel 195 +#define API_wI_NetRplProfileClone 196 +#define API_wI_NetRplBaseProfileEnum 197 +#define API_WIServerSetInfo 201 +#define API_WPrintDriverEnum 205 +#define API_WPrintQProcessorEnum 206 +#define API_WPrintPortEnum 207 +#define API_WNetWriteUpdateLog 208 +#define API_WNetAccountUpdate 209 +#define API_WNetAccountConfirmUpdate 210 +#define API_WConfigSet 211 +#define API_WAccountsReplicate 212 +#define API_SamOEMChgPasswordUser2_P 214 +#define API_NetServerEnum3 215 +#define API_WprintDriverGetInfo 250 +#define API_WprintDriverSetInfo 251 +#define API_WaliasAdd 252 +#define API_WaliasDel 253 +#define API_WaliasGetInfo 254 +#define API_WaliasSetInfo 255 +#define API_WaliasEnum 256 +#define API_WuserGetLogonAsn 257 +#define API_WuserSetLogonAsn 258 +#define API_WuserGetAppSel 259 +#define API_WuserSetAppSel 260 +#define API_WappAdd 261 +#define API_WappDel 262 +#define API_WappGetInfo 263 +#define API_WappSetInfo 264 +#define API_WappEnum 265 +#define API_WUserDCDBInit 266 +#define API_WDASDAdd 267 +#define API_WDASDDel 268 +#define API_WDASDGetInfo 269 +#define API_WDASDSetInfo 270 +#define API_WDASDEnum 271 +#define API_WDASDCheck 272 +#define API_WDASDCtl 273 +#define API_WuserRemoteLogonCheck 274 +#define API_WUserPasswordSet3 275 +#define API_WCreateRIPLMachine 276 +#define API_WDeleteRIPLMachine 277 +#define API_WGetRIPLMachineInfo 278 +#define API_WSetRIPLMachineInfo 279 +#define API_WEnumRIPLMachine 280 +#define API_WI_ShareAdd 281 +#define API_WI_AliasEnum 282 +#define API_WaccessApply 283 +#define API_WPrt16Query 284 +#define API_WPrt16Set 285 +#define API_WUserDel100 286 +#define API_WUserRemoteLogonCheck2 287 +#define API_WRemoteTODSet 294 +#define API_WprintJobMoveAll 295 +#define API_W16AppParmAdd 296 +#define API_W16AppParmDel 297 +#define API_W16AppParmGet 298 +#define API_W16AppParmSet 299 +#define API_W16RIPLMachineCreate 300 +#define API_W16RIPLMachineGetInfo 301 +#define API_W16RIPLMachineSetInfo 302 +#define API_W16RIPLMachineEnum 303 +#define API_W16RIPLMachineListParmEnum 304 +#define API_W16RIPLMachClassGetInfo 305 +#define API_W16RIPLMachClassEnum 306 +#define API_W16RIPLMachClassCreate 307 +#define API_W16RIPLMachClassSetInfo 308 +#define API_W16RIPLMachClassDelete 309 +#define API_W16RIPLMachClassLPEnum 310 +#define API_W16RIPLMachineDelete 311 +#define API_W16WSLevelGetInfo 312 +#define API_WserverNameAdd 313 +#define API_WserverNameDel 314 +#define API_WserverNameEnum 315 +#define API_I_WDASDEnum 316 +#define API_I_WDASDEnumTerminate 317 +#define API_I_WDASDSetInfo2 318 +#define MAX_RAP_API 318 #ifdef __cplusplus } #endif - #endif /* _SMBSRV_SMB_H */ diff --git a/usr/src/uts/common/smbsrv/smb_fsops.h b/usr/src/uts/common/smbsrv/smb_fsops.h index 4f1e573a5c..5722c4e24a 100644 --- a/usr/src/uts/common/smbsrv/smb_fsops.h +++ b/usr/src/uts/common/smbsrv/smb_fsops.h @@ -30,7 +30,7 @@ * This header file contains all the functions for the interface between * the smb layer and the fs layer. */ -#include <smbsrv/smb_i18n.h> +#include <smbsrv/string.h> #include <smbsrv/smbinfo.h> #include <smbsrv/smb_ktypes.h> #include <smbsrv/smb_vops.h> @@ -69,7 +69,7 @@ int smb_fsop_link(smb_request_t *, cred_t *, smb_node_t *, smb_node_t *, int smb_fsop_rename(smb_request_t *, cred_t *, smb_node_t *, char *, smb_node_t *, - char *); + char *); int smb_fsop_setattr(smb_request_t *, cred_t *, smb_node_t *, smb_attr_t *); @@ -112,12 +112,14 @@ int smb_fsop_frlock(smb_node_t *, smb_lock_t *, boolean_t, cred_t *); * SMB_IGNORE_CASE Perform case-insensitive lookup. * SMB_CATIA Perform CATIA character substitution. * SMB_ABE Perform Access based enumeration/lookup. + * SMB_CASE_SENSITIVE Don't set SMB_IGNORE_CASE based on tree. */ #define SMB_FOLLOW_LINKS 0x00000001 #define SMB_IGNORE_CASE 0x00000002 #define SMB_CATIA 0x00000004 #define SMB_ABE 0x00000008 +#define SMB_CASE_SENSITIVE 0x00000010 #ifdef __cplusplus } diff --git a/usr/src/uts/common/smbsrv/smb_i18n.h b/usr/src/uts/common/smbsrv/smb_i18n.h deleted file mode 100644 index 74804d0056..0000000000 --- a/usr/src/uts/common/smbsrv/smb_i18n.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SMB_I18N_H -#define _SMB_I18N_H - -#pragma ident "%Z%%M% %I% %E% SMI" - -#ifdef __cplusplus -extern "C" { -#endif - -typedef unsigned short mts_wchar_t; - -#ifdef __cplusplus -} -#endif - -#endif /* _SMB_I18N_H */ diff --git a/usr/src/uts/common/smbsrv/smb_incl.h b/usr/src/uts/common/smbsrv/smb_incl.h deleted file mode 100644 index 2d1e61b087..0000000000 --- a/usr/src/uts/common/smbsrv/smb_incl.h +++ /dev/null @@ -1,120 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SMBSRV_SMB_INCL_H -#define _SMBSRV_SMB_INCL_H - -#pragma ident "%Z%%M% %I% %E% SMI" - -#ifdef __cplusplus -extern "C" { -#endif - -#include <sys/types.h> -#include <sys/param.h> -#include <sys/socket.h> -#include <sys/cmn_err.h> -#include <sys/cpuvar.h> -#include <sys/list.h> -#include <sys/sunddi.h> -#include <netinet/in_systm.h> -#include <netinet/in.h> -#include <netinet/ip.h> -#include <netinet/ip_icmp.h> -#include <netinet/ip_var.h> -#include <netinet/tcp.h> -#include <net/if.h> -#include <netinet/if_ether.h> - -#include <sys/errno.h> -#include <sys/ioctl.h> - -#include <smbsrv/alloc.h> -#include <smbsrv/ctype.h> -#include <smbsrv/string.h> - -#include <smbsrv/ntstatus.h> -#include <smbsrv/nterror.h> -#include <smbsrv/doserror.h> -#include <smbsrv/cifs.h> -#include <smbsrv/ntaccess.h> -#include <smbsrv/smbinfo.h> -#include <smbsrv/smb.h> - -#include <smbsrv/smbfmt.h> -#include <smbsrv/smb_kproto.h> - -#define QUEUE_INSERT_HEAD(q, e) \ - { \ - ((e)->forw) = (void *)((q)->forw); \ - ((e)->back) = (void *)(q); \ - ((q)->forw->back) = (void *)(e); \ - ((q)->forw) = (void *)(e); \ - } - - -#define QUEUE_INSERT_TAIL(q, e) \ - { \ - ((e)->back) = (void *)((q)->back); \ - ((e)->forw) = (void *)(q); \ - ((q)->back->forw) = (void *)(e); \ - ((q)->back) = (void *)(e); \ - } - -#define QUEUE_INSERT_SORT(q, e, k, t) \ - { \ - (void *)(t) = (void *)((q)->forw); \ - while (((t)->k) < ((e)->k)) { \ - (void *)(t) = (void *)((t)->forw); \ - } \ - QUEUE_INSERT_TAIL(t, e); \ - } - -#define QUEUE_CLIP(e) \ - { \ - (e)->forw->back = (e)->back; \ - (e)->back->forw = (e)->forw; \ - (e)->forw = 0; \ - (e)->back = 0; \ - } - -/* These should be defined in system header files */ - -extern int atoi(const char *); -extern int getchar(void); - -/* - * PBSHORTCUT - remove this when we replace BYTE/WORD/DWORD to - * uint8_t/uint16_t/uint32_t and <inet/ip.h> gets included by - * files that invoke the following functions. - */ -extern char *inet_ntop(int, const void *, char *, int); -extern int inet_pton(int, char *, void *); - -#ifdef __cplusplus -} -#endif - -#endif /* _SMBSRV_SMB_INCL_H */ diff --git a/usr/src/uts/common/smbsrv/smb_kproto.h b/usr/src/uts/common/smbsrv/smb_kproto.h index e924f189cb..95688dd32f 100644 --- a/usr/src/uts/common/smbsrv/smb_kproto.h +++ b/usr/src/uts/common/smbsrv/smb_kproto.h @@ -34,12 +34,17 @@ extern "C" { #endif +#include <sys/types.h> +#include <sys/param.h> #include <sys/systm.h> #include <sys/socket.h> #include <sys/strsubr.h> #include <sys/socketvar.h> #include <sys/ksocket.h> #include <sys/cred.h> +#include <sys/sunddi.h> +#include <smbsrv/smb.h> +#include <smbsrv/string.h> #include <smbsrv/smb_vops.h> #include <smbsrv/smb_xdr.h> #include <smbsrv/smb_token.h> @@ -149,6 +154,7 @@ smb_sdrc_t smb_nt_transact_notify_change(smb_request_t *, smb_xa_t *); smb_sdrc_t smb_nt_transact_query_security_info(smb_request_t *, smb_xa_t *); smb_sdrc_t smb_nt_transact_set_security_info(smb_request_t *, smb_xa_t *); smb_sdrc_t smb_nt_transact_ioctl(smb_request_t *, smb_xa_t *); +smb_sdrc_t smb_nt_transact_rename(smb_request_t *, smb_xa_t *); smb_sdrc_t smb_com_trans2_open2(smb_request_t *, smb_xa_t *); smb_sdrc_t smb_com_trans2_create_directory(smb_request_t *, smb_xa_t *); @@ -159,6 +165,7 @@ smb_sdrc_t smb_com_trans2_query_path_information(smb_request_t *, smb_xa_t *); smb_sdrc_t smb_com_trans2_query_file_information(smb_request_t *, smb_xa_t *); smb_sdrc_t smb_com_trans2_set_path_information(smb_request_t *, smb_xa_t *); smb_sdrc_t smb_com_trans2_set_file_information(smb_request_t *, smb_xa_t *); +int smb_trans2_rename(smb_request_t *, smb_node_t *, char *, int); /* * Logging functions @@ -399,12 +406,6 @@ void smb_vfs_rele_all(smb_server_t *); boolean_t smb_vfs_cmp(vfs_t *, vfs_t *); boolean_t smb_vfs_is_readonly(vfs_t *); - -/* - * String manipulation function - */ -char *smb_kstrdup(const char *s, size_t n); - /* NOTIFY CHANGE */ void smb_process_session_notify_change_queue(smb_session_t *, smb_tree_t *); void smb_process_node_notify_change_queue(smb_node_t *); @@ -420,11 +421,10 @@ void smb_fem_fini(void); int smb_try_grow(smb_request_t *sr, int64_t new_size); -/* functions from smb_memory_manager.c */ - -void *smbsr_malloc(smb_malloc_list *, size_t); -void *smbsr_realloc(void *, size_t); -void smbsr_free_malloc_list(smb_malloc_list *); +void smb_srm_init(smb_request_t *sr); +void smb_srm_fini(smb_request_t *sr); +void *smb_srm_alloc(smb_request_t *, size_t); +void *smb_srm_realloc(smb_request_t *, void *, size_t); unsigned short smb_worker_getnum(); @@ -612,13 +612,6 @@ uint64_t smb_time_unix_to_nt(timestruc_t *); int netbios_name_isvalid(char *in, char *out); -size_t -unicodestooems(char *oemstring, const mts_wchar_t *unicodestring, - size_t nbytes, unsigned int cpid); - -size_t oemstounicodes(mts_wchar_t *unicodestring, const char *oemstring, - size_t nwchars, unsigned int cpid); - int uioxfer(struct uio *src_uio, struct uio *dst_uio, int n); int smb_match_name(ino64_t, char *, char *, boolean_t); diff --git a/usr/src/uts/common/smbsrv/smb_ktypes.h b/usr/src/uts/common/smbsrv/smb_ktypes.h index 9e4824cdd3..fd0feee85b 100644 --- a/usr/src/uts/common/smbsrv/smb_ktypes.h +++ b/usr/src/uts/common/smbsrv/smb_ktypes.h @@ -58,7 +58,6 @@ extern "C" { #include <smbsrv/smb_xdr.h> #include <smbsrv/netbios.h> #include <smbsrv/smb_vops.h> -#include <smbsrv/ntifs.h> struct smb_disp_entry; struct smb_request; @@ -306,11 +305,6 @@ typedef struct { typedef uint32_t UTIME; /* seconds since Jan 1 1970 */ -typedef struct smb_malloc_list { - struct smb_malloc_list *forw; - struct smb_malloc_list *back; -} smb_malloc_list; - typedef struct smb_llist { krwlock_t ll_lock; list_t ll_list; @@ -939,7 +933,7 @@ typedef struct smb_opipe { /* * The of_ftype of an open file should contain the SMB_FTYPE value - * (cifs.h) returned when the file/pipe was opened. The following + * returned when the file/pipe was opened. The following * assumptions are currently made: * * File Type Node PipeInfo @@ -1215,6 +1209,7 @@ typedef struct open_param { uint32_t action_taken; uint64_t fileid; uint32_t rootdirfid; + smb_ofile_t *dir; /* This is only set by NTTransactCreate */ struct smb_sd *sd; uint8_t op_oplock_level; @@ -1388,7 +1383,7 @@ typedef struct smb_request { struct mbuf_chain command; struct mbuf_chain reply; struct mbuf_chain raw_data; - smb_malloc_list request_storage; + list_t sr_storage; struct smb_xa *r_xa; int andx_prev_wct; int cur_reply_offset; @@ -1442,6 +1437,7 @@ typedef struct smb_request { smb_fqi_t fqi; smb_fqi_t dst_fqi; uint16_t info_level; + uint16_t flags; } dirop; open_param_t open; @@ -1453,14 +1449,23 @@ typedef struct smb_request { kthread_t *sr_worker; } smb_request_t; -#define SMB_READ_PROTOCOL(smb_nh_ptr) \ - LE_IN32(((smb_nethdr_t *)(smb_nh_ptr))->sh_protocol) +/* + * SMB request-specific memory node. + */ +typedef struct smb_srm { + list_node_t srm_lnd; + size_t srm_size; + smb_request_t *srm_sr; +} smb_srm_t; + +#define SMB_READ_PROTOCOL(hdr) \ + LE_IN32(((smb_hdr_t *)(hdr))->protocol) #define SMB_PROTOCOL_MAGIC_INVALID(rd_sr) \ (SMB_READ_PROTOCOL((rd_sr)->sr_request_buf) != SMB_PROTOCOL_MAGIC) -#define SMB_READ_COMMAND(smb_nh_ptr) \ - (((smb_nethdr_t *)(smb_nh_ptr))->sh_command) +#define SMB_READ_COMMAND(hdr) \ + (((smb_hdr_t *)(hdr))->command) #define SMB_IS_WRITERAW(rd_sr) \ (SMB_READ_COMMAND((rd_sr)->sr_request_buf) == SMB_COM_WRITE_RAW) @@ -1512,8 +1517,7 @@ typedef struct smb_xa { int32_t smb_timeout; /* number of milliseconds to await completion */ uint32_t smb_suwcnt; /* set up word count */ - - char *xa_smb_trans_name; + char *xa_pipe_name; int req_disp_param; int req_disp_data; diff --git a/usr/src/uts/common/smbsrv/smb_vops.h b/usr/src/uts/common/smbsrv/smb_vops.h index 4952eea170..b9aee05ac3 100644 --- a/usr/src/uts/common/smbsrv/smb_vops.h +++ b/usr/src/uts/common/smbsrv/smb_vops.h @@ -41,7 +41,7 @@ #include <sys/refstr.h> #include <sys/acl.h> #include <sys/fcntl.h> -#include <smbsrv/smb_i18n.h> +#include <smbsrv/string.h> #ifdef __cplusplus extern "C" { diff --git a/usr/src/uts/common/smbsrv/smbfmt.h b/usr/src/uts/common/smbsrv/smbfmt.h deleted file mode 100644 index 937faf520f..0000000000 --- a/usr/src/uts/common/smbsrv/smbfmt.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SMBSRV_SMBFMT_H -#define _SMBSRV_SMBFMT_H - -#pragma ident "@(#)smbfmt.h 1.2 08/07/30 SMI" - -/* - * SMB message header formats. - */ - -#ifdef __cplusplus -extern "C" { -#endif - -#define SMB_HEADER_ED_FMT "Mbbbwbww8c2.wwww" -#define SMB_HEADER_ED_LEN (4+1+1+1+2+1+2+12+2+2+2+2) -#define SMB_TRANSHDR_ED_FMT "wwwwb.wl2.wwwwb." -#define SMB_TRANSHDR_ED_LEN (2+2+2+2+1+1+2+4+2+2+2+2+2+1+1) -#define SMB_TRANSSHDR_ED_FMT "wwwwwwwww" -#define SMB_TRANSSHDR_ED_LEN (2+2+2+2+2+2+2+2) -#define SMB_TRANS2SHDR_ED_FMT "wwwwwwwww" -#define SMB_TRANS2SHDR_ED_LEN (2+2+2+2+2+2+2+2+2) -/* There is something wrong with this. Should be 38 bytes. It is 37 bytes */ -#define SMB_NT_TRANSHDR_ED_FMT "b2.llllllllbw" -#define SMB_NT_TRANSHDR_ED_LEN (1+2+4+4+4+4+4+4+4+4+1+2) - -#ifdef __cplusplus -} -#endif - -#endif /* _SMBSRV_SMBFMT_H */ diff --git a/usr/src/uts/common/smbsrv/string.h b/usr/src/uts/common/smbsrv/string.h index 6696cbc33d..21b32e328f 100644 --- a/usr/src/uts/common/smbsrv/string.h +++ b/usr/src/uts/common/smbsrv/string.h @@ -19,37 +19,67 @@ * CDDL HEADER END */ /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #ifndef _SMBSRV_STRING_H #define _SMBSRV_STRING_H -#pragma ident "%Z%%M% %I% %E% SMI" - #include <sys/types.h> -#include <smbsrv/smb_i18n.h> #ifdef __cplusplus extern "C" { #endif -extern char *strsubst(char *, char, char); -extern char *strsep(char **, const char *); -extern char *strcanon(char *, const char *); +#define _smb_between(l, c, u) ((l) <= (c) && (c) <= (u)) + +#define smb_isalpha(c) (smb_islower(c) || smb_isupper(c)) +#define smb_isdigit(c) _smb_between('0', (c), '9') +#define smb_isalnum(c) (smb_isalpha(c) || smb_isdigit(c)) +#define smb_isxdigit(c) (smb_isdigit(c) || \ + _smb_between('a', (c), 'f') || \ + _smb_between('A', (c), 'F')) +#define smb_isblank(c) ((c) == ' ' || (c) == '\t') +#define smb_isspace(c) ((c) == ' ' || \ + (c) == '\t' || \ + (c) == '\n' || \ + (c) == '\r' || \ + (c) == '\f') +#define smb_isascii(c) (!((c) &~ 0x7F)) + +/* These macros only apply to ASCII */ +#define smb_isalpha_ascii(c) \ + (_smb_between('a', (c), 'z') || _smb_between('A', (c), 'Z')) +#define smb_isalnum_ascii(c) (smb_isalpha_ascii(c) || smb_isdigit(c)) -extern char *utf8_strupr(char *); -extern char *utf8_strlwr(char *); -extern int utf8_isstrupr(const char *); -extern int utf8_isstrlwr(const char *); -extern int utf8_strcasecmp(const char *, const char *); -extern int utf8_strncasecmp(const char *, const char *, int); -extern int utf8_isstrascii(const char *); +#define smb_isprint(c) _smb_between('!', (c), '~') +#define smb_iscntrl(c) ((((c) >= 0) && ((c) <= 0x1f)) || ((c) == 0x7f)) +#define smb_ispunct(c) (smb_isprint(c) && !smb_isxdigit(c) && !smb_isspace(c)) -extern int smb_match(char *patn, char *str); -extern int smb_match_ci(char *patn, char *str); -extern int smb_match83(char *patn, char *str83); +/* + * These id's should correspond to oemcpg_table smb_oem.c. + */ +typedef enum codepage_id { + OEM_CPG_850 = 0, + OEM_CPG_950, + OEM_CPG_1252, + OEM_CPG_949, + OEM_CPG_936, + OEM_CPG_932, + OEM_CPG_852, + OEM_CPG_1250, + OEM_CPG_1253, + OEM_CPG_737, + OEM_CPG_1254, + OEM_CPG_857, + OEM_CPG_1251, + OEM_CPG_866, + OEM_CPG_1255, + OEM_CPG_862, + OEM_CPG_1256, + OEM_CPG_720 +} codepage_id_t; /* * Maximum number of bytes per multi-byte character. @@ -57,16 +87,64 @@ extern int smb_match83(char *patn, char *str83); #define MTS_MB_CUR_MAX 3 #define MTS_MB_CHAR_MAX MTS_MB_CUR_MAX -size_t mts_mbstowcs(mts_wchar_t *, const char *, size_t); -size_t mts_wcstombs(char *, const mts_wchar_t *, size_t); -int mts_mbtowc(mts_wchar_t *, const char *, size_t); -int mts_wctomb(char *, mts_wchar_t); +typedef uint16_t smb_wchar_t; + +/* + * Labels to define whether a code page table entry is an uppercase + * character, a lowercase character or neither. One of these values + * should appear in the ctype field of the code page tables. + */ +#define CODEPAGE_ISNONE 0x00 +#define CODEPAGE_ISUPPER 0x01 +#define CODEPAGE_ISLOWER 0x02 + +/* + * The structure of a code page entry. Each code page table will + * consist of an array of 256 codepage entries. + * + * ctype indicates case of the value. + * upper indicates the uppercase equivalent value. + * lower indicates the lowercase equivalent value. + */ +typedef struct smb_codepage { + unsigned char ctype; + smb_wchar_t upper; + smb_wchar_t lower; +} smb_codepage_t; + +void smb_codepage_init(void); + +int smb_isupper(int); +int smb_islower(int); +int smb_toupper(int); +int smb_tolower(int); +char *smb_strupr(char *); +char *smb_strlwr(char *); +int smb_isstrupr(const char *); +int smb_isstrlwr(const char *); +int smb_strcasecmp(const char *, const char *, size_t); + +int smb_match(char *patn, char *str); +int smb_match_ci(char *patn, char *str); +int smb_match83(char *patn, char *str83); + +size_t smb_mbstowcs(smb_wchar_t *, const char *, size_t); +size_t smb_wcstombs(char *, const smb_wchar_t *, size_t); +int smb_mbtowc(smb_wchar_t *, const char *, size_t); +int smb_wctomb(char *, smb_wchar_t); + +size_t smb_wcequiv_strlen(const char *); +size_t smb_sbequiv_strlen(const char *); + +int smb_stombs(char *, char *, int); +int smb_mbstos(char *, const char *); -size_t mts_wcequiv_strlen(const char *); -size_t mts_sbequiv_strlen(const char *); +size_t ucstooem(char *, const smb_wchar_t *, size_t, uint32_t); +size_t oemtoucs(smb_wchar_t *, const char *, size_t, uint32_t); -int mts_stombs(char *, char *, int); -int mts_mbstos(char *, const char *); +char *strsubst(char *, char, char); +char *strsep(char **, const char *); +char *strcanon(char *, const char *); #ifdef __cplusplus } |