-
Notifications
You must be signed in to change notification settings - Fork 637
Expand file tree
/
Copy pathloongarch64.go
More file actions
86 lines (73 loc) · 2.14 KB
/
Copy pathloongarch64.go
File metadata and controls
86 lines (73 loc) · 2.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// Copyright 2019 Yunion
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package arch
import (
"fmt"
"yunion.io/x/onecloud/pkg/hostman/guestman/desc"
)
const (
LOONGARCH64_MAX_CPUS = 8
LOONGARCH64_SOCKETS = 1
LOONGARCH64_CORES = 8
LOONGARCH64_THREADS = 1
LOONGARCH64_MEM_DEFAULT_SLOTS = 4
LOONGARCH64_MAX_MEM_MB = 262144
)
type LOONGARCH64 struct {
archBase
}
// -device scsi-cd,drive=cd0,share-rw=true
// if=none,file=%s,id=cd0,media=cdrom
func (*LOONGARCH64) GenerateCdromDesc(osName string, cdrom *desc.SGuestCdrom) {
id := fmt.Sprintf("scsi%d-cd0", cdrom.Ordinal)
scsiDev := desc.NewScsiDevice("", "scsi-cd", id)
scsiDev.Options = map[string]string{"share-rw": "true"}
driveOptions := map[string]string{
"if": "none",
"media": "cdrom",
}
cdrom.Scsi = scsiDev
cdrom.DriveOptions = driveOptions
cdrom.Id = id
}
func (*LOONGARCH64) GenerateFloppyDesc(osName string, floppy *desc.SGuestFloppy) {
}
func (*LOONGARCH64) GenerateMachineDesc(accel string) *desc.SGuestMachine {
return &desc.SGuestMachine{
Accel: accel,
}
}
func (*LOONGARCH64) GenerateMemDesc() *desc.SGuestMem {
return &desc.SGuestMem{
Slots: LOONGARCH64_MEM_DEFAULT_SLOTS,
MaxMem: LOONGARCH64_MAX_MEM_MB,
}
}
func (*LOONGARCH64) GenerateCpuDesc(cpus uint, cpuMax uint, s KVMGuestInstance) (*desc.SGuestCpu, error) {
var accel, cpuType string
if s.IsKvmSupport() {
accel = "kvm"
// * under KVM, -cpu max is the same as -cpu host
// * under TCG, -cpu max means "emulate with as many features as possible"
cpuType = "max"
} else {
accel = "tcg"
cpuType = "max"
}
return &desc.SGuestCpu{
Cpus: cpus,
Model: cpuType,
Accel: accel,
}, nil
}