Merge remote-tracking branch 'haiku/master' into package-management
This reverts 8f7f28a7c3 (OpenGL: Upgrade
to
Mesa 9.2).
Conflicts:
build/jam/BuildFeatures
build/jam/HaikuImage
build/jam/OptionalPackages
build/scripts/build_cross_tools_gcc4
src/add-ons/opengl/swpipe/Jamfile
src/apps/diskusage/Jamfile
src/kits/tracker/ContainerWindow.cpp
src/kits/tracker/DeskWindow.cpp
src/kits/tracker/Jamfile
This commit is contained in:
@@ -58,6 +58,8 @@ struct x86_64_debug_cpu_state {
|
||||
uint64 rcx;
|
||||
uint64 rbx;
|
||||
uint64 rax;
|
||||
uint64 vector;
|
||||
uint64 error_code;
|
||||
uint64 rip;
|
||||
uint64 cs;
|
||||
uint64 rflags;
|
||||
|
||||
@@ -47,21 +47,11 @@ typedef struct pci_x86_module_info {
|
||||
uint8 function, /* function # in device */
|
||||
uint8 count, /* count of vectors desired */
|
||||
uint8 *startVector); /* first configured vector */
|
||||
status_t (*unconfigure_msix)(
|
||||
uint8 bus, /* bus number */
|
||||
uint8 device, /* device # on bus */
|
||||
uint8 function); /* function # in device */
|
||||
|
||||
status_t (*enable_msix)(
|
||||
uint8 bus, /* bus number */
|
||||
uint8 device, /* device # on bus */
|
||||
uint8 function); /* function # in device */
|
||||
status_t (*disable_msix)(
|
||||
uint8 bus, /* bus number */
|
||||
uint8 device, /* device # on bus */
|
||||
uint8 function); /* function # in device */
|
||||
|
||||
|
||||
} pci_x86_module_info;
|
||||
|
||||
#define B_PCI_X86_MODULE_NAME "bus_managers/pci/x86/v1"
|
||||
|
||||
@@ -62,6 +62,19 @@
|
||||
#define USB_ENDPOINT_ATTR_INTERRUPT 0x03
|
||||
#define USB_ENDPOINT_ATTR_MASK 0x03
|
||||
|
||||
/* Synchronization - isochrnous endpoints only */
|
||||
#define USB_ENDPOINT_ATTR_NO_SYNCHRONIZE 0x00
|
||||
#define USB_ENDPOINT_ATTR_ASYNCRONOUS 0x04
|
||||
#define USB_ENDPOINT_ATTR_ADAPTIVE_SYNCHRO 0x08
|
||||
#define USB_ENDPOINT_ATTR_SYNCHRONOUS 0x0C
|
||||
#define USB_ENDPOINT_ATTR_SYNCHRONIZE_MASK 0x0C
|
||||
|
||||
/* Usage Type - isochrnous endpoints only */
|
||||
#define USB_ENDPOINT_ATTR_DATA_USAGE 0x00
|
||||
#define USB_ENDPOINT_ATTR_FEEDBACK_USAGE 0x10
|
||||
#define USB_ENDPOINT_ATTR_IMPLICIT_USAGE 0x20
|
||||
#define USB_ENDPOINT_ATTR_USAGE_MASK 0x30
|
||||
|
||||
#define USB_ENDPOINT_ADDR_DIR_IN 0x80
|
||||
#define USB_ENDPOINT_ADDR_DIR_OUT 0x00
|
||||
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
#ifndef USB_AUDIO_H
|
||||
#define USB_AUDIO_H
|
||||
|
||||
// (Partial) USB Class Definitions for Audio Devices, version 1.0
|
||||
// Reference: http://www.usb.org/developers/devclass_docs/audio10.pdf
|
||||
// (Partial) USB Device Class Definition for Audio Devices
|
||||
// R1: Release 1.0 March 18, 1998
|
||||
// R2: Release 2.0 May 31, 2006
|
||||
|
||||
#include <BeBuild.h> // for _PACKED definition
|
||||
#include <SupportDefs.h>
|
||||
|
||||
#define USB_AUDIO_DEVICE_CLASS 0x01
|
||||
#define USB_AUDIO_CLASS_VERSION 0x0100
|
||||
@@ -14,29 +15,299 @@ enum {
|
||||
};
|
||||
|
||||
enum { // Audio Interface Subclasses
|
||||
USB_AUDIO_INTERFACE_AUDIOCONTROL_SUBCLASS = 0x01, //
|
||||
USB_AUDIO_INTERFACE_UNDEFINED_SUBCLASS = 0x00,
|
||||
USB_AUDIO_INTERFACE_AUDIOCONTROL_SUBCLASS = 0x01,
|
||||
USB_AUDIO_INTERFACE_AUDIOSTREAMING_SUBCLASS, //
|
||||
USB_AUDIO_INTERFACE_MIDISTREAMING_SUBCLASS //
|
||||
};
|
||||
|
||||
enum { // Audio Class-Specific AudioControl Interface descriptor subtypes
|
||||
USB_AUDIO_AC_DESCRIPTOR_UNDEFINED = 0x00,
|
||||
USB_AUDIO_AC_HEADER = 0x01,
|
||||
USB_AUDIO_AC_INPUT_TERMINAL,
|
||||
USB_AUDIO_AC_OUTPUT_TERMINAL,
|
||||
USB_AUDIO_AC_MIXER_UNIT,
|
||||
USB_AUDIO_AC_SELECTOR_UNIT,
|
||||
USB_AUDIO_AC_FEATURE_UNIT,
|
||||
USB_AUDIO_AC_PROCESSING_UNIT,
|
||||
USB_AUDIO_AC_EXTENSION_UNIT
|
||||
enum { // Audio Interface Protocol Codes
|
||||
USB_AUDIO_PROTOCOL_UNDEFINED = 0x00
|
||||
};
|
||||
|
||||
enum { // Audio Class-Specific AudioStreaming Interface descriptor subtypes
|
||||
USB_AUDIO_AS_GENERAL = 0x01,
|
||||
USB_AUDIO_AS_FORMAT_TYPE,
|
||||
USB_AUDIO_AS_FORMAT_SPECIFIC
|
||||
enum { // Audio Interface Protocol Codes
|
||||
USB_AUDIO_CS_UNDEFINED = 0x20,
|
||||
USB_AUDIO_CS_DEVICE = 0x21,
|
||||
USB_AUDIO_CS_CONFIGURATION = 0x22,
|
||||
USB_AUDIO_CS_STRING = 0x23,
|
||||
USB_AUDIO_CS_INTERFACE = 0x24,
|
||||
USB_AUDIO_CS_ENDPOINT = 0x25
|
||||
};
|
||||
|
||||
|
||||
enum { // Audio Class-Specific AudioControl Interface descriptor subtypes
|
||||
USB_AUDIO_AC_DESCRIPTOR_UNDEFINED = 0x00,
|
||||
USB_AUDIO_AC_HEADER = 0x01,
|
||||
USB_AUDIO_AC_INPUT_TERMINAL = 0x02,
|
||||
USB_AUDIO_AC_OUTPUT_TERMINAL = 0x03,
|
||||
USB_AUDIO_AC_MIXER_UNIT = 0x04,
|
||||
USB_AUDIO_AC_SELECTOR_UNIT = 0x05,
|
||||
USB_AUDIO_AC_FEATURE_UNIT = 0x06,
|
||||
USB_AUDIO_AC_PROCESSING_UNIT = 0x07,
|
||||
USB_AUDIO_AC_EXTENSION_UNIT = 0x08,
|
||||
USB_AUDIO_AC_EFFECT_UNIT_R2 = 0x07,
|
||||
USB_AUDIO_AC_PROCESSING_UNIT_R2 = 0x08,
|
||||
USB_AUDIO_AC_EXTENSION_UNIT_R2 = 0x09,
|
||||
USB_AUDIO_AC_CLOCK_SOURCE_R2 = 0x0A,
|
||||
USB_AUDIO_AC_CLOCK_SELECTOR_R2 = 0x0B,
|
||||
USB_AUDIO_AC_CLOCK_MULTIPLIER_R2 = 0x0C,
|
||||
USB_AUDIO_AC_SAMPLE_RATE_CONVERTER_R2 = 0x0D
|
||||
};
|
||||
|
||||
|
||||
// Class Specific Audio Control Interface Header
|
||||
// R1: Table 4-2 p.37 / R2: Table 4-5 p.48
|
||||
typedef struct {
|
||||
uint8 length;
|
||||
uint8 descriptor_type; // USB_AUDIO_CS_INTERFACE
|
||||
uint8 descriptor_subtype; // USB_AUDIO_AC_HEADER
|
||||
uint16 bcd_release_no;
|
||||
union {
|
||||
struct {
|
||||
uint16 total_length;
|
||||
uint8 in_collection;
|
||||
uint8 interface_numbers[1];
|
||||
} _PACKED r1;
|
||||
|
||||
struct {
|
||||
uint8 function_category;
|
||||
uint16 total_length;
|
||||
uint8 bm_controls;
|
||||
} _PACKED r2;
|
||||
};
|
||||
} _PACKED usb_audiocontrol_header_descriptor;
|
||||
|
||||
|
||||
// Input Terminal Descriptor
|
||||
// R1: Table 4-3 p.39 / R2: Table 4-9, page 53
|
||||
typedef struct {
|
||||
uint8 length;
|
||||
uint8 descriptor_type; // USB_AUDIO_CS_INTERFACE
|
||||
uint8 descriptor_subtype; // USB_AUDIO_AC_INPUT_TERMINAL
|
||||
uint8 terminal_id;
|
||||
uint16 terminal_type;
|
||||
uint8 assoc_terminal;
|
||||
union {
|
||||
struct {
|
||||
uint8 num_channels;
|
||||
uint8 channel_config;
|
||||
uint8 channel_names;
|
||||
uint8 terminal;
|
||||
} _PACKED r1;
|
||||
|
||||
struct {
|
||||
uint8 clock_source_id;
|
||||
uint8 num_channels;
|
||||
uint32 channel_config;
|
||||
uint8 channel_names;
|
||||
uint16 bm_controls;
|
||||
uint8 terminal;
|
||||
} _PACKED r2;
|
||||
};
|
||||
} _PACKED usb_audio_input_terminal_descriptor;
|
||||
|
||||
|
||||
// Output Terminal Descriptor
|
||||
// R1: Table 4-4 p.40 / R2: Table 4-10, page 54
|
||||
typedef struct {
|
||||
uint8 length;
|
||||
uint8 descriptor_type; // USB_AUDIO_CS_INTERFACE
|
||||
uint8 descriptor_subtype; // USB_AUDIO_AC_OUTPUT_TERMINAL
|
||||
uint8 terminal_id;
|
||||
uint16 terminal_type;
|
||||
uint8 assoc_terminal;
|
||||
uint8 source_id;
|
||||
union {
|
||||
struct {
|
||||
uint8 terminal;
|
||||
} _PACKED r1;
|
||||
|
||||
struct {
|
||||
uint8 clock_source_id;
|
||||
uint16 bm_controls;
|
||||
uint8 terminal;
|
||||
} _PACKED r2;
|
||||
};
|
||||
} _PACKED usb_audio_output_terminal_descriptor;
|
||||
|
||||
|
||||
// pseudo-descriptor for a section corresponding to logical output channels
|
||||
// used in mixer, processing and extension descriptions.
|
||||
typedef struct {
|
||||
uint8 num_output_pins; // number of mixer output pins
|
||||
uint16 channel_config; // location of logical channels
|
||||
uint8 channel_names; // id of name string of first logical channel
|
||||
} _PACKED usb_audio_output_channels_descriptor_r1;
|
||||
|
||||
typedef struct {
|
||||
uint8 num_output_pins; // number of mixer output pins
|
||||
uint32 channel_config; // location of logical channels
|
||||
uint8 channel_names; // id of name string of first logical channel
|
||||
} _PACKED usb_audio_output_channels_descriptor;
|
||||
|
||||
|
||||
// Mixer Unit Descriptor
|
||||
// R1: Table 4-5 p.41 / R2: Table 4-11, page 57
|
||||
typedef struct {
|
||||
uint8 length;
|
||||
uint8 descriptor_type; // USB_AUDIO_CS_INTERFACE
|
||||
uint8 descriptor_subtype; // USB_AUDIO_AC_MIXER_UNIT
|
||||
uint8 unit_id;
|
||||
uint8 num_input_pins;
|
||||
uint8 input_pins[1];
|
||||
// use usb_audio_output_channels_descriptor to parse the rest
|
||||
} _PACKED usb_audio_mixer_unit_descriptor;
|
||||
|
||||
|
||||
// Selector Unit Descriptor
|
||||
// R1: Table 4-6 p.43 / R2: Table 4-12, page 58
|
||||
typedef struct {
|
||||
uint8 length;
|
||||
uint8 descriptor_type; // USB_AUDIO_CS_INTERFACE
|
||||
uint8 descriptor_subtype; // USB_AUDIO_AC_SELECTOR_UNIT
|
||||
uint8 unit_id;
|
||||
uint8 num_input_pins;
|
||||
uint8 input_pins[1];
|
||||
// uint8 selector_string;
|
||||
} _PACKED usb_audio_selector_unit_descriptor;
|
||||
|
||||
|
||||
// Feature Unit Descriptor
|
||||
// R1: Table 4-7 p.43 / R2: Table 4-13, page 59
|
||||
typedef struct {
|
||||
uint8 length;
|
||||
uint8 descriptor_type; // USB_AUDIO_CS_INTERFACE
|
||||
uint8 descriptor_subtype; // USB_AUDIO_AC_FEATURE_UNIT
|
||||
uint8 unit_id;
|
||||
uint8 source_id;
|
||||
union {
|
||||
struct {
|
||||
uint8 control_size;
|
||||
uint8 bma_controls[1];
|
||||
// uint8 feature_string;
|
||||
} _PACKED r1;
|
||||
|
||||
struct {
|
||||
uint32 bma_controls[1];
|
||||
// uint8 feature_string;
|
||||
} _PACKED r2;
|
||||
};
|
||||
} _PACKED usb_audio_feature_unit_descriptor;
|
||||
|
||||
|
||||
// Processing Unit Descriptor
|
||||
// R1: Table 4-8 p.45 / R2: Table 4-20, page 66
|
||||
typedef struct {
|
||||
uint8 length;
|
||||
uint8 descriptor_type; // USB_AUDIO_CS_INTERFACE
|
||||
uint8 descriptor_subtype; // USB_AUDIO_AC_PROCESSING_UNIT
|
||||
uint8 unit_id;
|
||||
uint16 process_type;
|
||||
uint8 num_input_pins;
|
||||
uint8 input_pins[1];
|
||||
// use usb_audio_output_channels_descriptor to parse the rest
|
||||
// TODO - the bmControl!!!!
|
||||
} _PACKED usb_audio_processing_unit_descriptor;
|
||||
|
||||
// Extension Unit Descriptor
|
||||
// R1: Table 4-15, p. 56 / R2: Table 4-24, p.73
|
||||
typedef struct {
|
||||
uint8 length;
|
||||
uint8 descriptor_type; // USB_AUDIO_CS_INTERFACE
|
||||
uint8 descriptor_subtype; // USB_AUDIO_AC_EXTENSION_UNIT
|
||||
uint8 unit_id;
|
||||
uint16 extension_code;
|
||||
uint8 num_input_pins;
|
||||
uint8 input_pins[1];
|
||||
// use usb_audio_output_channels_descriptor to parse the rest
|
||||
} _PACKED usb_audio_extension_unit_descriptor;
|
||||
|
||||
|
||||
enum { // Audio Class-Specific AudioStreaming Interface descriptor subtypes
|
||||
USB_AUDIO_AS_DESCRIPTOR_UNDEFINED = 0x00,
|
||||
USB_AUDIO_AS_GENERAL = 0x01,
|
||||
USB_AUDIO_AS_FORMAT_TYPE = 0x02,
|
||||
USB_AUDIO_AS_FORMAT_SPECIFIC = 0x03
|
||||
};
|
||||
|
||||
// Class Specific Audio Streaming Interface Descriptor
|
||||
// R1: Table 4-19 p.60 / R2: Table 4-27 p.76
|
||||
typedef struct {
|
||||
uint8 length;
|
||||
uint8 descriptor_type; // USB_AUDIO_CS_INTERFACE
|
||||
uint8 descriptor_subtype; // USB_AUDIO_AS_GENERAL
|
||||
uint8 terminal_link;
|
||||
union {
|
||||
struct {
|
||||
uint8 delay;
|
||||
uint16 format_tag;
|
||||
} _PACKED r1;
|
||||
|
||||
struct {
|
||||
uint8 bm_controls;
|
||||
uint8 format_type;
|
||||
uint32 bm_formats;
|
||||
uint8 num_output_pins;
|
||||
uint32 channel_config;
|
||||
uint8 channel_names;
|
||||
} _PACKED r2;
|
||||
};
|
||||
} _PACKED usb_audio_streaming_interface_descriptor;
|
||||
|
||||
|
||||
// Class-specific As Isochronous Audio Data Endpoint descriptor
|
||||
// R1: Table 4-21, p. 62 / R2: Table 4-34, page 87
|
||||
typedef struct {
|
||||
uint8 length;
|
||||
uint8 descriptor_type; // USB_AUDIO_CS_ENDPOINT
|
||||
uint8 descriptor_subtype; // USB_AUDIO_EP_GENERAL
|
||||
uint8 attributes;
|
||||
uint8 lock_delay_units;
|
||||
uint16 lock_delay;
|
||||
} _PACKED usb_audio_streaming_endpoint_descriptor;
|
||||
|
||||
|
||||
// Sampling Rate are represented as 3-byte integer
|
||||
typedef struct {
|
||||
uint8 bytes[3];
|
||||
} _PACKED usb_audio_sampling_freq;
|
||||
|
||||
|
||||
// Format Type I/II/III Descriptors
|
||||
// T1: Table 2-1, p.10 etc.
|
||||
// T2: Table 2-2, p.15 etc.
|
||||
typedef struct {
|
||||
uint8 length;
|
||||
uint8 descriptor_type; // USB_AUDIO_CS_INTERFACE
|
||||
uint8 descriptor_subtype; // USB_AUDIO_AS_FORMAT_TYPE
|
||||
uint8 format_type; // USB_AUDIO_FORMAT_TYPE_I/II/III
|
||||
union {
|
||||
struct {
|
||||
uint8 nr_channels;
|
||||
uint8 subframe_size;
|
||||
uint8 bit_resolution;
|
||||
uint8 sam_freq_type;
|
||||
usb_audio_sampling_freq sam_freqs[1];
|
||||
} _PACKED typeI;
|
||||
|
||||
struct {
|
||||
uint16 max_bit_rate;
|
||||
uint16 samples_per_frame;
|
||||
uint8 sam_freq_type;
|
||||
usb_audio_sampling_freq sam_freqs[1];
|
||||
} _PACKED typeII;
|
||||
|
||||
struct {
|
||||
uint8 nr_channels;
|
||||
uint8 subframe_size;
|
||||
uint8 bit_resolution;
|
||||
uint8 sam_freq_type;
|
||||
usb_audio_sampling_freq sam_freqs[1];
|
||||
} _PACKED typeIII;
|
||||
};
|
||||
} _PACKED usb_audio_format_descriptor;
|
||||
|
||||
|
||||
enum { // Processing Unit Process Types (for USB_AUDIO_AC_PROCESSING_UNIT)
|
||||
USB_AUDIO_UPDOWNMIX_PROCESS = 0x01,
|
||||
USB_AUDIO_DOLBY_PROLOGIC_PROCESS,
|
||||
@@ -46,35 +317,48 @@ enum { // Processing Unit Process Types (for USB_AUDIO_AC_PROCESSING_UNIT)
|
||||
USB_AUDIO_DYN_RANGE_COMP_PROCESS
|
||||
};
|
||||
|
||||
// AudioControl request codes
|
||||
#define USB_AUDIO_SET_CURRENT 0x01
|
||||
#define USB_AUDIO_GET_CURRENT 0x81
|
||||
#define USB_AUDIO_SET_MIN 0x02
|
||||
#define USB_AUDIO_GET_MIN 0x82
|
||||
#define USB_AUDIO_SET_MAX 0x03
|
||||
#define USB_AUDIO_GET_MAX 0x83
|
||||
#define USB_AUDIO_SET_RES 0x04
|
||||
#define USB_AUDIO_GET_RES 0x84
|
||||
#define USB_AUDIO_SET_MEM 0x05
|
||||
#define USB_AUDIO_GET_MEM 0x85
|
||||
#define USB_AUDIO_GET_STATUS 0xFF
|
||||
enum { // Audio Class-Specific Request Codes
|
||||
USB_AUDIO_SET_CUR = 0x01,
|
||||
USB_AUDIO_GET_CUR = 0x81,
|
||||
USB_AUDIO_SET_MIN = 0x02,
|
||||
USB_AUDIO_GET_MIN = 0x82,
|
||||
USB_AUDIO_SET_MAX = 0x03,
|
||||
USB_AUDIO_GET_MAX = 0x83,
|
||||
USB_AUDIO_SET_RES = 0x04,
|
||||
USB_AUDIO_GET_RES = 0x84,
|
||||
USB_AUDIO_SET_MEM = 0x05,
|
||||
USB_AUDIO_GET_MEM = 0x85,
|
||||
USB_AUDIO_GET_STATUS = 0xFF
|
||||
};
|
||||
|
||||
enum { // Terminal Control Selectors
|
||||
USB_AUDIO_COPY_PROTECT_CONTROL = 0x01
|
||||
};
|
||||
|
||||
// R2: A.17.5 Mixer Unit Control Selectors
|
||||
enum {
|
||||
USB_AUDIO_MU_CONTROL_UNDEFINED = 0x00,
|
||||
USB_AUDIO_MIXER_CONTROL = 0x01,
|
||||
USB_AUDIO_CLUSTER_CONTROL = 0x02,
|
||||
USB_AUDIO_UNDERFLOW_CONTROL = 0x03,
|
||||
USB_AUDIO_OVERFLOW_CONTROL = 0x04,
|
||||
USB_AUDIO_LATENCY_CONTROL = 0x05
|
||||
};
|
||||
|
||||
/* A.10.2 Feature Unit Control Selectors */
|
||||
#define AC_FU_CONTROL_UNDEFINED 0x00
|
||||
#define USB_AUDIO_MUTE_CONTROL 0x01
|
||||
#define USB_AUDIO_VOLUME_CONTROL 0x02
|
||||
#define USB_AUDIO_BASS_CONTROL 0x03
|
||||
#define USB_AUDIO_MID_CONTROL 0x04
|
||||
#define USB_AUDIO_TREBLE_CONTROL 0x05
|
||||
#define USB_AUDIO_GRAPHIC_EQUALIZER_CONTROL 0x06
|
||||
#define USB_AUDIO_AUTOMATIC_GAIN_CONTROL 0x07
|
||||
#define USB_AUDIO_DELAY_CONTROL 0x08
|
||||
#define USB_AUDIO_BASS_BOOST_CONTROL 0x09
|
||||
#define USB_AUDIO_LOUDNESS_CONTROL 0x0A
|
||||
enum {
|
||||
USB_AUDIO_AC_FU_CONTROL_UNDEFINED = 0x00,
|
||||
USB_AUDIO_MUTE_CONTROL = 0x01,
|
||||
USB_AUDIO_VOLUME_CONTROL = 0x02,
|
||||
USB_AUDIO_BASS_CONTROL = 0x03,
|
||||
USB_AUDIO_MID_CONTROL = 0x04,
|
||||
USB_AUDIO_TREBLE_CONTROL = 0x05,
|
||||
USB_AUDIO_GRAPHIC_EQUALIZER_CONTROL = 0x06,
|
||||
USB_AUDIO_AUTOMATIC_GAIN_CONTROL = 0x07,
|
||||
USB_AUDIO_DELAY_CONTROL = 0x08,
|
||||
USB_AUDIO_BASS_BOOST_CONTROL = 0x09,
|
||||
USB_AUDIO_LOUDNESS_CONTROL = 0x0A
|
||||
};
|
||||
|
||||
/* A.10.3.1 Up/Down-mix Processing Unit Control Selectors */
|
||||
#define USB_AUDIO_UD_CONTROL_UNDEFINED 0x00
|
||||
@@ -119,10 +403,13 @@ enum { // Terminal Control Selectors
|
||||
#define USB_AUDIO_XU_ENABLE_CONTROL 0x01
|
||||
|
||||
/* A.10.5 Endpoint Control Selectors */
|
||||
#define USB_AUDIO_EP_CONTROL_UNDEFINED 0x00
|
||||
#define USB_AUDIO_SAMPLING_FREQ_CONTROL 0x01
|
||||
#define USB_AUDIO_PITCH_CONTROL 0x02
|
||||
enum {
|
||||
USB_AUDIO_EP_CONTROL_UNDEFINED = 0x00,
|
||||
USB_AUDIO_SAMPLING_FREQ_CONTROL = 0x01,
|
||||
USB_AUDIO_PITCH_CONTROL = 0x02
|
||||
};
|
||||
|
||||
/*
|
||||
typedef struct
|
||||
{
|
||||
uint8 length;
|
||||
@@ -147,10 +434,131 @@ typedef struct {
|
||||
// if sample_freq_type != 1,
|
||||
// (sample_freq_type - 1) x uint8 sample_freq[3] follows...
|
||||
} _PACKED usb_audio_format_type_descriptor;
|
||||
*/
|
||||
// bitset for feature control bitmap
|
||||
// Table 4-7, page 44, bmaControls field
|
||||
enum {
|
||||
BMA_CTL_MUTE_R1 = 0X0001,
|
||||
BMA_CTL_VOLUME_R1 = 0X0002,
|
||||
BMA_CTL_BASS_R1 = 0X0004,
|
||||
BMA_CTL_MID_R1 = 0X0008,
|
||||
BMA_CTL_TREBLE_R1 = 0X0010,
|
||||
BMA_CTL_GRAPHEQ_R1 = 0X0020,
|
||||
BMA_CTL_AUTOGAIN_R1 = 0X0040,
|
||||
BMA_CTL_DELAY_R1 = 0X0080,
|
||||
BMA_CTL_BASSBOOST_R1 = 0X0100,
|
||||
BMA_CTL_LOUDNESS_R1 = 0X0200,
|
||||
// Release 2.0
|
||||
BMA_CTL_MUTE = 0X00000003,
|
||||
BMA_CTL_VOLUME = 0X0000000C,
|
||||
BMA_CTL_BASS = 0X00000030,
|
||||
BMA_CTL_MID = 0X000000C0,
|
||||
BMA_CTL_TREBLE = 0X00000300,
|
||||
BMA_CTL_GRAPHEQ = 0X00000C00,
|
||||
BMA_CTL_AUTOGAIN = 0X00003000,
|
||||
BMA_CTL_DELAY = 0X0000C000,
|
||||
BMA_CTL_BASSBOOST = 0X00030000,
|
||||
BMA_CTL_LOUDNESS = 0X000C0000,
|
||||
BMA_CTL_INPUTGAIN = 0X00300000,
|
||||
BMA_CTL_INPUTGAINPAD = 0X00C00000,
|
||||
BMA_CTL_PHASEINVERTER = 0X03000000,
|
||||
BMA_CTL_UNDERFLOW = 0X0C000000,
|
||||
BMA_CTL_OVERFLOW = 0X30000000
|
||||
};
|
||||
|
||||
// Table A-4, page 30
|
||||
// Format Type Codes
|
||||
enum {
|
||||
USB_AUDIO_FORMAT_TYPE_UNDEFINED = 0x00,
|
||||
USB_AUDIO_FORMAT_TYPE_I = 0x01,
|
||||
USB_AUDIO_FORMAT_TYPE_II = 0x02,
|
||||
USB_AUDIO_FORMAT_TYPE_III = 0x03
|
||||
};
|
||||
|
||||
// Table A-1, page 29, wFormatTag
|
||||
// Audio Data Format Type I codes
|
||||
enum {
|
||||
USB_AUDIO_FORMAT_TYPE_I_UNDEFINED = 0x0000,
|
||||
USB_AUDIO_FORMAT_PCM = 0x0001,
|
||||
USB_AUDIO_FORMAT_PCM8 = 0x0002,
|
||||
USB_AUDIO_FORMAT_IEEE_FLOAT = 0x0003,
|
||||
USB_AUDIO_FORMAT_ALAW = 0x0004,
|
||||
USB_AUDIO_FORMAT_MULAW = 0x0005
|
||||
};
|
||||
|
||||
|
||||
enum {
|
||||
// USB Terminal Types
|
||||
USB_AUDIO_UNDEFINED_USB_IO = 0x100,
|
||||
USB_AUDIO_STREAMING_USB_IO = 0x101,
|
||||
USB_AUDIO_VENDOR_USB_IO = 0x1ff,
|
||||
// Input Terminal Types
|
||||
USB_AUDIO_UNDEFINED_IN = 0x200,
|
||||
USB_AUDIO_MICROPHONE_IN = 0x201,
|
||||
USB_AUDIO_DESKTOPMIC_IN = 0x202,
|
||||
USB_AUDIO_PERSONALMIC_IN = 0x203,
|
||||
USB_AUDIO_OMNI_MIC_IN = 0x204,
|
||||
USB_AUDIO_MICS_ARRAY_IN = 0x205,
|
||||
USB_AUDIO_PROC_MICS_ARRAY_IN = 0x206,
|
||||
// Output Terminal Types
|
||||
USB_AUDIO_UNDEFINED_OUT = 0x300,
|
||||
USB_AUDIO_SPEAKER_OUT = 0x301,
|
||||
USB_AUDIO_HEAD_PHONES_OUT = 0x302,
|
||||
USB_AUDIO_HMD_AUDIO_OUT = 0x303,
|
||||
USB_AUDIO_DESKTOP_SPEAKER = 0x304,
|
||||
USB_AUDIO_ROOM_SPEAKER = 0x305,
|
||||
USB_AUDIO_COMM_SPEAKER = 0x306,
|
||||
USB_AUDIO_LFE_SPEAKER = 0x307,
|
||||
// Bi-directional Terminal Types
|
||||
USB_AUDIO_UNDEFINED_IO = 0x400,
|
||||
USB_AUDIO_HANDSET_IO = 0x401,
|
||||
USB_AUDIO_HEADSET_IO = 0x402,
|
||||
USB_AUDIO_SPEAKER_PHONE_IO = 0x403,
|
||||
USB_AUDIO_SPEAKER_PHONEES_IO = 0x404,
|
||||
USB_AUDIO_SPEAKER_PHONEEC_IO = 0x405,
|
||||
// Telephony Terminal Types
|
||||
USB_AUDIO_UNDEF_TELEPHONY_IO = 0x500,
|
||||
USB_AUDIO_PHONE_LINE_IO = 0x501,
|
||||
USB_AUDIO_TELEPHONE_IO = 0x502,
|
||||
USB_AUDIO_DOWNLINE_PHONE_IO = 0x503,
|
||||
// External Terminal Types
|
||||
USB_AUDIO_UNDEFINEDEXT_IO = 0x600,
|
||||
USB_AUDIO_ANALOG_CONNECTOR_IO = 0x601,
|
||||
USB_AUDIO_DAINTERFACE_IO = 0x602,
|
||||
USB_AUDIO_LINE_CONNECTOR_IO = 0x603,
|
||||
USB_AUDIO_LEGACY_CONNECTOR_IO = 0x604,
|
||||
USB_AUDIO_SPDIF_INTERFACE_IO = 0x605,
|
||||
USB_AUDIO_DA1394_STREAM_IO = 0x606,
|
||||
USB_AUDIO_DV1394_STREAMSOUND_IO = 0x607,
|
||||
USB_AUDIO_ADAT_LIGHTPIPE_IO = 0x608,
|
||||
USB_AUDIO_TDIF_IO = 0x609,
|
||||
USB_AUDIO_MADI_IO = 0x60a,
|
||||
// Embedded Terminal Types
|
||||
USB_AUDIO_UNDEF_EMBEDDED_IO = 0x700,
|
||||
USB_AUDIO_LC_NOISE_SOURCE_OUT = 0x701,
|
||||
USB_AUDIO_EQUALIZATION_NOISE_OUT = 0x702,
|
||||
USB_AUDIO_CDPLAYER_IN = 0x703,
|
||||
USB_AUDIO_DAT_IO = 0x704,
|
||||
USB_AUDIO_DCC_IO = 0x705,
|
||||
USB_AUDIO_MINI_DISK_IO = 0x706,
|
||||
USB_AUDIO_ANALOG_TAPE_IO = 0x707,
|
||||
USB_AUDIO_PHONOGRAPH_IN = 0x708,
|
||||
USB_AUDIO_VCR_AUDIO_IN = 0x709,
|
||||
USB_AUDIO_VIDEO_DISC_AUDIO_IN = 0x70a,
|
||||
USB_AUDIO_DVD_AUDIO_IN = 0x70b,
|
||||
USB_AUDIO_TV_TUNER_AUDIO_IN = 0x70c,
|
||||
USB_AUDIO_SAT_RECEIVER_AUDIO_IN = 0x70d,
|
||||
USB_AUDIO_CABLE_TUNER_AUDIO_IN = 0x70e,
|
||||
USB_AUDIO_DSS_AUDIO_IN = 0x70f,
|
||||
USB_AUDIO_RADIO_RECEIVER_IN = 0x710,
|
||||
USB_AUDIO_RADIO_TRANSMITTER_IN = 0x711,
|
||||
USB_AUDIO_MULTI_TRACK_RECORDER_IO = 0x712,
|
||||
USB_AUDIO_SYNTHESIZER_IO = 0x713,
|
||||
USB_AUDIO_PIANO_IO = 0x714,
|
||||
USB_AUDIO_GUITAR_IO = 0x715,
|
||||
USB_AUDIO_DRUMS_IO = 0x716,
|
||||
USB_AUDIO_INSTRUMENT_IO = 0x717
|
||||
};
|
||||
|
||||
#define USB_AUDIO_FORMAT_TYPE_UNDEFINED 0x00
|
||||
#define USB_AUDIO_FORMAT_TYPE_I 0x01
|
||||
#define USB_AUDIO_FORMAT_TYPE_II 0x02
|
||||
#define USB_AUDIO_FORMAT_TYPE_III 0x03
|
||||
|
||||
#endif // USB_AUDIO_H
|
||||
|
||||
@@ -72,7 +72,7 @@ public:
|
||||
int32 what, const char* property);
|
||||
virtual status_t GetSupportedSuites(BMessage* data);
|
||||
|
||||
virtual void MakeFocus(bool state = true);
|
||||
virtual void MakeFocus(bool focused = true);
|
||||
virtual void AllAttached();
|
||||
virtual void AllDetached();
|
||||
|
||||
@@ -92,6 +92,8 @@ private:
|
||||
BMessage* archive = NULL);
|
||||
void _LayoutView();
|
||||
void _InitOffscreen();
|
||||
void _InvalidateSelector(int16 ramp,
|
||||
rgb_color color, bool focused);
|
||||
void _DrawColorArea(BView* target, BRect update);
|
||||
void _DrawSelectors(BView* target);
|
||||
void _DrawColorRamp(BRect rect, BView* target,
|
||||
@@ -124,8 +126,9 @@ private:
|
||||
BBitmap* fBitmap;
|
||||
BView* fOffscreenView;
|
||||
|
||||
int32 fFocusedComponent;
|
||||
uint32 _reserved[2];
|
||||
int16 fFocusedRamp;
|
||||
int16 fClickedRamp;
|
||||
uint32 _reserved[2];
|
||||
};
|
||||
|
||||
inline void
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2011, Haiku, Inc. All rights reserved.
|
||||
* Copyright 2006-2013, Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
#ifndef _MENU_FIELD_H
|
||||
@@ -42,7 +42,7 @@ public:
|
||||
virtual void AllAttached();
|
||||
virtual void MouseDown(BPoint where);
|
||||
virtual void KeyDown(const char* bytes, int32 numBytes);
|
||||
virtual void MakeFocus(bool state);
|
||||
virtual void MakeFocus(bool focused);
|
||||
virtual void MessageReceived(BMessage* message);
|
||||
virtual void WindowActivated(bool state);
|
||||
virtual void MouseUp(BPoint where);
|
||||
@@ -121,9 +121,12 @@ private:
|
||||
BMenuField(const char* label,
|
||||
BMenu* menu, BMessage* message);
|
||||
|
||||
void _DrawLabel(BRect updateRect);
|
||||
void _DrawMenuBar(BRect updateRect);
|
||||
|
||||
void InitObject(const char* label);
|
||||
void InitObject2();
|
||||
void DrawLabel(BRect updateRect);
|
||||
|
||||
static void InitMenu(BMenu* menu);
|
||||
|
||||
int32 _MenuTask();
|
||||
@@ -145,8 +148,6 @@ private:
|
||||
alignment fAlign;
|
||||
float fDivider;
|
||||
bool fEnabled;
|
||||
bool fSelected;
|
||||
bool fTransition;
|
||||
bool fFixedSizeMB;
|
||||
thread_id fMenuTaskID;
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@ public:
|
||||
void Zoom();
|
||||
void SetZoomLimits(float maxWidth, float maxHeight);
|
||||
virtual void ScreenChanged(BRect screenSize,
|
||||
color_space format);
|
||||
color_space depth);
|
||||
|
||||
void SetPulseRate(bigtime_t rate);
|
||||
bigtime_t PulseRate() const;
|
||||
@@ -219,7 +219,7 @@ public:
|
||||
|
||||
virtual BHandler* ResolveSpecifier(BMessage* message,
|
||||
int32 index, BMessage* specifier,
|
||||
int32 form, const char* property);
|
||||
int32 what, const char* property);
|
||||
virtual status_t GetSupportedSuites(BMessage* data);
|
||||
|
||||
status_t AddToSubset(BWindow* window);
|
||||
|
||||
@@ -82,7 +82,7 @@ public:
|
||||
// The data returned through ReadFrames() will be in the format that's
|
||||
// returned by this function.
|
||||
|
||||
status_t DecodedFormat(media_format* _inOutFormat,
|
||||
status_t DecodedFormat(media_format* _format,
|
||||
uint32 flags = 0);
|
||||
|
||||
// CountFrames and Duration return the total number of frame and the
|
||||
@@ -113,15 +113,15 @@ public:
|
||||
// in microseconds, is in the media_header structure.
|
||||
|
||||
status_t ReadFrames(void* buffer, int64* _frameCount,
|
||||
media_header* mediaHeader = NULL);
|
||||
media_header* header = NULL);
|
||||
|
||||
status_t ReadFrames(void* buffer, int64* _frameCount,
|
||||
media_header* mediaHeader,
|
||||
media_header* header,
|
||||
media_decode_info* info);
|
||||
|
||||
status_t ReplaceFrames(const void* buffer,
|
||||
int64* _inOutFrameCount,
|
||||
const media_header* mediaHeader);
|
||||
int64* _frameCount,
|
||||
const media_header* header);
|
||||
|
||||
|
||||
// SeekToTime and SeekToFrame are used for seeking to a particular
|
||||
@@ -135,14 +135,12 @@ public:
|
||||
// frame or _after_ this frame, pass B_MEDIA_SEEK_CLOSEST_FORWARD or
|
||||
// B_MEDIA_SEEK_CLOSEST_BACKWARD as the flags field.
|
||||
|
||||
status_t SeekToTime(bigtime_t* _inOutTime,
|
||||
int32 flags = 0);
|
||||
status_t SeekToFrame(int64* _inOutFrame,
|
||||
int32 flags = 0);
|
||||
status_t SeekToTime(bigtime_t* _time, int32 flags = 0);
|
||||
status_t SeekToFrame(int64* _frame, int32 flags = 0);
|
||||
|
||||
status_t FindKeyFrameForTime(bigtime_t* _inOutTime,
|
||||
status_t FindKeyFrameForTime(bigtime_t* _time,
|
||||
int32 flags = 0) const;
|
||||
status_t FindKeyFrameForFrame(int64* _inOutFrame,
|
||||
status_t FindKeyFrameForFrame(int64* _frame,
|
||||
int32 flags = 0) const;
|
||||
|
||||
// ReadChunk returns, in _buffer, the next _size bytes of
|
||||
@@ -153,7 +151,7 @@ public:
|
||||
// it with ReadFrames.
|
||||
|
||||
status_t ReadChunk(char** _buffer, int32* _size,
|
||||
media_header* mediaHeader = NULL);
|
||||
media_header* _header = NULL);
|
||||
|
||||
|
||||
//
|
||||
|
||||
@@ -35,7 +35,8 @@ enum {
|
||||
B_NETWORK_AUTHENTICATION_NONE = 0,
|
||||
B_NETWORK_AUTHENTICATION_WEP = 1,
|
||||
B_NETWORK_AUTHENTICATION_WPA = 2,
|
||||
B_NETWORK_AUTHENTICATION_WPA2 = 3
|
||||
B_NETWORK_AUTHENTICATION_WPA2 = 3,
|
||||
B_NETWORK_AUTHENTICATION_EAP = 4
|
||||
};
|
||||
|
||||
// cipher algorithms
|
||||
@@ -60,6 +61,13 @@ enum {
|
||||
B_KEY_MODE_WPS = 0x0200
|
||||
};
|
||||
|
||||
// eap encapsulation method (IEEE 802.1x)
|
||||
enum {
|
||||
B_NETWORK_EAP_ENCAPSULATION_NONE = 0x0000,
|
||||
B_NETWORK_EAP_ENCAPSULATION_PEAP = 0x0001,
|
||||
B_NETWORK_EAP_ENCAPSULATION_TLS = 0x0002
|
||||
};
|
||||
|
||||
|
||||
class BNetworkDevice {
|
||||
public:
|
||||
|
||||
@@ -54,9 +54,6 @@ private:
|
||||
void _ParseStatus();
|
||||
void _ParseHeaders();
|
||||
|
||||
void _CopyChunkInBuffer(char** buffer,
|
||||
ssize_t* bytesReceived);
|
||||
|
||||
void _AddOutputBufferLine(const char* line);
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright 2013, Haiku, Inc. All Rights Reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Jérôme Duval, [email protected]
|
||||
*/
|
||||
#ifndef _RANDOM_H
|
||||
#define _RANDOM_H
|
||||
|
||||
|
||||
#include <device_manager.h>
|
||||
|
||||
|
||||
typedef struct {
|
||||
driver_module_info info;
|
||||
} random_for_controller_interface;
|
||||
|
||||
|
||||
#define RANDOM_FOR_CONTROLLER_MODULE_NAME "bus_managers/random/controller/driver_v1"
|
||||
|
||||
// Bus manager interface used by Random controller drivers.
|
||||
typedef struct random_module_info {
|
||||
driver_module_info info;
|
||||
|
||||
status_t (*read)(void* cookie, void *_buffer, size_t *_numBytes);
|
||||
status_t (*write)(void* cookie, const void *_buffer, size_t *_numBytes);
|
||||
} random_module_info;
|
||||
|
||||
|
||||
#endif /* _RANDOM_H */
|
||||
@@ -146,6 +146,7 @@
|
||||
#define SCSIS_ASC_WAS_RESET 0x2900
|
||||
// reset by power-on/bus reset/device reset
|
||||
#define SCSIS_ASC_PARAMS_CHANGED 0x2a00
|
||||
#define SCSIS_ASC_CAPACITY_DATA_HAS_CHANGED 0x2a09
|
||||
#define SCSIS_ASC_MEDIUM_FORMAT_CORRUPTED 0x3100
|
||||
#define SCSIS_ASC_ROUNDED_PARAM 0x3700 // parameter got rounded
|
||||
#define SCSIS_ASC_NO_MEDIUM 0x3a00 // medium not present
|
||||
|
||||
@@ -41,6 +41,8 @@
|
||||
#define DEVICE_NAME "radeon_hd"
|
||||
#define RADEON_ACCELERANT_NAME "radeon_hd.accelerant"
|
||||
|
||||
#define MAX_NAME_LENGTH 32
|
||||
|
||||
// Used to collect EDID from boot loader
|
||||
#define EDID_BOOT_INFO "vesa_edid/v1"
|
||||
#define MODES_BOOT_INFO "vesa_modes/v1"
|
||||
@@ -52,6 +54,7 @@
|
||||
|
||||
|
||||
// Radeon Chipsets
|
||||
// !! Must match chipset names below
|
||||
enum radeon_chipset {
|
||||
RADEON_R420 = 0, //r400, Radeon X700-X850
|
||||
RADEON_R423,
|
||||
@@ -97,12 +100,64 @@ enum radeon_chipset {
|
||||
RADEON_TAHITI, // DCE 6.0
|
||||
RADEON_ARUBA, // DCE 6.1 Trinity/Richland
|
||||
RADEON_OLAND, // DCE 6.4
|
||||
RADEON_HAINAN, // NO DCE
|
||||
RADEON_HAINAN, // NO DCE, only compute
|
||||
RADEON_KAVERI, //Sea Islands, DCE 8.1
|
||||
RADEON_BONAIRE, // DCE 8.2
|
||||
RADEON_KABINI, // DCE 8.3
|
||||
};
|
||||
|
||||
// !! Must match chipset families above
|
||||
static const char radeon_chip_name[][MAX_NAME_LENGTH] = {
|
||||
"R420",
|
||||
"R423",
|
||||
"RV410",
|
||||
"RS400",
|
||||
"RS480",
|
||||
"RS600",
|
||||
"RS690",
|
||||
"RS740",
|
||||
"RV515",
|
||||
"R520",
|
||||
"RV530",
|
||||
"RV560",
|
||||
"RV570",
|
||||
"R580",
|
||||
"R600",
|
||||
"RV610",
|
||||
"RV630",
|
||||
"RV670",
|
||||
"RV620",
|
||||
"RV635",
|
||||
"RS780",
|
||||
"RS880",
|
||||
"RV770",
|
||||
"RV730",
|
||||
"RV710",
|
||||
"RV740",
|
||||
"Cedar",
|
||||
"Redwood",
|
||||
"Juniper",
|
||||
"Cypress",
|
||||
"Hemlock",
|
||||
"Palm",
|
||||
"Sumo",
|
||||
"Sumo2",
|
||||
"Caicos",
|
||||
"Turks",
|
||||
"Barts",
|
||||
"Cayman",
|
||||
"Antilles",
|
||||
"Cape Verde",
|
||||
"Pitcairn",
|
||||
"Tahiti",
|
||||
"Aruba",
|
||||
"Oland",
|
||||
"Hainan",
|
||||
"Kaveri",
|
||||
"Bonaire",
|
||||
"Kabini"
|
||||
};
|
||||
|
||||
|
||||
struct ring_buffer {
|
||||
struct lock lock;
|
||||
@@ -170,9 +225,9 @@ struct radeon_shared_info {
|
||||
uint16 cursor_hot_x;
|
||||
uint16 cursor_hot_y;
|
||||
|
||||
char deviceName[32];
|
||||
char deviceName[MAX_NAME_LENGTH];
|
||||
uint16 chipsetID;
|
||||
char chipsetName[16];
|
||||
char chipsetName[MAX_NAME_LENGTH];
|
||||
uint32 chipsetFlags;
|
||||
uint8 dceMajor;
|
||||
uint8 dceMinor;
|
||||
|
||||
@@ -19,9 +19,6 @@
|
||||
static const float kVMargin = 2.0f;
|
||||
|
||||
|
||||
class BMessageRunner;
|
||||
|
||||
|
||||
class _BMCFilter_ : public BMessageFilter {
|
||||
public:
|
||||
_BMCFilter_(BMenuField* menuField, uint32 what);
|
||||
@@ -49,9 +46,10 @@ public:
|
||||
virtual void AttachedToWindow();
|
||||
virtual void Draw(BRect updateRect);
|
||||
virtual void FrameResized(float width, float height);
|
||||
virtual void MessageReceived(BMessage* msg);
|
||||
virtual void MakeFocus(bool focused = true);
|
||||
virtual void MessageReceived(BMessage* message);
|
||||
virtual void SetMaxContentWidth(float width);
|
||||
virtual void SetEnabled(bool enabled);
|
||||
|
||||
void TogglePopUpMarker(bool show)
|
||||
{ fShowPopUpMarker = show; }
|
||||
@@ -68,7 +66,6 @@ private:
|
||||
|
||||
BMenuField* fMenuField;
|
||||
bool fFixedSize;
|
||||
BMessageRunner* fRunner;
|
||||
bool fShowPopUpMarker;
|
||||
float fPreviousWidth;
|
||||
};
|
||||
|
||||
@@ -46,6 +46,7 @@ void arch_cpu_sync_icache(void *address, size_t length);
|
||||
|
||||
void arch_cpu_memory_read_barrier(void);
|
||||
void arch_cpu_memory_write_barrier(void);
|
||||
void arch_cpu_memory_read_write_barrier(void);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -113,10 +113,29 @@ bool apic_available();
|
||||
uint32 apic_read(uint32 offset);
|
||||
void apic_write(uint32 offset, uint32 data);
|
||||
uint32 apic_local_id();
|
||||
uint32 apic_local_version();
|
||||
uint32 apic_task_priority();
|
||||
void apic_set_task_priority(uint32 config);
|
||||
void apic_end_of_interrupt();
|
||||
|
||||
void apic_disable_local_ints();
|
||||
|
||||
uint32 apic_spurious_intr_vector();
|
||||
void apic_set_spurious_intr_vector(uint32 config);
|
||||
uint32 apic_intr_command_1();
|
||||
void apic_set_intr_command_1(uint32 config);
|
||||
uint32 apic_intr_command_2();
|
||||
void apic_set_intr_command_2(uint32 config);
|
||||
|
||||
uint32 apic_lvt_timer();
|
||||
void apic_set_lvt_timer(uint32 config);
|
||||
uint32 apic_lvt_error();
|
||||
void apic_set_lvt_error(uint32 config);
|
||||
uint32 apic_lvt_initial_timer_count();
|
||||
void apic_set_lvt_initial_timer_count(uint32 config);
|
||||
uint32 apic_lvt_timer_divide_config();
|
||||
void apic_set_lvt_timer_divide_config(uint32 config);
|
||||
|
||||
status_t apic_init(kernel_args *args);
|
||||
status_t apic_per_cpu_init(kernel_args *args, int32 cpu);
|
||||
|
||||
|
||||
@@ -39,11 +39,38 @@
|
||||
|
||||
#define IA32_MSR_EFER 0xc0000080
|
||||
|
||||
|
||||
// MSR APIC BASE bits
|
||||
#define IA32_MSR_APIC_BASE_BSP 0x00000100
|
||||
#define IA32_MSR_APIC_BASE_X2APIC 0x00000400
|
||||
#define IA32_MSR_APIC_BASE_ENABLED 0x00000800
|
||||
#define IA32_MSR_APIC_BASE_ADDRESS 0xfffff000
|
||||
|
||||
// MSR EFER bits
|
||||
// reference
|
||||
#define IA32_MSR_EFER_SYSCALL (1 << 0)
|
||||
#define IA32_MSR_EFER_NX (1 << 11)
|
||||
|
||||
// X2APIC MSRs.
|
||||
#define IA32_MSR_APIC_ID 0x00000802
|
||||
#define IA32_MSR_APIC_VERSION 0x00000803
|
||||
#define IA32_MSR_APIC_TASK_PRIORITY 0x00000808
|
||||
#define IA32_MSR_APIC_PROCESSOR_PRIORITY 0x0000080a
|
||||
#define IA32_MSR_APIC_EOI 0x0000080b
|
||||
#define IA32_MSR_APIC_LOGICAL_DEST 0x0000080d
|
||||
#define IA32_MSR_APIC_SPURIOUS_INTR_VECTOR 0x0000080f
|
||||
#define IA32_MSR_APIC_ERROR_STATUS 0x00000828
|
||||
#define IA32_MSR_APIC_INTR_COMMAND 0x00000830
|
||||
#define IA32_MSR_APIC_LVT_TIMER 0x00000832
|
||||
#define IA32_MSR_APIC_LVT_THERMAL_SENSOR 0x00000833
|
||||
#define IA32_MSR_APIC_LVT_PERFMON_COUNTERS 0x00000834
|
||||
#define IA32_MSR_APIC_LVT_LINT0 0x00000835
|
||||
#define IA32_MSR_APIC_LVT_LINT1 0x00000836
|
||||
#define IA32_MSR_APIC_LVT_ERROR 0x00000837
|
||||
#define IA32_MSR_APIC_INITIAL_TIMER_COUNT 0x00000838
|
||||
#define IA32_MSR_APIC_CURRENT_TIMER_COUNT 0x00000839
|
||||
#define IA32_MSR_APIC_TIMER_DIVIDE_CONFIG 0x0000083e
|
||||
|
||||
// x86_64 MSRs.
|
||||
#define IA32_MSR_STAR 0xc0000081
|
||||
#define IA32_MSR_LSTAR 0xc0000082
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
#define MSI_DELIVERY_MODE_EXT_INT 0x00000700
|
||||
|
||||
|
||||
void msi_init();
|
||||
bool msi_supported();
|
||||
status_t msi_allocate_vectors(uint8 count, uint8 *startVector,
|
||||
uint64 *address, uint16 *data);
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
/*
|
||||
* Copyright 2010-2011, Michael Lotz, [email protected]. All Rights Reserved.
|
||||
* Distributed under the terms of the MIT license.
|
||||
*/
|
||||
#ifndef _KERNEL_ARCH_x86_MSI_PRIV_H
|
||||
#define _KERNEL_ARCH_x86_MSI_PRIV_H
|
||||
|
||||
|
||||
void msi_init(kernel_args* args);
|
||||
|
||||
|
||||
#endif // _KERNEL_ARCH_x86_MSI_PRIV_H
|
||||
@@ -1,11 +1,12 @@
|
||||
/*
|
||||
* Copyright 2003-2006, Haiku.
|
||||
* Copyright 2003-2013 Haiku, Inc. All Rights Reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Michael Phipps
|
||||
* Jérôme Duval, [email protected]
|
||||
* Axel Dörfler, [email protected]
|
||||
* Jérôme Duval, [email protected]
|
||||
* Michael Phipps
|
||||
* John Scipione, [email protected]
|
||||
*/
|
||||
#ifndef SCREEN_SAVER_RUNNER_H
|
||||
#define SCREEN_SAVER_RUNNER_H
|
||||
@@ -14,43 +15,45 @@
|
||||
#include <SupportDefs.h>
|
||||
#include <DirectWindow.h>
|
||||
|
||||
|
||||
class BScreenSaver;
|
||||
class BView;
|
||||
class ScreenSaverSettings;
|
||||
|
||||
|
||||
class ScreenSaverRunner {
|
||||
public:
|
||||
ScreenSaverRunner(BWindow* window, BView* view,
|
||||
bool preview, ScreenSaverSettings& settings);
|
||||
~ScreenSaverRunner();
|
||||
public:
|
||||
ScreenSaverRunner(BWindow* window, BView* view,
|
||||
bool preview,
|
||||
ScreenSaverSettings& settings);
|
||||
~ScreenSaverRunner();
|
||||
|
||||
BScreenSaver* ScreenSaver() const;
|
||||
bool HasStarted() const;
|
||||
BScreenSaver* ScreenSaver() const;
|
||||
bool HasStarted() const;
|
||||
|
||||
status_t Run();
|
||||
void Quit();
|
||||
status_t Run();
|
||||
void Quit();
|
||||
|
||||
void Suspend();
|
||||
void Resume();
|
||||
void Suspend();
|
||||
void Resume();
|
||||
|
||||
private:
|
||||
void _LoadAddOn();
|
||||
void _CleanUp();
|
||||
static status_t _ThreadFunc(void* data);
|
||||
void _Run();
|
||||
private:
|
||||
void _LoadAddOn();
|
||||
void _CleanUp();
|
||||
static status_t _ThreadFunc(void* data);
|
||||
status_t _Run();
|
||||
|
||||
BScreenSaver* fSaver;
|
||||
BWindow* fWindow;
|
||||
BDirectWindow* fDirectWindow;
|
||||
BView* fView;
|
||||
ScreenSaverSettings& fSettings;
|
||||
bool fPreview;
|
||||
bool fHasStarted;
|
||||
BScreenSaver* fSaver;
|
||||
BWindow* fWindow;
|
||||
BDirectWindow* fDirectWindow;
|
||||
BView* fView;
|
||||
ScreenSaverSettings& fSettings;
|
||||
bool fPreview;
|
||||
bool fHasStarted;
|
||||
|
||||
image_id fAddonImage;
|
||||
thread_id fThread;
|
||||
volatile bool fQuitting;
|
||||
image_id fAddonImage;
|
||||
thread_id fThread;
|
||||
volatile bool fQuitting;
|
||||
};
|
||||
|
||||
#endif // SCREEN_SAVER_RUNNER_H
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#define B_SAFEMODE_DISABLE_IOAPIC "disable_ioapic"
|
||||
#define B_SAFEMODE_DISABLE_ACPI "disable_acpi"
|
||||
#define B_SAFEMODE_DISABLE_APIC "disable_apic"
|
||||
#define B_SAFEMODE_ENABLE_X2APIC "enable_x2apic"
|
||||
#define B_SAFEMODE_DISABLE_APM "disable_apm"
|
||||
#define B_SAFEMODE_DISABLE_SMP "disable_smp"
|
||||
#define B_SAFEMODE_DISABLE_HYPER_THREADING "disable_hyperthreading"
|
||||
|
||||
@@ -53,7 +53,7 @@ typedef void* virtio_device;
|
||||
// queue cookie, issued by virtio bus manager
|
||||
typedef void* virtio_queue;
|
||||
// callback function for requests
|
||||
typedef void (*virtio_callback_func)(void *cookie);
|
||||
typedef void (*virtio_callback_func)(void* driverCookie, void *cookie);
|
||||
// callback function for interrupts
|
||||
typedef void (*virtio_intr_func)(void *cookie);
|
||||
|
||||
@@ -81,10 +81,10 @@ typedef struct {
|
||||
size_t bufferSize);
|
||||
status_t (*write_device_config)(void* cookie, uint8 offset,
|
||||
const void* buffer, size_t bufferSize);
|
||||
|
||||
|
||||
uint16 (*get_queue_ring_size)(void* cookie, uint16 queue);
|
||||
status_t (*setup_queue)(void* cookie, uint16 queue, phys_addr_t phy);
|
||||
status_t (*setup_interrupt)(void* cookie);
|
||||
status_t (*setup_interrupt)(void* cookie, uint16 queueCount);
|
||||
void (*notify_queue)(void* cookie, uint16 queue);
|
||||
} virtio_sim_interface;
|
||||
|
||||
@@ -95,7 +95,7 @@ typedef struct {
|
||||
|
||||
status_t (*negociate_features)(virtio_device cookie, uint32 supported,
|
||||
uint32* negociated, const char* (*get_feature_name)(uint32));
|
||||
|
||||
|
||||
status_t (*read_device_config)(virtio_device cookie, uint8 offset,
|
||||
void* buffer, size_t bufferSize);
|
||||
status_t (*write_device_config)(virtio_device cookie, uint8 offset,
|
||||
@@ -105,7 +105,7 @@ typedef struct {
|
||||
virtio_queue *queues);
|
||||
|
||||
status_t (*setup_interrupt)(virtio_device cookie,
|
||||
virtio_intr_func config_handler, void* configCookie);
|
||||
virtio_intr_func config_handler, void* driverCookie);
|
||||
|
||||
status_t (*queue_request)(virtio_queue queue,
|
||||
const physical_entry *readEntry,
|
||||
|
||||
Reference in New Issue
Block a user