!C99Shell v.2.1 [PHP 7 Update] [1.12.2019]!

Software: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.12 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g. PHP/5.2.4-2ubuntu5.12 

uname -a: Linux forum.circlefusion.com 2.6.24-19-server #1 SMP Wed Jun 18 15:18:00 UTC 2008 i686 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/usr/src/linux-headers-2.6.24-28/include/asm-ppc/   drwxr-xr-x
Free 1.06 GB of 97.11 GB (1.09%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     todc.h (19.44 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*
 * Definitions for the M48Txx and mc146818 series of Time of day/Real Time
 * Clock chips.
 *
 * Author: Mark A. Greer
 *         mgreer@mvista.com
 *
 * 2001 (c) MontaVista, Software, Inc.  This file is licensed under
 * the terms of the GNU General Public License version 2.  This program
 * is licensed "as is" without any warranty of any kind, whether express
 * or implied.
 */

/*
 * Support for the M48T37/M48T59/.../mc146818 Real Time Clock chips.
 * Purpose is to make one generic file that handles all of these chips instead
 * of every platform implementing the same code over & over again.
 */

#ifndef __PPC_KERNEL_TODC_H
#define __PPC_KERNEL_TODC_H

typedef struct {
    uint rtc_type;        /* your particular chip */

    /*
     * Following are the addresses of the AS0, AS1, and DATA registers
     * of these chips.  Note that these are board-specific.
     */
    unsigned int nvram_as0;
    unsigned int nvram_as1;
    unsigned int nvram_data;

    /*
     * Define bits to stop external set of regs from changing so
     * the chip can be read/written reliably.
     */
    unsigned char enable_read;
    unsigned char enable_write;

    /*
     * Following is the number of AS0 address bits.  This is normally
     * 8 but some bad hardware routes address lines incorrectly.
     */
    int as0_bits;

    int nvram_size;    /* Size of NVRAM on chip */
    int sw_flags;    /* Software control flags */

    /* Following are the register offsets for the particular chip */
    int year;
    int month;
    int day_of_month;
    int day_of_week;
    int hours;
    int minutes;
    int seconds;
    int control_b;
    int control_a;
    int watchdog;
    int interrupts;
    int alarm_date;
    int alarm_hour;
    int alarm_minutes;
    int alarm_seconds;
    int century;
    int flags;

    /*
     * Some RTC chips have their NVRAM buried behind a addr/data pair of
     * regs on the first level/clock registers.  The following fields
     * are the addresses for those addr/data regs.
     */
    int nvram_addr_reg;
    int nvram_data_reg;
} todc_info_t;

/*
 * Define the types of TODC/RTC variants that are supported in
 * arch/ppc/kernel/todc_time.c
 * Make a new one of these for any chip somehow differs from what's already
 * defined.  That way, if you ever need to put in code to touch those
 * bits/registers in todc_time.c, you can put it inside an
 * 'if (todc_info->rtc_type ==  TODC_TYPE_XXX)' so you won't break
 * anyone else.
 */
#define    TODC_TYPE_MK48T35        1
#define    TODC_TYPE_MK48T37        2
#define    TODC_TYPE_MK48T59        3
#define    TODC_TYPE_DS1693        4    /* Dallas DS1693 RTC */
#define    TODC_TYPE_DS1743        5    /* Dallas DS1743 RTC */
#define    TODC_TYPE_DS1746        6    /* Dallas DS1746 RTC */
#define    TODC_TYPE_DS1747        7    /* Dallas DS1747 RTC */
#define    TODC_TYPE_DS1501        8    /* Dallas DS1501 RTC */
#define TODC_TYPE_DS1643        9    /* Dallas DS1643 RTC */
#define TODC_TYPE_PC97307        10    /* PC97307 internal RTC */
#define TODC_TYPE_DS1557        11    /* Dallas DS1557 RTC */
#define TODC_TYPE_DS17285        12    /* Dallas DS17285 RTC */
#define TODC_TYPE_DS1553        13    /* Dallas DS1553 RTC */
#define    TODC_TYPE_MC146818        100    /* Leave room for m48txx's */

/*
 * Bit to clear/set to enable reads/writes to the chip
 */
#define    TODC_MK48TXX_CNTL_A_R        0x40
#define    TODC_MK48TXX_CNTL_A_W        0x80
#define    TODC_MK48TXX_DAY_CB        0x80

#define    TODC_DS1501_CNTL_B_TE        0x80

/*
 * Define flag bits used by todc routines.
 */
#define    TODC_FLAG_2_LEVEL_NVRAM        0x00000001

/*
 * Define the values for the various RTC's that should to into the todc_info
 * table.
 * Note: The XXX_NVRAM_SIZE, XXX_NVRAM_ADDR_REG, and XXX_NVRAM_DATA_REG only
 * matter if XXX_SW_FLAGS has TODC_FLAG_2_LEVEL_NVRAM set.
 */
#define    TODC_TYPE_MK48T35_NVRAM_SIZE        0x7ff8
#define    TODC_TYPE_MK48T35_SW_FLAGS        0
#define    TODC_TYPE_MK48T35_YEAR            0x7fff
#define    TODC_TYPE_MK48T35_MONTH            0x7ffe
#define    TODC_TYPE_MK48T35_DOM            0x7ffd    /* Day of Month */
#define    TODC_TYPE_MK48T35_DOW            0x7ffc    /* Day of Week */
#define    TODC_TYPE_MK48T35_HOURS            0x7ffb
#define    TODC_TYPE_MK48T35_MINUTES        0x7ffa
#define    TODC_TYPE_MK48T35_SECONDS        0x7ff9
#define    TODC_TYPE_MK48T35_CNTL_B        0x7ff9
#define    TODC_TYPE_MK48T35_CNTL_A        0x7ff8
#define    TODC_TYPE_MK48T35_WATCHDOG        0x0000
#define    TODC_TYPE_MK48T35_INTERRUPTS        0x0000
#define    TODC_TYPE_MK48T35_ALARM_DATE        0x0000
#define    TODC_TYPE_MK48T35_ALARM_HOUR        0x0000
#define    TODC_TYPE_MK48T35_ALARM_MINUTES        0x0000
#define    TODC_TYPE_MK48T35_ALARM_SECONDS        0x0000
#define    TODC_TYPE_MK48T35_CENTURY        0x0000
#define    TODC_TYPE_MK48T35_FLAGS            0x0000
#define    TODC_TYPE_MK48T35_NVRAM_ADDR_REG    0
#define    TODC_TYPE_MK48T35_NVRAM_DATA_REG    0

#define    TODC_TYPE_MK48T37_NVRAM_SIZE        0x7ff0
#define    TODC_TYPE_MK48T37_SW_FLAGS        0
#define    TODC_TYPE_MK48T37_YEAR            0x7fff
#define    TODC_TYPE_MK48T37_MONTH            0x7ffe
#define    TODC_TYPE_MK48T37_DOM            0x7ffd    /* Day of Month */
#define    TODC_TYPE_MK48T37_DOW            0x7ffc    /* Day of Week */
#define    TODC_TYPE_MK48T37_HOURS            0x7ffb
#define    TODC_TYPE_MK48T37_MINUTES        0x7ffa
#define    TODC_TYPE_MK48T37_SECONDS        0x7ff9
#define    TODC_TYPE_MK48T37_CNTL_B        0x7ff9
#define    TODC_TYPE_MK48T37_CNTL_A        0x7ff8
#define    TODC_TYPE_MK48T37_WATCHDOG        0x7ff7
#define    TODC_TYPE_MK48T37_INTERRUPTS        0x7ff6
#define    TODC_TYPE_MK48T37_ALARM_DATE        0x7ff5
#define    TODC_TYPE_MK48T37_ALARM_HOUR        0x7ff4
#define    TODC_TYPE_MK48T37_ALARM_MINUTES        0x7ff3
#define    TODC_TYPE_MK48T37_ALARM_SECONDS        0x7ff2
#define    TODC_TYPE_MK48T37_CENTURY        0x7ff1
#define    TODC_TYPE_MK48T37_FLAGS            0x7ff0
#define    TODC_TYPE_MK48T37_NVRAM_ADDR_REG    0
#define    TODC_TYPE_MK48T37_NVRAM_DATA_REG    0

#define    TODC_TYPE_MK48T59_NVRAM_SIZE        0x1ff0
#define    TODC_TYPE_MK48T59_SW_FLAGS        0
#define    TODC_TYPE_MK48T59_YEAR            0x1fff
#define    TODC_TYPE_MK48T59_MONTH            0x1ffe
#define    TODC_TYPE_MK48T59_DOM            0x1ffd    /* Day of Month */
#define    TODC_TYPE_MK48T59_DOW            0x1ffc    /* Day of Week */
#define    TODC_TYPE_MK48T59_HOURS            0x1ffb
#define    TODC_TYPE_MK48T59_MINUTES        0x1ffa
#define    TODC_TYPE_MK48T59_SECONDS        0x1ff9
#define    TODC_TYPE_MK48T59_CNTL_B        0x1ff9
#define    TODC_TYPE_MK48T59_CNTL_A        0x1ff8
#define    TODC_TYPE_MK48T59_WATCHDOG        0x1fff
#define    TODC_TYPE_MK48T59_INTERRUPTS        0x1fff
#define    TODC_TYPE_MK48T59_ALARM_DATE        0x1fff
#define    TODC_TYPE_MK48T59_ALARM_HOUR        0x1fff
#define    TODC_TYPE_MK48T59_ALARM_MINUTES        0x1fff
#define    TODC_TYPE_MK48T59_ALARM_SECONDS        0x1fff
#define    TODC_TYPE_MK48T59_CENTURY        0x1fff
#define    TODC_TYPE_MK48T59_FLAGS            0x1fff
#define    TODC_TYPE_MK48T59_NVRAM_ADDR_REG    0
#define    TODC_TYPE_MK48T59_NVRAM_DATA_REG    0

#define    TODC_TYPE_DS1501_NVRAM_SIZE    0x100
#define    TODC_TYPE_DS1501_SW_FLAGS    TODC_FLAG_2_LEVEL_NVRAM
#define    TODC_TYPE_DS1501_YEAR        (TODC_TYPE_DS1501_NVRAM_SIZE + 0x06)
#define    TODC_TYPE_DS1501_MONTH        (TODC_TYPE_DS1501_NVRAM_SIZE + 0x05)
#define    TODC_TYPE_DS1501_DOM        (TODC_TYPE_DS1501_NVRAM_SIZE + 0x04)
#define    TODC_TYPE_DS1501_DOW        (TODC_TYPE_DS1501_NVRAM_SIZE + 0x03)
#define    TODC_TYPE_DS1501_HOURS        (TODC_TYPE_DS1501_NVRAM_SIZE + 0x02)
#define    TODC_TYPE_DS1501_MINUTES    (TODC_TYPE_DS1501_NVRAM_SIZE + 0x01)
#define    TODC_TYPE_DS1501_SECONDS    (TODC_TYPE_DS1501_NVRAM_SIZE + 0x00)
#define    TODC_TYPE_DS1501_CNTL_B        (TODC_TYPE_DS1501_NVRAM_SIZE + 0x0f)
#define    TODC_TYPE_DS1501_CNTL_A        (TODC_TYPE_DS1501_NVRAM_SIZE + 0x0f)
#define    TODC_TYPE_DS1501_WATCHDOG    (TODC_TYPE_DS1501_NVRAM_SIZE + 0xff)
#define    TODC_TYPE_DS1501_INTERRUPTS    (TODC_TYPE_DS1501_NVRAM_SIZE + 0xff)
#define    TODC_TYPE_DS1501_ALARM_DATE    (TODC_TYPE_DS1501_NVRAM_SIZE + 0x0b)
#define    TODC_TYPE_DS1501_ALARM_HOUR    (TODC_TYPE_DS1501_NVRAM_SIZE + 0x0a)
#define    TODC_TYPE_DS1501_ALARM_MINUTES    (TODC_TYPE_DS1501_NVRAM_SIZE + 0x09)
#define    TODC_TYPE_DS1501_ALARM_SECONDS    (TODC_TYPE_DS1501_NVRAM_SIZE + 0x08)
#define    TODC_TYPE_DS1501_CENTURY    (TODC_TYPE_DS1501_NVRAM_SIZE + 0x07)
#define    TODC_TYPE_DS1501_FLAGS        (TODC_TYPE_DS1501_NVRAM_SIZE + 0xff)
#define    TODC_TYPE_DS1501_NVRAM_ADDR_REG    0x10
#define    TODC_TYPE_DS1501_NVRAM_DATA_REG    0x13

#define    TODC_TYPE_DS1553_NVRAM_SIZE        0x1ff0
#define    TODC_TYPE_DS1553_SW_FLAGS        0
#define    TODC_TYPE_DS1553_YEAR            0x1fff
#define    TODC_TYPE_DS1553_MONTH            0x1ffe
#define    TODC_TYPE_DS1553_DOM            0x1ffd    /* Day of Month */
#define    TODC_TYPE_DS1553_DOW            0x1ffc    /* Day of Week */
#define    TODC_TYPE_DS1553_HOURS            0x1ffb
#define    TODC_TYPE_DS1553_MINUTES        0x1ffa
#define    TODC_TYPE_DS1553_SECONDS        0x1ff9
#define    TODC_TYPE_DS1553_CNTL_B            0x1ff9
#define    TODC_TYPE_DS1553_CNTL_A            0x1ff8    /* control_a R/W regs */
#define    TODC_TYPE_DS1553_WATCHDOG        0x1ff7
#define    TODC_TYPE_DS1553_INTERRUPTS        0x1ff6
#define    TODC_TYPE_DS1553_ALARM_DATE        0x1ff5
#define    TODC_TYPE_DS1553_ALARM_HOUR        0x1ff4
#define    TODC_TYPE_DS1553_ALARM_MINUTES        0x1ff3
#define    TODC_TYPE_DS1553_ALARM_SECONDS        0x1ff2
#define    TODC_TYPE_DS1553_CENTURY        0x1ff8
#define    TODC_TYPE_DS1553_FLAGS            0x1ff0
#define    TODC_TYPE_DS1553_NVRAM_ADDR_REG        0
#define    TODC_TYPE_DS1553_NVRAM_DATA_REG        0

#define    TODC_TYPE_DS1557_NVRAM_SIZE        0x7fff0
#define    TODC_TYPE_DS1557_SW_FLAGS        0
#define    TODC_TYPE_DS1557_YEAR            0x7ffff
#define    TODC_TYPE_DS1557_MONTH            0x7fffe
#define    TODC_TYPE_DS1557_DOM            0x7fffd    /* Day of Month */
#define    TODC_TYPE_DS1557_DOW            0x7fffc    /* Day of Week */
#define    TODC_TYPE_DS1557_HOURS            0x7fffb
#define    TODC_TYPE_DS1557_MINUTES        0x7fffa
#define    TODC_TYPE_DS1557_SECONDS        0x7fff9
#define    TODC_TYPE_DS1557_CNTL_B            0x7fff9
#define    TODC_TYPE_DS1557_CNTL_A            0x7fff8    /* control_a R/W regs */
#define    TODC_TYPE_DS1557_WATCHDOG        0x7fff7
#define    TODC_TYPE_DS1557_INTERRUPTS        0x7fff6
#define    TODC_TYPE_DS1557_ALARM_DATE        0x7fff5
#define    TODC_TYPE_DS1557_ALARM_HOUR        0x7fff4
#define    TODC_TYPE_DS1557_ALARM_MINUTES        0x7fff3
#define    TODC_TYPE_DS1557_ALARM_SECONDS        0x7fff2
#define    TODC_TYPE_DS1557_CENTURY        0x7fff8
#define    TODC_TYPE_DS1557_FLAGS            0x7fff0
#define    TODC_TYPE_DS1557_NVRAM_ADDR_REG        0
#define    TODC_TYPE_DS1557_NVRAM_DATA_REG        0

#define    TODC_TYPE_DS1643_NVRAM_SIZE        0x1ff8
#define    TODC_TYPE_DS1643_SW_FLAGS        0
#define    TODC_TYPE_DS1643_YEAR            0x1fff
#define    TODC_TYPE_DS1643_MONTH            0x1ffe
#define    TODC_TYPE_DS1643_DOM            0x1ffd    /* Day of Month */
#define    TODC_TYPE_DS1643_DOW            0x1ffc    /* Day of Week */
#define    TODC_TYPE_DS1643_HOURS            0x1ffb
#define    TODC_TYPE_DS1643_MINUTES        0x1ffa
#define    TODC_TYPE_DS1643_SECONDS        0x1ff9
#define    TODC_TYPE_DS1643_CNTL_B            0x1ff9
#define    TODC_TYPE_DS1643_CNTL_A            0x1ff8    /* control_a R/W regs */
#define    TODC_TYPE_DS1643_WATCHDOG        0x1fff
#define    TODC_TYPE_DS1643_INTERRUPTS        0x1fff
#define    TODC_TYPE_DS1643_ALARM_DATE        0x1fff
#define    TODC_TYPE_DS1643_ALARM_HOUR        0x1fff
#define    TODC_TYPE_DS1643_ALARM_MINUTES        0x1fff
#define    TODC_TYPE_DS1643_ALARM_SECONDS        0x1fff
#define    TODC_TYPE_DS1643_CENTURY        0x1ff8
#define    TODC_TYPE_DS1643_FLAGS            0x1fff
#define    TODC_TYPE_DS1643_NVRAM_ADDR_REG        0
#define    TODC_TYPE_DS1643_NVRAM_DATA_REG        0

#define    TODC_TYPE_DS1693_NVRAM_SIZE        0 /* Not handled yet */
#define    TODC_TYPE_DS1693_SW_FLAGS        0
#define    TODC_TYPE_DS1693_YEAR            0x09
#define    TODC_TYPE_DS1693_MONTH            0x08
#define    TODC_TYPE_DS1693_DOM            0x07    /* Day of Month */
#define    TODC_TYPE_DS1693_DOW            0x06    /* Day of Week */
#define    TODC_TYPE_DS1693_HOURS            0x04
#define    TODC_TYPE_DS1693_MINUTES        0x02
#define    TODC_TYPE_DS1693_SECONDS        0x00
#define    TODC_TYPE_DS1693_CNTL_B            0x0b
#define    TODC_TYPE_DS1693_CNTL_A            0x0a
#define    TODC_TYPE_DS1693_WATCHDOG        0xff
#define    TODC_TYPE_DS1693_INTERRUPTS        0xff
#define    TODC_TYPE_DS1693_ALARM_DATE        0x49
#define    TODC_TYPE_DS1693_ALARM_HOUR        0x05
#define    TODC_TYPE_DS1693_ALARM_MINUTES        0x03
#define    TODC_TYPE_DS1693_ALARM_SECONDS        0x01
#define    TODC_TYPE_DS1693_CENTURY        0x48
#define    TODC_TYPE_DS1693_FLAGS            0xff
#define    TODC_TYPE_DS1693_NVRAM_ADDR_REG        0
#define    TODC_TYPE_DS1693_NVRAM_DATA_REG        0

#define    TODC_TYPE_DS1743_NVRAM_SIZE        0x1ff8
#define    TODC_TYPE_DS1743_SW_FLAGS        0
#define    TODC_TYPE_DS1743_YEAR            0x1fff
#define    TODC_TYPE_DS1743_MONTH            0x1ffe
#define    TODC_TYPE_DS1743_DOM            0x1ffd    /* Day of Month */
#define    TODC_TYPE_DS1743_DOW            0x1ffc    /* Day of Week */
#define    TODC_TYPE_DS1743_HOURS            0x1ffb
#define    TODC_TYPE_DS1743_MINUTES        0x1ffa
#define    TODC_TYPE_DS1743_SECONDS        0x1ff9
#define    TODC_TYPE_DS1743_CNTL_B            0x1ff9
#define    TODC_TYPE_DS1743_CNTL_A            0x1ff8    /* control_a R/W regs */
#define    TODC_TYPE_DS1743_WATCHDOG        0x1fff
#define    TODC_TYPE_DS1743_INTERRUPTS        0x1fff
#define    TODC_TYPE_DS1743_ALARM_DATE        0x1fff
#define    TODC_TYPE_DS1743_ALARM_HOUR        0x1fff
#define    TODC_TYPE_DS1743_ALARM_MINUTES        0x1fff
#define    TODC_TYPE_DS1743_ALARM_SECONDS        0x1fff
#define    TODC_TYPE_DS1743_CENTURY        0x1ff8
#define    TODC_TYPE_DS1743_FLAGS            0x1fff
#define    TODC_TYPE_DS1743_NVRAM_ADDR_REG        0
#define    TODC_TYPE_DS1743_NVRAM_DATA_REG        0

#define    TODC_TYPE_DS1746_NVRAM_SIZE        0x1fff8
#define    TODC_TYPE_DS1746_SW_FLAGS        0
#define    TODC_TYPE_DS1746_YEAR            0x1ffff
#define    TODC_TYPE_DS1746_MONTH            0x1fffe
#define    TODC_TYPE_DS1746_DOM            0x1fffd    /* Day of Month */
#define    TODC_TYPE_DS1746_DOW            0x1fffc    /* Day of Week */
#define    TODC_TYPE_DS1746_HOURS            0x1fffb
#define    TODC_TYPE_DS1746_MINUTES        0x1fffa
#define    TODC_TYPE_DS1746_SECONDS        0x1fff9
#define    TODC_TYPE_DS1746_CNTL_B            0x1fff9
#define    TODC_TYPE_DS1746_CNTL_A            0x1fff8    /* control_a R/W regs */
#define    TODC_TYPE_DS1746_WATCHDOG        0x00000
#define    TODC_TYPE_DS1746_INTERRUPTS        0x00000
#define    TODC_TYPE_DS1746_ALARM_DATE        0x00000
#define    TODC_TYPE_DS1746_ALARM_HOUR        0x00000
#define    TODC_TYPE_DS1746_ALARM_MINUTES        0x00000
#define    TODC_TYPE_DS1746_ALARM_SECONDS        0x00000
#define    TODC_TYPE_DS1746_CENTURY        0x00000
#define    TODC_TYPE_DS1746_FLAGS            0x00000
#define    TODC_TYPE_DS1746_NVRAM_ADDR_REG        0
#define    TODC_TYPE_DS1746_NVRAM_DATA_REG        0

#define    TODC_TYPE_DS1747_NVRAM_SIZE        0x7fff8
#define    TODC_TYPE_DS1747_SW_FLAGS        0
#define    TODC_TYPE_DS1747_YEAR            0x7ffff
#define    TODC_TYPE_DS1747_MONTH            0x7fffe
#define    TODC_TYPE_DS1747_DOM            0x7fffd    /* Day of Month */
#define    TODC_TYPE_DS1747_DOW            0x7fffc    /* Day of Week */
#define    TODC_TYPE_DS1747_HOURS            0x7fffb
#define    TODC_TYPE_DS1747_MINUTES        0x7fffa
#define    TODC_TYPE_DS1747_SECONDS        0x7fff9
#define    TODC_TYPE_DS1747_CNTL_B            0x7fff9
#define    TODC_TYPE_DS1747_CNTL_A            0x7fff8    /* control_a R/W regs */
#define    TODC_TYPE_DS1747_WATCHDOG        0x00000
#define    TODC_TYPE_DS1747_INTERRUPTS        0x00000
#define    TODC_TYPE_DS1747_ALARM_DATE        0x00000
#define    TODC_TYPE_DS1747_ALARM_HOUR        0x00000
#define    TODC_TYPE_DS1747_ALARM_MINUTES        0x00000
#define    TODC_TYPE_DS1747_ALARM_SECONDS        0x00000
#define    TODC_TYPE_DS1747_CENTURY        0x00000
#define    TODC_TYPE_DS1747_FLAGS            0x00000
#define    TODC_TYPE_DS1747_NVRAM_ADDR_REG        0
#define    TODC_TYPE_DS1747_NVRAM_DATA_REG        0

#define TODC_TYPE_DS17285_NVRAM_SIZE        (0x1000-0x80)    /* 4Kx8 NVRAM (minus RTC regs) */
#define TODC_TYPE_DS17285_SW_FLAGS        TODC_FLAG_2_LEVEL_NVRAM
#define TODC_TYPE_DS17285_SECONDS        (TODC_TYPE_DS17285_NVRAM_SIZE + 0x00)
#define TODC_TYPE_DS17285_ALARM_SECONDS        (TODC_TYPE_DS17285_NVRAM_SIZE + 0x01)
#define TODC_TYPE_DS17285_MINUTES        (TODC_TYPE_DS17285_NVRAM_SIZE + 0x02)
#define TODC_TYPE_DS17285_ALARM_MINUTES        (TODC_TYPE_DS17285_NVRAM_SIZE + 0x03)
#define TODC_TYPE_DS17285_HOURS            (TODC_TYPE_DS17285_NVRAM_SIZE + 0x04)
#define TODC_TYPE_DS17285_ALARM_HOUR        (TODC_TYPE_DS17285_NVRAM_SIZE + 0x05)
#define TODC_TYPE_DS17285_DOW            (TODC_TYPE_DS17285_NVRAM_SIZE + 0x06)
#define TODC_TYPE_DS17285_DOM            (TODC_TYPE_DS17285_NVRAM_SIZE + 0x07)
#define TODC_TYPE_DS17285_MONTH            (TODC_TYPE_DS17285_NVRAM_SIZE + 0x08)
#define TODC_TYPE_DS17285_YEAR            (TODC_TYPE_DS17285_NVRAM_SIZE + 0x09)
#define TODC_TYPE_DS17285_CNTL_A        (TODC_TYPE_DS17285_NVRAM_SIZE + 0x0A)
#define TODC_TYPE_DS17285_CNTL_B        (TODC_TYPE_DS17285_NVRAM_SIZE + 0x0B)
#define TODC_TYPE_DS17285_CNTL_C        (TODC_TYPE_DS17285_NVRAM_SIZE + 0x0C)
#define TODC_TYPE_DS17285_CNTL_D        (TODC_TYPE_DS17285_NVRAM_SIZE + 0x0D)
#define TODC_TYPE_DS17285_WATCHDOG        0
#define TODC_TYPE_DS17285_INTERRUPTS        0
#define TODC_TYPE_DS17285_ALARM_DATE        0
#define TODC_TYPE_DS17285_CENTURY        0
#define TODC_TYPE_DS17285_FLAGS            0
#define TODC_TYPE_DS17285_NVRAM_ADDR_REG    0x50
#define TODC_TYPE_DS17285_NVRAM_DATA_REG    0x53
 
#define    TODC_TYPE_MC146818_NVRAM_SIZE        0    /* XXXX */
#define    TODC_TYPE_MC146818_SW_FLAGS        0
#define    TODC_TYPE_MC146818_YEAR            0x09
#define    TODC_TYPE_MC146818_MONTH        0x08
#define    TODC_TYPE_MC146818_DOM            0x07    /* Day of Month */
#define    TODC_TYPE_MC146818_DOW            0x06    /* Day of Week */
#define    TODC_TYPE_MC146818_HOURS        0x04
#define    TODC_TYPE_MC146818_MINUTES        0x02
#define    TODC_TYPE_MC146818_SECONDS        0x00
#define    TODC_TYPE_MC146818_CNTL_B        0x0a
#define    TODC_TYPE_MC146818_CNTL_A        0x0b    /* control_a R/W regs */
#define    TODC_TYPE_MC146818_WATCHDOG        0
#define    TODC_TYPE_MC146818_INTERRUPTS        0x0c
#define    TODC_TYPE_MC146818_ALARM_DATE        0xff
#define    TODC_TYPE_MC146818_ALARM_HOUR        0x05
#define    TODC_TYPE_MC146818_ALARM_MINUTES    0x03
#define    TODC_TYPE_MC146818_ALARM_SECONDS    0x01
#define    TODC_TYPE_MC146818_CENTURY        0xff
#define    TODC_TYPE_MC146818_FLAGS        0xff
#define    TODC_TYPE_MC146818_NVRAM_ADDR_REG    0
#define    TODC_TYPE_MC146818_NVRAM_DATA_REG    0
  
#define    TODC_TYPE_PC97307_NVRAM_SIZE        0    /* No NVRAM? */
#define    TODC_TYPE_PC97307_SW_FLAGS        0
#define    TODC_TYPE_PC97307_YEAR            0x09
#define    TODC_TYPE_PC97307_MONTH            0x08
#define    TODC_TYPE_PC97307_DOM            0x07    /* Day of Month */
#define    TODC_TYPE_PC97307_DOW            0x06    /* Day of Week */
#define    TODC_TYPE_PC97307_HOURS            0x04
#define    TODC_TYPE_PC97307_MINUTES        0x02
#define    TODC_TYPE_PC97307_SECONDS        0x00
#define    TODC_TYPE_PC97307_CNTL_B        0x0a
#define    TODC_TYPE_PC97307_CNTL_A        0x0b    /* control_a R/W regs */
#define    TODC_TYPE_PC97307_WATCHDOG        0x0c
#define    TODC_TYPE_PC97307_INTERRUPTS        0x0d
#define    TODC_TYPE_PC97307_ALARM_DATE        0xff
#define    TODC_TYPE_PC97307_ALARM_HOUR        0x05
#define    TODC_TYPE_PC97307_ALARM_MINUTES        0x03
#define    TODC_TYPE_PC97307_ALARM_SECONDS        0x01
#define    TODC_TYPE_PC97307_CENTURY        0xff
#define    TODC_TYPE_PC97307_FLAGS            0xff
#define    TODC_TYPE_PC97307_NVRAM_ADDR_REG    0
#define    TODC_TYPE_PC97307_NVRAM_DATA_REG    0

/*
 * Define macros to allocate and init the todc_info_t table that will
 * be used by the todc_time.c routines.
 */
#define    TODC_ALLOC()                            \
    static todc_info_t todc_info_alloc;                \
    todc_info_t *todc_info = &todc_info_alloc;

#define    TODC_INIT(clock_type, as0, as1, data, bits) {            \
    todc_info->rtc_type = clock_type;                \
                                    \
    todc_info->nvram_as0  = (unsigned int)(as0);            \
    todc_info->nvram_as1  = (unsigned int)(as1);            \
    todc_info->nvram_data = (unsigned int)(data);            \
                                    \
    todc_info->as0_bits = (bits);                    \
                                    \
    todc_info->nvram_size     = clock_type ##_NVRAM_SIZE;        \
    todc_info->sw_flags       = clock_type ##_SW_FLAGS;        \
                                    \
    todc_info->year           = clock_type ##_YEAR;            \
    todc_info->month          = clock_type ##_MONTH;        \
    todc_info->day_of_month   = clock_type ##_DOM;            \
    todc_info->day_of_week    = clock_type ##_DOW;            \
    todc_info->hours          = clock_type ##_HOURS;        \
    todc_info->minutes        = clock_type ##_MINUTES;        \
    todc_info->seconds        = clock_type ##_SECONDS;        \
    todc_info->control_b      = clock_type ##_CNTL_B;        \
    todc_info->control_a      = clock_type ##_CNTL_A;        \
    todc_info->watchdog       = clock_type ##_WATCHDOG;        \
    todc_info->interrupts     = clock_type ##_INTERRUPTS;        \
    todc_info->alarm_date     = clock_type ##_ALARM_DATE;        \
    todc_info->alarm_hour     = clock_type ##_ALARM_HOUR;        \
    todc_info->alarm_minutes  = clock_type ##_ALARM_MINUTES;    \
    todc_info->alarm_seconds  = clock_type ##_ALARM_SECONDS;    \
    todc_info->century        = clock_type ##_CENTURY;        \
    todc_info->flags          = clock_type ##_FLAGS;        \
                                    \
    todc_info->nvram_addr_reg = clock_type ##_NVRAM_ADDR_REG;    \
    todc_info->nvram_data_reg = clock_type ##_NVRAM_DATA_REG;    \
}

extern todc_info_t *todc_info;

unsigned char todc_direct_read_val(int addr);
void todc_direct_write_val(int addr, unsigned char val);
unsigned char todc_m48txx_read_val(int addr);
void todc_m48txx_write_val(int addr, unsigned char val);
unsigned char todc_mc146818_read_val(int addr);
void todc_mc146818_write_val(int addr, unsigned char val);

long todc_time_init(void);
unsigned long todc_get_rtc_time(void);
int todc_set_rtc_time(unsigned long nowtime);
void todc_calibrate_decr(void);

#endif                /* __PPC_KERNEL_TODC_H */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v.2.1 [PHP 7 Update] [1.12.2019] maintained by KaizenLouie and updated by cermmik | C99Shell Github (MySQL update) | Generation time: 0.0068 ]--