/* module SHSBA_ROUTINES.H "X-3" * ************************************************************************* * * * © Copyright 2004 Hewlett-Packard Development Company, L.P. * * * * Confidential computer software. Valid license from HP and/or * * its subsidiaries required for possession, use, or copying. * * * * Consistent with FAR 12.211 and 12.212, Commercial Computer Software, * * Computer Software Documentation, and Technical Data for Commercial * * Items are licensed to the U.S. Government under vendor's standard * * commercial license. * * * * Neither HP nor any of its subsidiaries shall be liable for technical * * or editorial errors or omissions contained herein. The information * * in this document is provided "as is" without warranty of any kind and * * is subject to change without notice. The warranties for HP products * * are set forth in the express limited warranty statements accompanying * * such products. Nothing herein should be construed as constituting an * * additional warranty. * * * ************************************************************************* *++ * FACILITY: * * VMS Executive (LIB_H) * * ABSTRACT: * * This module contains the C function prototypes for the fPars * shared SBA routines. * * AUTHOR: * * Karen L. Noel * * CREATION DATE: 15-Jan-2004 * * MODIFICATION HISTORY: * * X-3 DEE0937 David E. Eiche 18-Jan-2005 * Add support for pathname form of shared SBA services. * * X-2 DEE0927 David E. Eiche 03-Nov-2004 * o Add resource ID and status return symbols. * o KLN: Fix interface for shsba$invalidate_io_ranges(). * * X-1 KLNxxxx Karen L. Noel 15-Jan-2004 * Initial checkin. * * *-- */ #ifndef __SHSBA__ROUTINES_LOADED #define __SHSBA__ROUTINES_LOADED 1 #pragma __required_pointer_size __save #pragma __required_pointer_size __long /* * Define all types that are used in the following function prototypes. */ #include #include /* * Define symbols used by more than one shared SBA call */ #define SHSBA$K_RSRC_IOPDIR 0 #define SHSBA$K_RSRC_IOVA 1 #define SHSBA$K_RSRC_IOTLB_PAGE 2 #define SHSBA$K_RSRC_SEGMENT_CT 3 #define SHSBA$K_ALLROPES (-1) /* * Declare routines called from within this module */ uint64 exe$call_shsba_service (uint64 func_id, uint64 arg1, uint64 arg2, uint64 arg3, uint64 arg4, uint64 * ret1, uint64 * ret2); /* * Static function definitions */ #define SHSBA$K_GET_IOPDIR_INFO 2 static uint64 shsba$get_iopdir_info (uint64 sba_number, uint64 resource_seg, uint64 resource_subseg, uint64 resource_type, uint64 * ret_base, uint64 * ret_size) { return ( exe$call_shsba_service (SHSBA$K_GET_IOPDIR_INFO, sba_number, resource_seg, resource_subseg, resource_type, ret_base, ret_size) ); } #define SHSBA$K_INVALIDATE_IO_RANGES 3 static uint64 shsba$invalidate_io_ranges (uint64 sba_number, uint64 resource_seg, void * iova_addr, uint64 size) { return ( exe$call_shsba_service (SHSBA$K_INVALIDATE_IO_RANGES, sba_number, resource_seg, (uint64) iova_addr, size, 0, 0) ); } #define SHSBA$K_GET_HANDLE_FROM_PATH 5 static uint64 shsba$get_handle_from_path( uchar * path_name, uint64 * ret_handle) { return ( exe$call_shsba_service (SHSBA$K_GET_HANDLE_FROM_PATH, (uint64) path_name, 0, 0, 0, ret_handle, 0) ); } #define SHSBA$K_GET_PDIR_INFO_BY_HANDLE 6 static uint64 shsba$get_pdir_info_by_handle (uint64 handle, uint64 resource_type, uint64 * ret_base, uint64 * ret_size) { return ( exe$call_shsba_service (SHSBA$K_GET_PDIR_INFO_BY_HANDLE, handle, resource_type, 0, 0, ret_base, ret_size) ); } #define SHSBA$K_INVALIDATE_RANGES_BY_HANDLE 7 static uint64 shsba$invalidate_ranges_by_handle (uint64 handle, void * iova_addr, uint64 size) { return ( exe$call_shsba_service (SHSBA$K_INVALIDATE_RANGES_BY_HANDLE, handle, (uint64) iova_addr, size, 0, 0, 0) ); } #pragma __required_pointer_size __restore #endif /* __SHSBA_ROUTINES_LOADED */