diff options
| author | Dan Williams <dan.j.williams@intel.com> | 2009-09-08 20:55:21 -0400 |
|---|---|---|
| committer | Dan Williams <dan.j.williams@intel.com> | 2009-09-08 20:55:21 -0400 |
| commit | bbb20089a3275a19e475dbc21320c3742e3ca423 (patch) | |
| tree | 216fdc1cbef450ca688135c5b8969169482d9a48 /include/media | |
| parent | 3e48e656903e9fd8bc805c6a2c4264d7808d315b (diff) | |
| parent | 657a77fa7284d8ae28dfa48f1dc5d919bf5b2843 (diff) | |
Merge branch 'dmaengine' into async-tx-next
Conflicts:
crypto/async_tx/async_xor.c
drivers/dma/ioat/dma_v2.h
drivers/dma/ioat/pci.c
drivers/md/raid5.c
Diffstat (limited to 'include/media')
| -rw-r--r-- | include/media/adv7343.h | 23 | ||||
| -rw-r--r-- | include/media/ir-common.h | 2 | ||||
| -rw-r--r-- | include/media/ir-kbd-i2c.h | 10 | ||||
| -rw-r--r-- | include/media/soc_camera.h | 10 | ||||
| -rw-r--r-- | include/media/tuner.h | 2 | ||||
| -rw-r--r-- | include/media/v4l2-chip-ident.h | 6 | ||||
| -rw-r--r-- | include/media/v4l2-common.h | 26 | ||||
| -rw-r--r-- | include/media/v4l2-device.h | 23 | ||||
| -rw-r--r-- | include/media/v4l2-i2c-drv.h | 5 | ||||
| -rw-r--r-- | include/media/v4l2-subdev.h | 12 |
10 files changed, 113 insertions, 6 deletions
diff --git a/include/media/adv7343.h b/include/media/adv7343.h new file mode 100644 index 000000000000..d6f8a4e1a1fc --- /dev/null +++ b/include/media/adv7343.h | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | /* | ||
| 2 | * ADV7343 header file | ||
| 3 | * | ||
| 4 | * Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.com/ | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or | ||
| 7 | * modify it under the terms of the GNU General Public License as | ||
| 8 | * published by the Free Software Foundation version 2. | ||
| 9 | * | ||
| 10 | * This program is distributed .as is. WITHOUT ANY WARRANTY of any | ||
| 11 | * kind, whether express or implied; without even the implied warranty | ||
| 12 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 13 | * GNU General Public License for more details. | ||
| 14 | */ | ||
| 15 | |||
| 16 | #ifndef ADV7343_H | ||
| 17 | #define ADV7343_H | ||
| 18 | |||
| 19 | #define ADV7343_COMPOSITE_ID (0) | ||
| 20 | #define ADV7343_COMPONENT_ID (1) | ||
| 21 | #define ADV7343_SVIDEO_ID (2) | ||
| 22 | |||
| 23 | #endif /* End of #ifndef ADV7343_H */ | ||
diff --git a/include/media/ir-common.h b/include/media/ir-common.h index 7b5b91f60425..9dcb632f6083 100644 --- a/include/media/ir-common.h +++ b/include/media/ir-common.h | |||
| @@ -162,6 +162,8 @@ extern IR_KEYTAB_TYPE ir_codes_ati_tv_wonder_hd_600[IR_KEYTAB_SIZE]; | |||
| 162 | extern IR_KEYTAB_TYPE ir_codes_kworld_plus_tv_analog[IR_KEYTAB_SIZE]; | 162 | extern IR_KEYTAB_TYPE ir_codes_kworld_plus_tv_analog[IR_KEYTAB_SIZE]; |
| 163 | extern IR_KEYTAB_TYPE ir_codes_kaiomy[IR_KEYTAB_SIZE]; | 163 | extern IR_KEYTAB_TYPE ir_codes_kaiomy[IR_KEYTAB_SIZE]; |
| 164 | extern IR_KEYTAB_TYPE ir_codes_dm1105_nec[IR_KEYTAB_SIZE]; | 164 | extern IR_KEYTAB_TYPE ir_codes_dm1105_nec[IR_KEYTAB_SIZE]; |
| 165 | extern IR_KEYTAB_TYPE ir_codes_evga_indtube[IR_KEYTAB_SIZE]; | ||
| 166 | |||
| 165 | #endif | 167 | #endif |
| 166 | 168 | ||
| 167 | /* | 169 | /* |
diff --git a/include/media/ir-kbd-i2c.h b/include/media/ir-kbd-i2c.h index 07963d705400..3ad4ed5402fb 100644 --- a/include/media/ir-kbd-i2c.h +++ b/include/media/ir-kbd-i2c.h | |||
| @@ -7,7 +7,7 @@ struct IR_i2c; | |||
| 7 | 7 | ||
| 8 | struct IR_i2c { | 8 | struct IR_i2c { |
| 9 | IR_KEYTAB_TYPE *ir_codes; | 9 | IR_KEYTAB_TYPE *ir_codes; |
| 10 | struct i2c_client c; | 10 | struct i2c_client *c; |
| 11 | struct input_dev *input; | 11 | struct input_dev *input; |
| 12 | struct ir_input_state ir; | 12 | struct ir_input_state ir; |
| 13 | 13 | ||
| @@ -15,7 +15,15 @@ struct IR_i2c { | |||
| 15 | unsigned char old; | 15 | unsigned char old; |
| 16 | 16 | ||
| 17 | struct delayed_work work; | 17 | struct delayed_work work; |
| 18 | char name[32]; | ||
| 18 | char phys[32]; | 19 | char phys[32]; |
| 19 | int (*get_key)(struct IR_i2c*, u32*, u32*); | 20 | int (*get_key)(struct IR_i2c*, u32*, u32*); |
| 20 | }; | 21 | }; |
| 22 | |||
| 23 | /* Can be passed when instantiating an ir_video i2c device */ | ||
| 24 | struct IR_i2c_init_data { | ||
| 25 | IR_KEYTAB_TYPE *ir_codes; | ||
| 26 | const char *name; | ||
| 27 | int (*get_key)(struct IR_i2c*, u32*, u32*); | ||
| 28 | }; | ||
| 21 | #endif | 29 | #endif |
diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h index 37013688af44..23ecead35e7a 100644 --- a/include/media/soc_camera.h +++ b/include/media/soc_camera.h | |||
| @@ -60,7 +60,7 @@ struct soc_camera_file { | |||
| 60 | 60 | ||
| 61 | struct soc_camera_host { | 61 | struct soc_camera_host { |
| 62 | struct list_head list; | 62 | struct list_head list; |
| 63 | struct device dev; | 63 | struct device *dev; |
| 64 | unsigned char nr; /* Host number */ | 64 | unsigned char nr; /* Host number */ |
| 65 | void *priv; | 65 | void *priv; |
| 66 | const char *drv_name; | 66 | const char *drv_name; |
| @@ -92,11 +92,16 @@ struct soc_camera_host_ops { | |||
| 92 | #define SOCAM_SENSOR_INVERT_VSYNC (1 << 3) | 92 | #define SOCAM_SENSOR_INVERT_VSYNC (1 << 3) |
| 93 | #define SOCAM_SENSOR_INVERT_DATA (1 << 4) | 93 | #define SOCAM_SENSOR_INVERT_DATA (1 << 4) |
| 94 | 94 | ||
| 95 | struct i2c_board_info; | ||
| 96 | |||
| 95 | struct soc_camera_link { | 97 | struct soc_camera_link { |
| 96 | /* Camera bus id, used to match a camera and a bus */ | 98 | /* Camera bus id, used to match a camera and a bus */ |
| 97 | int bus_id; | 99 | int bus_id; |
| 98 | /* Per camera SOCAM_SENSOR_* bus flags */ | 100 | /* Per camera SOCAM_SENSOR_* bus flags */ |
| 99 | unsigned long flags; | 101 | unsigned long flags; |
| 102 | int i2c_adapter_id; | ||
| 103 | struct i2c_board_info *board_info; | ||
| 104 | const char *module_name; | ||
| 100 | /* Optional callbacks to power on or off and reset the sensor */ | 105 | /* Optional callbacks to power on or off and reset the sensor */ |
| 101 | int (*power)(struct device *, int); | 106 | int (*power)(struct device *, int); |
| 102 | int (*reset)(struct device *); | 107 | int (*reset)(struct device *); |
| @@ -107,6 +112,7 @@ struct soc_camera_link { | |||
| 107 | */ | 112 | */ |
| 108 | int (*set_bus_param)(struct soc_camera_link *, unsigned long flags); | 113 | int (*set_bus_param)(struct soc_camera_link *, unsigned long flags); |
| 109 | unsigned long (*query_bus_param)(struct soc_camera_link *); | 114 | unsigned long (*query_bus_param)(struct soc_camera_link *); |
| 115 | void (*free_bus)(struct soc_camera_link *); | ||
| 110 | }; | 116 | }; |
| 111 | 117 | ||
| 112 | static inline struct soc_camera_device *to_soc_camera_dev(struct device *dev) | 118 | static inline struct soc_camera_device *to_soc_camera_dev(struct device *dev) |
| @@ -116,7 +122,7 @@ static inline struct soc_camera_device *to_soc_camera_dev(struct device *dev) | |||
| 116 | 122 | ||
| 117 | static inline struct soc_camera_host *to_soc_camera_host(struct device *dev) | 123 | static inline struct soc_camera_host *to_soc_camera_host(struct device *dev) |
| 118 | { | 124 | { |
| 119 | return container_of(dev, struct soc_camera_host, dev); | 125 | return dev_get_drvdata(dev); |
| 120 | } | 126 | } |
| 121 | 127 | ||
| 122 | extern int soc_camera_host_register(struct soc_camera_host *ici); | 128 | extern int soc_camera_host_register(struct soc_camera_host *ici); |
diff --git a/include/media/tuner.h b/include/media/tuner.h index 7d4e2db78076..cbf97f45fbec 100644 --- a/include/media/tuner.h +++ b/include/media/tuner.h | |||
| @@ -124,6 +124,8 @@ | |||
| 124 | #define TUNER_XC5000 76 /* Xceive Silicon Tuner */ | 124 | #define TUNER_XC5000 76 /* Xceive Silicon Tuner */ |
| 125 | #define TUNER_TCL_MF02GIP_5N 77 /* TCL MF02GIP_5N */ | 125 | #define TUNER_TCL_MF02GIP_5N 77 /* TCL MF02GIP_5N */ |
| 126 | #define TUNER_PHILIPS_FMD1216MEX_MK3 78 | 126 | #define TUNER_PHILIPS_FMD1216MEX_MK3 78 |
| 127 | #define TUNER_PHILIPS_FM1216MK5 79 | ||
| 128 | #define TUNER_PHILIPS_FQ1216LME_MK3 80 /* Active loopthrough, no FM */ | ||
| 127 | 129 | ||
| 128 | /* tv card specific */ | 130 | /* tv card specific */ |
| 129 | #define TDA9887_PRESENT (1<<0) | 131 | #define TDA9887_PRESENT (1<<0) |
diff --git a/include/media/v4l2-chip-ident.h b/include/media/v4l2-chip-ident.h index 1be461a29077..4d7e2272c42f 100644 --- a/include/media/v4l2-chip-ident.h +++ b/include/media/v4l2-chip-ident.h | |||
| @@ -137,6 +137,12 @@ enum { | |||
| 137 | /* module saa7191: just ident 7191 */ | 137 | /* module saa7191: just ident 7191 */ |
| 138 | V4L2_IDENT_SAA7191 = 7191, | 138 | V4L2_IDENT_SAA7191 = 7191, |
| 139 | 139 | ||
| 140 | /* module ths7303: just ident 7303 */ | ||
| 141 | V4L2_IDENT_THS7303 = 7303, | ||
| 142 | |||
| 143 | /* module adv7343: just ident 7343 */ | ||
| 144 | V4L2_IDENT_ADV7343 = 7343, | ||
| 145 | |||
| 140 | /* module wm8739: just ident 8739 */ | 146 | /* module wm8739: just ident 8739 */ |
| 141 | V4L2_IDENT_WM8739 = 8739, | 147 | V4L2_IDENT_WM8739 = 8739, |
| 142 | 148 | ||
diff --git a/include/media/v4l2-common.h b/include/media/v4l2-common.h index c48c24e4d0fa..33a18426ab9b 100644 --- a/include/media/v4l2-common.h +++ b/include/media/v4l2-common.h | |||
| @@ -153,6 +153,22 @@ struct v4l2_subdev *v4l2_i2c_new_probed_subdev(struct v4l2_device *v4l2_dev, | |||
| 153 | struct v4l2_subdev *v4l2_i2c_new_probed_subdev_addr(struct v4l2_device *v4l2_dev, | 153 | struct v4l2_subdev *v4l2_i2c_new_probed_subdev_addr(struct v4l2_device *v4l2_dev, |
| 154 | struct i2c_adapter *adapter, | 154 | struct i2c_adapter *adapter, |
| 155 | const char *module_name, const char *client_type, u8 addr); | 155 | const char *module_name, const char *client_type, u8 addr); |
| 156 | |||
| 157 | /* Load an i2c module and return an initialized v4l2_subdev struct. | ||
| 158 | Only call request_module if module_name != NULL. | ||
| 159 | The client_type argument is the name of the chip that's on the adapter. */ | ||
| 160 | struct v4l2_subdev *v4l2_i2c_new_subdev_cfg(struct v4l2_device *v4l2_dev, | ||
| 161 | struct i2c_adapter *adapter, | ||
| 162 | const char *module_name, const char *client_type, | ||
| 163 | int irq, void *platform_data, | ||
| 164 | u8 addr, const unsigned short *probe_addrs); | ||
| 165 | |||
| 166 | struct i2c_board_info; | ||
| 167 | |||
| 168 | struct v4l2_subdev *v4l2_i2c_new_subdev_board(struct v4l2_device *v4l2_dev, | ||
| 169 | struct i2c_adapter *adapter, const char *module_name, | ||
| 170 | struct i2c_board_info *info, const unsigned short *probe_addrs); | ||
| 171 | |||
| 156 | /* Initialize an v4l2_subdev with data from an i2c_client struct */ | 172 | /* Initialize an v4l2_subdev with data from an i2c_client struct */ |
| 157 | void v4l2_i2c_subdev_init(struct v4l2_subdev *sd, struct i2c_client *client, | 173 | void v4l2_i2c_subdev_init(struct v4l2_subdev *sd, struct i2c_client *client, |
| 158 | const struct v4l2_subdev_ops *ops); | 174 | const struct v4l2_subdev_ops *ops); |
| @@ -193,4 +209,14 @@ struct v4l2_routing { | |||
| 193 | u32 output; | 209 | u32 output; |
| 194 | }; | 210 | }; |
| 195 | 211 | ||
| 212 | /* ------------------------------------------------------------------------- */ | ||
| 213 | |||
| 214 | /* Miscellaneous helper functions */ | ||
| 215 | |||
| 216 | void v4l_bound_align_image(unsigned int *w, unsigned int wmin, | ||
| 217 | unsigned int wmax, unsigned int walign, | ||
| 218 | unsigned int *h, unsigned int hmin, | ||
| 219 | unsigned int hmax, unsigned int halign, | ||
| 220 | unsigned int salign); | ||
| 221 | |||
| 196 | #endif /* V4L2_COMMON_H_ */ | 222 | #endif /* V4L2_COMMON_H_ */ |
diff --git a/include/media/v4l2-device.h b/include/media/v4l2-device.h index 0dd3e8e8653e..5d5d550e63ad 100644 --- a/include/media/v4l2-device.h +++ b/include/media/v4l2-device.h | |||
| @@ -30,7 +30,7 @@ | |||
| 30 | basic V4L2 device-level support. | 30 | basic V4L2 device-level support. |
| 31 | */ | 31 | */ |
| 32 | 32 | ||
| 33 | #define V4L2_DEVICE_NAME_SIZE (BUS_ID_SIZE + 16) | 33 | #define V4L2_DEVICE_NAME_SIZE (20 + 16) |
| 34 | 34 | ||
| 35 | struct v4l2_device { | 35 | struct v4l2_device { |
| 36 | /* dev->driver_data points to this struct. | 36 | /* dev->driver_data points to this struct. |
| @@ -53,10 +53,31 @@ struct v4l2_device { | |||
| 53 | dev may be NULL in rare cases (ISA devices). In that case you | 53 | dev may be NULL in rare cases (ISA devices). In that case you |
| 54 | must fill in the v4l2_dev->name field before calling this function. */ | 54 | must fill in the v4l2_dev->name field before calling this function. */ |
| 55 | int __must_check v4l2_device_register(struct device *dev, struct v4l2_device *v4l2_dev); | 55 | int __must_check v4l2_device_register(struct device *dev, struct v4l2_device *v4l2_dev); |
| 56 | |||
| 57 | /* Optional function to initialize the name field of struct v4l2_device using | ||
| 58 | the driver name and a driver-global atomic_t instance. | ||
| 59 | This function will increment the instance counter and returns the instance | ||
| 60 | value used in the name. | ||
| 61 | |||
| 62 | Example: | ||
| 63 | |||
| 64 | static atomic_t drv_instance = ATOMIC_INIT(0); | ||
| 65 | |||
| 66 | ... | ||
| 67 | |||
| 68 | instance = v4l2_device_set_name(&v4l2_dev, "foo", &drv_instance); | ||
| 69 | |||
| 70 | The first time this is called the name field will be set to foo0 and | ||
| 71 | this function returns 0. If the name ends with a digit (e.g. cx18), | ||
| 72 | then the name will be set to cx18-0 since cx180 looks really odd. */ | ||
| 73 | int v4l2_device_set_name(struct v4l2_device *v4l2_dev, const char *basename, | ||
| 74 | atomic_t *instance); | ||
| 75 | |||
| 56 | /* Set v4l2_dev->dev to NULL. Call when the USB parent disconnects. | 76 | /* Set v4l2_dev->dev to NULL. Call when the USB parent disconnects. |
| 57 | Since the parent disappears this ensures that v4l2_dev doesn't have an | 77 | Since the parent disappears this ensures that v4l2_dev doesn't have an |
| 58 | invalid parent pointer. */ | 78 | invalid parent pointer. */ |
| 59 | void v4l2_device_disconnect(struct v4l2_device *v4l2_dev); | 79 | void v4l2_device_disconnect(struct v4l2_device *v4l2_dev); |
| 80 | |||
| 60 | /* Unregister all sub-devices and any other resources related to v4l2_dev. */ | 81 | /* Unregister all sub-devices and any other resources related to v4l2_dev. */ |
| 61 | void v4l2_device_unregister(struct v4l2_device *v4l2_dev); | 82 | void v4l2_device_unregister(struct v4l2_device *v4l2_dev); |
| 62 | 83 | ||
diff --git a/include/media/v4l2-i2c-drv.h b/include/media/v4l2-i2c-drv.h index 10a2882c3cbf..74bf741d1a9b 100644 --- a/include/media/v4l2-i2c-drv.h +++ b/include/media/v4l2-i2c-drv.h | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | */ | 22 | */ |
| 23 | 23 | ||
| 24 | /* NOTE: the full version of this header is in the v4l-dvb repository | 24 | /* NOTE: the full version of this header is in the v4l-dvb repository |
| 25 | * and allows v4l i2c drivers to be compiled on older kernels as well. | 25 | * and allows v4l i2c drivers to be compiled on pre-2.6.26 kernels. |
| 26 | * The version of this header as it appears in the kernel is a stripped | 26 | * The version of this header as it appears in the kernel is a stripped |
| 27 | * version (without all the backwards compatibility stuff) and so it | 27 | * version (without all the backwards compatibility stuff) and so it |
| 28 | * looks a bit odd. | 28 | * looks a bit odd. |
| @@ -30,6 +30,9 @@ | |||
| 30 | * If you look at the full version then you will understand the reason | 30 | * If you look at the full version then you will understand the reason |
| 31 | * for introducing this header since you really don't want to have all | 31 | * for introducing this header since you really don't want to have all |
| 32 | * the tricky backwards compatibility code in each and every i2c driver. | 32 | * the tricky backwards compatibility code in each and every i2c driver. |
| 33 | * | ||
| 34 | * If the i2c driver will never be compiled for pre-2.6.26 kernels, then | ||
| 35 | * DO NOT USE this header! Just write it as a regular i2c driver. | ||
| 33 | */ | 36 | */ |
| 34 | 37 | ||
| 35 | #ifndef __V4L2_I2C_DRV_H__ | 38 | #ifndef __V4L2_I2C_DRV_H__ |
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h index 17856081c809..5dcb36785529 100644 --- a/include/media/v4l2-subdev.h +++ b/include/media/v4l2-subdev.h | |||
| @@ -79,7 +79,11 @@ struct v4l2_decode_vbi_line { | |||
| 79 | not yet implemented) since ops provide proper type-checking. | 79 | not yet implemented) since ops provide proper type-checking. |
| 80 | */ | 80 | */ |
| 81 | 81 | ||
| 82 | /* init: initialize the sensor registors to some sort of reasonable default | 82 | /* s_config: if set, then it is always called by the v4l2_i2c_new_subdev* |
| 83 | functions after the v4l2_subdev was registered. It is used to pass | ||
| 84 | platform data to the subdev which can be used during initialization. | ||
| 85 | |||
| 86 | init: initialize the sensor registors to some sort of reasonable default | ||
| 83 | values. Do not use for new drivers and should be removed in existing | 87 | values. Do not use for new drivers and should be removed in existing |
| 84 | drivers. | 88 | drivers. |
| 85 | 89 | ||
| @@ -96,6 +100,7 @@ struct v4l2_decode_vbi_line { | |||
| 96 | struct v4l2_subdev_core_ops { | 100 | struct v4l2_subdev_core_ops { |
| 97 | int (*g_chip_ident)(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ident *chip); | 101 | int (*g_chip_ident)(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ident *chip); |
| 98 | int (*log_status)(struct v4l2_subdev *sd); | 102 | int (*log_status)(struct v4l2_subdev *sd); |
| 103 | int (*s_config)(struct v4l2_subdev *sd, int irq, void *platform_data); | ||
| 99 | int (*init)(struct v4l2_subdev *sd, u32 val); | 104 | int (*init)(struct v4l2_subdev *sd, u32 val); |
| 100 | int (*load_fw)(struct v4l2_subdev *sd); | 105 | int (*load_fw)(struct v4l2_subdev *sd); |
| 101 | int (*reset)(struct v4l2_subdev *sd, u32 val); | 106 | int (*reset)(struct v4l2_subdev *sd, u32 val); |
| @@ -230,12 +235,16 @@ struct v4l2_subdev_ops { | |||
| 230 | 235 | ||
| 231 | #define V4L2_SUBDEV_NAME_SIZE 32 | 236 | #define V4L2_SUBDEV_NAME_SIZE 32 |
| 232 | 237 | ||
| 238 | /* Set this flag if this subdev is a i2c device. */ | ||
| 239 | #define V4L2_SUBDEV_FL_IS_I2C (1U << 0) | ||
| 240 | |||
| 233 | /* Each instance of a subdev driver should create this struct, either | 241 | /* Each instance of a subdev driver should create this struct, either |
| 234 | stand-alone or embedded in a larger struct. | 242 | stand-alone or embedded in a larger struct. |
| 235 | */ | 243 | */ |
| 236 | struct v4l2_subdev { | 244 | struct v4l2_subdev { |
| 237 | struct list_head list; | 245 | struct list_head list; |
| 238 | struct module *owner; | 246 | struct module *owner; |
| 247 | u32 flags; | ||
| 239 | struct v4l2_device *v4l2_dev; | 248 | struct v4l2_device *v4l2_dev; |
| 240 | const struct v4l2_subdev_ops *ops; | 249 | const struct v4l2_subdev_ops *ops; |
| 241 | /* name must be unique */ | 250 | /* name must be unique */ |
| @@ -264,6 +273,7 @@ static inline void v4l2_subdev_init(struct v4l2_subdev *sd, | |||
| 264 | BUG_ON(!ops || !ops->core); | 273 | BUG_ON(!ops || !ops->core); |
| 265 | sd->ops = ops; | 274 | sd->ops = ops; |
| 266 | sd->v4l2_dev = NULL; | 275 | sd->v4l2_dev = NULL; |
| 276 | sd->flags = 0; | ||
| 267 | sd->name[0] = '\0'; | 277 | sd->name[0] = '\0'; |
| 268 | sd->grp_id = 0; | 278 | sd->grp_id = 0; |
| 269 | sd->priv = NULL; | 279 | sd->priv = NULL; |
