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 /* 22*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 23da6c28aaSamw * Use is subject to license terms. 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> 35*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <sys/avl.h> 36fe1c642dSBill Krier #include <smbsrv/wintypes.h> 37fe1c642dSBill Krier #include <smbsrv/smb_sid.h> 387f667e74Sjose borrego #include <smbsrv/smbinfo.h> 391fcced4cSJordan Brown #include <smbsrv/smb_ioctl.h> 40*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <smbsrv/smb_sid.h> 41*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <smbsrv/wintypes.h> 42*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <smbsrv/smb_dfs.h> 43da6c28aaSamw 44da6c28aaSamw typedef struct smb_dr_kshare { 45da6c28aaSamw int32_t k_op; 46da6c28aaSamw char *k_path; 47da6c28aaSamw char *k_sharename; 48da6c28aaSamw } smb_dr_kshare_t; 49da6c28aaSamw 50da6c28aaSamw #ifdef _KERNEL 51da6c28aaSamw #define xdr_int8_t xdr_char 52da6c28aaSamw #define xdr_uint8_t xdr_u_char 53da6c28aaSamw #define xdr_int16_t xdr_short 54da6c28aaSamw #define xdr_uint16_t xdr_u_short 55da6c28aaSamw 56da6c28aaSamw smb_dr_kshare_t *smb_share_mkabsolute(uint8_t *buf, uint32_t len); 57da6c28aaSamw #else 58da6c28aaSamw uint8_t *smb_kshare_mkselfrel(smb_dr_kshare_t *kshare, uint32_t *len); 59da6c28aaSamw #endif /* _KERNEL */ 60da6c28aaSamw 61*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* null-terminated string */ 62*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_string { 63da6c28aaSamw char *buf; 64*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_string_t; 65da6c28aaSamw 66*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 32-bit opaque buffer (non-null terminated strings) */ 67*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_buf32 { 68*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t len; 69*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint8_t *val; 70*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_buf32_t; 71da6c28aaSamw 723db3f65cSamw #define SMB_OPIPE_HDR_MAGIC 0x4F484452 /* OHDR */ 733db3f65cSamw #define SMB_OPIPE_DOOR_BUFSIZE (30 * 1024) 743db3f65cSamw 75da6c28aaSamw /* 763db3f65cSamw * Door operations for opipes. 77da6c28aaSamw */ 783db3f65cSamw typedef enum { 793db3f65cSamw SMB_OPIPE_NULL = 0, 803db3f65cSamw SMB_OPIPE_LOOKUP, 813db3f65cSamw SMB_OPIPE_OPEN, 823db3f65cSamw SMB_OPIPE_CLOSE, 833db3f65cSamw SMB_OPIPE_READ, 843db3f65cSamw SMB_OPIPE_WRITE, 85*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States SMB_OPIPE_EXEC 863db3f65cSamw } smb_opipe_op_t; 873db3f65cSamw 88*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define SMB_DOOR_HDR_MAGIC 0x444F4F52 /* DOOR */ 89*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 90*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 91*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Door header flags. 92*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 93*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define SMB_DF_ASYNC 0x00000001 /* Asynchronous call */ 94*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define SMB_DF_SYSSPACE 0x00000002 /* Called from the kernel */ 95*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define SMB_DF_USERSPACE 0x00000004 /* Called from user space */ 96*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 97*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 98*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Header for door calls. The op codes and return codes are defined 99*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * in smb_door.h. The header is here to make it available to XDR. 100*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * 101*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * fid For opipe: the pipe identifier. 102*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * op The door operation being invoked. 103*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * txid Unique transaction id for the current door call. 104*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * datalen Bytes of data following the header (excludes the header). 105*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * resid For opipe: the number of bytes remaining in the server. 106*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * door_rc Return code provided by the door server. 107*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * status A pass-through status provided by the door operation. 108*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 109*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_doorhdr { 110*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_magic; 111*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_flags; 112*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_fid; 113*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_op; 114*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_txid; 115*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_datalen; 116*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_resid; 117*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_door_rc; 118*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t dh_status; 119*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_doorhdr_t; 1203db3f65cSamw 1211fcced4cSJordan Brown typedef struct smb_netuserinfo { 1221fcced4cSJordan Brown uint64_t ui_session_id; 1231fcced4cSJordan Brown uint16_t ui_uid; 1241fcced4cSJordan Brown uint16_t ui_domain_len; 1251fcced4cSJordan Brown char *ui_domain; 1261fcced4cSJordan Brown uint16_t ui_account_len; 1271fcced4cSJordan Brown char *ui_account; 1281fcced4cSJordan Brown uint16_t ui_workstation_len; 1291fcced4cSJordan Brown char *ui_workstation; 1301fcced4cSJordan Brown smb_inaddr_t ui_ipaddr; 1311fcced4cSJordan Brown int32_t ui_native_os; 1321fcced4cSJordan Brown int64_t ui_logon_time; 1331fcced4cSJordan Brown uint32_t ui_numopens; 1341fcced4cSJordan Brown uint32_t ui_flags; 1351fcced4cSJordan Brown } smb_netuserinfo_t; 1361fcced4cSJordan Brown 1371fcced4cSJordan Brown typedef struct smb_opennum { 1381fcced4cSJordan Brown uint32_t open_users; 1391fcced4cSJordan Brown uint32_t open_trees; 1401fcced4cSJordan Brown uint32_t open_files; 1411fcced4cSJordan Brown uint32_t qualtype; 1421fcced4cSJordan Brown char qualifier[MAXNAMELEN]; 1431fcced4cSJordan Brown } smb_opennum_t; 1441fcced4cSJordan Brown 1451fcced4cSJordan Brown typedef struct smb_netconnectinfo { 1461fcced4cSJordan Brown uint32_t ci_id; 1471fcced4cSJordan Brown uint32_t ci_type; 1481fcced4cSJordan Brown uint32_t ci_numopens; 1491fcced4cSJordan Brown uint32_t ci_numusers; 1501fcced4cSJordan Brown uint32_t ci_time; 1511fcced4cSJordan Brown uint32_t ci_namelen; 1521fcced4cSJordan Brown uint32_t ci_sharelen; 1531fcced4cSJordan Brown char *ci_username; 1541fcced4cSJordan Brown char *ci_share; 1551fcced4cSJordan Brown } smb_netconnectinfo_t; 1561fcced4cSJordan Brown 1571fcced4cSJordan Brown typedef struct smb_netfileinfo { 1581fcced4cSJordan Brown uint16_t fi_fid; 1591fcced4cSJordan Brown uint32_t fi_uniqid; 1601fcced4cSJordan Brown uint32_t fi_permissions; 1611fcced4cSJordan Brown uint32_t fi_numlocks; 1621fcced4cSJordan Brown uint32_t fi_pathlen; 1631fcced4cSJordan Brown uint32_t fi_namelen; 1641fcced4cSJordan Brown char *fi_path; 1651fcced4cSJordan Brown char *fi_username; 1661fcced4cSJordan Brown } smb_netfileinfo_t; 1671fcced4cSJordan Brown 1681fcced4cSJordan Brown typedef struct smb_netsvcitem { 1691fcced4cSJordan Brown list_node_t nsi_lnd; 1701fcced4cSJordan Brown union { 1711fcced4cSJordan Brown smb_netuserinfo_t nsi_user; 1721fcced4cSJordan Brown smb_netconnectinfo_t nsi_tree; 1731fcced4cSJordan Brown smb_netfileinfo_t nsi_ofile; 1741fcced4cSJordan Brown } nsi_un; 1751fcced4cSJordan Brown } smb_netsvcitem_t; 1761fcced4cSJordan Brown 1771fcced4cSJordan Brown typedef struct smb_netsvc { 1781fcced4cSJordan Brown list_t ns_list; 1791fcced4cSJordan Brown smb_netsvcitem_t *ns_items; 1801fcced4cSJordan Brown smb_ioc_svcenum_t *ns_ioc; 1811fcced4cSJordan Brown uint32_t ns_ioclen; 1821fcced4cSJordan Brown } smb_netsvc_t; 183da6c28aaSamw 184da6c28aaSamw 185*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_buf32_xdr(XDR *, smb_buf32_t *); 186*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_string_xdr(XDR *, smb_string_t *); 187*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_dr_kshare_xdr(XDR *, smb_dr_kshare_t *); 188*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_inaddr_xdr(XDR *, smb_inaddr_t *); 189*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 190*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States const char *smb_doorhdr_opname(uint32_t); 191*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int smb_doorhdr_encode(smb_doorhdr_t *, uint8_t *, uint32_t); 192*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int smb_doorhdr_decode(smb_doorhdr_t *, uint8_t *, uint32_t); 193*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_doorhdr_xdr(XDR *xdrs, smb_doorhdr_t *objp); 1941fcced4cSJordan Brown int smb_netuserinfo_encode(smb_netuserinfo_t *, uint8_t *, uint32_t, uint_t *); 1951fcced4cSJordan Brown int smb_netuserinfo_decode(smb_netuserinfo_t *, uint8_t *, uint32_t, uint_t *); 1961fcced4cSJordan Brown bool_t smb_netuserinfo_xdr(XDR *, smb_netuserinfo_t *); 1971fcced4cSJordan Brown int smb_netconnectinfo_encode(smb_netconnectinfo_t *, uint8_t *, uint32_t, 19829bd2886SAlan Wright uint_t *); 1991fcced4cSJordan Brown int smb_netconnectinfo_decode(smb_netconnectinfo_t *, uint8_t *, uint32_t, 20029bd2886SAlan Wright uint_t *); 2011fcced4cSJordan Brown bool_t smb_netconnectinfo_xdr(XDR *, smb_netconnectinfo_t *); 2021fcced4cSJordan Brown int smb_netfileinfo_encode(smb_netfileinfo_t *, uint8_t *, uint32_t, uint_t *); 2031fcced4cSJordan Brown int smb_netfileinfo_decode(smb_netfileinfo_t *, uint8_t *, uint32_t, uint_t *); 2041fcced4cSJordan Brown bool_t smb_netfileinfo_xdr(XDR *, smb_netfileinfo_t *); 2051fcced4cSJordan Brown 206fe1c642dSBill Krier typedef uint16_t sid_type_t; 207fe1c642dSBill Krier 208fe1c642dSBill Krier typedef struct lsa_account { 209fe1c642dSBill Krier ntstatus_t a_status; 210fe1c642dSBill Krier sid_type_t a_sidtype; 211fe1c642dSBill Krier char a_domain[MAXNAMELEN]; 212fe1c642dSBill Krier char a_name[MAXNAMELEN]; 213fe1c642dSBill Krier char a_sid[SMB_SID_STRSZ]; 214fe1c642dSBill Krier } lsa_account_t; 215fe1c642dSBill Krier 216fe1c642dSBill Krier int lsa_account_encode(lsa_account_t *, uint8_t *, uint32_t); 217fe1c642dSBill Krier int lsa_account_decode(lsa_account_t *, uint8_t *, uint32_t); 218fe1c642dSBill Krier bool_t lsa_account_xdr(XDR *, lsa_account_t *); 219fe1c642dSBill Krier 22089dc44ceSjose borrego /* 22189dc44ceSjose borrego * VSS Door Structures 22289dc44ceSjose borrego */ 22389dc44ceSjose borrego #define SMB_VSS_GMT_SIZE sizeof ("@GMT-yyyy.mm.dd-hh.mm.ss") 22489dc44ceSjose borrego 225*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_gmttoken_query { 226*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t gtq_count; 227*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States char *gtq_path; 228*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_gmttoken_query_t; 22989dc44ceSjose borrego 230*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef char *smb_gmttoken_t; 23189dc44ceSjose borrego 232*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_gmttoken_response { 233*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t gtr_count; 23489dc44ceSjose borrego struct { 235*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint_t gtr_gmttokens_len; 236*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_gmttoken_t *gtr_gmttokens_val; 237*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } gtr_gmttokens; 238*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_gmttoken_response_t; 239*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 240*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_gmttoken_snapname { 241*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States char *gts_path; 242*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States char *gts_gmttoken; 243*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_gmttoken_snapname_t; 244*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 245*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_gmttoken_query_xdr(XDR *, smb_gmttoken_query_t *); 246*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_gmttoken_response_xdr(XDR *, smb_gmttoken_response_t *); 247*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_gmttoken_snapname_xdr(XDR *, smb_gmttoken_snapname_t *); 248*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 249*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 250*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * User and Group Quotas 251*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * 252*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * SMB User and Group quota values of SMB_QUOTA_UNLIMITED mean 253*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * No Limit. This maps to 0 (none) on ZFS. 254*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 255*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define SMB_QUOTA_UNLIMITED 0xFFFFFFFFFFFFFFFF 256*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 257*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_quota { 258*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_node_t q_list_node; 259*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States char q_sidstr[SMB_SID_STRSZ]; 260*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t q_sidtype; 261*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint64_t q_used; 262*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint64_t q_thresh; 263*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint64_t q_limit; 264*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States avl_node_t q_avl_node; 265*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_quota_t; 266*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 267*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_quota_sid { 268*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_node_t qs_list_node; 269*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States char qs_sidstr[SMB_SID_STRSZ]; 270*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_quota_sid_t; 271*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 272*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef enum { 273*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States SMB_QUOTA_QUERY_INVALID_OP, 274*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States SMB_QUOTA_QUERY_SIDLIST, 275*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States SMB_QUOTA_QUERY_STARTSID, 276*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States SMB_QUOTA_QUERY_ALL 277*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_quota_query_op_t; 278*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 279*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_quota_query { 280*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States char *qq_root_path; 281*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t qq_query_op; /* smb_quota_query_op_t */ 282*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t qq_single; 283*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t qq_restart; 284*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t qq_max_quota; 285*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_t qq_sid_list; /* list of smb_quota_sid_t */ 286*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_quota_query_t; 287*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 288*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_quota_response { 289*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t qr_status; 290*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_t qr_quota_list; /* list of smb_quota_t */ 291*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_quota_response_t; 292*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 293*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_quota_set { 294*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States char *qs_root_path; 295*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_t qs_quota_list; /* list of smb_quota_t */ 296*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_quota_set_t; 297*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 298*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_quota_query_xdr(XDR *, smb_quota_query_t *); 299*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_quota_response_xdr(XDR *, smb_quota_response_t *); 300*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_quota_set_xdr(XDR *, smb_quota_set_t *); 301*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 302*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct dfs_referral_query { 303*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_reftype_t rq_type; 304*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States char *rq_path; 305*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } dfs_referral_query_t; 306*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 307*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct dfs_referral_response { 308*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_info_t rp_referrals; 309*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t rp_status; 310*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } dfs_referral_response_t; 311*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 312*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t dfs_referral_query_xdr(XDR *, dfs_referral_query_t *); 313*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t dfs_referral_response_xdr(XDR *, dfs_referral_response_t *); 3143db3f65cSamw 315da6c28aaSamw #ifdef __cplusplus 316da6c28aaSamw } 317da6c28aaSamw #endif 318da6c28aaSamw 319da6c28aaSamw #endif /* _SMBSRV_SMB_XDR_H */ 320