plc.c
Author: cmaier@cmassoc.net

    /*====================================================================*
     *
     *   Copyright (c) 2013 Qualcomm Atheros, Inc.
     *
     *   All rights reserved.
     *
     *   Redistribution and use in source and binary forms, with or
     *   without modification, are permitted (subject to the limitations
     *   in the disclaimer below) provided that the following conditions
     *   are met:
     *
     *   * Redistributions of source code must retain the above copyright
     *     notice, this list of conditions and the following disclaimer.
     *
     *   * Redistributions in binary form must reproduce the above
     *     copyright notice, this list of conditions and the following
     *     disclaimer in the documentation and/or other materials
     *     provided with the distribution.
     *
     *   * Neither the name of Qualcomm Atheros nor the names of
     *     its contributors may be used to endorse or promote products
     *     derived from this software without specific prior written
     *     permission.
     *
     *   NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
     *   GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE
     *   COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
     *   IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     *   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     *   PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
     *   OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     *   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     *   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     *   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     *   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
     *   OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     *   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     *
     *--------------------------------------------------------------------*/

    /*====================================================================*
     *
     *   plc.c - Qualcomm Atheros Powerline Data Structure;
     *
     *   this structure contains information needed to perform various
     *   operations on Qualcomm Atheros powerline devices; it represents
     *   one instance of a device and could easily be converted to an
     *   object in the future;
     *
     *   this structure points to a channel and a message structure;
     *
     *
     *   Contributor(s):
     *      Charles Maier <cmaier@qca.qualcomm.com>
     *      Alex Vasquez <avasquez@qca.qualcomm.com>
     *
     *--------------------------------------------------------------------*/

    #ifndef PLC_SOURCE
    #define PLC_SOURCE

    #include "../plc/plc.h"
    #include "../ether/channel.h"

    struct plc plc =

    {
    	(struct channel *) (& channel),
    	(struct message *) (0),
    	(void *) (0),
    	0,

    /*
     * Local Device Address (LDA) buffer needed by all operations;
     */

    	{
    		0x00,
    		0x00,
    		0x00,
    		0x00,
    		0x00,
    		0x00
    	},

    /*
     * Remote Device Address (RDA) buffer needed by selected operations;
     */

    	{
    		0x00,
    		0x00,
    		0x00,
    		0x00,
    		0x00,
    		0x00
    	},

    /*
     *   Network Membership Key (NMK) needed by VS_SET_KEY operations;
     *   The default is an encrypted version of password "HomePlugAV";
     */

    	{
    		0x50,
    		0xD3,
    		0xE4,
    		0x93,
    		0x3F,
    		0x85,
    		0x5B,
    		0x70,
    		0x40,
    		0x78,
    		0x4D,
    		0xF8,
    		0x15,
    		0xAA,
    		0x8D,
    		0xB7
    	},

    /*
     *   Device Access Key (DAK) needed for VS_SET_KEY operations;
     *   The default is an encrypted version of password "HomePlugAV";
     */

    	{
    		0x68,
    		0x9F,
    		0x07,
    		0x4B,
    		0x8B,
    		0x02,
    		0x75,
    		0xA2,
    		0x71,
    		0x0B,
    		0x0B,
    		0x57,
    		0x79,
    		0xAD,
    		0x16,
    		0x30
    	},

    /*
     * struct _file_ CFG; MAC software will be read from this file and
     * written to RAM for each device specified on the command line;
     * some tools use this file for the panther/lynx softloader;
     */

    	{
    		(file_t) (-1),
    		(char const *) (0)
    	},

    /*
     * struct _file_ cfg; SDRAM configuration will be read from flash
     * on the specified device and written to this file;
     */

    	{
    		(file_t) (-1),
    		(char const *) (0)
    	},

    /*
     * struct _file_ SFT; softloader file to be written to flash
     * memory;
     */

    	{
    		(file_t) (-1),
    		(char const *) (0)
    	},

    /*
     * struct _file_ sft; softloader file to be read from flash
     * memory;
     */

    	{
    		(file_t) (-1),
    		(char const *) (0)
    	},

    /*
     * struct _file_ NVM; runtime firmware will be read from this file
     * and written to RAM for each device specified on the command line;
     */

    	{
    		(file_t) (-1),
    		(char const *) (0)
    	},

    /*
     * struct _file_ nvm; MAC software will be read from SDRAM on the
     * specified device and written to this file; interlocks elsewhere
     * in the code should prevent this file from being overwritten
     * multiple times, by accident, and ensure that it is created before
     * and new MAC software is written to device RAM;
     */

    	{
    		(file_t) (-1),
    		(char const *) (0)
    	},

    /*
     * struct _file_ PIB; PIB information will be read from this file
     * and written to RAM for each device specified on the command line;
     */

    	{
    		(file_t) (-1),
    		(char const *) (0)
    	},

    /*
     * struct _file_ pib; PIB information will be read from SDRAM on
     * the specified device and written to this file; interlocks elsewhere
     * in the code should prevent this file from being overwritten
     * multiple times, by accident, and ensure that it is created before
     * any new PIB software is written to device RAM;
     */

    	{
    		(file_t) (-1),
    		(char const *) (0)
    	},

    /*
     * struct _file_ XML; optional XML PIB edit instructions; this is an
     * advanced feature;
     */

    	{
    		(file_t) (-1),
    		(char const *) (0)
    	},

    /*
     * struct _file_ rpt; Watchdog Report data will be read from the device
     * and written to this file;
     */

    	{
    		(file_t) (-1),
    		(char const *) (0)
    	},

    /*
     * struct _file_ socket;
     */

    	{
    		(file_t) (-1),
    		(char const *) (0)
    	},

    /*
     *   miscellaneous small integers used as needed when arguments
     *   are required for an MME;
     */

    	HARDWAREID,
    	SOFTWAREID,
    	PLCSESSION,
    	HOSTACTION,
    	SECTORCODE,
    	MODULECODE,
    	PUSHBUTTON,
    	READACTION,
    	PLCOUPLING,
    	FLASH_SIZE,

    /*
     *   various boolean flags; bailout causes exit on first failure;
     *   timeout indicates a real timeout; count is the loop counter;
     *   pause is a loop wait timer; values are declared as constants
     *   above;
     */

    	PLC_STATE,
    	PLC_TIMER,
    	PLC_SLEEP,
    	PLC_COUNT,
    	PLC_INDEX,
    	PLC_FLAGS,
    	PLC_FLAGS
    };

    #endif

[PREV] [HOME] [NEXT]