Skip to content

Commit 75355c9

Browse files
authored
Merge pull request #497 from bart0sh/PR0094-move-GetAPIVersion-out-of-NewPort
fpga: move GetAPIVersion call out of NewPort and NewFME
2 parents ad02fc4 + 2c73e2a commit 75355c9

File tree

3 files changed

+37
-42
lines changed

3 files changed

+37
-42
lines changed

cmd/fpga_tool/fpga_tool.go

Lines changed: 37 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -181,14 +181,16 @@ func fpgaInfo(fname string, quiet bool) error {
181181
}
182182

183183
func fmeInfo(fname string, quiet bool) error {
184-
var f fpga.FME
185-
var err error
186-
f, err = fpga.NewFME(fname)
184+
fme, err := fpga.NewFME(fname)
187185
if err != nil {
188186
return err
189187
}
190-
defer f.Close()
191-
return printFpgaFME(f, quiet)
188+
defer fme.Close()
189+
// check that kernel API is compatible
190+
if _, err := fme.GetAPIVersion(); err != nil {
191+
return errors.Wrap(err, "kernel API mismatch")
192+
}
193+
return printFpgaFME(fme, quiet)
192194
}
193195

194196
func printFpgaFME(f fpga.FME, quiet bool) (err error) {
@@ -218,28 +220,33 @@ func printFpgaFME(f fpga.FME, quiet bool) (err error) {
218220
}
219221

220222
func portReleaseOrAssign(fname string, port uint, release, quiet bool) error {
221-
var f fpga.FME
222-
var err error
223-
f, err = fpga.NewFME(fname)
223+
fme, err := fpga.NewFME(fname)
224224
if err != nil {
225225
return err
226226
}
227-
defer f.Close()
227+
defer fme.Close()
228+
// check that kernel API is compatible
229+
if _, err := fme.GetAPIVersion(); err != nil {
230+
return errors.Wrap(err, "kernel API mismatch")
231+
}
228232
if release {
229-
return f.PortRelease(uint32(port))
233+
return fme.PortRelease(uint32(port))
230234
}
231-
return f.PortAssign(uint32(port))
235+
return fme.PortAssign(uint32(port))
232236
}
233237

234238
func portInfo(fname string, quiet bool) error {
235-
var f fpga.Port
236-
var err error
237-
f, err = fpga.NewPort(fname)
239+
port, err := fpga.NewPort(fname)
238240
if err != nil {
239241
return err
240242
}
241-
defer f.Close()
242-
return printFpgaPort(f, quiet)
243+
defer port.Close()
244+
// check that kernel API is compatible
245+
if _, err = port.GetAPIVersion(); err != nil {
246+
return errors.Wrap(err, "kernel API mismatch")
247+
}
248+
249+
return printFpgaPort(port, quiet)
243250
}
244251

245252
func printFpgaPort(f fpga.Port, quiet bool) (err error) {
@@ -313,32 +320,37 @@ func printPCIeInfo(pci *fpga.PCIDevice, quiet bool) {
313320
}
314321
}
315322

316-
func doPR(dev, fname string, dryRun, quiet bool) (err error) {
317-
fp, err := fpga.NewPort(dev)
323+
func doPR(dev, fname string, dryRun, quiet bool) error {
324+
port, err := fpga.NewPort(dev)
318325
if err != nil {
319-
return
326+
return err
327+
}
328+
defer port.Close()
329+
// check that kernel API is compatible
330+
if _, err = port.GetAPIVersion(); err != nil {
331+
return errors.Wrap(err, "kernel API mismatch")
320332
}
321-
defer fp.Close()
333+
322334
bs, err := bitstream.Open(fname)
323335
if err != nil {
324-
return
336+
return err
325337
}
326338
defer bs.Close()
327339

328340
if !quiet {
329-
fmt.Printf("Before: Interface ID: %q AFU ID: %q\n", fp.GetInterfaceUUID(), fp.GetAcceleratorTypeUUID())
341+
fmt.Printf("Before: Interface ID: %q AFU ID: %q\n", port.GetInterfaceUUID(), port.GetAcceleratorTypeUUID())
330342
fmt.Printf("Programming %q to port %q: ", fname, dev)
331343
}
332-
err = fp.PR(bs, dryRun)
344+
err = port.PR(bs, dryRun)
333345
if !quiet {
334346
if err != nil {
335347
fmt.Println("FAILED")
336348
} else {
337349
fmt.Println("OK")
338350
}
339-
fmt.Printf("After : Interface ID: %q AFU ID: %q\n", fp.GetInterfaceUUID(), fp.GetAcceleratorTypeUUID())
351+
fmt.Printf("After : Interface ID: %q AFU ID: %q\n", port.GetInterfaceUUID(), port.GetAcceleratorTypeUUID())
340352
}
341-
return
353+
return err
342354
}
343355

344356
func listDevices(listFMEs, listPorts, quiet bool) error {

pkg/fpga/dfl_linux.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,6 @@ func (f *DflFME) Close() error {
5656
// NewDflFME Opens device.
5757
func NewDflFME(dev string) (FME, error) {
5858
fme := &DflFME{DevPath: dev}
59-
// check that kernel API is compatible
60-
if _, err := fme.GetAPIVersion(); err != nil {
61-
return nil, errors.Wrap(err, "kernel API mismatch")
62-
}
6359
if err := checkVendorAndClass(fme); err != nil {
6460
return nil, err
6561
}
@@ -96,10 +92,6 @@ func (f *DflPort) Close() error {
9692
// NewDflPort Opens device.
9793
func NewDflPort(dev string) (Port, error) {
9894
port := &DflPort{DevPath: dev}
99-
// check that kernel API is compatible
100-
if _, err := port.GetAPIVersion(); err != nil {
101-
return nil, errors.Wrap(err, "kernel API mismatch")
102-
}
10395
if err := checkVendorAndClass(port); err != nil {
10496
return nil, err
10597
}

pkg/fpga/intel_fpga_linux.go

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,6 @@ func (f *IntelFpgaFME) Close() error {
5353
// NewIntelFpgaFME Opens device.
5454
func NewIntelFpgaFME(dev string) (FME, error) {
5555
fme := &IntelFpgaFME{DevPath: dev}
56-
// check that kernel API is compatible
57-
if _, err := fme.GetAPIVersion(); err != nil {
58-
return nil, errors.Wrap(err, "kernel API mismatch")
59-
}
6056
if err := checkVendorAndClass(fme); err != nil {
6157
return nil, err
6258
}
@@ -90,11 +86,6 @@ func (f *IntelFpgaPort) Close() error {
9086
// NewIntelFpgaPort Opens device.
9187
func NewIntelFpgaPort(dev string) (Port, error) {
9288
port := &IntelFpgaPort{DevPath: dev}
93-
// check that kernel API is compatible
94-
if _, err := port.GetAPIVersion(); err != nil {
95-
port.Close()
96-
return nil, errors.Wrap(err, "kernel API mismatch")
97-
}
9889
if err := checkVendorAndClass(port); err != nil {
9990
port.Close()
10091
return nil, err

0 commit comments

Comments
 (0)