summaryrefslogtreecommitdiff
path: root/hw/xfree86/i2c/bt829.h
diff options
context:
space:
mode:
authorPaulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>2008-11-27 00:12:59 -0200
committerPaulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>2008-11-27 00:12:59 -0200
commit87a7fb7438b70d07ebf240c530b8548a01021d48 (patch)
treee38a9c8dc0986cae89230e08acc1d5f15de6e530 /hw/xfree86/i2c/bt829.h
parentfc708394318ed92c612e2938b335c08c1ffebb28 (diff)
Rework code using return value of LoaderSymbol as a function pointer.
The patch removes all macros in the format define xf86_sym ((type (*)(argument-list))LoaderSymbol("sym")) creates a new macro in the format define xf86_sym sym and ensures "sym" is a "visible" symbol. The patch doesn't add or remove features, and is source and binary compatible with previous shared objects (with the difference that it requires the dlloader). These symbols are a special case, as, due to the fact that LoaderSymbol was being used to reference them, they are not easily found by "automated" tools that check for missing symbols. And now it also have the benefit that the compiler/loader "knows what is going on".
Diffstat (limited to 'hw/xfree86/i2c/bt829.h')
-rw-r--r--hw/xfree86/i2c/bt829.h48
1 files changed, 25 insertions, 23 deletions
diff --git a/hw/xfree86/i2c/bt829.h b/hw/xfree86/i2c/bt829.h
index bca9d37de..17e6bc7bd 100644
--- a/hw/xfree86/i2c/bt829.h
+++ b/hw/xfree86/i2c/bt829.h
@@ -36,12 +36,15 @@ typedef struct {
CARD8 svideo_mux;
} BT829Rec, *BT829Ptr;
-BT829Ptr bt829_Detect(I2CBusPtr b, I2CSlaveAddr addr);
+#define xf86_bt829_Detect bt829_Detect
+extern BT829Ptr bt829_Detect(I2CBusPtr b, I2CSlaveAddr addr);
/* ATI card specific initialization */
#define BT829_ATI_ADDR_1 0x8A
#define BT829_ATI_ADDR_2 0x88
-int bt829_ATIInit(BT829Ptr bt);
+
+#define xf86_bt829_ATIInit bt829_ATIInit
+extern int bt829_ATIInit(BT829Ptr bt);
#define BT829_NTSC 1 /* NTSC-M */
#define BT829_NTSC_JAPAN 2 /* NTSC-Japan */
@@ -50,22 +53,33 @@ int bt829_ATIInit(BT829Ptr bt);
#define BT829_PAL_N 5 /* PAL-N */
#define BT829_SECAM 6 /* SECAM */
#define BT829_PAL_N_COMB 7 /* PAL-N combination */
-int bt829_SetFormat(BT829Ptr bt, CARD8 format);
+
+#define xf86_bt829_SetFormat bt829_SetFormat
+extern int bt829_SetFormat(BT829Ptr bt, CARD8 format);
#define BT829_MUX2 1 /* ATI -> composite video */
#define BT829_MUX0 2 /* ATI -> tv tuner */
#define BT829_MUX1 3 /* ATI -> s-video */
-int bt829_SetMux(BT829Ptr bt, CARD8 mux);
-int bt829_SetCaptSize(BT829Ptr bt, int width, int height);
+#define xf86_bt829_SetMux bt829_SetMux
+extern int bt829_SetMux(BT829Ptr bt, CARD8 mux);
-void bt829_SetBrightness(BT829Ptr bt, int brightness);
-void bt829_SetContrast(BT829Ptr bt, int contrast);
-void bt829_SetSaturation(BT829Ptr bt, int saturation);
-void bt829_SetTint(BT829Ptr bt, int hue); /* Hue */
+#define xf86_bt829_SetCaptSize bt829_SetCaptSize
+extern int bt829_SetCaptSize(BT829Ptr bt, int width, int height);
-void bt829_SetOUT_EN(BT829Ptr bt, BOOL out_en); /* VPOLE register */
-void bt829_SetP_IO(BT829Ptr bt, CARD8 p_io); /* P_IO register */
+#define xf86_bt829_SetBrightness bt829_SetBrightness
+extern void bt829_SetBrightness(BT829Ptr bt, int brightness);
+#define xf86_bt829_SetContrast bt829_SetContrast
+extern void bt829_SetContrast(BT829Ptr bt, int contrast);
+#define xf86_bt829_SetSaturation bt829_SetSaturation
+extern void bt829_SetSaturation(BT829Ptr bt, int saturation);
+#define xf86_bt829_SetTint bt829_SetTint
+extern void bt829_SetTint(BT829Ptr bt, int hue); /* Hue */
+
+#define xf86_bt829_SetOUT_EN bt829_SetOUT_EN
+extern void bt829_SetOUT_EN(BT829Ptr bt, BOOL out_en);/* VPOLE register */
+#define xf86_bt829_SetP_IO bt829_SetP_IO
+extern void bt829_SetP_IO(BT829Ptr bt, CARD8 p_io); /* P_IO register */
int bt829_SetCC(BT829Ptr bt);
@@ -82,16 +96,4 @@ int bt829_SetCC(BT829Ptr bt);
"bt829_SetOUT_EN", \
"bt829_SetP_IO"
-#define xf86_bt829_Detect ((BT829Ptr (*)(I2CBusPtr, I2CSlaveAddr))LoaderSymbol("bt829_Detect"))
-#define xf86_bt829_ATIInit ((int (*)(BT829Ptr))LoaderSymbol("bt829_ATIInit"))
-#define xf86_bt829_SetFormat ((int (*)(BT829Ptr, CARD8))LoaderSymbol("bt829_SetFormat"))
-#define xf86_bt829_SetMux ((int (*)(BT829Ptr, CARD8))LoaderSymbol("bt829_SetMux"))
-#define xf86_bt829_SetCaptSize ((int (*)(BT829Ptr, int, int))LoaderSymbol("bt829_SetCaptSize"))
-#define xf86_bt829_SetBrightness ((void (*)(BT829Ptr, int))LoaderSymbol("bt829_SetBrightness"))
-#define xf86_bt829_SetContrast ((void (*)(BT829Ptr, int))LoaderSymbol("bt829_SetContrast"))
-#define xf86_bt829_SetSaturation ((void (*)(BT829Ptr, int))LoaderSymbol("bt829_SetSaturation"))
-#define xf86_bt829_SetTint ((void (*)(BT829Ptr, int))LoaderSymbol("bt829_SetTint"))
-#define xf86_bt829_SetOUT_EN ((void (*)(BT829Ptr, Bool))LoaderSymbol("bt829_SetOUT_EN"))
-#define xf86_bt829_SetP_IO ((void (*)(BT829Ptr, CARD8))LoaderSymbol("bt829_SetP_IO"))
-
#endif