[PATCH v7 2/6] ieee1275: implement FCP methods for WWPN and LUNs

Avnish Chouhan <[email protected]> Fri, 20 Feb 2026 18:28:24 +0530
Newsgroups org.gnu.grub-devel
Message-ID <[email protected]>
VGhpcyBwYXRjaCBlbmFibGVzIHRoZSBmY3AtdGFyZ2V0cyBhbmQgZmNwLWx1bnMgbWV0aG9kcyB3
aGljaCBhcmUKcmVzcG9uc2libGUgdG8gZ2V0IFdXUE5zIGFuZCBMVU5zIGZvciBmaWJyZSBjaGFu
bmVsIGRldmljZXMuCgpUaG9zZSBtZXRob2RzIGFyZSBzcGVjaWFsbHkgbmVjZXNzYXJ5IGlmIHRo
ZSBib290IGRpcmVjdG9yeSBhbmQgZ3J1YgppbnN0YWxsYXRpb24gYXJlIGluIGRpZmZlcmVudCBG
Q1AgZGlza3MsIGFsbG93aW5nIHRoZSBkZXZfaXRlcmF0ZSgpCnRvIGZpbmQgdGhlIFdXUE5zIGFu
ZCBMVU5zIHdoZW4gY2FsbGVkIGJ5IHNlYXJjaGZzLnV1aWQgdG9vbC4KClNpZ25lZC1vZmYtYnk6
IERpZWdvIERvbWluZ29zIDxkaWVnb2RvQGJyLmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IEF2bmlz
aCBDaG91aGFuIDxhdm5pc2hAbGludXguaWJtLmNvbT4KLS0tCiBncnViLWNvcmUvZGlzay9pZWVl
MTI3NS9vZmRpc2suYyB8IDExMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMTEwIGluc2VydGlvbnMoKyksIDEg
ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvZGlzay9pZWVlMTI3NS9vZmRpc2su
YyBiL2dydWItY29yZS9kaXNrL2llZWUxMjc1L29mZGlzay5jCmluZGV4IDU1MzQ2ODQuLjU5NThl
NWUgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9kaXNrL2llZWUxMjc1L29mZGlzay5jCisrKyBiL2dy
dWItY29yZS9kaXNrL2llZWUxMjc1L29mZGlzay5jCkBAIC0yMDksNyArMjA5LDExNiBAQCBkZXZf
aXRlcmF0ZV9yZWFsIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXRoKQogc3RhdGlj
IHZvaWQKIGRldl9pdGVyYXRlIChjb25zdCBzdHJ1Y3QgZ3J1Yl9pZWVlMTI3NV9kZXZhbGlhcyAq
YWxpYXMpCiB7Ci0gIGlmIChncnViX3N0cmNtcCAoYWxpYXMtPnR5cGUsICJ2c2NzaSIpID09IDAp
CisgIGlmIChncnViX3N0cmNtcCAoYWxpYXMtPnR5cGUsICJmY3AiKSA9PSAwKQorICAgIHsKKyAg
ICAgIC8qCisgICAgICAgKiBJZiB3ZSBhcmUgZGVhbGluZyB3aXRoIGZjcCBkZXZpY2VzLCB3ZSBu
ZWVkCisgICAgICAgKiB0byBmaW5kIHRoZSBXV1BOcyBhbmQgTFVOcyB0byBpdGVyYXRlIHRoZW0K
KyAgICAgICAqLworICAgICAgZ3J1Yl9pZWVlMTI3NV9paGFuZGxlX3QgaWhhbmRsZTsKKyAgICAg
IGdydWJfdWludDY0X3QgKnB0cl90YXJnZXRzLCAqcHRyX2x1bnMsIGssIGw7CisgICAgICB1bnNp
Z25lZCBpbnQgaSwgaiwgcG9zOworICAgICAgY2hhciAqYnVmLCAqYnVmcHRyOworICAgICAgc3Ry
dWN0IHNldF9mY3BfdGFyZ2V0c19hcmdzCisgICAgICB7CisgICAgICAgIHN0cnVjdCBncnViX2ll
ZWUxMjc1X2NvbW1vbl9oZHIgY29tbW9uOworICAgICAgICBncnViX2llZWUxMjc1X2NlbGxfdCBt
ZXRob2Q7CisgICAgICAgIGdydWJfaWVlZTEyNzVfY2VsbF90IGloYW5kbGU7CisgICAgICAgIGdy
dWJfaWVlZTEyNzVfY2VsbF90IGNhdGNoX3Jlc3VsdDsKKyAgICAgICAgZ3J1Yl9pZWVlMTI3NV9j
ZWxsX3QgbmVudHJpZXM7CisgICAgICAgIGdydWJfaWVlZTEyNzVfY2VsbF90IHRhYmxlOworICAg
ICAgfSBhcmdzX3RhcmdldHM7CisKKyAgICAgIHN0cnVjdCBzZXRfZmNwX2x1bnNfYXJncworICAg
ICAgeworICAgICAgICBzdHJ1Y3QgZ3J1Yl9pZWVlMTI3NV9jb21tb25faGRyIGNvbW1vbjsKKyAg
ICAgICAgZ3J1Yl9pZWVlMTI3NV9jZWxsX3QgbWV0aG9kOworICAgICAgICBncnViX2llZWUxMjc1
X2NlbGxfdCBpaGFuZGxlOworICAgICAgICBncnViX2llZWUxMjc1X2NlbGxfdCB3d3BuX2g7Cisg
ICAgICAgIGdydWJfaWVlZTEyNzVfY2VsbF90IHd3cG5fbDsKKyAgICAgICAgZ3J1Yl9pZWVlMTI3
NV9jZWxsX3QgY2F0Y2hfcmVzdWx0OworICAgICAgICBncnViX2llZWUxMjc1X2NlbGxfdCBuZW50
cmllczsKKyAgICAgICAgZ3J1Yl9pZWVlMTI3NV9jZWxsX3QgdGFibGU7CisgICAgICB9IGFyZ3Nf
bHVuczsKKworICAgICAgc3RydWN0IGFyZ3NfcmV0CisgICAgICB7CisgICAgICAgIGdydWJfdWlu
dDY0X3QgYWRkcjsKKyAgICAgICAgZ3J1Yl91aW50NjRfdCBsZW47CisgICAgICB9OworCisgICAg
ICBpZiAoZ3J1Yl9pZWVlMTI3NV9vcGVuIChhbGlhcy0+cGF0aCwgJmloYW5kbGUpKQorICAgICAg
ICB7CisgICAgICAgICAgZ3J1Yl9kcHJpbnRmICgiZGlzayIsICJmYWlsZWQgdG8gb3BlbiB0aGUg
ZGlzayB3aGlsZSBpdGVyYXRpbmcgRkNQIGRpc2sgcGF0aD0lc1xuIiwgYWxpYXMtPnBhdGgpOwor
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAvKiBTZXR1cCB0aGUgZmNwLXRh
cmdldHMgbWV0aG9kIHRvIGNhbGwgdmlhIHBmdyovCisgICAgICBJTklUX0lFRUUxMjc1X0NPTU1P
TiAoJmFyZ3NfdGFyZ2V0cy5jb21tb24sICJjYWxsLW1ldGhvZCIsIDIsIDMpOworICAgICAgYXJn
c190YXJnZXRzLm1ldGhvZCA9IChncnViX2llZWUxMjc1X2NlbGxfdCkgImZjcC10YXJnZXRzIjsK
KyAgICAgIGFyZ3NfdGFyZ2V0cy5paGFuZGxlID0gaWhhbmRsZTsKKworICAgICAgLyogU2V0dXAg
dGhlIGZjcC1sdW5zIG1ldGhvZCB0byBjYWxsIHZpYSBwZncgKi8KKyAgICAgIElOSVRfSUVFRTEy
NzVfQ09NTU9OICgmYXJnc19sdW5zLmNvbW1vbiwgImNhbGwtbWV0aG9kIiwgNCwgMyk7CisgICAg
ICBhcmdzX2x1bnMubWV0aG9kID0gKGdydWJfaWVlZTEyNzVfY2VsbF90KSAiZmNwLWx1bnMiOwor
ICAgICAgYXJnc19sdW5zLmloYW5kbGUgPSBpaGFuZGxlOworICAgICAgaWYgKElFRUUxMjc1X0NB
TExfRU5UUllfRk4gKCZhcmdzX3RhcmdldHMpID09IC0xKQorICAgICAgICB7CisgICAgICAgICAg
Z3J1Yl9kcHJpbnRmICgiZGlzayIsICJmYWlsZWQgdG8gZ2V0IHRoZSB0YXJnZXRzIHdoaWxlIGl0
ZXJhdGluZyBGQ1AgZGlzayBwYXRoPSVzXG4iLCBhbGlhcy0+cGF0aCk7CisgICAgICAgICAgZ3J1
Yl9pZWVlMTI3NV9jbG9zZSAoaWhhbmRsZSk7CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICBidWYgPSBncnViX21hbGxvYyAoZ3J1Yl9zdHJsZW4gKGFsaWFzLT5wYXRoKSArIDMy
ICsgMzIpOworICAgICAgaWYgKCFidWYpCisgICAgICAgIHsKKyAgICAgICAgICBncnViX2llZWUx
Mjc1X2Nsb3NlIChpaGFuZGxlKTsKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
IGJ1ZnB0ciA9IGdydWJfc3RwY3B5IChidWYsIGFsaWFzLT5wYXRoKTsKKworICAgICAgLyoKKyAg
ICAgICAqIEl0ZXJhdGUgb3ZlciBlbnRyaWVzIHJldHVybmVkIGJ5IHBmdy4gRWFjaCBlbnRyeSBj
b250YWlucyBhCisgICAgICAgKiBwb2ludGVyIHRvIHd3cG4gdGFibGUgYW5kIGhpcyBsZW5ndGgu
CisgICAgICAgKi8KKyAgICAgIHN0cnVjdCBhcmdzX3JldCAqdGFyZ2V0c190YWJsZSA9IChzdHJ1
Y3QgYXJnc19yZXQgKikgKGFyZ3NfdGFyZ2V0cy50YWJsZSk7CisgICAgICBmb3IgKGkgPSAwOyBp
IDwgYXJnc190YXJnZXRzLm5lbnRyaWVzOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICBwdHJf
dGFyZ2V0cyA9IChncnViX3VpbnQ2NF90KikgdGFyZ2V0c190YWJsZVtpXS5hZGRyOworICAgICAg
ICAgIC8qIEl0ZXJhdGUgb3ZlciBhbGwgd3dwbnMgaW4gZ2l2ZW4gdGFibGUgKi8KKyAgICAgICAg
ICBmb3IoayA9IDA7IGsgPCB0YXJnZXRzX3RhYmxlW2ldLmxlbjsgaysrKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICBhcmdzX2x1bnMud3dwbl9sID0gKGdydWJfaWVlZTEyNzVfY2VsbF90
KSAoKnB0cl90YXJnZXRzKTsKKyAgICAgICAgICAgICAgYXJnc19sdW5zLnd3cG5faCA9IChncnVi
X2llZWUxMjc1X2NlbGxfdCkgKCpwdHJfdGFyZ2V0cyA+PiAzMik7CisgICAgICAgICAgICAgIHBv
cyA9IGdydWJfc25wcmludGYgKGJ1ZnB0ciwgMzIsICIvZGlza0AlIiBQUkl4R1JVQl9VSU5UNjRf
VCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncnViX2dldF91bmFsaWduZWQ2
NCAoKnB0cl90YXJnZXRzKyspKTsKKyAgICAgICAgICAgICAgLyogR2V0IHRoZSBsdW5zIGZvciBn
aXZlbiB3d3BuIHRhcmdldCAqLworICAgICAgICAgICAgICBpZiAoSUVFRTEyNzVfQ0FMTF9FTlRS
WV9GTiAoJmFyZ3NfbHVucykgPT0gLTEpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgZ3J1Yl9kcHJpbnRmICgiZGlzayIsICJmYWlsZWQgdG8gZ2V0IHRoZSBMVU5TIHdoaWxl
IGl0ZXJhdGluZyBGQ1AgZGlzayBwYXRoPSVzXG4iLCBidWYpOworICAgICAgICAgICAgICAgICAg
Z3J1Yl9pZWVlMTI3NV9jbG9zZSAoaWhhbmRsZSk7CisgICAgICAgICAgICAgICAgICBncnViX2Zy
ZWUgKGJ1Zik7CisgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICBzdHJ1Y3QgYXJnc19yZXQgKmx1bnNfdGFibGUgPSAoc3RydWN0IGFyZ3Nf
cmV0ICopIChhcmdzX2x1bnMudGFibGUpOworCisgICAgICAgICAgICAgIC8qIEl0ZXJhdGUgb3Zl
ciBhbGwgTFVOcyAqLworICAgICAgICAgICAgICBmb3IoaiA9IDA7IGogPCBhcmdzX2x1bnMubmVu
dHJpZXM7IGorKykKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBwdHJfbHVu
cyA9IChncnViX3VpbnQ2NF90KikgbHVuc190YWJsZVtqXS5hZGRyOworICAgICAgICAgICAgICAg
ICAgZm9yKGwgPSAwOyBsIDwgbHVuc190YWJsZVtqXS5sZW47IGwrKykKKyAgICAgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIGdydWJfc25wcmludGYgKCZidWZwdHJbcG9z
XSwgMzAsICIsJSIgUFJJeEdSVUJfVUlOVDY0X1QsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBncnViX2dldF91bmFsaWduZWQ2NCAoKnB0cl9sdW5zKyspKTsKKyAgICAgICAg
ICAgICAgICAgICAgICBkZXZfaXRlcmF0ZV9yZWFsIChidWYsIGJ1Zik7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICAgIGdydWJfaWVlZTEyNzVfY2xvc2UgKGloYW5kbGUpOworICAgICAgZ3J1Yl9mcmVlIChidWYp
OworICAgICAgcmV0dXJuOworICAgIH0KKyAgZWxzZSBpZiAoZ3J1Yl9zdHJjbXAgKGFsaWFzLT50
eXBlLCAidnNjc2kiKSA9PSAwKQogICAgIHsKICAgICAgIHN0YXRpYyBncnViX2llZWUxMjc1X2lo
YW5kbGVfdCBpaGFuZGxlOwogICAgICAgc3RydWN0IHNldF9jb2xvcl9hcmdzCi0tIAoyLjUwLjEg
KEFwcGxlIEdpdC0xNTUpCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KR3J1Yi1kZXZlbCBtYWlsaW5nIGxpc3QKR3J1Yi1kZXZlbEBnbnUub3JnCmh0dHBz
Oi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2dydWItZGV2ZWwK