ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab/*
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab * CDDL HEADER START
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab *
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab * The contents of this file are subject to the terms of the
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab * Common Development and Distribution License (the "License").
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab * You may not use this file except in compliance with the License.
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab *
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab * or http://www.opensolaris.org/os/licensing.
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab * See the License for the specific language governing permissions
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab * and limitations under the License.
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab *
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab * When distributing Covered Code, include this CDDL HEADER in each
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab * If applicable, add the following below this CDDL HEADER, with the
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab * fields enclosed by brackets "[]" replaced with your own identifying
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab * information: Portions Copyright [yyyy] [name of copyright owner]
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab *
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab * CDDL HEADER END
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab */
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab/*
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
635216b673cf196ac523ff2a7ab715717e553292Rod Evans * Use is subject to license terms.
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab */
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab#ifndef _HANDLENPIVPORT_H
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab#define _HANDLENPIVPORT_H
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab// Forward Declarations
ba2be53024c0b999e74ba9adcd7d80fec5df8c57abclass Handle;
ba2be53024c0b999e74ba9adcd7d80fec5df8c57abclass HandlePort;
ba2be53024c0b999e74ba9adcd7d80fec5df8c57abclass HandleNPIVPort;
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab#include "Lockable.h"
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab#include "Handle.h"
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab#include "HandlePort.h"
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab#include "HBA.h"
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab#include "HBAPort.h"
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab#include "HBANPIVPort.h"
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab#include <hbaapi.h>
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab#include <hbaapi-sun.h>
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab/*
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab * @memo Represents this handles state for each NPIV port.
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab */
ba2be53024c0b999e74ba9adcd7d80fec5df8c57abclass HandleNPIVPort : public Lockable {
ba2be53024c0b999e74ba9adcd7d80fec5df8c57abpublic:
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab HandleNPIVPort(Handle *handle, HandlePort *porthandle,
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab HBA *hba, HBAPort *port, HBANPIVPort *vport);
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab void refresh();
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab void validate(uint64_t newState);
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab bool match(uint64_t portWWN);
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab bool match(int index);
635216b673cf196ac523ff2a7ab715717e553292Rod Evans
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab HBA_NPIVATTRIBUTES getPortAttributes();
ba2be53024c0b999e74ba9adcd7d80fec5df8c57abprivate:
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab uint64_t lastState;
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab bool active;
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab Handle *handle;
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab HandlePort *handleport;
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab HBAPort *port;
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab HBA *hba;
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab HBANPIVPort *vport;
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab};
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab#endif /* _HANDLENPIVPORT_H */
ba2be53024c0b999e74ba9adcd7d80fec5df8c57ab