17c478bd9Sstevel@tonic-gate /* 27c478bd9Sstevel@tonic-gate * CDDL HEADER START 37c478bd9Sstevel@tonic-gate * 47c478bd9Sstevel@tonic-gate * The contents of this file are subject to the terms of the 57c478bd9Sstevel@tonic-gate * Common Development and Distribution License, Version 1.0 only 67c478bd9Sstevel@tonic-gate * (the "License"). You may not use this file except in compliance 77c478bd9Sstevel@tonic-gate * with the License. 87c478bd9Sstevel@tonic-gate * 97c478bd9Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 107c478bd9Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing. 117c478bd9Sstevel@tonic-gate * See the License for the specific language governing permissions 127c478bd9Sstevel@tonic-gate * and limitations under the License. 137c478bd9Sstevel@tonic-gate * 147c478bd9Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each 157c478bd9Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 167c478bd9Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the 177c478bd9Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying 187c478bd9Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner] 197c478bd9Sstevel@tonic-gate * 207c478bd9Sstevel@tonic-gate * CDDL HEADER END 217c478bd9Sstevel@tonic-gate */ 227c478bd9Sstevel@tonic-gate /* 23*ba3594baSGarrett D'Amore * Copyright 2014 Garrett D'Amore <garrett@damore.org> 24*ba3594baSGarrett D'Amore * 257c478bd9Sstevel@tonic-gate * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 267c478bd9Sstevel@tonic-gate * Use is subject to license terms. 277c478bd9Sstevel@tonic-gate */ 287c478bd9Sstevel@tonic-gate 297c478bd9Sstevel@tonic-gate /* 307c478bd9Sstevel@tonic-gate * Please do not edit this file. 317c478bd9Sstevel@tonic-gate * It was generated using rpcgen. 327c478bd9Sstevel@tonic-gate */ 337c478bd9Sstevel@tonic-gate 347c478bd9Sstevel@tonic-gate #ifndef _SYS_FS_UFS_PROT_H 357c478bd9Sstevel@tonic-gate #define _SYS_FS_UFS_PROT_H 367c478bd9Sstevel@tonic-gate 377c478bd9Sstevel@tonic-gate #include <rpc/rpc.h> 387c478bd9Sstevel@tonic-gate 397c478bd9Sstevel@tonic-gate #ifdef __cplusplus 407c478bd9Sstevel@tonic-gate extern "C" { 417c478bd9Sstevel@tonic-gate #endif 427c478bd9Sstevel@tonic-gate 437c478bd9Sstevel@tonic-gate #include <sys/fs/ufs_fs.h> 447c478bd9Sstevel@tonic-gate #include <sys/types.h> 457c478bd9Sstevel@tonic-gate #include <sys/errno.h> 467c478bd9Sstevel@tonic-gate 477c478bd9Sstevel@tonic-gate enum ufsdrc_t { 487c478bd9Sstevel@tonic-gate UFSDRC_OK = 0, 497c478bd9Sstevel@tonic-gate UFSDRC_NOENT = ENOENT, 507c478bd9Sstevel@tonic-gate UFSDRC_PERM = EPERM, 517c478bd9Sstevel@tonic-gate UFSDRC_INVAL = EINVAL, 527c478bd9Sstevel@tonic-gate UFSDRC_NOEXEC = ENOEXEC, 537c478bd9Sstevel@tonic-gate UFSDRC_NODEV = ENODEV, 547c478bd9Sstevel@tonic-gate UFSDRC_NXIO = ENXIO, 557c478bd9Sstevel@tonic-gate UFSDRC_BUSY = EBUSY, 567c478bd9Sstevel@tonic-gate UFSDRC_OPNOTSUP = EOPNOTSUPP, 577c478bd9Sstevel@tonic-gate UFSDRC_EXECERR = 254, 587c478bd9Sstevel@tonic-gate UFSDRC_ERR = 255 597c478bd9Sstevel@tonic-gate }; 607c478bd9Sstevel@tonic-gate typedef enum ufsdrc_t ufsdrc_t; 617c478bd9Sstevel@tonic-gate 627c478bd9Sstevel@tonic-gate struct fs_identity_t { 637c478bd9Sstevel@tonic-gate dev32_t fs_dev; 647c478bd9Sstevel@tonic-gate char *fs_name; 657c478bd9Sstevel@tonic-gate }; 667c478bd9Sstevel@tonic-gate typedef struct fs_identity_t fs_identity_t; 677c478bd9Sstevel@tonic-gate 687c478bd9Sstevel@tonic-gate struct ufsd_repairfs_args_t { 697c478bd9Sstevel@tonic-gate fs_identity_t ua_fsid; 707c478bd9Sstevel@tonic-gate uint_t ua_attempts; 717c478bd9Sstevel@tonic-gate }; 727c478bd9Sstevel@tonic-gate typedef struct ufsd_repairfs_args_t ufsd_repairfs_args_t; 737c478bd9Sstevel@tonic-gate 747c478bd9Sstevel@tonic-gate struct ufsd_repairfs_list_t { 757c478bd9Sstevel@tonic-gate int ual_listlen; 767c478bd9Sstevel@tonic-gate ufsd_repairfs_args_t *ual_list; 777c478bd9Sstevel@tonic-gate }; 787c478bd9Sstevel@tonic-gate typedef struct ufsd_repairfs_list_t ufsd_repairfs_list_t; 797c478bd9Sstevel@tonic-gate 807c478bd9Sstevel@tonic-gate enum ufsd_event_t { 817c478bd9Sstevel@tonic-gate UFSDEV_NONE = 0, 827c478bd9Sstevel@tonic-gate UFSDEV_REBOOT = 0 + 1, 837c478bd9Sstevel@tonic-gate UFSDEV_FSCK = 0 + 2, 847c478bd9Sstevel@tonic-gate UFSDEV_LOG_OP = 0 + 3 857c478bd9Sstevel@tonic-gate }; 867c478bd9Sstevel@tonic-gate typedef enum ufsd_event_t ufsd_event_t; 877c478bd9Sstevel@tonic-gate 887c478bd9Sstevel@tonic-gate enum ufsd_boot_type_t { 897c478bd9Sstevel@tonic-gate UFSDB_NONE = 0, 907c478bd9Sstevel@tonic-gate UFSDB_CLEAN = 0 + 1, 917c478bd9Sstevel@tonic-gate UFSDB_POSTPANIC = 0 + 2 927c478bd9Sstevel@tonic-gate }; 937c478bd9Sstevel@tonic-gate typedef enum ufsd_boot_type_t ufsd_boot_type_t; 947c478bd9Sstevel@tonic-gate 957c478bd9Sstevel@tonic-gate enum ufsd_log_op_t { 967c478bd9Sstevel@tonic-gate UFSDLO_NONE = 0, 977c478bd9Sstevel@tonic-gate UFSDLO_COMMIT = 0 + 1, 987c478bd9Sstevel@tonic-gate UFSDLO_GET = 0 + 2, 997c478bd9Sstevel@tonic-gate UFSDLO_PUT = 0 + 3, 1007c478bd9Sstevel@tonic-gate UFSDLO_RESET = 0 + 4 1017c478bd9Sstevel@tonic-gate }; 1027c478bd9Sstevel@tonic-gate typedef enum ufsd_log_op_t ufsd_log_op_t; 1037c478bd9Sstevel@tonic-gate 1047c478bd9Sstevel@tonic-gate enum ufsd_fsck_state_t { 1057c478bd9Sstevel@tonic-gate UFSDFS_NONE = 0, 1067c478bd9Sstevel@tonic-gate UFSDFS_DISPATCH = 0 + 1, 1077c478bd9Sstevel@tonic-gate UFSDFS_ERREXIT = 0 + 2, 1087c478bd9Sstevel@tonic-gate UFSDFS_SUCCESS = 0 + 3 1097c478bd9Sstevel@tonic-gate }; 1107c478bd9Sstevel@tonic-gate typedef enum ufsd_fsck_state_t ufsd_fsck_state_t; 1117c478bd9Sstevel@tonic-gate #define UFSD_VARMSGMAX 1024 1127c478bd9Sstevel@tonic-gate #define UFSD_SPAREMSGBYTES 4 1137c478bd9Sstevel@tonic-gate 1147c478bd9Sstevel@tonic-gate struct ufsd_log_data_t { 1157c478bd9Sstevel@tonic-gate int umld_eob; 1167c478bd9Sstevel@tonic-gate int umld_seq; 1177c478bd9Sstevel@tonic-gate struct { 1187c478bd9Sstevel@tonic-gate uint_t umld_buf_len; 1197c478bd9Sstevel@tonic-gate char *umld_buf_val; 1207c478bd9Sstevel@tonic-gate } umld_buf; 1217c478bd9Sstevel@tonic-gate }; 1227c478bd9Sstevel@tonic-gate typedef struct ufsd_log_data_t ufsd_log_data_t; 1237c478bd9Sstevel@tonic-gate 1247c478bd9Sstevel@tonic-gate struct ufsd_log_msg_t { 1257c478bd9Sstevel@tonic-gate ufsd_log_op_t um_lop; 1267c478bd9Sstevel@tonic-gate union { 1277c478bd9Sstevel@tonic-gate ufsd_log_data_t um_logdata; 1287c478bd9Sstevel@tonic-gate } ufsd_log_msg_t_u; 1297c478bd9Sstevel@tonic-gate }; 1307c478bd9Sstevel@tonic-gate typedef struct ufsd_log_msg_t ufsd_log_msg_t; 1317c478bd9Sstevel@tonic-gate 1327c478bd9Sstevel@tonic-gate struct ufsd_msg_vardata_t { 1337c478bd9Sstevel@tonic-gate ufsd_event_t umv_ev; 1347c478bd9Sstevel@tonic-gate union { 1357c478bd9Sstevel@tonic-gate ufsd_boot_type_t umv_b; 1367c478bd9Sstevel@tonic-gate ufsd_fsck_state_t umv_fs; 1377c478bd9Sstevel@tonic-gate ufsd_log_msg_t umv_lm; 1387c478bd9Sstevel@tonic-gate } ufsd_msg_vardata_t_u; 1397c478bd9Sstevel@tonic-gate }; 1407c478bd9Sstevel@tonic-gate typedef struct ufsd_msg_vardata_t ufsd_msg_vardata_t; 1417c478bd9Sstevel@tonic-gate 1427c478bd9Sstevel@tonic-gate struct ufsd_msg_t { 1437c478bd9Sstevel@tonic-gate time32_t um_time; 1447c478bd9Sstevel@tonic-gate uint_t um_from; 1457c478bd9Sstevel@tonic-gate struct { 1467c478bd9Sstevel@tonic-gate uint_t um_spare_len; 1477c478bd9Sstevel@tonic-gate char *um_spare_val; 1487c478bd9Sstevel@tonic-gate } um_spare; 1497c478bd9Sstevel@tonic-gate ufsd_msg_vardata_t um_var; 1507c478bd9Sstevel@tonic-gate }; 1517c478bd9Sstevel@tonic-gate typedef struct ufsd_msg_t ufsd_msg_t; 1527c478bd9Sstevel@tonic-gate #define UFSD_SERVNAME "ufsd" 1537c478bd9Sstevel@tonic-gate #define xdr_dev_t xdr_u_int 1547c478bd9Sstevel@tonic-gate #define xdr_time_t xdr_int 1557c478bd9Sstevel@tonic-gate /* 1567c478bd9Sstevel@tonic-gate * Set UFSD_THISVERS to the newest version of the protocol 1577c478bd9Sstevel@tonic-gate * This allows the preprocessor to force an error if the 1587c478bd9Sstevel@tonic-gate * protocol changes, since the kernel xdr routines may need to be 1597c478bd9Sstevel@tonic-gate * recoded. Note that we can't explicitly set the version to a 1607c478bd9Sstevel@tonic-gate * symbol as rpcgen will then create erroneous routine names. 1617c478bd9Sstevel@tonic-gate */ 1627c478bd9Sstevel@tonic-gate #define UFSD_V1 1 1637c478bd9Sstevel@tonic-gate #define UFSD_ORIGVERS UFSD_V1 1647c478bd9Sstevel@tonic-gate #define UFSD_THISVERS 1 1657c478bd9Sstevel@tonic-gate 1667c478bd9Sstevel@tonic-gate #define UFSD_PROG ((unsigned long)(100233)) 1677c478bd9Sstevel@tonic-gate #define UFSD_VERS ((unsigned long)(1)) 1687c478bd9Sstevel@tonic-gate 1697c478bd9Sstevel@tonic-gate #define UFSD_NULL ((unsigned long)(0)) 1707c478bd9Sstevel@tonic-gate extern ufsdrc_t *ufsd_null_1(void *, CLIENT *); 1717c478bd9Sstevel@tonic-gate extern ufsdrc_t *ufsd_null_1_svc(void *, struct svc_req *); 1727c478bd9Sstevel@tonic-gate #define UFSD_REPAIRFS ((unsigned long)(1)) 1737c478bd9Sstevel@tonic-gate extern ufsdrc_t *ufsd_repairfs_1(ufsd_repairfs_args_t *, CLIENT *); 1747c478bd9Sstevel@tonic-gate extern ufsdrc_t * 1757c478bd9Sstevel@tonic-gate ufsd_repairfs_1_svc(ufsd_repairfs_args_t *, struct svc_req *); 1767c478bd9Sstevel@tonic-gate #define UFSD_REPAIRFSLIST ((unsigned long)(2)) 1777c478bd9Sstevel@tonic-gate extern ufsdrc_t *ufsd_repairfslist_1(ufsd_repairfs_list_t *, CLIENT *); 1787c478bd9Sstevel@tonic-gate extern ufsdrc_t * 1797c478bd9Sstevel@tonic-gate ufsd_repairfslist_1_svc(ufsd_repairfs_list_t *, struct svc_req *); 1807c478bd9Sstevel@tonic-gate #define UFSD_SEND ((unsigned long)(3)) 1817c478bd9Sstevel@tonic-gate extern ufsdrc_t *ufsd_send_1(ufsd_msg_t *, CLIENT *); 1827c478bd9Sstevel@tonic-gate extern ufsdrc_t *ufsd_send_1_svc(ufsd_msg_t *, struct svc_req *); 1837c478bd9Sstevel@tonic-gate #define UFSD_RECV ((unsigned long)(4)) 1847c478bd9Sstevel@tonic-gate extern ufsdrc_t *ufsd_recv_1(ufsd_msg_t *, CLIENT *); 1857c478bd9Sstevel@tonic-gate extern ufsdrc_t *ufsd_recv_1_svc(ufsd_msg_t *, struct svc_req *); 1867c478bd9Sstevel@tonic-gate #define UFSD_EXIT ((unsigned long)(5)) 1877c478bd9Sstevel@tonic-gate extern ufsdrc_t *ufsd_exit_1(void *, CLIENT *); 1887c478bd9Sstevel@tonic-gate extern ufsdrc_t *ufsd_exit_1_svc(void *, struct svc_req *); 1897c478bd9Sstevel@tonic-gate extern int ufsd_prog_1_freeresult(SVCXPRT *, xdrproc_t, caddr_t); 1907c478bd9Sstevel@tonic-gate 1917c478bd9Sstevel@tonic-gate /* the xdr functions */ 1927c478bd9Sstevel@tonic-gate 1937c478bd9Sstevel@tonic-gate extern bool_t xdr_ufsdrc_t(XDR *, ufsdrc_t *); 1947c478bd9Sstevel@tonic-gate extern bool_t xdr_fs_identity_t(XDR *, fs_identity_t *); 1957c478bd9Sstevel@tonic-gate extern bool_t xdr_ufsd_repairfs_args_t(XDR *, ufsd_repairfs_args_t *); 1967c478bd9Sstevel@tonic-gate extern bool_t xdr_ufsd_repairfs_list_t(XDR *, ufsd_repairfs_list_t *); 1977c478bd9Sstevel@tonic-gate extern bool_t xdr_ufsd_event_t(XDR *, ufsd_event_t *); 1987c478bd9Sstevel@tonic-gate extern bool_t xdr_ufsd_boot_type_t(XDR *, ufsd_boot_type_t *); 1997c478bd9Sstevel@tonic-gate extern bool_t xdr_ufsd_log_op_t(XDR *, ufsd_log_op_t *); 2007c478bd9Sstevel@tonic-gate extern bool_t xdr_ufsd_fsck_state_t(XDR *, ufsd_fsck_state_t *); 2017c478bd9Sstevel@tonic-gate extern bool_t xdr_ufsd_log_data_t(XDR *, ufsd_log_data_t *); 2027c478bd9Sstevel@tonic-gate extern bool_t xdr_ufsd_log_msg_t(XDR *, ufsd_log_msg_t *); 2037c478bd9Sstevel@tonic-gate extern bool_t xdr_ufsd_msg_vardata_t(XDR *, ufsd_msg_vardata_t *); 2047c478bd9Sstevel@tonic-gate extern bool_t xdr_ufsd_msg_t(XDR *, ufsd_msg_t *); 2057c478bd9Sstevel@tonic-gate 2067c478bd9Sstevel@tonic-gate #ifdef __cplusplus 2077c478bd9Sstevel@tonic-gate } 2087c478bd9Sstevel@tonic-gate #endif 2097c478bd9Sstevel@tonic-gate 2107c478bd9Sstevel@tonic-gate #endif /* !_SYS_FS_UFS_PROT_H */ 211