!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/src/linux-2.4.18-xfs-1.1/drivers/acpi/ospm/include/   drwxr-xr-x
Free 318.28 GB of 458.09 GB (69.48%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     bm.h (14.32 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*****************************************************************************
 *
 * Module name: bm.h
 *   $Revision: 41 $
 *
 *****************************************************************************/

/*
 *  Copyright (C) 2000, 2001 Andrew Grover
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#ifndef __BM_H__
#define __BM_H__

#include <actypes.h>
#include <acexcep.h>


/*****************************************************************************
 *                               Types & Defines
 *****************************************************************************/

/*
 * Output Flags (Debug):
 * ---------------------
 */
#define BM_PRINT_ALL        (0x00000000)
#define BM_PRINT_GROUP        (0x00000001)
#define BM_PRINT_LINKAGE    (0x00000002)
#define BM_PRINT_IDENTIFICATION    (0x00000004)
#define BM_PRINT_POWER        (0x00000008)
#define BM_PRINT_PRESENT    (0x00000010)


/*
 * BM_COMMAND:
 * -----------
 */
typedef u32            BM_COMMAND;

#define BM_COMMAND_UNKNOWN    ((BM_COMMAND) 0x00)

#define BM_COMMAND_GET_POWER_STATE ((BM_COMMAND) 0x01)
#define BM_COMMAND_SET_POWER_STATE ((BM_COMMAND) 0x02)

#define BM_COMMAND_DEVICE_SPECIFIC ((BM_COMMAND) 0x80)

/*
 * BM_NOTIFY:
 * ----------
 * Standard ACPI notification values, from section 5.6.3 of the ACPI 2.0
 * specification.  Note that the Bus Manager internally handles all
 * standard ACPI notifications -- driver modules are never sent these
 * values (see "Bus Manager Notifications", below).
 */
typedef u32            BM_NOTIFY;

#define BM_NOTIFY_BUS_CHECK    ((BM_NOTIFY) 0x00)
#define BM_NOTIFY_DEVICE_CHECK    ((BM_NOTIFY) 0x01)
#define BM_NOTIFY_DEVICE_WAKE    ((BM_NOTIFY) 0x02)
#define BM_NOTIFY_EJECT_REQUEST    ((BM_NOTIFY) 0x03)
#define BM_NOTIFY_DEVICE_CHECK_LIGHT ((BM_NOTIFY) 0x04)
#define BM_NOTIFY_FREQUENCY_MISMATCH ((BM_NOTIFY) 0x05)
#define BM_NOTIFY_BUS_MODE_MISMATCH ((BM_NOTIFY) 0x06)
#define BM_NOTIFY_POWER_FAULT    ((BM_NOTIFY) 0x07)

/*
 * These are a higher-level abstraction of ACPI notifications, intended
 * for consumption by driver modules to facilitate Pn_p.
 */
#define BM_NOTIFY_UNKNOWN    ((BM_NOTIFY) 0x00)
#define BM_NOTIFY_DEVICE_ADDED    ((BM_NOTIFY) 0x01)
#define BM_NOTIFY_DEVICE_REMOVED ((BM_NOTIFY) 0x02)


/*
 * BM_HANDLE:
 * ----------
 */
typedef u32            BM_HANDLE;

#define BM_HANDLE_ROOT        ((BM_HANDLE) 0x00000000)
#define BM_HANDLE_UNKNOWN    ((BM_HANDLE) 0xFFFFFFFF)
#define BM_HANDLES_MAX        100


/*
 * BM_HANDLE_LIST:
 * ---------------
 */
typedef struct
{
    u32            count;
    BM_HANDLE        handles[BM_HANDLES_MAX];
} BM_HANDLE_LIST;


/*
 * BM_DEVICE_TYPE:
 * ---------------
 */
typedef u32            BM_DEVICE_TYPE;

#define BM_TYPE_UNKNOWN        ((BM_DEVICE_TYPE) 0x00000000)

#define BM_TYPE_SYSTEM        ((BM_DEVICE_TYPE) 0x00000001)
#define BM_TYPE_SCOPE        ((BM_DEVICE_TYPE) 0x00000002)
#define BM_TYPE_PROCESSOR    ((BM_DEVICE_TYPE) 0x00000003)
#define BM_TYPE_THERMAL_ZONE    ((BM_DEVICE_TYPE) 0x00000004)
#define BM_TYPE_POWER_RESOURCE    ((BM_DEVICE_TYPE) 0x00000005)
#define BM_TYPE_DEVICE        ((BM_DEVICE_TYPE) 0x00000006)
#define BM_TYPE_FIXED_BUTTON    ((BM_DEVICE_TYPE) 0x00000007)


/*
 * BM_DEVICE_UID:
 * --------------
 */
typedef char            BM_DEVICE_UID[9];

#define BM_UID_UNKNOWN        '0'


/*
 * BM_DEVICE_HID:
 * --------------
 */
typedef char            BM_DEVICE_HID[9];

#define BM_HID_UNKNOWN        '\0'
#define BM_HID_POWER_BUTTON    "PNP0C0C"
#define BM_HID_SLEEP_BUTTON    "PNP0C0E"

/*
 * BM_DEVICE_ADR:
 * --------------
 */
typedef u32            BM_DEVICE_ADR;

#define BM_ADDRESS_UNKNOWN    0


/*
 * BM_DEVICE_FLAGS:
 * ----------------
 * The encoding of BM_DEVICE_FLAGS is illustrated below.
 * Note that a set bit (1) indicates the property is TRUE
 * (e.g. if bit 0 is set then the device has dynamic status).
 * +--+------------+-+-+-+-+-+-+-+
 * |31| Bits 30:7  |6|5|4|3|2|1|0|
 * +--+------------+-+-+-+-+-+-+-+
 *   |       |      | | | | | | |
 *   |       |      | | | | | | +- Dynamic status?
 *   |       |      | | | | | +--- Identifiable?
 *   |       |      | | | | +----- Configurable?
 *   |       |      | | | +------- Power Control?
 *   |       |      | | +--------- Ejectable?
 *   |       |      | +----------- Docking Station?
 *   |       |      +------------- Fixed-Feature?
 *   |       +-------------------- <Reserved>
 *   +---------------------------- Driver Control?
 *
 * Dynamic status:  Device has a _STA object.
 * Identifiable:    Device has a _HID and/or _ADR and possibly other
 *                  identification objects defined.
 * Configurable:    Device has a _CRS and possibly other configuration
 *                  objects defined.
 * Power Control:   Device has a _PR0 and/or _PS0 and possibly other
 *                  power management objects defined.
 * Ejectable:       Device has an _EJD and/or _EJx and possibly other
 *                  dynamic insertion/removal objects defined.
 * Docking Station: Device has a _DCK object defined.
 * Fixed-Feature:   Device does not exist in the namespace; was
 *                  enumerated as a fixed-feature (e.g. power button).
 * Driver Control:  A driver has been installed for this device.
 */
typedef u32            BM_DEVICE_FLAGS;

#define BM_FLAGS_UNKNOWN    ((BM_DEVICE_FLAGS) 0x00000000)

#define BM_FLAGS_DYNAMIC_STATUS    ((BM_DEVICE_FLAGS) 0x00000001)
#define BM_FLAGS_IDENTIFIABLE    ((BM_DEVICE_FLAGS) 0x00000002)
#define BM_FLAGS_CONFIGURABLE    ((BM_DEVICE_FLAGS) 0x00000004)
#define BM_FLAGS_POWER_CONTROL    ((BM_DEVICE_FLAGS) 0x00000008)
#define BM_FLAGS_EJECTABLE    ((BM_DEVICE_FLAGS) 0x00000010)
#define BM_FLAGS_DOCKING_STATION ((BM_DEVICE_FLAGS) 0x00000020)
#define BM_FLAGS_FIXED_FEATURE    ((BM_DEVICE_FLAGS) 0x00000040)
#define BM_FLAGS_DRIVER_CONTROL    ((BM_DEVICE_FLAGS) 0x80000000)


/*
 * Device PM Flags:
 * ----------------
 * +-----------+-+-+-+-+-+-+-+
 * | Bits 31:7 |6|5|4|3|2|1|0|
 * +-----------+-+-+-+-+-+-+-+
 *       |      | | | | | | |
 *       |      | | | | | | +- D0 Support?
 *       |      | | | | | +--- D1 Support?
 *       |      | | | | +----- D2 Support?
 *       |      | | | +------- D3 Support?
 *       |      | | +--------- Power State Queriable?
 *       |      | +----------- Inrush Current?
 *       |      +------------- Wake Capable?
 *       +-------------------- <Reserved>
 *
 * D0-D3 Support:   Device supports corresponding Dx state.
 * Power State:     Device has a _PSC (current power state) object defined.
 * Inrush Current:  Device has an _IRC (inrush current) object defined.
 * Wake Capable:    Device has a _PRW (wake-capable) object defined.
 */
#define BM_FLAGS_D0_SUPPORT    ((BM_DEVICE_FLAGS) 0x00000001)
#define BM_FLAGS_D1_SUPPORT    ((BM_DEVICE_FLAGS) 0x00000002)
#define BM_FLAGS_D2_SUPPORT    ((BM_DEVICE_FLAGS) 0x00000004)
#define BM_FLAGS_D3_SUPPORT    ((BM_DEVICE_FLAGS) 0x00000008)
#define BM_FLAGS_POWER_STATE    ((BM_DEVICE_FLAGS) 0x00000010)
#define BM_FLAGS_INRUSH_CURRENT    ((BM_DEVICE_FLAGS) 0x00000020)
#define BM_FLAGS_WAKE_CAPABLE    ((BM_DEVICE_FLAGS) 0x00000040)


/*
 * BM_DEVICE_STATUS:
 * -----------------
 * The encoding of BM_DEVICE_STATUS is illustrated below.
 * Note that a set bit (1) indicates the property is TRUE
 * (e.g. if bit 0 is set then the device is present).
 * +-----------+-+-+-+-+-+
 * | Bits 31:4 |4|3|2|1|0|
 * +-----------+-+-+-+-+-+
 *       |      | | | | |
 *       |      | | | | +- Present?
 *       |      | | | +--- Enabled?
 *       |      | | +----- Show in UI?
 *       |      | +------- Functioning?
 *       |      +--------- Battery Present?
 *       +---------------- <Reserved>
 */
typedef u32            BM_DEVICE_STATUS;

#define BM_STATUS_UNKNOWN    ((BM_DEVICE_STATUS) 0x00000000)
#define BM_STATUS_PRESENT    ((BM_DEVICE_STATUS) 0x00000001)
#define BM_STATUS_ENABLED    ((BM_DEVICE_STATUS) 0x00000002)
#define BM_STATUS_SHOW_UI    ((BM_DEVICE_STATUS) 0x00000004)
#define BM_STATUS_FUNCTIONING    ((BM_DEVICE_STATUS) 0x00000008)
#define BM_STATUS_BATTERY_PRESENT ((BM_DEVICE_STATUS) 0x00000010)
#define BM_STATUS_DEFAULT    ((BM_DEVICE_STATUS) 0x0000000F)


/*
 * BM_POWER_STATE:
 * ---------------
 */
typedef u32            BM_POWER_STATE;


/*
 * BM_DEVICE_ID:
 * -------------
 */
typedef struct
{
    BM_DEVICE_TYPE        type;
    BM_DEVICE_UID        uid;
    BM_DEVICE_HID        hid;
    BM_DEVICE_ADR        adr;
} BM_DEVICE_ID;


/*
 * BM_DEVICE_POWER:
 * ----------------
 * Structure containing basic device power management information.
 */
typedef struct
{
    BM_DEVICE_FLAGS        flags;
    BM_POWER_STATE        state;
    BM_DEVICE_FLAGS        dx_supported[ACPI_S_STATE_COUNT];
} BM_DEVICE_POWER;


/*
 * BM_DEVICE:
 * ----------
 */
typedef struct
{
    BM_HANDLE        handle;
    acpi_handle          acpi_handle;
    BM_DEVICE_FLAGS        flags;
    BM_DEVICE_STATUS    status;
    BM_DEVICE_ID        id;
    BM_DEVICE_POWER        power;
} BM_DEVICE;


/*
 * BM_SEARCH:
 * ----------
 * Structure used for searching the ACPI Bus Manager's device hierarchy.
 */
typedef struct
{
    BM_DEVICE_ID        criteria;
    BM_HANDLE_LIST        results;
} BM_SEARCH;


/*
 * BM_REQUEST:
 * -----------
 * Structure used for sending requests to/through the ACPI Bus Manager.
 */
typedef struct
{
    acpi_status        status;
    BM_COMMAND        command;
    BM_HANDLE        handle;
    acpi_buffer        buffer;
} BM_REQUEST;


/*
 * Driver Registration:
 * --------------------
 */

/* Driver Context */
typedef void *            BM_DRIVER_CONTEXT;

/* Notification Callback Function */
typedef
acpi_status (*BM_DRIVER_NOTIFY) (
    BM_NOTIFY        notify_type,
    BM_HANDLE        device_handle,
    BM_DRIVER_CONTEXT    *context);

/* Request Callback Function */
typedef
acpi_status (*BM_DRIVER_REQUEST) (
    BM_REQUEST        *request,
    BM_DRIVER_CONTEXT    context);

/* Driver Registration */
typedef struct
{
    BM_DRIVER_NOTIFY    notify;
    BM_DRIVER_REQUEST    request;
    BM_DRIVER_CONTEXT    context;
} BM_DRIVER;


/*
 * BM_NODE:
 * --------
 * Structure used to maintain the device hierarchy.
 */
typedef struct _BM_NODE
{
    BM_DEVICE        device;
    BM_DRIVER        driver;
    struct _BM_NODE        *parent;
    struct _BM_NODE        *next;
    struct
    {
        struct _BM_NODE        *head;
        struct _BM_NODE        *tail;
    }            scope;
} BM_NODE;


/*
 * BM_NODE_LIST:
 * -------------
 * Structure used to maintain an array of node pointers.
 */
typedef struct
{
    u32            count;
    BM_NODE            *nodes[BM_HANDLES_MAX];
} BM_NODE_LIST;


/*****************************************************************************
 *                                  Macros
 *****************************************************************************/

/*
 * Device Presence:
 * ----------------
 * Note that status (_STA) means something different for power resources
 * (they're assumed to always be present).
 */
#define BM_DEVICE_PRESENT(d)    ((d->id.type!=BM_TYPE_POWER_RESOURCE)?(d->status & BM_STATUS_PRESENT):TRUE)
#define BM_NODE_PRESENT(n)    ((n->device.id.type!=BM_TYPE_POWER_RESOURCE)?(n->device.status & BM_STATUS_PRESENT):TRUE)

/*
 * Device Flags:
 * -------------
 */
#define BM_IS_DRIVER_CONTROL(d)    (d->flags & BM_FLAGS_DRIVER_CONTROL)
#define BM_IS_POWER_CONTROL(d)    (d->flags & BM_FLAGS_POWER_CONTROL)

 /*
 * Device Power Flags:
 * -------------------
 */
#define BM_IS_POWER_STATE(d)    (d->power.flags & BM_FLAGS_POWER_STATE)

/*****************************************************************************
 *                             Function Prototypes
 *****************************************************************************/

/* bm.c */

acpi_status
bm_initialize (void);

acpi_status
bm_terminate (void);

acpi_status
bm_get_status (
    BM_DEVICE        *device);

acpi_status
bm_get_handle (
    acpi_handle             acpi_handle,
    BM_HANDLE               *device_handle);

acpi_status
bm_get_node (
    BM_HANDLE               device_handle,
    acpi_handle             acpi_handle,
    BM_NODE            **node);

/* bmsearch.c */

acpi_status
bm_search(
    BM_HANDLE               device_handle,
    BM_DEVICE_ID            *criteria,
    BM_HANDLE_LIST          *results);

/* bmnotify.c */

void
bm_notify (
    acpi_handle             acpi_handle,
    u32                     notify_value,
    void                    *context);

/* bm_request.c */

acpi_status
bm_request (
    BM_REQUEST        *request_info);

/* bmdriver.c */

acpi_status
bm_get_device_power_state (
    BM_HANDLE               device_handle,
    BM_POWER_STATE        *state);

acpi_status
bm_set_device_power_state (
    BM_HANDLE               device_handle,
    BM_POWER_STATE        state);

acpi_status
bm_get_device_status (
    BM_HANDLE               device_handle,
    BM_DEVICE_STATUS        *device_status);

acpi_status
bm_get_device_info (
    BM_HANDLE               device_handle,
    BM_DEVICE        **device_info);

acpi_status
bm_get_device_context (
    BM_HANDLE               device_handle,
    BM_DRIVER_CONTEXT    *context);

acpi_status
bm_register_driver (
    BM_DEVICE_ID        *criteria,
    BM_DRIVER        *driver);

acpi_status
bm_unregister_driver (
    BM_DEVICE_ID        *criteria,
    BM_DRIVER        *driver);

/* bmpm.c */

acpi_status
bm_get_pm_capabilities (
    BM_NODE            *node);

acpi_status
bm_get_power_state (
    BM_NODE            *node);

acpi_status
bm_set_power_state (
    BM_NODE            *node,
    BM_POWER_STATE          target_state);

/* bmpower.c */

acpi_status
bm_pr_initialize (void);

acpi_status
bm_pr_terminate (void);
    
/* bmutils.c */

acpi_status
bm_cast_buffer (
    acpi_buffer             *buffer,
    void                    **pointer,
    u32                     length);

acpi_status
bm_copy_to_buffer (
    acpi_buffer             *buffer,
    void                    *data,
    u32                     length);

acpi_status
bm_extract_package_data (
    acpi_object             *package,
    acpi_buffer             *format,
    acpi_buffer             *buffer);

acpi_status
bm_evaluate_object (
    acpi_handle             acpi_handle,
    acpi_string             pathname,
    acpi_object_list        *arguments,
    acpi_buffer             *buffer);

acpi_status
bm_evaluate_simple_integer (
    acpi_handle             acpi_handle,
    acpi_string             pathname,
    u32                     *data);

acpi_status
bm_evaluate_reference_list (
    acpi_handle             acpi_handle,
    acpi_string             pathname,
    BM_HANDLE_LIST          *reference_list);

/* ACPI Bus Driver OSL */

acpi_status
bm_osl_generate_event (
    BM_HANDLE        device_handle,
    char            *device_type,
    char            *device_instance,
    u32            event_type,
    u32            event_data);


#endif  /* __BM_H__ */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

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

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

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0055 ]--