1da6c28aaSamw /* 2da6c28aaSamw * CDDL HEADER START 3da6c28aaSamw * 4da6c28aaSamw * The contents of this file are subject to the terms of the 5da6c28aaSamw * Common Development and Distribution License (the "License"). 6da6c28aaSamw * You may not use this file except in compliance with the License. 7da6c28aaSamw * 8da6c28aaSamw * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9da6c28aaSamw * or http://www.opensolaris.org/os/licensing. 10da6c28aaSamw * See the License for the specific language governing permissions 11da6c28aaSamw * and limitations under the License. 12da6c28aaSamw * 13da6c28aaSamw * When distributing Covered Code, include this CDDL HEADER in each 14da6c28aaSamw * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15da6c28aaSamw * If applicable, add the following below this CDDL HEADER, with the 16da6c28aaSamw * fields enclosed by brackets "[]" replaced with your own identifying 17da6c28aaSamw * information: Portions Copyright [yyyy] [name of copyright owner] 18da6c28aaSamw * 19da6c28aaSamw * CDDL HEADER END 20da6c28aaSamw */ 21da6c28aaSamw /* 22c5866007SKeyur Desai * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. 23*68b2bbf2SGordon Ross * Copyright 2015 Nexenta Systems, Inc. All rights reserved. 24da6c28aaSamw */ 25da6c28aaSamw 26da6c28aaSamw #ifndef _SMBSRV_SMB_XDR_H 27da6c28aaSamw #define _SMBSRV_SMB_XDR_H 28da6c28aaSamw 29da6c28aaSamw #ifdef __cplusplus 30da6c28aaSamw extern "C" { 31da6c28aaSamw #endif 32da6c28aaSamw 33da6c28aaSamw #include <rpc/xdr.h> 34da6c28aaSamw #include <sys/param.h> 359fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <sys/avl.h> 36b819cea2SGordon Ross #include <sys/list.h> 37fe1c642dSBill Krier #include <smbsrv/wintypes.h> 38fe1c642dSBill Krier #include <smbsrv/smb_sid.h> 397f667e74Sjose borrego #include <smbsrv/smbinfo.h> 401fcced4cSJordan Brown #include <smbsrv/smb_ioctl.h> 419fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <smbsrv/smb_sid.h> 42148c5f43SAlan Wright #include <smbsrv/smb_share.h> 439fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <smbsrv/smb_dfs.h> 44148c5f43SAlan Wright #include <smbsrv/wintypes.h> 45da6c28aaSamw 46b819cea2SGordon Ross #if defined(_KERNEL) || defined(_FAKE_KERNEL) 47b819cea2SGordon Ross #include <sys/sysmacros.h> 48da6c28aaSamw #define xdr_int8_t xdr_char 49da6c28aaSamw #define xdr_uint8_t xdr_u_char 50da6c28aaSamw #define xdr_int16_t xdr_short 51da6c28aaSamw #define xdr_uint16_t xdr_u_short 52b819cea2SGordon Ross #else /* _KERNEL */ 53b819cea2SGordon Ross #include <stddef.h> /* offsetof */ 54da6c28aaSamw #endif /* _KERNEL */ 55da6c28aaSamw 569fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* null-terminated string */ 579fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_string { 58da6c28aaSamw char *buf; 599fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_string_t; 60da6c28aaSamw 61b819cea2SGordon Ross struct smb_buf32; 62da6c28aaSamw 63*68b2bbf2SGordon Ross /* 64*68b2bbf2SGordon Ross * Initial message on server named pipes. 65*68b2bbf2SGordon Ross * Followed by smb_netuserinfo 66*68b2bbf2SGordon Ross */ 67*68b2bbf2SGordon Ross typedef struct smb_pipehdr { 68*68b2bbf2SGordon Ross uint32_t ph_magic; 69*68b2bbf2SGordon Ross uint32_t ph_uilen; 70*68b2bbf2SGordon Ross } smb_pipehdr_t; 71*68b2bbf2SGordon Ross 72*68b2bbf2SGordon Ross #define SMB_PIPE_HDR_MAGIC 0x50495045 /* PIPE */ 733db3f65cSamw 743db3f65cSamw /* 75*68b2bbf2SGordon Ross * Maximum message size for SMB named pipes. 76*68b2bbf2SGordon Ross * Should be less than PIPE_BUF (5120). 77*68b2bbf2SGordon Ross * Use the same value Windows does. 783db3f65cSamw */ 79*68b2bbf2SGordon Ross #define SMB_PIPE_MAX_MSGSIZE 4280 80*68b2bbf2SGordon Ross 81*68b2bbf2SGordon Ross /* 82*68b2bbf2SGordon Ross * Door up-call stuff shared with smbd 83*68b2bbf2SGordon Ross */ 843db3f65cSamw 859fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define SMB_DOOR_HDR_MAGIC 0x444F4F52 /* DOOR */ 869fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 879fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 889fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Door header flags. 899fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 909fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define SMB_DF_ASYNC 0x00000001 /* Asynchronous call */ 919fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define SMB_DF_SYSSPACE 0x00000002 /* Called from the kernel */ 929fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define SMB_DF_USERSPACE 0x00000004 /* Called from user space */ 93b819cea2SGordon Ross #define SMB_DF_FAKE_KERNEL 0x00000008 /* Called from fake kernel */ 949fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 959fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 969fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Header for door calls. The op codes and return codes are defined 979fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * in smb_door.h. The header is here to make it available to XDR. 989fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * 999fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * fid For opipe: the pipe identifier. 1009fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * op The door operation being invoked. 1019fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * txid Unique transaction id for the current door call. 1029fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * datalen Bytes of data following the header (excludes the header). 1039fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * resid For opipe: the number of bytes remaining in the server. 1049fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * door_rc Return code provided by the door server. 1059fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * status A pass-through status provided by the door operation. 1069fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 1079fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_doorhdr { 1089fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_magic; 1099fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_flags; 1109fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_fid; 1119fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_op; 1129fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_txid; 1139fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_datalen; 1149fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_resid; 1159fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_door_rc; 1169fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_status; 1179fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_doorhdr_t; 1183db3f65cSamw 1191fcced4cSJordan Brown typedef struct smb_netuserinfo { 1201fcced4cSJordan Brown uint64_t ui_session_id; 121c5866007SKeyur Desai uint16_t ui_smb_uid; 1221fcced4cSJordan Brown uint16_t ui_domain_len; 1231fcced4cSJordan Brown char *ui_domain; 1241fcced4cSJordan Brown uint16_t ui_account_len; 1251fcced4cSJordan Brown char *ui_account; 126c5866007SKeyur Desai uid_t ui_posix_uid; 1271fcced4cSJordan Brown uint16_t ui_workstation_len; 1281fcced4cSJordan Brown char *ui_workstation; 1291fcced4cSJordan Brown smb_inaddr_t ui_ipaddr; 1301fcced4cSJordan Brown int32_t ui_native_os; 1311fcced4cSJordan Brown int64_t ui_logon_time; 1321fcced4cSJordan Brown uint32_t ui_numopens; 1331fcced4cSJordan Brown uint32_t ui_flags; 1341fcced4cSJordan Brown } smb_netuserinfo_t; 135da6c28aaSamw 1361fcced4cSJordan Brown typedef struct smb_opennum { 1371fcced4cSJordan Brown uint32_t open_users; 1381fcced4cSJordan Brown uint32_t open_trees; 1391fcced4cSJordan Brown uint32_t open_files; 1401fcced4cSJordan Brown uint32_t qualtype; 1411fcced4cSJordan Brown char qualifier[MAXNAMELEN]; 1421fcced4cSJordan Brown } smb_opennum_t; 1431fcced4cSJordan Brown 1441fcced4cSJordan Brown typedef struct smb_netconnectinfo { 1451fcced4cSJordan Brown uint32_t ci_id; 1461fcced4cSJordan Brown uint32_t ci_type; 1471fcced4cSJordan Brown uint32_t ci_numopens; 1481fcced4cSJordan Brown uint32_t ci_numusers; 1491fcced4cSJordan Brown uint32_t ci_time; 1501fcced4cSJordan Brown uint32_t ci_namelen; 1511fcced4cSJordan Brown uint32_t ci_sharelen; 1521fcced4cSJordan Brown char *ci_username; 1531fcced4cSJordan Brown char *ci_share; 1541fcced4cSJordan Brown } smb_netconnectinfo_t; 1551fcced4cSJordan Brown 1561fcced4cSJordan Brown typedef struct smb_netfileinfo { 1571fcced4cSJordan Brown uint16_t fi_fid; 1581fcced4cSJordan Brown uint32_t fi_uniqid; 1591fcced4cSJordan Brown uint32_t fi_permissions; 1601fcced4cSJordan Brown uint32_t fi_numlocks; 1611fcced4cSJordan Brown uint32_t fi_pathlen; 1621fcced4cSJordan Brown uint32_t fi_namelen; 1631fcced4cSJordan Brown char *fi_path; 1641fcced4cSJordan Brown char *fi_username; 1651fcced4cSJordan Brown } smb_netfileinfo_t; 1661fcced4cSJordan Brown 1671fcced4cSJordan Brown typedef struct smb_netsvcitem { 1681fcced4cSJordan Brown list_node_t nsi_lnd; 1691fcced4cSJordan Brown union { 1701fcced4cSJordan Brown smb_netuserinfo_t nsi_user; 1711fcced4cSJordan Brown smb_netconnectinfo_t nsi_tree; 1721fcced4cSJordan Brown smb_netfileinfo_t nsi_ofile; 1731fcced4cSJordan Brown } nsi_un; 1741fcced4cSJordan Brown } smb_netsvcitem_t; 1751fcced4cSJordan Brown 1761fcced4cSJordan Brown typedef struct smb_netsvc { 1771fcced4cSJordan Brown list_t ns_list; 1781fcced4cSJordan Brown smb_netsvcitem_t *ns_items; 1791fcced4cSJordan Brown smb_ioc_svcenum_t *ns_ioc; 1801fcced4cSJordan Brown uint32_t ns_ioclen; 1811fcced4cSJordan Brown } smb_netsvc_t; 182da6c28aaSamw 183da6c28aaSamw 184b819cea2SGordon Ross bool_t smb_buf32_xdr(XDR *, struct smb_buf32 *); 1859fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_string_xdr(XDR *, smb_string_t *); 1869fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_inaddr_xdr(XDR *, smb_inaddr_t *); 1879fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1889fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States const char *smb_doorhdr_opname(uint32_t); 1899fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int smb_doorhdr_encode(smb_doorhdr_t *, uint8_t *, uint32_t); 1909fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int smb_doorhdr_decode(smb_doorhdr_t *, uint8_t *, uint32_t); 1919fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_doorhdr_xdr(XDR *xdrs, smb_doorhdr_t *objp); 1921fcced4cSJordan Brown int smb_netuserinfo_encode(smb_netuserinfo_t *, uint8_t *, uint32_t, uint_t *); 1931fcced4cSJordan Brown int smb_netuserinfo_decode(smb_netuserinfo_t *, uint8_t *, uint32_t, uint_t *); 1941fcced4cSJordan Brown bool_t smb_netuserinfo_xdr(XDR *, smb_netuserinfo_t *); 1951fcced4cSJordan Brown int smb_netconnectinfo_encode(smb_netconnectinfo_t *, uint8_t *, uint32_t, 19629bd2886SAlan Wright uint_t *); 1971fcced4cSJordan Brown int smb_netconnectinfo_decode(smb_netconnectinfo_t *, uint8_t *, uint32_t, 19829bd2886SAlan Wright uint_t *); 1991fcced4cSJordan Brown bool_t smb_netconnectinfo_xdr(XDR *, smb_netconnectinfo_t *); 2001fcced4cSJordan Brown int smb_netfileinfo_encode(smb_netfileinfo_t *, uint8_t *, uint32_t, uint_t *); 2011fcced4cSJordan Brown int smb_netfileinfo_decode(smb_netfileinfo_t *, uint8_t *, uint32_t, uint_t *); 2021fcced4cSJordan Brown bool_t smb_netfileinfo_xdr(XDR *, smb_netfileinfo_t *); 2031fcced4cSJordan Brown 204fe1c642dSBill Krier typedef uint16_t sid_type_t; 205fe1c642dSBill Krier 206fe1c642dSBill Krier typedef struct lsa_account { 207fe1c642dSBill Krier ntstatus_t a_status; 208fe1c642dSBill Krier sid_type_t a_sidtype; 209fe1c642dSBill Krier char a_domain[MAXNAMELEN]; 210fe1c642dSBill Krier char a_name[MAXNAMELEN]; 211fe1c642dSBill Krier char a_sid[SMB_SID_STRSZ]; 212fe1c642dSBill Krier } lsa_account_t; 213fe1c642dSBill Krier 214fe1c642dSBill Krier int lsa_account_encode(lsa_account_t *, uint8_t *, uint32_t); 215fe1c642dSBill Krier int lsa_account_decode(lsa_account_t *, uint8_t *, uint32_t); 216fe1c642dSBill Krier bool_t lsa_account_xdr(XDR *, lsa_account_t *); 217fe1c642dSBill Krier 21889dc44ceSjose borrego /* 21989dc44ceSjose borrego * VSS Door Structures 22089dc44ceSjose borrego */ 22189dc44ceSjose borrego #define SMB_VSS_GMT_SIZE sizeof ("@GMT-yyyy.mm.dd-hh.mm.ss") 22289dc44ceSjose borrego 2239fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_gmttoken_query { 2249fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t gtq_count; 2259fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States char *gtq_path; 2269fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_gmttoken_query_t; 22789dc44ceSjose borrego 2289fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef char *smb_gmttoken_t; 22989dc44ceSjose borrego 2309fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_gmttoken_response { 2319fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t gtr_count; 23289dc44ceSjose borrego struct { 2339fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint_t gtr_gmttokens_len; 2349fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_gmttoken_t *gtr_gmttokens_val; 2359fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } gtr_gmttokens; 2369fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_gmttoken_response_t; 23789dc44ceSjose borrego 2389fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_gmttoken_snapname { 2399fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States char *gts_path; 2409fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States char *gts_gmttoken; 2419fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_gmttoken_snapname_t; 24289dc44ceSjose borrego 2439fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_gmttoken_query_xdr(XDR *, smb_gmttoken_query_t *); 2449fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_gmttoken_response_xdr(XDR *, smb_gmttoken_response_t *); 2459fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_gmttoken_snapname_xdr(XDR *, smb_gmttoken_snapname_t *); 2469fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2479fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 2489fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * User and Group Quotas 2499fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * 2509fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * SMB User and Group quota values of SMB_QUOTA_UNLIMITED mean 2519fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * No Limit. This maps to 0 (none) on ZFS. 2529fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 2539fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define SMB_QUOTA_UNLIMITED 0xFFFFFFFFFFFFFFFF 2549fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2559fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_quota { 2569fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_node_t q_list_node; 2579fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States char q_sidstr[SMB_SID_STRSZ]; 2589fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t q_sidtype; 2599fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint64_t q_used; 2609fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint64_t q_thresh; 2619fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint64_t q_limit; 2629fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States avl_node_t q_avl_node; 2639fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_quota_t; 2649fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2659fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_quota_sid { 2669fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_node_t qs_list_node; 2679fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States char qs_sidstr[SMB_SID_STRSZ]; 2689fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_quota_sid_t; 2699fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2709fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef enum { 2719fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States SMB_QUOTA_QUERY_INVALID_OP, 2729fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States SMB_QUOTA_QUERY_SIDLIST, 2739fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States SMB_QUOTA_QUERY_STARTSID, 2749fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States SMB_QUOTA_QUERY_ALL 2759fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_quota_query_op_t; 2769fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2779fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_quota_query { 2789fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States char *qq_root_path; 2799fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t qq_query_op; /* smb_quota_query_op_t */ 2809fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t qq_single; 2819fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t qq_restart; 2829fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t qq_max_quota; 2839fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_t qq_sid_list; /* list of smb_quota_sid_t */ 2849fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_quota_query_t; 2859fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2869fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_quota_response { 2879fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t qr_status; 2889fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_t qr_quota_list; /* list of smb_quota_t */ 2899fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_quota_response_t; 2909fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2919fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_quota_set { 2929fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States char *qs_root_path; 2939fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_t qs_quota_list; /* list of smb_quota_t */ 2949fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_quota_set_t; 2959fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2969fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_quota_query_xdr(XDR *, smb_quota_query_t *); 2979fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_quota_response_xdr(XDR *, smb_quota_response_t *); 2989fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_quota_set_xdr(XDR *, smb_quota_set_t *); 2999fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 3009fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct dfs_referral_query { 3019fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_reftype_t rq_type; 3029fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States char *rq_path; 3039fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } dfs_referral_query_t; 3049fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 3059fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct dfs_referral_response { 3069fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_info_t rp_referrals; 3079fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t rp_status; 3089fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } dfs_referral_response_t; 3099fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 3109fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t dfs_referral_query_xdr(XDR *, dfs_referral_query_t *); 3119fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t dfs_referral_response_xdr(XDR *, dfs_referral_response_t *); 3123db3f65cSamw 313148c5f43SAlan Wright typedef struct smb_shr_hostaccess_query { 314148c5f43SAlan Wright char *shq_none; 315148c5f43SAlan Wright char *shq_ro; 316148c5f43SAlan Wright char *shq_rw; 317148c5f43SAlan Wright uint32_t shq_flag; 318148c5f43SAlan Wright smb_inaddr_t shq_ipaddr; 319148c5f43SAlan Wright } smb_shr_hostaccess_query_t; 320148c5f43SAlan Wright 321148c5f43SAlan Wright bool_t smb_shr_hostaccess_query_xdr(XDR *, smb_shr_hostaccess_query_t *); 322148c5f43SAlan Wright bool_t smb_shr_execinfo_xdr(XDR *, smb_shr_execinfo_t *); 323148c5f43SAlan Wright 324da6c28aaSamw #ifdef __cplusplus 325da6c28aaSamw } 326da6c28aaSamw #endif 327da6c28aaSamw 328da6c28aaSamw #endif /* _SMBSRV_SMB_XDR_H */ 329