xref: /onnv-gate/usr/src/cmd/ndmpd/tlm/tlm_proto.h (revision 12904:aab2c5dd2abc)
17917SReza.Sabdar@Sun.COM /*
2*12904SReza.Sabdar@Sun.COM  * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
37917SReza.Sabdar@Sun.COM  */
47917SReza.Sabdar@Sun.COM 
57917SReza.Sabdar@Sun.COM /*
67917SReza.Sabdar@Sun.COM  * BSD 3 Clause License
77917SReza.Sabdar@Sun.COM  *
87917SReza.Sabdar@Sun.COM  * Copyright (c) 2007, The Storage Networking Industry Association.
97917SReza.Sabdar@Sun.COM  *
107917SReza.Sabdar@Sun.COM  * Redistribution and use in source and binary forms, with or without
117917SReza.Sabdar@Sun.COM  * modification, are permitted provided that the following conditions
127917SReza.Sabdar@Sun.COM  * are met:
137917SReza.Sabdar@Sun.COM  * 	- Redistributions of source code must retain the above copyright
147917SReza.Sabdar@Sun.COM  *	  notice, this list of conditions and the following disclaimer.
157917SReza.Sabdar@Sun.COM  *
167917SReza.Sabdar@Sun.COM  * 	- Redistributions in binary form must reproduce the above copyright
177917SReza.Sabdar@Sun.COM  *	  notice, this list of conditions and the following disclaimer in
187917SReza.Sabdar@Sun.COM  *	  the documentation and/or other materials provided with the
197917SReza.Sabdar@Sun.COM  *	  distribution.
207917SReza.Sabdar@Sun.COM  *
217917SReza.Sabdar@Sun.COM  *	- Neither the name of The Storage Networking Industry Association (SNIA)
227917SReza.Sabdar@Sun.COM  *	  nor the names of its contributors may be used to endorse or promote
237917SReza.Sabdar@Sun.COM  *	  products derived from this software without specific prior written
247917SReza.Sabdar@Sun.COM  *	  permission.
257917SReza.Sabdar@Sun.COM  *
267917SReza.Sabdar@Sun.COM  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
277917SReza.Sabdar@Sun.COM  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
287917SReza.Sabdar@Sun.COM  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
297917SReza.Sabdar@Sun.COM  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
307917SReza.Sabdar@Sun.COM  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
317917SReza.Sabdar@Sun.COM  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
327917SReza.Sabdar@Sun.COM  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
337917SReza.Sabdar@Sun.COM  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
347917SReza.Sabdar@Sun.COM  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
357917SReza.Sabdar@Sun.COM  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
367917SReza.Sabdar@Sun.COM  * POSSIBILITY OF SUCH DAMAGE.
377917SReza.Sabdar@Sun.COM  */
387917SReza.Sabdar@Sun.COM #ifndef	_TLM_PROTO_H
397917SReza.Sabdar@Sun.COM #define	_TLM_PROTO_H
407917SReza.Sabdar@Sun.COM 
417917SReza.Sabdar@Sun.COM #include <tlm.h>
427917SReza.Sabdar@Sun.COM #include <tlm_buffers.h>
437917SReza.Sabdar@Sun.COM #include <ndmpd_door.h>
447917SReza.Sabdar@Sun.COM #include <dirent.h>
457917SReza.Sabdar@Sun.COM #include <syslog.h>
467917SReza.Sabdar@Sun.COM #include <pthread.h>
477917SReza.Sabdar@Sun.COM 
487917SReza.Sabdar@Sun.COM #define	SCSI_CHANGER_DIR	"/dev/scsi/changer"
497917SReza.Sabdar@Sun.COM #define	SCSI_TAPE_DIR		"/dev/rmt"
507917SReza.Sabdar@Sun.COM 
517917SReza.Sabdar@Sun.COM #define	MAXIORETRY	20
527917SReza.Sabdar@Sun.COM 
537917SReza.Sabdar@Sun.COM typedef void log_func_t(ulong_t, char *, ...);
547917SReza.Sabdar@Sun.COM typedef void *	(*funct_t)(void *);	/* function pointer */
557917SReza.Sabdar@Sun.COM 
567917SReza.Sabdar@Sun.COM extern longlong_t llmin(longlong_t, longlong_t);
577917SReza.Sabdar@Sun.COM extern unsigned int min(unsigned int, unsigned int);
587917SReza.Sabdar@Sun.COM extern unsigned int max(unsigned int, unsigned int);
597917SReza.Sabdar@Sun.COM extern int oct_atoi(char *p);
607917SReza.Sabdar@Sun.COM 
617917SReza.Sabdar@Sun.COM extern int tlm_log_fhnode(tlm_job_stats_t *,
627917SReza.Sabdar@Sun.COM     char *,
637917SReza.Sabdar@Sun.COM     char *,
647917SReza.Sabdar@Sun.COM     struct stat64 *,
657917SReza.Sabdar@Sun.COM     u_longlong_t);
667917SReza.Sabdar@Sun.COM 
677917SReza.Sabdar@Sun.COM extern int tlm_log_fhdir(tlm_job_stats_t *,
687917SReza.Sabdar@Sun.COM     char *,
697917SReza.Sabdar@Sun.COM     struct stat64 *,
707917SReza.Sabdar@Sun.COM     struct fs_fhandle *);
717917SReza.Sabdar@Sun.COM 
727917SReza.Sabdar@Sun.COM extern int tlm_log_fhpath_name(tlm_job_stats_t *,
737917SReza.Sabdar@Sun.COM     char *,
747917SReza.Sabdar@Sun.COM     struct stat64 *,
757917SReza.Sabdar@Sun.COM     u_longlong_t);
767917SReza.Sabdar@Sun.COM 
777917SReza.Sabdar@Sun.COM extern boolean_t tlm_is_too_long(int,
787917SReza.Sabdar@Sun.COM     char *,
797917SReza.Sabdar@Sun.COM     char *);
807917SReza.Sabdar@Sun.COM 
817917SReza.Sabdar@Sun.COM extern void tlm_log_list(char *,
827917SReza.Sabdar@Sun.COM     char **);
837917SReza.Sabdar@Sun.COM extern tlm_drive_t *tlm_drive(int, int);
847917SReza.Sabdar@Sun.COM extern tlm_library_t *tlm_library(int);
857917SReza.Sabdar@Sun.COM extern tlm_slot_t *tlm_slot(int, int);
867917SReza.Sabdar@Sun.COM 
877917SReza.Sabdar@Sun.COM extern sasd_drive_t *sasd_slink_drive(scsi_link_t *);
887917SReza.Sabdar@Sun.COM extern scsi_link_t *sasd_dev_slink(int);
897917SReza.Sabdar@Sun.COM extern sasd_drive_t *sasd_drive(int);
907917SReza.Sabdar@Sun.COM extern scsi_adapter_t *scsi_get_adapter(int);
917917SReza.Sabdar@Sun.COM extern int scsi_get_adapter_count(void);
927917SReza.Sabdar@Sun.COM 
937917SReza.Sabdar@Sun.COM extern char *sasd_slink_name(scsi_link_t *);
947917SReza.Sabdar@Sun.COM extern int sasd_dev_count(void);
957917SReza.Sabdar@Sun.COM extern int tlm_ioctl(int, int, void *);
967917SReza.Sabdar@Sun.COM extern int probe_scsi();
977917SReza.Sabdar@Sun.COM 
987917SReza.Sabdar@Sun.COM extern void tlm_enable_barcode(int);
997917SReza.Sabdar@Sun.COM extern int tlm_insert_new_library(scsi_link_t *);
1007917SReza.Sabdar@Sun.COM extern int tlm_insert_new_drive(int);
1017917SReza.Sabdar@Sun.COM extern int tlm_insert_new_slot(int);
1027917SReza.Sabdar@Sun.COM 
1037917SReza.Sabdar@Sun.COM extern char *tlm_get_tape_name(int, int);
1047917SReza.Sabdar@Sun.COM extern int tlm_library_count(void);
1057917SReza.Sabdar@Sun.COM 
1067917SReza.Sabdar@Sun.COM extern boolean_t fs_is_rdonly(char *);
1077917SReza.Sabdar@Sun.COM extern boolean_t fs_is_chkpntvol();
1087917SReza.Sabdar@Sun.COM extern int get_zfsvolname(char *, int, char *);
1097917SReza.Sabdar@Sun.COM extern int chkpnt_creationtime_bypattern();
1107917SReza.Sabdar@Sun.COM 
1117917SReza.Sabdar@Sun.COM extern log_func_t log_debug;
1127917SReza.Sabdar@Sun.COM extern log_func_t log_error;
1137917SReza.Sabdar@Sun.COM extern boolean_t match(char *, char *);
1147917SReza.Sabdar@Sun.COM 
1157917SReza.Sabdar@Sun.COM extern void tlm_build_header_checksum(tlm_tar_hdr_t *);
1167917SReza.Sabdar@Sun.COM extern int tlm_vfy_tar_checksum(tlm_tar_hdr_t *);
1177917SReza.Sabdar@Sun.COM extern int tlm_entry_restored(tlm_job_stats_t *, char *, int);
1187917SReza.Sabdar@Sun.COM extern char *strupr(char *);
1197917SReza.Sabdar@Sun.COM extern char *parse(char **, char *);
1208540SReza.Sabdar@Sun.COM extern int sysattr_rdonly(char *);
1218540SReza.Sabdar@Sun.COM extern int sysattr_rw(char *);
1227917SReza.Sabdar@Sun.COM 
1237917SReza.Sabdar@Sun.COM extern int tar_putfile(char *,
1247917SReza.Sabdar@Sun.COM     char *,
1257917SReza.Sabdar@Sun.COM     char *,
1267917SReza.Sabdar@Sun.COM     tlm_acls_t *,
1277917SReza.Sabdar@Sun.COM     tlm_commands_t *,
1287917SReza.Sabdar@Sun.COM     tlm_cmd_t *,
1297917SReza.Sabdar@Sun.COM     tlm_job_stats_t *,
1307917SReza.Sabdar@Sun.COM     struct hardlink_q *);
1317917SReza.Sabdar@Sun.COM 
1327917SReza.Sabdar@Sun.COM extern int tar_putdir(char *,
1337917SReza.Sabdar@Sun.COM     tlm_acls_t *,
1347917SReza.Sabdar@Sun.COM     tlm_cmd_t *,
1357917SReza.Sabdar@Sun.COM     tlm_job_stats_t *);
1367917SReza.Sabdar@Sun.COM 
1377917SReza.Sabdar@Sun.COM extern int tar_getfile(tlm_backup_restore_arg_t *);
1387917SReza.Sabdar@Sun.COM 
1397917SReza.Sabdar@Sun.COM extern int
1407917SReza.Sabdar@Sun.COM tar_getdir(tlm_commands_t *,
1417917SReza.Sabdar@Sun.COM     tlm_cmd_t *,
1427917SReza.Sabdar@Sun.COM     tlm_job_stats_t *,
1437917SReza.Sabdar@Sun.COM     struct rs_name_maker *,
1447917SReza.Sabdar@Sun.COM     int,
1457917SReza.Sabdar@Sun.COM     int,
1467917SReza.Sabdar@Sun.COM     char **,
1477917SReza.Sabdar@Sun.COM     char **,
1487917SReza.Sabdar@Sun.COM     int,
1497917SReza.Sabdar@Sun.COM     int,
15011804SReza.Sabdar@Sun.COM     char *,
1517917SReza.Sabdar@Sun.COM     struct hardlink_q *);
1527917SReza.Sabdar@Sun.COM #endif	/* _TLM_PROTO_H */
153