root/sys/arch/octeon/dev/ogxvar.h
/*      $OpenBSD: ogxvar.h,v 1.1 2019/11/04 14:58:40 visa Exp $ */

/*
 * Copyright (c) 2019 Visa Hankala
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#ifndef _OGXVAR_H_
#define _OGXVAR_H_

struct fpa3pool {
        uint32_t                nodeid;
        uint32_t                poolid;
        bus_dmamap_t            dmap;
        bus_dma_segment_t       dmaseg;
        caddr_t                 kva;
};

struct fpa3aura {
        uint32_t                nodeid;
        uint32_t                poolid;
        uint32_t                auraid;
        bus_dmamap_t            dmap;
        bus_dma_segment_t       dmaseg;
};

struct ogx_attach_args {
        int                      oaa_node;
        int                      oaa_bgxid;
        bus_space_tag_t          oaa_iot;
        bus_space_handle_t       oaa_ioh;
        bus_dma_tag_t            oaa_dmat;
};

#define BGX_NCAM        32
#define BGX_NLMAC       4
#define OGX_NCAM        (BGX_NCAM / BGX_NLMAC)

#endif /* !_OGXVAR_H_ */