Remove duplicate device index calculations.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4818 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
		
							parent
							
								
									9656f324d2
								
							
						
					
					
						commit
						18be518729
					
				|  | @ -140,8 +140,6 @@ static int ads7846_load(QEMUFile *f, void *opaque, int version_id) | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int ads7846_iid = 0; |  | ||||||
| 
 |  | ||||||
| struct ads7846_state_s *ads7846_init(qemu_irq penirq) | struct ads7846_state_s *ads7846_init(qemu_irq penirq) | ||||||
| { | { | ||||||
|     struct ads7846_state_s *s; |     struct ads7846_state_s *s; | ||||||
|  | @ -162,8 +160,7 @@ struct ads7846_state_s *ads7846_init(qemu_irq penirq) | ||||||
| 
 | 
 | ||||||
|     ads7846_int_update(s); |     ads7846_int_update(s); | ||||||
| 
 | 
 | ||||||
|     register_savevm("ads7846", ads7846_iid ++, 0, |     register_savevm("ads7846", -1, 0, ads7846_save, ads7846_load, s); | ||||||
|                     ads7846_save, ads7846_load, s); |  | ||||||
| 
 | 
 | ||||||
|     return s; |     return s; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								hw/ide.c
								
								
								
								
							
							
						
						
									
										4
									
								
								hw/ide.c
								
								
								
								
							|  | @ -3596,8 +3596,6 @@ static int md_load(QEMUFile *f, void *opaque, int version_id) | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int md_iid = 0; |  | ||||||
| 
 |  | ||||||
| static const uint8_t dscm1xxxx_cis[0x14a] = { | static const uint8_t dscm1xxxx_cis[0x14a] = { | ||||||
|     [0x000] = CISTPL_DEVICE,	/* 5V Device Information */ |     [0x000] = CISTPL_DEVICE,	/* 5V Device Information */ | ||||||
|     [0x002] = 0x03,		/* Tuple length = 4 bytes */ |     [0x002] = 0x03,		/* Tuple length = 4 bytes */ | ||||||
|  | @ -3824,7 +3822,7 @@ struct pcmcia_card_s *dscm1xxxx_init(BlockDriverState *bdrv) | ||||||
|     md->ide->mdata_size = METADATA_SIZE; |     md->ide->mdata_size = METADATA_SIZE; | ||||||
|     md->ide->mdata_storage = (uint8_t *) qemu_mallocz(METADATA_SIZE); |     md->ide->mdata_storage = (uint8_t *) qemu_mallocz(METADATA_SIZE); | ||||||
| 
 | 
 | ||||||
|     register_savevm("microdrive", md_iid ++, 0, md_save, md_load, md); |     register_savevm("microdrive", -1, 0, md_save, md_load, md); | ||||||
| 
 | 
 | ||||||
|     return &md->card; |     return &md->card; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -490,8 +490,6 @@ static int lm_kbd_load(QEMUFile *f, void *opaque, int version_id) | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int lm_kbd_iid = 0; |  | ||||||
| 
 |  | ||||||
| struct i2c_slave *lm8323_init(i2c_bus *bus, qemu_irq nirq) | struct i2c_slave *lm8323_init(i2c_bus *bus, qemu_irq nirq) | ||||||
| { | { | ||||||
|     struct lm_kbd_s *s; |     struct lm_kbd_s *s; | ||||||
|  | @ -510,8 +508,7 @@ struct i2c_slave *lm8323_init(i2c_bus *bus, qemu_irq nirq) | ||||||
|     lm_kbd_reset(s); |     lm_kbd_reset(s); | ||||||
| 
 | 
 | ||||||
|     qemu_register_reset((void *) lm_kbd_reset, s); |     qemu_register_reset((void *) lm_kbd_reset, s); | ||||||
|     register_savevm("LM8323", lm_kbd_iid ++, 0, |     register_savevm("LM8323", -1, 0, lm_kbd_save, lm_kbd_load, s); | ||||||
|                     lm_kbd_save, lm_kbd_load, s); |  | ||||||
| 
 | 
 | ||||||
|     return &s->i2c; |     return &s->i2c; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -121,8 +121,6 @@ static int max111x_load(QEMUFile *f, void *opaque, int version_id) | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int max111x_iid = 0; |  | ||||||
| 
 |  | ||||||
| static struct max111x_s *max111x_init(qemu_irq cb) | static struct max111x_s *max111x_init(qemu_irq cb) | ||||||
| { | { | ||||||
|     struct max111x_s *s; |     struct max111x_s *s; | ||||||
|  | @ -143,8 +141,7 @@ static struct max111x_s *max111x_init(qemu_irq cb) | ||||||
|     s->input[7] = 0x80; |     s->input[7] = 0x80; | ||||||
|     s->com = 0; |     s->com = 0; | ||||||
| 
 | 
 | ||||||
|     register_savevm("max111x", max111x_iid ++, 0, |     register_savevm("max111x", -1, 0, max111x_save, max111x_load, s); | ||||||
|                     max111x_save, max111x_load, s); |  | ||||||
| 
 | 
 | ||||||
|     return s; |     return s; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -177,8 +177,6 @@ static int max7310_load(QEMUFile *f, void *opaque, int version_id) | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int max7310_iid = 0; |  | ||||||
| 
 |  | ||||||
| static void max7310_gpio_set(void *opaque, int line, int level) | static void max7310_gpio_set(void *opaque, int line, int level) | ||||||
| { | { | ||||||
|     struct max7310_s *s = (struct max7310_s *) opaque; |     struct max7310_s *s = (struct max7310_s *) opaque; | ||||||
|  | @ -205,8 +203,7 @@ struct i2c_slave *max7310_init(i2c_bus *bus) | ||||||
| 
 | 
 | ||||||
|     max7310_reset(&s->i2c); |     max7310_reset(&s->i2c); | ||||||
| 
 | 
 | ||||||
|     register_savevm("max7310", max7310_iid ++, 0, |     register_savevm("max7310", -1, 0, max7310_save, max7310_load, s); | ||||||
|                     max7310_save, max7310_load, s); |  | ||||||
| 
 | 
 | ||||||
|     return &s->i2c; |     return &s->i2c; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -319,8 +319,6 @@ static int nand_load(QEMUFile *f, void *opaque, int version_id) | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int nand_iid = 0; |  | ||||||
| 
 |  | ||||||
| /*
 | /*
 | ||||||
|  * Chip inputs are CLE, ALE, CE, WP, GND and eight I/O pins.  Chip |  * Chip inputs are CLE, ALE, CE, WP, GND and eight I/O pins.  Chip | ||||||
|  * outputs are R/B and eight I/O pins. |  * outputs are R/B and eight I/O pins. | ||||||
|  | @ -495,7 +493,7 @@ struct nand_flash_s *nand_init(int manf_id, int chip_id) | ||||||
|         s->storage = (uint8_t *) memset(qemu_malloc(s->pages * pagesize), |         s->storage = (uint8_t *) memset(qemu_malloc(s->pages * pagesize), | ||||||
|                         0xff, s->pages * pagesize); |                         0xff, s->pages * pagesize); | ||||||
| 
 | 
 | ||||||
|     register_savevm("nand", nand_iid ++, 0, nand_save, nand_load, s); |     register_savevm("nand", -1, 0, nand_save, nand_load, s); | ||||||
| 
 | 
 | ||||||
|     return s; |     return s; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -228,8 +228,6 @@ void tmp105_reset(i2c_slave *i2c) | ||||||
|     tmp105_interrupt_update(s); |     tmp105_interrupt_update(s); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int tmp105_iid = 0; |  | ||||||
| 
 |  | ||||||
| struct i2c_slave *tmp105_init(i2c_bus *bus, qemu_irq alarm) | struct i2c_slave *tmp105_init(i2c_bus *bus, qemu_irq alarm) | ||||||
| { | { | ||||||
|     struct tmp105_s *s = (struct tmp105_s *) |     struct tmp105_s *s = (struct tmp105_s *) | ||||||
|  | @ -242,8 +240,7 @@ struct i2c_slave *tmp105_init(i2c_bus *bus, qemu_irq alarm) | ||||||
| 
 | 
 | ||||||
|     tmp105_reset(&s->i2c); |     tmp105_reset(&s->i2c); | ||||||
| 
 | 
 | ||||||
|     register_savevm("TMP105", tmp105_iid ++, 0, |     register_savevm("TMP105", -1, 0, tmp105_save, tmp105_load, s); | ||||||
|                     tmp105_save, tmp105_load, s); |  | ||||||
| 
 | 
 | ||||||
|     return &s->i2c; |     return &s->i2c; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -520,8 +520,6 @@ static int tsc2005_load(QEMUFile *f, void *opaque, int version_id) | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int tsc2005_iid = 0; |  | ||||||
| 
 |  | ||||||
| void *tsc2005_init(qemu_irq pintdav) | void *tsc2005_init(qemu_irq pintdav) | ||||||
| { | { | ||||||
|     struct tsc2005_state_s *s; |     struct tsc2005_state_s *s; | ||||||
|  | @ -551,8 +549,7 @@ void *tsc2005_init(qemu_irq pintdav) | ||||||
|                     "QEMU TSC2005-driven Touchscreen"); |                     "QEMU TSC2005-driven Touchscreen"); | ||||||
| 
 | 
 | ||||||
|     qemu_register_reset((void *) tsc2005_reset, s); |     qemu_register_reset((void *) tsc2005_reset, s); | ||||||
|     register_savevm("tsc2005", tsc2005_iid ++, 0, |     register_savevm("tsc2005", -1, 0, tsc2005_save, tsc2005_load, s); | ||||||
|                     tsc2005_save, tsc2005_load, s); |  | ||||||
| 
 | 
 | ||||||
|     return s; |     return s; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1107,8 +1107,6 @@ static int tsc210x_load(QEMUFile *f, void *opaque, int version_id) | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int tsc2102_iid = 0; |  | ||||||
| 
 |  | ||||||
| struct uwire_slave_s *tsc2102_init(qemu_irq pint, AudioState *audio) | struct uwire_slave_s *tsc2102_init(qemu_irq pint, AudioState *audio) | ||||||
| { | { | ||||||
|     struct tsc210x_state_s *s; |     struct tsc210x_state_s *s; | ||||||
|  | @ -1154,7 +1152,7 @@ struct uwire_slave_s *tsc2102_init(qemu_irq pint, AudioState *audio) | ||||||
|         AUD_register_card(s->audio, s->name, &s->card); |         AUD_register_card(s->audio, s->name, &s->card); | ||||||
| 
 | 
 | ||||||
|     qemu_register_reset((void *) tsc210x_reset, s); |     qemu_register_reset((void *) tsc210x_reset, s); | ||||||
|     register_savevm(s->name, tsc2102_iid ++, 0, |     register_savevm(s->name, -1, 0, | ||||||
|                     tsc210x_save, tsc210x_load, s); |                     tsc210x_save, tsc210x_load, s); | ||||||
| 
 | 
 | ||||||
|     return &s->chip; |     return &s->chip; | ||||||
|  | @ -1208,8 +1206,7 @@ struct uwire_slave_s *tsc2301_init(qemu_irq penirq, qemu_irq kbirq, | ||||||
|         AUD_register_card(s->audio, s->name, &s->card); |         AUD_register_card(s->audio, s->name, &s->card); | ||||||
| 
 | 
 | ||||||
|     qemu_register_reset((void *) tsc210x_reset, s); |     qemu_register_reset((void *) tsc210x_reset, s); | ||||||
|     register_savevm(s->name, tsc2102_iid ++, 0, |     register_savevm(s->name, -1, 0, tsc210x_save, tsc210x_load, s); | ||||||
|                     tsc210x_save, tsc210x_load, s); |  | ||||||
| 
 | 
 | ||||||
|     return &s->chip; |     return &s->chip; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -876,8 +876,6 @@ static int menelaus_load(QEMUFile *f, void *opaque, int version_id) | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int menelaus_iid = 0; |  | ||||||
| 
 |  | ||||||
| i2c_slave *twl92230_init(i2c_bus *bus, qemu_irq irq) | i2c_slave *twl92230_init(i2c_bus *bus, qemu_irq irq) | ||||||
| { | { | ||||||
|     struct menelaus_s *s = (struct menelaus_s *) |     struct menelaus_s *s = (struct menelaus_s *) | ||||||
|  | @ -894,8 +892,7 @@ i2c_slave *twl92230_init(i2c_bus *bus, qemu_irq irq) | ||||||
| 
 | 
 | ||||||
|     menelaus_reset(&s->i2c); |     menelaus_reset(&s->i2c); | ||||||
| 
 | 
 | ||||||
|     register_savevm("menelaus", menelaus_iid ++, |     register_savevm("menelaus", -1, 0, menelaus_save, menelaus_load, s); | ||||||
|                     0, menelaus_save, menelaus_load, s); |  | ||||||
| 
 | 
 | ||||||
|     return &s->i2c; |     return &s->i2c; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -646,8 +646,6 @@ static int wm8750_load(QEMUFile *f, void *opaque, int version_id) | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int wm8750_iid = 0; |  | ||||||
| 
 |  | ||||||
| i2c_slave *wm8750_init(i2c_bus *bus, AudioState *audio) | i2c_slave *wm8750_init(i2c_bus *bus, AudioState *audio) | ||||||
| { | { | ||||||
|     struct wm8750_s *s = (struct wm8750_s *) |     struct wm8750_s *s = (struct wm8750_s *) | ||||||
|  | @ -659,7 +657,7 @@ i2c_slave *wm8750_init(i2c_bus *bus, AudioState *audio) | ||||||
|     AUD_register_card(audio, CODEC, &s->card); |     AUD_register_card(audio, CODEC, &s->card); | ||||||
|     wm8750_reset(&s->i2c); |     wm8750_reset(&s->i2c); | ||||||
| 
 | 
 | ||||||
|     register_savevm(CODEC, wm8750_iid ++, 0, wm8750_save, wm8750_load, s); |     register_savevm(CODEC, -1, 0, wm8750_save, wm8750_load, s); | ||||||
| 
 | 
 | ||||||
|     return &s->i2c; |     return &s->i2c; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										11
									
								
								vl.c
								
								
								
								
							
							
						
						
									
										11
									
								
								vl.c
								
								
								
								
							|  | @ -6060,6 +6060,8 @@ typedef struct SaveStateEntry { | ||||||
| 
 | 
 | ||||||
| static SaveStateEntry *first_se; | static SaveStateEntry *first_se; | ||||||
| 
 | 
 | ||||||
|  | /* TODO: Individual devices generally have very little idea about the rest
 | ||||||
|  |    of the system, so instance_id should be removed/replaced.  */ | ||||||
| int register_savevm(const char *idstr, | int register_savevm(const char *idstr, | ||||||
|                     int instance_id, |                     int instance_id, | ||||||
|                     int version_id, |                     int version_id, | ||||||
|  | @ -6073,7 +6075,7 @@ int register_savevm(const char *idstr, | ||||||
|     if (!se) |     if (!se) | ||||||
|         return -1; |         return -1; | ||||||
|     pstrcpy(se->idstr, sizeof(se->idstr), idstr); |     pstrcpy(se->idstr, sizeof(se->idstr), idstr); | ||||||
|     se->instance_id = instance_id; |     se->instance_id = (instance_id == -1) ? 0 : instance_id; | ||||||
|     se->version_id = version_id; |     se->version_id = version_id; | ||||||
|     se->save_state = save_state; |     se->save_state = save_state; | ||||||
|     se->load_state = load_state; |     se->load_state = load_state; | ||||||
|  | @ -6082,8 +6084,13 @@ int register_savevm(const char *idstr, | ||||||
| 
 | 
 | ||||||
|     /* add at the end of list */ |     /* add at the end of list */ | ||||||
|     pse = &first_se; |     pse = &first_se; | ||||||
|     while (*pse != NULL) |     while (*pse != NULL) { | ||||||
|  |         if (instance_id == -1 | ||||||
|  |                 && strcmp(se->idstr, (*pse)->idstr) == 0 | ||||||
|  |                 && se->instance_id <= (*pse)->instance_id) | ||||||
|  |             se->instance_id = (*pse)->instance_id + 1; | ||||||
|         pse = &(*pse)->next; |         pse = &(*pse)->next; | ||||||
|  |     } | ||||||
|     *pse = se; |     *pse = se; | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 pbrook
						pbrook